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:
@ -12,8 +12,14 @@ class OrdenTrabajo extends BaseConfig
|
||||
"interior_bn_at" => "interior_bn_user_id",
|
||||
"interior_color_at" => "interior_color_user_id",
|
||||
"cubierta_at" => "cubierta_user_id",
|
||||
"sobrecubierta_at" => "sobrecubierta_user_id", //TODO
|
||||
"guarda_at" => "guarda_user_id", //TODO
|
||||
//ACABADO
|
||||
"plastificado_at" => "plastificado_user_id",
|
||||
"plakene_at" => "plakene_user_id", //TODO
|
||||
"retractilado_at" => "retractilado_user_id",
|
||||
"estampado_at" => "estampado_user_id", //TODO
|
||||
"uvi_at" => "uvi_user_id", //TODO
|
||||
"encuadernacion_at" => "encuadernacion_user_id",
|
||||
"corte_at" => "corte_user_id",
|
||||
"preparacion_interiores_at" => "preparacion_interior_user_id",
|
||||
@ -21,7 +27,6 @@ class OrdenTrabajo extends BaseConfig
|
||||
"cosido_at" => "cosido_user_id",
|
||||
"grapado_at" => "grapado_user_id",
|
||||
"solapa_at" => "solapa_user_id",
|
||||
"retractilado_at" => "retractilado_user_id",
|
||||
"retractilado5_at" => "retractilado5_user_id",
|
||||
"prototipo_at" => "prototipo_user_id",
|
||||
"marcapaginas_at" => "marcapaginas_user_id",
|
||||
|
||||
@ -754,6 +754,7 @@ $routes->group('produccion', ['namespace' => 'App\Controllers\Produccion'], func
|
||||
$routes->get('tareas/datatable/(:num)', 'Ordentrabajo::tareas_datatable/$1', ['as' => 'datatableTareasOrdenTrabajo']);
|
||||
$routes->get("tarea/progress/(:num)", "Ordentrabajo::get_orden_trabajo_progress_date/$1");
|
||||
$routes->get('tarea/(:num)', 'Ordentrabajo::find_tarea/$1');
|
||||
$routes->get('tarea/dates/(:num)','Ordentrabajo::get_orden_trabajo_tareas_dates/$1');
|
||||
/**======================
|
||||
* UPDATES
|
||||
*========================**/
|
||||
@ -771,6 +772,7 @@ $routes->group('produccion', ['namespace' => 'App\Controllers\Produccion'], func
|
||||
$routes->get("color/(:num)", 'Ordentrabajo::get_orden_trabajo_color_status/$1');
|
||||
$routes->post("update/tarea/progress", "Ordentrabajo::store_orden_trabajo_progress_date");
|
||||
$routes->post("update/tarea/pliegos", "Ordentrabajo::update_orden_trabajo_pliegos");
|
||||
$routes->post("update/tarea/proveedor", "Ordentrabajo::update_presupuesto_tarea_proveedor");
|
||||
$routes->delete("tarea/progress/(:num)", "Ordentrabajo::delete_orden_trabajo_progress_date/$1");
|
||||
|
||||
/**======================
|
||||
|
||||
@ -184,4 +184,15 @@ class Validation extends BaseConfig
|
||||
"label" => "maquina",
|
||||
],
|
||||
];
|
||||
public array $proveedor_tarea =
|
||||
[
|
||||
"proveedor_id" => [
|
||||
"rules" => "required|integer",
|
||||
"label" => "Proveedor",
|
||||
],
|
||||
"orden_trabajo_tarea_id" => [
|
||||
"rules" => "required|integer",
|
||||
"label" => "Tarea",
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
namespace App\Controllers\Produccion;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Models\Compras\ProveedorModel;
|
||||
use App\Models\Configuracion\MaquinaModel;
|
||||
use App\Models\OrdenTrabajo\OrdenTrabajoModel;
|
||||
use App\Models\OrdenTrabajo\OrdenTrabajoTarea;
|
||||
@ -28,6 +29,7 @@ class Ordentrabajo extends BaseController
|
||||
protected OrdenTrabajoModel $otModel;
|
||||
protected OrdenTrabajoUser $otUserModel;
|
||||
protected OrdenTrabajoTarea $otTarea;
|
||||
protected ProveedorModel $proveedorModel;
|
||||
protected MaquinaModel $maquinaModel;
|
||||
protected UserModel $userModel;
|
||||
protected Validation $validation;
|
||||
@ -45,6 +47,7 @@ class Ordentrabajo extends BaseController
|
||||
$this->produccionService = new ProductionService();
|
||||
$this->otTarea = model(OrdenTrabajoTarea::class);
|
||||
$this->maquinaModel = model(MaquinaModel::class);
|
||||
$this->proveedorModel = model(ProveedorModel::class);
|
||||
$this->validation = service("validation");
|
||||
helper("time");
|
||||
parent::initController($request, $response, $logger);
|
||||
@ -138,6 +141,18 @@ class Ordentrabajo extends BaseController
|
||||
return $this->response->setJSON(["errors" => $this->validation->getErrors()])->setStatusCode(400);
|
||||
}
|
||||
}
|
||||
public function update_presupuesto_tarea_proveedor(){
|
||||
$bodyData = $this->request->getPost();
|
||||
$validated = $this->validation->run($bodyData, "proveedor_tarea");
|
||||
if ($validated) {
|
||||
$validatedData = $this->validation->getValidated();
|
||||
$r = $this->produccionService->updateProveedorLinea($validatedData['orden_trabajo_tarea_id'], $validatedData['proveedor_id']);
|
||||
return $this->response->setJSON(["message" => lang("App.global_alert_save_success"), "status" => $r]);
|
||||
} else {
|
||||
return $this->response->setJSON(["errors" => $this->validation->getErrors()])->setStatusCode(400);
|
||||
}
|
||||
|
||||
}
|
||||
public function reset_orden_trabajo_date()
|
||||
{
|
||||
$bodyData = $this->request->getPost();
|
||||
@ -305,6 +320,7 @@ class Ordentrabajo extends BaseController
|
||||
->edit("orden", fn($q) => ["id" => $q->id, "orden" => $q->orden])
|
||||
->edit("tiempo_estimado", fn($q) => float_seconds_to_hhmm_string($q->tiempo_estimado))
|
||||
->edit("tiempo_real", fn($q) => float_seconds_to_hhmm_string($q->tiempo_real))
|
||||
->add("proveedor", fn($q) => $this->produccionService->getProveedorTarea($q->id))
|
||||
->edit("maquina_tarea", fn($q) => ["id" => $q->id, "maquina_id" => $q->maquina_tarea, "maquina_name" => $q->maquina_nombre])
|
||||
->add("imposicion", fn($q) => ["id" => $q->id, "imposicion_id" => $q->imposicion_id, "name" => $q->imposicion_name, "is_presupuesto_linea" => $q->presupuesto_linea_id ? true : false])
|
||||
->toJson(true);
|
||||
@ -580,7 +596,6 @@ class Ordentrabajo extends BaseController
|
||||
}
|
||||
public function delete_orden_trabajo_progress_date(int $orden_trabajo_tarea_id)
|
||||
{
|
||||
|
||||
$status = $this->produccionService->deleteOrdenTrabajoTareaProgressDates($orden_trabajo_tarea_id);
|
||||
return $this->response->setJSON(["message" => lang("App.global_alert_save_success"), "status" => $status]);
|
||||
}
|
||||
@ -606,4 +621,9 @@ class Ordentrabajo extends BaseController
|
||||
}
|
||||
|
||||
}
|
||||
public function get_orden_trabajo_tareas_dates($orden_trabajo_id)
|
||||
{
|
||||
$data = $this->produccionService->init($orden_trabajo_id)->getOrdenTrabajoTareaDates();
|
||||
return $this->response->setJSON(["data" => $data ]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,6 +23,10 @@ class AlterOrdenesTrabajoAddCommentColumns extends Migration
|
||||
'type' => 'LONGTEXT',
|
||||
'null' => true
|
||||
],
|
||||
"info_solapa_guillotina" => [
|
||||
'type' => 'LONGTEXT',
|
||||
'null' => true
|
||||
]
|
||||
];
|
||||
public function up()
|
||||
{
|
||||
|
||||
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
use CodeIgniter\Database\RawSql;
|
||||
|
||||
class AddOrdenTrabajoDatesManipuladoImpresion extends Migration
|
||||
{
|
||||
protected array $DATES = [
|
||||
"sobrecubierta_at" => [
|
||||
"type" => "DATE",
|
||||
"null" => true,
|
||||
],
|
||||
"guarda_at" => [
|
||||
"type" => "DATE",
|
||||
"null" => true,
|
||||
],
|
||||
"plakene_at" => [
|
||||
"type" => "DATE",
|
||||
"null" => true,
|
||||
],
|
||||
"estampado_at" => [
|
||||
"type" => "DATE",
|
||||
"null" => true,
|
||||
],
|
||||
"uvi_at" => [
|
||||
"type" => "DATE",
|
||||
"null" => true,
|
||||
],
|
||||
|
||||
];
|
||||
protected array $USERS = [
|
||||
"sobrecubierta_user_id" => [
|
||||
"type" => "INT",
|
||||
"unsigned" => true,
|
||||
"constraint" => 10,
|
||||
"null" => true,
|
||||
],
|
||||
"guarda_user_id" => [
|
||||
"type" => "INT",
|
||||
"unsigned" => true,
|
||||
"constraint" => 10,
|
||||
"null" => true,
|
||||
],
|
||||
"plakene_user_id" => [
|
||||
"type" => "INT",
|
||||
"unsigned" => true,
|
||||
"constraint" => 10,
|
||||
"null" => true,
|
||||
],
|
||||
"estampado_user_id" => [
|
||||
"type" => "INT",
|
||||
"unsigned" => true,
|
||||
"constraint" => 10,
|
||||
"null" => true,
|
||||
],
|
||||
"uvi_user_id" => [
|
||||
"type" => "INT",
|
||||
"unsigned" => true,
|
||||
"constraint" => 10,
|
||||
"null" => true,
|
||||
],
|
||||
];
|
||||
|
||||
public function up()
|
||||
{
|
||||
$this->forge->addColumn("orden_trabajo_dates", $this->DATES);
|
||||
$this->forge->addColumn("orden_trabajo_users", $this->USERS);
|
||||
foreach ($this->USERS as $key => $value) {
|
||||
$this->forge->addForeignKey([$key],"users",["id"]);
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
$this->forge->dropColumn("orden_trabajo_dates", array_keys($this->DATES));
|
||||
$this->forge->dropColumn("orden_trabajo_users", array_keys($this->USERS));
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -222,6 +222,7 @@ class PresupuestoLineaEntity extends \CodeIgniter\Entity\Entity
|
||||
|
||||
return $nombre;
|
||||
}
|
||||
|
||||
public function isGuarda(): bool
|
||||
{
|
||||
return in_array($this->attributes["tipo"], ["lp_guardas"]);
|
||||
|
||||
@ -15,8 +15,15 @@ class OrdenTrabajoDateEntity extends Entity
|
||||
"interior_bn_at" => null,
|
||||
"interior_color_at" => null,
|
||||
"cubierta_at" => null,
|
||||
"sobrecubierta_at" => null, //TODO
|
||||
"guarda_at" => null, //TODO
|
||||
//ACABADO
|
||||
"plastificado_at" => null,
|
||||
"plakene_at" => null, //TODO
|
||||
"retractilado_at"=> null,
|
||||
"estampado_at" => null, //TODO
|
||||
"uvi_at" => null, //TODO
|
||||
//MANIPULADO
|
||||
"encuadernacion_at" => null,
|
||||
"corte_at" => null,
|
||||
"preparacion_interiores_at" => null,
|
||||
@ -24,9 +31,8 @@ class OrdenTrabajoDateEntity extends Entity
|
||||
"cosido_at" => null,
|
||||
"solapa_at" => null,
|
||||
"grapado_at" => null,
|
||||
"retractilado_at"=> null,
|
||||
"retractilado5_at"=> null,
|
||||
"prototipo_at"=> null,
|
||||
"retractilado5_at"=> null, // !DELETE
|
||||
"prototipo_at"=> null, // !DELETE
|
||||
"marcapaginas_at"=> null,
|
||||
"espiral_at"=> null,
|
||||
//FERRO
|
||||
|
||||
@ -34,6 +34,7 @@ class OrdenTrabajoEntity extends Entity
|
||||
"comment_cubierta" => null,
|
||||
"comment_encuadernacion" => null,
|
||||
"comment_logistica" => null,
|
||||
"info_solapa_guillotina" => null,
|
||||
"revisar_formato" => null,
|
||||
"revisar_lomo" => null,
|
||||
"revisar_solapa" => null,
|
||||
@ -61,6 +62,7 @@ class OrdenTrabajoEntity extends Entity
|
||||
"comment_cubierta" => "?string",
|
||||
"comment_encuadernacion" => "?string",
|
||||
"comment_logistica" => "?string",
|
||||
"info_solapa_guillotina" => "?string",
|
||||
"revisar_formato" => "bool",
|
||||
"revisar_lomo" => "bool",
|
||||
"revisar_solapa" => "bool",
|
||||
@ -88,6 +90,21 @@ class OrdenTrabajoEntity extends Entity
|
||||
$m = model(OrdenTrabajoTarea::class);
|
||||
return $m->where("orden_trabajo_id", $this->attributes["id"])->where("presupuesto_linea_id IS NOT NULL", NULL, FALSE)->findAll() ?? [];
|
||||
}
|
||||
public function tareas_acabado(): array
|
||||
{
|
||||
$m = model(OrdenTrabajoTarea::class);
|
||||
return $m->where("orden_trabajo_id", $this->attributes["id"])->where("presupuesto_acabado_id IS NOT NULL", NULL, FALSE)->findAll() ?? [];
|
||||
}
|
||||
public function tareas_encuadernado(): array
|
||||
{
|
||||
$m = model(OrdenTrabajoTarea::class);
|
||||
return $m->where("orden_trabajo_id", $this->attributes["id"])->where("presupuesto_encuadernado_id IS NOT NULL", NULL, FALSE)->findAll() ?? [];
|
||||
}
|
||||
public function tareas_manipulado(): array
|
||||
{
|
||||
$m = model(OrdenTrabajoTarea::class);
|
||||
return $m->where("orden_trabajo_id", $this->attributes["id"])->where("presupuesto_manipulado_id IS NOT NULL", NULL, FALSE)->findAll() ?? [];
|
||||
}
|
||||
/**
|
||||
* Devuelve el presupuesto de la orden de trabajo
|
||||
*
|
||||
@ -191,4 +208,5 @@ class OrdenTrabajoEntity extends Entity
|
||||
];
|
||||
return $estados[$this->attributes["estado"]];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ namespace App\Entities\Produccion;
|
||||
use App\Entities\Configuracion\Imposicion;
|
||||
use App\Entities\Configuracion\Maquina;
|
||||
use App\Entities\Presupuestos\PresupuestoAcabadosEntity;
|
||||
use App\Entities\Presupuestos\PresupuestoEncuadernacionesEntity;
|
||||
use App\Entities\Presupuestos\PresupuestoLineaEntity;
|
||||
use App\Entities\Presupuestos\PresupuestoManipuladosEntity;
|
||||
use App\Models\Configuracion\ImposicionModel;
|
||||
@ -12,6 +13,7 @@ use App\Models\Configuracion\MaquinaModel;
|
||||
use App\Models\OrdenTrabajo\OrdenTrabajoModel;
|
||||
use App\Models\OrdenTrabajo\OrdenTrabajoTareaProgressDate;
|
||||
use App\Models\Presupuestos\PresupuestoAcabadosModel;
|
||||
use App\Models\Presupuestos\PresupuestoEncuadernacionesModel;
|
||||
use App\Models\Presupuestos\PresupuestoLineaModel;
|
||||
use App\Models\Presupuestos\PresupuestoManipuladosModel;
|
||||
use CodeIgniter\Entity\Entity;
|
||||
@ -23,6 +25,11 @@ class OrdenTrabajoTareaEntity extends Entity
|
||||
"id" => null,
|
||||
"orden_trabajo_id" => null,
|
||||
"presupuesto_linea_id" => null,
|
||||
"presupuesto_acabado_id" => null,
|
||||
"presupuesto_preimpresion_id" => null,
|
||||
"presupuesto_encuadernado_id" => null,
|
||||
"presupuesto_extra_id" => null,
|
||||
"presupuesto_manipulado_id" => null,
|
||||
"nombre" => null,
|
||||
"orden" => null,
|
||||
"maquina_id" => null,
|
||||
@ -96,10 +103,15 @@ class OrdenTrabajoTareaEntity extends Entity
|
||||
*
|
||||
* @return PresupuestoLineaEntity
|
||||
*/
|
||||
public function presupuesto_linea(): PresupuestoLineaEntity
|
||||
public function presupuesto_linea(): ?PresupuestoLineaEntity
|
||||
{
|
||||
$presupuesto_linea = null;
|
||||
$m = model(PresupuestoLineaModel::class);
|
||||
return $m->find($this->attributes["presupuesto_linea_id"]);
|
||||
if ($this->attributes['presupuesto_linea_id']) {
|
||||
|
||||
$presupuesto_linea = $m->find($this->attributes["presupuesto_linea_id"]);
|
||||
}
|
||||
return $presupuesto_linea;
|
||||
}
|
||||
/**
|
||||
* Devuelve la maquina original del presupuesto linea
|
||||
@ -108,17 +120,35 @@ class OrdenTrabajoTareaEntity extends Entity
|
||||
*/
|
||||
public function maquina_presupuesto_linea(): Maquina
|
||||
{
|
||||
return $this->presupuesto_linea()->maquina();
|
||||
return $this->presupuesto_linea()?->maquina();
|
||||
}
|
||||
/**
|
||||
* Devuelve el presupuesto acabado origen de esta tarea
|
||||
*
|
||||
* @return PresupuestoAcabadosEntity
|
||||
*/
|
||||
public function presupuesto_acabado(): PresupuestoAcabadosEntity
|
||||
public function presupuesto_acabado(): ?PresupuestoAcabadosEntity
|
||||
{
|
||||
$presupuesto_acabado = null;
|
||||
$m = model(PresupuestoAcabadosModel::class);
|
||||
return $m->find($this->attributes["presupuesto_linea_id"]);
|
||||
if ($this->attributes["presupuesto_acabado_id"]) {
|
||||
$presupuesto_acabado = $m->find($this->attributes["presupuesto_acabado_id"]);
|
||||
}
|
||||
return $presupuesto_acabado;
|
||||
}
|
||||
/**
|
||||
* Devuelve el presupuesto enducadernacion origen de esta tarea
|
||||
*
|
||||
* @return PresupuestoEncuadernacionesEntity
|
||||
*/
|
||||
public function presupuesto_encuadernacion(): ?PresupuestoEncuadernacionesEntity
|
||||
{
|
||||
$presupuesto_encuadernacion = null;
|
||||
$m = model(PresupuestoEncuadernacionesModel::class);
|
||||
if ($this->attributes["presupuesto_encuadernado_id"]) {
|
||||
$presupuesto_encuadernacion = $m->find($this->attributes["presupuesto_encuadernado_id"]);
|
||||
}
|
||||
return $presupuesto_encuadernacion;
|
||||
}
|
||||
/**
|
||||
* Devuelve el presupuesto acabado origen de esta tarea
|
||||
@ -152,8 +182,8 @@ class OrdenTrabajoTareaEntity extends Entity
|
||||
{
|
||||
$dates = $this->progress_dates();
|
||||
$intervals = [];
|
||||
$init = [];
|
||||
$end = [];
|
||||
$init = null;
|
||||
$end = null;
|
||||
foreach ($dates as $key => $date) {
|
||||
if ($date->estado == "I") {
|
||||
if ($date->action_at) {
|
||||
@ -161,7 +191,7 @@ class OrdenTrabajoTareaEntity extends Entity
|
||||
}
|
||||
}
|
||||
if ($date->estado == "S" || $date->estado == "F") {
|
||||
if ($date->action_at) {
|
||||
if ($date->action_at && $init) {
|
||||
$end = Time::createFromFormat('Y-m-d H:i:s', $date->action_at);
|
||||
$intervals[] = $init->difference($end)->getSeconds();
|
||||
}
|
||||
@ -182,4 +212,24 @@ class OrdenTrabajoTareaEntity extends Entity
|
||||
}
|
||||
return $isTareaCosido;
|
||||
}
|
||||
public function isImpresion() : bool
|
||||
{
|
||||
return $this->attributes['presupuesto_linea_id'] != null;
|
||||
}
|
||||
public function isAcabado() : bool
|
||||
{
|
||||
return $this->attributes['presupuesto_acabado_id'] != null;
|
||||
}
|
||||
public function isManipulado() : bool
|
||||
{
|
||||
return $this->attributes['presupuesto_manipulado_id'] != null;
|
||||
}
|
||||
public function isEncuadernado() : bool
|
||||
{
|
||||
return $this->attributes['presupuesto_encuadernado_id'] != null;
|
||||
}
|
||||
public function isCorte() : bool
|
||||
{
|
||||
return $this->attributes['is_corte'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,8 +19,13 @@ class OrdenTrabajoUserEntity extends Entity
|
||||
"interior_bn_user_id" => null,
|
||||
"interior_color_user_id" => null,
|
||||
"cubierta_user_id" => null,
|
||||
"sobrecubierta_user_id" => null,
|
||||
"guarda_user_id" => null,
|
||||
//ACABADO
|
||||
"plastificado_user_id" => null,
|
||||
"plakene_user_id" => null,
|
||||
"estampado_user_id" => null,
|
||||
"uvi_user_id" => null,
|
||||
"encuadernacion_user_id" => null,
|
||||
"corte_user_id" => null,
|
||||
"preparacion_interior_user_id" => null,
|
||||
|
||||
@ -43,6 +43,7 @@ return [
|
||||
"maquina_actual" => "Máquina actual",
|
||||
"tiempo_estimado" => "Tiempo estimado",
|
||||
"tiempo" => "Tiempo",
|
||||
"proveedor" => "Proveedor",
|
||||
"imposicion" => "Imposición"
|
||||
],
|
||||
"finalizadas" => "Finalizadas",
|
||||
@ -70,6 +71,7 @@ return [
|
||||
"portada" => "portada",
|
||||
"plakene_traslucido" => "Plakene traslúcido",
|
||||
"plastificado_mate" => "Plastificado mate",
|
||||
"plastificado" => "Plastificado",
|
||||
"espiral" => "Espiral",
|
||||
"embalaje" => "Embalaje",
|
||||
"tiempo_consumido" => "Tiempo consumido",
|
||||
@ -98,12 +100,16 @@ return [
|
||||
"grapado" => "Grapado",
|
||||
"solapa" => "Solapas",
|
||||
"retractilado" => "Retractilado",
|
||||
"manipulado" => "Entrada manipulado",
|
||||
"retractilado5" => "Retractilado 5",
|
||||
"prototipo" => "Prototipo",
|
||||
"marcapaginas" => "Marcapáginas",
|
||||
//IMPRESION
|
||||
"impresion_bn" => "Impresión BN",
|
||||
"cubierta" => "Cubierta/Portada",
|
||||
"guarda" => "Guarda",
|
||||
"encuadernacion" => "Encuadernación",
|
||||
|
||||
//PREIMPRESION
|
||||
"pre_formato" => "Revisión formato",
|
||||
"pre_lomo" => "Revisión lomo",
|
||||
@ -151,6 +157,5 @@ return [
|
||||
"comentariosCubierta" => "Comentarios cubierta",
|
||||
"comentariosEncuadernacion" => "Comentarios encuadernación",
|
||||
"comentariosLogistica" => "Comentarios logística",
|
||||
|
||||
|
||||
"info_solapa_guillotina" => "Datos solapa y preparación guillotina",
|
||||
];
|
||||
@ -214,4 +214,12 @@ class ProveedorModel extends \App\Models\BaseModel
|
||||
|
||||
return $builder->get()->getResultObject();
|
||||
}
|
||||
public function querySelect(?string $q)
|
||||
{
|
||||
$query = $this->builder()->select(['id','nombre as name']);
|
||||
if($q){
|
||||
$query->like('nombre',$q);
|
||||
}
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
|
||||
@ -427,6 +427,9 @@ class MaquinaModel extends \App\Models\BaseModel
|
||||
->where('tarea_progress.deleted_at', null)
|
||||
->groupBy('lg_maquinas.id')
|
||||
->orderBy('countTareas','DESC');
|
||||
if($maquina_tipo == "impresion"){
|
||||
$query->where('orden_trabajo_tareas.is_corte',0);
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
@ -22,8 +22,14 @@ class OrdenTrabajoDate extends Model
|
||||
"interior_bn_at",
|
||||
"interior_color_at",
|
||||
"cubierta_at",
|
||||
"sobrecubierta_at", //TODO
|
||||
"guarda_at", //TODO
|
||||
//ACABADO
|
||||
"plastificado_at",
|
||||
"plakene_at", //TODO
|
||||
"retractilado_at",
|
||||
"estampado_at", //TODO
|
||||
"uvi_at", //TODO
|
||||
"encuadernacion_at",
|
||||
"corte_at",
|
||||
"preparacion_interiores_at",
|
||||
@ -31,7 +37,6 @@ class OrdenTrabajoDate extends Model
|
||||
"cosido_at",
|
||||
"solapa_at",
|
||||
"grapado_at",
|
||||
"retractilado_at",
|
||||
"retractilado5_at",
|
||||
"prototipo_at",
|
||||
"marcapaginas_at",
|
||||
|
||||
@ -29,6 +29,7 @@ class OrdenTrabajoModel extends Model
|
||||
"comment_cubierta",
|
||||
"comment_encuadernacion",
|
||||
"comment_logistica",
|
||||
"info_solapa_guillotina",
|
||||
"revisar_formato",
|
||||
"revisar_lomo",
|
||||
"revisar_solapa",
|
||||
|
||||
@ -23,11 +23,18 @@ class OrdenTrabajoUser extends Model
|
||||
"interior_bn_user_id",
|
||||
"interior_color_user_id",
|
||||
"cubierta_user_id",
|
||||
"sobrecubierta_user_id",
|
||||
"guarda_user_id",
|
||||
//ACABADO
|
||||
"plastificado_user_id",
|
||||
"plakene_user_id",
|
||||
"retractilado_user_id",
|
||||
"estampado_user_id",
|
||||
"uvi_user_id",
|
||||
//ENCUADERNADO
|
||||
"encuadernacion_user_id",
|
||||
"corte_user_id",
|
||||
"preparacion_interior_user_id",
|
||||
"corte_user_id",
|
||||
"entrada_manipulado_user_id",
|
||||
"cosido_user_id",
|
||||
"solapa_user_id",
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,9 +6,6 @@
|
||||
<th><?= lang('ID') ?></th>
|
||||
<th><?= lang('Produccion.task.task') ?></th>
|
||||
<th><?= lang('Produccion.task.estado') ?></th>
|
||||
<th><?= lang('Produccion.datatable.titulo') ?></th>
|
||||
<th><?= lang('Produccion.datatable.papel') ?></th>
|
||||
<th><?= lang('Produccion.datatable.gramaje') ?></th>
|
||||
<th><?= lang('Produccion.datatable.fecha_impresion') ?></th>
|
||||
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th>
|
||||
</tr>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<div class="table-responsive">
|
||||
|
||||
<table id="<?= $id ?>" class="table table-hover">
|
||||
<table id="<?= $id ?>" class="table table-hover table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?= lang('Produccion.task.order') ?></th>
|
||||
@ -8,6 +8,7 @@
|
||||
<th><?= lang('Produccion.task.maquina_presupuesto') ?></th>
|
||||
<th><?= lang('Produccion.task.maquina_actual') ?></th>
|
||||
<th><?= lang('Produccion.task.imposicion') ?></th>
|
||||
<th><?= lang('Produccion.task.proveedor') ?></th>
|
||||
<th><?= lang('Produccion.task.tiempo_estimado') ?></th>
|
||||
<th><?= lang('Produccion.task.tiempo') ?></th>
|
||||
<th></th>
|
||||
|
||||
@ -75,13 +75,25 @@
|
||||
role="tab"
|
||||
data-bs-toggle="tab"
|
||||
data-bs-target="#comentarios-logistica"
|
||||
aria-controls="comentarios-logiscita"
|
||||
aria-controls="comentarios-logistica"
|
||||
aria-selected="false">
|
||||
<?= lang("Produccion.comentariosLogistica") ?>
|
||||
|
||||
</button>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<button
|
||||
type="button"
|
||||
class="nav-link"
|
||||
role="tab"
|
||||
data-bs-toggle="tab"
|
||||
data-bs-target="#info-solapa-guillotina"
|
||||
aria-controls="info-solapa-guillotina"
|
||||
aria-selected="false">
|
||||
<?= lang("Produccion.info_solapa_guillotina") ?>
|
||||
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content border border-container">
|
||||
<div class="tab-pane fade show active" id="comentarios-ot" role="tabpanel">
|
||||
@ -160,6 +172,21 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="info-solapa-guillotina" role="tabpanel">
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12 px-4">
|
||||
<div class="mb-3">
|
||||
<textarea
|
||||
rows="3"
|
||||
name="info_solapa_guillotina"
|
||||
class="ot-comment w-100"
|
||||
style="height: 10em;"
|
||||
class="form-control"><?= $ot->info_solapa_guillotina ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- //.accordion-body -->
|
||||
|
||||
@ -136,30 +136,90 @@
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isCubierta"] ? "" : "d-none" ?>">
|
||||
<label for="ot-portada" class="form-label"><?= @lang("Produccion.cubierta") ?></label>
|
||||
<label for="ot-cubierta" class="form-label"><?= @lang("Produccion.cubierta") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="cubierta_at" id="ot-portada" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="cubierta_at" id="ot-cubierta" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["cubierta_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isSobrecubierta"] ? "" : "d-none" ?>">
|
||||
<label for="ot-sobrecubierta" class="form-label"><?= @lang("Produccion.sobrecubierta") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="sobrecubierta_at" id="ot-sobrecubierta" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["sobrecubierta_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isGuarda"] ? "" : "d-none" ?>">
|
||||
<label for="ot-guarda" class="form-label"><?= @lang("Produccion.guarda") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="guarda_at" id="ot-guarda" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["guarda_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||
<h4 class="text-truncate"><?= lang("Produccion.progress_manipulado") ?></h4>
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isPlastificado"] ? "" : "d-none" ?>">
|
||||
<label for="ot-plastificado-mate" class="form-label"><?= @lang("Produccion.plastificado_mate") ?></label>
|
||||
<label for="ot-plastificado" class="form-label"><?= @lang("Produccion.plastificado") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="plastificado_at" id="ot-plastificado-mate" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="plastificado_at" id="ot-plastificado" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["plastificado_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100">
|
||||
<h4><?= lang("Produccion.progress_manipulado") ?></h4>
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isPlakene"] ? "" : "d-none" ?>">
|
||||
<label for="ot-plakene" class="form-label"><?= @lang("Produccion.plakene") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="plakene_at" id="ot-plakene" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["plakene_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isRetractilado"] ? "" : "d-none" ?>">
|
||||
<label for="ot-retractilado" class="form-label"><?= @lang("Produccion.retractilado") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="retractilado_at" id="ot-retractilado" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["retractilado_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isUVI"] ? "" : "d-none" ?>">
|
||||
<label for="ot-uvi" class="form-label"><?= @lang("Produccion.uvi") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="uvi_at" id="ot-uvi" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["uvi_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isEstampado"] ? "" : "d-none" ?>">
|
||||
<label for="ot-estampado" class="form-label"><?= @lang("Produccion.estampado") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="estampado_at" id="ot-estampado" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["estampado_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $presupuesto->cosido ? "" : "d-none" ?>">
|
||||
<label for="ot-prep-cosido" class="form-label"><?= @lang("Produccion.cosido") ?></label>
|
||||
@ -187,35 +247,6 @@
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["solapa_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $presupuesto->retractilado ? "" : "d-none" ?>">
|
||||
<label for="ot-prep-retractilado" class="form-label"><?= @lang("Produccion.retractilado") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="retractilado_at" id="ot-prep-retractilado" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["retractilado_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
</div>
|
||||
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $presupuesto->retractilado5 ? "" : "d-none" ?>">
|
||||
<label for="ot-prep-retractilado5" class="form-label"><?= @lang("Produccion.retractilado5") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="retractilado5_at" id="ot-prep-retractilado5" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["retractilado5_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
</div>
|
||||
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $presupuesto->prototipo ? "" : "d-none" ?>">
|
||||
<label for="ot-prep-prototipo" class="form-label"><?= @lang("Produccion.prototipo") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="prototipo_at" id="ot-prep-prototipo" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"><?= $user_dates["prototipo_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
</div>
|
||||
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $presupuesto->marcapaginas ? "" : "d-none" ?>">
|
||||
@ -237,13 +268,23 @@
|
||||
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= $flags["isEspiral"] ? "" : "d-none" ?>">
|
||||
<label for="ot-espiral" class="form-label"><?= @lang("Produccion.espiral") ?></label>
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= count($ot->tareas_encuadernado()) > 0 ? "" : "d-none" ?>">
|
||||
<label for="ot-manipulado" class="form-label"><?= @lang("Produccion.manipulado") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="espiral_at" id="ot-espiral" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="entrada_manipulado_at" id="ot-manipulado" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"> <?= $user_dates["espiral_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
<div class="form-text"> <?= $user_dates["entrada_manipulado_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
<!-- Progress -->
|
||||
<div class="col-xs-12 col-md-4 col-lg-4 mb-2 w-100 <?= count($ot->tareas_encuadernado()) > 0 ? "" : "d-none" ?>">
|
||||
<label for="ot-encuadernacion" class="form-label"><?= @lang("Produccion.encuadernacion") ?></label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control ot-date" placeholder="DD/MM/YYYY" name="encuadernacion_at" id="ot-encuadernacion" data-input <?= $is_finalizada ? "disabled" : "" ?>>
|
||||
<button class="btn btn-outline-danger btn-erase-date" type="button"><i class="ti-eraser ti"></i></button>
|
||||
</div>
|
||||
<div class="form-text"> <?= $user_dates["encuadernacion_at"] ?? "<span class='ti-sm ti ti-alert-triangle me-1'></span>" ?></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
/**
|
||||
* MAQUINISTA MENU
|
||||
*/
|
||||
if (auth()->user()->inGroup('maquina')) {
|
||||
if (auth()->user()->inGroup('maquina','admin')) {
|
||||
?>
|
||||
<!-- Catalogue -->
|
||||
<li class="menu-item">
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
<?php if (count($encuadernaciones) > 0): ?>
|
||||
<tr style="color: red;">
|
||||
<td><?= $encuadernacion->tarifa()->nombre ?></td>
|
||||
<td></td>
|
||||
<td>Plástico</td>
|
||||
<td></td>
|
||||
<td><?= $flags['isPlakene'] ? "SI" : "NO" ?></td>
|
||||
<td><?= $plakene_tipo ?? "" ?></td>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<table>
|
||||
<tr class="encuadernacion">
|
||||
<th class="cell-50">Encuadernacion</th>
|
||||
<th class="cell-50">Color</th>
|
||||
<th class="cell-50">Tipo</th>
|
||||
<th class="cell-50">Plakenes</th>
|
||||
<th class="cell-50">Plakene</th>
|
||||
<th class="cell-50">Externo</th>
|
||||
@ -10,7 +10,7 @@
|
||||
<?php if (count($encuadernaciones) > 0): ?>
|
||||
<tr style="color: red;">
|
||||
<td><?= $encuadernacion->tarifa()->nombre ?></td>
|
||||
<td></td>
|
||||
<td>Metálico</td>
|
||||
<td><?= $flags['isPlakene'] ? "SI" : "NO" ?></td>
|
||||
<td><?= $plakene_tipo ?? "" ?></td>
|
||||
<td><?= $encuadernacion->proveedor() ? $encuadernacion->proveedor()->nombre : "" ?></td>
|
||||
|
||||
@ -251,7 +251,7 @@ $settings = $session->get('settings');
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_interior ? '' : 'd-none' ?>">
|
||||
<div class="flex-row impresion">Comentarios impresión interior</div>
|
||||
<div class="comment-content w-100">
|
||||
<p>
|
||||
@ -276,7 +276,7 @@ $settings = $session->get('settings');
|
||||
<td>-</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_logistica ? '' : 'd-none' ?>">
|
||||
<div class="flex-row">Comentarios logistica:</div>
|
||||
<div class="comment-content">
|
||||
<p>
|
||||
|
||||
@ -255,7 +255,7 @@ $settings = $session->get('settings');
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_interior ? '' : 'd-none' ?>">
|
||||
<div class="flex-row impresion"><?= lang('Produccion.comentariosImpresionInterior') ?></div>
|
||||
<div class=" w-100">
|
||||
<p>
|
||||
@ -294,7 +294,7 @@ $settings = $session->get('settings');
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_cubierta ? '' : 'd-none' ?>">
|
||||
<div class="flex-row cubierta"><?= lang('Produccion.comentariosCubierta') ?></div>
|
||||
|
||||
<div class="">
|
||||
@ -324,7 +324,7 @@ $settings = $session->get('settings');
|
||||
<td class="bg-encuadernacion" style="width: 100px;"><?= $acabado->proveedor() ? $acabado->proveedor()->nombre : "" ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-start" colspan="2">Meter datos de solapas y preparación guillotina</td>
|
||||
<td class="text-start" colspan="2"><?=$ot->info_solapa_guillotina?></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="t-header">CORTE PIE:</td>
|
||||
@ -352,7 +352,7 @@ $settings = $session->get('settings');
|
||||
?>
|
||||
<?php if (count($encuadernaciones) > 0): ?>
|
||||
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_encuadernacion ? '' : 'd-none' ?>" >
|
||||
<div class="flex-row encuadernacion"><?= lang('Produccion.comentariosEncuadernacion') ?></div>
|
||||
<div class="">
|
||||
<p>
|
||||
@ -382,7 +382,7 @@ $settings = $session->get('settings');
|
||||
<td>-</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_logistica ? '' : 'd-none' ?>">
|
||||
<div class="flex-row logistica"><?= lang('Produccion.comentariosLogistica') ?></div>
|
||||
|
||||
<div class="">
|
||||
|
||||
@ -255,7 +255,7 @@ $settings = $session->get('settings');
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_interior ? '' : 'd-none' ?>">
|
||||
<div class="flex-row impresion"><?= lang('Produccion.comentariosImpresionInterior') ?></div>
|
||||
<div class="comment-content w-100">
|
||||
<p>
|
||||
@ -294,7 +294,7 @@ $settings = $session->get('settings');
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_cubierta ? '' : 'd-none' ?>">
|
||||
<div class="flex-row cubierta"><?= lang('Produccion.comentariosCubierta') ?></div>
|
||||
|
||||
<div class="comment-content">
|
||||
@ -324,7 +324,7 @@ $settings = $session->get('settings');
|
||||
<td class="bg-encuadernacion" style="width: 100px;"><?= $acabado->proveedor() ? $acabado->proveedor()->nombre : "" ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-start" colspan="2">Meter datos de solapas y preparación guillotina</td>
|
||||
<td class="text-start" colspan="2"><?=$ot->info_solapa_guillotina?></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="t-header">CORTE PIE:</td>
|
||||
@ -352,7 +352,7 @@ $settings = $session->get('settings');
|
||||
?>
|
||||
<?php if (count($encuadernaciones) > 0): ?>
|
||||
|
||||
<div class="comments">
|
||||
<div class="comments <?=$ot->comment_encuadernacion ? '' : 'd-none' ?>">
|
||||
<div class="flex-row encuadernacion"><?= lang('Produccion.comentariosEncuadernacion') ?></div>
|
||||
<div class="comment-content">
|
||||
<p>
|
||||
|
||||
@ -11,9 +11,9 @@ class MaquinistaTareaList {
|
||||
{ data: 'otId', searchable: false, sortable: false },
|
||||
{ data: 'tareaName', searchable: false, sortable: false },
|
||||
{ data: 'tareaEstado', searchable: false, sortable: false,render : this.renderStado.bind(this)},
|
||||
{ data: 'presupuesto_titulo', searchable: false, sortable: false },
|
||||
{ data: 'papel_impresion', searchable: false, sortable: false },
|
||||
{ data: 'papel_gramaje', searchable: false, sortable: false },
|
||||
// { data: 'presupuesto_titulo', searchable: false, sortable: false },
|
||||
// { data: 'papel_impresion', searchable: false, sortable: false },
|
||||
// { data: 'papel_gramaje', searchable: false, sortable: false },
|
||||
{ data: 'fecha_impresion', searchable: false, sortable: false },
|
||||
{ data: 'action', searchable: false, sortable: false, width: "20rem" },
|
||||
]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
|
||||
import Ajax from '../../../components/ajax.js'
|
||||
import { alertConfirmAction } from '../../../components/alerts/sweetAlert.js'
|
||||
import { alertConfirmAction, alertError, alertSuccess } from '../../../components/alerts/sweetAlert.js'
|
||||
class MaquinistaTareaView {
|
||||
constructor(domItem) {
|
||||
this.item = domItem
|
||||
@ -155,11 +155,13 @@ class MaquinistaTareaView {
|
||||
window.location.href = '/produccion/ordentrabajo/maquinista/maquinas/view'
|
||||
}
|
||||
this.showBasedOnStatus(response.data.status)
|
||||
alertSuccess(response.message, null, { position: 'top' }).fire()
|
||||
}
|
||||
this.actionLoader(false)
|
||||
}
|
||||
handleUpdateTareaProgressError(error) {
|
||||
popErrorAlert(error.error)
|
||||
alertError(error.error, null, { position: 'top' }).fire()
|
||||
this.actionLoader(false)
|
||||
}
|
||||
|
||||
|
||||
@ -28,15 +28,35 @@ class OrdenTrabajo {
|
||||
this.otEstado = this.item.find("#ot-estado");
|
||||
|
||||
this.datatableColumns = [
|
||||
{ data: 'orden', searchable: true, sortable: true, render: this._renderOrdenTarea.bind(this), width: "10%" },
|
||||
{ data: 'nombre', searchable: true, sortable: true, width: "20%" },
|
||||
{ data: 'maquina_presupuesto_linea', searchable: true, sortable: true, width: "20%" },
|
||||
{ data: 'maquina_tarea', searchable: false, sortable: false, render: this._renderMaquinaSelectTable.bind(this), width: "20%" },
|
||||
{ data: 'imposicion', searchable: false, sortable: false, render: this._renderImposicionSelectTable.bind(this) },
|
||||
{ data: 'orden', searchable: true, sortable: true, render: this._renderOrdenTarea.bind(this) },
|
||||
{ data: 'nombre', searchable: true, sortable: true },
|
||||
{
|
||||
data: 'maquina_presupuesto_linea', searchable: true, sortable: true, render: (d) => {
|
||||
if (d) {
|
||||
|
||||
return `
|
||||
<div class="btn-group dropstart">
|
||||
<button class="btn btn-primary btn-xs dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
||||
<i class="ti ti-printer ti-xs"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li> <a class="dropdown-item" href="javascript:void(0);">${d}</a> </li>
|
||||
</ul>
|
||||
</div>
|
||||
`
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
{ data: 'maquina_tarea', searchable: false, sortable: false, render: this._renderMaquinaSelectTable.bind(this), width: "10%" },
|
||||
{ data: 'imposicion', searchable: false, sortable: false, render: this._renderImposicionSelectTable.bind(this), width: "10%" },
|
||||
{ data: 'proveedor', searchable: false, sortable: false, render: this._renderProveedorSelectTable.bind(this), width: "10%" },
|
||||
{ data: 'tiempo_estimado', searchable: false, sortable: false },
|
||||
{ data: 'tiempo_real', searchable: false, sortable: false },
|
||||
{
|
||||
data: 'action', searchable: false, sortable: false, width: "10%", render: this._renderActionCell.bind(this)
|
||||
data: 'action', searchable: false, sortable: false, width: "5%", render: this._renderActionCell.bind(this)
|
||||
},
|
||||
]
|
||||
|
||||
@ -76,27 +96,40 @@ class OrdenTrabajo {
|
||||
this.pendienteFerro = new DatePicker(this.otForm.find("#ot-pendiente-ferro"), option)
|
||||
this.ferroCliente = new DatePicker(this.otForm.find("#ot-ferro-cliente"), option)
|
||||
this.ferroOk = new DatePicker(this.otForm.find("#ot-ferro-ok"), option)
|
||||
this.plakeneTraslucido = new DatePicker(this.otForm.find("#ot-plakene-traslucido"), option)
|
||||
// this.plakeneTraslucido = new DatePicker(this.otForm.find("#ot-plakene-traslucido"), option)
|
||||
this.impresionColor = new DatePicker(this.otForm.find("#ot-impresion-color"), option)
|
||||
this.impresionBN = new DatePicker(this.otForm.find("#ot-impresion-bn"), option)
|
||||
this.cubierta = new DatePicker(this.otForm.find("#ot-cubierta"), option)
|
||||
this.sobrecubierta = new DatePicker(this.otForm.find("#ot-sobrecubierta"), option)
|
||||
this.guarda = new DatePicker(this.otForm.find("#ot-guarda"), option)
|
||||
|
||||
this.portada = new DatePicker(this.otForm.find("#ot-portada"), option)
|
||||
this.plastificadoMate = new DatePicker(this.otForm.find("#ot-plastificado-mate"), option)
|
||||
|
||||
this.plastificado = new DatePicker(this.otForm.find("#ot-plastificado"), option)
|
||||
this.plakene = new DatePicker(this.otForm.find("#ot-plakene"), option)
|
||||
this.retractilado = new DatePicker(this.otForm.find("#ot-retractilado"), option)
|
||||
this.estampado = new DatePicker(this.otForm.find("#ot-estampado"), option)
|
||||
this.uvi = new DatePicker(this.otForm.find("#ot-uvi"), option)
|
||||
|
||||
|
||||
|
||||
this.encuadernacion = new DatePicker(this.otForm.find("#ot-encuadernacion"), option)
|
||||
|
||||
this.entradaManipulado = new DatePicker(this.otForm.find("#ot-manipulado"), option)
|
||||
this.prepGuillotina = new DatePicker(this.otForm.find("#ot-prep-guillotina"), option)
|
||||
|
||||
|
||||
this.prepCosido = new DatePicker(this.otForm.find("#ot-prep-cosido"), option)
|
||||
this.prepGrapado = new DatePicker(this.otForm.find("#ot-prep-grapado"), option)
|
||||
this.prepSolapa = new DatePicker(this.otForm.find("#ot-prep-solapa"), option)
|
||||
|
||||
this.prepPrototipo = new DatePicker(this.otForm.find("#ot-prep-prototipo"), option)
|
||||
// this.prepPrototipo = new DatePicker(this.otForm.find("#ot-prep-prototipo"), option)
|
||||
this.prepMarcapaginas = new DatePicker(this.otForm.find("#ot-prep-marcapaginas"), option)
|
||||
this.prepRetractilado = new DatePicker(this.otForm.find("#ot-prep-retractilado"), option)
|
||||
this.prepRetractilado5 = new DatePicker(this.otForm.find("#ot-prep-retractilado5"), option)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
this.espiral = new DatePicker(this.otForm.find("#ot-espiral"), option)
|
||||
// this.espiral = new DatePicker(this.otForm.find("#ot-espiral"), option)
|
||||
this.embalaje = new DatePicker(this.otForm.find("#ot-embalaje"), option)
|
||||
this.envio = new DatePicker(this.otForm.find("#ot-envio"), option)
|
||||
|
||||
@ -115,6 +148,7 @@ class OrdenTrabajo {
|
||||
}
|
||||
eventTareas() {
|
||||
this.otForm.on("change", ".select-maquina-tarea-datatable", this.handleTareaChange.bind(this))
|
||||
this.otForm.on("change", ".select-proveedor-tarea-datatable", this.handleUpdateProveedor.bind(this))
|
||||
this.otForm.on("change", ".orden-tarea", this.handleTareaChange.bind(this))
|
||||
this.otForm.on("change", ".select-imposicion-tarea-datatable", this.handleTareaChange.bind(this))
|
||||
this.otForm.on("click", ".increase-order", (event) => {
|
||||
@ -133,6 +167,7 @@ class OrdenTrabajo {
|
||||
unbindEventTareas() {
|
||||
this.otForm.off("change", ".select-maquina-tarea-datatable")
|
||||
this.otForm.off("change", ".select-imposicion-tarea-datatable")
|
||||
this.otForm.off("change", ".select-proveedor-tarea-datatable")
|
||||
this.otForm.off("change", ".orden-tarea")
|
||||
this.otForm.off("click", ".increase-order")
|
||||
this.otForm.off("click", ".decrease-order")
|
||||
@ -208,6 +243,16 @@ class OrdenTrabajo {
|
||||
return render
|
||||
|
||||
}
|
||||
_renderProveedorSelectTable(d, t) {
|
||||
if (d.proveedor) {
|
||||
let render = `<select id="select-proveedor-tarea-${d.tarea.id}" data-proveedor-id="${d.proveedor.id}" data-proveedor-tipo="${d.proveedor.tipo_id}" data-id="${d.tarea.id}" name="proveedor_id" class="select2 form-select select-proveedor-tarea-datatable" ${this.isOtFinalizada ? "disabled" : ""}>
|
||||
<option value="${d.proveedor.id}" selected="selected">${d.proveedor.nombre ?? ''}</option>
|
||||
</select>`
|
||||
return render
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
_renderActionCell(d, t) {
|
||||
|
||||
let cell = `<div class="d-flex justify-content-start align-items-center gap-1">
|
||||
@ -222,7 +267,7 @@ class OrdenTrabajo {
|
||||
|
||||
return `
|
||||
<div class="d-flex justify-content-between aling-items-center gap-2 orden-tarea-cell">
|
||||
<input type="text" style="min-width:5rem" data-id="${d.id}" class="form-control form-control-sm orden-tarea mr-2" name="orden" value="${d.orden}" ${this.isOtFinalizada ? "disabled" : ""}>
|
||||
<input type="text" style="min-width:2rem" data-id="${d.id}" class="form-control form-control-sm orden-tarea mr-2" name="orden" value="${d.orden}" ${this.isOtFinalizada ? "disabled" : ""}>
|
||||
<div class="btn-group-vertical">
|
||||
<button type="button" class="btn btn-primary btn-outlined btn-xs increase-order"><i class="ti ti-chevron-up ti-xs"></i></button>
|
||||
<button type="button" class="btn btn-primary btn-xs decrease-order" data-id="${d.id}"><i class="ti ti-chevron-down ti-xs"></i></button>
|
||||
@ -232,6 +277,10 @@ class OrdenTrabajo {
|
||||
}
|
||||
createSelectMaquinaTarea() {
|
||||
try {
|
||||
$('.select-proveedor-tarea-datatable').each((index, element) => {
|
||||
console.log(element)
|
||||
this.createSelectProveedor($(element))
|
||||
})
|
||||
this.summaryData.tasks.forEach(async (element) => {
|
||||
let selectItem = this.item.find("#select-maquina-tarea-" + element.id);
|
||||
if (element.presupuesto_linea_id && element.is_corte == false) this.createSelectMaquinaImpresion(selectItem)
|
||||
@ -262,6 +311,7 @@ class OrdenTrabajo {
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
} finally {
|
||||
this.eventTareas()
|
||||
|
||||
@ -270,7 +320,7 @@ class OrdenTrabajo {
|
||||
}
|
||||
createSelectMaquinaAcabado(selectItem) {
|
||||
let maquina_id = selectItem.data("maquina-id")
|
||||
let maquinaSelects = new ClassSelect(selectItem, `/tarifas/maquinas/acabado/select`, "Seleccione una maquina", true);
|
||||
let maquinaSelects = new ClassSelect(selectItem, `/tarifas/maquinas/acabado/select`, "Seleccione un máquina", true);
|
||||
maquinaSelects.init();
|
||||
if (maquina_id) {
|
||||
maquinaSelects.setVal(maquina_id)
|
||||
@ -278,6 +328,24 @@ class OrdenTrabajo {
|
||||
maquinaSelects.reset()
|
||||
}
|
||||
}
|
||||
createSelectProveedor(selectItem) {
|
||||
try {
|
||||
|
||||
|
||||
let proveedor_id = selectItem.data("proveedor-id")
|
||||
let tipo = selectItem.data("proveedor-tipo")
|
||||
let proveedorSelect = new ClassSelect(selectItem, `/compras/proveedores/getProveedores`, "Seleccione una proveedor", true, { tipo_id: tipo }, this.tareasTableItem);
|
||||
proveedorSelect.init();
|
||||
if (proveedor_id) {
|
||||
proveedorSelect.setVal(proveedor_id)
|
||||
} else {
|
||||
proveedorSelect.reset()
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
|
||||
}
|
||||
}
|
||||
createSelectMaquinaManipulado(selectItem) {
|
||||
let maquina_id = selectItem.data("maquina-id")
|
||||
let maquinaSelects = new ClassSelect(selectItem, `/tarifas/maquinas/manipulado/select`, "Seleccione una maquina", true);
|
||||
@ -416,21 +484,33 @@ class OrdenTrabajo {
|
||||
this.ferroCliente.setDate(this.summaryData.dates.ferro_en_cliente_at)
|
||||
this.ferroOk.setDate(this.summaryData.dates.ferro_ok_at)
|
||||
// this.plakeneTraslucido.setDate(this.summaryData.dates.fecha_impresion_at)
|
||||
this.impresionColor.setDate(this.summaryData.dates.interior_color_at)
|
||||
/**IMPRESION */
|
||||
this.impresionBN.setDate(this.summaryData.dates.interior_bn_at)
|
||||
this.portada.setDate(this.summaryData.dates.cubierta_at)
|
||||
this.plastificadoMate.setDate(this.summaryData.dates.plastificado_at)
|
||||
this.impresionColor.setDate(this.summaryData.dates.interior_color_at)
|
||||
this.cubierta.setDate(this.summaryData.dates.cubierta_at)
|
||||
this.sobrecubierta.setDate(this.summaryData.dates.sobrecubierta_at)
|
||||
this.guarda.setDate(this.summaryData.dates.guarda_at)
|
||||
/**ACABADO */
|
||||
this.plastificado.setDate(this.summaryData.dates.plastificado_at)
|
||||
this.plakene.setDate(this.summaryData.dates.plakene_at)
|
||||
this.retractilado.setDate(this.summaryData.dates.retractilado_at)
|
||||
this.estampado.setDate(this.summaryData.dates.estampado_at)
|
||||
this.uvi.setDate(this.summaryData.dates.uvi_at)
|
||||
/** ENCUADERNACION */
|
||||
this.encuadernacion.setDate(this.summaryData.dates.encuadernacion_at)
|
||||
|
||||
this.prepGuillotina.setDate(this.summaryData.dates.corte_at)
|
||||
this.prepCosido.setDate(this.summaryData.dates.cosido_at)
|
||||
this.prepSolapa.setDate(this.summaryData.dates.solapa_at)
|
||||
this.prepGrapado.setDate(this.summaryData.dates.grapado_at)
|
||||
|
||||
this.prepPrototipo.setDate(this.summaryData.dates.prototipo_at)
|
||||
this.entradaManipulado.setDate(this.summaryData.dates.entrada_manipulado_at)
|
||||
|
||||
// this.prepCosido.setDate(this.summaryData.dates.cosido_at)
|
||||
// this.prepSolapa.setDate(this.summaryData.dates.solapa_at)
|
||||
// this.prepGrapado.setDate(this.summaryData.dates.grapado_at)
|
||||
|
||||
// this.prepPrototipo.setDate(this.summaryData.dates.prototipo_at)
|
||||
this.prepMarcapaginas.setDate(this.summaryData.dates.marcapaginas_at)
|
||||
this.prepRetractilado.setDate(this.summaryData.dates.retractilado_at)
|
||||
this.prepRetractilado5.setDate(this.summaryData.dates.retractilado5_at)
|
||||
|
||||
this.espiral.setDate(this.summaryData.dates.fecha_impresion_at)
|
||||
// this.espiral.setDate(this.summaryData.dates.fecha_impresion_at)
|
||||
this.embalaje.setDate(this.summaryData.dates.embalaje_at)
|
||||
this.envio.setDate(this.summaryData.dates.envio_at)
|
||||
this.pedidoEnEsperaCheck.prop("checked", this.summaryData.ot.is_pedido_espera);
|
||||
@ -865,6 +945,24 @@ class OrdenTrabajo {
|
||||
ajax.post()
|
||||
}
|
||||
|
||||
handleUpdateProveedor(event) {
|
||||
let orden_trabajo_tarea_id = $(event.currentTarget).data('id')
|
||||
let actualValue = $(event.currentTarget).val()
|
||||
let ajax = new Ajax(`/produccion/ordentrabajo/update/tarea/proveedor`,
|
||||
{
|
||||
orden_trabajo_tarea_id: orden_trabajo_tarea_id,
|
||||
proveedor_id: actualValue
|
||||
},
|
||||
null,
|
||||
(response) => {
|
||||
alertSuccess(response.message).fire()
|
||||
},
|
||||
(error) => {
|
||||
alertError(error.message).fire()
|
||||
})
|
||||
ajax.post()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -5,5 +5,5 @@
|
||||
font-size : 20px;
|
||||
}
|
||||
.table-maquinista td{
|
||||
height : 10rem;
|
||||
height : 7rem;
|
||||
}
|
||||
Reference in New Issue
Block a user