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')) {
$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 {
$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];
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 {
$coste_envio += $coste_direccion->coste;
}
@ -658,7 +690,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'gramaje' => $gramaje,
'excluirRotativa' => $excluirRotativa,
'paginas' => $paginas,
'paginasColor' => $paginas_color,
'paginas_color' => $paginas_color,
'pos_paginas_color' => $posPaginasColor,
'paginas_color_consecutivas' => $paginasColorConsecutivas,
'papelInteriorDiferente' => $papelInteriorDiferente
@ -1341,7 +1373,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$gramaje = $datos_entrada['interior']['gramaje'];
$excluirRotativa = $datos_entrada['interior']['excluirRotativa'];
$paginas = $datos_entrada['interior']['paginas'];
$paginas_color = $datos_entrada['interior']['paginasColor'];
$paginas_color = $datos_entrada['interior']['paginas_color'];
// Cubierta
@ -1432,6 +1464,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
$costeInterior = 0.0;
@ -1482,6 +1515,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
$costeInterior = 0.0;
@ -1514,20 +1548,21 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
}
if ($costeInterior <= 0){
if ($costeInterior <= 0) {
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener el interior',
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
$errorModel->insertError(
$datos_entrada['id'],
auth()->user()->id,
'No se puede obtener el interior',
$input_data
);
$return_data = [
'errors' => (object) ([
'status' => 1
]),
];
return $return_data;
}
// Cubierta
@ -1575,6 +1610,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
// Acabados Cubierta
$tarifaAcabadoCubierta = $this->obtenerTarifasAcabado($acabadosCubierta);
@ -1602,6 +1638,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
$coste_servicios += floatval($acabadoCubierta[0]->total);
}
@ -1658,6 +1695,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
$lomo_sobrecubierta = $lomo + floatval($linea_sobrecubierta['mano']);
@ -1688,6 +1726,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
$coste_servicios += floatval($acabadoSobrecubierta[0]->total);
@ -1753,6 +1792,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
}
}
@ -1792,6 +1832,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
@ -1838,7 +1879,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'POD' => $POD,
]);
array_push($serviciosAutomaticos, $resultado[0]);
if ($resultado[0]->total <= 0) {
$errorModel = new ErrorPresupuesto();
@ -1853,6 +1894,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
$coste_servicios += floatval($resultado[0]->total);
@ -1866,7 +1908,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'tarifa_id' => $servicio,
]);
array_push($serviciosAutomaticos, $resultado[0]);
if ($resultado[0]->precio <= 0){
if ($resultado[0]->precio <= 0) {
$errorModel = new ErrorPresupuesto();
$errorModel->insertError(
@ -1880,8 +1922,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'status' => 1
]),
];
return $return_data;
}
$coste_servicios += floatval($resultado[0]->precio);
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($peso, round($peso_interior + $peso_cubierta + $peso_sobrecubierta + $peso_guardas, 2));
if ($extra_info) {
$totalServicios -= $margenServicios;
$porcentajeMargenServicios = $margenServicios / ($margenServicios + $totalServicios) * 100;

View File

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

View File

@ -129,6 +129,7 @@ class PresupuestoModel extends \App\Models\BaseModel
"is_duplicado",
'paginas_color_consecutivas',
'papel_interior_diferente',
'paginasCuadernillo',
];
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_alto' => !$papel_formato_id ? $data['tamanio']['alto'] : null,
'titulo' => $data_cabecera['titulo'],
'autor' => $data_cabecera['autor'],
'ISBN' => $data_cabecera['isbn'],
'coleccion' => $data_cabecera['coleccion'],
'referencia_cliente' => $data_cabecera['referenciaCliente'],
'paginas' => $data['interior']['paginas'],
'tirada' => $tirada,
@ -424,7 +428,7 @@ class PresupuestoModel extends \App\Models\BaseModel
'merma_cubierta' => $extra_info['merma'],
'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'],
'papel_interior_diferente' => $data['interior']['papelInteriorDiferente'],
@ -495,29 +499,45 @@ class PresupuestoModel extends \App\Models\BaseModel
if (is_array($data)) {
// -- INTERIOR --
// 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'])
$key = 'bnhq';
else
$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(
'paginas' => intval($data['interior']['paginas']) - intval(intval($data['interior']['paginasColor'])),
'papel_id' => intval($data['interior']['papel_generico']['id']),
'gramaje' => intval($data['interior']['gramaje']),
'paginas' => intval($data['interior']['paginas']) - intval(intval($data['interior']['paginas_color'])),
'papel_id' => $papel_id,
'gramaje' => $gramaje,
);
}
// Si hay color
if (intval($data['interior']['paginasColor']) > 0) {
if (intval($data['interior']['paginas_color']) > 0) {
if ($data['isHq'])
$key = 'colorhq';
else
$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(
'paginas' => intval(intval($data['interior']['paginasColor'])),
'papel_id' => intval($data['interior']['papel_generico']['id']),
'gramaje' => intval($data['interior']['gramaje']),
'paginas' => intval(intval($data['interior']['paginas_color'])),
'papel_id' => $papel_id,
'gramaje' => $gramaje,
);
}
@ -555,7 +575,7 @@ class PresupuestoModel extends \App\Models\BaseModel
$builder = $this->db
->table($this->table . " t1")
->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.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,
@ -563,7 +583,7 @@ class PresupuestoModel extends \App\Models\BaseModel
t3.codigo AS codigo_encuadernacion,
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,"
);
);
$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->where("t1.is_deleted", 0);

View File

@ -16,7 +16,7 @@
<label for="autor" class="form-label">
<?= lang('Presupuestos.autor') ?>
</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 class="row justify-content-center">

View File

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

File diff suppressed because one or more lines are too long