terminado

This commit is contained in:
2025-05-05 13:13:44 +02:00
parent ff648fec87
commit 1d75f825a4
6 changed files with 220 additions and 13 deletions

View File

@ -134,6 +134,87 @@ class ImpresoraEtiquetaService extends BaseService
return $xml->saveXML();
}
public function generateEtiquetasEmbalaje($ot_id, $ejemplares_caja, $printer)
{
$data = [
"printer" => $printer->name,
"header" => [
"_FORMAT" => "E:PEDIDO.ZPL",
"_QUANTITY" => 1,
"_PRINBTERNAME" => $printer->name,
"_JOBNAME" => "LBL101"
],
];
$ot_model = model('App\Models\OrdenTrabajo\OrdenTrabajoModel');
$datos = $ot_model->select('
ordenes_trabajo.total_tirada as unidades,
clientes.nombre as cliente,
presupuestos.titulo as titulo,
presupuestos.isbn as isbn,
presupuestos.referencia_cliente as referencia_cliente,
pedidos.id as pedido
')
->join('pedidos', 'ordenes_trabajo.pedido_id = pedidos.id')
->join('pedidos_linea', 'pedidos.id = pedidos_linea.pedido_id')
->join('presupuestos', 'pedidos_linea.presupuesto_id = presupuestos.id')
->join('clientes', 'presupuestos.cliente_id = clientes.id')
->where('ordenes_trabajo.id', $ot_id)
->first();
$cajas = ceil($datos->unidades / $ejemplares_caja);
$cantidad = 0;
for( $i = 1; $i <= $cajas; $i++) {
$data["labels"][] = [
"cliente" => $datos->cliente,
"titulo" => $datos->titulo,
"cantidad" => $cantidad + $ejemplares_caja <= $datos->unidades ? $ejemplares_caja : $datos->unidades-$cantidad,
"tirada" => $datos->unidades,
"cajas" => $cajas,
"ean" => str_replace("-", "", $datos->isbn),
"nombre" => null,
"direccion" => null,
"notas" => "",
"refcliente" => $datos->referencia_cliente,
"npedido" => $datos->pedido
];
$cantidad += $ejemplares_caja;
}
$servicioImpresora = new ImpresoraEtiquetaService();
$xml = $servicioImpresora->createEtiqueta($data);
if ($xml == null) {
return [
'status' => false,
'message' => lang('Logistica.errors.noEtiquetas'),
];
}
$sk_environment = getenv('SK_ENVIRONMENT');
if ($sk_environment == 'production') {
$status = $servicioImpresora->sendToImpresoraEtiqueta("ETIQUETA", $xml, $printer);
if ($status) {
return [
'status' => true,
'message' => lang('Logistica.success.imprimirEtiquetas'),
'data' => $xml
];
} else {
return [
'status' => false,
'message' => lang('Logistica.errors.noEtiquetas'),
];
}
} else {
return [
'status' => true,
'message' => lang('Logistica.success.imprimirEtiquetas'),
'data' => $xml
];
}
}
public function sendToImpresoraEtiqueta(string $name, string $content, ImpresoraEtiquetaEntity $impresoraEtiqueta): bool