Tujuan akhir user ingin download invoice dan tidak download invoice setelah melakukan validasi pembayana di POS
tahapan :
- Menambahkan kolom download_invoice dengan type boolean dan parameter default=True
from odoo import models, fields, _
class PosConfig(models.Model):
_inherit = "pos.config"
download_invoice = fields.Boolean(default=True)
- Replace fungsi push_and_invoice_order yang ada di Posmodelmodels.PosModel = models.PosModel.extend({push_and_invoice_order: function (order) {var self = this;return new Promise((resolve, reject) => {if (!order.get_client()) {reject({ code: 400, message: 'Missing Customer', data: {} });} else {var order_id = self.db.add_order(order.export_as_JSON());self.flush_mutex.exec(async () => {try {const server_ids = await self._flush_orders([self.db.get_order(order_id)], {timeout: 30000,to_invoice: true,});if (server_ids.length) {const [orderWithInvoice] = await self.rpc({method: 'read',model: 'pos.order',args: [server_ids, ['account_move']],kwargs: { load: false },});if(!self.config.download_invoice){resolve(server_ids)}else{await self.do_action('account.account_invoices', {additional_context: {active_ids: [orderWithInvoice.account_move],},}).catch(() => {reject({ code: 401, message: 'Backend Invoice', data: { order: order } });});}} else {reject({ code: 401, message: 'Backend Invoice', data: { order: order } });}resolve(server_ids);} catch (error) {reject(error);}});}});},});
Terimakasih