Beispiel #1
0
 def test_interfaces(self):
     self.assertTrue(verifyObject(ITask, Task()))
     self.assertTrue(verifyObject(IValidatedTask, Estimation()))
     self.assertTrue(verifyObject(IPaidTask, Invoice()))
     self.assertTrue(verifyObject(IPaidTask, CancelInvoice()))
     self.assertTrue(verifyObject(IInvoice, Invoice()))
     self.assertTrue(verifyObject(IInvoice, CancelInvoice()))
Beispiel #2
0
def invoice():
    inv = Invoice(**INVOICE)
    for line in LINES:
        inv.lines.append(InvoiceLine(**line))
    for discount in DISCOUNTS:
        inv.discounts.append(DiscountLine(**discount))
    return inv
Beispiel #3
0
    def submit_success(self, appstruct):
        log.debug("Submitting invoice add")
        appstruct = get_invoice_dbdatas(appstruct)

        customer_id = appstruct["task"]['customer_id']
        customer = Customer.get(customer_id)

        invoice = Invoice(
            self.context.company,
            customer,
            self.context,
            self.context.phases[0],
            self.request.user,
        )
        invoice = merge_session_with_post(
            invoice,
            appstruct["task"]
        )
        try:
            invoice = self.set_task_status(invoice)
            # Line handling
            invoice = add_lines_to_invoice(invoice, appstruct)
            self.dbsession.add(invoice)
            self.dbsession.flush()
            self.session.flash(u"La facture a bien été ajoutée.")
        except Forbidden, err:
            self.request.session.flash(err.message, queue='error')
Beispiel #4
0
def test_set_name():
    invoice = Invoice()
    invoice.set_sequence_number(5)
    invoice.set_name()
    assert invoice.name == u"Facture 5"
    invoice.name = ""
    invoice.set_name(sold=True)
    assert invoice.name == u"Facture de solde"
    invoice.name = ""
    invoice.set_name(deposit=True)
    assert invoice.name == u"Facture d'acompte 5"
Beispiel #5
0
def invoice(project, user, customer, company, phase):
    task = Invoice(
        company,
        customer,
        project,
        phase,
        user,
    )
    for key, value in TASK.items():
        setattr(task, key, value)
    return task
Beispiel #6
0
def invoice(project, user, customer, company, phase):
    invoice = Invoice(
        company,
        customer,
        project,
        phase,
        user,
    )
    invoice.line_groups = [TaskLineGroup(lines=[TaskLine(**LINE)])]
    for i in PAYMENTS:
        invoice.payments.append(Payment(**i))
    return invoice
Beispiel #7
0
def test_set_number():
    invoice = Invoice()
    invoice.customer = MagicMock(code="CLI1")
    invoice.project = MagicMock(code="PRO1")
    seq_number = 15
    invoice.set_sequence_number(15)
    invoice.set_name()
    date = datetime.date(1969, 07, 31)
    invoice.taskDate = date
    invoice.set_number()
    assert invoice.number == u"PRO1_CLI1_F15_0769"
    invoice.set_number(deposit=True)
    assert invoice.number == u"PRO1_CLI1_FA15_0769"
def invoice(project, user, customer, company, phase):
    invoice = Invoice(
        company,
        customer,
        project,
        phase,
        user,
    )
    for key, value in INVOICE.items():
        setattr(invoice, key, value)

    for line in LINES:
        invoice.default_line_group.lines.append(TaskLine(**line))
    for discount in DISCOUNTS:
        invoice.discounts.append(DiscountLine(**discount))
    invoice.mentions = [TaskMention(label='1', title='t1', full_text='text')]

    invoice.address = customer.address

    return invoice
Beispiel #9
0
 def func(req_type='mandatory', validation=False, add_req=True, **kwargs):
     if add_req:
         mk_business_type_file_types(
             ftypes['ftype1'],
             btypes['default'],
             'invoice',
             req_type,
             validation
         )
     if 'project' not in kwargs:
         kwargs['project'] = project
     node = Invoice(
         user=user,
         company=company,
         business_type_id=btypes['default'].id,
         **kwargs
     )
     dbsession.add(node)
     dbsession.flush()
     SaleFileRequirementService.populate(node)
     return node
Beispiel #10
0
def invoice():
    inv = Invoice(**INVOICE)
    inv.lines = [InvoiceLine(**LINE)]
    for i in PAYMENTS:
        inv.payments.append(Payment(**i))
    return inv