diff --git a/source/app/models/db.py b/source/app/models/db.py
index 37c3281..cdd4384 100644
--- a/source/app/models/db.py
+++ b/source/app/models/db.py
@@ -293,9 +293,13 @@ class StorageEngine(object):
return main.Socios.get_(values)
def partner(self, values):
+ if 'opt' in values:
+ return main.Socios.opt(values)
+
id = int(values.pop('id', '0'))
if id:
return main.Socios.actualizar(values, id)
+
return main.Socios.add(values)
def get_products(self, values):
diff --git a/source/app/models/main.py b/source/app/models/main.py
index 15cbad6..4eb9a91 100644
--- a/source/app/models/main.py
+++ b/source/app/models/main.py
@@ -2462,6 +2462,21 @@ class Socios(BaseModel):
q = Socios.delete().where(Socios.id==id)
return bool(q.execute())
+ def _reset_saldo(self, id):
+ obj = Socios.get(Socios.id==id)
+ obj.saldo_cliente = 0.0
+ obj.save()
+ return {'ok': True}
+
+ @classmethod
+ def opt(cls, args):
+ opt = args.get('opt', '')
+ if opt == 'reset':
+ return cls._reset_saldo(cls, args['id'])
+
+ return {'ok': False}
+
+
class Contactos(BaseModel):
socio = ForeignKeyField(Socios)
diff --git a/source/static/js/controller/partners.js b/source/static/js/controller/partners.js
index 7848c7e..2aa28ca 100644
--- a/source/static/js/controller/partners.js
+++ b/source/static/js/controller/partners.js
@@ -9,6 +9,7 @@ var partners_controllers = {
$$('cmd_save_partner').attachEvent('onItemClick', cmd_save_partner_click);
$$('cmd_cancel_partner').attachEvent('onItemClick', cmd_cancel_partner_click);
$$('cmd_cancel_contact').attachEvent('onItemClick', cmd_cancel_contact_click);
+ $$('cmd_partner_zero').attachEvent('onItemClick', cmd_partner_zero_click);
$$('codigo_postal').attachEvent('onKeyPress', postal_code_key_press);
$$('codigo_postal').attachEvent('onTimedKeyPress', postal_code_key_up);
$$('colonia').attachEvent('onFocus', colonia_on_focus)
@@ -18,6 +19,7 @@ var partners_controllers = {
$$("rfc").attachEvent( "onBlur", rfc_lost_focus)
$$('multi').attachEvent('onViewChange', multi_change)
$$('grid_partners').attachEvent('onItemDblClick', cmd_edit_partner_click)
+ $$('grid_partners').attachEvent('onSelectChange', grid_partners_on_select_change)
}
}
@@ -317,13 +319,63 @@ function is_client_change(new_value, old_value){
function is_supplier_change(new_value, old_value){
var value = Boolean(new_value)
if (value){
- $$("cuenta_proveedor").enable();
+ $$("cuenta_proveedor").enable()
} else {
- $$("cuenta_proveedor").disable();
+ $$("cuenta_proveedor").disable()
}
}
+function partner_reset_saldo(id){
+ webix.ajax().post('/partners', {opt: 'reset', id: id}, {
+ 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){
+ msg = 'Saldo actualizado correctamente'
+ $$('grid_partners').updateItem(id, {saldo_cliente: 0.0})
+ msg_ok(msg)
+ }
+ }
+ })
+}
+
+
+function cmd_partner_zero_click(){
+ var g = $$('grid_partners')
+ var row = g.getSelectedItem()
+ var saldo = row.saldo_cliente.to_float()
+
+ if(saldo){
+ msg = '¿Estas seguro de poner en cero el saldo del cliente?
'
+ msg += 'ESTA ACCIÓN NO SE PUEDE DESHACER'
+ webix.confirm({
+ title: 'Saldo Cliente',
+ ok: 'Si',
+ cancel: 'No',
+ type: 'confirm-error',
+ text: msg,
+ callback:function(result){
+ if (result){
+ partner_reset_saldo(row.id)
+ }
+ }
+ })
+ }else{
+ $$('cmd_partner_zero').disable()
+ }
+}
+
+
+function grid_partners_on_select_change(){
+ $$('cmd_partner_zero').enable()
+}
+
+
+
function rfc_lost_focus(prev_view){
//~ var form = this.getFormView()
//~ var values = form.getValues()
@@ -364,3 +416,5 @@ function multi_partners_change(prevID, nextID){
//~ webix.message(prevID)
//~ webix.message(nextID)
}
+
+
diff --git a/source/static/js/ui/partners.js b/source/static/js/ui/partners.js
index bc082c7..a2572fe 100644
--- a/source/static/js/ui/partners.js
+++ b/source/static/js/ui/partners.js
@@ -7,6 +7,9 @@ var toolbar_partners = [
autowidth: true, icon: 'user'},
{view: 'button', id: 'cmd_delete_partner', label: 'Eliminar', type: 'iconButton',
autowidth: true, icon: 'user-times'},
+ {},
+ {view: 'button', id: 'cmd_partner_zero', label: 'Saldo 0', type: 'iconButton',
+ autowidth: true, icon: 'power-off', disabled: true},
]