Merge branch 'feat/sk-34/filter-maquina-padre' into 'main'

Feat/sk 34/filter maquina padre

See merge request jjimenez/safekat!663
This commit is contained in:
Alvaro
2025-04-06 07:43:31 +00:00
5 changed files with 55 additions and 5 deletions

View File

@ -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');

View File

@ -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');

View File

@ -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([

View File

@ -7,6 +7,7 @@
<th><?= lang('Produccion.datatable.fecha_entrega_at') ?></th>
<th><?= lang('Produccion.datatable.titulo') ?></th>
<th><?= lang('Produccion.datatable.maquina') ?></th>
<!-- <th><?= lang('Produccion.datatable.maquina_padre') ?></th> -->
<th><?= lang('Produccion.datatable.tirada') ?></th>
<th><?= lang('Produccion.datatable.ancho') ?></th>
<th><?= lang('Produccion.datatable.alto') ?></th>
@ -21,7 +22,12 @@
<th><input type="text" class="form-control planning-filter" name="otId" placeholder="ID"></th>
<th></th>
<th><input type="text" class="form-control planning-filter" name="presupuesto_titulo" placeholder="Titulo"></th>
<th><select class="select2 form-select-sm planning-maquina-select" name="maquina_planning_nombre"></select></th>
<th>
<div class="d-flex flex-column gap-2">
<select class="select2 form-select-sm planning-maquina-padre-select" name="lg_maquinas.padre_id"></select>
<select class="select2 form-select-sm planning-maquina-select" name="maquina_planning_nombre"></select>
</div>
</th>
<th></th>
<th></th>
<th></th>

View File

@ -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))