mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
xml file generation
This commit is contained in:
@ -328,11 +328,10 @@ class Pedido extends \App\Controllers\BaseResourceController
|
|||||||
}
|
}
|
||||||
public function get_xml_pedido($pedido_id)
|
public function get_xml_pedido($pedido_id)
|
||||||
{
|
{
|
||||||
$data_pedido = $this->model->getPedidoClientePresupuesto($pedido_id);
|
|
||||||
$data_pedido_presupuesto = $this->model->getPedidoPresupuestoLineas($pedido_id);
|
$data = PedidoXMLService::generate_xml($pedido_id);
|
||||||
// PedidoXMLService::generate_xml($data);
|
|
||||||
// $xml_service = new PedidoXMLService($this->model);
|
// $xml_service = new PedidoXMLService($this->model);
|
||||||
return $this->respond(["pedido_presupuesto" => $data_pedido,"pedido_presupuesto_linea" => $data_pedido_presupuesto]);
|
return $this->respond($data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,25 +97,31 @@ class PedidoModel extends \App\Models\BaseModel
|
|||||||
'pedidos.id as pedidoId',
|
'pedidos.id as pedidoId',
|
||||||
'clientes.nombre as customerName',
|
'clientes.nombre as customerName',
|
||||||
'presupuestos.total_aceptado as totalAceptado',
|
'presupuestos.total_aceptado as totalAceptado',
|
||||||
|
'presupuestos.id as presupuestoId',
|
||||||
'presupuestos.margen',
|
'presupuestos.margen',
|
||||||
'presupuestos.inc_rei',
|
'presupuestos.inc_rei',
|
||||||
'presupuestos.tirada',
|
'presupuestos.tirada',
|
||||||
'presupuestos.titulo',
|
'presupuestos.titulo',
|
||||||
'presupuestos.paginas',
|
'presupuestos.paginas',
|
||||||
|
'presupuestos.solapas',
|
||||||
|
'presupuestos.solapas_ancho',
|
||||||
|
'presupuestos.marcapaginas',
|
||||||
|
'presupuestos.comentarios_cliente',
|
||||||
|
'presupuestos.comentarios_safekat',
|
||||||
'presupuestos.papel_formato_personalizado',
|
'presupuestos.papel_formato_personalizado',
|
||||||
'presupuestos.papel_formato_ancho as papelAnchoPersonalidado ',
|
'presupuestos.papel_formato_ancho as papelAnchoPersonalidado ',
|
||||||
'presupuestos.papel_formato_alto as papelAltoPersonalidado',
|
'presupuestos.papel_formato_alto as papelAltoPersonalidado',
|
||||||
'lg_papel_formato.ancho as lgPapelFormatoAncho ',
|
'lg_papel_formato.ancho as lgPapelFormatoAncho ',
|
||||||
'lg_papel_formato.alto as lgPapelFormatoAlto',
|
'lg_papel_formato.alto as lgPapelFormatoAlto',
|
||||||
'lg_tarifa_acabado.nombre as lgTarifaAcabadoNombre',
|
|
||||||
|
|
||||||
])
|
])
|
||||||
->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left')
|
->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left')
|
||||||
->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left')
|
->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left')
|
||||||
|
->join('presupuesto_ficheros', 'presupuesto_ficheros.presupuesto_id = presupuestos.id', 'left')
|
||||||
// ->join('presupuesto_linea','presupuestos.id = presupuesto_linea.presupuesto_id','left')
|
// ->join('presupuesto_linea','presupuestos.id = presupuesto_linea.presupuesto_id','left')
|
||||||
->join('clientes', 'clientes.id = presupuestos.cliente_id', 'left')
|
->join('clientes', 'clientes.id = presupuestos.cliente_id', 'left')
|
||||||
->join('lg_papel_formato', 'lg_papel_formato.id = presupuestos.papel_formato_id', 'left')
|
->join('lg_papel_formato', 'lg_papel_formato.id = presupuestos.papel_formato_id', 'left')
|
||||||
->join('lg_tarifa_acabado', 'lg_tarifa_acabado.id = presupuestos.acabado_cubierta_id', 'left')
|
|
||||||
|
|
||||||
->where('pedidos.id', $pedido_id);
|
->where('pedidos.id', $pedido_id);
|
||||||
$cliente_presupuesto = $query->get()->getFirstRow();
|
$cliente_presupuesto = $query->get()->getFirstRow();
|
||||||
return $cliente_presupuesto;
|
return $cliente_presupuesto;
|
||||||
@ -124,17 +130,18 @@ class PedidoModel extends \App\Models\BaseModel
|
|||||||
{
|
{
|
||||||
$query = $this->db->table($this->table)
|
$query = $this->db->table($this->table)
|
||||||
->select([
|
->select([
|
||||||
'presupuesto_linea.*',
|
'pedidos.id as pedidoId',
|
||||||
|
'presupuesto_linea.tipo',
|
||||||
|
'presupuesto_linea.paginas',
|
||||||
|
'presupuesto_linea.gramaje',
|
||||||
'lg_papel_generico.code as papelCode',
|
'lg_papel_generico.code as papelCode',
|
||||||
|
|
||||||
])
|
])
|
||||||
->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left')
|
->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left')
|
||||||
->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left')
|
->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left')
|
||||||
->join('presupuesto_linea', 'presupuestos.id = presupuesto_linea.presupuesto_id', 'left')
|
->join('presupuesto_linea', 'presupuestos.id = presupuesto_linea.presupuesto_id', 'left')
|
||||||
->join('lg_papel_generico', 'lg_papel_generico.id = presupuesto_linea.papel_id', 'left')
|
->join('lg_papel_generico', 'lg_papel_generico.id = presupuesto_linea.papel_id', 'left')
|
||||||
|
|
||||||
|
|
||||||
->where('pedidos.id', $pedido_id);
|
->where('pedidos.id', $pedido_id);
|
||||||
|
|
||||||
$pedido_presupuesto_lineas = $query->get()->getResultObject();
|
$pedido_presupuesto_lineas = $query->get()->getResultObject();
|
||||||
return $pedido_presupuesto_lineas;
|
return $pedido_presupuesto_lineas;
|
||||||
}
|
}
|
||||||
@ -142,12 +149,15 @@ class PedidoModel extends \App\Models\BaseModel
|
|||||||
{
|
{
|
||||||
$query = $this->db->table($this->table)
|
$query = $this->db->table($this->table)
|
||||||
->select([
|
->select([
|
||||||
|
'pedidos.id as pedidoId',
|
||||||
|
'presupuestos.id as presupuestoId',
|
||||||
'clientes.nombre as customerName',
|
'clientes.nombre as customerName',
|
||||||
'presupuesto_direcciones.*',
|
'presupuesto_direcciones.*',
|
||||||
'lg_paises.code3'
|
'lg_paises.code3 as paisCode3'
|
||||||
])
|
])
|
||||||
->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left')
|
->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left')
|
||||||
->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left')
|
->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left')
|
||||||
|
->join('presupuesto_direcciones', 'presupuestos.id = presupuesto_direcciones.presupuesto_id', 'left')
|
||||||
->join('clientes', 'clientes.id = presupuestos.cliente_id', 'left')
|
->join('clientes', 'clientes.id = presupuestos.cliente_id', 'left')
|
||||||
->join('cliente_direcciones', 'clientes.id = cliente_direcciones.cliente_id', 'left')
|
->join('cliente_direcciones', 'clientes.id = cliente_direcciones.cliente_id', 'left')
|
||||||
->join('lg_paises', 'lg_paises.id = presupuesto_direcciones.pais_id', 'left')
|
->join('lg_paises', 'lg_paises.id = presupuesto_direcciones.pais_id', 'left')
|
||||||
@ -155,4 +165,18 @@ class PedidoModel extends \App\Models\BaseModel
|
|||||||
$pedido_cliente_direcciones = $query->get()->getResultObject();
|
$pedido_cliente_direcciones = $query->get()->getResultObject();
|
||||||
return $pedido_cliente_direcciones;
|
return $pedido_cliente_direcciones;
|
||||||
}
|
}
|
||||||
|
public function getPedidoPresupuestoFicheros($pedido_id)
|
||||||
|
{
|
||||||
|
$query = $this->db->table($this->table)
|
||||||
|
->select([
|
||||||
|
'presupuesto_ficheros.nombre as fileName',
|
||||||
|
'presupuesto_ficheros.file_path as filePath'
|
||||||
|
])
|
||||||
|
->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left')
|
||||||
|
->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left')
|
||||||
|
->join('presupuesto_ficheros', 'presupuesto_ficheros.presupuesto_id = presupuestos.id', 'left')
|
||||||
|
->where('pedidos.id', $pedido_id);
|
||||||
|
$presupuesto_ficheros = $query->get()->getFirstRow();
|
||||||
|
return $presupuesto_ficheros;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -326,7 +326,8 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
return $builder;
|
return $builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getListaPresupuestosCliente($search = [] , $clienteId){
|
function getListaPresupuestosCliente($search = [], $clienteId)
|
||||||
|
{
|
||||||
|
|
||||||
$builder = $this->db
|
$builder = $this->db
|
||||||
->table($this->table . " t1")
|
->table($this->table . " t1")
|
||||||
@ -469,8 +470,7 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
if ($id != 0) {
|
if ($id != 0) {
|
||||||
$this->db->table($this->table)->where('id', $id)->update($fields);
|
$this->db->table($this->table)->where('id', $id)->update($fields);
|
||||||
return $id;
|
return $id;
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$this->db->table($this->table)->insert($fields);
|
$this->db->table($this->table)->insert($fields);
|
||||||
return $this->db->insertID();
|
return $this->db->insertID();
|
||||||
}
|
}
|
||||||
@ -532,7 +532,6 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
'paginas' => intval($data['datos_guardas']['caras']),
|
'paginas' => intval($data['datos_guardas']['caras']),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
$json = json_encode($values);
|
$json = json_encode($values);
|
||||||
return $json;
|
return $json;
|
||||||
@ -572,17 +571,18 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
|
|
||||||
if ($forFactura) {
|
if ($forFactura) {
|
||||||
$presupuesto->concepto = sprintf(lang('Pedidos.lineasTemplates.pedido'), $pedido_id);
|
$presupuesto->concepto = sprintf(lang('Pedidos.lineasTemplates.pedido'), $pedido_id);
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$presupuesto->concepto = sprintf(lang('Pedidos.lineasTemplates.presupuesto'), $presupuesto->numero);
|
$presupuesto->concepto = sprintf(lang('Pedidos.lineasTemplates.presupuesto'), $presupuesto->numero);
|
||||||
}
|
}
|
||||||
$presupuesto->concepto .= sprintf(lang('Pedidos.lineasTemplates.libro'),
|
$presupuesto->concepto .= sprintf(
|
||||||
|
lang('Pedidos.lineasTemplates.libro'),
|
||||||
$presupuesto->unidades,
|
$presupuesto->unidades,
|
||||||
$presupuesto->paginas,
|
$presupuesto->paginas,
|
||||||
$presupuesto->titulo,
|
$presupuesto->titulo,
|
||||||
$presupuesto->autor,
|
$presupuesto->autor,
|
||||||
$presupuesto->isbn,
|
$presupuesto->isbn,
|
||||||
$presupuesto->tamanio);
|
$presupuesto->tamanio
|
||||||
|
);
|
||||||
$presupuesto->concepto .= $this->generarConceptoLineasPresupuestoLibro($lineas, $presupuesto);
|
$presupuesto->concepto .= $this->generarConceptoLineasPresupuestoLibro($lineas, $presupuesto);
|
||||||
|
|
||||||
$presupuesto = (object)[
|
$presupuesto = (object)[
|
||||||
@ -594,10 +594,67 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
}
|
}
|
||||||
return [$presupuesto];
|
return [$presupuesto];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public function getServiciosPresupuesto($presupuesto_id)
|
||||||
|
{
|
||||||
|
$queryAcabado = $this->db->table($this->table)
|
||||||
|
->select(
|
||||||
|
[
|
||||||
|
'lg_tarifa_acabado.id',
|
||||||
|
'lg_tarifa_acabado.nombre',
|
||||||
|
|
||||||
private function generarConceptoLineasPresupuestoLibro($lineas, $presupuesto){
|
|
||||||
|
]
|
||||||
|
)
|
||||||
|
->join('presupuesto_acabados', 'presupuesto_acabados.presupuesto_id = presupuestos.id', 'left')
|
||||||
|
->join('lg_tarifa_acabado', 'lg_tarifa_acabado.id = presupuesto_acabados.tarifa_acabado_id', 'left')
|
||||||
|
->where('presupuestos.id', $presupuesto_id);
|
||||||
|
|
||||||
|
$queryPreimpresion = $this->db->table($this->table)
|
||||||
|
->select(
|
||||||
|
[
|
||||||
|
'lg_tarifa_preimpresion.id',
|
||||||
|
'lg_tarifa_preimpresion.nombre',
|
||||||
|
'lg_tarifa_preimpresion.precio',
|
||||||
|
|
||||||
|
]
|
||||||
|
)
|
||||||
|
->join('presupuesto_preimpresiones', 'presupuesto_preimpresiones.presupuesto_id = presupuestos.id', 'left')
|
||||||
|
->join('lg_tarifa_preimpresion', 'lg_tarifa_preimpresion.id = presupuesto_preimpresiones.tarifa_preimpresion_id', 'left')
|
||||||
|
->where('presupuestos.id', $presupuesto_id);
|
||||||
|
|
||||||
|
$queryManipulado = $this->db->table($this->table)
|
||||||
|
->select(
|
||||||
|
[
|
||||||
|
'lg_tarifa_manipulado.id',
|
||||||
|
'lg_tarifa_manipulado.nombre',
|
||||||
|
|
||||||
|
]
|
||||||
|
)
|
||||||
|
->join('presupuesto_manipulados', 'presupuesto_manipulados.presupuesto_id = presupuestos.id', 'left')
|
||||||
|
->join('lg_tarifa_manipulado', 'lg_tarifa_manipulado.id = presupuesto_manipulados.tarifa_manipulado_id', 'left')
|
||||||
|
->where('presupuestos.id', $presupuesto_id);
|
||||||
|
|
||||||
|
$queryExtras = $this->db->table($this->table)
|
||||||
|
->select(
|
||||||
|
[
|
||||||
|
'lg_tarifa_preimpresion.id',
|
||||||
|
'lg_tarifa_preimpresion.nombre',
|
||||||
|
|
||||||
|
]
|
||||||
|
)
|
||||||
|
->join('presupuesto_serviciosExtra', 'presupuesto_serviciosExtra.presupuesto_id = presupuestos.id', 'left')
|
||||||
|
->join('lg_tarifa_preimpresion', 'lg_tarifa_preimpresion.id = presupuesto_serviciosExtra.tarifa_extra_id', 'left')
|
||||||
|
->where('presupuestos.id', $presupuesto_id);
|
||||||
|
|
||||||
|
$servicios['acabado'] = $queryAcabado->get()->getResultObject();
|
||||||
|
$servicios['manipulado'] = $queryManipulado->get()->getResultObject();
|
||||||
|
$servicios['preimpresion'] = $queryPreimpresion->get()->getResultObject();
|
||||||
|
$servicios['extra'] = $queryExtras->get()->getResultObject();
|
||||||
|
return $servicios;
|
||||||
|
}
|
||||||
|
private function generarConceptoLineasPresupuestoLibro($lineas, $presupuesto)
|
||||||
|
{
|
||||||
|
|
||||||
$model_papel = model('App\Models\Configuracion\PapelImpresionModel');
|
$model_papel = model('App\Models\Configuracion\PapelImpresionModel');
|
||||||
$description_interior = "";
|
$description_interior = "";
|
||||||
@ -630,20 +687,24 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
$paginas_negro = $lp_bn_lines->paginas;
|
$paginas_negro = $lp_bn_lines->paginas;
|
||||||
$gramaje_negro = $lp_bn_lines->gramaje;
|
$gramaje_negro = $lp_bn_lines->gramaje;
|
||||||
$papel_negro = $model_papel->where('id', $lp_bn_lines->papel_impresion_id)->first()->nombre;
|
$papel_negro = $model_papel->where('id', $lp_bn_lines->papel_impresion_id)->first()->nombre;
|
||||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
$description_interior .= sprintf(
|
||||||
|
lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||||
strval($paginas_negro),
|
strval($paginas_negro),
|
||||||
$papel_negro,
|
$papel_negro,
|
||||||
strval($gramaje_negro)) . ". ";
|
strval($gramaje_negro)
|
||||||
|
) . ". ";
|
||||||
}
|
}
|
||||||
if (count($lp_color_lines) > 0) {
|
if (count($lp_color_lines) > 0) {
|
||||||
$lp_color_lines = array_values($lp_color_lines)[0];
|
$lp_color_lines = array_values($lp_color_lines)[0];
|
||||||
$paginas_color = $lp_color_lines->paginas;
|
$paginas_color = $lp_color_lines->paginas;
|
||||||
$gramaje_color = $lp_color_lines->gramaje;
|
$gramaje_color = $lp_color_lines->gramaje;
|
||||||
$papel_color = $model_papel->where('id', $lp_color_lines->papel_impresion_id)->first()->nombre;
|
$papel_color = $model_papel->where('id', $lp_color_lines->papel_impresion_id)->first()->nombre;
|
||||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
$description_interior .= sprintf(
|
||||||
|
lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||||
strval($paginas_color),
|
strval($paginas_color),
|
||||||
$papel_color,
|
$papel_color,
|
||||||
strval($gramaje_color)) . ". ";
|
strval($gramaje_color)
|
||||||
|
) . ". ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($lp_rot_bn) > 0) {
|
if (count($lp_rot_bn) > 0) {
|
||||||
@ -651,10 +712,12 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
$paginas_negro = $lp_rot_bn->paginas;
|
$paginas_negro = $lp_rot_bn->paginas;
|
||||||
$gramaje_negro = $lp_rot_bn->gramaje;
|
$gramaje_negro = $lp_rot_bn->gramaje;
|
||||||
$papel_negro = $model_papel->where('id', $lp_rot_bn->papel_impresion_id)->first()->nombre;
|
$papel_negro = $model_papel->where('id', $lp_rot_bn->papel_impresion_id)->first()->nombre;
|
||||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
$description_interior .= sprintf(
|
||||||
|
lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||||
strval($paginas_negro),
|
strval($paginas_negro),
|
||||||
$papel_negro,
|
$papel_negro,
|
||||||
strval($gramaje_negro)) . ". ";
|
strval($gramaje_negro)
|
||||||
|
) . ". ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($lp_rot_color) > 0) {
|
if (count($lp_rot_color) > 0) {
|
||||||
@ -663,16 +726,20 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
$gramaje = $lp_rot_color->gramaje;
|
$gramaje = $lp_rot_color->gramaje;
|
||||||
$papel = $model_papel->where('id', $lp_rot_color->papel_impresion_id)->first()->nombre;
|
$papel = $model_papel->where('id', $lp_rot_color->papel_impresion_id)->first()->nombre;
|
||||||
if ($paginas_negro > 0) {
|
if ($paginas_negro > 0) {
|
||||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
$description_interior .= sprintf(
|
||||||
|
lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||||
strval($paginas_negro),
|
strval($paginas_negro),
|
||||||
$papel,
|
$papel,
|
||||||
strval($gramaje)) . ". ";
|
strval($gramaje)
|
||||||
|
) . ". ";
|
||||||
}
|
}
|
||||||
|
|
||||||
$description_interior .= sprintf(lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
$description_interior .= sprintf(
|
||||||
|
lang('Pedidos.lineasTemplates.libro_linea_interior'),
|
||||||
strval($lp_rot_color->rotativa_pag_color),
|
strval($lp_rot_color->rotativa_pag_color),
|
||||||
$papel,
|
$papel,
|
||||||
strval($gramaje)) . ". ";
|
strval($gramaje)
|
||||||
|
) . ". ";
|
||||||
}
|
}
|
||||||
|
|
||||||
$lp_cubierta = array_filter($lineas, function ($linea) {
|
$lp_cubierta = array_filter($lineas, function ($linea) {
|
||||||
@ -686,29 +753,32 @@ class PresupuestoModel extends \App\Models\BaseModel
|
|||||||
$lp_cubierta = array_values($lp_cubierta)[0];
|
$lp_cubierta = array_values($lp_cubierta)[0];
|
||||||
if ($lp_cubierta->paginas == 2) {
|
if ($lp_cubierta->paginas == 2) {
|
||||||
$lp_cubierta->caras = lang('Pedidos.unaCara');
|
$lp_cubierta->caras = lang('Pedidos.unaCara');
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
$lp_cubierta->caras = lang('Pedidos.dosCaras');
|
$lp_cubierta->caras = lang('Pedidos.dosCaras');
|
||||||
}
|
}
|
||||||
$description_cubierta = sprintf(lang('Pedidos.lineasTemplates.libro_linea_cubierta'),
|
$description_cubierta = sprintf(
|
||||||
|
lang('Pedidos.lineasTemplates.libro_linea_cubierta'),
|
||||||
$lp_cubierta->caras,
|
$lp_cubierta->caras,
|
||||||
$model_papel->where('id', $lp_cubierta->papel_impresion_id)->first()->nombre,
|
$model_papel->where('id', $lp_cubierta->papel_impresion_id)->first()->nombre,
|
||||||
strval($lp_cubierta->gramaje));
|
strval($lp_cubierta->gramaje)
|
||||||
|
);
|
||||||
$description_cubierta .= ($presupuesto->solapas_cubierta == 1 ? sprintf(lang('Pedidos.lineasTemplates.libro_solapas'), $presupuesto->solapas_ancho_cubierta) : ". ");
|
$description_cubierta .= ($presupuesto->solapas_cubierta == 1 ? sprintf(lang('Pedidos.lineasTemplates.libro_solapas'), $presupuesto->solapas_ancho_cubierta) : ". ");
|
||||||
}
|
}
|
||||||
if (count($lp_sobrecubierta) > 0) {
|
if (count($lp_sobrecubierta) > 0) {
|
||||||
$lp_sobrecubierta = array_values($lp_sobrecubierta)[0];
|
$lp_sobrecubierta = array_values($lp_sobrecubierta)[0];
|
||||||
$description_sobrecubierta = sprintf(lang('Pedidos.lineasTemplates.libro_linea_sobrecubierta'),
|
$description_sobrecubierta = sprintf(
|
||||||
|
lang('Pedidos.lineasTemplates.libro_linea_sobrecubierta'),
|
||||||
$model_papel->where('id', $lp_sobrecubierta->papel_impresion_id)->first()->nombre,
|
$model_papel->where('id', $lp_sobrecubierta->papel_impresion_id)->first()->nombre,
|
||||||
strval($lp_sobrecubierta->gramaje));
|
strval($lp_sobrecubierta->gramaje)
|
||||||
|
);
|
||||||
$description_sobrecubierta .= ($presupuesto->solapas_sobrecubierta == 1 ? sprintf(lang('Pedidos.lineasTemplates.libro_solapas'), $presupuesto->solapas_ancho_sobrecubierta) : ". ");
|
$description_sobrecubierta .= ($presupuesto->solapas_sobrecubierta == 1 ? sprintf(lang('Pedidos.lineasTemplates.libro_solapas'), $presupuesto->solapas_ancho_sobrecubierta) : ". ");
|
||||||
}
|
}
|
||||||
|
|
||||||
$acabado = sprintf(lang('Pedidos.lineasTemplates.libro_encuadernacion'),
|
$acabado = sprintf(
|
||||||
lang('Presupuestos.' . $presupuesto->codigo_encuadernacion));
|
lang('Pedidos.lineasTemplates.libro_encuadernacion'),
|
||||||
|
lang('Presupuestos.' . $presupuesto->codigo_encuadernacion)
|
||||||
|
);
|
||||||
|
|
||||||
return $description_interior . $description_cubierta . $description_sobrecubierta . $acabado;
|
return $description_interior . $description_cubierta . $description_sobrecubierta . $acabado;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,45 +6,104 @@ use App\Entities\Pedidos\PedidoEntity;
|
|||||||
use CodeIgniter\Config\BaseService;
|
use CodeIgniter\Config\BaseService;
|
||||||
use App\Models\Pedidos\PedidoModel;
|
use App\Models\Pedidos\PedidoModel;
|
||||||
use App\Models\Pedidos\PedidoLineaModel;
|
use App\Models\Pedidos\PedidoLineaModel;
|
||||||
|
use App\Models\Presupuestos\PresupuestoModel;
|
||||||
use DOMDocument;
|
use DOMDocument;
|
||||||
use DOMNode;
|
use DOMNode;
|
||||||
|
|
||||||
class PedidoXMLService extends BaseService
|
class PedidoXMLService extends BaseService
|
||||||
{
|
{
|
||||||
|
|
||||||
public static function generate_xml($data)
|
public static function get_pedido_presupuesto(int $pedido_id)
|
||||||
|
{
|
||||||
|
$data_xml = [];
|
||||||
|
$pedidoModel = model(PedidoModel::class);
|
||||||
|
$presupuestoModel = model(PresupuestoModel::class);
|
||||||
|
$data_xml['pedido_cliente_presupuesto'] = $pedidoModel->getPedidoClientePresupuesto($pedido_id);
|
||||||
|
$data_xml['pedido_presupuesto_direcciones'] = $pedidoModel->getPedidoPresupuestoDirecciones($pedido_id);
|
||||||
|
$data_xml['pedido_presupuesto_lineas'] = $pedidoModel->getPedidoPresupuestoLineas($pedido_id);
|
||||||
|
$servicios = $presupuestoModel->getServiciosPresupuesto($data_xml['pedido_cliente_presupuesto']->presupuestoId);
|
||||||
|
$data_xml['servicios'] = $servicios;
|
||||||
|
$data_xml['preimpresion'] = PedidoXMLService::parse_servicio_preimpresion($servicios['preimpresion']);
|
||||||
|
$data_xml["acabado"] = PedidoXMLService::parse_servicio_acabado($servicios['acabado']);
|
||||||
|
return $data_xml;
|
||||||
|
|
||||||
|
}
|
||||||
|
protected static function parse_servicio_acabado(array $data_xml_servicios_acabado)
|
||||||
|
{
|
||||||
|
$xml_element = [];
|
||||||
|
$service_xml_key_value = [
|
||||||
|
"ShrinkWrapping" => fn($nombre) => str_contains($nombre,"retractilado"),
|
||||||
|
"Finish" => fn($nombre) => str_contains($nombre,"brillo"),
|
||||||
|
"PlakeneT" =>fn($nombre) => str_contains($nombre,"plakene traslúcido"),];
|
||||||
|
foreach($data_xml_servicios_acabado as $servicio_acabado)
|
||||||
|
{
|
||||||
|
$service_name = strtolower($servicio_acabado->nombre);
|
||||||
|
foreach ($service_xml_key_value as $key => $value) {
|
||||||
|
$xml_element[$key] = $value($service_name) ? 1 : 0 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return $xml_element;
|
||||||
|
}
|
||||||
|
protected static function parse_servicio_preimpresion(array $data_xml_servicios_preimpresion)
|
||||||
|
{
|
||||||
|
$xml_element = [];
|
||||||
|
$service_xml_key_value = [
|
||||||
|
"Urgent" => fn($nombre) => str_contains($nombre,"Pedido urgente"),
|
||||||
|
"Prototype" => fn($nombre) => str_contains($nombre,"Prototipo"),
|
||||||
|
"Layout" =>fn($nombre) => str_contains($nombre,"Maquetación"),
|
||||||
|
"Correction" =>fn($nombre) => str_contains($nombre,"Corrección ortográfica"),
|
||||||
|
// "Review" =>fn($nombre) => str_contains($nombre,"Revisión Profesional de archivo"),
|
||||||
|
"Design" =>fn($nombre) => str_contains($nombre,'Diseño de Cubierta'),
|
||||||
|
];
|
||||||
|
foreach($data_xml_servicios_preimpresion as $servicio_pre)
|
||||||
|
{
|
||||||
|
$service_name = $servicio_pre->nombre;
|
||||||
|
foreach ($service_xml_key_value as $key => $value) {
|
||||||
|
$value_service = $value($service_name) ? 1 : 0 ;
|
||||||
|
if( $value_service){
|
||||||
|
$xml_element[$key] = $servicio_pre->precio ;
|
||||||
|
}else if(!isset($xml_element[$key])){
|
||||||
|
$xml_element[$key] = $value_service;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $xml_element;
|
||||||
|
}
|
||||||
|
public static function generate_xml($pedido_id)
|
||||||
{
|
{
|
||||||
$papel_formato_ancho = 0;
|
$papel_formato_ancho = 0;
|
||||||
$papel_formato_alto = 0;
|
$papel_formato_alto = 0;
|
||||||
|
$data = PedidoXMLService::get_pedido_presupuesto($pedido_id);
|
||||||
$xml = new DOMDocument('1.0', 'utf-8');
|
$xml = new DOMDocument('1.0', 'utf-8');
|
||||||
$xml_order_el = $xml->createElement('Order');
|
$xml_order_el = $xml->createElement('Order');
|
||||||
$xml_header_el = $xml->createElement('Header');
|
$xml_header_el = $xml->createElement('Header');
|
||||||
$xml_header_el->appendChild($xml->createElement('CustomerCode', 988));
|
$xml_header_el->appendChild($xml->createElement('CustomerCode', 988));
|
||||||
$xml_header_el->appendChild($xml->createElement('CodeNode', "false"));
|
$xml_header_el->appendChild($xml->createElement('CodeNode', "false"));
|
||||||
$xml_header_el->appendChild($xml->createElement('ExternId', $data->pedido_presupuesto->pedidoId));
|
$xml_header_el->appendChild($xml->createElement('ExternId', $data["pedido_cliente_presupuesto"]->pedidoId));
|
||||||
$xml_header_el->appendChild($xml->createElement('NumProducts', 988));
|
$xml_header_el->appendChild($xml->createElement('NumProducts', 988));
|
||||||
$xml_header_el->appendChild($xml->createElement('Date', now_db()));
|
$xml_header_el->appendChild($xml->createElement('Date', now_db()));
|
||||||
$xml_order_el->appendChild($xml_header_el);
|
$xml_order_el->appendChild($xml_header_el);
|
||||||
$xml_products_el = $xml->createElement('Products');
|
$xml_products_el = $xml->createElement('Products');
|
||||||
$xml_products_el->appendChild($xml->createElement('ItemId', $data->pedido_presupuesto->pedidoId));
|
$xml_products_el->appendChild($xml->createElement('ItemId', $data["pedido_cliente_presupuesto"]->pedidoId));
|
||||||
$xml_products_el->appendChild($xml->createElement('Quantity', $data->pedido_presupuesto->tirada));
|
$xml_products_el->appendChild($xml->createElement('Quantity', $data["pedido_cliente_presupuesto"]->tirada));
|
||||||
$xml_products_el->appendChild($xml->createElement('Title', $data->pedido_presupuesto->titulo));
|
$xml_products_el->appendChild($xml->createElement('Title', $data["pedido_cliente_presupuesto"]->titulo));
|
||||||
$xml_products_el->appendChild($xml->createElement('Pages', $data->pedido_presupuesto->paginas));
|
$xml_products_el->appendChild($xml->createElement('Pages', $data["pedido_cliente_presupuesto"]->paginas));
|
||||||
$xml_products_el->appendChild($xml->createElement('Reprint', $data->pedido_presupuesto->inc_rei));
|
$xml_products_el->appendChild($xml->createElement('Reprint', $data["pedido_cliente_presupuesto"]->inc_rei));
|
||||||
|
|
||||||
if ($data->pedido_presupuesto->papel_formato_personalizado) {
|
if ($data["pedido_cliente_presupuesto"]->papel_formato_personalizado) {
|
||||||
$papel_formato_ancho = $data->pedido_presupuesto->papelAnchoPersonalidado;
|
$papel_formato_ancho = $data["pedido_cliente_presupuesto"]->papelAnchoPersonalidado;
|
||||||
$papel_formato_alto = $data->pedido_presupuesto->papelAltoPersonalidado;
|
$papel_formato_alto = $data["pedido_cliente_presupuesto"]->papelAltoPersonalidado;
|
||||||
} else {
|
} else {
|
||||||
$papel_formato_ancho = $data->pedido_presupuesto->lgPapelFormatoAncho;
|
$papel_formato_ancho = $data["pedido_cliente_presupuesto"]->lgPapelFormatoAncho;
|
||||||
$papel_formato_alto = $data->pedido_presupuesto->lgPapelFormatoAlto;
|
$papel_formato_alto = $data["pedido_cliente_presupuesto"]->lgPapelFormatoAlto;
|
||||||
}
|
}
|
||||||
$xml_products_el->appendChild($xml->createElement('Width', $papel_formato_ancho));
|
$xml_products_el->appendChild($xml->createElement('Width', $papel_formato_ancho));
|
||||||
$xml_products_el->appendChild($xml->createElement('Height', $papel_formato_alto));
|
$xml_products_el->appendChild($xml->createElement('Height', $papel_formato_alto));
|
||||||
$presupuestoLineaTipoCubierta = null;
|
$presupuestoLineaTipoCubierta = null;
|
||||||
$xml_presupuesto_lineas_el = $xml->createElement('Lines');
|
$xml_presupuesto_lineas_el = $xml->createElement('Lines');
|
||||||
## Iterate throught presupuesto_lineas
|
## Iterate throught presupuesto_lineas
|
||||||
foreach ($data->pedido_presupuesto_lineas as $row) {
|
foreach ($data["pedido_presupuesto_lineas"] as $row) {
|
||||||
if (str_contains($row->tipo, "rot") || str_contains($row->tipo, "bn") || str_contains($row->tipo, "color")) {
|
if (str_contains($row->tipo, "rot") || str_contains($row->tipo, "bn") || str_contains($row->tipo, "color")) {
|
||||||
$colorInterior = PedidoXMLService::get_color_interior($row);
|
$colorInterior = PedidoXMLService::get_color_interior($row);
|
||||||
$xmlInside = $xml->createElement('Inside');
|
$xmlInside = $xml->createElement('Inside');
|
||||||
@ -63,8 +122,8 @@ class PedidoXMLService extends BaseService
|
|||||||
|
|
||||||
$xml_products_el->appendChild($xml_presupuesto_lineas_el);
|
$xml_products_el->appendChild($xml_presupuesto_lineas_el);
|
||||||
if ($presupuestoLineaTipoCubierta) {
|
if ($presupuestoLineaTipoCubierta) {
|
||||||
$lgTarifaAcabadoNombre = $data->pedido_presupuesto->lgTarifaAcabadoNombre;
|
$containsTarifaAcabadoBrillo = isset($data['acabado']['Finish']) ? true : false;
|
||||||
if (str_contains('brillo', $lgTarifaAcabadoNombre)) {
|
if ($containsTarifaAcabadoBrillo) {
|
||||||
$acabado = "brillo";
|
$acabado = "brillo";
|
||||||
} else {
|
} else {
|
||||||
$acabado = "mate";
|
$acabado = "mate";
|
||||||
@ -73,43 +132,43 @@ class PedidoXMLService extends BaseService
|
|||||||
$xmlCover->appendChild($xml->createElement('Sides', $presupuestoLineaTipoCubierta->paginas / 2)); //! PAGINAS CUBIERTA
|
$xmlCover->appendChild($xml->createElement('Sides', $presupuestoLineaTipoCubierta->paginas / 2)); //! PAGINAS CUBIERTA
|
||||||
$xmlCover->appendChild($xml->createElement('Paper', $presupuestoLineaTipoCubierta->papelCode)); //?
|
$xmlCover->appendChild($xml->createElement('Paper', $presupuestoLineaTipoCubierta->papelCode)); //?
|
||||||
$xmlCover->appendChild($xml->createElement('Weight', $presupuestoLineaTipoCubierta->gramaje));
|
$xmlCover->appendChild($xml->createElement('Weight', $presupuestoLineaTipoCubierta->gramaje));
|
||||||
$xmlCover->appendChild($xml->createElement('Flaps', $data->pedido_presupuesto->solapas));
|
$xmlCover->appendChild($xml->createElement('Flaps', $data["pedido_cliente_presupuesto"]->solapas));
|
||||||
$xmlCover->appendChild($xml->createElement('WidthFlaps', $data->pedido_presupuesto->solapas_ancho));
|
$xmlCover->appendChild($xml->createElement('WidthFlaps', $data["pedido_cliente_presupuesto"]->solapas_ancho));
|
||||||
$xmlCover->appendChild($xml->createElement('Finish', $acabado));
|
$xmlCover->appendChild($xml->createElement('Finish', $acabado));
|
||||||
$xml_products_el->appendChild($xmlCover);
|
$xml_products_el->appendChild($xmlCover);
|
||||||
}
|
}
|
||||||
$xml_services_el = $xml->createElement('Services');
|
$xml_services_el = $xml->createElement('Services');
|
||||||
$xml_services_el->appendChild($xml->createElement('Bookmark', $data->pedido_presupuesto->marcapaginas));
|
$xml_services_el->appendChild($xml->createElement('Bookmark', $data["pedido_cliente_presupuesto"]->marcapaginas));
|
||||||
//? Retractilado5 y Retractilado o ambas
|
foreach ($data['preimpresion'] as $key => $value) {
|
||||||
//! MIRAR
|
$xml_services_el->appendChild($xml->createElement($key, $value));
|
||||||
$xml_services_el->appendChild($xml->createElement('ShrinkWrapping', $data->pedido_presupuesto->retractilado));
|
}
|
||||||
//? $xml_services_el->appendChild($xml->createElement('PlakeneT', $data->pedido_presupuesto->plakeneT)); ??
|
foreach ($data['acabado'] as $key => $value) {
|
||||||
//? $xml_services_el->appendChild($xml->createElement('Urgent', $data->pedido_presupuesto->urgent)); PEDIDO URGENTE
|
$xml_services_el->appendChild($xml->createElement($key, $value));
|
||||||
$xml_services_el->appendChild($xml->createElement('Prototype', $data->pedido_presupuesto->prototipo)); //
|
}
|
||||||
//? $xml_services_el->appendChild($xml->createElement('Layout', $data->pedido_presupuesto->maquetacion)); , MAQUETACION
|
|
||||||
//? $xml_services_el->appendChild($xml->createElement('Correction', $data->pedido_presupuesto->correccion)); CORRECCION ORTOGRAFICA
|
|
||||||
//? $xml_services_el->appendChild($xml->createElement('Review', $data->pedido_presupuesto->revision)); REVISION ??
|
|
||||||
//? $xml_services_el->appendChild($xml->createElement('Design', $data->pedido_presupuesto->diseno)); DISEÑO DE CUBIERTA
|
|
||||||
$xml_products_el->appendChild($xml_services_el);
|
$xml_products_el->appendChild($xml_services_el);
|
||||||
|
|
||||||
$xml_envios_el = $xml->createElement('Shipments');
|
$xml_envios_el = $xml->createElement('Shipments');
|
||||||
foreach ($data->pedido_presupuesto_direcciones as $pedido_presupuesto_direccion) {
|
foreach ($data["pedido_presupuesto_direcciones"] as $pedido_presupuesto_direccion) {
|
||||||
$xml_envio_el = $xml->createElement('Shipment');
|
$xml_envio_el = $xml->createElement('Shipment');
|
||||||
$xml_envio_el->appendChild($xml->createElement('Qty', $pedido_presupuesto_direccion->cantidad));
|
$xml_envio_el->appendChild($xml->createElement('Qty', $pedido_presupuesto_direccion->cantidad));
|
||||||
$xml_envio_el->appendChild($xml->createElement('Price', $data->pedido_presupuesto_direccion->precio));
|
$xml_envio_el->appendChild($xml->createElement('Price', $pedido_presupuesto_direccion->precio));
|
||||||
$xml_envio_el->appendChild($xml->createElement('Attention', $pedido_presupuesto_direccion->att));
|
$xml_envio_el->appendChild($xml->createElement('Attention', $pedido_presupuesto_direccion->att));
|
||||||
$xml_envio_el->appendChild($xml->createElement('Email', $pedido_presupuesto_direccion->email));
|
$xml_envio_el->appendChild($xml->createElement('Email', $pedido_presupuesto_direccion->email));
|
||||||
$xml_envio_el->appendChild($xml->createElement('Address', $pedido_presupuesto_direccion->direccion));
|
$xml_envio_el->appendChild($xml->createElement('Address', $pedido_presupuesto_direccion->direccion));
|
||||||
$xml_envio_el->appendChild($xml->createElement('Province', $pedido_presupuesto_direccion->provincia));
|
$xml_envio_el->appendChild($xml->createElement('Province', $pedido_presupuesto_direccion->provincia));
|
||||||
$xml_envio_el->appendChild($xml->createElement('City', $pedido_presupuesto_direccion->ciudad));
|
$xml_envio_el->appendChild($xml->createElement('City', $pedido_presupuesto_direccion->municipio));
|
||||||
$xml_envio_el->appendChild($xml->createElement('Zip', $pedido_presupuesto_direccion->cp));
|
$xml_envio_el->appendChild($xml->createElement('Zip', $pedido_presupuesto_direccion->cp));
|
||||||
$xml_envio_el->appendChild($xml->createElement('CountryCode', $pedido_presupuesto_direccion->code3));
|
$xml_envio_el->appendChild($xml->createElement('CountryCode', $pedido_presupuesto_direccion->paisCode3));
|
||||||
$xml_envio_el->appendChild($xml->createElement('Telephone', $pedido_presupuesto_direccion->telefono));
|
$xml_envio_el->appendChild($xml->createElement('Telephone', $pedido_presupuesto_direccion->telefono));
|
||||||
$xml_envios_el->appendChild($xml_envio_el);
|
$xml_envios_el->appendChild($xml_envio_el);
|
||||||
}
|
}
|
||||||
$xml_products_el->appendChild($xml_envios_el);
|
$xml_products_el->appendChild($xml_envios_el);
|
||||||
$xml_products_el->appendChild($xml->createElement('Comments', $data->pedido_presupuesto->comentarios_safekat));
|
$xml_products_el->appendChild($xml->createElement('Comments', $data["pedido_cliente_presupuesto"]->comentarios_safekat));
|
||||||
$xml_products_el->appendChild($xml->createElement('CommentsClient', $data->pedido_presupuesto->comentarios_cliente));
|
$xml_products_el->appendChild($xml->createElement('CommentsClient', $data["pedido_cliente_presupuesto"]->comentarios_cliente));
|
||||||
|
$xml->appendChild($xml_products_el);
|
||||||
|
$file_has_suffix = hash('sha512',$data["pedido_cliente_presupuesto"]->pedidoId);
|
||||||
|
return $data;
|
||||||
}
|
}
|
||||||
protected static function get_color_interior($pre_linea): ?string
|
protected static function get_color_interior($pre_linea): ?string
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user