listo para añadir tarifas

This commit is contained in:
2023-11-23 22:20:38 +01:00
parent ec2f217c79
commit f89dc2e566
2320 changed files with 124 additions and 15 deletions

View File

View File

@ -46,26 +46,63 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
public function initPresupuesto($id_presupuesto,$tipoPresupuesto, $solapas, $tirada, $paginas){
public function initPresupuesto($tipo_presupuesto, $solapas, $tirada, $paginas, $ancho, $alto, $POD){
$model = model('App\Models\Presupuestos\TipoPresupuestoTarifaEncuadernacionModel');
$tarifas_ids = $model->get_tarifas($tipo_presupuesto,$solapas);
$tarifas_procesar = $model->get_tarifas($tipo_presupuesto,$solapas);
$modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel');
$tarifas = [];
foreach($tarifas_ids as $tarifa){
/* $data = [
'id' => new RawSql('DEFAULT'),
'title' => 'My title',
'name' => 'My Name',
'date' => '2022-01-01',
'last_update' => new RawSql('CURRENT_TIMESTAMP()'),
];
$modelTarifa->getMejorPrecio($tirada, $paginas)*/
foreach($tarifas_procesar as $tarifa){
$tarifa_value = $modelTarifa->getTarifaPresupuestoEncuadernacion($tarifa['tarifa_encuadernacion_id'], $paginas, $tirada, $ancho, $alto);
//var_dump($tarifa['tarifa_encuadernacion_id']);
//var_dump($tarifa);
if (count($tarifa_value)>0) {
$result_data = $this->calcularTarifa($tarifa_value[0], $paginas, $POD<$tirada?false:true);
array_push($tarifas,
(object)[
'tarifa_id'=> $tarifa_value[0]->tarifa_enc_id,
'tarifa_nombre'=> $tarifa_value[0]->tarifa_enc_nombre,
'precio_unidad'=> $result_data[0],
'total'=> $result_data[1],
]);
}
else{
array_push($tarifas,
(object)[
'tarifa_id'=> $tarifa['tarifa_encuadernacion_id'],
'tarifa_nombre'=> $tarifa['tarifa_encuadernacion_nombre'],
'precio_unidad'=> -1,
'total'=> -1,
]);
}
}
return $tarifas;
}
public function delete($presupuesto_id){
public function calcularTarifa($tarifa, $paginas, $is_POD=false){
$precio_unidad = floatval($tarifa->precio_min) - (floatval($tarifa->precio_min) - floatval($tarifa->precio_max))/($tarifa->paginas_max - $tarifa->paginas_min) * ($paginas - $tarifa->paginas_min);
if ($paginas > $tarifa->paginas_max)
$precio_unidad = $tarifa->precio_max;
$precio_unidad = $precio_unidad* (1+ floatval($tarifa->margen)/100.0);
$total = $precio_unidad * $paginas;
if (!$is_POD){
$total += floatval($tarifa->tarifa_importe_fijo);
}
return [$precio_unidad, $total];
}
public function delete_line($presupuesto_id){
$builder = $this->db
->table($this->table . " t1")

0
ci4/app/Models/Presupuestos/PresupuestoEstadoModel.php Normal file → Executable file
View File

0
ci4/app/Models/Presupuestos/PresupuestoLineaModel.php Normal file → Executable file
View File

View File

0
ci4/app/Models/Presupuestos/PresupuestoModel.php Normal file → Executable file
View File

View File

View File

@ -30,8 +30,10 @@ class TipoPresupuestoTarifaEncuadernacionModel extends \App\Models\GoBaseModel
$builder = $this->db
->table($this->table . " t1")
->select("t1.tarifa_encuadernacion_id AS tarifa_encuadernacion_id")
->select("t1.tarifa_encuadernacion_id AS tarifa_encuadernacion_id, t2.nombre AS tarifa_encuadernacion_nombre")
->join("tarifa_encuadernacion t2", "t1.tarifa_encuadernacion_id = t2.id", "left")
->where("t1.tipo_presupuesto_id", $tipo_presupuesto)
->where($where);
return $builder->get()->getResultArray();
}