Пример #1
0
    def post_save_spent():
        uid = request.forms.get('uid')
        spent = None
        create = True
        if uid is not None:
            spent = dbapi.db_session.query(NSpent).filter_by(uid=uid).first()
            create = False
            if spent is None:
                redirect('/app/guardar_gastos/{}'.format(uid))
        if spent is None:
            spent = NSpent()
        for x in ('seller', 'seller_ruc', 'invnumber',
                  'invdate', 'desc', 'total', 'tax', 'retension',
                  'paid_from_cashier', 'inputdate'):
            setattr(spent, x, request.forms.get(x))
        spent.total = int(Decimal(spent.total) * 100)
        spent.tax = int(Decimal(spent.tax) * 100)
        spent.retension = int(Decimal(spent.retension) * 100)
        spent.paid_from_cashier = int(Decimal(spent.paid_from_cashier) * 100)

        spent.invdate = parse_iso(spent.invdate)
        spent.inputdate = parse_iso(spent.inputdate)

        if create:
            dbapi.db_session.add(spent)
        dbapi.db_session.commit()
        return save_spent('Gasto Guardado')
Пример #2
0
    def post_save_spent():
        uid = request.forms.get('uid')
        spent = None
        create = True
        if uid is not None:
            spent = dbapi.db_session.query(NSpent).filter_by(uid=uid).first()
            create = False
            if spent is None:
                redirect('/app/guardar_gastos/{}'.format(uid))
        if spent is None:
            spent = NSpent()
        for x in ('seller', 'seller_ruc', 'invnumber', 'invdate', 'desc',
                  'total', 'tax', 'retension', 'paid_from_cashier',
                  'inputdate'):
            setattr(spent, x, request.forms.get(x))
        spent.total = int(Decimal(spent.total) * 100)
        spent.tax = int(Decimal(spent.tax) * 100)
        spent.retension = int(Decimal(spent.retension) * 100)
        spent.paid_from_cashier = int(Decimal(spent.paid_from_cashier) * 100)

        spent.invdate = parse_iso(spent.invdate)
        spent.inputdate = parse_iso(spent.inputdate)

        if create:
            dbapi.db_session.add(spent)
        dbapi.db_session.commit()
        return save_spent('Gasto Guardado')
Пример #3
0
 def crear_entrega_de_cuenta():
     date = request.query.get('fecha')
     if date:
         date = parse_iso(date).date()
     else:
         date = datetime.date.today()
     report = generate_daily_report(dbapi, date)
     total_spent = sum((x.paid_from_cashier for x in report.spent))
     checkimgs = {check.payment_id: os.path.split(check.imgcheck)[1]
                  for check in report.checks if check.imgcheck}
     existing = dbapi.get(date, AccountStat)
     all_img = list(imgserver.getimg(objtype='entrega_cuenta', objid=date.isoformat()))
     temp = jinja_env.get_template('invoice/crear_entregar_cuenta_form.html')
     total_cash = sum(report.cash.values()) + report.other_cash
     return temp.render(
         cash=report.cash, others=report.other_by_client,
         total_cash=total_cash,
         deleted=report.deleted,
         date=date.isoformat(),
         pagos=report.payments,
         all_spent=report.spent,
         total_spent=total_spent,
         retension=report.retension,
         other_cash=report.other_cash,
         imgs=all_img,
         checkimgs=checkimgs,
         existing=existing)
Пример #4
0
    def post_crear_entrega_de_cuenta():
        cash = request.forms.get('cash', 0)
        gastos = request.forms.get('gastos', 0)
        deposito = request.forms.get('deposito', 0)
        turned_cash = request.forms.get('valor', 0)
        diff = request.forms.get('diff', 0)
        date = request.forms.get('date')

        cash = get_cents_with_default(cash)
        gastos = get_cents_with_default(gastos)
        deposito = get_cents_with_default(deposito)
        turned_cash = get_cents_with_default(turned_cash)
        diff = get_cents_with_default(diff)
        date = parse_iso(date).date()

        userid = get_user(request)['username']
        if request.forms.get('submit') == 'Crear':
            stat = AccountStat(
                date=date,
                total_spend=gastos,
                turned_cash=turned_cash,
                deposit=deposito,
                created_by=userid
            )
            dbapi.create(stat)
            dbapi.db_session.flush()
        else:
            dbapi.update(AccountStat(date=date),
                         {'revised_by': userid, 'turned_cash': turned_cash,
                          'deposit': deposito, 'diff': diff})

        redirect('/app/crear_entrega_de_cuenta?fecha={}'.format(date.isoformat()))
