planning rot

This commit is contained in:
amazuecos
2025-03-27 13:57:37 +01:00
parent e6ce820480
commit 5a5e0be855
11 changed files with 179 additions and 133 deletions

View File

@ -8,16 +8,20 @@ class PlanningRotativa {
this.tablePlanningRot = this.item.find("#planning-rotativa-datatable")
this.papelGramajeTablePlanning = this.item.find("#planning-papel-datatable")
this.papelImpresionHeader = this.item.find('#papel-impresion-name-header')
this.checkAllMetros = this.item.find("#metros-check-all")
this.datatableColumns = [
{ data: 'otId', searchable: false, sortable: false },
{ data: 'fecha_entrega_real_at', searchable: true, sortable: false },
{ data: 'presupuesto_titulo', searchable: true, sortable: false },
{ data: 'maquina_planning_nombre', searchable: true, sortable: false },
{ data: 'ot_tirada', searchable: false, sortable: false },
{ data: 'maquina_ancho', searchable: false, sortable: false,render: d => `<span class="autonumeric">${d}</span>` },
{ data: 'maquina_alto', searchable: false, sortable: false ,render: d => `<span class="autonumeric">${d}</span>` },
{ data: 'ot_tirada', searchable: false, sortable: false, },
{ data: 'papel_ancho', searchable: false, sortable: false, render: d => `<span class="autonumeric">${d}</span>` },
{ data: 'papel_alto', searchable: false, sortable: false, render: d => `<span class="autonumeric">${d}</span>` },
{ data: 'papel_impresion', searchable: false, sortable: false },
{ data: 'papel_gramaje', searchable: false, sortable: false },
{ data: 'papel_gramaje', searchable: false, sortable: false, render: d => `<span class="autonumeric">${d}</span>` },
{ data: 'corte', searchable: false, sortable: false, render: d => d },
{ data: 'metros_check', searchable: false, sortable: false, render: d => `<input class="form-check-input metros-check" data-id="${d}" type="checkbox" value="" />` },
{ data: 'metros', searchable: false, sortable: false, render: d => `<span class="autonumeric">${d}</span>` },
{ data: 'action', searchable: false, sortable: false, render: this._renderBtnAction },
]
@ -26,7 +30,7 @@ class PlanningRotativa {
{ data: 'papelImpresionGramaje', searchable: true, sortable: true },
{ data: 'tareasCount', searchable: true, sortable: true },
{ data: 'totalTirada', searchable: false, sortable: false },
{ data: 'metros', searchable: false, sortable: false },
{ data: 'metros', searchable: false, sortable: false, render: d => `<span class="autonumeric">${d}</span>` },
{ data: 'tiempoReal', searchable: false, sortable: false },
{
data: 'action', searchable: false, sortable: false, render: (d) => {
@ -43,6 +47,10 @@ class PlanningRotativa {
init() {
this.maquinaSelectFilter.init()
this.papelImpresionFilter.init()
this.checkAllMetros.on('change', () => {
let isChecked = this.checkAllMetros.prop('checked')
this.item.find(".metros-check").prop('checked', isChecked).trigger("change")
})
this.papelGramajeTablePlanning.on('click', '.papel-gramaje-btn', this.filterPapelGramaje.bind(this))
this.papelImpresionFilter.onChange(() => {
this.papelImpresionHeader.text(this.papelImpresionFilter.getText())
@ -101,6 +109,8 @@ class PlanningRotativa {
this.datatablePlanningRot.column(columnIndex).search(this.papelImpresionFilter.getText()).draw()
})
this.papelGramajeDatatable.on('draw', this.addTotalFooter.bind(this))
this.tablePlanningRot.on('change', ".metros-check", this.calcMetrosCheck.bind(this))
}
_renderBtnAction(d) {
return `<a href="/produccion/ordentrabajo/edit/${d.otId}" class="ot-tarea-comment" data-id="${d.otId}"><i class="ti ti-eye"></i></a>`
@ -127,7 +137,7 @@ class PlanningRotativa {
this.papelImpresionHeader.text(response.nombre)
}
getPapelImpresionError(response) { }
formatSeconds(s){
formatSeconds(s) {
return [parseInt(s / 60 / 60), parseInt(s / 60 % 60)].join(':').replace(/\b(\d)\b/g, '0$1');
}
addTotalFooter() {
@ -141,13 +151,24 @@ class PlanningRotativa {
return hb + mb + ha + ma
})
const metros = this.papelGramajeDatatable.column(4).data().reduce((a, b) => {
return a + b
})
$('#total-tiempo-papel').text(this.formatSeconds(data))
$('#total-metros').text(metros)
}
calcMetrosCheck() {
const metros_sel = this.datatablePlanningRot.rows((idx, data, node) => {
return $(node).find('input[type="checkbox"]').prop('checked');
}).data().toArray().reduce((a, b) => {
a = a?.metros ?? 0
b = b?.metros ?? 0
return a + b
}, null)
this.item.find('#metros-sel-total').text(metros_sel)
}
}