Exemplo n.º 1
0
    def __init__(self, entries, payment_dt, pay_period, jobs):
        self.company = jobs.company

        for i in range(len(entries) - 1, -1, -1):
            if entries[i].company != self.company:
                raise ValueError('Entry with different company: %s and %s' %
                                 (repr(entries[i]), self.company))

            if not entries[i].can_be_invoiced():
                del (entries[i])

        self.entries = sorted(entries, key=lambda x: x.dt)

        self.entry_ids = []
        self.job_ids = defaultdict(list)
        for entry in self.entries:
            self.entry_ids.append(entry.id)
            self.job_ids[entry.job].append(entry)

        self.hours_total = TimeEntry.get_hours_total(self.entries)
        self.invoiced_dt = None
        self.payment_dt = payment_dt
        self.paid_dt = None
        self.sent = False

        self.payperiod_start = pay_period[0]
        self.payperiod_end = pay_period[1]
        self.jobs = jobs
        self.id = uuid.uuid1().hex
Exemplo n.º 2
0
    def testWriteReport(self):
        self.invoice.send()

        report_path = io_txt.get_report_path(self.invoice)
        io_txt.write_report(self.invoice)

        with open(report_path, 'r') as f:
            written_txt = f.read()
            _entries = self.invoice.entries
            self.assertIn(_entries[0].message, written_txt)
            self.assertIn(str(TimeEntry.get_hours_total(_entries)),
                          written_txt)

        del_path(report_path)