diff options
| author | Jitendra Prajapati <jpr@openerp.com> | 2016-07-13 11:23:25 +0530 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2017-01-10 10:38:50 +0100 |
| commit | e9e2e0cbb58ef67d1cecd9100a701649f323729d (patch) | |
| tree | 0bb07f3957fe39a3ce6af903383ac4b53db645f0 | |
| parent | d7bca63e360a8ee15ae95e04272899c8fda78ce5 (diff) | |
[IMP] account: Add a payment receipt report that can be sent by mail
- create a report for payment to print a receipt. Simple report with the amount received and name of the partner header of the company
- add a new action in action menu for print receipt
- add a new button action menu to send the receipt by email : STRING of the button = Send Receipt
- default template of payment receipt like sales
- add chatter history same as sales object
- this report use for both ('customer payment' & 'vendor payment)
| -rw-r--r-- | addons/account/__manifest__.py | 2 | ||||
| -rw-r--r-- | addons/account/data/payment_receipt_data.xml | 53 | ||||
| -rw-r--r-- | addons/account/models/account_payment.py | 2 | ||||
| -rw-r--r-- | addons/account/report/account_report_payment_receipt_templates.xml | 60 | ||||
| -rw-r--r-- | addons/account/views/account_payment_view.xml | 4 | ||||
| -rw-r--r-- | addons/account/views/account_report.xml | 10 |
6 files changed, 130 insertions, 1 deletions
diff --git a/addons/account/__manifest__.py b/addons/account/__manifest__.py index 9d94457643f..04a81c13b47 100644 --- a/addons/account/__manifest__.py +++ b/addons/account/__manifest__.py @@ -63,6 +63,8 @@ You could use this simplified accounting in case you work with an (external) acc 'views/res_config_view.xml', 'views/web_planner_data.xml', 'views/account_journal_dashboard_view.xml', + 'report/account_report_payment_receipt_templates.xml', + 'data/payment_receipt_data.xml', ], 'demo': [ 'demo/account_demo.xml', diff --git a/addons/account/data/payment_receipt_data.xml b/addons/account/data/payment_receipt_data.xml new file mode 100644 index 00000000000..2b15ae5427a --- /dev/null +++ b/addons/account/data/payment_receipt_data.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data noupdate="1"> + + <record id="account_payment_action" model="ir.values"> + <field name="model_id" ref="account.model_account_payment" /> + <field name="name">Print Receipt</field> + <field name="key2">client_action_multi</field> + <field name="value" eval="'ir.actions.report.xml,' +str(ref('action_report_payment_receipt'))" /> + <field name="key">action</field> + <field name="model">account.payment</field> + </record> + + <!--Email template --> + <record id="mail_template_data_payment_receipt" model="mail.template"> + <field name="name">Payment Receipt - Send by Email</field> + <field name="subject">${object.company_id.name} Payment Receipt (Ref ${object.name or 'n/a' })</field> + <field name="partner_to">${object.partner_id.id}</field> + <field name="model_id" ref="account.model_account_payment"/> + <field name="auto_delete" eval="True"/> + <field name="report_template" ref="account.action_report_payment_receipt"/> + <field name="report_name">${(object.name or '').replace('/','-')}</field> + <field name="lang">${object.partner_id.lang}</field> + <field name="body_html" type="xml"> +<p>Dear ${object.partner_id.name},</p> +<p>Thank you for your payment.<br />Here is your payment receipt <strong>${(object.name or '').replace('/','-')}</strong> amounting to <strong>${object.amount} ${object.currency_id.name}</strong> from ${object.company_id.name}.</p> +<p>If you have any questions, please do not hesitate to contact us.</p> +<p>Best regards, +% if user and user.signature: +${user.signature | safe} +% endif +</p> +</field> + </record> + + <act_window name="Send Receipt By Email" + res_model="mail.compose.message" + src_model="account.payment" + view_mode="form" + target="new" + key2="client_action_relate" + id="account_send_payment_receipt_by_email_action" + context="{ + 'default_model': 'account.payment', + 'mail_post_autofollow': True, + 'default_composition_mode': 'comment', + 'default_use_template': True, + 'default_res_id': active_id, + 'default_template_id': ref('account.mail_template_data_payment_receipt'), + }" + /> + </data> +</odoo> diff --git a/addons/account/models/account_payment.py b/addons/account/models/account_payment.py index bfeb6f727f6..36164be72f7 100644 --- a/addons/account/models/account_payment.py +++ b/addons/account/models/account_payment.py @@ -170,7 +170,7 @@ class account_register_payments(models.TransientModel): class account_payment(models.Model): _name = "account.payment" - _inherit = 'account.abstract.payment' + _inherit = ['mail.thread', 'account.abstract.payment'] _description = "Payments" _order = "payment_date desc, name desc" diff --git a/addons/account/report/account_report_payment_receipt_templates.xml b/addons/account/report/account_report_payment_receipt_templates.xml new file mode 100644 index 00000000000..1e6e44588bd --- /dev/null +++ b/addons/account/report/account_report_payment_receipt_templates.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <template id="report_payment_receipt"> + <t t-call="report.html_container"> + <t t-foreach="docs" t-as="o"> + <t t-call="report.external_layout"> + <div class="page"> + <h3><strong>Payment Receipt: <span t-field="o.name"/></strong></h3> + <div class="row mt64"> + <div class="col-xs-6" t-if="o.payment_date"> + <strong>Payment Date: </strong> <span t-field="o.payment_date"/> + </div> + </div> + <div class="row"> + <div class="col-xs-6" t-if="o.partner_type"> + <t t-if="o.partner_type == 'customer'"> + <strong>Customer: </strong> + </t> + <t t-if="o.partner_type == 'supplier'"> + <strong>Vendor: </strong> + </t><span t-field="o.partner_id"/> + </div> + <div class="col-xs-6" t-if="o.payment_method_id"> + <strong>Payment Method: </strong><span t-field="o.payment_method_id.name"/> + </div> + </div> + <div class="row mb64"> + <div class="col-xs-6" t-if="o.amount"> + <strong>Payment Amount: </strong><span t-field="o.amount" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/> + </div> + <div class="col-xs-6" t-if="o.communication"> + <strong>Memo: </strong><span t-field="o.communication"/> + </div> + </div> + <table class="table table-condensed"> + <thead> + <tr> + <th>Invoice Date</th> + <th>Invoice Number</th> + <th class="text-right">Original Amount</th> + <th class="text-right">Amount Paid</th> + <th class="text-right">Balance</th> + </tr> + </thead> + <tbody> + <tr t-foreach="o.invoice_ids" t-as="inv"> + <td><span t-field="inv.date_invoice"/></td> + <td><span t-field="inv.number"/></td> + <td class="text-right"><span t-field="inv.amount_total"/></td> + <td class="text-right"><span t-esc="inv.amount_total - inv.residual" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/></td> + <td class="text-right"><span t-field="inv.residual"/></td> + </tr> + </tbody> + </table> + </div> + </t> + </t> + </t> + </template> +</odoo> diff --git a/addons/account/views/account_payment_view.xml b/addons/account/views/account_payment_view.xml index 8602bb3727a..b51b1349cb9 100644 --- a/addons/account/views/account_payment_view.xml +++ b/addons/account/views/account_payment_view.xml @@ -117,6 +117,10 @@ </group> </group> </sheet> + <div class="oe_chatter"> + <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/> + <field name="message_ids" widget="mail_thread"/> + </div> </form> </field> </record> diff --git a/addons/account/views/account_report.xml b/addons/account/views/account_report.xml index 56d352ba8f5..56f2a8adaa3 100644 --- a/addons/account/views/account_report.xml +++ b/addons/account/views/account_report.xml @@ -110,5 +110,15 @@ file="account.report_partnerledger" /> + <report + id="action_report_payment_receipt" + model="account.payment" + string="Print Receipt" + report_type="qweb-pdf" + name="account.report_payment_receipt" + file="account.report_payment_receipt" + menu="False" + /> + </data> </odoo> |
