diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 97078d23..488c6d36 100755 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -782,6 +782,10 @@ $routes->group('produccion', ['namespace' => 'App\Controllers\Produccion'], func $routes->group('maquinista', ['namespace' => 'App\Controllers\Produccion'], function ($routes) { $routes->get('maquinas/view', 'Ordentrabajo::maquinista_maquinas_view', ['as' => 'viewProduccionMaquinistaMaquinas']); + $routes->get('maquinas/view/(:num)', 'Ordentrabajo::maquinista_maquina_tareas_list/$1', ['as' => 'viewProduccionMaquinaTareasList']); + $routes->get('maquinas/view/tarea/(:num)', 'Ordentrabajo::maquinista_maquina_tarea_view/$1', ['as' => 'viewProduccionMaquinistaTareaView']); + + $routes->get('colas/view', 'Ordentrabajo::maquinista_colas_view', ['as' => 'viewProduccionMaquinistaColas']); }); }); diff --git a/ci4/app/Controllers/Produccion/Ordentrabajo.php b/ci4/app/Controllers/Produccion/Ordentrabajo.php index 31ff93fc..a98abaed 100755 --- a/ci4/app/Controllers/Produccion/Ordentrabajo.php +++ b/ci4/app/Controllers/Produccion/Ordentrabajo.php @@ -3,6 +3,7 @@ namespace App\Controllers\Produccion; use App\Controllers\BaseController; +use App\Models\Configuracion\MaquinaModel; use App\Models\OrdenTrabajo\OrdenTrabajoModel; use App\Models\OrdenTrabajo\OrdenTrabajoTarea; use App\Models\OrdenTrabajo\OrdenTrabajoUser; @@ -27,6 +28,7 @@ class Ordentrabajo extends BaseController protected OrdenTrabajoModel $otModel; protected OrdenTrabajoUser $otUserModel; protected OrdenTrabajoTarea $otTarea; + protected MaquinaModel $maquinaModel; protected UserModel $userModel; protected Validation $validation; protected static $viewPath = 'themes/vuexy/form/produccion/'; @@ -42,6 +44,7 @@ class Ordentrabajo extends BaseController $this->userModel = model(UserModel::class); $this->produccionService = new ProductionService(); $this->otTarea = model(OrdenTrabajoTarea::class); + $this->maquinaModel = model(MaquinaModel::class); $this->validation = service("validation"); helper("time"); parent::initController($request, $response, $logger); @@ -452,7 +455,42 @@ class Ordentrabajo extends BaseController ->setHeader('Content-Disposition', "attachment; filename=CodigoBarrasOT_{$orden_trabajo_id}.png") ->setBody($barcode); } - public function maquinista_maquinas_view(){} - public function maquinista_colas_view(){} + + public function maquinista_maquinas_view() + { + // Breadcrumbs + $this->viewData['breadcrumb'] = [ + ['title' => lang("Produccion.maquinista.maquinas"), 'route' =>route_to("viewProduccionMaquinistaMaquinas"), 'active' => true], + ]; + $data = [ + "impresion" => $this->maquinaModel->queryViewMaquinistaMaquinas('impresion')->get()->getResultArray(), + "manipulado" => $this->maquinaModel->queryViewMaquinistaMaquinas('manipulado')->get()->getResultArray(), + "acabado" => $this->maquinaModel->queryViewMaquinistaMaquinas('acabado')->get()->getResultArray(), + ]; + $this->viewData["maquinas"] = $data; + return view(static::$viewPath . '/maquinista/viewMaquinistaMaquinaList', $this->viewData); + + } + public function maquinista_maquina_tareas_list(int $maquina_id) + { + $maquina = $this->maquinaModel->find($maquina_id); + $this->viewData['breadcrumb'] = [ + ['title' => lang("Produccion.maquinista.maquinas"), 'route' =>route_to("viewProduccionMaquinistaMaquinas"), 'active' => false], + ['title' => $maquina->nombre, 'route' =>route_to("viewProduccionMaquinistaMaquina",$maquina_id), 'active' => true], + ]; + $this->viewData["maquinaEntity"] = $maquina; + return view(static::$viewPath . '/maquinista/viewMaquinistaMaquinaTareas', $this->viewData); + + } + public function maquinista_maquina_tarea_view(int $orden_trabajo_tarea_id) + { + + return view(static::$viewPath . '/maquinista/viewMaquinistaMaquinaTarea', $this->viewData); + + } + public function maquinista_colas_view(){ + return view(static::$viewPath . '/maquinista/viewMaquinistaPlanningList', $this->viewData); + + } } diff --git a/ci4/app/Language/es/Produccion.php b/ci4/app/Language/es/Produccion.php index cd8b95d3..a9f82a26 100755 --- a/ci4/app/Language/es/Produccion.php +++ b/ci4/app/Language/es/Produccion.php @@ -28,7 +28,8 @@ return [ "metros" => "Metros", "corte" => "Corte", "pliegos" => "Pliegos", - "pliegos_libro" => "Pliegos" + "pliegos_libro" => "Pliegos", + "fecha" => "fecha" ], @@ -121,8 +122,11 @@ return [ "progress_preimpresion" => "Preimpresión", "progress_logistica" => "Ferro/Logística", "progress_impresion" => "Impresión", - "progress_manipulado" => "Manipulado/Acabado" - + "progress_manipulado" => "Manipulado/Acabado", + "maquinista" => [ + "maquinas" => "Máquinas", + "tareas_hoy" => "Tareas para HOY", + ] ]; \ No newline at end of file diff --git a/ci4/app/Models/Configuracion/MaquinaModel.php b/ci4/app/Models/Configuracion/MaquinaModel.php index 159d5e02..4661bdf1 100755 --- a/ci4/app/Models/Configuracion/MaquinaModel.php +++ b/ci4/app/Models/Configuracion/MaquinaModel.php @@ -20,7 +20,8 @@ class MaquinaModel extends \App\Models\BaseModel 3 => "t1.ancho_impresion", 4 => "t1.alto_impresion", 5 => "t1.min", - 6 => "t1.max", ]; + 6 => "t1.max", + ]; protected $allowedFields = [ "nombre", @@ -249,7 +250,7 @@ class MaquinaModel extends \App\Models\BaseModel return $result; } - public function getIdMaquinasForPapelImpresion($papel_impresion_id, $rotativa , $inkjet) + public function getIdMaquinasForPapelImpresion($papel_impresion_id, $rotativa, $inkjet) { $builder = $this->db ->table($this->table . " t1") @@ -262,7 +263,8 @@ class MaquinaModel extends \App\Models\BaseModel return $builder; } - public function getVelocidad($maquina_id){ + public function getVelocidad($maquina_id) + { $builder = $this->db ->table($this->table . " t1") ->select( @@ -272,9 +274,9 @@ class MaquinaModel extends \App\Models\BaseModel $resultObject = $builder->get()->getResultObject(); - if(count($resultObject)>0) + if (count($resultObject) > 0) return $resultObject[0]->velocidad; - else{ + else { return -1; } } @@ -318,7 +320,7 @@ class MaquinaModel extends \App\Models\BaseModel } } - public function getMaquinaImpresionForPresupuesto($is_rotativa, $tarifa_tipo, $uso_tarifa , $tirada, $papel_impresion_id = -1) + public function getMaquinaImpresionForPresupuesto($is_rotativa, $tarifa_tipo, $uso_tarifa, $tirada, $papel_impresion_id = -1) { /* 1.-> tarifa_Tipo impresion @@ -338,10 +340,10 @@ class MaquinaModel extends \App\Models\BaseModel t1.forzar_num_formas_horizontales_cubierta AS forzar_num_formas_horizontales_cubierta, t1.forzar_num_formas_verticales_cubierta AS forzar_num_formas_verticales_cubierta" ) - ->join("lg_maquinas_tarifas_impresion t2", "t1.id = t2.maquina_id", "left") + ->join("lg_maquinas_tarifas_impresion t2", "t1.id = t2.maquina_id", "left") ->join("lg_maquina_papel_impresion t3", "t1.id = t3.maquina_id", "left") - - + + ->where("t1.is_deleted", 0) ->where("t1.tipo", "impresion") ->where("t1.is_rotativa", $is_rotativa) @@ -351,28 +353,28 @@ class MaquinaModel extends \App\Models\BaseModel ->where("t1.min <=", $tirada) ->where("t1.max >=", $tirada); - if(is_array($tarifa_tipo)){ - foreach($tarifa_tipo as $tarifa){ - $builder->where("EXISTS (SELECT * FROM lg_maquinas_tarifas_impresion t2 WHERE t1.id=t2.maquina_id AND t2.tipo='{$tarifa}' AND t2.uso='{$uso_tarifa}' AND t2.is_deleted=0)"); - } - } - else{ - $builder->where("t2.tipo", $tarifa_tipo); - $builder->where("t2.uso", $uso_tarifa); + if (is_array($tarifa_tipo)) { + foreach ($tarifa_tipo as $tarifa) { + $builder->where("EXISTS (SELECT * FROM lg_maquinas_tarifas_impresion t2 WHERE t1.id=t2.maquina_id AND t2.tipo='{$tarifa}' AND t2.uso='{$uso_tarifa}' AND t2.is_deleted=0)"); } + } else { + $builder->where("t2.tipo", $tarifa_tipo); + $builder->where("t2.uso", $uso_tarifa); + } return $builder; - } - public function getNombre($id){ + public function getNombre($id) + { $builder = $this->db ->table($this->table . " t1") ->select( - "t1.nombre AS text"); - + "t1.nombre AS text" + ); + $builder->where("t1.id", $id); - + return $builder->orderBy("t1.id", "asc")->get()->getResultObject(); } @@ -383,16 +385,32 @@ class MaquinaModel extends \App\Models\BaseModel * @param string|null $type Tipo de maquina impresion,manipulado,acabado * @return array */ - public function getSelectQuery(?string $q = null, ?string $type = null) : array + public function getSelectQuery(?string $q = null, ?string $type = null): array { - $query = $this->builder()->select(["id","nombre","tipo as description"]) - ->where("deleted_at",null); - if($q){ - $query->like("nombre",$q); + $query = $this->builder()->select(["id", "nombre", "tipo as description"]) + ->where("deleted_at", null); + if ($q) { + $query->like("nombre", $q); } - if($type){ - $query->where("tipo",$type); + if ($type) { + $query->where("tipo", $type); } return $query->get()->getResultArray(); } + + public function queryViewMaquinistaMaquinas($maquina_tipo = "impresion") + { + $query = $this->builder() + ->select([ + 'lg_maquinas.id as maquinaId', + 'lg_maquinas.nombre', + 'COUNT(orden_trabajo_tareas.id) as countTareas' + ]) + ->join('orden_trabajo_tareas','orden_trabajo_tareas.maquina_id = lg_maquinas.id','left') + ->where('lg_maquinas.tipo', $maquina_tipo) + ->where('lg_maquinas.deleted_at',null) + ->groupBy('lg_maquinas.id'); + + return $query; + } } diff --git a/ci4/app/Views/themes/vuexy/components/cards/tarea_card.php b/ci4/app/Views/themes/vuexy/components/cards/tarea_card.php new file mode 100644 index 00000000..8e4096dc --- /dev/null +++ b/ci4/app/Views/themes/vuexy/components/cards/tarea_card.php @@ -0,0 +1,27 @@ +
+
+
+ Titulo +
titulo ?>
+
+
+
+
+
+

OT ID

+

id ?>

+
+
+
+
+ barcode +
+
+ +
+
\ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/components/cards/tarea_card_actions.php b/ci4/app/Views/themes/vuexy/components/cards/tarea_card_actions.php new file mode 100644 index 00000000..a8db127c --- /dev/null +++ b/ci4/app/Views/themes/vuexy/components/cards/tarea_card_actions.php @@ -0,0 +1,18 @@ +
+
+
+
+

Tirada

+

+
+
+
+
+ + + + +
+
+
+
\ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/components/forms/maquinista_tarea_form.php b/ci4/app/Views/themes/vuexy/components/forms/maquinista_tarea_form.php new file mode 100644 index 00000000..e69de29b diff --git a/ci4/app/Views/themes/vuexy/components/tables/maquinista_tarea_list.php b/ci4/app/Views/themes/vuexy/components/tables/maquinista_tarea_list.php new file mode 100755 index 00000000..e69de29b diff --git a/ci4/app/Views/themes/vuexy/components/tables/maquinista_tarea_table.php b/ci4/app/Views/themes/vuexy/components/tables/maquinista_tarea_table.php new file mode 100755 index 00000000..23221b7b --- /dev/null +++ b/ci4/app/Views/themes/vuexy/components/tables/maquinista_tarea_table.php @@ -0,0 +1,18 @@ +
+ + + + + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaList.php b/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaList.php new file mode 100644 index 00000000..ed629b75 --- /dev/null +++ b/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaList.php @@ -0,0 +1,90 @@ +include('themes/_commonPartialsBs/select2bs5') ?> +include('themes/_commonPartialsBs/datatables') ?> +include('themes/_commonPartialsBs/sweetalert') ?> +include('themes/_commonPartialsBs/_confirm2delete') ?> +extend('themes/vuexy/main/defaultlayout') ?> +section('content'); ?> + +
+ +
+

Seleccione una máquina

+
+
+ +
+
+ +
+
+ +
+
+endSection() ?> + +section('css') ?> + + + +endSection() ?> + +section("additionalExternalJs") ?> + + + + +endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaTarea.php b/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaTarea.php new file mode 100644 index 00000000..eeb0949c --- /dev/null +++ b/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaTarea.php @@ -0,0 +1,35 @@ +include('themes/_commonPartialsBs/select2bs5') ?> +include('themes/_commonPartialsBs/datatables') ?> +include('themes/_commonPartialsBs/sweetalert') ?> +include('themes/_commonPartialsBs/_confirm2delete') ?> +extend('themes/vuexy/main/defaultlayout') ?> +section('content'); ?> + +
+
+
+
+ +
+
+ +
+
+
+
+endSection() ?> + +section('css') ?> + + + +endSection() ?> + +section("additionalExternalJs") ?> + + + + + + +endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaTareas.php b/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaTareas.php new file mode 100644 index 00000000..b391edff --- /dev/null +++ b/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaMaquinaTareas.php @@ -0,0 +1,39 @@ +include('themes/_commonPartialsBs/select2bs5') ?> +include('themes/_commonPartialsBs/datatables') ?> +include('themes/_commonPartialsBs/sweetalert') ?> +include('themes/_commonPartialsBs/_confirm2delete') ?> +extend('themes/vuexy/main/defaultlayout') ?> +section('content'); ?> + +
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+
+
+endSection() ?> + +section('css') ?> + + + +endSection() ?> + +section("additionalExternalJs") ?> + + + + + +endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaPlanningList.php b/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaPlanningList.php new file mode 100644 index 00000000..f422d547 --- /dev/null +++ b/ci4/app/Views/themes/vuexy/form/produccion/maquinista/viewMaquinistaPlanningList.php @@ -0,0 +1,27 @@ +include('themes/_commonPartialsBs/select2bs5') ?> +include('themes/_commonPartialsBs/datatables') ?> +include('themes/_commonPartialsBs/sweetalert') ?> +include('themes/_commonPartialsBs/_confirm2delete') ?> +extend('themes/vuexy/main/defaultlayout') ?> + + + +section('content'); ?> + +
+ +
+endSection() ?> + +section('css') ?> + + + +endSection() ?> + +section("additionalExternalJs") ?> + + + + +endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/vuexy/form/produccion/viewOrdenTrabajoList.php b/ci4/app/Views/themes/vuexy/form/produccion/viewOrdenTrabajoList.php index 8321dcbc..620c8805 100755 --- a/ci4/app/Views/themes/vuexy/form/produccion/viewOrdenTrabajoList.php +++ b/ci4/app/Views/themes/vuexy/form/produccion/viewOrdenTrabajoList.php @@ -4,12 +4,6 @@ include('themes/_commonPartialsBs/_confirm2delete') ?> extend('themes/vuexy/main/defaultlayout') ?> -include('themes/_commonPartialsBs/select2bs5') ?> -include('themes/_commonPartialsBs/datatables') ?> -include('themes/_commonPartialsBs/_confirm2delete') ?> -extend('themes/vuexy/main/defaultlayout') ?> - - section('content'); ?>
diff --git a/ci4/app/Views/themes/vuexy/main/menus/maquinista_menu.php b/ci4/app/Views/themes/vuexy/main/menus/maquinista_menu.php index 8f637d30..d727a5fe 100755 --- a/ci4/app/Views/themes/vuexy/main/menus/maquinista_menu.php +++ b/ci4/app/Views/themes/vuexy/main/menus/maquinista_menu.php @@ -13,17 +13,17 @@ if (auth()->user()->inGroup('maquina')) {