Пример #5
0
 def crear_entrega_de_cuenta():
     date = request.query.get('fecha')
     if date:
         date = parse_iso(date).date()
     else:
         date = datetime.date.today()
     report = generate_daily_report(dbapi, date)
     total_spent = sum((x.paid_from_cashier for x in report.spent))
     checkimgs = {
         check.payment_id: os.path.split(check.imgcheck)[1]
         for check in report.checks if check.imgcheck
     }
     existing = dbapi.get(date, AccountStat)
     all_img = list(
         imgserver.getimg(objtype='entrega_cuenta', objid=date.isoformat()))
     temp = jinja_env.get_template(
         'invoice/crear_entregar_cuenta_form.html')
     total_cash = sum(report.cash.values()) + report.other_cash
     return temp.render(cash=report.cash,
                        others=report.other_by_client,
                        total_cash=total_cash,
                        deleted=report.deleted,
                        date=date.isoformat(),
                        pagos=report.payments,
                        all_spent=report.spent,
                        total_spent=total_spent,
                        retension=report.retension,
                        other_cash=report.other_cash,
                        imgs=all_img,
                        checkimgs=checkimgs,
                        existing=existing)
Пример #6
0
    def post_crear_entrega_de_cuenta():
        cash = request.forms.get('cash', 0)
        gastos = request.forms.get('gastos', 0)
        deposito = request.forms.get('deposito', 0)
        turned_cash = request.forms.get('valor', 0)
        diff = request.forms.get('diff', 0)
        date = request.forms.get('date')

        cash = get_cents_with_default(cash)
        gastos = get_cents_with_default(gastos)
        deposito = get_cents_with_default(deposito)
        turned_cash = get_cents_with_default(turned_cash)
        diff = get_cents_with_default(diff)
        date = parse_iso(date).date()

        userid = get_user(request)['username']
        if request.forms.get('submit') == 'Crear':
            stat = AccountStat(date=date,
                               total_spend=gastos,
                               turned_cash=turned_cash,
                               deposit=deposito,
                               created_by=userid)
            dbapi.create(stat)
            dbapi.db_session.flush()
        else:
            dbapi.update(
                AccountStat(date=date), {
                    'revised_by': userid,
                    'turned_cash': turned_cash,
                    'deposit': deposito,
                    'diff': diff
                })
            now = datetime.datetime.now()
            todo1 = Todo(objtype=ObjType.ACCOUNT,
                         objid=date,
                         status='PENDING',
                         msg='Papeleta de deposito de {}: ${}'.format(
                             date,
                             Decimal(deposito) / 100),
                         creation_date=now,
                         due_date=now)
            todo2 = Todo(objtype=ObjType.ACCOUNT,
                         objid=date,
                         status='PENDING',
                         msg='Papeleta de deposito de {}: ${}'.format(
                             date,
                             Decimal(turned_cash) / 100),
                         creation_date=now,
                         due_date=now)
            dbapi.create(todo1)
            dbapi.create(todo2)

        redirect('/app/crear_entrega_de_cuenta?fecha={}'.format(
            date.isoformat()))
Пример #7
0
 def postregar_cheque():
     checkid = request.forms.checkid
     new_date = parse_iso(request.forms.new_date).date()
     session = dbapi.db_session
     check = session.query(NCheck).filter_by(uid=checkid).first()
     comment = NComment(
         timestamp=datetime.datetime.now(),
         user_id=get_user(request)['username'],
         comment='Cheque postponer desde {} hasta {}'.format(
             check.checkdate.isoformat(), new_date.isoformat()),
         objtype=ObjType.CHECK,
         objid=str(checkid),
     )
     session.add(comment)
     check.checkdate = new_date
     session.flush()
     redirect('/app/ver_cheque/{}'.format(checkid))
Пример #8
0
 def postregar_cheque():
     checkid = request.forms.checkid
     new_date = parse_iso(request.forms.new_date).date()
     session = dbapi.db_session
     check = session.query(NCheck).filter_by(uid=checkid).first()
     comment = NComment(
         timestamp=datetime.datetime.now(),
         user_id=get_user(request)['username'],
         comment='Cheque postponer desde {} hasta {}'.format(
             check.checkdate.isoformat(), new_date.isoformat()),
         objtype=ObjType.CHECK,
         objid=str(checkid),
     )
     session.add(comment)
     check.checkdate = new_date
     session.flush()
     redirect('/app/ver_cheque/{}'.format(checkid))
