cargando presu

This commit is contained in:
2024-10-19 20:26:52 +02:00
parent 1914cb01fe
commit 62a3706049
6 changed files with 1359 additions and 35 deletions

View File

@ -415,7 +415,24 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (!property_exists($coste_direccion, 'coste')) { if (!property_exists($coste_direccion, 'coste')) {
$return_data['errors']->envios = "No se ha podido calcular el coste de envío";
$errorModel = new ErrorPresupuesto();
$data['direccion'] = $direccion;
$data['peso'] = $return_data['peso'][$i];
$data['palets'] = $direccion['entregaPalets'] == 'true' ? 1 : 0;
$errorModel->insertError(
$id,
auth()->user()->id,
'No se ha podido calcular el coste de envío',
$data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
} else { } else {
$coste_envio += $coste_direccion->coste; $coste_envio += $coste_direccion->coste;
} }
@ -430,7 +447,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$coste_direccion = $this->getCosteEnvio(null, $return_data['peso'][$i], $tirada[$i], false)[0]; $coste_direccion = $this->getCosteEnvio(null, $return_data['peso'][$i], $tirada[$i], false)[0];
if (!property_exists($coste_direccion, 'coste')) { if (!property_exists($coste_direccion, 'coste')) {
$return_data['errors']->envios = "No se ha podido calcular el coste de envío"; $errorModel = new ErrorPresupuesto();
$data['direccion'] = 'Sin direccion';
$data['peso'] = $return_data['peso'][$i];
$data['palets'] = 'Sin direccion';
$errorModel->insertError(
$id,
auth()->user()->id,
'No se ha podido calcular el coste de envío',
$data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
} else { } else {
$coste_envio += $coste_direccion->coste; $coste_envio += $coste_direccion->coste;
} }
@ -658,7 +690,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'gramaje' => $gramaje, 'gramaje' => $gramaje,
'excluirRotativa' => $excluirRotativa, 'excluirRotativa' => $excluirRotativa,
'paginas' => $paginas, 'paginas' => $paginas,
'paginasColor' => $paginas_color, 'paginas_color' => $paginas_color,
'pos_paginas_color' => $posPaginasColor, 'pos_paginas_color' => $posPaginasColor,
'paginas_color_consecutivas' => $paginasColorConsecutivas, 'paginas_color_consecutivas' => $paginasColorConsecutivas,
'papelInteriorDiferente' => $papelInteriorDiferente 'papelInteriorDiferente' => $papelInteriorDiferente
@ -1341,7 +1373,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$gramaje = $datos_entrada['interior']['gramaje']; $gramaje = $datos_entrada['interior']['gramaje'];
$excluirRotativa = $datos_entrada['interior']['excluirRotativa']; $excluirRotativa = $datos_entrada['interior']['excluirRotativa'];
$paginas = $datos_entrada['interior']['paginas']; $paginas = $datos_entrada['interior']['paginas'];
$paginas_color = $datos_entrada['interior']['paginasColor']; $paginas_color = $datos_entrada['interior']['paginas_color'];
// Cubierta // Cubierta
@ -1432,6 +1464,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
$costeInterior = 0.0; $costeInterior = 0.0;
@ -1482,6 +1515,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
$costeInterior = 0.0; $costeInterior = 0.0;
@ -1514,20 +1548,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} }
} }
if ($costeInterior <= 0){ if ($costeInterior <= 0) {
$errorModel = new ErrorPresupuesto(); $errorModel = new ErrorPresupuesto();
$errorModel->insertError( $errorModel->insertError(
$datos_entrada['id'], $datos_entrada['id'],
auth()->user()->id, auth()->user()->id,
'No se puede obtener el interior', 'No se puede obtener el interior',
$input_data $input_data
); );
$return_data = [ $return_data = [
'errors' => (object) ([ 'errors' => (object) ([
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
// Cubierta // Cubierta
@ -1575,6 +1610,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
// Acabados Cubierta // Acabados Cubierta
$tarifaAcabadoCubierta = $this->obtenerTarifasAcabado($acabadosCubierta); $tarifaAcabadoCubierta = $this->obtenerTarifasAcabado($acabadosCubierta);
@ -1602,6 +1638,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
$coste_servicios += floatval($acabadoCubierta[0]->total); $coste_servicios += floatval($acabadoCubierta[0]->total);
} }
@ -1658,6 +1695,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
$lomo_sobrecubierta = $lomo + floatval($linea_sobrecubierta['mano']); $lomo_sobrecubierta = $lomo + floatval($linea_sobrecubierta['mano']);
@ -1688,6 +1726,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
$coste_servicios += floatval($acabadoSobrecubierta[0]->total); $coste_servicios += floatval($acabadoSobrecubierta[0]->total);
@ -1753,6 +1792,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
} }
} }
@ -1792,6 +1832,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
@ -1838,7 +1879,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'POD' => $POD, 'POD' => $POD,
]); ]);
array_push($serviciosAutomaticos, $resultado[0]); array_push($serviciosAutomaticos, $resultado[0]);
if ($resultado[0]->total <= 0) { if ($resultado[0]->total <= 0) {
$errorModel = new ErrorPresupuesto(); $errorModel = new ErrorPresupuesto();
@ -1853,6 +1894,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
$coste_servicios += floatval($resultado[0]->total); $coste_servicios += floatval($resultado[0]->total);
@ -1866,7 +1908,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'tarifa_id' => $servicio, 'tarifa_id' => $servicio,
]); ]);
array_push($serviciosAutomaticos, $resultado[0]); array_push($serviciosAutomaticos, $resultado[0]);
if ($resultado[0]->precio <= 0){ if ($resultado[0]->precio <= 0) {
$errorModel = new ErrorPresupuesto(); $errorModel = new ErrorPresupuesto();
$errorModel->insertError( $errorModel->insertError(
@ -1880,8 +1922,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1 'status' => 1
]), ]),
]; ];
return $return_data;
} }
$coste_servicios += floatval($resultado[0]->precio); $coste_servicios += floatval($resultado[0]->precio);
if ($extra_info) { if ($extra_info) {
@ -1893,7 +1936,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios) / $tirada[$t], 4)); array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios) / $tirada[$t], 4));
array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2)); array_push($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2));
if ($extra_info) { if ($extra_info) {
$totalServicios -= $margenServicios; $totalServicios -= $margenServicios;
$porcentajeMargenServicios = $margenServicios / ($margenServicios + $totalServicios) * 100; $porcentajeMargenServicios = $margenServicios / ($margenServicios + $totalServicios) * 100;

View File

@ -92,6 +92,7 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"is_duplicado" => false, "is_duplicado" => false,
'paginas_color_consecutivas' => null, 'paginas_color_consecutivas' => null,
'papel_interior_diferente' => null, 'papel_interior_diferente' => null,
'paginasCuadernillo' => null,
]; ];
protected $casts = [ protected $casts = [
"cliente_id" => "int", "cliente_id" => "int",
@ -159,5 +160,6 @@ class PresupuestoEntity extends \CodeIgniter\Entity\Entity
"is_duplicado" => "boolean", "is_duplicado" => "boolean",
'paginas_color_consecutivas' => "boolean", 'paginas_color_consecutivas' => "boolean",
'papel_interior_diferente' => "boolean", 'papel_interior_diferente' => "boolean",
'paginasCuadernillo' => "int",
]; ];
} }

