Ejemplo n.º 1
0
def copy_recurring():
    today = datetime.date.today()
    session = DBSession()
    query = session.query(Invoice)
    query = query.filter(Invoice.recurring_date <= today)
    query = query.filter(
        or_(Invoice.recurring_stop == None, Invoice.recurring_stop > today))
    for invoice in query.all():
        # Clone invoice and invoice items
        invoice_clone = Invoice()
        invoice_clone.company = invoice.company
        invoice_clone.contact = invoice.contact
        invoice_clone.project_description = invoice.project_description
        invoice_clone.currency = invoice.currency
        invoice_clone.tax = invoice.tax
        session.add(invoice_clone)
        for item in invoice.items:
            item_clone = InvoiceItem()
            item_clone.item_number = item.item_number
            item_clone.amount = item.amount
            item_clone.hours = item.hours
            item_clone.days = item.days
            item_clone.service_description = item.service_description
            item_clone.service_title = item.service_title
            item_clone.invoice = invoice_clone
            session.add(item_clone)

        # Get new invoice number
        invoice_clone.invoice_number = next_invoice_number()

        # Adjust dates on cloned invoice
        invoice_clone.date = invoice.recurring_date
        invoice_clone.due_date = invoice_clone.date + (invoice.due_date -
                                                       invoice.date)
        invoice_clone.recurring_date = invoice_clone.date + (
            invoice.recurring_date - invoice.date)
        invoice_clone.recurring_stop = invoice.recurring_stop
        # Old invoice is not recurring anymore
        invoice.recurring_date = None

    transaction.commit()
Ejemplo n.º 2
0
def copy_recurring():
    today = datetime.date.today()
    session = DBSession()
    query = session.query(Invoice)
    query = query.filter(Invoice.recurring_date <= today)
    query = query.filter(or_(Invoice.recurring_stop == None, Invoice.recurring_stop > today))
    for invoice in query.all():
        # Clone invoice and invoice items
        invoice_clone = Invoice()
        invoice_clone.company = invoice.company
        invoice_clone.contact = invoice.contact
        invoice_clone.project_description = invoice.project_description
        invoice_clone.currency = invoice.currency
        invoice_clone.tax = invoice.tax
        session.add(invoice_clone)
        for item in invoice.items:
            item_clone = InvoiceItem()
            item_clone.item_number = item.item_number
            item_clone.amount = item.amount
            item_clone.hours = item.hours
            item_clone.days = item.days
            item_clone.service_description = item.service_description
            item_clone.service_title = item.service_title
            item_clone.invoice = invoice_clone
            session.add(item_clone)

        # Get new invoice number
        invoice_clone.invoice_number = next_invoice_number()

        # Adjust dates on cloned invoice
        invoice_clone.date = invoice.recurring_date
        invoice_clone.due_date = invoice_clone.date + (invoice.due_date - invoice.date)
        invoice_clone.recurring_date = invoice_clone.date + (invoice.recurring_date - invoice.date)
        invoice_clone.recurring_stop = invoice.recurring_stop
        # Old invoice is not recurring anymore
        invoice.recurring_date = None

    transaction.commit()
Ejemplo n.º 3
0
 def _add_invoice(self):
     from seantisinvoice.models import Invoice
     from seantisinvoice.models import InvoiceItem
     from seantisinvoice.models import DBSession
     session = DBSession()
     customer = self._add_customer()
     invoice = Invoice()
     invoice.project_description = u'Project'
     invoice.date = datetime.date.today()
     invoice.due_date = invoice.date + datetime.timedelta(days=30)
     invoice.currency = u'CHF'
     invoice.contact = customer.contacts[0]
     session.add(invoice)
     # Add invoice item to the invoice
     item = InvoiceItem()
     item.item_number = 0
     item.service_title = u'Testing'
     item.service_description = u'A lot of work!'
     item.amount = 1000.0
     item.invoice = invoice
     session.add(item)
     session.flush()
     return invoice
Ejemplo n.º 4
0
    def _add_invoice(self):
        from seantisinvoice.models import Invoice
        from seantisinvoice.models import InvoiceItem
        from seantisinvoice.models import DBSession

        session = DBSession()
        customer = self._add_customer()
        invoice = Invoice()
        invoice.project_description = u"Project"
        invoice.date = datetime.date.today()
        invoice.due_date = invoice.date + datetime.timedelta(days=30)
        invoice.currency = u"CHF"
        invoice.contact = customer.contacts[0]
        session.add(invoice)
        # Add invoice item to the invoice
        item = InvoiceItem()
        item.item_number = 0
        item.service_title = u"Testing"
        item.service_description = u"A lot of work!"
        item.amount = 1000.0
        item.invoice = invoice
        session.add(item)
        session.flush()
        return invoice