Пример #9
0
    def post_crear_entrega_de_cuenta():
        cash = request.forms.get('cash', 0)
        gastos = request.forms.get('gastos', 0)
        deposito = request.forms.get('deposito', 0)
        turned_cash = request.forms.get('valor', 0)
        diff = request.forms.get('diff', 0)
        date = request.forms.get('date')

        cash = get_cents_with_default(cash)
        gastos = get_cents_with_default(gastos)
        deposito = get_cents_with_default(deposito)
        turned_cash = get_cents_with_default(turned_cash)
        diff = get_cents_with_default(diff)
        date = parse_iso(date).date()

        userid = get_user(request)['username']
        if request.forms.get('submit') == 'Crear':
            stat = AccountStat(
                date=date,
                total_spend=gastos,
                turned_cash=turned_cash,
                deposit=deposito,
                created_by=userid
            )
            dbapi.create(stat)
            dbapi.db_session.flush()
        else:
            dbapi.update(AccountStat(date=date),
                         {'revised_by': userid, 'turned_cash': turned_cash,
                          'deposit': deposito, 'diff': diff})
            now = datetime.datetime.now()
            todo1 = Todo(objtype=ObjType.ACCOUNT, objid=date, status='PENDING',
                         msg='Papeleta de deposito de {}: ${}'.format(date, Decimal(deposito) / 100),
                         creation_date=now, due_date=now)
            todo2 = Todo(objtype=ObjType.ACCOUNT, objid=date, status='PENDING',
                         msg='Papeleta de deposito de {}: ${}'.format(date, Decimal(turned_cash) / 100),
                         creation_date=now, due_date=now)
            dbapi.create(todo1)
            dbapi.create(todo2)

        redirect('/app/crear_entrega_de_cuenta?fecha={}'.format(date.isoformat()))
Пример #10
0
def transmetadata_from_form(form):
    meta = TransMetadata()
    meta.dest = form.get('dest')
    meta.origin = form.get('origin')
    fecha = form.get('fecha')
    if fecha:
        fecha = parse_iso(fecha)
        meta.timestamp = datetime.datetime.combine(
            fecha.date(), datetime.datetime.now().time())
    try:
        meta.dest = int(meta.dest)
        meta.origin = int(meta.origin)
    except ValueError:
        pass
    meta.meta_type = form.get('meta_type')
    meta.trans_type = form.get('trans_type')
    if meta.trans_type == TransType.INGRESS:
        meta.origin = None  # ingress does not have origin
    if meta.trans_type in (TransType.EXTERNAL or TransType.EGRESS):
        meta.dest = None  # dest for external resides in other server
    if meta.timestamp is None:
        meta.timestamp = datetime.datetime.now()
    return meta
Пример #11
0
def transmetadata_from_form(form):
    meta = TransMetadata()
    meta.dest = form.get('dest')
    meta.origin = form.get('origin')
    fecha = form.get('fecha')
    if fecha:
        fecha = parse_iso(fecha)
        meta.timestamp = datetime.datetime.combine(
            fecha.date(),
            datetime.datetime.now().time())
    try:
        meta.dest = int(meta.dest)
        meta.origin = int(meta.origin)
    except ValueError:
        pass
    meta.meta_type = form.get('meta_type')
    meta.trans_type = form.get('trans_type')
    if meta.trans_type == TransType.INGRESS:
        meta.origin = None  # ingress does not have origin
    if meta.trans_type in (TransType.EXTERNAL or TransType.EGRESS):
        meta.dest = None  # dest for external resides in other server
    if meta.timestamp is None:
        meta.timestamp = datetime.datetime.now()
    return meta
Пример #12
0
 def get_all_gastos():
     day = parse_iso(request.query.get('date'))
     result = dbapi.search(Spent, inputdate=day)
     return json_dumps(result)
Пример #13
0
 def save_check():
     check = parse_payment_from_request(
         request.forms, Check, '/app/guardar_cheque')
     check.checkdate = parse_iso(check.checkdate)
     paymentapi.save_check(check)
     redirect('/app/guardar_cheque?msg=Cheque+Guardado')
Пример #14
0
 def get_all_gastos():
     day = parse_iso(request.query.get('date'))
     result = dbapi.search(Spent, inputdate=day)
     return json_dumps(result)
Пример #15
0
 def save_check():
     check = parse_payment_from_request(request.forms, Check,
                                        '/app/guardar_cheque')
     check.checkdate = parse_iso(check.checkdate)
     paymentapi.save_check(check)
     redirect('/app/guardar_cheque?msg=Cheque+Guardado')