This commit is contained in:
amazuecos
2024-12-08 18:50:18 +01:00
parent ed67af00b4
commit 5ce47dc6ce
9 changed files with 272 additions and 28 deletions

View File

@ -2,6 +2,9 @@
namespace App\Models\Pedidos;
use App\Entities\Presupuestos\OrdenTrabajoEntity;
use App\Models\OrdenTrabajo\OrdenTrabajoModel;
use function PHPSTORM_META\map;
class PedidoModel extends \App\Models\BaseModel
@ -90,7 +93,7 @@ class PedidoModel extends \App\Models\BaseModel
return $lineasPresupuesto;
}
public function getPedidoPresupuestoTipoImpresion(int $presupuesto_id) : array|object|null
public function getPedidoPresupuestoTipoImpresion(int $presupuesto_id): array|object|null
{
$q = $this->db->table($this->table)
->select(
@ -185,15 +188,51 @@ class PedidoModel extends \App\Models\BaseModel
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;
->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;
}
/**
* Crea una orden de trabajo asociada al pedido
*
* @param integer $pedido_id
* @return void
*/
public function createOrdenTrabajo(int $pedido_id)
{
$otModel = model(OrdenTrabajoModel::class);
$ot = new OrdenTrabajoEntity(["pedido_id" => $pedido_id]);
$existOt = $this->hasOrdenTrabajo($pedido_id);
if ($existOt) {
$ot = $otModel->find($pedido_id);
return $ot;
}
$otModel->updateMaquinas($ot);
}
/**
* Comprueba si el pedido tiene ya una orden de trabajo asociada
*
* @param integer $pedido_id
* @return boolean
*/
public function hasOrdenTrabajo(int $pedido_id): bool
{
$hasOrdenTrabajo = false;
$q = $this->builder()->select("orden_trabajo.pedido_id")
->join("ordenes_trabajo", "ordenes_trabajo.pedido_id = pedidos.id", "left")
->where("ordenes_trabajo.pedido_id", $pedido_id)->countAllResults();
if ($q > 0) {
$hasOrdenTrabajo = true;
}
return $hasOrdenTrabajo;
}
}