Validar agregar deposito

This commit is contained in:
Mauricio Baeza 2017-11-22 19:44:26 -06:00
parent 0a575afaa9
commit 2e9dadf301
3 changed files with 220 additions and 6 deletions

View File

@ -6,9 +6,13 @@ var bancos_controllers = {
$$('cmd_agregar_retiro').attachEvent('onItemClick', cmd_agregar_retiro_click)
$$('cmd_agregar_deposito').attachEvent('onItemClick', cmd_agregar_deposito_click)
$$('cmd_guardar_retiro').attachEvent('onItemClick', cmd_guardar_retiro_click)
$$('cmd_guardar_deposito').attachEvent('onItemClick', cmd_guardar_deposito_click)
$$('txt_retiro_importe').attachEvent('onChange', txt_retiro_importe_change)
$$('txt_deposito_importe').attachEvent('onChange', txt_deposito_importe_change)
$$('grid_cfdi_este_deposito').attachEvent('onAfterDrop', grid_cfdi_este_deposito_after_drop)
$$('grid_cfdi_por_pagar').attachEvent('onAfterDrop', grid_cfdi_por_pagar_after_drop)
$$('grid_cfdi_este_deposito').attachEvent('onBeforeEditStop', grid_cfdi_este_deposito_before_edit_stop)
$$('grid_cfdi_este_deposito').attachEvent('onAfterEditStop', grid_cfdi_este_deposito_after_edit_stop)
set_year_month()
}
}
@ -262,6 +266,14 @@ function cmd_guardar_retiro_click(){
function txt_retiro_importe_change(new_value, old_value){
showvar(new_value)
if(!isFinite(new_value)){
this.config.value = old_value
this.refresh()
}
}
function txt_deposito_importe_change(new_value, old_value){
if(!isFinite(new_value)){
this.config.value = old_value
this.refresh()
@ -275,13 +287,15 @@ function actualizar_deposito(grid){
var suma = 0
var descripcion = ''
grid.data.each(function(obj){
suma += obj.saldo.to_float()
descripcion += 'Pago de la factura: ' + obj.serie + obj.folio + ' del '
descripcion += 'cliente: ' + obj.cliente + '\n'
obj.importe = obj.saldo
if(obj.importe == undefined){
obj.importe = obj.saldo
}
suma += obj.importe.to_float()
})
$$('txt_deposito_importe').setValue(suma)
$$('deposito_descripcion').setValue(descripcion)
$$('deposito_descripcion').setValue(descripcion.slice(0, -1))
grid.refresh()
}
@ -296,3 +310,202 @@ function grid_cfdi_este_deposito_after_drop(context, native_event){
var grid = $$('grid_cfdi_este_deposito')
actualizar_deposito(grid)
}
function grid_cfdi_este_deposito_after_edit_stop(state, editor, ignoreUpdate){
var grid = $$('grid_cfdi_este_deposito')
var suma = 0
grid.data.each(function(obj){
suma += obj.importe.to_float()
})
$$('txt_deposito_importe').setValue(suma)
}
function grid_cfdi_este_deposito_before_edit_stop(state, editor){
var grid = $$('grid_cfdi_este_deposito')
var row = grid.getItem(editor.row)
if(editor.column == 'importe'){
var importe = parseFloat(state.value)
if(isNaN(importe)){
msg = 'El importe a pagar debe ser un número'
msg_error(msg)
grid.blockEvent()
state.value = state.old
grid.editCancel()
grid.unblockEvent()
return true
}
if(importe <= 0){
msg = 'El importe a pagar debe ser mayor a cero'
msg_error(msg)
grid.blockEvent()
state.value = state.old
grid.editCancel()
grid.unblockEvent()
return true
}
var saldo = row['saldo'].to_float()
if(importe > saldo){
msg = 'El importe a pagar no puede ser mayor al saldo de la factura'
msg_error(msg)
grid.blockEvent()
state.value = state.old
grid.editCancel()
grid.unblockEvent()
return true
}
}
}
function validate_deposito(values){
var grid = $$('grid_cfdi_este_deposito')
var importe = values.deposito_importe.to_float()
if(!importe){
msg = 'El importe es requerido'
msg_error(msg)
return false
}
if(importe <= 0){
msg = 'El importe debe ser mayor a cero'
msg_error(msg)
return false
}
if(!values.deposito_descripcion.trim()){
msg = 'La descripción es requerida'
msg_error(msg)
return false
}
var horas = $$('time_deposito').getText().split(':')
var seg = parseInt(horas[2])
var min = parseInt(horas[1])
var horas = parseInt(horas[0])
if(horas > 23){
focus('time_deposito')
msg = 'Hora inválida'
msg_error(msg)
return false
}
if(min > 59){
focus('time_deposito')
msg = 'Hora inválida'
msg_error(msg)
return false
}
if(seg > 59){
focus('time_deposito')
msg = 'Hora inválida'
msg_error(msg)
return false
}
if(grid.count()){
var suma = 0
grid.data.each(function(obj){
var tmp = obj.importe.to_float()
if(tmp <= 0){
msg = 'El importe de la factura: ' + obj.serie + obj.folio + ' no puede ser menor a cero'
msg_error(msg)
return false
}
suma += tmp
})
if(suma > importe){
msg = 'La suma del pago de facturas, no puede ser mayor al deposito'
msg_error(msg)
return false
}
}
return true
}
function guardar_deposito(values){
var form = $$('form_banco_deposito')
var grid = $$('grid_cfdi_este_deposito')
var data = new Object()
data['cuenta'] = $$('lst_cuentas_banco').getValue()
data['fecha'] = values.retiro_fecha
data['hora'] = $$('time_deposito').getText()
data['numero_operacion'] = values.deposito_referencia.trim()
data['forma_pago'] = $$('lst_deposito_forma_pago').getValue()
data['deposito'] = values.deposito_importe.to_float()
data['retiro'] = 0.0
data['descripcion'] = values.deposito_descripcion
webix.ajax().post('/movbanco', data, {
error:function(text, data, XmlHttpRequest){
msg = 'Ocurrio un error, consulta a soporte técnico'
msg_error(msg)
},
success:function(text, data, XmlHttpRequest){
var values = data.json()
if(values.ok){
$$('txt_cuenta_saldo').setValue(values.saldo)
get_estado_cuenta()
$$('multi_bancos').setValue('banco_home')
form.setValues({})
grid.clearAll()
}else{
msg_error(values.msg)
}
}
})
}
function cmd_guardar_deposito_click(){
var form = $$('form_banco_deposito')
if(!form.validate()) {
msg_error('Valores inválidos')
return
}
var values = form.getValues()
if(!validate_deposito(values)){
return
}
if(!grid.count()){
msg = 'Todos los datos son correctos<br>br>'
msg = 'El depósito no tiene facturas relacionadas<br><br>¿Estás '
msg += ' seguro de guardar del depósito sin facturas relacionadas?'
webix.confirm({
title: 'Guardar depósito',
ok: 'Si',
cancel: 'No',
type: 'confirm-error',
text: msg,
callback:function(result){
if(result){
guardar_deposito(values)
}
}
})
}else{
msg = 'Todos los datos son correctos.<br><br>¿Deseas agregar este depósito?'
webix.confirm({
title: 'Guardar depósito',
ok: 'Si',
cancel: 'No',
type: 'confirm-error',
text: msg,
callback:function(result){
if(result){
guardar_deposito(values)
}
}
})
}
}

View File

@ -84,7 +84,7 @@ var grid_cfdi_este_deposito_cols = [
{id: 'saldo', header: ['Saldo'], width: 125, sort: 'int',
format: webix.i18n.priceFormat, css: 'right'},
{id: 'importe', header: ['Este pago'], width: 125, sort: 'int',
format: webix.i18n.priceFormat, css: 'right'},
format: webix.i18n.priceFormat, css: 'right', editor: 'text'},
]
@ -119,6 +119,7 @@ var grid_cfdi_este_deposito = {
resizeColumn: true,
headermenu: true,
drag: true,
editable: true,
columns: grid_cfdi_este_deposito_cols,
on:{
'data->onStoreUpdated':function(){

View File

@ -261,7 +261,7 @@ var grid_details = {
autoheight: true,
editable: true,
columns: grid_details_cols,
data: []
data: [],
}
@ -284,7 +284,7 @@ var grid_totals = {
footer: true,
autoheight: true,
columns: grid_totals_cols,
data: [{id: 1, concepto: 'SubTotal', importe: 0}]
data: [{id: 1, concepto: 'SubTotal', importe: 0}],
}