diff --git a/product/ERP5/tests/testAccountingReports.py b/product/ERP5/tests/testAccountingReports.py index f9b045c65aec655172c0eddc3c9292f7652dab0f..3deaad096123524fb8f8e695a50ec313707d6b59 100644 --- a/product/ERP5/tests/testAccountingReports.py +++ b/product/ERP5/tests/testAccountingReports.py @@ -1281,6 +1281,74 @@ class TestAccountingReports(AccountingTestCase, ERP5ReportTestCase): self.checkLineProperties(line_list[-1], debit=700, credit=0) + def testAccountStatementCancellationAmount(self): + # Account statement with cancellation amount set on lines + account_module = self.account_module + t1 = self._makeOne( + portal_type='Accounting Transaction', + title='Transaction 1', + source_reference='1', + simulation_state='delivered', + destination_section_value=self.organisation_module.client_1, + start_date=DateTime(2006, 2, 1, 0, 1), + lines=(dict(source_value=account_module.payable, + source_debit=100.0,), + dict(source_value=account_module.receivable, + source_debit=-100.0, + cancellation_amount=True))) + + t2 = self._makeOne( + portal_type='Accounting Transaction', + title='Transaction 2', + source_reference='2', + simulation_state='delivered', + destination_section_value=self.organisation_module.client_1, + start_date=DateTime(2006, 2, 1, 0, 2), + lines=(dict(source_value=account_module.payable, + source_credit=200.0), + dict(source_value=account_module.receivable, + source_credit=-200.0, + cancellation_amount=True))) + + # set request variables and render + request_form = self.portal.REQUEST.form + request_form['node'] = \ + self.portal.account_module.receivable.getRelativeUrl() + request_form['from_date'] = DateTime(2006, 1, 1) + request_form['at_date'] = DateTime(2006, 12, 31) + request_form['section_category'] = 'group/demo_group' + request_form['simulation_state'] = ['delivered'] + + report_section_list = self.getReportSectionList( + self.portal.accounting_module, + 'AccountModule_viewAccountStatementReport') + self.assertEquals(1, len(report_section_list)) + line_list = self.getListBoxLineList(report_section_list[0]) + data_line_list = [l for l in line_list if l.isDataLine()] + self.assertEquals(2, len(data_line_list)) + + self.checkLineProperties(data_line_list[0], + Movement_getSpecificReference='1', + date=DateTime(2006, 2, 1, 0, 1), + Movement_getExplanationTitle='Transaction 1', + Movement_getMirrorSectionTitle='Client 1', + debit=-100, + credit=0, + running_total_price=-100) + + self.checkLineProperties(data_line_list[1], + Movement_getSpecificReference='2', + date=DateTime(2006, 2, 1, 0, 2), + Movement_getExplanationTitle='Transaction 2', + Movement_getMirrorSectionTitle='Client 1', + debit=0, + credit=-200, + running_total_price=100) + + self.failUnless(line_list[-1].isStatLine()) + self.checkLineProperties(line_list[-1], debit=-100, credit=-200,) + + def testTrialBalance(self): # Simple test of trial balance # we will use the same data set as account statement