Ejemplo n.º 1
0
def ver_transacciones():
    prod_id = request.query.prod_id or '123'
    bodega_id = request.query.bodega_id or 1
    today = datetime.date.today()
    start, end = parse_start_end_date_with_default(
        request.query, today - datetime.timedelta(days=7), today)
    items = sorted(transactionapi.get_transactions(prod_id, start, end),
                   key=lambda i: i.fecha,
                   reverse=True)
    counts = {}
    count_expr = sessionmanager.session.query(NContenido).filter_by(
        prod_id=prod_id)
    if bodega_id is not None:
        bodega_id = int(bodega_id)
        if bodega_id == -1:
            bodega_id = None

    for x in count_expr:
        counts[x.bodega_id] = x.cant
    if bodega_id:
        items = filter(lambda i: i.bodega_id == bodega_id, items)
    for i in items:
        i.bodega_name = bodegaapi.get(i.bodega_id).nombre
        i.count = counts[i.bodega_id]
        counts[i.bodega_id] -= i.delta
    bodegas = bodegaapi.search()
    bodegas.append(Bodega(id=-1, nombre='Todas'))
    temp = jinja_env.get_template('ver_transacciones.html')
    return temp.render(items=items,
                       start=start,
                       end=end,
                       prod_id=prod_id,
                       bodegas=bodegas,
                       bodega_id=bodega_id)
Ejemplo n.º 2
0
def sale_by_product():
    today = datetime.datetime.now()
    start, end = parse_start_end_date_with_default(
        request.query, today - datetime.timedelta(days=7), today)
    alm_id = int(request.query.get('almacen_id', 1))
    almacen = storeapi.get(alm_id)

    prods_sale = defaultdict(Item)
    for inv, x in full_invoice_items(invapi, start, end):
        if inv.almacen_id != almacen.almacen_id:
            continue
        obj = prods_sale[x.prod.prod_id]
        obj.prod = x.prod
        if obj.cant:
            obj.cant += x.cant
        else:
            obj.cant = x.cant
    temp = jinja_env.get_template('ver_ventas_por_prod.html')
    values = sorted(prods_sale.values(),
                    key=lambda x: -x.cant * x.prod.precio1)
    for x in values:
        print x.serialize()
    return temp.render(items=values,
                       start=start,
                       end=end,
                       almacen=almacen.nombre,
                       almacenes=storeapi.search())
Ejemplo n.º 3
0
    def sale_by_product():
        today = datetime.datetime.now()
        start, end = parse_start_end_date_with_default(
            request.query, today - datetime.timedelta(days=7), today)
        alm_id = int(request.query.get('almacen_id', 1))
        almacen = dbapi.get(alm_id, Store)

        prods_sale = defaultdict(Item)
        for inv, x in full_invoice_items(invapi, start, end):
            if inv.almacen_id != almacen.almacen_id:
                continue
            obj = prods_sale[x.prod.prod_id]
            obj.prod = x.prod
            if obj.cant:
                obj.cant += x.cant
            else:
                obj.cant = x.cant
        temp = jinja_env.get_template('ver_ventas_por_prod.html')
        values = sorted(prods_sale.values(),
                        key=lambda x: -x.cant * x.prod.precio1)
        for x in values:
            print x.serialize()
        return temp.render(items=values, start=start, end=end,
                           almacen=almacen.nombre,
                           almacenes=dbapi.search(Store))
Ejemplo n.º 4
0
    def ver_transacciones():
        prod_id = request.query.prod_id or '123'
        bodega_id = request.query.bodega_id or 1
        today = datetime.date.today()
        start, end = parse_start_end_date_with_default(
            request.query, today - datetime.timedelta(days=7), today)
        items = sorted(transactionapi.get_transactions(prod_id, start, end),
                       key=lambda i: i.fecha, reverse=True)
        counts = {}
        count_expr = dbapi.db_session.query(NContenido).filter_by(
            prod_id=prod_id)
        if bodega_id is not None:
            bodega_id = int(bodega_id)
            if bodega_id == -1:
                bodega_id = None

        for x in count_expr:
            counts[x.bodega_id] = x.cant
        if bodega_id:
            items = filter(lambda i: i.bodega_id == bodega_id, items)
        for i in items:
            i.bodega_name = dbapi.get(i.bodega_id, Bodega).nombre
            i.count = counts[i.bodega_id]
            counts[i.bodega_id] -= i.delta
        bodegas = dbapi.search(Bodega)
        bodegas.append(Bodega(id=-1, nombre='Todas'))
        temp = jinja_env.get_template('ver_transacciones.html')
        return temp.render(items=items, start=start, end=end,
                           prod_id=prod_id, bodegas=bodegas, bodega_id=bodega_id)
Ejemplo n.º 5
0
    def ver_gastos():
        today = datetime.datetime.today()
        start, end = parse_start_end_date_with_default(
            request.query, today, today)

        all_spent = dbapi.db_session.query(NSpent).filter(
            NSpent.inputdate >= start,
            NSpent.inputdate <= end + datetime.timedelta(days=1))

        temp = jinja_env.get_template('invoice/ver_gastos.html')
        return temp.render(start=start, end=end, all_spent=all_spent)
Ejemplo n.º 6
0
 def list_checks():
     today = datetime.date.today()
     start, end = parse_start_end_date_with_default(
         request.query, today,
         today - datetime.timedelta(hours=12))
     result = paymentapi.list_checks(paymentdate=(start, end))
     temp = jinja_env.get_template('invoice/list_cheque.html')
     return temp.render(start=start, end=end, checks=result,
                        title='Cheques Guardados',
                        accounts=dbapi.search(DepositAccount),
                        thisurl=request.url)
