mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
ot new features
This commit is contained in:
@ -23,6 +23,8 @@ use App\Models\Configuracion\MaquinaModel;
|
||||
use App\Models\OrdenTrabajo\OrdenTrabajoFileModel;
|
||||
use App\Models\OrdenTrabajo\OrdenTrabajoTareaProgressDate;
|
||||
use App\Models\Pedidos\PedidoModel;
|
||||
use App\Models\Presupuestos\PresupuestoAcabadosModel;
|
||||
use App\Models\Presupuestos\PresupuestoEncuadernacionesModel;
|
||||
use App\Models\Usuarios\UserModel;
|
||||
use CodeIgniter\Database\BaseBuilder;
|
||||
use CodeIgniter\Database\BaseResult;
|
||||
@ -65,6 +67,8 @@ class ProductionService extends BaseService
|
||||
protected MaquinaEntity $defaultMaquinaCorte;
|
||||
protected MaquinaModel $maquinaModel;
|
||||
protected OrdenTrabajo $ordenTrabajoConfig;
|
||||
protected PresupuestoAcabadosModel $presupuestoAcabadoModel;
|
||||
protected PresupuestoEncuadernacionesModel $presupuestoEncuadernacionModel;
|
||||
|
||||
|
||||
/**
|
||||
@ -130,7 +134,7 @@ class ProductionService extends BaseService
|
||||
* TODO Hay que implementar un boolean en `lg_tarifa_manipulado` para identificar
|
||||
* @var boolean
|
||||
*/
|
||||
public bool $isGrapado = true; //TODO
|
||||
public bool $isGrapado = false; //TODO
|
||||
/**
|
||||
* Indica si la orden de trabajo contiene espiral
|
||||
* Se usa para mostrar la fecha correspondiente en la vista
|
||||
@ -138,7 +142,7 @@ class ProductionService extends BaseService
|
||||
* DEFAULT true hasta implementacion
|
||||
* @var boolean
|
||||
*/
|
||||
public bool $isEspiral = true; //TODO
|
||||
public bool $isEspiral = false; //TODO
|
||||
/**
|
||||
* Indica si la orden de trabajo contiene UVI
|
||||
* Se usa para mostrar la fecha correspondiente en la vista
|
||||
@ -196,6 +200,8 @@ class ProductionService extends BaseService
|
||||
$this->otTareaProgressDate = model(OrdenTrabajoTareaProgressDate::class);
|
||||
$this->festivoModel = model(FestivoModel::class);
|
||||
$this->ordenTrabajoConfig = config('OrdenTrabajo');
|
||||
$this->presupuestoAcabadoModel = model(PresupuestoAcabadosModel::class);
|
||||
$this->presupuestoEncuadernacionModel = model(PresupuestoEncuadernacionesModel::class);
|
||||
$this->statusColor = $this->ordenTrabajoConfig->OT_COLORS["sin_imprimir"];
|
||||
$this->configVariableModel = model(ConfigVariableModel::class);
|
||||
$this->podValue = $this->configVariableModel->getVariable('POD')->value;
|
||||
@ -613,6 +619,10 @@ class ProductionService extends BaseService
|
||||
"orden_trabajo_tareas.tiempo_real",
|
||||
"orden_trabajo_tareas.comment",
|
||||
"orden_trabajo_tareas.presupuesto_linea_id",
|
||||
"orden_trabajo_tareas.presupuesto_acabado_id",
|
||||
"orden_trabajo_tareas.presupuesto_manipulado_id",
|
||||
"orden_trabajo_tareas.presupuesto_preimpresion_id",
|
||||
"orden_trabajo_tareas.presupuesto_encuadernado_id",
|
||||
"presupuesto_linea.tipo",
|
||||
|
||||
])
|
||||
@ -979,6 +989,18 @@ class ProductionService extends BaseService
|
||||
throw new Exception(lang('Produccion.task_already_finished'));
|
||||
}
|
||||
}
|
||||
if(isset($data['estado'])){
|
||||
if($data['estado'] == 'F'){
|
||||
$tareaEntity = $this->otTarea->find($data['ot_tarea_id']);
|
||||
$this->init($tareaEntity->orden_trabajo_id);
|
||||
$dateName = $this->getOrdenTrabajoTareaDate($tareaEntity);
|
||||
$dataDate = [
|
||||
'name' => $dateName,
|
||||
];
|
||||
$dataDate[$dateName] = Time::now()->format('Y-m-d');
|
||||
$this->updateOrdenTrabajoDate($dataDate);
|
||||
}
|
||||
}
|
||||
return $this->otTareaProgressDate->insert($data);
|
||||
}
|
||||
public function getTareaLastState($tarea_id)
|
||||
@ -993,6 +1015,12 @@ class ProductionService extends BaseService
|
||||
$data["action_at"] = Time::now()->format('Y-m-d H:i:s');
|
||||
$data["action_user_id"] = auth()->user()->id;
|
||||
$status = $this->otTareaProgressDate->where('ot_tarea_id', $orden_trabajo_tarea_id)->delete();
|
||||
if($status){
|
||||
$tareaEntity = $this->otTarea->find($orden_trabajo_tarea_id);
|
||||
$this->init($tareaEntity->orden_trabajo_id);
|
||||
$dateName = $this->getOrdenTrabajoTareaDate($tareaEntity);
|
||||
$this->emptyOrdenTrabajoDate($this->ot->id,$dateName);
|
||||
}
|
||||
if ($status) {
|
||||
$response = $this->storeOrdenTrabajoTareaProgressDate($data);
|
||||
}
|
||||
@ -1655,9 +1683,14 @@ class ProductionService extends BaseService
|
||||
return [
|
||||
"isGofrado" => $this->gofrado(),
|
||||
"isEspiral" => $this->isEspiral, //TODO
|
||||
"isUVI" => $this->uvi(),
|
||||
"isPlastificado" => $this->plastificado(),
|
||||
"isPlakene" => $this->plakene(),
|
||||
"isEstampado" => $this->estampado(),
|
||||
"isRetractilado" => $this->retractilado(),
|
||||
"isUVI" => $this->uvi(),
|
||||
"isCubierta" => $this->cubierta(),
|
||||
"isSobrecubierta" => $this->sobreCubierta(),
|
||||
"isGuarda" => $this->guarda(),
|
||||
"isColor" => $this->isColor,
|
||||
"isBN" => $this->isBN,
|
||||
"isCorte" => $this->corte(),
|
||||
@ -1696,6 +1729,20 @@ class ProductionService extends BaseService
|
||||
$this->isPlakene = $flag;
|
||||
return $this->isPlakene;
|
||||
}
|
||||
public function retractilado(): bool
|
||||
{
|
||||
$flag = false;
|
||||
$acabados = $this->presupuesto->acabados();
|
||||
foreach ($acabados as $key => $acabado) {
|
||||
$tarifa_acabado = $acabado->tarifa();
|
||||
if ($tarifa_acabado->retractilado) {
|
||||
$flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$this->isPlakene = $flag;
|
||||
return $this->isPlakene;
|
||||
}
|
||||
public function plakene_tipo(): ?string
|
||||
{
|
||||
$tipo = "";
|
||||
@ -1769,6 +1816,24 @@ class ProductionService extends BaseService
|
||||
}
|
||||
return $this->isCubierta;
|
||||
}
|
||||
public function sobreCubierta(): bool
|
||||
{
|
||||
$flag = false;
|
||||
$lineaCubierta = $this->presupuesto->presupuestoLineaSobreCubierta();
|
||||
if ($lineaCubierta) {
|
||||
$flag = true;
|
||||
}
|
||||
return $flag;
|
||||
}
|
||||
public function guarda(): bool
|
||||
{
|
||||
$flag = false;
|
||||
$lineaCubierta = $this->presupuesto->presupuestoLineaGuarda();
|
||||
if ($lineaCubierta) {
|
||||
$flag = true;
|
||||
}
|
||||
return $flag;
|
||||
}
|
||||
public function color(): bool
|
||||
{
|
||||
$linea_impresion = $this->presupuesto->presupuestoLineaImpresion();
|
||||
@ -1807,10 +1872,7 @@ class ProductionService extends BaseService
|
||||
"orden_trabajo_tareas.id as ot_tarea_id",
|
||||
"pedidos.fecha_impresion",
|
||||
"orden_trabajo_tareas.nombre as tareaName",
|
||||
"presupuestos.titulo as presupuesto_titulo",
|
||||
"orden_trabajo_tareas.maquina_id",
|
||||
"lg_papel_impresion.nombre as papel_impresion",
|
||||
"presupuesto_linea.gramaje as papel_gramaje",
|
||||
"tarea_progress.estado as tareaEstado"
|
||||
])
|
||||
->join("orden_trabajo_tareas", "orden_trabajo_tareas.orden_trabajo_id = ordenes_trabajo.id", "left")
|
||||
@ -1827,21 +1889,14 @@ class ProductionService extends BaseService
|
||||
'tarea_progress.ot_tarea_id = orden_trabajo_tareas.id',
|
||||
'left'
|
||||
)
|
||||
->join("presupuesto_linea", "presupuesto_linea.id = orden_trabajo_tareas.presupuesto_linea_id", "left")
|
||||
->join("presupuestos", "presupuestos.id = presupuesto_linea.presupuesto_id", "right")
|
||||
->join("pedidos", "pedidos.id = ordenes_trabajo.pedido_id", "right")
|
||||
->join("lg_papel_formato", "lg_papel_formato.id = presupuestos.papel_formato_id", "left")
|
||||
->join("lg_maquinas", "lg_maquinas.id = orden_trabajo_tareas.maquina_id", "left")
|
||||
->join("lg_papel_impresion", "lg_papel_impresion.id = presupuesto_linea.papel_impresion_id", "left")
|
||||
->groupStart()
|
||||
->orWhere('orden_trabajo_tareas.maquina_id', $maquina_id) //!TODO
|
||||
->orWhere('presupuesto_linea.maquina_id', $maquina_id)
|
||||
->groupEnd()
|
||||
->where('orden_trabajo_tareas.maquina_id', $maquina_id)
|
||||
// ->where('pedidos.fecha_impresion IS NOT NULL', null, false)
|
||||
->where("orden_trabajo_tareas.deleted_at", null)
|
||||
->where("tarea_progress.estado", 'P')
|
||||
->orderBy("pedidos.fecha_impresion", "ASC")
|
||||
->groupBy('orden_trabajo_tareas.nombre');
|
||||
->groupBy('orden_trabajo_tareas.id');
|
||||
|
||||
return $q;
|
||||
}
|
||||
@ -1928,4 +1983,176 @@ class ProductionService extends BaseService
|
||||
$dates = $this->createDatesForPOD();
|
||||
return $this->pedidoModel->update($this->pedido->id, $dates);
|
||||
}
|
||||
public function getProveedorTarea($tarea_id)
|
||||
{
|
||||
$proveedor = null;
|
||||
$tareaEntity = $this->otTarea->find($tarea_id);
|
||||
if ($tareaEntity) {
|
||||
$proveedorEncuadernado = $tareaEntity->presupuesto_encuadernacion();
|
||||
$proveedorAcabado = $tareaEntity->presupuesto_acabado();
|
||||
if ($proveedorEncuadernado) {
|
||||
$proveedor = $proveedorEncuadernado->proveedor();
|
||||
} elseif ($proveedorAcabado) {
|
||||
$proveedor = $proveedorAcabado->proveedor();
|
||||
} else {
|
||||
$proveedor = null;
|
||||
}
|
||||
}
|
||||
return ["tarea" => $tareaEntity, "proveedor" => $proveedor];
|
||||
}
|
||||
public function updateProveedorLinea($tarea_id, $proveedor_id)
|
||||
{
|
||||
$status = false;
|
||||
$tareaEntity = $this->otTarea->find($tarea_id);
|
||||
$presupuestoEncuadernado = $tareaEntity->presupuesto_encuadernacion();
|
||||
$presupuestoAcabado = $tareaEntity->presupuesto_acabado();
|
||||
if ($presupuestoEncuadernado) {
|
||||
$status = $this->presupuestoEncuadernacionModel->update($presupuestoEncuadernado->id, ['proveedor_id' => $proveedor_id]);
|
||||
} elseif ($presupuestoAcabado) {
|
||||
$status = $this->presupuestoAcabadoModel->update($presupuestoAcabado->id, ['proveedor_id' => $proveedor_id]);
|
||||
} else {
|
||||
$status = null;
|
||||
}
|
||||
return $status;
|
||||
}
|
||||
public function otTareaImpresionWithDates()
|
||||
{
|
||||
$tareasImpresion = $this->ot->tareas_impresion();
|
||||
$data = [];
|
||||
foreach ($tareasImpresion as $key => $tareaImpresion) {
|
||||
if ($tareaImpresion->is_corte) {
|
||||
$data[$tareaImpresion->id] = 'corte_at';
|
||||
continue;
|
||||
}
|
||||
$presupuestoLineaEntity = $tareaImpresion->presupuesto_linea();
|
||||
if ($presupuestoLineaEntity) {
|
||||
if ($presupuestoLineaEntity->isGuarda()) {
|
||||
$data[$tareaImpresion->id] = 'guarda_at';
|
||||
} elseif ($presupuestoLineaEntity->isCubierta()) {
|
||||
$data[$tareaImpresion->id] = 'cubierta_at';
|
||||
} elseif ($presupuestoLineaEntity->isColor()) {
|
||||
$data[$tareaImpresion->id] = 'interior_color_at';
|
||||
} elseif ($presupuestoLineaEntity->isBN()) {
|
||||
$data[$tareaImpresion->id] = 'interior_bn_at';
|
||||
} elseif ($presupuestoLineaEntity->isSobreCubierta()) {
|
||||
$data[$tareaImpresion->id] = 'sobrecubierta_at';
|
||||
}
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
public function tareaImpresionDate($tarea): string
|
||||
{
|
||||
|
||||
$dateName = "";
|
||||
$presupuestoLineaEntity = $tarea->presupuesto_linea();
|
||||
if ($presupuestoLineaEntity) {
|
||||
if ($presupuestoLineaEntity->isGuarda()) {
|
||||
$dateName = 'guarda_at';
|
||||
} elseif ($presupuestoLineaEntity->isCubierta()) {
|
||||
$dateName = 'cubierta_at';
|
||||
} elseif ($presupuestoLineaEntity->isColor()) {
|
||||
$dateName = 'interior_color_at';
|
||||
} elseif ($presupuestoLineaEntity->isBN()) {
|
||||
$dateName = 'interior_bn_at';
|
||||
} elseif ($presupuestoLineaEntity->isSobreCubierta()) {
|
||||
$dateName = 'sobrecubierta_at';
|
||||
}
|
||||
if ($tarea->is_corte) {
|
||||
$dateName = 'corte_at';
|
||||
}
|
||||
}
|
||||
return $dateName;
|
||||
}
|
||||
public function otTareaAcabadoWithDates()
|
||||
{
|
||||
$tareasAcabado = $this->ot->tareas_acabado();
|
||||
$data = [];
|
||||
foreach ($tareasAcabado as $key => $tareasAcabado) {
|
||||
$tarifaAcabado = $tareasAcabado->presupuesto_acabado()?->tarifa();
|
||||
if ($tarifaAcabado) {
|
||||
if ($tarifaAcabado->plastificado) {
|
||||
$data[$tareasAcabado->id] = 'plastificado_at';
|
||||
}
|
||||
if ($tarifaAcabado->rectractilado) {
|
||||
$data[$tareasAcabado->id] = 'rectractilado_at';
|
||||
}
|
||||
if ($tarifaAcabado->estampado) {
|
||||
$data[$tareasAcabado->id] = 'estampado_at';
|
||||
}
|
||||
if ($tarifaAcabado->uvi) {
|
||||
$data[$tareasAcabado->id] = 'uvi_at';
|
||||
}
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
public function tareaAcabadoDate($tarea): string
|
||||
{
|
||||
|
||||
$dateName = "";
|
||||
$tarifaAcabado = $tarea->presupuesto_acabado()?->tarifa();;
|
||||
if ($tarifaAcabado) {
|
||||
if ($tarifaAcabado->plastificado) {
|
||||
$dateName = 'plastificado_at';
|
||||
}
|
||||
if ($tarifaAcabado->rectractilado) {
|
||||
$dateName = 'rectractilado_at';
|
||||
}
|
||||
if ($tarifaAcabado->plakene) {
|
||||
$dateName = 'plakene_at';
|
||||
}
|
||||
if ($tarifaAcabado->estampado) {
|
||||
$dateName = 'estampado_at';
|
||||
}
|
||||
if ($tarifaAcabado->uvi) {
|
||||
$dateName = 'uvi_at';
|
||||
}
|
||||
}
|
||||
return $dateName;
|
||||
}
|
||||
public function otTareaEncuadernadoWithDates()
|
||||
{
|
||||
$tareas = $this->ot->tareas_encuadernado();
|
||||
$data = [];
|
||||
foreach ($tareas as $key => $tarea) {
|
||||
$data[$tarea->id] = "encuadernacion_at";
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function otTareaManipuladooWithDates()
|
||||
{
|
||||
$tareas = $this->ot->tareas_manipulado();
|
||||
$data = [];
|
||||
foreach ($tareas as $key => $tarea) {
|
||||
$data[$tarea->id] = "entrada_manipulado_at";
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
public function getOrdenTrabajoTareaDates(): array
|
||||
{
|
||||
$dates = [];
|
||||
foreach ($this->ot->tareas() as $key => $tarea) {
|
||||
$dates[] = $this->getOrdenTrabajoTareaDate($tarea);
|
||||
}
|
||||
return array_unique($dates);
|
||||
}
|
||||
public function getOrdenTrabajoTareaDate(OrdenTrabajoTareaEntity $tarea): ?string
|
||||
{
|
||||
$dateName = null;
|
||||
if ($tarea->isImpresion()) {
|
||||
$dateName = $this->tareaImpresionDate($tarea);
|
||||
}
|
||||
if ($tarea->isAcabado()) {
|
||||
$dateName = $this->tareaAcabadoDate($tarea);
|
||||
}
|
||||
if ($tarea->isManipulado()) {
|
||||
$dateName = "entrada_manipulado_at";
|
||||
}
|
||||
if ($tarea->isEncuadernado()) {
|
||||
$dateName = "encuadernacion_at";
|
||||
}
|
||||
return $dateName;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user