Fix - Guardar condición de pago en socios

This commit is contained in:
Mauricio Baeza 2017-11-02 23:24:31 -06:00
parent 727de2c32f
commit dca5a54668
8 changed files with 73 additions and 8 deletions

View File

@ -860,9 +860,12 @@ def _comprobante(values, options):
'T': 'traslado',
}
data['tipodecomprobante'] = tipos.get(data['tipodecomprobante'])
data['lugarexpedicion'] = 'C.P. de Expedición: {}'.format(data['lugarexpedicion'])
data['lugarexpedicion'] = \
'C.P. de Expedición: {}'.format(data['lugarexpedicion'])
data['metododepago'] = options['metododepago']
data['formadepago'] = options['formadepago']
data['condicionesdepago'] = \
'Condiciones de pago: {}'.format(data['condicionesdepago'])
data['moneda'] = options['moneda']
data['tipocambio'] = 'Tipo de Cambio: $ {:0.2f}'.format(

View File

@ -50,6 +50,9 @@ class StorageEngine(object):
def _get_formapago(self, values):
return main.SATFormaPago.get_activos(values)
def _get_condicionespago(self, values):
return main.CondicionesPago.get_()
def _get_categorias(self, values):
return main.Categorias.get_all()

View File

@ -477,6 +477,22 @@ class CondicionesPago(BaseModel):
class Meta:
order_by = ('condicion',)
def __str__(self):
return self.condicion
@classmethod
def get_(cls):
q = CondicionesPago.select(CondicionesPago.condicion).tuples()
data = [r[0] for r in q]
return data
@classmethod
def get_or(cls, value):
if value is None:
return value
obj, _ = CondicionesPago.get_or_create(condicion=value)
return obj
class SATUnidades(BaseModel):
key = TextField(unique=True, index=True)
@ -703,6 +719,9 @@ class Socios(BaseModel):
fields['nombre'] = util.spaces(fields['nombre'])
fields['slug'] = util.to_slug(fields['nombre'])
fields['uso_cfdi'] = fields.pop('uso_cfdi_socio', None)
fields['condicion_pago'] = \
CondicionesPago.get_or(fields.get('condicion_pago', None))
fb = ('dias_habiles', 'es_activo', 'es_cliente',
'es_proveedor', 'es_ong')
for name in fb:
@ -715,6 +734,9 @@ class Socios(BaseModel):
id = int(values['id'])
row = Socios.select().where(Socios.id==id).dicts()[0]
row['uso_cfdi_socio'] = row.pop('uso_cfdi')
if not row['condicion_pago'] is None:
row['condicion_pago'] = \
str(CondicionesPago.get(id=row['condicion_pago']))
return row
rows = Socios.select(Socios.id, Socios.rfc, Socios.nombre).dicts()
@ -778,6 +800,7 @@ class Socios(BaseModel):
def actualizar(cls, values, id):
fields = cls._clean(cls, values)
try:
print (fields)
q = Socios.update(**fields).where(Socios.id==id)
q.execute()
except IntegrityError:
@ -1368,7 +1391,7 @@ class Facturas(BaseModel):
emisor = Emisor.select()[0]
values['folio'] = cls._get_folio(cls, values['serie'])
values['tipo_cambio'] = float(values['tipo_cambio'])
values['lugar_expedicion'] = emisor.codigo_postal
values['lugar_expedicion'] = emisor.cp_expedicion or emisor.codigo_postal
with database_proxy.atomic() as txn:
obj = Facturas.create(**values)

View File

@ -3,6 +3,19 @@ var grid = null
var msg = ''
function get_condicion_pago(){
webix.ajax().get('/values/condicionespago', {
error: function(text, data, xhr) {
},
success: function(text, data, xhr) {
var values = data.json();
$$('txt_condicion_pago').define('suggest', values)
$$('txt_condicion_pago').refresh()
}
})
}
function get_series(){
webix.ajax().get('/values/series', function(text, data){
var values = data.json()
@ -91,6 +104,7 @@ function cmd_new_invoice_click(id, e, node){
default_config()
form.adjust()
form.setValues({id: 0, id_partner: 0, lbl_client: 'Ninguno'})
get_condicion_pago()
grid.clearAll()
grid_totals.clearAll()
grid_totals.add({id: 1, concepto: 'SubTotal', importe: 0})
@ -830,3 +844,10 @@ function cmd_prefactura_click(){
}
show('PreFactura')
}
function lst_metodo_pago_change(nv, ov){
if(nv == 'PPD'){
$$('lst_forma_pago').setValue('99')
}
}

View File

@ -51,6 +51,7 @@ var controllers = {
$$('filter_month').attachEvent('onChange', filter_month_change)
$$('filter_dates').attachEvent('onChange', filter_dates_change)
$$('cmd_prefactura').attachEvent('onItemClick', cmd_prefactura_click)
$$('lst_metodo_pago').attachEvent('onChange', lst_metodo_pago_change)
}
}

View File

@ -1,9 +1,23 @@
function get_condicion_pago(){
webix.ajax().get('/values/condicionespago', {
error: function(text, data, xhr) {
},
success: function(text, data, xhr) {
var values = data.json();
$$('condicion_pago').define('suggest', values)
$$('condicion_pago').refresh()
}
})
}
function cmd_new_partner_click(id, e, node){
$$('form_partner').setValues({
id: 0, pais: 'México', tipo_persona: 1, es_activo: true})
$$('forma_pago').getList().load('/values/formapago')
get_condicion_pago()
$$('grid_partners').clearSelection()
$$('multi_partners').setValue('partners_new')
$$('tab_partner').setValue('Datos Fiscales')
@ -29,6 +43,7 @@ function cmd_edit_partner_click(id, e, node){
webix.message({type:'error', text: msg})
return
}
get_condicion_pago()
webix.ajax().get("/partners", {id: row['id']}, {
error: function(text, data, xhr) {

View File

@ -227,15 +227,14 @@ var opt_metodo_pago = [
var body_opciones = {rows: [
{view: 'richselect', id: 'lst_metodo_pago', label: 'Método de Pago',
labelPosition: 'top', options: opt_metodo_pago, value: 'PUE',
required: true},
{view: 'richselect', id: 'lst_forma_pago', name: 'forma_pago',
label: 'Forma de Pago', labelPosition: 'top', required: true,
options: []},
{view: 'richselect', id: 'lst_metodo_pago', label: 'Método de Pago',
labelPosition: 'top', options: opt_metodo_pago, readonly: true,
value: 'PUE',
required: true},
{view: 'text', id: 'txt_condicion_pago', label: 'Condiciones de Pago',
labelPosition: 'top'},
labelPosition: 'top', suggest: []},
]}

View File

@ -76,7 +76,7 @@ var controls_fiscales = [
label: 'Forma de Pago: ', required: true, options: [],
invalidMessage: 'La Forma de pago es requerida'},
{view: 'text', id: 'condicion_pago', name: 'condicion_pago',
label: 'Condiciones de Pago: '},
label: 'Condiciones de Pago: ', suggest: []},
]},
{cols: [
{view: 'counter', id: 'dias_pago', name: 'dias_pago',