Esempio n. 1
0
 def crear_cliente():
     cliente = Client.deserialize(request.forms)
     cliente.cliente_desde = datetime.date.today()
     try:
         dbapi.create(cliente)
         dbapi.db_session.commit()
     except ItemAlreadyExists:
         return crear_cliente_form('Cliente con codigo {} ya existe'.format(cliente.codigo))
     return crear_cliente_form('Cliente {} {} creado'.format(cliente.apellidos, cliente.nombres))
Esempio n. 2
0
 def deserialize(cls, the_dict):
     x = cls().merge_from(the_dict)
     if x.timestamp and not isinstance(x.timestamp, datetime.datetime):
         x.timestamp = parse_iso_date(x.timestamp)
     if 'client' in the_dict:
         client = Client.deserialize(the_dict['client'])
         x.client = client
     else:
         x.client = None
     return x
Esempio n. 3
0
 def deserialize(cls, the_dict):
     x = cls().merge_from(the_dict)
     if x.timestamp and not isinstance(x.timestamp, datetime.datetime):
         x.timestamp = parse_iso_datetime(x.timestamp)
     if 'client' in the_dict:
         client = Client.deserialize(the_dict['client'])
         x.client = client
     else:
         x.client = None
     return x
Esempio n. 4
0
 def crear_cliente():
     cliente = Client.deserialize(request.forms)
     cliente.cliente_desde = datetime.date.today()
     try:
         dbapi.create(cliente)
         dbapi.db_session.commit()
     except ItemAlreadyExists:
         return crear_cliente_form('Cliente con codigo {} ya existe'.format(
             cliente.codigo))
     return crear_cliente_form('Cliente {} {} creado'.format(
         cliente.apellidos, cliente.nombres))
Esempio n. 5
0
    def test_inv(self):
        with self.sessionmanager:
            init_prod_cant = self.prod_api.get_producto('1', bodega_id=1).cantidad

            client = Client()
            client.codigo = '123'

            t = InvMetadata(
                client=client,
                codigo='123',
                user='******',
                total=123,
                subtotal=123,
                tax=123,
                discount=0,
                bodega_id=1,
                almacen_id=1
            )
            inv = Invoice()
            inv.meta = t
            inv.items = [
                Item(self.prod_api.get_producto('1'), 5)
            ]
            invoice = self.inv_api.save(inv)
            self.assertEquals(self.inv_api.get_doc(invoice.meta.uid).meta.codigo, '123')

            x = self.inv_api.commit(invoice)
            self.assertEquals(Status.COMITTED, x.meta.status)
            new_inv = self.prod_api.get_producto('1', bodega_id=1).cantidad
            self.assertEquals(-5, new_inv - init_prod_cant)

            x = self.inv_api.delete(invoice)
            self.assertEquals(Status.DELETED, x.meta.status)
            new_inv = self.prod_api.get_producto('1', bodega_id=1).cantidad
            self.assertEquals(0, new_inv - init_prod_cant)

            today = datetime.datetime.now()
            yesterday = today - datetime.timedelta(days=1)
            searched = list(self.inv_api.search_metadata_by_date_range(start=yesterday, end=today))
            print searched
            self.assertEquals(1, len(searched))
Esempio n. 6
0
 def test_create(self):
     c = Client(codigo='345',
                nombres='nombre1 nombre2',
                apellidos='apellido1 apellido2',
                direccion='direccion',
                telefono='12345567',
                ciudad='ciudad',
                tipo=1,
                cliente_desde=datetime.date.today())
     with self.sessionmanager:
         self.dbapi.create(c)
     with self.sessionmanager:
         x = list(self.dbapi.search(Client, **{'apellidos-prefix': 'a'}))
         for i in x:
             print i.serialize()
         self.assertEquals(2, len(x))
Esempio n. 7
0
def make_one_inv(day, codigo, items):
    invmeta = InvMetadata()
    invmeta.codigo = codigo
    invmeta.timestamp = day
    invmeta.status = Status.NEW
    invmeta.bodega_id = 1
    invmeta.almacen_ruc = '0992584092001'
    invmeta.almacen_id = 3
    invmeta.payment_format = 'EFECTIVO'
    invmeta.subtotal = sum((int(i.cant * i.prod.precio1) for i in items))
    invmeta.tax = int(invmeta.subtotal * 0.12)
    invmeta.tax_percent = int(invmeta.subtotal * 0.12)
    invmeta.total = invmeta.subtotal + invmeta.tax
    invmeta.discount = 0

    invmeta.client = Client()
    invmeta.client.name = 'QUINAL SA'
    invmeta.client.codigo = '0992337168001'

    inv = Invoice(invmeta, items)
    return inv
Esempio n. 8
0
 def modificar_cliente():
     clientid = request.forms.codigo
     client = Client(codigo=clientid)
     dbapi.update(client, request.forms)
     redirect('/app/cliente/{}'.format(clientid))
Esempio n. 9
0
 def from_db_instance(cls, db_instance):
     this = super(InvMetadata, cls).from_db_instance(db_instance)
     this.client = Client()
     this.client.codigo = db_instance.client_id
     return this