Example #1
0
    def save(self):
        try:
            data = self.form.validate(self.request)
        except formish.FormError:
            return False

        session = meta.Session()
        currencies=dict(session.query(Currency.code, Currency.id)\
                .filter(Currency.until==None).all())

        self.context.payment_term = data["payment_term"]
        self.context.note = data["note"]

        current = dict([(entry.id, entry) for entry in self.context.entries])
        for (position, entry) in enumerate(data["entries"]):
            if entry["id"]:
                c = current.get(entry["id"])
                if c is None:
                    continue
                del current[c.id]
            else:
                c = InvoiceEntry(invoice=self.context)
                session.add(c)

            c.position = position
            c.currency_id = currencies[entry["currency_code"]]
            c.unit_price = entry["unit_price"]
            c.units = entry["units"]
            c.description = entry["description"]
            c.vat = entry["vat"]

        for entry in current.values():
            session.delete(entry)

        return True
Example #2
0
    def save(self):
        try:
            data = self.form.validate(self.request)
        except formish.FormError:
            return False

        del data["terms"]
        account = Account(**data)
        session = meta.Session()
        session.add(account)
        session.flush()
        return account
Example #3
0
def View(context, request):
    session = meta.Session()
    invoices=session.query(Invoice)\
            .filter(Invoice.customer==context)\
            .order_by(Invoice.sent.desc())\
            .options(orm.joinedload(Invoice.entries))
    summary = summaryInvoices(invoices)

    return render("customer_view.pt",
                  request,
                  context,
                  section="customers",
                  edit_url=route_url("customer_edit", request, id=context.id),
                  **summary)
Example #4
0
def Overview(request):
    user = currentUser(request)
    session = meta.Session()

    invoices=session.query(Invoice)\
            .select_from(orm.join(Invoice, Customer))\
            .filter(Customer.account==user)\
            .order_by(Invoice.sent.desc())\
            .options(orm.joinedload(Invoice.entries))

    summary = summaryInvoices(invoices)

    return render("invoice_overview.pt",
                  request,
                  section="invoices",
                  **summary)
Example #5
0
def Overview(request):
    user = currentUser(request)
    session = meta.Session()
    customers=session.query(Customer.id, Customer.title, Customer.invoice_code)\
            .filter(Customer.account==user)\
            .order_by(Customer.title)
    customers = [
        dict(id=row.id,
             title=row.title,
             invoice_code=row.invoice_code,
             url=route_url("customer_view", request, id=row.id))
        for row in customers
    ]
    return render("customer_overview.pt",
                  request,
                  section="customers",
                  customers=customers)
Example #6
0
def populateDatabase():
    from checking.model.account import Account
    session=meta.Session()
    admin=session.query(Account).filter(Account.login=="admin").first()
    if admin is None:
        log.info("Adding initial admin user")
        admin=Account(login="******", password="******",
                firstname=u"Admin", surname=u"Admin",
                email="*****@*****.**",
		company=u"Simplon B.V.")
        session.add(admin)

    from checking.model.currency import Currency
    euro=session.query(Currency).filter(Currency.code=="EUR").first()
    if euro is None:
        log.info("Adding EUR currency")
        euro=Currency(code="EUR", rate=1)
        session.add(euro)