View File

@ -129,6 +129,7 @@ class PresupuestoModel extends \App\Models\BaseModel
"is_duplicado", "is_duplicado",
'paginas_color_consecutivas', 'paginas_color_consecutivas',
'papel_interior_diferente', 'papel_interior_diferente',
'paginasCuadernillo',
]; ];
protected $returnType = "App\Entities\Presupuestos\PresupuestoEntity"; protected $returnType = "App\Entities\Presupuestos\PresupuestoEntity";
@ -412,6 +413,9 @@ class PresupuestoModel extends \App\Models\BaseModel
'papel_formato_ancho' => !$papel_formato_id ? $data['tamanio']['ancho'] : null, 'papel_formato_ancho' => !$papel_formato_id ? $data['tamanio']['ancho'] : null,
'papel_formato_alto' => !$papel_formato_id ? $data['tamanio']['alto'] : null, 'papel_formato_alto' => !$papel_formato_id ? $data['tamanio']['alto'] : null,
'titulo' => $data_cabecera['titulo'], 'titulo' => $data_cabecera['titulo'],
'autor' => $data_cabecera['autor'],
'ISBN' => $data_cabecera['isbn'],
'coleccion' => $data_cabecera['coleccion'],
'referencia_cliente' => $data_cabecera['referenciaCliente'], 'referencia_cliente' => $data_cabecera['referenciaCliente'],
'paginas' => $data['interior']['paginas'], 'paginas' => $data['interior']['paginas'],
'tirada' => $tirada, 'tirada' => $tirada,
@ -424,7 +428,7 @@ class PresupuestoModel extends \App\Models\BaseModel
'merma_cubierta' => $extra_info['merma'], 'merma_cubierta' => $extra_info['merma'],
'paginasCuadernillo' => $data['paginasCuadernillo'], 'paginasCuadernillo' => $data['paginasCuadernillo'],
'pos_paginas_color' => $data['interior']['pos_paginas_color'], 'comp_pos_paginas_color' => $data['interior']['pos_paginas_color'],
'paginas_color_consecutivas' => $data['interior']['paginas_color_consecutivas'], 'paginas_color_consecutivas' => $data['interior']['paginas_color_consecutivas'],
'papel_interior_diferente' => $data['interior']['papelInteriorDiferente'], 'papel_interior_diferente' => $data['interior']['papelInteriorDiferente'],
@ -495,29 +499,45 @@ class PresupuestoModel extends \App\Models\BaseModel
if (is_array($data)) { if (is_array($data)) {
// -- INTERIOR -- // -- INTERIOR --
// Si hay negro // Si hay negro
if (intval($data['interior']['paginas']) > intval($data['interior']['paginasColor'])) { if (intval($data['interior']['paginas']) > intval($data['interior']['paginas_color'])) {
if ($data['isHq']) if ($data['isHq'])
$key = 'bnhq'; $key = 'bnhq';
else else
$key = 'bn'; $key = 'bn';
if (array_key_exists('id', $data['interior']['papel_generico'])) {
$papel_id = intval($data['interior']['papel_generico']['id']);
$gramaje = intval($data['interior']['gramaje']);
} else {
$papel_id = intval($data['interior']['papel_generico']['negro']['id']);
$gramaje = intval($data['interior']['gramaje']['negro']);
}
$values[$key] = array( $values[$key] = array(
'paginas' => intval($data['interior']['paginas']) - intval(intval($data['interior']['paginasColor'])), 'paginas' => intval($data['interior']['paginas']) - intval(intval($data['interior']['paginas_color'])),
'papel_id' => intval($data['interior']['papel_generico']['id']), 'papel_id' => $papel_id,
'gramaje' => intval($data['interior']['gramaje']), 'gramaje' => $gramaje,
); );
} }
// Si hay color // Si hay color
if (intval($data['interior']['paginasColor']) > 0) { if (intval($data['interior']['paginas_color']) > 0) {
if ($data['isHq']) if ($data['isHq'])
$key = 'colorhq'; $key = 'colorhq';
else else
$key = 'color'; $key = 'color';
if (array_key_exists('id', $data['interior']['papel_generico'])) {
$papel_id = intval($data['interior']['papel_generico']['id']);
$gramaje = intval($data['interior']['gramaje']);
} else {
$papel_id = intval($data['interior']['papel_generico']['color']['id']);
$gramaje = intval($data['interior']['gramaje']['color']);
}
$values[$key] = array( $values[$key] = array(
'paginas' => intval(intval($data['interior']['paginasColor'])), 'paginas' => intval(intval($data['interior']['paginas_color'])),
'papel_id' => intval($data['interior']['papel_generico']['id']), 'papel_id' => $papel_id,
'gramaje' => intval($data['interior']['gramaje']), 'gramaje' => $gramaje,
); );
} }
@ -555,7 +575,7 @@ class PresupuestoModel extends \App\Models\BaseModel
$builder = $this->db $builder = $this->db
->table($this->table . " t1") ->table($this->table . " t1")
->select( ->select(
"t1.id AS numero, t1.tipo_impresion_id as tipo, t1.tirada AS unidades, t1.total_aceptado as total, t1.paginas AS paginas, "t1.id AS numero, t1.tipo_impresion_id as tipo, t1.tirada AS unidades, t1.total_aceptado as total, t1.paginas AS paginas,
t1.titulo AS titulo, t1.autor AS autor, t1.isbn AS isbn, t1.titulo AS titulo, t1.autor AS autor, t1.isbn AS isbn,
t1.papel_formato_id AS papel_formato_id, t1.papel_formato_personalizado AS papel_formato_personalizado, t1.papel_formato_id AS papel_formato_id, t1.papel_formato_personalizado AS papel_formato_personalizado,
t1.papel_formato_ancho AS papel_formato_ancho, t1.papel_formato_alto AS papel_formato_alto, t1.papel_formato_ancho AS papel_formato_ancho, t1.papel_formato_alto AS papel_formato_alto,
@ -563,7 +583,7 @@ class PresupuestoModel extends \App\Models\BaseModel
t3.codigo AS codigo_encuadernacion, t3.codigo AS codigo_encuadernacion,
t1.solapas AS solapas_cubierta, CAST(t1.solapas_ancho AS INT) AS solapas_ancho_cubierta, t1.solapas AS solapas_cubierta, CAST(t1.solapas_ancho AS INT) AS solapas_ancho_cubierta,
t1.solapas_sobrecubierta AS solapas_sobrecubierta, CAST(t1.solapas_ancho_sobrecubierta AS INT) AS solapas_ancho_sobrecubierta," t1.solapas_sobrecubierta AS solapas_sobrecubierta, CAST(t1.solapas_ancho_sobrecubierta AS INT) AS solapas_ancho_sobrecubierta,"
); );
$builder->join("lg_papel_formato t2", "t1.papel_formato_id = t2.id", "left"); $builder->join("lg_papel_formato t2", "t1.papel_formato_id = t2.id", "left");
$builder->join("tipos_presupuestos t3", "t1.tipo_impresion_id = t3.id", "left"); $builder->join("tipos_presupuestos t3", "t1.tipo_impresion_id = t3.id", "left");
$builder->where("t1.is_deleted", 0); $builder->where("t1.is_deleted", 0);

View File

@ -16,7 +16,7 @@
<label for="autor" class="form-label"> <label for="autor" class="form-label">
<?= lang('Presupuestos.autor') ?> <?= lang('Presupuestos.autor') ?>
</label> </label>
<input type="text" id="autor" placeholder="Autor" name="autor" maxLength="150" class="form-control" value=""> <input type="text" id="autor" placeholder="Autor" name="autor" maxLength="150" class="form-control text-center" value="">
</div> </div>
<div class="row justify-content-center"> <div class="row justify-content-center">

View File

@ -354,11 +354,11 @@ class DatosGenerales {
if (datos.tirada4) if (datos.tirada4)
this.tirada4.val(parseInt(datos.tirada4)); this.tirada4.val(parseInt(datos.tirada4));
if (datos.checkFormatoPersonalizado) { if (datos.papelFormatoPersonalizado) {
this.checkFormatoPersonalizado.prop(':checked', datos.checkFormatoPersonalizado); this.checkFormatoPersonalizado.prop(':checked', datos.checkFormatoPersonalizado);
this.checkFormatoPersonalizado.trigger('change'); this.checkFormatoPersonalizado.trigger('change');
this.papel_formato_alto.val(datos.papelFormatoAlto); this.altoPersonalizado.val(datos.papelFormatoAlto);
this.papel_formato_ancho.val(datos.papelFormatoAncho); this.anchoPersonalizado.val(datos.papelFormatoAncho);
} }
else { else {
this.formatoLibro.setOption(datos.papelFormatoId, datos.papelFormatoNombre); this.formatoLibro.setOption(datos.papelFormatoId, datos.papelFormatoNombre);

File diff suppressed because one or more lines are too long