diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 92c10179..63aa1623 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -1015,6 +1015,7 @@ $routes->group('produccion', ['namespace' => 'App\Controllers\Produccion'], func $routes->get('select/maquina/rotativa','Ordentrabajo::select_maquina_planning_rot'); $routes->get('select/papel/rotativa','Ordentrabajo::select_papel_planning_rot'); $routes->get('select/maquina/plana','Ordentrabajo::select_maquina_planning_plana'); + $routes->get('select/maquina/padre/plana','Ordentrabajo::select_maquina_padre_planning_plana'); $routes->get('select/papel/plana','Ordentrabajo::select_papel_planning_plana'); $routes->get('rotativa', 'Ordentrabajo::index_planning_rotativa'); $routes->get('papel/datatable', 'Ordentrabajo::papel_gramaje_datatable'); diff --git a/ci4/app/Controllers/Produccion/Ordentrabajo.php b/ci4/app/Controllers/Produccion/Ordentrabajo.php index 3238788b..24d9cf75 100755 --- a/ci4/app/Controllers/Produccion/Ordentrabajo.php +++ b/ci4/app/Controllers/Produccion/Ordentrabajo.php @@ -301,6 +301,10 @@ class Ordentrabajo extends BaseController public function planning_plana_datatable() { $q = $this->produccionService->planningPlanaQueryDatatable(); + $padreId = $this->request->getGet('padre_id'); + if($padreId){ + $q->where('lg_maquinas.padre_id',$padreId); + } return DataTable::of($q) ->edit("tiempo_real_sum", fn($q) => $q->tiempo_real_sum) ->edit("fecha_entrega_real_at", fn($q) => $q->fecha_entrega_real_at ? Time::createFromFormat("Y-m-d", $q->fecha_entrega_real_at)->format("d/m/Y") : "") @@ -326,6 +330,12 @@ class Ordentrabajo extends BaseController $result = $this->produccionService->querySelectMaquinaPlanningPlana($q); return $this->response->setJSON($result); } + public function select_maquina_padre_planning_plana() + { + $q = $this->request->getGet('q'); + $result = $this->produccionService->querySelectMaquinaPadrePlanningPlana($q); + return $this->response->setJSON($result); + } public function select_papel_planning_plana() { $q = $this->request->getGet('q'); diff --git a/ci4/app/Services/ProductionService.php b/ci4/app/Services/ProductionService.php index f758c344..bbe61afb 100644 --- a/ci4/app/Services/ProductionService.php +++ b/ci4/app/Services/ProductionService.php @@ -486,6 +486,7 @@ class ProductionService extends BaseService "presupuestos.titulo as presupuesto_titulo", "orden_trabajo_tareas.maquina_id", "lg_maquinas.nombre as maquina_planning_nombre", + "lg_maquinas.padre_id as padre_id", "ordenes_trabajo.total_tirada as ot_tirada", "lg_papel_formato.ancho as papel_ancho", "lg_papel_formato.alto as papel_alto", @@ -859,7 +860,6 @@ class ProductionService extends BaseService "lg_maquinas.nombre as name", ]) ->join("orden_trabajo_tareas", "orden_trabajo_tareas.orden_trabajo_id = ordenes_trabajo.id", "left") - ->join("orden_trabajo_dates", "orden_trabajo_dates.orden_trabajo_id = ordenes_trabajo.id", "left") ->join("presupuesto_linea", "presupuesto_linea.id = orden_trabajo_tareas.presupuesto_linea_id", "left") ->join("lg_maquinas", "lg_maquinas.id = orden_trabajo_tareas.maquina_id", "left") ->whereIn("presupuesto_linea.tipo", $this->TIPOS_PLANA) @@ -871,6 +871,26 @@ class ProductionService extends BaseService } return $query->get()->getResultArray(); } + public function querySelectMaquinaPadrePlanningPlana($q) + { + $query = $this->otModel->builder()->select([ + "mp.id as id", + "mp.nombre as name", + ]) + ->join("orden_trabajo_tareas", "orden_trabajo_tareas.orden_trabajo_id = ordenes_trabajo.id", "left") + ->join("presupuesto_linea", "presupuesto_linea.id = orden_trabajo_tareas.presupuesto_linea_id", "left") + ->join("lg_maquinas", "lg_maquinas.id = orden_trabajo_tareas.maquina_id", "left") + ->join("lg_maquinas mp", "mp.id = lg_maquinas.padre_id", "left") + ->whereIn("presupuesto_linea.tipo", $this->TIPOS_PLANA) + ->where('lg_maquinas.is_rotativa', false) + ->where('mp.is_padre', 0) + ->where("orden_trabajo_tareas.deleted_at", null) + ->groupBy("mp.id"); + if ($q) { + $query->like('lg_maquinas.nombre', $q); + } + return $query->get()->getResultArray(); + } public function querySelectPapelPlanningRot(string $q) { $query = $this->otModel->builder()->select([ diff --git a/ci4/app/Views/themes/vuexy/components/tables/planning_plana_table.php b/ci4/app/Views/themes/vuexy/components/tables/planning_plana_table.php index 4a95b44b..ab28244c 100644 --- a/ci4/app/Views/themes/vuexy/components/tables/planning_plana_table.php +++ b/ci4/app/Views/themes/vuexy/components/tables/planning_plana_table.php @@ -7,6 +7,7 @@ + @@ -21,7 +22,12 @@ - + +
+ + +
+ diff --git a/httpdocs/assets/js/safekat/pages/produccion/planning_rotativa/planning_rotativa.js b/httpdocs/assets/js/safekat/pages/produccion/planning_rotativa/planning_rotativa.js index a3ec63aa..d14b8623 100644 --- a/httpdocs/assets/js/safekat/pages/produccion/planning_rotativa/planning_rotativa.js +++ b/httpdocs/assets/js/safekat/pages/produccion/planning_rotativa/planning_rotativa.js @@ -90,6 +90,7 @@ class PlanningRotativa { }, $('body')); this.papelImpresionFilter = new ClassSelect(this.tablePlanningRot.find(".planning-papel-select"), `/produccion/ordentrabajo/planning/select/papel/rotativa`, "Seleccione un papel", true, {}, $('body')); this.maquinaSelectFilterPlana = new ClassSelect(this.tablePlanningPlana.find(".planning-maquina-select"), `/produccion/ordentrabajo/planning/select/maquina/plana`, "Seleccione una maquina", true, {}, $('body')); + this.maquinaPadreSelectFilterPlana = new ClassSelect(this.tablePlanningPlana.find(".planning-maquina-padre-select"), `/produccion/ordentrabajo/planning/select/maquina/padre/plana`, "Máquina padre", true, {}, $('body')); this.papelImpresionFilterPlana = new ClassSelect(this.tablePlanningPlana.find(".planning-papel-select"), `/produccion/ordentrabajo/planning/select/papel/plana`, "Seleccione un papel", true, {}, $('body')); this.maquinaSelectFilter.config.dropdownParent = this.item } @@ -121,6 +122,7 @@ class PlanningRotativa { this.papelImpresionFilter.init() this.maquinaSelectFilterPlana.init() this.papelImpresionFilterPlana.init() + this.maquinaPadreSelectFilterPlana.init(); this.checkAllMetros.on('change', () => { let isChecked = this.checkAllMetros.prop('checked') this.item.find(".metros-check").prop('checked', isChecked).trigger("change") @@ -163,7 +165,15 @@ class PlanningRotativa { url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json" }, columns: this.datatablePlanaColumns, - ajax: '/produccion/ordentrabajo/planning/plana/datatable' + + ajax: { + url : '/produccion/ordentrabajo/planning/plana/datatable', + data : d => { + if(this.maquinaPadreSelectFilterPlana.getVal()){ + d.padre_id = this.maquinaPadreSelectFilterPlana.getVal() + } + } + } }); this.papelGramajeDatatable = this.papelGramajeTablePlanning.DataTable({ processing: true, @@ -223,9 +233,12 @@ class PlanningRotativa { let columnIndex = this.datatablePlanaColumns.findIndex((element) => element.data == $(event.currentTarget).attr("name")) this.datatablePlanningPlana.column(columnIndex).search(this.maquinaSelectFilterPlana.getText()).draw() }) - this.tablePlanningPlana.on("change", ".planning-papel-select", (event) => { + this.tablePlanningPlana.on("change", ".planning-maquina-select", (event) => { let columnIndex = this.datatablePlanaColumns.findIndex((element) => element.data == $(event.currentTarget).attr("name")) - this.datatablePlanningPlana.column(columnIndex).search(this.papelImpresionFilterPlana.getText()).draw() + this.datatablePlanningPlana.column(columnIndex).search(this.maquinaSelectFilterPlana.getText()).draw() + }) + this.tablePlanningPlana.on("change", ".planning-maquina-padre-select", (event) => { + this.datatablePlanningPlana.ajax.reload(); }) this.papelPliegoDatatable.on('draw', this.addTotalFooterPliego.bind(this))