Files
oficial/app/resources/views/contabilidad/movimientos/scripts/edit_form.blade.php
Juan Pablo Vial 599880ae27 Editar movimientos
2024-10-01 13:11:15 -03:00

99 lines
3.5 KiB
PHP

<script>
class EditForm {
props
fields
constructor({ids}) {
this.props = {
ids,
movimientos: []
}
this.fields = [
{
name: 'index',
value: index => index
},
{
name: 'id',
value: movimiento => movimiento.id
},
{
id: 'centro_costo',
name: 'centro_id',
type: 'dropdown',
value: movimiento => movimiento.detalles.centro_costo.id ?? '',
values: CentrosCostos.get().map(centroCosto => {
return {
value: centroCosto.id,
name: `${centroCosto.id} - ${centroCosto.descripcion}`,
text: `${centroCosto.id} - ${centroCosto.descripcion}`,
}
})
},
{
name: 'rut',
type: 'text',
value: movimiento => movimiento.detalles.rut ?? ''
},
{
id: 'digito',
value: movimiento => movimiento.detalles.digito ?? ''
},
{
name: 'nombre',
type: 'text',
value: movimiento => movimiento.detalles.nombres ?? ''
},
{
name: 'categoria',
type: 'text',
value: movimiento => movimiento.detalles.categoria ?? ''
},
{
name: 'detalle',
type: 'text',
value: movimiento => movimiento.detalles.detalle ?? ''
},
{
name: 'identificador',
type: 'text',
value: movimiento => movimiento.detalles.identificador ?? ''
}
]
this.fields.filter(field => typeof field.values !== 'undefined').forEach(field => {
$(this.props.ids.form).find(`#${field.id}`).dropdown('change values', field.values)
})
}
reset() {
$(this.props.ids.form).form('reset')
}
show({modal, movimiento, index}) {
modal.find(this.props.ids.data).show()
this.fields.forEach(field => {
if (typeof field.name !== 'undefined') {
switch (field.type) {
case 'dropdown':
modal.find(`#${field.id}`).dropdown('set selected', field.value(movimiento))
break
default:
if (field.name === 'index') {
modal.find(`[name='${field.name}']`).val(index)
return
}
modal.find(`[name='${field.name}']`).val(field.value(movimiento))
break
}
return
}
modal.find(`#${field.id}`).text(field.value(movimiento))
})
}
setup() {
$(this.props.ids.form).on('submit', {
form_id: this.props.ids.form,
}, app.handlers.events.edit().modal)
}
}
</script>