trabajando en servicios encuadernacion (init)

This commit is contained in:
2023-11-21 20:36:12 +01:00
parent 58af5bf90f
commit 1d0681847a
17 changed files with 174 additions and 18 deletions

View File

@ -46,10 +46,23 @@ class PresupuestoEncuadernacionesModel extends \App\Models\GoBaseModel
public function initPresupuesto($tipoPresupuesto, $solapas){
public function initPresupuesto($id_presupuesto,$tipoPresupuesto, $solapas){
$model = model('App\Models\Presupuestos\TipoPresupuestoTarifaEncuadernacionModel');
$tarifas_ids = $model->get_tarifas($tipo_presupuesto,$solapas);
$modelTarifa = model('App\Models\Tarifas\TarifaEncuadernacionModel');
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)*/
}
}
public function delete($presupuesto_id){

View File

@ -0,0 +1,46 @@
<?php
namespace App\Models\Tarifas;
class TarifaEncuadernacionDimensionesModel extends \App\Models\GoBaseModel
{
protected $table = "tarifa_encuadernacion_dimensiones";
/**
* Whether primary key uses auto increment.
*
* @var bool
*/
protected $useAutoIncrement = true;
protected $allowedFields = [
];
protected $returnType = "App\Entities\Tarifas\TarifaEncuadernacionDimensionesEntity";
public static $labelField = "descripcion";
protected $validationRules = [
];
protected $validationMessages = [
];
/**
* Get resource data.
*
* @param string $search
*
* @return \CodeIgniter\Database\BaseBuilder
*/
public function getDimensiones(){
$builder = $this->db
->table($this->table . " t1")
->select("t1.id AS value, t1.keyword AS label")
->orderBy('t1.id', 'asc');
return $builder->get()->getResultObject();
}
}

View File

@ -13,10 +13,11 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel
protected $useAutoIncrement = true;
const SORTABLE = [
0 => "t1.paginas_libro_min",
1 => "t1.paginas_libro_max",
2 => "t1.precio_min",
3 => "t1.precio_max",
0 => "t1.dimensiones_id",
1 => "t1.paginas_libro_min",
2 => "t1.paginas_libro_max",
3 => "t1.precio_min",
4 => "t1.precio_max",
];
protected $allowedFields = [
@ -117,13 +118,16 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel
$builder = $this->db
->table($this->table . " t1")
->select(
"t1.id AS id, t1.tirada_encuadernacion_id AS tirada_encuadernacion_id, t1.paginas_libro_min AS paginas_libro_min, t1.paginas_libro_max AS paginas_libro_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.tirada_min AS tirada_min, t1.tirada_max AS tirada_max, t1.margen AS margen, t2.id AS tarifa_encuadernacion"
"t1.id AS id, t1.tirada_encuadernacion_id AS tirada_encuadernacion_id, t1.paginas_libro_min AS paginas_libro_min, t1.paginas_libro_max AS paginas_libro_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.tirada_min AS tirada_min,
t1.tirada_max AS tirada_max, t1.margen AS margen, t2.id AS tarifa_encuadernacion, t3.id AS dimensiones_id, t3.ancho_min, t3.ancho_max, , t3.alto_min, t3.alto_max"
);
//JJO
$builder->where('tirada_encuadernacion_id', $tirada_encuadernacion_id);
$builder->where("t1.is_deleted", 0);
$builder->join("tarifa_encuadernacion_tiradas t2", "t1.tirada_encuadernacion_id = t2.id", "left");
$builder->join("tarifa_encuadernacion_dimensiones t3", "t1.dimensiones_id = t3.id", "left");
return empty($search)
@ -151,7 +155,7 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel
$rows = $this->db
->table($this->table)
->select("id, paginas_libro_min, paginas_libro_max")
->select("id, paginas_libro_min, paginas_libro_max, dimensiones_id")
->where("is_deleted", 0)
->where("tirada_encuadernacion_id", $tirada_encuadernacion_id)
->get()->getResultObject();
@ -163,9 +167,11 @@ class TarifaEncuadernacionLineaModel extends \App\Models\GoBaseModel
continue;
}
}
if(check_overlap(floatval($data["paginas_libro_min"]), floatval($data["paginas_libro_max"]),
$row->paginas_libro_min, $row->paginas_libro_max)){
return lang('TarifaEncuadernacionLineas.validation.error_paginas_overlap');
if($data['dimensiones_id'] == $row->dimensiones_id){
if(check_overlap(floatval($data["paginas_libro_min"]), floatval($data["paginas_libro_max"]),
$row->paginas_libro_min, $row->paginas_libro_max)){
return lang('TarifaEncuadernacionLineas.validation.error_paginas_overlap');
}
}
}