mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
feat: add filter maquina plana
This commit is contained in:
@ -10,6 +10,7 @@ class PlanningRotativa {
|
||||
this.tablePlanningPlana = this.item.find("#planning-plana-datatable")
|
||||
this.papelGramajeTablePlanning = this.item.find("#planning-papel-datatable")
|
||||
this.papelPliegoTablePlanning = this.item.find("#planning-pliego-datatable")
|
||||
this.maquinaTablePlanning = this.item.find("#planning-maquina-datatable")
|
||||
this.papelImpresionHeader = this.item.find('#papel-impresion-name-header')
|
||||
this.papelImpresionPlanaHeader = this.item.find('#papel-impresion-name-plana-header')
|
||||
|
||||
@ -27,7 +28,7 @@ class PlanningRotativa {
|
||||
{ data: 'papel_ancho', searchable: false, sortable: false, width: "5rem", render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'papel_alto', searchable: false, sortable: false, width: "5rem", render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'papel_impresion', searchable: false, sortable: false },
|
||||
{ data: 'papel_gramaje',name:"presupuesto_linea.gramaje", searchable: false, sortable: false, width: "5rem", render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'papel_gramaje', name: "presupuesto_linea.gramaje", searchable: false, sortable: false, width: "5rem", render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'corte', searchable: false, sortable: false, render: this.renderCorteImage.bind(this), width: "10rem" },
|
||||
{ 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>` },
|
||||
@ -44,10 +45,10 @@ class PlanningRotativa {
|
||||
{ data: 'papel_ancho', searchable: false, sortable: false, width: "5rem", render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'papel_alto', searchable: false, sortable: false, width: "5rem", render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'papel_impresion', searchable: false, sortable: false },
|
||||
{ data: 'papel_gramaje', name:"presupuesto_linea.gramaje", searchable: false, sortable: false, width: "5rem", render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'papel_gramaje', name: "presupuesto_linea.gramaje", searchable: false, sortable: false, width: "5rem", render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'pliegos_check', searchable: false, sortable: false, render: d => `<input class="form-check-input pliegos-check" data-id="${d}" type="checkbox" value="" />` },
|
||||
{ data: 'pliegosPedido', searchable: false, sortable: false, render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'tiempo_real_sum', searchable: false, sortable: false,render: d => this.formatSeconds(parseFloat(d))},
|
||||
{ data: 'tiempo_real_sum', searchable: false, sortable: false, render: d => this.formatSeconds(parseFloat(d)) },
|
||||
{ data: 'action', searchable: false, sortable: false, render: this._renderBtnAction },
|
||||
|
||||
]
|
||||
@ -65,6 +66,20 @@ class PlanningRotativa {
|
||||
},
|
||||
|
||||
|
||||
]
|
||||
this.maquinaPlanaDatatableColumns = [
|
||||
{ data: 'maquinaNombre', searchable: true, sortable: true },
|
||||
{ data: 'tareasCount', searchable: true, sortable: true },
|
||||
{ data: 'totalTirada', searchable: false, sortable: false },
|
||||
{ data: 'pliegosPedido', searchable: false, sortable: false, render: d => `<span class="autonumeric">${d}</span>` },
|
||||
{ data: 'tiempoReal', searchable: false, sortable: false, render: d => this.formatSeconds(d) },
|
||||
{
|
||||
data: 'action', searchable: false, sortable: false, render: (d) => {
|
||||
return `<button type="button" class="btn btn-primary btn-sm w-100 maquina-planning-btn" data-id="${d.data.maquinaId}" data-bs-toggle="button">${d.title}</button>`
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
]
|
||||
this.papelPliegoDatatableColumns = [
|
||||
{ data: 'papelImpresionNombre', searchable: true, sortable: true },
|
||||
@ -86,8 +101,8 @@ class PlanningRotativa {
|
||||
`/produccion/ordentrabajo/planning/select/maquina/rotativa`,
|
||||
"Seleccione una maquina",
|
||||
true, {
|
||||
dropdownCssClass: "h-2"
|
||||
}, $('body'));
|
||||
dropdownCssClass: "h-2"
|
||||
}, $('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'));
|
||||
@ -116,6 +131,7 @@ class PlanningRotativa {
|
||||
this.totalMetros = new AutoNumeric(this.item.find('#total-metros')[0], autoNumericOptions);
|
||||
this.totalMetrosSel = new AutoNumeric(this.item.find('#metros-sel-total')[0], autoNumericOptions);
|
||||
this.totalPliegos = new AutoNumeric(this.item.find('#total-pliegos')[0], autoNumericPliegosOptions);
|
||||
this.totalMaquinaPliegos = new AutoNumeric(this.item.find('#total-pliegos-maquina')[0], autoNumericPliegosOptions);
|
||||
this.totalPliegosSel = new AutoNumeric(this.item.find('#pliegos-sel-total')[0], autoNumericPliegosOptions);
|
||||
|
||||
this.maquinaSelectFilter.init()
|
||||
@ -133,7 +149,8 @@ class PlanningRotativa {
|
||||
})
|
||||
this.papelGramajeTablePlanning.on('click', '.papel-gramaje-btn', this.filterPapelGramaje.bind(this))
|
||||
this.papelPliegoTablePlanning.on('click', '.papel-pliego-btn', this.filterPapelGramajePlana.bind(this))
|
||||
|
||||
this.maquinaTablePlanning.on('click', '.maquina-planning-btn', this.filterMaquinaPlana.bind(this))
|
||||
//!AÑADIR MAQUINA
|
||||
this.papelImpresionFilter.onChange(() => {
|
||||
this.papelImpresionHeader.text(this.papelImpresionFilter.getText())
|
||||
})
|
||||
@ -151,8 +168,8 @@ class PlanningRotativa {
|
||||
language: {
|
||||
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
||||
},
|
||||
createdRow: (row,data,dataIndex) => {
|
||||
this.getColorOtStatus(row,data)
|
||||
createdRow: (row, data, dataIndex) => {
|
||||
this.getColorOtStatus(row, data)
|
||||
},
|
||||
columns: this.datatableColumns,
|
||||
ajax: '/produccion/ordentrabajo/planning/rotativa/datatable'
|
||||
@ -168,13 +185,13 @@ class PlanningRotativa {
|
||||
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
||||
},
|
||||
columns: this.datatablePlanaColumns,
|
||||
createdRow: (row,data,dataIndex) => {
|
||||
this.getColorOtStatus(row,data)
|
||||
createdRow: (row, data, dataIndex) => {
|
||||
this.getColorOtStatus(row, data)
|
||||
},
|
||||
ajax: {
|
||||
url : '/produccion/ordentrabajo/planning/plana/datatable',
|
||||
data : d => {
|
||||
if(this.maquinaPadreSelectFilterPlana.getVal()){
|
||||
url: '/produccion/ordentrabajo/planning/plana/datatable',
|
||||
data: d => {
|
||||
if (this.maquinaPadreSelectFilterPlana.getVal()) {
|
||||
d.padre_id = this.maquinaPadreSelectFilterPlana.getVal()
|
||||
}
|
||||
}
|
||||
@ -206,11 +223,23 @@ class PlanningRotativa {
|
||||
columns: this.papelPliegoDatatableColumns,
|
||||
ajax: '/produccion/ordentrabajo/planning/papel/plana/datatable'
|
||||
});
|
||||
this.maquinaPlanaDatatable = this.maquinaTablePlanning.DataTable({
|
||||
processing: true,
|
||||
orderCellsTop: true,
|
||||
dom: 'lrtip',
|
||||
serverSide: true,
|
||||
responsive: true,
|
||||
pageLength: 10,
|
||||
language: {
|
||||
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
|
||||
},
|
||||
columns: this.maquinaPlanaDatatableColumns,
|
||||
ajax: '/produccion/ordentrabajo/planning/maquina/plana/datatable'
|
||||
});
|
||||
/**
|
||||
* PLANNING ROTATIVA
|
||||
*/
|
||||
this.tablePlanningRot.on("keyup", ".planning-filter", (event) => {
|
||||
console.log(this.datatablePlanningRot.column($(event.currentTarget).attr("name")))
|
||||
let columnIndex = this.datatableColumns.findIndex((element) => element.data == $(event.currentTarget).attr("name"))
|
||||
this.datatablePlanningRot.column(columnIndex).search($(event.currentTarget).val()).draw()
|
||||
})
|
||||
@ -225,12 +254,11 @@ class PlanningRotativa {
|
||||
this.papelGramajeDatatable.on('draw', this.addTotalFooter.bind(this))
|
||||
|
||||
this.tablePlanningRot.on('change', ".metros-check", this.calcMetrosCheck.bind(this))
|
||||
this.tablePlanningRot.on("click",'.change-corte',this.toggleCorte.bind(this))
|
||||
this.tablePlanningRot.on("click", '.change-corte', this.toggleCorte.bind(this))
|
||||
/**
|
||||
* PLANNING PLANA
|
||||
*/
|
||||
this.tablePlanningPlana.on("keyup", ".planning-filter", (event) => {
|
||||
console.log(this.datatablePlanningRot.column($(event.currentTarget).attr("name")))
|
||||
let columnIndex = this.datatablePlanaColumns.findIndex((element) => element.data == $(event.currentTarget).attr("name"))
|
||||
this.datatablePlanningPlana.column(columnIndex).search($(event.currentTarget).val()).draw()
|
||||
})
|
||||
@ -246,7 +274,7 @@ class PlanningRotativa {
|
||||
this.datatablePlanningPlana.ajax.reload();
|
||||
})
|
||||
this.papelPliegoDatatable.on('draw', this.addTotalFooterPliego.bind(this))
|
||||
|
||||
this.maquinaPlanaDatatable.on('draw', this.addTotalFooterMaquinaPlana.bind(this))
|
||||
this.tablePlanningPlana.on('change', ".pliegos-check", this.calcPliegosCheck.bind(this))
|
||||
}
|
||||
_renderBtnAction(d) {
|
||||
@ -254,7 +282,6 @@ class PlanningRotativa {
|
||||
}
|
||||
_columnFiltering() {
|
||||
this.api().columns()
|
||||
console.log(this.api().columns())
|
||||
}
|
||||
filterPapelGramaje(event) {
|
||||
const papelImpresionId = $(event.currentTarget).data('id')
|
||||
@ -264,6 +291,10 @@ class PlanningRotativa {
|
||||
const papelImpresionId = $(event.currentTarget).data('id')
|
||||
this.getPapelImpresionPlana(papelImpresionId)
|
||||
}
|
||||
filterMaquinaPlana(event) {
|
||||
const maquinaId = $(event.currentTarget).data('id')
|
||||
this.getMaquinaPlana(maquinaId)
|
||||
}
|
||||
getPapelImpresion(papelImpresionId) {
|
||||
let ajax = new Ajax('/configuracion/papelesimpresion/show/' + papelImpresionId,
|
||||
null,
|
||||
@ -282,6 +313,15 @@ class PlanningRotativa {
|
||||
)
|
||||
ajax.get()
|
||||
}
|
||||
getMaquinaPlana(maquinaId) {
|
||||
let ajax = new Ajax('/configuracion/maquinas/' + maquinaId,
|
||||
null,
|
||||
null,
|
||||
this.getMaquinaPlanaSuccess.bind(this),
|
||||
this.getMaquinaPlanaError.bind(this)
|
||||
)
|
||||
ajax.get()
|
||||
}
|
||||
getPapelImpresionSuccess(response) {
|
||||
this.papelImpresionFilter.setOption(response.id, response.nombre)
|
||||
this.tablePlanningRot.find('input[name=papel_gramaje]').val(response.gramaje).trigger("change")
|
||||
@ -293,7 +333,18 @@ class PlanningRotativa {
|
||||
this.tablePlanningPlana.find('input[name=papel_gramaje]').val(response.gramaje).trigger("change")
|
||||
this.papelImpresionPlanaHeader.text(response.nombre)
|
||||
}
|
||||
getMaquinaPlanaSuccess(response) {
|
||||
if (response.is_padre != 0) {
|
||||
this.maquinaSelectFilterPlana.setOption(response.id, response.nombre)
|
||||
this.tablePlanningPlana.find('input[name=maquina_planning_nombre]').val(response.nombre).trigger("change")
|
||||
} else {
|
||||
this.maquinaPadreSelectFilterPlana.setOption(response.id, response.nombre)
|
||||
this.tablePlanningPlana.find('input[name=lg_maquinas.padre_id]').val(response.nombre).trigger("change")
|
||||
}
|
||||
this.papelImpresionPlanaHeader.text(response.nombre)
|
||||
}
|
||||
getPapelImpresionPlanaError(response) { }
|
||||
getMaquinaPlanaError(response) { }
|
||||
formatSeconds(s) {
|
||||
const hours = Math.floor(s / 60 / 60)
|
||||
const minutes = Math.floor(s / 60 % 60)
|
||||
@ -316,8 +367,14 @@ class PlanningRotativa {
|
||||
const pliegos = this.papelPliegoDatatable.column(4).data().map((e) => parseFloat(e))
|
||||
$('#total-tiempo-pliego').text(this.formatSeconds(seconds))
|
||||
this.totalPliegos.set(pliegos.reduce((a, b) => a + b, 0))
|
||||
|
||||
|
||||
}
|
||||
addTotalFooterMaquinaPlana() {
|
||||
const seconds = this.maquinaPlanaDatatable.column(4).data().reduce((a, b) => {
|
||||
return parseFloat(a) + parseFloat(b)
|
||||
}, 0)
|
||||
const pliegos = this.maquinaPlanaDatatable.column(3).data().map((e) => parseFloat(e))
|
||||
$('#total-tiempo-pliego-maquina').text(this.formatSeconds(seconds))
|
||||
this.totalMaquinaPliegos.set(pliegos.reduce((a, b) => a + b, 0))
|
||||
}
|
||||
calcMetrosCheck() {
|
||||
const metros_sel = this.datatablePlanningRot.rows((idx, data, node) => {
|
||||
@ -334,15 +391,13 @@ class PlanningRotativa {
|
||||
return $(node).find('input[type="checkbox"]').prop('checked');
|
||||
}).data().toArray().map((e) => parseFloat(e.tiempo_real_sum))
|
||||
this.totalPliegosSel.set(metros_sel.reduce((a, b) => a + b, 0))
|
||||
const totalSeconds = tiempo_total_sel.reduce((a,b) => a+b,0)
|
||||
console.log("Total seconds",totalSeconds);
|
||||
const totalSeconds = tiempo_total_sel.reduce((a, b) => a + b, 0)
|
||||
this.tiempoPlanaTotal.text(this.formatSeconds(totalSeconds))
|
||||
|
||||
|
||||
}
|
||||
renderCorteImage(data) {
|
||||
const tipo_corte = data.tipo_corte == "bobina" ? "cortadora_bobinas" : "guillotina";
|
||||
console.log(data.tipo_corte)
|
||||
return `
|
||||
<a type="button" class="btn btn-outline-secondary bg-white btn-xs change-corte" data-id=${data.otId}>
|
||||
<div class="avatar avatar-size-xs">
|
||||
@ -351,7 +406,7 @@ class PlanningRotativa {
|
||||
</a>
|
||||
`
|
||||
}
|
||||
toggleCorte(event){
|
||||
toggleCorte(event) {
|
||||
let otId = $(event.currentTarget).data('id')
|
||||
let ajax = new Ajax("/produccion/ordentrabajo/planning/tarea/toggle/corte/" + otId,
|
||||
null,
|
||||
@ -361,18 +416,18 @@ class PlanningRotativa {
|
||||
)
|
||||
ajax.post()
|
||||
}
|
||||
toggleCorteSuccess(response){
|
||||
toggleCorteSuccess(response) {
|
||||
this.datatablePlanningRot.ajax.reload()
|
||||
alertSuccess(response.message).fire()
|
||||
}
|
||||
toggleCorteError(){
|
||||
toggleCorteError() {
|
||||
}
|
||||
getColorOtStatus(row,data){
|
||||
let ajax = new Ajax("/produccion/ordentrabajo/color/"+data.otId,null,null,
|
||||
getColorOtStatus(row, data) {
|
||||
let ajax = new Ajax("/produccion/ordentrabajo/color/" + data.otId, null, null,
|
||||
(response) => {
|
||||
$(row).css("border-left",`10px solid ${response.color}`)
|
||||
$(row).css("border-right",`10px solid ${response.color}`)
|
||||
},null
|
||||
$(row).css("border-left", `10px solid ${response.color}`)
|
||||
$(row).css("border-right", `10px solid ${response.color}`)
|
||||
}, null
|
||||
)
|
||||
ajax.get()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user