forked from elmau/empresa-libre
Crear primer movimiento
This commit is contained in:
parent
3cf46e69ae
commit
6954b74677
|
@ -266,6 +266,13 @@ class AppCuentasBanco(object):
|
||||||
req.context['result'] = self._db.cuentasbanco(values)
|
req.context['result'] = self._db.cuentasbanco(values)
|
||||||
resp.status = falcon.HTTP_200
|
resp.status = falcon.HTTP_200
|
||||||
|
|
||||||
|
def on_delete(self, req, resp):
|
||||||
|
values = req.params
|
||||||
|
if self._db.delete('cuentasbanco', values['id']):
|
||||||
|
resp.status = falcon.HTTP_200
|
||||||
|
else:
|
||||||
|
resp.status = falcon.HTTP_204
|
||||||
|
|
||||||
|
|
||||||
class AppMovimientosBanco(object):
|
class AppMovimientosBanco(object):
|
||||||
|
|
||||||
|
|
|
@ -148,6 +148,9 @@ class StorageEngine(object):
|
||||||
def _get_usocfdi(self, values):
|
def _get_usocfdi(self, values):
|
||||||
return main.SATUsoCfdi.get_activos()
|
return main.SATUsoCfdi.get_activos()
|
||||||
|
|
||||||
|
def _get_ebancomov(self, values):
|
||||||
|
return main.MovimientosBanco.con(values['id'])
|
||||||
|
|
||||||
def delete(self, table, id):
|
def delete(self, table, id):
|
||||||
if table == 'partner':
|
if table == 'partner':
|
||||||
return main.Socios.remove(id)
|
return main.Socios.remove(id)
|
||||||
|
@ -161,6 +164,8 @@ class StorageEngine(object):
|
||||||
return main.PreFacturas.remove(id)
|
return main.PreFacturas.remove(id)
|
||||||
if table == 'satimpuesto':
|
if table == 'satimpuesto':
|
||||||
return main.SATImpuestos.remove(id)
|
return main.SATImpuestos.remove(id)
|
||||||
|
if table == 'cuentasbanco':
|
||||||
|
return main.CuentasBanco.remove(id)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _get_client(self, values):
|
def _get_client(self, values):
|
||||||
|
|
|
@ -642,6 +642,10 @@ class SATFormaPago(BaseModel):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return 'Forma de pago: ({}) {}'.format(self.key, self.name)
|
return 'Forma de pago: ({}) {}'.format(self.key, self.name)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_by_key(cls, key):
|
||||||
|
return SATFormaPago.get(SATFormaPago.key==key)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_activos(cls, values):
|
def get_activos(cls, values):
|
||||||
field = SATFormaPago.id
|
field = SATFormaPago.id
|
||||||
|
@ -914,6 +918,18 @@ class CuentasBanco(BaseModel):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '{} ({})'.format(self.banco.name, self.cuenta[-4:])
|
return '{} ({})'.format(self.banco.name, self.cuenta[-4:])
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def remove(cls, id):
|
||||||
|
try:
|
||||||
|
with database_proxy.atomic() as txn:
|
||||||
|
q = MovimientosBanco.delete().where(MovimientosBanco.cuenta==id)
|
||||||
|
q.execute()
|
||||||
|
q = CuentasBanco.delete().where(CuentasBanco.id==id)
|
||||||
|
q.execute()
|
||||||
|
return True
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_years(cls):
|
def get_years(cls):
|
||||||
data = [{'id': -1, 'value': 'Todos'}]
|
data = [{'id': -1, 'value': 'Todos'}]
|
||||||
|
@ -975,15 +991,32 @@ class CuentasBanco(BaseModel):
|
||||||
def add(cls, values):
|
def add(cls, values):
|
||||||
w = '37137137137137137'
|
w = '37137137137137137'
|
||||||
dv = str(
|
dv = str(
|
||||||
10 -
|
(10 -
|
||||||
sum([(int(v) * int(values['clabe'][i])) % 10 for i, v in enumerate(w)])
|
sum([(int(v) * int(values['clabe'][i])) % 10 for i, v in enumerate(w)])
|
||||||
% 10)
|
% 10) % 10)
|
||||||
if dv != values['clabe'][-1]:
|
if dv != values['clabe'][-1]:
|
||||||
msg = 'Digito de control de la CLABE es incorrecto'
|
msg = 'Digito de control de la CLABE es incorrecto'
|
||||||
return {'ok': False, 'msg': msg}
|
return {'ok': False, 'msg': msg}
|
||||||
|
|
||||||
|
fecha_deposito = values.pop('fecha_deposito', None)
|
||||||
|
|
||||||
with database_proxy.transaction():
|
with database_proxy.transaction():
|
||||||
obj = CuentasBanco.create(**values)
|
try:
|
||||||
|
obj = CuentasBanco.create(**values)
|
||||||
|
except IntegrityError:
|
||||||
|
msg = 'Esta cuenta ya existe'
|
||||||
|
return {'ok': False, 'msg': msg}
|
||||||
|
|
||||||
|
nuevo_mov= {
|
||||||
|
'cuenta': obj.id,
|
||||||
|
'fecha': fecha_deposito,
|
||||||
|
'movimiento': 1,
|
||||||
|
'descripcion': 'Saldo inicial',
|
||||||
|
'forma_pago': SATFormaPago.get_by_key('99'),
|
||||||
|
'deposito': values['saldo'],
|
||||||
|
'saldo': values['saldo'],
|
||||||
|
}
|
||||||
|
MovimientosBanco.add(nuevo_mov)
|
||||||
|
|
||||||
rows = (CuentasBanco
|
rows = (CuentasBanco
|
||||||
.select(
|
.select(
|
||||||
|
@ -1037,6 +1070,30 @@ class MovimientosBanco(BaseModel):
|
||||||
(('cuenta', 'movimiento'), True),
|
(('cuenta', 'movimiento'), True),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def add(cls, values):
|
||||||
|
with database_proxy.transaction():
|
||||||
|
try:
|
||||||
|
obj = MovimientosBanco.create(**values)
|
||||||
|
except IntegrityError:
|
||||||
|
msg = 'Este movimiento ya existe'
|
||||||
|
return {'ok': False, 'msg': msg}
|
||||||
|
|
||||||
|
return {'ok': True}
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def con(cls, id):
|
||||||
|
cant = (MovimientosBanco
|
||||||
|
.select(MovimientosBanco.id)
|
||||||
|
.where(MovimientosBanco.cuenta==id)
|
||||||
|
.count()
|
||||||
|
)
|
||||||
|
if cant > 2:
|
||||||
|
return {'ok': True}
|
||||||
|
|
||||||
|
return {'ok': False}
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_(cls, values):
|
def get_(cls, values):
|
||||||
cuenta = int(values['cuenta'])
|
cuenta = int(values['cuenta'])
|
||||||
|
@ -1045,7 +1102,7 @@ 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.id==cuenta)
|
filtros = (fd & (MovimientosBanco.cuenta==cuenta))
|
||||||
else:
|
else:
|
||||||
year = int(values['year'])
|
year = int(values['year'])
|
||||||
mes = int(values['mes'])
|
mes = int(values['mes'])
|
||||||
|
@ -1057,7 +1114,7 @@ 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.id==cuenta)
|
filtros = (fy & fm & (MovimientosBanco.cuenta==cuenta))
|
||||||
|
|
||||||
rows = tuple(MovimientosBanco
|
rows = tuple(MovimientosBanco
|
||||||
.select(
|
.select(
|
||||||
|
@ -1071,6 +1128,7 @@ class MovimientosBanco(BaseModel):
|
||||||
.where(filtros)
|
.where(filtros)
|
||||||
.dicts()
|
.dicts()
|
||||||
)
|
)
|
||||||
|
|
||||||
return {'ok': True, 'rows': rows}
|
return {'ok': True, 'rows': rows}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ var controllers = {
|
||||||
$$('cmd_guardar_correo').attachEvent('onItemClick', cmd_guardar_correo_click)
|
$$('cmd_guardar_correo').attachEvent('onItemClick', cmd_guardar_correo_click)
|
||||||
$$('emisor_logo').attachEvent('onItemClick', emisor_logo_click)
|
$$('emisor_logo').attachEvent('onItemClick', emisor_logo_click)
|
||||||
$$('cmd_emisor_agregar_cuenta').attachEvent('onItemClick', cmd_emisor_agregar_cuenta_click)
|
$$('cmd_emisor_agregar_cuenta').attachEvent('onItemClick', cmd_emisor_agregar_cuenta_click)
|
||||||
|
$$('cmd_emisor_eliminar_cuenta').attachEvent('onItemClick', cmd_emisor_eliminar_cuenta_click)
|
||||||
$$('emisor_cuenta_saldo_inicial').attachEvent('onChange', emisor_cuenta_saldo_inicial_change)
|
$$('emisor_cuenta_saldo_inicial').attachEvent('onChange', emisor_cuenta_saldo_inicial_change)
|
||||||
//~ SAT
|
//~ SAT
|
||||||
tb_sat = $$('tab_sat').getTabbar()
|
tb_sat = $$('tab_sat').getTabbar()
|
||||||
|
@ -906,17 +907,18 @@ function cmd_emisor_agregar_cuenta_click(){
|
||||||
|
|
||||||
var values = form.getValues()
|
var values = form.getValues()
|
||||||
|
|
||||||
var si = parseFloat(values.emisor_cuenta_saldo_inicial.replace('$', '').replace(',', ''))
|
var saldo_inicial = parseFloat(values.emisor_cuenta_saldo_inicial.replace('$', '').replace(',', ''))
|
||||||
var cuenta = {
|
var cuenta = {
|
||||||
de_emisor: true,
|
de_emisor: true,
|
||||||
activa: true,
|
activa: true,
|
||||||
nombre: values.emisor_cuenta_nombre.trim(),
|
nombre: values.emisor_cuenta_nombre.trim(),
|
||||||
banco: values.emisor_banco,
|
banco: values.emisor_banco,
|
||||||
fecha_apertura: values.emisor_cuenta_fecha,
|
fecha_apertura: values.emisor_cuenta_fecha,
|
||||||
|
fecha_deposito: values.emisor_fecha_saldo,
|
||||||
cuenta: values.emisor_cuenta.trim(),
|
cuenta: values.emisor_cuenta.trim(),
|
||||||
clabe: values.emisor_clabe.trim(),
|
clabe: values.emisor_clabe.trim(),
|
||||||
moneda: values.emisor_cuenta_moneda,
|
moneda: values.emisor_cuenta_moneda,
|
||||||
saldo_inicial: si
|
saldo_inicial: saldo_inicial
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!cuenta.nombre){
|
if(!cuenta.nombre){
|
||||||
|
@ -979,6 +981,7 @@ function cmd_emisor_agregar_cuenta_click(){
|
||||||
var values = data.json()
|
var values = data.json()
|
||||||
if(values.ok){
|
if(values.ok){
|
||||||
$$('grid_emisor_cuentas_banco').add(values.row)
|
$$('grid_emisor_cuentas_banco').add(values.row)
|
||||||
|
form.setValues({})
|
||||||
}else{
|
}else{
|
||||||
msg_error(values.msg)
|
msg_error(values.msg)
|
||||||
}
|
}
|
||||||
|
@ -1125,3 +1128,57 @@ function grid_admin_taxes_click(id, e, node){
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function eliminar_cuenta_banco(id){
|
||||||
|
var grid = $$('grid_emisor_cuentas_banco')
|
||||||
|
|
||||||
|
webix.ajax().del('/cuentasbanco', {id: id}, function(text, xml, xhr){
|
||||||
|
msg = 'Cuenta eliminada correctamente'
|
||||||
|
if(xhr.status == 200){
|
||||||
|
grid.remove(id)
|
||||||
|
msg_sucess(msg)
|
||||||
|
}else{
|
||||||
|
msg = 'No se pudo eliminar'
|
||||||
|
msg_error(msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function cmd_emisor_eliminar_cuenta_click(){
|
||||||
|
var respuesta = undefined
|
||||||
|
var row = $$('grid_emisor_cuentas_banco').getSelectedItem()
|
||||||
|
|
||||||
|
if (row == undefined){
|
||||||
|
msg = 'Selecciona una cuenta de banco'
|
||||||
|
msg_error(msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
webix.ajax().sync().get('/values/ebancomov', {id: row['id']}, function(text, data){
|
||||||
|
respuesta = data.json()
|
||||||
|
})
|
||||||
|
|
||||||
|
if(respuesta.ok){
|
||||||
|
msg = 'La cuenta tiene movimientos, no se puede eliminar'
|
||||||
|
msg_error(msg)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var msg = '¿Estás seguro de eliminar la cuenta de banco?<BR><BR>'
|
||||||
|
msg += row['banco'] + ' (' + row['cuenta'] + ')'
|
||||||
|
msg += '<BR><BR>ESTA ACCIÓN NO SE PUEDE DESHACER'
|
||||||
|
webix.confirm({
|
||||||
|
title: 'Eliminar Cuenta de Banco',
|
||||||
|
ok: 'Si',
|
||||||
|
cancel: 'No',
|
||||||
|
type: 'confirm-error',
|
||||||
|
text: msg,
|
||||||
|
callback:function(result){
|
||||||
|
if (result){
|
||||||
|
eliminar_cuenta_banco(row['id'])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -179,7 +179,7 @@ var emisor_cuentas_banco = [
|
||||||
name: 'emisor_cuenta_moneda', label: 'Moneda: ', required: true,
|
name: 'emisor_cuenta_moneda', label: 'Moneda: ', required: true,
|
||||||
options: []},
|
options: []},
|
||||||
{view: 'currency', type: 'text', id: 'emisor_cuenta_saldo_inicial',
|
{view: 'currency', type: 'text', id: 'emisor_cuenta_saldo_inicial',
|
||||||
name: 'emisor_cuenta_saldo_inicial', label: 'Saldo inicial',
|
name: 'emisor_cuenta_saldo_inicial', label: 'Saldo inicial: ',
|
||||||
required: true, invalidMessage: 'Captura un valor númerico',
|
required: true, invalidMessage: 'Captura un valor númerico',
|
||||||
inputAlign: 'right', value: ''},
|
inputAlign: 'right', value: ''},
|
||||||
]},
|
]},
|
||||||
|
@ -188,12 +188,16 @@ var emisor_cuentas_banco = [
|
||||||
name: 'emisor_cuenta_fecha', label: 'Fecha de apertura: ',
|
name: 'emisor_cuenta_fecha', label: 'Fecha de apertura: ',
|
||||||
required: true},
|
required: true},
|
||||||
{view: 'datepicker', id: 'emisor_fecha_saldo', format: '%d-%M-%Y',
|
{view: 'datepicker', id: 'emisor_fecha_saldo', format: '%d-%M-%Y',
|
||||||
name: 'emisor_fecha_saldo', label: 'Fecha este depósito: ',
|
name: 'emisor_fecha_saldo', label: 'Fecha saldo inicial: ',
|
||||||
required: true},
|
required: true},
|
||||||
]},
|
]},
|
||||||
{minHeight: 10},
|
{minHeight: 10},
|
||||||
{cols: [{}, {view: 'button', id: 'cmd_emisor_agregar_cuenta',
|
{cols: [{},
|
||||||
label: 'Agregar cuenta'}, {}]},
|
{view: 'button', id: 'cmd_emisor_agregar_cuenta',
|
||||||
|
label: 'Agregar cuenta'}, {},
|
||||||
|
{view: 'button', id: 'cmd_emisor_eliminar_cuenta',
|
||||||
|
label: 'Eliminar cuenta'},
|
||||||
|
{}]},
|
||||||
],
|
],
|
||||||
|
|
||||||
rules: {
|
rules: {
|
||||||
|
|
Loading…
Reference in New Issue