diff --git a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/i18n/bs.po b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/i18n/bs.po index b9ca329..2a8f6a3 100644 --- a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/i18n/bs.po +++ b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/i18n/bs.po @@ -540,7 +540,7 @@ msgstr "" #. module: accounting_pdf_reports #. odoo-python -#: code:addons/accounting_pdf_reports/report/report_aged_partner.py +#: code:addons/accounting_pdf_reports/report/report_aged_partner.py:0 #, python-format msgid "Form content is missing, this report cannot be printed." msgstr "Nedostaju podaci sa forme, izvještaj se ne može ispisati." @@ -867,6 +867,16 @@ msgstr "Potraživanja i obaveze" msgid "Reconciled Entries" msgstr "Zatvorene stavke" +#. module: accounting_pdf_reports +#: model:ir.model.fields,field_description:accounting_pdf_reports.field_account_report_partner_ledger__previous_balance +msgid "Previous Balance" +msgstr "Prethodno stanje" + +#. module: accounting_pdf_reports +#: model:ir.model.fields,help:accounting_pdf_reports.field_account_report_partner_ledger__previous_balance +msgid "Show previous balance before the start date." +msgstr "Prikaži prethodno stanje prije početnog datuma." + #. module: accounting_pdf_reports #: model_terms:ir.ui.view,arch_db:accounting_pdf_reports.report_general_ledger msgid "Ref" @@ -1038,7 +1048,7 @@ msgstr "Tip" #. module: accounting_pdf_reports #. odoo-python -#: code:addons/accounting_pdf_reports/report/report_aged_partner.py +#: code:addons/accounting_pdf_reports/report/report_aged_partner.py:0 #, python-format msgid "Unknown Partner" msgstr "Nepoznat partner" @@ -1081,21 +1091,21 @@ msgstr "" #. module: accounting_pdf_reports #. odoo-python -#: code:addons/accounting_pdf_reports/wizard/account_general_ledger.py +#: code:addons/accounting_pdf_reports/wizard/account_general_ledger.py:0 #, python-format msgid "You must define a Start Date" msgstr "You must define a Start Datum" #. module: accounting_pdf_reports #. odoo-python -#: code:addons/accounting_pdf_reports/wizard/aged_partner.py +#: code:addons/accounting_pdf_reports/wizard/aged_partner.py:0 #, python-format msgid "You must set a period length greater than 0." msgstr "Morate postaviti dužinu perioda veću od 0." #. module: accounting_pdf_reports #. odoo-python -#: code:addons/accounting_pdf_reports/wizard/aged_partner.py +#: code:addons/accounting_pdf_reports/wizard/aged_partner.py:0 #, python-format msgid "You must set a start date." msgstr "Morate postaviti početni datum." diff --git a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/report/report_partner_ledger.py b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/report/report_partner_ledger.py index 6b3a444..b295c2e 100644 --- a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/report/report_partner_ledger.py +++ b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/report/report_partner_ledger.py @@ -45,6 +45,33 @@ class ReportPartnerLedger(models.AbstractModel): full_account.append(r) return full_account + def _previous_balance(self, data, partner): + """Calculate the balance for a partner before the date_from.""" + date_from = data['form'].get('date_from') + if not date_from: + return {'debit': 0.0, 'credit': 0.0, 'balance': 0.0} + + reconcile_clause = "" if data['form']['reconciled'] else ' AND "account_move_line".full_reconcile_id IS NULL ' + params = [ + partner.id, + tuple(data['computed']['move_state']), + tuple(data['computed']['account_ids']), + date_from, + ] + query = """ + SELECT COALESCE(sum("account_move_line".debit), 0) as debit, + COALESCE(sum("account_move_line".credit), 0) as credit, + COALESCE(sum("account_move_line".debit - "account_move_line".credit), 0) as balance + FROM account_move_line + LEFT JOIN account_move m ON (m.id = "account_move_line".move_id) + WHERE "account_move_line".partner_id = %s + AND m.state IN %s + AND "account_move_line".account_id IN %s + AND "account_move_line".date < %s""" + reconcile_clause + self.env.cr.execute(query, tuple(params)) + result = self.env.cr.dictfetchone() + return result or {'debit': 0.0, 'credit': 0.0, 'balance': 0.0} + def _sum_partner(self, data, partner, field): if field not in ['debit', 'credit', 'debit - credit']: return @@ -121,4 +148,5 @@ class ReportPartnerLedger(models.AbstractModel): 'time': time, 'lines': self._lines, 'sum_partner': self._sum_partner, + 'previous_balance': self._previous_balance, } diff --git a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/report/report_partner_ledger.xml b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/report/report_partner_ledger.xml index 8c56a41..cf78364 100644 --- a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/report/report_partner_ledger.xml +++ b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/report/report_partner_ledger.xml @@ -77,6 +77,27 @@ t-options="{'widget': 'float', 'precision': 2}"/> + + + + + Prethodno stanje do + + + + + + + + + + + + + diff --git a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/wizard/account_partner_ledger.py b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/wizard/account_partner_ledger.py index ff14e58..f1db0b8 100644 --- a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/wizard/account_partner_ledger.py +++ b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/wizard/account_partner_ledger.py @@ -13,6 +13,8 @@ class AccountPartnerLedger(models.TransientModel): "report if the currency differs from " "the company currency.") reconciled = fields.Boolean('Reconciled Entries') + previous_balance = fields.Boolean('Previous Balance', default=True, + help="Show previous balance before the start date.") def _get_report_base_filename(self): if self.partner_ids: @@ -22,7 +24,8 @@ class AccountPartnerLedger(models.TransientModel): def _get_report_data(self, data): data = self.pre_print_report(data) data['form'].update({'reconciled': self.reconciled, - 'amount_currency': self.amount_currency}) + 'amount_currency': self.amount_currency, + 'previous_balance': self.previous_balance}) return data def _print_report(self, data): diff --git a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/wizard/partner_ledger.xml b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/wizard/partner_ledger.xml index db7e412..7f37435 100644 --- a/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/wizard/partner_ledger.xml +++ b/odoo-bringout-odoomates-accounting_pdf_reports/accounting_pdf_reports/wizard/partner_ledger.xml @@ -17,6 +17,8 @@ + +