Ejemplo n.º 7
0
    def ver_gastos():
        today = datetime.datetime.today()
        start, end = parse_start_end_date_with_default(request.query, today,
                                                       today)

        all_spent = dbapi.db_session.query(NSpent).filter(
            NSpent.inputdate >= start,
            NSpent.inputdate <= end + datetime.timedelta(days=1))

        temp = jinja_env.get_template('invoice/ver_gastos.html')
        return temp.render(start=start, end=end, all_spent=all_spent)
Ejemplo n.º 8
0
 def list_checks_deposit():
     today = datetime.date.today()
     start, end = parse_start_end_date_with_default(
         request.query, today, today)
     if start.isoweekday() == 1:
         start = start - datetime.timedelta(days=2)
     result = paymentapi.list_checks(checkdate=(start, end))
     temp = jinja_env.get_template('invoice/list_cheque.html')
     return temp.render(start=start, end=end, checks=result,
                        title='Cheques para depositar',
                        accounts=dbapi.search(Store),
                        thisurl=request.url)
Ejemplo n.º 9
0
 def list_checks():
     today = datetime.date.today()
     start, end = parse_start_end_date_with_default(
         request.query, today, today - datetime.timedelta(hours=12))
     result = paymentapi.list_checks(paymentdate=(start, end))
     temp = jinja_env.get_template('invoice/list_cheque.html')
     return temp.render(start=start,
                        end=end,
                        checks=result,
                        title='Cheques Guardados',
                        accounts=dbapi.search(DepositAccount),
                        thisurl=request.url)
Ejemplo n.º 10
0
 def list_checks_deposit():
     today = datetime.date.today()
     start, end = parse_start_end_date_with_default(request.query, today,
                                                    today)
     if start.isoweekday() == 1:
         start = start - datetime.timedelta(days=2)
     result = paymentapi.list_checks(checkdate=(start, end))
     temp = jinja_env.get_template('invoice/list_cheque.html')
     return temp.render(start=start,
                        end=end,
                        checks=result,
                        title='Cheques para depositar',
                        accounts=dbapi.search(Store),
                        thisurl=request.url)
Ejemplo n.º 11
0
    def ver_comentarios():
        today = datetime.datetime.now() + datetime.timedelta(days=1)
        start, end = parse_start_end_date_with_default(
            request.query, today - datetime.timedelta(days=7), today)
        comments = list(dbapi.db_session.query(NComment).filter(
            NComment.timestamp >= start, NComment.timestamp < end).order_by(
            desc(NComment.timestamp)))
        obj_template = {
            ObjType.CHECK: '/app/ver_cheque/{}',
            ObjType.INV: '/app/nota/{}',
            ObjType.TRANS: '/app/ingreso/{}',
        }
        for c in comments:
            c.url = obj_template[c.objtype].format(c.objid)

        temp = jinja_env.get_template('ver_comentarios.html')
        return temp.render(comentarios=comments, start=start, end=end)
Ejemplo n.º 12
0
def ver_comentarios():
    today = datetime.datetime.now() + datetime.timedelta(days=1)
    start, end = parse_start_end_date_with_default(
        request.query, today - datetime.timedelta(days=7), today)
    comments = list(
        sessionmanager.session.query(NComment).filter(
            NComment.timestamp >= start,
            NComment.timestamp < end).order_by(desc(NComment.timestamp)))
    obj_template = {
        ObjType.CHECK: '/app/ver_cheque/{}',
        ObjType.INV: '/app/nota/{}',
        ObjType.TRANS: '/app/ingreso/{}',
    }
    for c in comments:
        c.url = obj_template[c.objtype].format(c.objid)

    temp = jinja_env.get_template('ver_comentarios.html')
    return temp.render(comentarios=comments, start=start, end=end)
Ejemplo n.º 13
0
 def ver_cheques_por_titular():
     start, end = parse_start_end_date_with_default(request.query, None, None)
     titular = request.query.titular
     if titular:
         result = dbapi.db_session.query(NCheck).filter(
             NCheck.holder.contains(titular))
         if start is not None:
             result = result.filter(NCheck.checkdate >= start)
         if end is not None:
             result = result.filter(NCheck.checkdate <= end)
         result = map(Check.from_db_instance, result)
     else:
         result = []
     temp = jinja_env.get_template('invoice/list_cheque.html')
     return temp.render(start=start, end=end, checks=result,
                        title='Cheques para depositar',
                        accounts=dbapi.search(DepositAccount),
                        thisurl=request.url,
                        show_titular=True, titular=titular)
Ejemplo n.º 14
0
 def ver_cheques_por_titular():
     start, end = parse_start_end_date_with_default(request.query, None,
                                                    None)
     titular = request.query.titular
     if titular:
         result = dbapi.db_session.query(NCheck).filter(
             NCheck.holder.contains(titular))
         if start is not None:
             result = result.filter(NCheck.checkdate >= start)
         if end is not None:
             result = result.filter(NCheck.checkdate <= end)
         result = map(Check.from_db_instance, result)
     else:
         result = []
     temp = jinja_env.get_template('invoice/list_cheque.html')
     return temp.render(start=start,
                        end=end,
                        checks=result,
                        title='Cheques para depositar',
                        accounts=dbapi.search(DepositAccount),
                        thisurl=request.url,
                        show_titular=True,
                        titular=titular)