terminando a falta del listado añadir etiquetas

This commit is contained in:
2025-05-03 12:06:25 +02:00
parent 746955c3b1
commit 71e70bf551
14 changed files with 605 additions and 6 deletions

View File

@ -0,0 +1,107 @@
<?php
namespace App\Services;
use Config\Services;
class EtiquetasTitulosService
{
public static function getOtsWithTitulos()
{
$db = \Config\Database::connect();
// 3. Subconsulta principal
$builder = $db->table('ordenes_trabajo ot')
->select("
ot.id AS id,
CONCAT('[', ot.id, '] - ', pr.titulo) AS name")
->join('pedidos p', 'p.id = ot.pedido_id')
->join('pedidos_linea pl', 'p.id = pl.pedido_id')
->join('presupuestos pr', 'pr.id = pl.presupuesto_id')
->join('orden_trabajo_dates ot_dates', 'ot_dates.orden_trabajo_id = ot.id')
->whereIn('p.estado', ['finalizado', 'produccion'])
->where('ot_dates.embalaje_at IS NOT NULL');
return $builder;
}
public static function getDireccionesOT($ot_id){
$db = \Config\Database::connect();
// 3. Subconsulta principal
$builder = $db->table('presupuesto_direcciones pd')
->select("
pd.id AS id,
pd.direccion AS name")
->join('presupuestos pr', 'pr.id = pd.presupuesto_id')
->join('pedidos_linea pl', 'pr.id = pl.presupuesto_id')
->join('pedidos p', 'p.id = pl.pedido_id')
->join('ordenes_trabajo ot', 'ot.pedido_id = p.id')
->join('orden_trabajo_dates ot_dates', 'ot_dates.orden_trabajo_id = ot.id')
->whereIn('p.estado', ['finalizado', 'produccion'])
->where('ot_dates.embalaje_at IS NOT NULL')
->where('ot.id', $ot_id);
return $builder;
}
public static function addEtiqueta($data)
{
$db = \Config\Database::connect();
$builder = $db->table('presupuesto_direcciones pd');
$builder->select('pd.att, pd.direccion, pd.cantidad, pr.cliente_id');
$builder->join('presupuestos pr', 'pr.id = pd.presupuesto_id');
$builder->join('pedidos_linea pl', 'pr.id = pl.presupuesto_id');
$builder->join('pedidos p', 'p.id = pl.pedido_id');
$builder->join('ordenes_trabajo ot', 'ot.pedido_id = p.id');
$builder->where('ot.id', $data['ot_id']);
$builder->where('pd.direccion', $data['direccion']);
$result = $builder->get()->getRow();
$data['att'] = $result->att;
$data['direccion'] = $result->direccion;
$data['cantidad'] = $result->cantidad;
$data['cliente_id'] = $result->cliente_id;
$modelEtiquetasTitulos = model('App\Models\Etiquetas\EtiquetasTitulosModel');
$modelEtiquetasTitulos->insert([
'direccion' => $data['direccion'],
'att' => $data['att'],
'cliente_id' => $data['cliente_id'],
'user_created_at' => $data['user_id'],
]);
$etiquetaId = $modelEtiquetasTitulos->getInsertID();
if($etiquetaId == null){
return [
'status' => false,
'message' => lang('Logistica.errorInsertarEtiqueta'),
];
}
$cantidad_restante = intval($data['cantidad']);
$numero_caja = 1;
while($cantidad_restante > 0){
$modelEtiquetasTitulosLineas = model('App\Models\Etiquetas\EtiquetasTitulosLineasModel');
$modelEtiquetasTitulosLineas->insert([
'etiqueta_titulos_id' => $etiquetaId,
'ot_id' => $data['ot_id'],
'unidades' => $cantidad_restante - intval($data['unidades_caja']) < 0 ? $cantidad_restante : intval($data['unidades_caja']),
'numero_caja' => $numero_caja,
'user_created_at' => $data['user_id'],
]);
$cantidad_restante -= $data['unidades_caja'];
$numero_caja++;
}
return [
'status' => true,
'etiqueta' => $etiquetaId,
];
}
}

View File

@ -78,6 +78,7 @@ class LogisticaService
return $builder;
}
public static function findForNewEnvio()
{
$db = \Config\Database::connect();
@ -576,11 +577,11 @@ class LogisticaService
$data = [
"printer" => $printer->name,
"header" => [
"_FORMAT" => "E:PEDIDO.ZPL",
"_QUANTITY" => 1,
"_PRINBTERNAME" => $printer->name,
"_JOBNAME" => "LBL101"
],
"_FORMAT" => "E:PEDIDO.ZPL",
"_QUANTITY" => 1,
"_PRINBTERNAME" => $printer->name,
"_JOBNAME" => "LBL101"
],
];
foreach ($lineas as $linea) {