forked from elmau/empresa-libre
Agregar depósitos
This commit is contained in:
parent
2e9dadf301
commit
9cb6dbf0b2
|
@ -294,6 +294,13 @@ class AppMovimientosBanco(object):
|
||||||
req.context['result'] = self._db.add_movbanco(values)
|
req.context['result'] = self._db.add_movbanco(values)
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
|
|
||||||
|
def on_delete(self, req, resp):
|
||||||
|
values = req.params
|
||||||
|
if self._db.delete('movbanco', values['id']):
|
||||||
|
resp.status = falcon.HTTP_200
|
||||||
|
else:
|
||||||
|
resp.status = falcon.HTTP_204
|
||||||
|
|
||||||
|
|
||||||
class AppFolios(object):
|
class AppFolios(object):
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,9 @@ class StorageEngine(object):
|
||||||
def _get_configtimbrar(self, values):
|
def _get_configtimbrar(self, values):
|
||||||
return main.config_timbrar()
|
return main.config_timbrar()
|
||||||
|
|
||||||
|
def _get_saldocuenta(self, values):
|
||||||
|
return main.CuentasBanco.get_saldo(values['id'])
|
||||||
|
|
||||||
def _get_validartimbrar(self, values):
|
def _get_validartimbrar(self, values):
|
||||||
return main.validar_timbrar()
|
return main.validar_timbrar()
|
||||||
|
|
||||||
|
@ -169,6 +172,8 @@ class StorageEngine(object):
|
||||||
return main.SATImpuestos.remove(id)
|
return main.SATImpuestos.remove(id)
|
||||||
if table == 'cuentasbanco':
|
if table == 'cuentasbanco':
|
||||||
return main.CuentasBanco.remove(id)
|
return main.CuentasBanco.remove(id)
|
||||||
|
if table == 'movbanco':
|
||||||
|
return main.MovimientosBanco.remove(id)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _get_client(self, values):
|
def _get_client(self, values):
|
||||||
|
|
|
@ -219,6 +219,28 @@ class Usuarios(BaseModel):
|
||||||
order_by = ('nombre', 'apellidos')
|
order_by = ('nombre', 'apellidos')
|
||||||
|
|
||||||
|
|
||||||
|
class Registro(BaseModel):
|
||||||
|
usuario = TextField()
|
||||||
|
accion = TextField(default='')
|
||||||
|
tabla = TextField(default='')
|
||||||
|
fecha = DateTimeField(default=util.now)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
t = '{} {}-{} ({})'
|
||||||
|
return t.format(self.usuario, self.accion, self.tabla, self.fecha)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
order_by = ('usuario', 'fecha')
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def add(cls, values):
|
||||||
|
try:
|
||||||
|
Registro.create(**values)
|
||||||
|
return
|
||||||
|
except:
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
class SATRegimenes(BaseModel):
|
class SATRegimenes(BaseModel):
|
||||||
key = TextField(index=True, unique=True)
|
key = TextField(index=True, unique=True)
|
||||||
name = TextField(index=True)
|
name = TextField(index=True)
|
||||||
|
@ -960,6 +982,14 @@ class CuentasBanco(BaseModel):
|
||||||
q = CuentasBanco.update(**fields).where(CuentasBanco.id==id)
|
q = CuentasBanco.update(**fields).where(CuentasBanco.id==id)
|
||||||
return bool(q.execute())
|
return bool(q.execute())
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_saldo(cls, id):
|
||||||
|
try:
|
||||||
|
obj = CuentasBanco.get(CuentasBanco.id==id)
|
||||||
|
return obj.saldo
|
||||||
|
except CuentasBanco.DoesNotExist:
|
||||||
|
return 0
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def remove(cls, id):
|
def remove(cls, id):
|
||||||
try:
|
try:
|
||||||
|
@ -1093,6 +1123,8 @@ class MovimientosBanco(BaseModel):
|
||||||
auto_round=True)
|
auto_round=True)
|
||||||
saldo = DecimalField(default=0.0, max_digits=20, decimal_places=6,
|
saldo = DecimalField(default=0.0, max_digits=20, decimal_places=6,
|
||||||
auto_round=True)
|
auto_round=True)
|
||||||
|
cancelado = BooleanField(default=False)
|
||||||
|
conciliado = BooleanField(default=False)
|
||||||
moneda = TextField(default='MXN') # Complemento de pagos
|
moneda = TextField(default='MXN') # Complemento de pagos
|
||||||
tipo_cambio = DecimalField(default=1.0, max_digits=15, decimal_places=6,
|
tipo_cambio = DecimalField(default=1.0, max_digits=15, decimal_places=6,
|
||||||
auto_round=True)
|
auto_round=True)
|
||||||
|
@ -1115,34 +1147,41 @@ class MovimientosBanco(BaseModel):
|
||||||
.select()
|
.select()
|
||||||
.where(
|
.where(
|
||||||
(MovimientosBanco.cuenta==cuenta) &
|
(MovimientosBanco.cuenta==cuenta) &
|
||||||
(MovimientosBanco.fecha<fecha))[-1]
|
(MovimientosBanco.fecha<fecha) &
|
||||||
|
(MovimientosBanco.cancelado==False))[-1]
|
||||||
)
|
)
|
||||||
return round(float(query.saldo), DECIMALES)
|
return round(float(query.saldo), DECIMALES)
|
||||||
|
|
||||||
|
def _movimiento_anterior(self, cuenta, fecha):
|
||||||
|
query = (MovimientosBanco
|
||||||
|
.select()
|
||||||
|
.where(
|
||||||
|
(MovimientosBanco.cuenta==cuenta) &
|
||||||
|
(MovimientosBanco.fecha<fecha) &
|
||||||
|
(MovimientosBanco.cancelado==False))[-1]
|
||||||
|
)
|
||||||
|
return query
|
||||||
|
|
||||||
def _actualizar_saldos(self, row):
|
def _actualizar_saldos(self, row):
|
||||||
query = (MovimientosBanco
|
query = (MovimientosBanco
|
||||||
.select()
|
.select()
|
||||||
.where(
|
.where(
|
||||||
(MovimientosBanco.cuenta==row.cuenta) &
|
(MovimientosBanco.cuenta==row.cuenta) &
|
||||||
(MovimientosBanco.fecha>row.fecha))
|
(MovimientosBanco.fecha>row.fecha) &
|
||||||
|
(MovimientosBanco.cancelado==False))
|
||||||
)
|
)
|
||||||
|
|
||||||
saldo = row.saldo
|
saldo = round(Decimal(row.saldo), DECIMALES)
|
||||||
if row.retiro:
|
|
||||||
importe = row.retiro * -1
|
|
||||||
else:
|
|
||||||
importe = row.deposito
|
|
||||||
|
|
||||||
for mov in query:
|
for mov in query:
|
||||||
mov.saldo = saldo + importe
|
mov.saldo = saldo + mov.deposito - mov.retiro
|
||||||
mov.save()
|
mov.save()
|
||||||
saldo = mov.saldo
|
saldo = mov.saldo
|
||||||
CuentasBanco.actualizar_saldo(None, saldo)
|
CuentasBanco.actualizar_saldo(row.cuenta, saldo)
|
||||||
return saldo
|
return saldo
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def add(cls, values):
|
def add(cls, values):
|
||||||
#~ print(values)
|
ids = values.pop('ids', '')
|
||||||
actualizar = False
|
actualizar = False
|
||||||
if not 'saldo' in values:
|
if not 'saldo' in values:
|
||||||
actualizar = True
|
actualizar = True
|
||||||
|
@ -1167,9 +1206,30 @@ class MovimientosBanco(BaseModel):
|
||||||
|
|
||||||
if actualizar:
|
if actualizar:
|
||||||
saldo = cls._actualizar_saldos(cls, obj)
|
saldo = cls._actualizar_saldos(cls, obj)
|
||||||
|
if ids:
|
||||||
|
FacturasPagos.add(obj, util.loads(ids))
|
||||||
|
|
||||||
return {'ok': True, 'saldo': saldo}
|
return {'ok': True, 'saldo': saldo}
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def remove(cls, id):
|
||||||
|
try:
|
||||||
|
obj = MovimientosBanco.get(MovimientosBanco.id==id)
|
||||||
|
except MovimientosBanco.DoesNotExist:
|
||||||
|
return False
|
||||||
|
|
||||||
|
if obj.conciliado or obj.cancelado:
|
||||||
|
return False
|
||||||
|
|
||||||
|
with database_proxy.transaction():
|
||||||
|
obj.cancelado = True
|
||||||
|
obj.save()
|
||||||
|
|
||||||
|
obj = cls._movimiento_anterior(cls, obj.cuenta, obj.fecha)
|
||||||
|
cls._actualizar_saldos(cls, obj)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def con(cls, id):
|
def con(cls, id):
|
||||||
cant = (MovimientosBanco
|
cant = (MovimientosBanco
|
||||||
|
@ -1191,7 +1251,10 @@ class MovimientosBanco(BaseModel):
|
||||||
fd = (MovimientosBanco.fecha.between(
|
fd = (MovimientosBanco.fecha.between(
|
||||||
util.get_date(rango['start']),
|
util.get_date(rango['start']),
|
||||||
util.get_date(rango['end'], True)))
|
util.get_date(rango['end'], True)))
|
||||||
filtros = (fd & (MovimientosBanco.cuenta==cuenta))
|
filtros = (fd &
|
||||||
|
(MovimientosBanco.cuenta==cuenta) &
|
||||||
|
(MovimientosBanco.cancelado==False)
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
year = int(values['year'])
|
year = int(values['year'])
|
||||||
mes = int(values['mes'])
|
mes = int(values['mes'])
|
||||||
|
@ -1203,7 +1266,10 @@ class MovimientosBanco(BaseModel):
|
||||||
fm = (MovimientosBanco.fecha.month > 0)
|
fm = (MovimientosBanco.fecha.month > 0)
|
||||||
else:
|
else:
|
||||||
fm = (MovimientosBanco.fecha.month == mes)
|
fm = (MovimientosBanco.fecha.month == mes)
|
||||||
filtros = (fy & fm & (MovimientosBanco.cuenta==cuenta))
|
filtros = (fy & fm &
|
||||||
|
(MovimientosBanco.cuenta==cuenta) &
|
||||||
|
(MovimientosBanco.cancelado==False)
|
||||||
|
)
|
||||||
|
|
||||||
rows = tuple(MovimientosBanco
|
rows = tuple(MovimientosBanco
|
||||||
.select(
|
.select(
|
||||||
|
@ -2933,22 +2999,22 @@ class FacturasComplementos(BaseModel):
|
||||||
return {r.nombre: util.loads(r.valores) for r in query}
|
return {r.nombre: util.loads(r.valores) for r in query}
|
||||||
|
|
||||||
|
|
||||||
class CfdiPagosFacturas(BaseModel):
|
# ~ class CfdiPagosFacturas(BaseModel):
|
||||||
pago = ForeignKeyField(CfdiPagos)
|
# ~ pago = ForeignKeyField(CfdiPagos)
|
||||||
factura = ForeignKeyField(Facturas)
|
# ~ factura = ForeignKeyField(Facturas)
|
||||||
numero = IntegerField(default=1)
|
# ~ numero = IntegerField(default=1)
|
||||||
saldo_anterior = DecimalField(default=0.0, max_digits=20, decimal_places=6,
|
# ~ saldo_anterior = DecimalField(default=0.0, max_digits=20, decimal_places=6,
|
||||||
auto_round=True)
|
# ~ auto_round=True)
|
||||||
importe = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
# ~ importe = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
||||||
auto_round=True)
|
# ~ auto_round=True)
|
||||||
saldo = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
# ~ saldo = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
||||||
auto_round=True)
|
# ~ auto_round=True)
|
||||||
|
|
||||||
class Meta:
|
# ~ class Meta:
|
||||||
order_by = ('pago',)
|
# ~ order_by = ('pago',)
|
||||||
indexes = (
|
# ~ indexes = (
|
||||||
(('pago', 'factura', 'numero'), True),
|
# ~ (('pago', 'factura', 'numero'), True),
|
||||||
)
|
# ~ )
|
||||||
|
|
||||||
|
|
||||||
class PreFacturasRelacionadas(BaseModel):
|
class PreFacturasRelacionadas(BaseModel):
|
||||||
|
@ -3093,21 +3159,28 @@ class FacturasImpuestos(BaseModel):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
#~ class FacturasPagos(BaseModel):
|
class FacturasPagos(BaseModel):
|
||||||
#~ factura = ForeignKeyField(Facturas)
|
movimiento = ForeignKeyField(MovimientosBanco)
|
||||||
#~ numero = IntegerField(default=1)
|
factura = ForeignKeyField(Facturas)
|
||||||
#~ saldo_anterior = DecimalField(default=0.0, max_digits=20, decimal_places=6,
|
numero = IntegerField(default=1)
|
||||||
#~ auto_round=True)
|
saldo_anterior = DecimalField(default=0.0, max_digits=20, decimal_places=6,
|
||||||
#~ importe = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
auto_round=True)
|
||||||
#~ auto_round=True)
|
importe = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
||||||
#~ saldo = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
auto_round=True)
|
||||||
#~ auto_round=True)
|
saldo = DecimalField(default=0.0, max_digits=18, decimal_places=6,
|
||||||
|
auto_round=True)
|
||||||
|
|
||||||
#~ class Meta:
|
class Meta:
|
||||||
#~ order_by = ('factura',)
|
order_by = ('factura',)
|
||||||
#~ indexes = (
|
indexes = (
|
||||||
#~ (('factura', 'numero'), True),
|
(('factura', 'numero'), True),
|
||||||
#~ )
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def add(cls, mov, ids):
|
||||||
|
print (mov)
|
||||||
|
print (ids)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
class PreFacturasImpuestos(BaseModel):
|
class PreFacturasImpuestos(BaseModel):
|
||||||
|
@ -3168,10 +3241,8 @@ def authenticate(args):
|
||||||
respuesta['msg'] = ''
|
respuesta['msg'] = ''
|
||||||
respuesta['login'] = True
|
respuesta['login'] = True
|
||||||
respuesta['user'] = str(obj)
|
respuesta['user'] = str(obj)
|
||||||
#~ respuesta['user'] = obj
|
|
||||||
respuesta['super'] = obj.es_superusuario
|
respuesta['super'] = obj.es_superusuario
|
||||||
#~ respuesta['admin'] = obj.es_superusuario or obj.es_admin
|
#~ respuesta['admin'] = obj.es_superusuario or obj.es_admin
|
||||||
#~ desconectar()
|
|
||||||
return respuesta, obj
|
return respuesta, obj
|
||||||
|
|
||||||
|
|
||||||
|
@ -3262,15 +3333,15 @@ def _init_values(rfc):
|
||||||
|
|
||||||
def _crear_tablas(rfc):
|
def _crear_tablas(rfc):
|
||||||
tablas = [Addendas, Categorias, Certificado, CondicionesPago, Configuracion,
|
tablas = [Addendas, Categorias, Certificado, CondicionesPago, Configuracion,
|
||||||
Folios,
|
Folios, Registro,
|
||||||
Emisor, Facturas, FacturasDetalle, FacturasImpuestos,
|
Emisor, Facturas, FacturasDetalle, FacturasImpuestos, FacturasPagos,
|
||||||
FacturasRelacionadas, FacturasComplementos, Almacenes, Productos,
|
FacturasRelacionadas, FacturasComplementos, Almacenes, Productos,
|
||||||
PreFacturas, PreFacturasDetalle, PreFacturasImpuestos,
|
PreFacturas, PreFacturasDetalle, PreFacturasImpuestos,
|
||||||
PreFacturasRelacionadas,
|
PreFacturasRelacionadas,
|
||||||
SATAduanas, SATFormaPago, SATImpuestos, SATMonedas, SATRegimenes,
|
SATAduanas, SATFormaPago, SATImpuestos, SATMonedas, SATRegimenes,
|
||||||
SATTipoRelacion, SATUnidades, SATUsoCfdi, SATBancos,
|
SATTipoRelacion, SATUnidades, SATUsoCfdi, SATBancos,
|
||||||
Socios, Tags, Usuarios, CuentasBanco, TipoCambio, MovimientosBanco,
|
Socios, Tags, Usuarios, CuentasBanco, TipoCambio, MovimientosBanco,
|
||||||
CfdiPagos, CfdiPagosFacturas,
|
CfdiPagos,
|
||||||
Emisor.regimenes.get_through_model(),
|
Emisor.regimenes.get_through_model(),
|
||||||
Socios.tags.get_through_model(),
|
Socios.tags.get_through_model(),
|
||||||
Productos.impuestos.get_through_model(),
|
Productos.impuestos.get_through_model(),
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
var msg = ''
|
var msg = ''
|
||||||
|
var msg_importe = ''
|
||||||
|
|
||||||
|
|
||||||
var bancos_controllers = {
|
var bancos_controllers = {
|
||||||
init: function(){
|
init: function(){
|
||||||
|
@ -7,6 +9,7 @@ var bancos_controllers = {
|
||||||
$$('cmd_agregar_deposito').attachEvent('onItemClick', cmd_agregar_deposito_click)
|
$$('cmd_agregar_deposito').attachEvent('onItemClick', cmd_agregar_deposito_click)
|
||||||
$$('cmd_guardar_retiro').attachEvent('onItemClick', cmd_guardar_retiro_click)
|
$$('cmd_guardar_retiro').attachEvent('onItemClick', cmd_guardar_retiro_click)
|
||||||
$$('cmd_guardar_deposito').attachEvent('onItemClick', cmd_guardar_deposito_click)
|
$$('cmd_guardar_deposito').attachEvent('onItemClick', cmd_guardar_deposito_click)
|
||||||
|
$$('cmd_cancelar_movimiento').attachEvent('onItemClick', cmd_cancelar_movimiento_click)
|
||||||
$$('txt_retiro_importe').attachEvent('onChange', txt_retiro_importe_change)
|
$$('txt_retiro_importe').attachEvent('onChange', txt_retiro_importe_change)
|
||||||
$$('txt_deposito_importe').attachEvent('onChange', txt_deposito_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_este_deposito').attachEvent('onAfterDrop', grid_cfdi_este_deposito_after_drop)
|
||||||
|
@ -98,6 +101,20 @@ function get_estado_cuenta(rango){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function get_saldo_cuenta(){
|
||||||
|
var id = $$('lst_cuentas_banco').getValue()
|
||||||
|
webix.ajax().get('/values/saldocuenta', {id: id}, function(text, data){
|
||||||
|
var value = data.json()
|
||||||
|
if(value){
|
||||||
|
$$('txt_cuenta_saldo').setValue(value)
|
||||||
|
}else{
|
||||||
|
msg = 'No se pudo consultar el saldo'
|
||||||
|
msg_error(msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function lst_cuentas_banco_change(nv, ov){
|
function lst_cuentas_banco_change(nv, ov){
|
||||||
show('Cuenta change')
|
show('Cuenta change')
|
||||||
}
|
}
|
||||||
|
@ -147,6 +164,7 @@ function cmd_agregar_retiro_click(){
|
||||||
|
|
||||||
|
|
||||||
function cmd_agregar_deposito_click(){
|
function cmd_agregar_deposito_click(){
|
||||||
|
msg_importe = ''
|
||||||
get_bancos_forma_pago(false)
|
get_bancos_forma_pago(false)
|
||||||
get_facturas_por_pagar()
|
get_facturas_por_pagar()
|
||||||
$$('multi_bancos').setValue('banco_deposito')
|
$$('multi_bancos').setValue('banco_deposito')
|
||||||
|
@ -174,6 +192,13 @@ function validate_retiro(values){
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var today = new Date()
|
||||||
|
if(values.retiro_fecha > today){
|
||||||
|
msg = 'Fecha inválida, es una fecha futura'
|
||||||
|
msg_error(msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var horas = $$('time_retiro').getText().split(':')
|
var horas = $$('time_retiro').getText().split(':')
|
||||||
var seg = parseInt(horas[2])
|
var seg = parseInt(horas[2])
|
||||||
var min = parseInt(horas[1])
|
var min = parseInt(horas[1])
|
||||||
|
@ -266,7 +291,6 @@ function cmd_guardar_retiro_click(){
|
||||||
|
|
||||||
|
|
||||||
function txt_retiro_importe_change(new_value, old_value){
|
function txt_retiro_importe_change(new_value, old_value){
|
||||||
showvar(new_value)
|
|
||||||
if(!isFinite(new_value)){
|
if(!isFinite(new_value)){
|
||||||
this.config.value = old_value
|
this.config.value = old_value
|
||||||
this.refresh()
|
this.refresh()
|
||||||
|
@ -383,6 +407,13 @@ function validate_deposito(values){
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var today = new Date()
|
||||||
|
if(values.deposito_fecha > today){
|
||||||
|
msg = 'Fecha inválida, es una fecha futura'
|
||||||
|
msg_error(msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var horas = $$('time_deposito').getText().split(':')
|
var horas = $$('time_deposito').getText().split(':')
|
||||||
var seg = parseInt(horas[2])
|
var seg = parseInt(horas[2])
|
||||||
var min = parseInt(horas[1])
|
var min = parseInt(horas[1])
|
||||||
|
@ -423,6 +454,10 @@ function validate_deposito(values){
|
||||||
msg_error(msg)
|
msg_error(msg)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
if(suma < importe){
|
||||||
|
msg_importe = 'El importe del depósito en mayor a la suma de facturas. '
|
||||||
|
msg_importe += 'Asegurate de que esto sea correcto'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
@ -435,7 +470,7 @@ function guardar_deposito(values){
|
||||||
|
|
||||||
var data = new Object()
|
var data = new Object()
|
||||||
data['cuenta'] = $$('lst_cuentas_banco').getValue()
|
data['cuenta'] = $$('lst_cuentas_banco').getValue()
|
||||||
data['fecha'] = values.retiro_fecha
|
data['fecha'] = values.deposito_fecha
|
||||||
data['hora'] = $$('time_deposito').getText()
|
data['hora'] = $$('time_deposito').getText()
|
||||||
data['numero_operacion'] = values.deposito_referencia.trim()
|
data['numero_operacion'] = values.deposito_referencia.trim()
|
||||||
data['forma_pago'] = $$('lst_deposito_forma_pago').getValue()
|
data['forma_pago'] = $$('lst_deposito_forma_pago').getValue()
|
||||||
|
@ -443,6 +478,14 @@ function guardar_deposito(values){
|
||||||
data['retiro'] = 0.0
|
data['retiro'] = 0.0
|
||||||
data['descripcion'] = values.deposito_descripcion
|
data['descripcion'] = values.deposito_descripcion
|
||||||
|
|
||||||
|
if(grid.count()){
|
||||||
|
var ids = new Object()
|
||||||
|
grid.data.each(function(obj){
|
||||||
|
ids[obj.id] = obj.importe.to_float()
|
||||||
|
})
|
||||||
|
data['ids'] = ids
|
||||||
|
}
|
||||||
|
|
||||||
webix.ajax().post('/movbanco', data, {
|
webix.ajax().post('/movbanco', data, {
|
||||||
error:function(text, data, XmlHttpRequest){
|
error:function(text, data, XmlHttpRequest){
|
||||||
msg = 'Ocurrio un error, consulta a soporte técnico'
|
msg = 'Ocurrio un error, consulta a soporte técnico'
|
||||||
|
@ -466,6 +509,7 @@ function guardar_deposito(values){
|
||||||
|
|
||||||
function cmd_guardar_deposito_click(){
|
function cmd_guardar_deposito_click(){
|
||||||
var form = $$('form_banco_deposito')
|
var form = $$('form_banco_deposito')
|
||||||
|
var grid = $$('grid_cfdi_este_deposito')
|
||||||
|
|
||||||
if(!form.validate()) {
|
if(!form.validate()) {
|
||||||
msg_error('Valores inválidos')
|
msg_error('Valores inválidos')
|
||||||
|
@ -494,7 +538,11 @@ function cmd_guardar_deposito_click(){
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
msg = 'Todos los datos son correctos.<br><br>¿Deseas agregar este depósito?'
|
if(!msg_importe){
|
||||||
|
msg_importe = 'Se van a relacionar ' + grid.count() + ' facturas.'
|
||||||
|
}
|
||||||
|
msg = 'Todos los datos son correctos.<br><br>' + msg_importe + '<br><br>'
|
||||||
|
msg += '¿Deseas agregar este depósito?'
|
||||||
webix.confirm({
|
webix.confirm({
|
||||||
title: 'Guardar depósito',
|
title: 'Guardar depósito',
|
||||||
ok: 'Si',
|
ok: 'Si',
|
||||||
|
@ -509,3 +557,48 @@ function cmd_guardar_deposito_click(){
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function cancelar_movimiento(id){
|
||||||
|
var grid = $$('grid_cuentabanco')
|
||||||
|
|
||||||
|
webix.ajax().del('/movbanco', {id: id}, function(text, xml, xhr){
|
||||||
|
if(xhr.status == 200){
|
||||||
|
get_estado_cuenta()
|
||||||
|
get_saldo_cuenta()
|
||||||
|
msg_sucess('Movimiento cancelado correctamente')
|
||||||
|
}else{
|
||||||
|
msg_error('No se pudo eliminar')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function cmd_cancelar_movimiento_click(){
|
||||||
|
var grid = $$('grid_cuentabanco')
|
||||||
|
|
||||||
|
var row = grid.getSelectedItem()
|
||||||
|
if(row == undefined){
|
||||||
|
msg_error('Selecciona un movimiento')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if(row.descripcion == 'Saldo inicial'){
|
||||||
|
msg_error('No es posible eliminar el saldo inicial')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var msg = '¿Estás seguro de cancelar el movimiento seleccionado?'
|
||||||
|
msg += '<BR><BR>ESTA ACCIÓN NO SE PUEDE DESHACER<BR><BR>'
|
||||||
|
webix.confirm({
|
||||||
|
title:'Cancelar Movimiento',
|
||||||
|
ok:'Si',
|
||||||
|
cancel:'No',
|
||||||
|
type:'confirm-error',
|
||||||
|
text:msg,
|
||||||
|
callback:function(result){
|
||||||
|
if (result){
|
||||||
|
cancelar_movimiento(row['id'])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
|
@ -17,10 +17,17 @@ var toolbar_filtro_cuenta = [
|
||||||
{view: 'daterangepicker', id: 'filtro_cuenta_fechas', label: 'Fechas',
|
{view: 'daterangepicker', id: 'filtro_cuenta_fechas', label: 'Fechas',
|
||||||
labelAlign: 'right', width: 300},
|
labelAlign: 'right', width: 300},
|
||||||
{},
|
{},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
var toolbar_movimientos_banco = [
|
||||||
{view: 'button', id: 'cmd_agregar_retiro', label: 'Retiro',
|
{view: 'button', id: 'cmd_agregar_retiro', label: 'Retiro',
|
||||||
type: 'iconButton', autowidth: true, icon: 'minus'},
|
type: 'iconButton', autowidth: true, icon: 'minus'},
|
||||||
{view: 'button', id: 'cmd_agregar_deposito', label: 'Depósito',
|
{view: 'button', id: 'cmd_agregar_deposito', label: 'Depósito',
|
||||||
type: 'iconButton', autowidth: true, icon: 'plus'},
|
type: 'iconButton', autowidth: true, icon: 'plus'},
|
||||||
|
{},
|
||||||
|
{view: 'button', id: 'cmd_cancelar_movimiento', label: 'Cancelar',
|
||||||
|
type: 'iconButton', autowidth: true, icon: 'ban'},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -250,6 +257,7 @@ var multi_bancos = {
|
||||||
{id: 'banco_home', rows:[
|
{id: 'banco_home', rows:[
|
||||||
{view: 'toolbar', elements: toolbar_banco},
|
{view: 'toolbar', elements: toolbar_banco},
|
||||||
{view: 'toolbar', elements: toolbar_filtro_cuenta},
|
{view: 'toolbar', elements: toolbar_filtro_cuenta},
|
||||||
|
{view: 'toolbar', elements: toolbar_movimientos_banco},
|
||||||
grid_cuentabanco,
|
grid_cuentabanco,
|
||||||
]},
|
]},
|
||||||
{id: 'banco_retiro', rows: [form_banco_retiro]},
|
{id: 'banco_retiro', rows: [form_banco_retiro]},
|
||||||
|
|
Loading…
Reference in New Issue