diff --git a/.gitignore b/.gitignore index d6117b2a..08e5f6c6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ ci4/.env +.vscode/ + diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 22d5d6eb..1733ced5 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -346,7 +346,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $this->viewData['acabadosSobrecubierta'] = $this->getAcabadosSobrecubierta(); // Lineas Presupuesto - $this->viewData['lineasPresupuesto'] = (new PresupuestoLineaModel())->getLineasPresupuesto($id); + $this->viewData['lineasPresupuesto'] = $this->getLineasPresupuesto($presupuestoEntity); // Tarifas $this->viewData['serviciosAcabado'] = $this->getServiciosAcabado(); @@ -1302,4 +1302,26 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $model = model('App\Models\Presupuestos\PresupuestoDireccionesModel'); return $model->where('presupuesto_id', $presupuesto_id)->findAll(); } + + protected function getLineasPresupuesto($presupuestoEntity){ + $lineas = (new PresupuestoLineaModel())->getLineasPresupuesto($presupuestoEntity->id); + + $input_data = []; + $input_data['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id; + $input_data['tirada'] = $presupuestoEntity->tirada; + $input_data['merma'] = $presupuestoEntity->merma; + $input_data['papel_formato_id'] = $presupuestoEntity->papel_formato_id; + $input_data['papel_formato_personalizado'] = $presupuestoEntity->papel_formato_personalizado; + $input_data['papel_formato_ancho'] = $presupuestoEntity->papel_formato_ancho; + $input_data['papel_formato_alto'] = $presupuestoEntity->papel_formato_alto; + $input_data['cliente_id'] = $presupuestoEntity->cliente_id; + $input_data['solapas'] = $presupuestoEntity->solapas; + $input_data['solapas_ancho'] = $presupuestoEntity->solapas_ancho; + $input_data['solapas_sobrecubierta'] = $presupuestoEntity->solapas_sobrecubierta; + $input_data['solapas_ancho_sobrecubierta'] = $presupuestoEntity->solapas_ancho_sobrecubierta; + $input_data['lomo_cubierta'] = $presupuestoEntity->lomo_cubierta; + $input_data['lomo_sobrecubierta'] = $presupuestoEntity->lomo_sobrecubierta; + + return PresupuestoService::checkLineasPresupuesto($input_data, $lineas); + } } diff --git a/ci4/app/Controllers/Test.php b/ci4/app/Controllers/Test.php index 9b7e760b..898d4c55 100755 --- a/ci4/app/Controllers/Test.php +++ b/ci4/app/Controllers/Test.php @@ -17,19 +17,8 @@ class Test extends BaseController public function index() { - $presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel'); - $presupuesto = $presupuestoModel->find(44); - - $presupuestoAcabadosModel = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); - - echo '
';
- $presupuestoLineaModel = model('App\Models\Presupuestos\PresupuestoLineaModel');
- $presupuestoLineaModel->duplicateLineasPresupuesto(48, 75);
- echo '';
-
-
-
-
+ $status = PresupuestoService::checkMaquina(1995);
+ var_dump($status);
}
diff --git a/ci4/app/Entities/Presupuestos/PresupuestoEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
index 1d4616b0..99350fbc 100755
--- a/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
+++ b/ci4/app/Entities/Presupuestos/PresupuestoEntity.php
@@ -51,7 +51,8 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"comentarios_pdf" => null,
"comentarios_tarifa" => null,
"comentarios_produccion" => null,
- "lomo" => null,
+ "lomo_cubierta" => null,
+ "lomo_sobrecubierta" => null,
"total_presupuesto" => null,
"envios_recoge_cliente" => false,
"tirada_alternativa_json_data" => null,
@@ -120,7 +121,8 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"sobrecubiertas_ancho" => "float",
"merma" => "float",
"merma_cubierta" => "float",
- "lomo" => "?int",
+ "lomo_cubierta" => "?float",
+ "lomo_sobrecubierta" => "?float",
"total_presupuesto" => "?float",
"envios_recoge_cliente" => "boolean",
"aprobado_user_id" => "?int",
diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php
index 6d9f593d..5b588d92 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php
@@ -72,7 +72,8 @@ class PresupuestoModel extends \App\Models\GoBaseModel
"comentarios_pdf",
"comentarios_tarifa",
"comentarios_produccion",
- "lomo",
+ "lomo_cubierta",
+ "lomo_sobrecubierta",
"total_presupuesto",
"envios_recoge_cliente",
"tirada_alternativa_json_data",
@@ -277,8 +278,9 @@ class PresupuestoModel extends \App\Models\GoBaseModel
->table($this->table . " t1")
->select(
"t1.id AS id, t1.created_at AS fecha, t1.titulo AS titulo, t1.autor AS autor, t1.ferro AS ferro,
- t1.ferro_digital AS ferro_digital, t1.prototipo AS prototipo, t1.solapas AS solapas, t1.lomo AS lomo,
- t1.solapas_ancho AS solapas_ancho, t1.paginas AS paginas, t1.tirada AS tirada, t1.coleccion AS coleccion,
+ t1.ferro_digital AS ferro_digital, t1.prototipo AS prototipo, t1.solapas AS solapas, t1.solapas_sobrecubierta AS solapas_sobrecubierta,
+ t1.lomo_cubierta AS lomo_cubierta, t1.lomo_sobrecubierta AS lomo_sobrecubierta,
+ t1.solapas_ancho AS solapas_ancho, t1.solapas_sobrecubierta_ancho AS solapas_sobrecubierta_ancho, t1.paginas AS paginas, t1.tirada AS tirada, t1.coleccion AS coleccion,
t1.retractilado AS retractilado, t1.guardas AS guardas, t1.marcapaginas AS marcapaginas,
t1.comentarios_pdf AS comentarios_pdf, t1.tirada_alternativa_json_data AS tiradas_alternativas,
t1.total_presupuesto AS total_presupuesto, t1.total_precio_unidad AS total_precio_unidad,
diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php
index e2b865e4..2f3f949d 100755
--- a/ci4/app/Services/PresupuestoService.php
+++ b/ci4/app/Services/PresupuestoService.php
@@ -6,8 +6,11 @@ use CodeIgniter\Config\BaseService;
use App\Models\Configuracion\MaquinasTarifasImpresionModel;
use App\Models\Clientes\ClientePreciosModel;
-
-
+use App\Models\Configuracion\MaquinaModel;
+use App\Models\Configuracion\PapelImpresionModel;
+use App\Models\Configuracion\PapelGenericoModel;
+use App\Models\Configuracion\TipoPresupuestoModel;
+use App\Models\Configuracion\PapelFormatoModel;
class PresupuestoService extends BaseService
{
@@ -949,6 +952,193 @@ class PresupuestoService extends BaseService
return $opciones_papel;
}
+
+
+ public static function checkLineasPresupuesto($input_data, $array_lineas)
+ {
+ foreach ($array_lineas as $linea) {
+
+ if (!PresupuestoService::checkMaquina($linea->maquina_id) || !PresupuestoService::checkPapelImpresion($linea->papel_impresion_id)) {
+ // Generar linea con comparador
+ }
+ else{
+ $nueva_linea = PresupuestoService::obtenerValorLineaPresupuesto($input_data, $linea);
+ if(count($nueva_linea) >0){
+ if(round($nueva_linea['fields']['total_impresion'],2) != $linea->total_linea){
+ // Generar linea con comparador
+ }
+ }
+
+ }
+ }
+
+ return $array_lineas;
+ }
+
+ private static function obtenerValorLineaPresupuesto($input_data, $linea){
+
+ $tipo_impresion_id = $input_data['tipo_impresion_id'];
+ $tirada = $input_data['tirada'];
+ $merma = $input_data['merma'];
+ $papel_formato_id = $input_data['papel_formato_id'];
+ $papel_formato_personalizado = $input_data['papel_formato_personalizado'];
+ $ancho = $input_data['papel_formato_ancho'];
+ $alto = $input_data['papel_formato_alto'];
+ $cliente_id = $input_data['cliente_id'];
+ $solapas = $input_data['solapas'];
+ $solapas_sobrecubierta = $input_data['solapas_sobrecubierta'];
+ $solapas_ancho_cubierta = $input_data['solapas_ancho'];
+ $solapas_ancho_sobrecubierta = $input_data['solapas_ancho_sobrecubierta'];
+ $lomo_cubierta = $input_data['lomo_cubierta'];
+ $lomo_sobrecubierta = $input_data['lomo_sobrecubierta'];
+
+ if($papel_formato_personalizado == 0){
+ $papel_formato = (new PapelFormatoModel())->find($papel_formato_id);
+ $ancho = $papel_formato->ancho;
+ $alto = $papel_formato->alto;
+ }
+
+ $data = [];
+ $output_data = [];
+
+ $papel_impresion = (new PapelImpresionModel())->find($linea->papel_impresion_id);
+ $maquina = (new MaquinaModel())->find($linea->maquina_id);
+ $maquina->maquina_id = $maquina->id;
+ $maquina->maquina = $maquina->nombre;
+ $papel_generico = (new PapelGenericoModel())->find($linea->papel_id);
+ $papel_generico = array(
+ 'id' => $papel_generico->id,
+ 'nombre' => $papel_generico->nombre,
+ );
+
+ $data['datosPedido'] = (object)array(
+ 'paginas' => $linea->paginas,
+ 'tirada' => $tirada,
+ 'merma' => $merma,
+ 'ancho' => $ancho,
+ 'alto' => $alto,
+ 'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
+ 'isCosido' => (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id),
+ );
+ $data['cliente_id'] = $cliente_id;
+ $data['papel'] = $papel_impresion;
+ $data['maquina'] = $maquina;
+ $data['papel_generico'] = $papel_generico;
+ $data['a_favor_fibra'] = $linea->rotativa_a_favor_fibra;
+ $data['datosTipolog'] = [(object)array(
+ 'negro' => $linea->rotativa_negro,
+ 'cyan' => $linea->rotativa_cyan,
+ 'magenta' => $linea->rotativa_magenta,
+ 'amarillo' => $linea->rotativa_amarillo,
+ 'cg' => $linea->rotativa_cg,
+ 'gota_negro' => $linea->rotativa_gota_negro,
+ 'gota_color' => $linea->rotativa_gota_color,
+ )];
+ $data['gramaje'] = $linea->gramaje;
+
+ switch($linea->tipo){
+
+ case 'lp_bn':
+ case 'lp_bnhq':
+ case 'lp_color':
+ case 'lp_colorhq':
+ case 'lp_guardas':
+ $data['uso'] = 'interior';
+ $isColor = strpos($linea->tipo, 'color') !== false;
+ $isHq = strpos($linea->tipo, 'hq') !== false;
+ $tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro');
+ $opciones_papel = PresupuestoService::get_opciones_papel('interior', $isColor);
+
+ if($linea->tipo == 'lp_guardas'){
+ $data['datosPedido']->paginas_impresion = $linea->paginas_impresion;
+ // Para el caso de Fresado y Cosido tapa dura, las guardas son un diptico
+ // y hay que imprimirlas como "cosido" (dos hojas pegadas). En el caso de espiral
+ // o wire-o tapa dura, las guardas se imprimen como hojas sueltas
+ if ($tipo_impresion_id == 1 || $tipo_impresion_id == 3) {
+ $data['datosPedido']->isCosido = true;
+ } else if ($tipo_impresion_id == 5 || $tipo_impresion_id == 7) {
+ $data['datosPedido']->isCosido = false;
+ }
+ }
+
+ $data['tipo'] = $tipo;
+ $data['isColor'] = $isColor;
+ $data['opciones_papel'] = $opciones_papel;
+
+ $output_data = PresupuestoService::getLineaPresupuestoPlana($data);
+ break;
+
+
+ case 'lp_rot_color':
+ case 'lp_rot_bn':
+ $data['uso'] = 'interior';
+ $tipo = $linea->rotativa_pag_color>0 ? 'color' : 'negro';
+ $data['paginas'] = (object)array(
+ 'negro' => $linea->paginas-$linea->rotativa_pag_color,
+ 'color' => $linea->rotativa_pag_color,
+ );
+
+ $data['tipo'] = $tipo;
+ $data['parametrosRotativa'] = (object)array(
+ 'a_favor_fibra' => $linea->rotativa_a_favor_fibra,
+ 'bnPages' => $data['paginas']->negro,
+ 'colorPages' => $data['paginas']->color,
+ 'rotativa_negro' => $linea->rotativa_negro,
+ 'rotativa_cyan' => $linea->rotativa_cyan,
+ 'rotativa_magenta' => $linea->rotativa_magenta,
+ 'rotativa_amarillo' => $linea->rotativa_amarillo,
+ 'rotativa_gota_negro' => $linea->rotativa_gota_negro,
+ 'rotativa_gota_color' => $linea->rotativa_gota_color,
+ );
+
+ $output_data = PresupuestoService::getLineaPresupuestoRotativa($data);
+ break;
+
+ case 'lp_cubierta':
+ case 'lp_sobrecubierta':
+
+ $data['uso'] = ($linea->tipo == 'lp cubierta')? 'cubierta':'sobrecubierta';
+ $data['tipo'] = 'colorhq';
+ $data['isColor'] = true;
+ $data['datosPedido']->solapas = ($linea->tipo == 'lp cubierta')? $solapas : $solapas_sobrecubierta;
+ $data['datosPedido']->solapas_ancho = ($linea->tipo == 'lp cubierta')? $solapas_ancho_cubierta : $solapas_ancho_sobrecubierta;
+ $data['datosPedido']->lomo = ($linea->tipo == 'lp cubierta')? $lomo_cubierta : $lomo_sobrecubierta;
+
+ $opciones_papel = PresupuestoService::get_opciones_papel($data['uso'], true);
+ $data['opciones_papel'] = $opciones_papel;
+
+ $data['datosPedido']->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($data['uso'], $tipo_impresion_id, $data['datosPedido']);
+ $data['datosPedido']->altoExteriores = PresupuestoService::getAltoTotalExteriores($data['uso'], $tipo_impresion_id, $data['datosPedido']);
+
+ $output_data = PresupuestoService::getLineaPresupuestoPlana($data);
+ break;
+ }
+ return $output_data;
+ }
+
+
+ // Funcion que comprueba si existe una maquina
+ private static function checkMaquina($maquina_id){
+
+ $maquina = (new MaquinaModel())->find($maquina_id);
+ if (!$maquina) {
+ return false;
+ }
+ return true;
+ }
+
+
+ // Funcion que comprueba si existe un papel de impresion
+ private static function checkPapelImpresion($papel_impresion_id){
+
+ $papel = (new PapelImpresionModel())->find($papel_impresion_id);
+ if (!$papel) {
+ return false;
+ }
+ return true;
+ }
+
+
/**
* Devuelve la dimensión del lomo interior.
*/
diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.js
index 22ed5382..adadad68 100644
--- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.js
+++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.js
@@ -4001,7 +4001,7 @@ async function calcularPresupuesto_sobrecubierta(fromComparador=false, input_dat
merma: parseInt($('#mermacubierta').val()),
ancho: dimension.ancho,
alto: dimension.alto,
- lomo: getLomoLineasPresupuesto() + getLomoCubiertaLineasPresupuesto,
+ lomo: getLomoLineasPresupuesto() + getLomoCubiertaLineasPresupuesto(),
papel_generico_id: input_data.papel_generico_id,
papel_generico: input_data.papel_generico,
gramaje: input_data.gramaje,
@@ -4137,6 +4137,7 @@ function getLomoLineasPresupuesto(){
catch(error){
lomoTotal = 0
}
+ $('#lomo_cubierta').val(lomoTotal)
return lomoTotal
}
@@ -4152,6 +4153,7 @@ function getLomoCubiertaLineasPresupuesto(){
catch(error){
lomoTotal = 0
}
+ $('#lomo_sobrecubierta').val(lomoTotal+parseFloat($('#lomo_cubierta').val()))
return lomoTotal
}
diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php
index 5970f92a..30011d1f 100755
--- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php
+++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php
@@ -17,6 +17,10 @@
value="= $presupuestoEntity->id ?>">
+
+