mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
trabajando en pedidos 3
This commit is contained in:
@ -67,4 +67,22 @@ class PedidoModel extends \App\Models\BaseModel
|
||||
|
||||
return $builder->get()->getResultObject();
|
||||
}
|
||||
|
||||
public function obtenerLineasPedido($pedido_id){
|
||||
$builder = $this->db
|
||||
->table($this->table . " t1")
|
||||
->select(
|
||||
"t2.presupuesto_id"
|
||||
);
|
||||
$builder->where("t1.id", $pedido_id);
|
||||
$builder->join("pedidos_linea t2", "t2.pedido_id = t1.id", "left");
|
||||
$model_presupuesto = model("App\Models\Presupuestos\PresupuestoModel");
|
||||
$lineasPresupuesto = [];
|
||||
|
||||
foreach($builder->get()->getResultObject() as $row){
|
||||
array_push($lineasPresupuesto, $model_presupuesto->generarLineaPedido($row->presupuesto_id)[0]);
|
||||
}
|
||||
|
||||
return $lineasPresupuesto;
|
||||
}
|
||||
}
|
||||
@ -538,5 +538,172 @@ class PresupuestoModel extends \App\Models\BaseModel
|
||||
return $json;
|
||||
}
|
||||
|
||||
public function generarLineaPedido($presupuesto_id)
|
||||
{
|
||||
$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.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,
|
||||
CONCAT(CAST(t2.ancho AS INT), 'x', CAST(t2.alto AS INT)) AS tamanio,
|
||||
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);
|
||||
$builder->where("t1.id", $presupuesto_id);
|
||||
$presupuesto = $builder->get()->getResultObject();
|
||||
if(count($presupuesto) > 0){
|
||||
|
||||
$modelLinea = model('App\Models\Presupuestos\PresupuestoLineaModel');
|
||||
$lineas = $modelLinea->where('presupuesto_id', $presupuesto_id)->findAll();
|
||||
|
||||
$presupuesto = $presupuesto[0];
|
||||
|
||||
// Libro
|
||||
if($presupuesto->tipo < 10){
|
||||
if($presupuesto->papel_formato_personalizado == 1){
|
||||
$presupuesto->tamanio= $presupuesto->papel_formato_ancho . "x" . $presupuesto->papel_formato_alto;
|
||||
}
|
||||
|
||||
$presupuesto->concepto = sprintf(lang('Pedidos.lineasTemplates.libro'),
|
||||
$presupuesto->numero,
|
||||
$presupuesto->unidades,
|
||||
$presupuesto->paginas,
|
||||
$presupuesto->titulo,
|
||||
$presupuesto->autor,
|
||||
$presupuesto->isbn,
|
||||
$presupuesto->tamanio);
|
||||
$presupuesto->concepto .= $this->generarConceptoLineasPresupuestoLibro($lineas, $presupuesto);
|
||||
|
||||
$presupuesto = (object)[
|
||||
'numero' => $presupuesto->numero,
|
||||
'unidades' => $presupuesto->unidades,
|
||||
'total' => $presupuesto->total,
|
||||
'concepto' => $presupuesto->concepto,
|
||||
];
|
||||
}
|
||||
return [$presupuesto];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private function generarConceptoLineasPresupuestoLibro($lineas, $presupuesto){
|
||||
|
||||
$model_papel = model('App\Models\Configuracion\PapelImpresionModel');
|
||||
$description_interior = "";
|
||||
$description_cubierta = "";
|
||||
$description_sobrecubierta = "";
|
||||
$paginas_negro = 0;
|
||||
$paginas_color = 0;
|
||||
$papel_negro = "";
|
||||
$papel_color = "";
|
||||
$gramaje_negro = 0;
|
||||
$gramaje_color = 0;
|
||||
|
||||
$lp_bn_lines = array_filter($lineas, function($linea) {
|
||||
return strpos($linea->tipo, 'lp_bn') === 0;
|
||||
});
|
||||
$lp_color_lines = array_filter($lineas, function($linea) {
|
||||
return strpos($linea->tipo, 'lp_color') === 0;
|
||||
});
|
||||
|
||||
$lp_rot_bn = array_filter($lineas, function($linea) {
|
||||
return strpos($linea->tipo, 'lp_rot_bn') === 0;
|
||||
});
|
||||
|
||||
$lp_rot_color = array_filter($lineas, function($linea) {
|
||||
return strpos($linea->tipo, 'lp_rot_color') === 0;
|
||||
});
|
||||
|
||||
if(count($lp_bn_lines) > 0){
|
||||
$lp_bn_lines = array_values($lp_bn_lines)[0];
|
||||
$paginas_negro = $lp_bn_lines->paginas;
|
||||
$gramaje_negro = $lp_bn_lines->gramaje;
|
||||
$papel_negro = $model_papel->where('id', $lp_bn_lines->papel_impresion_id)->first()->nombre;
|
||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||
strval($paginas_negro),
|
||||
$papel_negro,
|
||||
strval($gramaje_negro)) . ". ";
|
||||
}
|
||||
if(count($lp_color_lines) > 0){
|
||||
$lp_color_lines = array_values($lp_color_lines)[0];
|
||||
$paginas_color = $lp_color_lines->paginas;
|
||||
$gramaje_color = $lp_color_lines->gramaje;
|
||||
$papel_color = $model_papel->where('id', $lp_color_lines->papel_impresion_id)->first()->nombre;
|
||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||
strval($paginas_color),
|
||||
$papel_color,
|
||||
strval($gramaje_color)) . ". ";
|
||||
}
|
||||
|
||||
if(count($lp_rot_bn) > 0){
|
||||
$lp_rot_bn = array_values($lp_rot_bn)[0];
|
||||
$paginas_negro = $lp_rot_bn->paginas;
|
||||
$gramaje_negro = $lp_rot_bn->gramaje;
|
||||
$papel_negro = $model_papel->where('id', $lp_rot_bn->papel_impresion_id)->first()->nombre;
|
||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||
strval($paginas_negro),
|
||||
$papel_negro,
|
||||
strval($gramaje_negro)) . ". ";
|
||||
}
|
||||
|
||||
if(count($lp_rot_color) > 0){
|
||||
$lp_rot_color = array_values($lp_rot_color)[0];
|
||||
$paginas_negro = intval($lp_rot_color->paginas)-intval($lp_rot_color->rotativa_pag_color);
|
||||
$gramaje = $lp_rot_color->gramaje;
|
||||
$papel = $model_papel->where('id', $lp_rot_color->papel_impresion_id)->first()->nombre;
|
||||
if($paginas_negro > 0){
|
||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||
strval($paginas_negro),
|
||||
$papel,
|
||||
strval($gramaje)) . ". ";
|
||||
}
|
||||
|
||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||
strval($lp_rot_color->rotativa_pag_color),
|
||||
$papel,
|
||||
strval($gramaje)) . ". ";
|
||||
}
|
||||
|
||||
$lp_cubierta = array_filter($lineas, function($linea) {
|
||||
return strpos($linea->tipo, 'lp_cubierta') === 0;
|
||||
});
|
||||
$lp_sobrecubierta = array_filter($lineas, function($linea) {
|
||||
return strpos($linea->tipo, 'lp_sobrecubierta') === 0;
|
||||
});
|
||||
|
||||
if(count($lp_cubierta) > 0){
|
||||
$lp_cubierta = array_values($lp_cubierta)[0];
|
||||
if($lp_cubierta->paginas == 2){
|
||||
$lp_cubierta->caras = lang('Pedidos.unaCara');
|
||||
}
|
||||
else{
|
||||
$lp_cubierta->caras = lang('Pedidos.dosCaras');
|
||||
}
|
||||
$description_cubierta = sprintf(lang('Pedidos.lineasTemplates.libro_linea_cubierta'),
|
||||
$lp_cubierta->caras,
|
||||
$model_papel->where('id', $lp_cubierta->papel_impresion_id)->first()->nombre,
|
||||
strval($lp_cubierta->gramaje));
|
||||
$description_cubierta .= ($presupuesto->solapas_cubierta==1? sprintf(lang('Pedidos.lineasTemplates.libro_solapas'), $presupuesto->solapas_ancho_cubierta):". ");
|
||||
}
|
||||
if(count($lp_sobrecubierta) > 0){
|
||||
$lp_sobrecubierta = array_values($lp_sobrecubierta)[0];
|
||||
$description_sobrecubierta = sprintf(lang('Pedidos.lineasTemplates.libro_linea_sobrecubierta'),
|
||||
$model_papel->where('id', $lp_sobrecubierta->papel_impresion_id)->first()->nombre,
|
||||
strval($lp_sobrecubierta->gramaje));
|
||||
$description_sobrecubierta .= ($presupuesto->solapas_sobrecubierta==1? sprintf(lang('Pedidos.lineasTemplates.libro_solapas'), $presupuesto->solapas_ancho_sobrecubierta):". ");
|
||||
}
|
||||
|
||||
$acabado = sprintf(lang('Pedidos.lineasTemplates.libro_encuadernacion'),
|
||||
lang('Presupuestos.' . $presupuesto->codigo_encuadernacion));
|
||||
|
||||
return $description_interior. $description_cubierta . $description_sobrecubierta . $acabado;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user