| @ -1,6 +1,11 @@ | |||||
| ## Module <digital_signature> | ## Module <digital_signature> | ||||
| 
 | 
 | ||||
| #### 19.10.2023 | #### 01.07.2022 | ||||
| #### Version 16.0.1.1.0 | #### Version 16.0.1.1.0 | ||||
| #### ADD | #### ADD | ||||
| - Initial commit for Odoo 16 Digital Signature | - Initial commit for Digital Signature In Purchase Order, Invoice, Inventory | ||||
|  | 
 | ||||
|  | #### 26.10.2023 | ||||
|  | #### Version 16.0.2.1.0 | ||||
|  | #### UPDT | ||||
|  | - Added the company stamp feature in  Purchase Order, Invoice and Inventory  | ||||
|  | |||||
| @ -0,0 +1,131 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    You can modify it under the terms of the GNU LESSER | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | ||||
|  | #    (LGPL v3) along with this program. | ||||
|  | #    If not, see <http://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################# | ||||
|  | from odoo import api, fields, models, _ | ||||
|  | from odoo.exceptions import UserError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class AccountMove(models.Model): | ||||
|  |     """Inherited the account move model for showing the digital signature | ||||
|  |       and company stamp in both invoice and bill""" | ||||
|  |     _inherit = "account.move" | ||||
|  |     _description = 'Account Move' | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def _default_show_signature(self): | ||||
|  |         """ Returns the value of digital sign from Invoice setting | ||||
|  |          for invoice""" | ||||
|  |         return self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.show_digital_sign_invoice') | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def _default_enable_sign(self): | ||||
|  |         """Returns the value of enable options from Invoice setting""" | ||||
|  |         return self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.enable_options_invoice') | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def _default_show_sign_bill(self): | ||||
|  |         """ Returns the value of signature from Invoice setting for bill""" | ||||
|  |         return self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.show_digital_sign_bill') | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def _default_show_stamp_invoice(self): | ||||
|  |         """ Returns the value of company stamp from Invoice setting | ||||
|  |                 for invoice""" | ||||
|  |         return self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.show_company_stamp_invoice') | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def _default_show_stamp_bill(self): | ||||
|  |         """ Returns the value of company stamp from Invoice setting | ||||
|  |                         for bill""" | ||||
|  |         return self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.show_company_stamp_bill') | ||||
|  | 
 | ||||
|  |     digital_sign = fields.Binary(string='Signature', | ||||
|  |                                  help="Signature of accounting management " | ||||
|  |                                       "person") | ||||
|  |     sign_by = fields.Char(string='Signed By', help="Name of signed person") | ||||
|  |     designation = fields.Char(string='Designation', | ||||
|  |                               help="Designation for signed person") | ||||
|  |     sign_on = fields.Datetime(string='Signed On', help="Date of sign") | ||||
|  |     show_signature = fields.Boolean('Show Signature', | ||||
|  |                                     default=_default_show_signature, | ||||
|  |                                     compute='_compute_show_signature', | ||||
|  |                                     help="Field to get the value in setting" | ||||
|  |                                          " to current model") | ||||
|  |     show_sign_bill = fields.Boolean('Show Signature', | ||||
|  |                                     default=_default_show_sign_bill, | ||||
|  |                                     compute='_compute_show_sign_bill', | ||||
|  |                                     help="Field to get the value in setting to " | ||||
|  |                                          "current model") | ||||
|  |     enable_others = fields.Boolean(default=_default_enable_sign, | ||||
|  |                                    compute='_compute_enable_others', | ||||
|  |                                    help="Field to get the value in setting to " | ||||
|  |                                         "current model") | ||||
|  |     show_stamp_invoice = fields.Boolean(default=_default_show_stamp_invoice, | ||||
|  |                                         compute='_compute_show_stamp_invoice', | ||||
|  |                                         help="Field to get the value in setting" | ||||
|  |                                              " to current model") | ||||
|  |     stamp_invoicing = fields.Selection([ | ||||
|  |         ('customer_invoice', 'Customer Invoice'), | ||||
|  |         ('vendor_bill', 'Vendor Bill'), ('both', 'Both'), | ||||
|  |     ], string="Company Stamp Applicable", | ||||
|  |         compute='_compute_stamp_invoicing', help="Field to get the value in " | ||||
|  |                                                  "setting to current model") | ||||
|  | 
 | ||||
|  |     def _compute_show_signature(self): | ||||
|  |         """ Compute the value of digital signature""" | ||||
|  |         for record in self: | ||||
|  |             record.show_signature = self._default_show_signature() | ||||
|  | 
 | ||||
|  |     def _compute_enable_others(self): | ||||
|  |         """ Compute the value of enable options from the invoicing setting""" | ||||
|  |         for record in self: | ||||
|  |             record.enable_others = self._default_enable_sign() | ||||
|  | 
 | ||||
|  |     def _compute_show_sign_bill(self): | ||||
|  |         """ Compute the value of digital signature in bill""" | ||||
|  |         for record in self: | ||||
|  |             record.show_sign_bill = self._default_show_sign_bill() | ||||
|  | 
 | ||||
|  |     def _compute_stamp_invoicing(self): | ||||
|  |         """ Compute the value, which report has applied the stamp""" | ||||
|  |         for invoice in self: | ||||
|  |             invoice.stamp_invoicing = self.env['ir.config_parameter']. \ | ||||
|  |                 sudo().get_param( | ||||
|  |                 'digital_signature.company_stamp_applicable_invoicing') | ||||
|  | 
 | ||||
|  |     def _compute_show_stamp_invoice(self): | ||||
|  |         """ Compute the value of company stamp""" | ||||
|  |         for invoice in self: | ||||
|  |             invoice.show_stamp_invoice = self._default_show_stamp_invoice() | ||||
|  | 
 | ||||
|  |     def action_post(self): | ||||
|  |         """Validate the signature is missing or not""" | ||||
|  |         res = super(AccountMove, self).action_post() | ||||
|  |         if self.env[ | ||||
|  |             'ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.confirm_sign_invoice') and \ | ||||
|  |                 self.digital_sign is False: | ||||
|  |             raise UserError(_("Signature is missing")) | ||||
|  |         return res | ||||
| @ -1,72 +0,0 @@ | |||||
| # -*- coding: utf-8 -*- |  | ||||
| ############################################################################# |  | ||||
| # |  | ||||
| #    Cybrosys Technologies Pvt. Ltd. |  | ||||
| # |  | ||||
| #    Copyright (C) 2022-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |  | ||||
| #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) |  | ||||
| # |  | ||||
| #    You can modify it under the terms of the GNU LESSER |  | ||||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |  | ||||
| # |  | ||||
| #    This program is distributed in the hope that it will be useful, |  | ||||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |  | ||||
| # |  | ||||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |  | ||||
| #    (LGPL v3) along with this program. |  | ||||
| #    If not, see <http://www.gnu.org/licenses/>. |  | ||||
| # |  | ||||
| ############################################################################# |  | ||||
| 
 |  | ||||
| from odoo import models, fields, api, _ |  | ||||
| from odoo.exceptions import Warning, UserError |  | ||||
| 
 |  | ||||
| 
 |  | ||||
| class InventoryInherit(models.Model): |  | ||||
|     _inherit = "stock.picking" |  | ||||
| 
 |  | ||||
|     def _default_show_sign(self): |  | ||||
|         return self.env['ir.config_parameter'].sudo().get_param( |  | ||||
|             'digital_signature.show_digital_sign_inventory') |  | ||||
| 
 |  | ||||
|     def _default_enable_options(self): |  | ||||
|         return self.env['ir.config_parameter'].sudo().get_param( |  | ||||
|             'digital_signature.enable_options_inventory') |  | ||||
| 
 |  | ||||
|     digital_sign = fields.Binary(string='Signature') |  | ||||
|     sign_by = fields.Char(string='Signed By') |  | ||||
|     designation = fields.Char(string='Designation') |  | ||||
|     sign_on = fields.Datetime(string='Signed On') |  | ||||
|     show_sign = fields.Boolean(default=_default_show_sign, |  | ||||
|                                compute='_compute_show_sign') |  | ||||
|     enable_option = fields.Boolean(default=_default_enable_options, |  | ||||
|                                    compute='_compute_enable_optiion') |  | ||||
|     sign_applicable = fields.Selection([ |  | ||||
|         ('picking_operations', 'Picking Operations'), |  | ||||
|         ('delivery', 'Delivery Slip'), |  | ||||
|         ('both', 'Both'), |  | ||||
|     ], string="Sign Applicable inside", compute='_compute_sign_applicable') |  | ||||
| 
 |  | ||||
|     def button_validate(self): |  | ||||
|         res = super(InventoryInherit, self).button_validate() |  | ||||
|         if self.env['ir.config_parameter'].sudo().get_param( |  | ||||
|             'digital_signature.confirm_sign_inventory') and self.digital_sign is False: |  | ||||
|             raise UserError('Signature is missing') |  | ||||
|         return res |  | ||||
| 
 |  | ||||
|     def _compute_show_sign(self): |  | ||||
|         show_signature = self._default_show_sign() |  | ||||
|         for record in self: |  | ||||
|             record.show_sign = show_signature |  | ||||
| 
 |  | ||||
|     def _compute_enable_optiion(self): |  | ||||
|         enable_others = self._default_enable_options() |  | ||||
|         for record in self: |  | ||||
|             record.enable_option = enable_others |  | ||||
| 
 |  | ||||
|     def _compute_sign_applicable(self): |  | ||||
|         for rec in self: |  | ||||
|             rec.sign_applicable = self.env['ir.config_parameter'].sudo().get_param( |  | ||||
|                 'digital_signature.sign_applicable') |  | ||||
| @ -1,80 +0,0 @@ | |||||
| # -*- coding: utf-8 -*- |  | ||||
| ############################################################################# |  | ||||
| # |  | ||||
| #    Cybrosys Technologies Pvt. Ltd. |  | ||||
| # |  | ||||
| #    Copyright (C) 2022-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) |  | ||||
| #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) |  | ||||
| # |  | ||||
| #    You can modify it under the terms of the GNU LESSER |  | ||||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |  | ||||
| # |  | ||||
| #    This program is distributed in the hope that it will be useful, |  | ||||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  | ||||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |  | ||||
| # |  | ||||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |  | ||||
| #    (LGPL v3) along with this program. |  | ||||
| #    If not, see <http://www.gnu.org/licenses/>. |  | ||||
| # |  | ||||
| ############################################################################# |  | ||||
| 
 |  | ||||
| from odoo import models, fields, api, _ |  | ||||
| from odoo.exceptions import Warning, UserError |  | ||||
| 
 |  | ||||
| 
 |  | ||||
| class InvoiceInherit(models.Model): |  | ||||
|     _inherit = "account.move" |  | ||||
| 
 |  | ||||
|     @api.model |  | ||||
|     def _default_show_sign(self): |  | ||||
|         return self.env['ir.config_parameter'].sudo().get_param( |  | ||||
|             'digital_signature.show_digital_sign_invoice') |  | ||||
| 
 |  | ||||
|     @api.model |  | ||||
|     def _default_enable_sign(self): |  | ||||
|         return self.env['ir.config_parameter'].sudo().get_param( |  | ||||
|             'digital_signature.enable_options_invoice') |  | ||||
| 
 |  | ||||
|     @api.model |  | ||||
|     def _default_show_sign_bill(self): |  | ||||
|         return self.env['ir.config_parameter'].sudo().get_param( |  | ||||
|             'digital_signature.show_digital_sign_bill') |  | ||||
| 
 |  | ||||
|     digital_sign = fields.Binary(string='Signature') |  | ||||
|     sign_by = fields.Char(string='Signed By') |  | ||||
|     designation = fields.Char(string='Designation') |  | ||||
|     sign_on = fields.Datetime(string='Signed On') |  | ||||
|     show_signature = fields.Boolean('Show Signature', |  | ||||
|                                     default=_default_show_sign, |  | ||||
|                                     compute='_compute_show_signature') |  | ||||
|     show_sign_bill = fields.Boolean('Show Signature', |  | ||||
|                                     default=_default_show_sign_bill, |  | ||||
|                                     compute='_compute_show_sign_bill') |  | ||||
|     enable_others = fields.Boolean(default=_default_enable_sign, |  | ||||
|                                    compute='_compute_enable_others') |  | ||||
| 
 |  | ||||
|     def action_post(self): |  | ||||
|         res = super(InvoiceInherit, self).action_post() |  | ||||
|         if self.env[ |  | ||||
|             'ir.config_parameter'].sudo().get_param( |  | ||||
|             'digital_signature.confirm_sign_invoice') and self.digital_sign is False: |  | ||||
|             raise UserError(_("Signature is missing")) |  | ||||
| 
 |  | ||||
|         return res |  | ||||
| 
 |  | ||||
|     def _compute_show_signature(self): |  | ||||
|         show_signature = self._default_show_sign() |  | ||||
|         for record in self: |  | ||||
|             record.show_signature = show_signature |  | ||||
| 
 |  | ||||
|     def _compute_enable_others(self): |  | ||||
|         enable_others = self._default_enable_sign() |  | ||||
|         for record in self: |  | ||||
|             record.enable_others = enable_others |  | ||||
| 
 |  | ||||
|     def _compute_show_sign_bill(self): |  | ||||
|         show_sign_bill = self._default_show_sign_bill() |  | ||||
|         for record in self: |  | ||||
|             record.show_sign_bill = show_sign_bill |  | ||||
| @ -0,0 +1,37 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    You can modify it under the terms of the GNU LESSER | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | ||||
|  | #    (LGPL v3) along with this program. | ||||
|  | #    If not, see <http://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################# | ||||
|  | from odoo import fields, models | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class ResCompany(models.Model): | ||||
|  |     """Inherited the res company for setting the company stamp""" | ||||
|  | 
 | ||||
|  |     _inherit = 'res.company' | ||||
|  |     _description = 'Company' | ||||
|  | 
 | ||||
|  |     stamp = fields.Binary(string="Stamp", help="Company stamp") | ||||
|  |     position = fields.Selection(selection=[ | ||||
|  |         ('left', 'Left'), | ||||
|  |         ('right', 'Right'), | ||||
|  |         ('center', 'Center'), | ||||
|  |     ], string='Position', tracking=True, default="left", | ||||
|  |         help="The position is used  to position the  signature and company " | ||||
|  |              "stamp in reports") | ||||
| @ -0,0 +1,117 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    You can modify it under the terms of the GNU LESSER | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | ||||
|  | #    (LGPL v3) along with this program. | ||||
|  | #    If not, see <http://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################# | ||||
|  | from odoo import fields, models | ||||
|  | from odoo.exceptions import UserError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class StockPicking(models.Model): | ||||
|  |     """Inherited the stock picking for showing the digital signature | ||||
|  |     and company stamp in both report of  picking operations and delivery slip""" | ||||
|  |     _inherit = "stock.picking" | ||||
|  | 
 | ||||
|  |     def _default_show_sign(self): | ||||
|  |         """ Returns the value of digital sign from inventory setting""" | ||||
|  |         return self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.show_digital_sign_inventory') | ||||
|  | 
 | ||||
|  |     def _default_enable_option(self): | ||||
|  |         """Returns the value of enable options  from inventory setting""" | ||||
|  |         return self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.enable_options_inventory') | ||||
|  | 
 | ||||
|  |     def _default_show_stamp(self): | ||||
|  |         """Returns the value of company stampfrom inventory setting""" | ||||
|  |         return self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |             'digital_signature.show_company_stamp_inventory') | ||||
|  | 
 | ||||
|  |     digital_sign = fields.Binary(string='Signature', | ||||
|  |                                  help="Signature of inventory " | ||||
|  |                                       "management person") | ||||
|  |     sign_by = fields.Char(string='Signed By', | ||||
|  |                           help="Name of signed person") | ||||
|  |     designation = fields.Char(string='Designation', | ||||
|  |                               help="Designation for signed person") | ||||
|  |     sign_on = fields.Datetime(string='Signed On', help="Date of sign") | ||||
|  |     show_sign = fields.Boolean(default=_default_show_sign, | ||||
|  |                                compute='_compute_show_sign', | ||||
|  |                                help="Field to get the value in setting to " | ||||
|  |                                     "current model") | ||||
|  |     enable_option = fields.Boolean(default=_default_enable_option, | ||||
|  |                                    compute='_compute_enable_option', | ||||
|  |                                    help="Field to get the value in setting to " | ||||
|  |                                         "current model") | ||||
|  |     sign_applicable = fields.Selection([ | ||||
|  |         ('picking_operations', 'Picking Operations'), | ||||
|  |         ('delivery', 'Delivery Slip'), | ||||
|  |         ('both', 'Both'), | ||||
|  |     ], string="Sign Applicable inside", compute='_compute_sign_applicable', | ||||
|  |         help="Field to get the value in setting to current model") | ||||
|  | 
 | ||||
|  |     stamp_applicable = fields.Selection([ | ||||
|  |         ('picking_stamp', 'Picking Operations'), | ||||
|  |         ('delivery_stamp', 'Delivery Slip'), | ||||
|  |         ('both_stamp', 'Both')], string="stamp", | ||||
|  |         compute='_compute_stamp_applicable') | ||||
|  |     show_stamp = fields.Boolean(default=_default_show_stamp, | ||||
|  |                                 compute='_compute_show_stamp', | ||||
|  |                                 help="Field to get the value in setting " | ||||
|  |                                      "to current model") | ||||
|  | 
 | ||||
|  |     def _compute_show_sign(self): | ||||
|  |         """Function to compute the value of digital signature""" | ||||
|  |         for record in self: | ||||
|  |             record.show_sign = self._default_show_sign() | ||||
|  | 
 | ||||
|  |     def _compute_enable_option(self): | ||||
|  |         """Function to compute the value of enable options from the | ||||
|  |            inventory setting""" | ||||
|  |         for record in self: | ||||
|  |             record.enable_option = self._default_enable_option() | ||||
|  | 
 | ||||
|  |     def _compute_sign_applicable(self): | ||||
|  |         """Function to compute the value, which report has applied | ||||
|  |            the signature""" | ||||
|  |         for rec in self: | ||||
|  |             rec.sign_applicable = self.env['ir.config_parameter'].sudo(). \ | ||||
|  |                 get_param( | ||||
|  |                 'digital_signature.sign_applicable') | ||||
|  | 
 | ||||
|  |     def _compute_stamp_applicable(self): | ||||
|  |         """Function to compute the value  which report has applied | ||||
|  |            the signature""" | ||||
|  |         for rec in self: | ||||
|  |             rec.stamp_applicable = self.env['ir.config_parameter'].sudo(). \ | ||||
|  |                 get_param( | ||||
|  |                 'digital_signature.company_stamp_applicable') | ||||
|  | 
 | ||||
|  |     def _compute_show_stamp(self): | ||||
|  |         """Function to compute the value  which report has applied the stamp""" | ||||
|  |         for stamp in self: | ||||
|  |             stamp.show_stamp = self._default_show_stamp() | ||||
|  | 
 | ||||
|  |     def button_validate(self): | ||||
|  |         """ Function to validate the signature is missing or not""" | ||||
|  |         res = super(StockPicking, self).button_validate() | ||||
|  |         if self.env['ir.config_parameter'].sudo().get_param( | ||||
|  |                 'digital_signature.confirm_sign_inventory') and \ | ||||
|  |                 self.digital_sign is False: | ||||
|  |             raise UserError('Signature is missing') | ||||
|  |         return res | ||||
| Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB | 
| Before Width: | Height: | Size: 310 B After Width: | Height: | Size: 310 B | 
| Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 576 B After Width: | Height: | Size: 576 B | 
| Before Width: | Height: | Size: 733 B After Width: | Height: | Size: 733 B | 
| Before Width: | Height: | Size: 911 B After Width: | Height: | Size: 911 B | 
| Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 673 B | 
| Before Width: | Height: | Size: 878 B After Width: | Height: | Size: 878 B | 
| Before Width: | Height: | Size: 653 B After Width: | Height: | Size: 653 B | 
| Before Width: | Height: | Size: 905 B After Width: | Height: | Size: 905 B | 
| Before Width: | Height: | Size: 839 B After Width: | Height: | Size: 839 B | 
| Before Width: | Height: | Size: 427 B After Width: | Height: | Size: 427 B | 
| Before Width: | Height: | Size: 627 B After Width: | Height: | Size: 627 B | 
| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 988 B After Width: | Height: | Size: 988 B | 
| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 60 KiB | 
| Before Width: | Height: | Size: 56 KiB | 
| Before Width: | Height: | Size: 56 KiB | 
| Before Width: | Height: | Size: 59 KiB | 
| Before Width: | Height: | Size: 1.8 MiB | 
| Before Width: | Height: | Size: 57 KiB | 
| After Width: | Height: | Size: 76 KiB | 
| After Width: | Height: | Size: 18 KiB | 
| After Width: | Height: | Size: 82 KiB | 
| After Width: | Height: | Size: 82 KiB | 
| After Width: | Height: | Size: 72 KiB | 
| After Width: | Height: | Size: 80 KiB | 
| After Width: | Height: | Size: 121 KiB | 
| After Width: | Height: | Size: 63 KiB | 
| After Width: | Height: | Size: 61 KiB | 
| After Width: | Height: | Size: 175 KiB | 
| After Width: | Height: | Size: 169 KiB | 
| After Width: | Height: | Size: 91 KiB | 
| After Width: | Height: | Size: 79 KiB | 
| After Width: | Height: | Size: 180 KiB | 
| After Width: | Height: | Size: 170 KiB | 
| After Width: | Height: | Size: 167 KiB | 
| After Width: | Height: | Size: 165 KiB | 
| After Width: | Height: | Size: 171 KiB | 
| After Width: | Height: | Size: 173 KiB | 
| After Width: | Height: | Size: 80 KiB | 
| After Width: | Height: | Size: 169 KiB | 
| After Width: | Height: | Size: 169 KiB | 
| Before Width: | Height: | Size: 188 KiB | 
| Before Width: | Height: | Size: 159 KiB | 
| Before Width: | Height: | Size: 126 KiB | 
| Before Width: | Height: | Size: 192 KiB | 
| Before Width: | Height: | Size: 218 KiB | 
| Before Width: | Height: | Size: 181 KiB | 
| Before Width: | Height: | Size: 222 KiB | 
| Before Width: | Height: | Size: 209 KiB | 
| Before Width: | Height: | Size: 196 KiB | 
| Before Width: | Height: | Size: 124 KiB | 
| Before Width: | Height: | Size: 106 KiB | 
| Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 345 KiB | 
| Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 152 KiB | 
| Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 22 KiB | 
| @ -0,0 +1,25 @@ | |||||
|  | .left{ | ||||
|  | max-height: 4cm; | ||||
|  | max-width: 4cm; | ||||
|  | padding-top: 50px; | ||||
|  | float:left; | ||||
|  | } | ||||
|  | .right { | ||||
|  | max-height: 4cm; | ||||
|  | max-width: 4cm; | ||||
|  | padding-top: 50px; | ||||
|  | float:right | ||||
|  | } | ||||
|  | .center { | ||||
|  | max-height: 4cm; | ||||
|  | max-width: 4cm; | ||||
|  | padding-top: 50px; | ||||
|  | margin-left: 300px; | ||||
|  | } | ||||
|  | .center_sign { | ||||
|  |   max-height: 4cm; | ||||
|  |   max-width: 6cm; | ||||
|  |   padding-top: 50px; | ||||
|  |   margin-left: 400px; | ||||
|  |   margin-top: -153px; | ||||
|  | } | ||||
| @ -0,0 +1,173 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!-- Report template for invoice --> | ||||
|  |     <template id="account_report_invoice_document_inherit_digital_signature" | ||||
|  |               inherit_id="account.report_invoice_document"> | ||||
|  |         <xpath expr="//div[@id='qrcode']" position="after"> | ||||
|  |             <div id="signature" class="row justify-content-end"> | ||||
|  |                 <t t-if="o.company_id.position == 'left'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.move_type == 'out_invoice' and o.stamp_invoicing =='customer_invoice'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice and o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign" > | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                                 <p t-field="o.sign_by" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                                 <p t-field="o.sign_on" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                                 <p t-field="o.designation" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-if="o.move_type == 'in_invoice' and  o.stamp_invoicing =='vendor_bill'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice and o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                                 <p t-field="o.sign_by" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                                 <p t-field="o.sign_on" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                                 <p t-field="o.designation" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-if="o.stamp_invoicing =='both'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice and o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                                 <p t-field="o.sign_by" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                                 <p t-field="o.sign_on" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                                 <p t-field="o.designation" | ||||
|  |                                    style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |                 <t t-if="o.company_id.position == 'right'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.move_type == 'out_invoice' and o.stamp_invoicing =='customer_invoice'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice and o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      style="max-height: 4cm; max-width: 8cm; | ||||
|  |                                  padding-top: 50px;" class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="right"/> | ||||
|  |                                 <p t-field="o.sign_by" | ||||
|  |                                    style="padding-top: 100px;margin-left: 650px;"/> | ||||
|  |                                 <p t-field="o.sign_on" | ||||
|  |                                    style="margin-left: 650px;"/> | ||||
|  |                                 <p t-field="o.designation" | ||||
|  |                                    style="margin-left: 650px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-if="o.move_type == 'in_invoice' and  o.stamp_invoicing =='vendor_bill'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      style="max-height: 4cm; max-width: 8cm; | ||||
|  |                                  padding-top: 50px;" class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="right"/> | ||||
|  |                                 <p t-field="o.sign_by" | ||||
|  |                                    style="padding-top: 100px;margin-left: 650px;"/> | ||||
|  |                                 <p t-field="o.sign_on" | ||||
|  |                                    style="margin-left: 650px;"/> | ||||
|  |                                 <p t-field="o.designation" | ||||
|  |                                    style="margin-left: 650px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-if="o.stamp_invoicing =='both'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice and o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      style="max-height: 4cm; max-width: 8cm; | ||||
|  |                                  padding-top: 50px;" class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="right"/> | ||||
|  |                                 <p t-field="o.sign_by" | ||||
|  |                                    style="padding-top: 100px;margin-left: 650px;"/> | ||||
|  |                                 <p t-field="o.sign_on" | ||||
|  |                                    style="margin-left: 650px;"/> | ||||
|  |                                 <p t-field="o.designation" | ||||
|  |                                    style="margin-left: 650px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |                 <t t-if="o.company_id.position == 'center'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.move_type == 'out_invoice' and o.stamp_invoicing =='customer_invoice'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice and o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      class="center_sign"/> | ||||
|  |                                 <p t-field="o.sign_by" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                                 <p t-field="o.sign_on" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                                 <p t-field="o.designation" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-if="o.move_type == 'in_invoice' and  o.stamp_invoicing =='vendor_bill'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice and o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      class="center_sign"/> | ||||
|  |                                 <p t-field="o.sign_by" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                                 <p t-field="o.sign_on" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                                 <p t-field="o.designation" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-if="o.stamp_invoicing =='both'"> | ||||
|  |                             <t t-if="o.show_stamp_invoice and o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_signature and o.digital_sign"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                      class="center_sign"/> | ||||
|  |                                 <p t-field="o.sign_by" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                                 <p t-field="o.sign_on" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                                 <p t-field="o.designation" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |             </div> | ||||
|  |         </xpath> | ||||
|  |     </template> | ||||
|  | </odoo> | ||||
| @ -1,12 +1,15 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" ?> | <?xml version="1.0" encoding="UTF-8" ?> | ||||
| <odoo> | <odoo> | ||||
|     <record model="ir.ui.view" id="account_move_inherit"> | <!-- Inheriting view account move form --> | ||||
|         <field name="name">account.move.inherit</field> |     <record id="view_move_form" model="ir.ui.view"> | ||||
|  |         <field name="name">account.move.view.form.inherit.digital.signature | ||||
|  |         </field> | ||||
|         <field name="model">account.move</field> |         <field name="model">account.move</field> | ||||
|         <field name="inherit_id" ref="account.view_move_form"/> |         <field name="inherit_id" ref="account.view_move_form"/> | ||||
|         <field name="arch" type="xml"> |         <field name="arch" type="xml"> | ||||
|             <xpath expr="//page[@id='invoice_tab']" position="after"> |             <xpath expr="//page[@id='invoice_tab']" position="after"> | ||||
|                 <field name="show_signature" invisible="1"/> |                 <field name="show_signature" invisible="1"/> | ||||
|  |                 <field name="show_sign_bill" invisible="1"/> | ||||
|                 <page string="Digital Signature" |                 <page string="Digital Signature" | ||||
|                       attrs="{'invisible': ['|', ('show_signature','=',False), |                       attrs="{'invisible': ['|', ('show_signature','=',False), | ||||
|                       ('move_type', '!=', 'out_invoice')]}"> |                       ('move_type', '!=', 'out_invoice')]}"> | ||||
| @ -1,31 +0,0 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||
| <odoo> |  | ||||
|     <record id="inventory_view_form_inherit" model="ir.ui.view"> |  | ||||
|         <field name="name">inventory.view.form.inherit</field> |  | ||||
|         <field name="model">stock.picking</field> |  | ||||
|         <field name="priority" eval="20"/> |  | ||||
|         <field name="inherit_id" ref="stock.view_picking_form"/> |  | ||||
|         <field name="arch" type="xml"> |  | ||||
|         <xpath expr="//field[@name='move_ids_without_package']" |  | ||||
|                position="after"> |  | ||||
|             <group> |  | ||||
|                 <field name="show_sign" invisible="1"/> |  | ||||
|                 <field name="enable_option" invisible="1"/> |  | ||||
|                 <field name="sign_applicable" invisible="1"/> |  | ||||
|                 <group name="inventory_signature" string="Digital Signature" |  | ||||
|                        attrs="{'invisible': [('show_sign','=',False)]}"> |  | ||||
|                     <field name="digital_sign"/> |  | ||||
|                     <field name="sign_by" |  | ||||
|                            attrs="{'invisible': [('enable_option','=', |  | ||||
|                            False)]}"/> |  | ||||
|                     <field name="designation" |  | ||||
|                            attrs="{'invisible': [('enable_option','=',False)]}"/> |  | ||||
|                     <field name="sign_on" |  | ||||
|                            attrs="{'invisible': [('enable_option','=',False)]}"/> |  | ||||
|                 </group> |  | ||||
| 
 |  | ||||
|             </group> |  | ||||
|         </xpath> |  | ||||
|         </field> |  | ||||
|     </record> |  | ||||
| </odoo> |  | ||||
| @ -1,29 +0,0 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||
| <odoo> |  | ||||
|     <template id="report_invoice_report_inherit_sale" inherit_id="account.report_invoice_document"> |  | ||||
|         <!-- Inherits from 'account.report_invoice_document'. --> |  | ||||
|         <xpath expr="//div[@id='qrcode']" position="after"> |  | ||||
|             <div id="signature" class="row justify-content-end"> |  | ||||
|                 <div class="col-4"> |  | ||||
|                     <!-- Within the 'signature' div, create a column with a width of 4 units. --> |  | ||||
|                     <table class="table table-sm"> |  | ||||
|                         <!-- Check if 'o.digital_sign' exists before proceeding. --> |  | ||||
|                         <div t-if="o.digital_sign" class="mt32 ml64 mr4" name="signature"> |  | ||||
|                             <!-- Display the image using 'image_data_uri(o.digital_sign)' as the source. --> |  | ||||
|                             <img t-att-src="image_data_uri(o.digital_sign)" |  | ||||
|                                  style="max-height: 4cm; max-width: 8cm; padding-top: 50px;"/> |  | ||||
|                         </div> |  | ||||
|                         <tr> |  | ||||
|                             <td class="text-right" style="border: 1px solid white; background:none;"> |  | ||||
|                                 <!-- Display 'sign_by', 'sign_on', and 'designation' fields if they exist. --> |  | ||||
|                                 <p t-if="o.sign_by" t-field="o.sign_by"/> |  | ||||
|                                 <p t-if="o.sign_on" t-field="o.sign_on"/> |  | ||||
|                                 <p t-if="o.designation" t-field="o.designation"/> |  | ||||
|                             </td> |  | ||||
|                         </tr> |  | ||||
|                     </table> |  | ||||
|                 </div> |  | ||||
|             </div> |  | ||||
|         </xpath> |  | ||||
|     </template> |  | ||||
| </odoo> |  | ||||
| @ -1,31 +0,0 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||
| <odoo> |  | ||||
|     <record id="purchase_order_view_form_inherit" model="ir.ui.view"> |  | ||||
|         <field name="name">purchase.order.view.form.inherit</field> |  | ||||
|         <field name="model">purchase.order</field> |  | ||||
|         <field name="priority" eval="20"/> |  | ||||
|         <field name="inherit_id" ref="purchase.purchase_order_form"/> |  | ||||
|         <field name="arch" type="xml"> |  | ||||
|         <xpath expr="//div[hasclass('clearfix')]" position="before"> |  | ||||
|             <group> |  | ||||
|                 <group name="purchase_signature" string="Digital Signature" |  | ||||
|                    attrs="{'invisible': [('show_signature','=',False)]}"> |  | ||||
|                     <field name="show_signature" invisible="1"/> |  | ||||
|                     <field name="enable_others" invisible="1"/> |  | ||||
|                         <field name="digital_sign"/> |  | ||||
|                         <field name="sign_by" |  | ||||
|                                attrs="{'invisible': [ |  | ||||
|                                ('enable_others','=',False)]}" |  | ||||
|                         /> |  | ||||
|                         <field name="designation" |  | ||||
|                                attrs="{'invisible': [ |  | ||||
|                                ('enable_others','=',False)]}"/> |  | ||||
|                         <field name="sign_on" |  | ||||
|                                attrs="{'invisible': [ |  | ||||
|                                ('enable_others','=',False)]}"/> |  | ||||
|                 </group> |  | ||||
|             </group> |  | ||||
|         </xpath> |  | ||||
|         </field> |  | ||||
|     </record> |  | ||||
| </odoo> |  | ||||
| @ -0,0 +1,112 @@ | |||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||
|  | <odoo> | ||||
|  |     <!-- Report template for purchase order report --> | ||||
|  |     <template | ||||
|  |             id="purchase_report_purchaseorder_document_inherit_digital_signature" | ||||
|  |             inherit_id="purchase.report_purchaseorder_document"> | ||||
|  |         <xpath expr="//div[@id='total']" position="after"> | ||||
|  |             <div id="signature" class="row justify-content-end"> | ||||
|  |                 <t t-if="o.company_id.position == 'left'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and o.show_stamp_po and | ||||
|  |                         o.digital_sign  and o.show_signature"> | ||||
|  |                             <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="left"/> | ||||
|  |                             <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and o.show_stamp_po"> | ||||
|  |                             <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="left"/> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and o.show_signature"> | ||||
|  |                             <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 50px;"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left:50px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left:50px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left:50px;"/> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |                 <t t-if="o.company_id.position == 'right'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and o.digital_sign and | ||||
|  |                         o.show_stamp_po and o.show_signature"> | ||||
|  |                             <t t-if="o.company_id.stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                      class="right"/> | ||||
|  |                             </t> | ||||
|  | 
 | ||||
|  |                             <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 8cm; | ||||
|  |                                  padding-top: 50px;" class="right"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="padding-top: 150px; margin-left: 650px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 650px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 650px;"/> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and o.show_stamp_po"> | ||||
|  |                             <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="right"/> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and o.show_signature"> | ||||
|  |                             <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 8cm; | ||||
|  |                                  padding-top: 50px;" class="right"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="padding-top: 150px;margin-left:700px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 700px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 700px;"/> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |                 <t t-if="o.company_id.position == 'center'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and o.digital_sign and | ||||
|  |                         o.show_stamp_po and o.show_signature"> | ||||
|  |                             <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="center"/> | ||||
|  |                             <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  class="center_sign"/> | ||||
|  |                             <p t-field="o.sign_by" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.sign_on" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.designation" style="margin-left: 420px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and o.show_stamp_po"> | ||||
|  |                             <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="center"/> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and o.show_signature"> | ||||
|  |                             <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  class="center"/> | ||||
|  |                             <p t-field="o.sign_by" style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.sign_on" style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.designation" style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |             </div> | ||||
|  |         </xpath> | ||||
|  |     </template> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,33 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!-- Inheriting view for purchase order form --> | ||||
|  |     <record id="purchase_order_form" model="ir.ui.view"> | ||||
|  |         <field name="name">purchase.order.view.form.inherit.digital.signature | ||||
|  |         </field> | ||||
|  |         <field name="model">purchase.order</field> | ||||
|  |         <field name="priority" eval="20"/> | ||||
|  |         <field name="inherit_id" ref="purchase.purchase_order_form"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <xpath expr="//div[hasclass('clearfix')]" position="before"> | ||||
|  |                 <group> | ||||
|  |                     <group name="purchase_signature" string="Digital Signature" | ||||
|  |                            attrs="{'invisible': [('show_signature','=',False)]}"> | ||||
|  |                         <field name="show_signature" invisible="1"/> | ||||
|  |                         <field name="enable_sign" invisible="1"/> | ||||
|  |                         <field name="digital_sign"/> | ||||
|  |                         <field name="sign_by" | ||||
|  |                                attrs="{'invisible': [ | ||||
|  |                                ('enable_sign','=',False)]}" | ||||
|  |                         /> | ||||
|  |                         <field name="designation" | ||||
|  |                                attrs="{'invisible': [ | ||||
|  |                                ('enable_sign','=',False)]}"/> | ||||
|  |                         <field name="sign_on" | ||||
|  |                                attrs="{'invisible': [ | ||||
|  |                                ('enable_sign','=',False)]}"/> | ||||
|  |                     </group> | ||||
|  |                 </group> | ||||
|  |             </xpath> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -1,28 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> |  | ||||
| <odoo> |  | ||||
|    <!-- Inheriting from 'purchase.report_purchaseorder_document'. --> |  | ||||
|    <template id="purchase_report_inherit" inherit_id="purchase.report_purchaseorder_document"> |  | ||||
|        <xpath expr="//div[@id='total']" position="after"> |  | ||||
|            <div id="signature" class="row justify-content-end"> |  | ||||
|                 <div class="col-4"> |  | ||||
|                     <table class="table table-sm"> |  | ||||
|                         <!-- Check if 'digital_sign' exists before proceeding. --> |  | ||||
|                         <div t-if="o.digital_sign" class="mt32 ml64 mr4" name="signature"> |  | ||||
|                             <!-- Display the digital signature as an image. --> |  | ||||
|                             <img t-att-src="image_data_uri(o.digital_sign)" |  | ||||
|                                  style="max-height: 4cm; max-width: 8cm; padding-top: 50px;"/> |  | ||||
|                         </div> |  | ||||
|                         <tr> |  | ||||
|                             <td class="text-right" style="border: 1px solid white; background:none;"> |  | ||||
|                                 <!-- Display 'sign_by', 'sign_on', and 'designation' fields if they exist. --> |  | ||||
|                                 <p t-if="o.sign_by" t-field="o.sign_by"/> |  | ||||
|                                 <p t-if="o.sign_on" t-field="o.sign_on"/> |  | ||||
|                                 <p t-if="o.designation" t-field="o.designation"/> |  | ||||
|                             </td> |  | ||||
|                         </tr> |  | ||||
|                     </table> |  | ||||
|                 </div> |  | ||||
|            </div> |  | ||||
|         </xpath> |  | ||||
|    </template> |  | ||||
| </odoo> |  | ||||
| @ -0,0 +1,20 @@ | |||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||
|  | <odoo> | ||||
|  |     <!-- Inheriting view for res company form --> | ||||
|  |     <record id="view_company_form" model="ir.ui.view"> | ||||
|  |         <field name="name">res.company.view.form.inherit.digital_signature | ||||
|  |         </field> | ||||
|  |         <field name="model">res.company</field> | ||||
|  |         <field name="inherit_id" ref="base.view_company_form"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <xpath expr="//page[@name='general_info']" position="after"> | ||||
|  |                 <page name="stamp" string="Stamp"> | ||||
|  |                     <group> | ||||
|  |                         <field name="stamp" widget="image"/> | ||||
|  |                         <field name="position"/> | ||||
|  |                     </group> | ||||
|  |                 </page> | ||||
|  |             </xpath> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -1,215 +0,0 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||
| <odoo> |  | ||||
| 
 |  | ||||
|     <record id="res_config_settings_view_form_purchase_inherit" |  | ||||
|             model="ir.ui.view"> |  | ||||
|         <field name="name">res.config.settings.view.form.inherit.purchase</field> |  | ||||
|         <field name="model">res.config.settings</field> |  | ||||
|         <field name="priority" eval="10"/> |  | ||||
|         <field name="inherit_id" |  | ||||
|                ref="purchase.res_config_settings_view_form_purchase" /> |  | ||||
|         <field name="arch" type="xml"> |  | ||||
|             <xpath expr="//div[@data-key='purchase']/div[ |  | ||||
|             @name='matrix_setting_container']" |  | ||||
|                    position="after"> |  | ||||
|                 <h2>Digital Signature</h2> |  | ||||
|                 <div class="row mt16 o_settings_container"> |  | ||||
|                         <div class="col-12 col-lg-6 o_setting_box"> |  | ||||
|                                 <div class="o_setting_left_pane"> |  | ||||
|                                     <field name="show_digital_sign_po"/> |  | ||||
|                                 </div> |  | ||||
|                                 <div class="o_setting_right_pane"> |  | ||||
|                                     <label for="show_digital_sign_po" |  | ||||
|                                            string="Show Digital Sign |  | ||||
|                                            in Purchase Orders?"/> |  | ||||
|                                     <div class="text-muted"> |  | ||||
|                                         Show digital sign inside purchase orders |  | ||||
|                                     </div> |  | ||||
|                                 </div> |  | ||||
|                             </div> |  | ||||
|                             <div class="col-12 col-lg-6 o_setting_box" |  | ||||
|                                  attrs="{'invisible': [ |  | ||||
|                                  ('show_digital_sign_po', '==', False)]}"> |  | ||||
|                                 <div class="o_setting_left_pane"> |  | ||||
|                                     <field name="enable_options_po"/> |  | ||||
|                                 </div> |  | ||||
|                                 <div class="o_setting_right_pane"> |  | ||||
|                                     <label for="enable_options_po" |  | ||||
|                                            string="Enable Other Sign Options"/> |  | ||||
|                                     <div class="text-muted"> |  | ||||
|                                         Enable Other Sign Option |  | ||||
|                                     </div> |  | ||||
|                                 </div> |  | ||||
|                             </div> |  | ||||
|                             <div class="col-12 col-lg-6 o_setting_box" |  | ||||
|                                  attrs="{'invisible': [ |  | ||||
|                                         ('show_digital_sign_po', '==', False)]}"> |  | ||||
|                                 <div class="o_setting_left_pane"> |  | ||||
|                                     <field name="confirm_sign_po"/> |  | ||||
|                                 </div> |  | ||||
|                                 <div class="o_setting_right_pane"> |  | ||||
|                                     <label for="confirm_sign_po" |  | ||||
|                                            string="Check Sign |  | ||||
|                                            before confirmation"/> |  | ||||
|                                     <div class="text-muted"> |  | ||||
|                                         Check Sign before confirmation |  | ||||
|                                         purchase Order |  | ||||
|                                     </div> |  | ||||
|                                 </div> |  | ||||
|                             </div> |  | ||||
|                 </div> |  | ||||
| 
 |  | ||||
|                 </xpath> |  | ||||
|         </field> |  | ||||
|     </record> |  | ||||
| 
 |  | ||||
|     <record id="res_config_settings_view_form_stock_inherit" model="ir.ui.view"> |  | ||||
|         <field name="name">res.config.settings.view.form.inherit.stock</field> |  | ||||
|         <field name="model">res.config.settings</field> |  | ||||
|         <field name="priority" eval="10"/> |  | ||||
|         <field name="inherit_id" ref="stock.res_config_settings_view_form" /> |  | ||||
|         <field name="arch" type="xml"> |  | ||||
|             <xpath expr="//div[@data-key='stock']/div[ |  | ||||
|             @name='warehouse_setting_container']" position="after"> |  | ||||
|                 <h2>Digital Signature</h2> |  | ||||
|                 <div class="row mt16 o_settings_container"> |  | ||||
|                     <div class="col-12 col-lg-6 o_setting_box"> |  | ||||
|                         <div class="o_setting_left_pane"> |  | ||||
|                             <field name="show_digital_sign_inventory"/> |  | ||||
|                         </div> |  | ||||
|                         <div class="o_setting_right_pane"> |  | ||||
|                             <label for="show_digital_sign_inventory" |  | ||||
|                                    string="Show Digital Sign in Inventory?"/> |  | ||||
|                             <div class="text-muted"> |  | ||||
|                                 Show digital sign inside inventory |  | ||||
|                             </div> |  | ||||
|                         </div> |  | ||||
|                     </div> |  | ||||
|                     <div class="col-12 col-lg-6 o_setting_box" |  | ||||
|                          attrs="{'invisible': [ |  | ||||
|                          ('show_digital_sign_inventory', '==', False)]}"> |  | ||||
|                         <div class="o_setting_left_pane"> |  | ||||
|                             <field name="enable_options_inventory"/> |  | ||||
|                         </div> |  | ||||
|                         <div class="o_setting_right_pane"> |  | ||||
|                             <label for="enable_options_inventory" |  | ||||
|                                    string="Enable Other Sign Options"/> |  | ||||
|                             <div class="text-muted"> |  | ||||
|                                 Enable Other Sign Option |  | ||||
|                             </div> |  | ||||
|                         </div> |  | ||||
|                     </div> |  | ||||
|                     <div class="col-12 col-lg-6 o_setting_box" |  | ||||
|                          id="show_sign_in_inventory" |  | ||||
|                          attrs="{'invisible': [ |  | ||||
|                          ('show_digital_sign_inventory', '==', False)]}"> |  | ||||
|                         <div class="o_setting_left_pane"/> |  | ||||
|                             <div class="o_setting_right_pane"> |  | ||||
|                                 <label for="sign_applicable"/> |  | ||||
|                                 <div class="text-muted"> |  | ||||
|                                     Show digital sign inside delivery slip, |  | ||||
|                                     inventory options or both |  | ||||
|                                 </div> |  | ||||
|                                 <div class="content-group"> |  | ||||
|                                     <div class="mt16"> |  | ||||
|                                         <field name="sign_applicable" |  | ||||
|                                                class="o_light_label" |  | ||||
|                                                widget="radio"/> |  | ||||
|                                     </div> |  | ||||
|                                 </div> |  | ||||
|                             </div> |  | ||||
|                     </div> |  | ||||
| 
 |  | ||||
|                     <div class="col-12 col-lg-6 o_setting_box" |  | ||||
|                          attrs="{'invisible': [ |  | ||||
|                          ('show_digital_sign_inventory', '==', False)]}"> |  | ||||
|                         <div class="o_setting_left_pane"> |  | ||||
|                             <field name="confirm_sign_inventory"/> |  | ||||
|                         </div> |  | ||||
|                         <div class="o_setting_right_pane"> |  | ||||
|                             <label for="confirm_sign_inventory" |  | ||||
|                                    string="Check Sign before confirmation"/> |  | ||||
|                             <div class="text-muted"> |  | ||||
|                                 Check Sign before confirmation |  | ||||
|                             </div> |  | ||||
|                         </div> |  | ||||
|                     </div> |  | ||||
|                 </div> |  | ||||
|             </xpath> |  | ||||
|         </field> |  | ||||
|     </record> |  | ||||
|         <record id="res_config_settings_view_form_invoice_inherit" |  | ||||
|                 model="ir.ui.view"> |  | ||||
|         <field name="name">res.config.settings.view.form.inherit.invoice</field> |  | ||||
|         <field name="model">res.config.settings</field> |  | ||||
|         <field name="priority" eval="10"/> |  | ||||
|         <field name="inherit_id" ref="account.res_config_settings_view_form"/> |  | ||||
|         <field name="arch" type="xml"> |  | ||||
|             <xpath expr="//div[@data-key='account']/div[ |  | ||||
|             @id='print_vendor_checks_setting_container']" position="after"> |  | ||||
|                 <h2>Digital Signature</h2> |  | ||||
|                 <div class="row mt16 o_settings_container"> |  | ||||
|                     <div class="col-12 col-lg-6 o_setting_box"> |  | ||||
|                         <div class="o_setting_left_pane"> |  | ||||
|                             <field name="show_digital_sign_invoice"/> |  | ||||
|                         </div> |  | ||||
|                         <div class="o_setting_right_pane"> |  | ||||
|                             <label for="show_digital_sign_invoice" |  | ||||
|                                    string="Show Digital Sign in |  | ||||
|                                    Customer Invoice?"/> |  | ||||
|                             <div class="text-muted"> |  | ||||
|                                 Show digital sign inside customer invoice |  | ||||
|                             </div> |  | ||||
|                         </div> |  | ||||
|                     </div> |  | ||||
|                     <div class="col-12 col-lg-6 o_setting_box" |  | ||||
|                          attrs="{'invisible': [ |  | ||||
|                          ('show_digital_sign_invoice', '==', False), |  | ||||
|                          ('show_digital_sign_bill', '==', False)]}"> |  | ||||
|                         <div class="o_setting_left_pane"> |  | ||||
|                             <field name="enable_options_invoice"/> |  | ||||
|                         </div> |  | ||||
|                         <div class="o_setting_right_pane"> |  | ||||
|                             <label for="enable_options_invoice" |  | ||||
|                                    string="Enable Other Sign Options"/> |  | ||||
|                             <div class="text-muted"> |  | ||||
|                                 Enable Other Sign Option |  | ||||
|                             </div> |  | ||||
|                         </div> |  | ||||
|                     </div> |  | ||||
| 
 |  | ||||
|                     <div class="col-12 col-lg-6 o_setting_box" |  | ||||
|                          attrs="{'invisible': [ |  | ||||
|                          ('show_digital_sign_invoice', '==', False), |  | ||||
|                          ('show_digital_sign_bill', '==', False)]}"> |  | ||||
|                         <div class="o_setting_left_pane"> |  | ||||
|                             <field name="confirm_sign_invoice"/> |  | ||||
|                         </div> |  | ||||
|                         <div class="o_setting_right_pane"> |  | ||||
|                             <label for="confirm_sign_invoice" |  | ||||
|                                    string="Check Sign before confirmation"/> |  | ||||
|                             <div class="text-muted"> |  | ||||
|                                 Check Sign before confirmation |  | ||||
|                             </div> |  | ||||
|                         </div> |  | ||||
|                     </div> |  | ||||
|                     <div class="col-12 col-lg-6 o_setting_box"> |  | ||||
|                         <div class="o_setting_left_pane"> |  | ||||
|                             <field name="show_digital_sign_bill"/> |  | ||||
|                         </div> |  | ||||
|                         <div class="o_setting_right_pane"> |  | ||||
|                             <label for="show_digital_sign_bill" |  | ||||
|                                    string="Show Digital Sign in Vendor Bill?"/> |  | ||||
|                             <div class="text-muted"> |  | ||||
|                                 Show digital sign inside vendor bill |  | ||||
|                             </div> |  | ||||
|                         </div> |  | ||||
|                     </div> |  | ||||
| 
 |  | ||||
|                 </div> |  | ||||
|             </xpath> |  | ||||
|         </field> |  | ||||
|     </record> |  | ||||
| 
 |  | ||||
| 
 |  | ||||
| </odoo> |  | ||||
| @ -0,0 +1,313 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!-- Inheriting view for purchase order settings  --> | ||||
|  |     <record id="res_config_settings_view_form_purchase" | ||||
|  |             model="ir.ui.view"> | ||||
|  |         <field name="name"> | ||||
|  |             res.config.settings.view.form.inherit.digital.signature | ||||
|  |         </field> | ||||
|  |         <field name="model">res.config.settings</field> | ||||
|  |         <field name="priority" eval="10"/> | ||||
|  |         <field name="inherit_id" | ||||
|  |                ref="purchase.res_config_settings_view_form_purchase"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <xpath expr="//div[@data-key='purchase']/div[ | ||||
|  |             @name='matrix_setting_container']" | ||||
|  |                    position="after"> | ||||
|  |                 <h2>Digital Signature</h2> | ||||
|  |                 <div class="row mt16 o_settings_container"> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="show_digital_sign_po"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="show_digital_sign_po" | ||||
|  |                                    string="Show Digital Sign | ||||
|  |                                            in Purchase Orders?"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show digital sign inside purchase orders | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                                  ('show_digital_sign_po', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="enable_options_po"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="enable_options_po" | ||||
|  |                                    string="Other Sign Options"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show other sign option | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                                         ('show_digital_sign_po', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="confirm_sign_po"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="confirm_sign_po" | ||||
|  |                                    string="Check Sign | ||||
|  |                                            Before Confirmation"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Check Sign Before Confirmation | ||||
|  |                                 Purchase Order | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </xpath> | ||||
|  |             <xpath expr="//div[@data-key='purchase']/div[ | ||||
|  |             @name='matrix_setting_container']" position="after"> | ||||
|  |                 <h2>Company Stamp</h2> | ||||
|  |                 <div class="row mt16 o_settings_container"> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="show_company_stamp_po"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="show_company_stamp_po" | ||||
|  |                                    string="Show Company Stamp | ||||
|  |                                            in Purchase Orders?"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show company stamp inside purchase orders | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </xpath> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  |     <!--Inheriting view for inventory  setting form --> | ||||
|  |     <record id="res_config_settings_view_form" model="ir.ui.view"> | ||||
|  |         <field name="name"> | ||||
|  |             res.config.settings.view.form.inherit.digital.signature | ||||
|  |         </field> | ||||
|  |         <field name="model">res.config.settings</field> | ||||
|  |         <field name="priority" eval="10"/> | ||||
|  |         <field name="inherit_id" ref="stock.res_config_settings_view_form"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <xpath expr="//div[@data-key='stock']/div[ | ||||
|  |             @name='warehouse_setting_container']" position="after"> | ||||
|  |                 <h2>Digital Signature</h2> | ||||
|  |                 <div class="row mt16 o_settings_container"> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="show_digital_sign_inventory"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="show_digital_sign_inventory" | ||||
|  |                                    string="Show Digital Sign in Inventory?"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show digital signature inside inventory | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                          ('show_digital_sign_inventory', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="enable_options_inventory"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="enable_options_inventory" | ||||
|  |                                    string="Other Sign Options"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to get Other Sign Option | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          id="show_sign_in_inventory" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                          ('show_digital_sign_inventory', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"/> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="sign_applicable"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show digital sign inside delivery slip, | ||||
|  |                                 inventory options or both | ||||
|  |                             </div> | ||||
|  |                             <div class="content-group"> | ||||
|  |                                 <div class="mt16"> | ||||
|  |                                     <field name="sign_applicable" | ||||
|  |                                            class="o_light_label" | ||||
|  |                                            widget="radio"/> | ||||
|  |                                 </div> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                          ('show_digital_sign_inventory', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="confirm_sign_inventory"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="confirm_sign_inventory" | ||||
|  |                                    string="Check Sign Before Confirmation"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to Check Sign Before Confirmation | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </xpath> | ||||
|  |             <xpath expr="//div[@data-key='stock']/div[ | ||||
|  |             @name='warehouse_setting_container']" position="after"> | ||||
|  |                 <h2>Company Stamp</h2> | ||||
|  |                 <div class="row mt16 o_settings_container"> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="show_company_stamp_inventory"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="show_digital_sign_inventory" | ||||
|  |                                    string="Show Company Stamp in Inventory?"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show company stamp inside inventory | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          id="show_company_stamp_inventory" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                          ('show_company_stamp_inventory', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"/> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="company_stamp_applicable"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show company stamp inside delivery slip, | ||||
|  |                                 inventory options or both | ||||
|  |                             </div> | ||||
|  |                             <div class="content-group"> | ||||
|  |                                 <div class="mt16"> | ||||
|  |                                     <field name="company_stamp_applicable" | ||||
|  |                                            class="o_light_label" | ||||
|  |                                            widget="radio"/> | ||||
|  |                                 </div> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </xpath> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  |     <!-- View for account move settings form --> | ||||
|  |     <record id="res_config_settings_view_form_account" | ||||
|  |             model="ir.ui.view"> | ||||
|  |         <field name="name"> | ||||
|  |             res.config.settings.view.form.inherit.digital.signature | ||||
|  |         </field> | ||||
|  |         <field name="model">res.config.settings</field> | ||||
|  |         <field name="priority" eval="10"/> | ||||
|  |         <field name="inherit_id" ref="account.res_config_settings_view_form"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <xpath expr="//div[@data-key='account']/div[ | ||||
|  |             @id='print_vendor_checks_setting_container']" position="after"> | ||||
|  |                 <h2>Digital Signature</h2> | ||||
|  |                 <div class="row mt16 o_settings_container"> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="show_digital_sign_invoice"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="show_digital_sign_invoice" | ||||
|  |                                    string="Show Digital Sign in | ||||
|  |                                    Customer Invoice?"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show digital sign inside customer invoice | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                          ('show_digital_sign_invoice', '==', False), | ||||
|  |                          ('show_digital_sign_bill', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="enable_options_invoice"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="enable_options_invoice" | ||||
|  |                                    string="Other Sign Options"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to Get Other Sign Option | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  | 
 | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                          ('show_digital_sign_invoice', '==', False), | ||||
|  |                          ('show_digital_sign_bill', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="confirm_sign_invoice"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="confirm_sign_invoice" | ||||
|  |                                    string="Check Sign Before Confirmation"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to Check Sign Before Confirmation | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="show_digital_sign_bill"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="show_digital_sign_bill" | ||||
|  |                                    string="Show Digital Sign in Vendor Bill?"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show digital sign inside vendor bill | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </xpath> | ||||
|  |             <xpath expr="//div[@data-key='account']/div[ | ||||
|  |             @id='print_vendor_checks_setting_container']" position="after"> | ||||
|  |                 <h2>Company stamp</h2> | ||||
|  |                 <div class="row mt16 o_settings_container"> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box"> | ||||
|  |                         <div class="o_setting_left_pane"> | ||||
|  |                             <field name="show_company_stamp_invoice"/> | ||||
|  |                         </div> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="show_company_stamp_invoice" | ||||
|  |                                    string="Show Company Stamp in Invoicing?"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show company stamp inside invoicing | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                     <div class="col-12 col-lg-6 o_setting_box" | ||||
|  |                          id="show_company_stamp_inventory" | ||||
|  |                          attrs="{'invisible': [ | ||||
|  |                          ('show_company_stamp_invoice', '==', False)]}"> | ||||
|  |                         <div class="o_setting_left_pane"/> | ||||
|  |                         <div class="o_setting_right_pane"> | ||||
|  |                             <label for="company_stamp_applicable"/> | ||||
|  |                             <div class="text-muted"> | ||||
|  |                                 Enable to show company stamp inside customer invoice, | ||||
|  |                                 vendor bill | ||||
|  |                                 or both | ||||
|  |                             </div> | ||||
|  |                             <div class="content-group"> | ||||
|  |                                 <div class="mt16"> | ||||
|  |                                     <field name="company_stamp_applicable_invoicing" | ||||
|  |                                            class="o_light_label" | ||||
|  |                                            widget="radio"/> | ||||
|  |                                 </div> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </xpath> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -1,60 +0,0 @@ | |||||
| <?xml version="1.0" encoding="UTF-8" ?> |  | ||||
| <odoo> |  | ||||
|     <!-- Inheriting from 'stock.report_picking'. --> |  | ||||
|     <template id="stock_picking_report_inherit" inherit_id="stock.report_picking"> |  | ||||
|         <xpath expr="//table" position="after"> |  | ||||
|             <div id="signature" class="row justify-content-end"> |  | ||||
|                 <!-- Check if 'sign_applicable' is 'picking_operations' or 'both' for displaying the signature. --> |  | ||||
|                 <t t-if="o.sign_applicable == 'picking_operations' or o.sign_applicable == 'both"> |  | ||||
|                     <div class="col-4"> |  | ||||
|                         <table class="table table-sm"> |  | ||||
|                             <!-- Check if 'digital_sign' exists before proceeding. --> |  | ||||
|                             <div t-if="o.digital_sign" class="mt32 ml64 mr4" name="signature"> |  | ||||
|                                 <!-- Display the digital signature as an image. --> |  | ||||
|                                 <img t-att-src="image_data_uri(o.digital_sign)" |  | ||||
|                                      style="max-height: 4cm; max-width: 8cm; padding-top: 50px;"/> |  | ||||
|                             </div> |  | ||||
|                             <tr> |  | ||||
|                                 <td class="text-right" style="border: 1px solid white; background:none;"> |  | ||||
|                                     <!-- Display 'sign_by', 'sign_on', and 'designation' fields if they exist. --> |  | ||||
|                                     <p t-if="o.sign_by" t-field="o.sign_by"/> |  | ||||
|                                     <p t-if="o.sign_on" t-field="o.sign_on"/> |  | ||||
|                                     <p t-if="o.designation" t-field="o.designation"/> |  | ||||
|                                 </td> |  | ||||
|                             </tr> |  | ||||
|                         </table> |  | ||||
|                     </div> |  | ||||
|                 </t> |  | ||||
|             </div> |  | ||||
|         </xpath> |  | ||||
|     </template> |  | ||||
| 
 |  | ||||
|     <!-- Inheriting from 'stock.report_delivery_document'. --> |  | ||||
|     <template id="stock_delivery_slip_inherit" inherit_id="stock.report_delivery_document"> |  | ||||
|         <xpath expr="//div[@name='signature']" position="before"> |  | ||||
|             <div id="signature" class="row justify-content-end"> |  | ||||
|                 <!-- Check if 'sign_applicable' is 'delivery' or 'both' for displaying the signature. --> |  | ||||
|                 <t t-if="o.sign_applicable == 'delivery' or o.sign_applicable == 'both'"> |  | ||||
|                     <div class="col-4"> |  | ||||
|                         <table class="table table-sm"> |  | ||||
|                             <!-- Check if 'digital_sign' exists before proceeding. --> |  | ||||
|                             <div t-if="o.digital_sign" class="mt32 ml64 mr4" name="signature"> |  | ||||
|                                 <!-- Display the digital signature as an image. --> |  | ||||
|                                 <img t-att-src="image_data_uri(o.digital_sign)" |  | ||||
|                                      style="max-height: 4cm; max-width: 8cm; padding-top: 50px;"/> |  | ||||
|                             </div> |  | ||||
|                             <tr> |  | ||||
|                                 <td class="text-right" style="border: 1px solid white; background:none;"> |  | ||||
|                                     <!-- Display 'sign_by', 'sign_on', and 'designation' fields if they exist. --> |  | ||||
|                                     <p t-if="o.sign_by" t-field="o.sign_by"/> |  | ||||
|                                     <p t-if="o.sign_on" t-field="o.sign_on"/> |  | ||||
|                                     <p t-if="o.designation" t-field="o.designation"/> |  | ||||
|                                 </td> |  | ||||
|                             </tr> |  | ||||
|                         </table> |  | ||||
|                     </div> |  | ||||
|                 </t> |  | ||||
|             </div> |  | ||||
|         </xpath> |  | ||||
|     </template> |  | ||||
| </odoo> |  | ||||
| @ -0,0 +1,416 @@ | |||||
|  | <?xml version="1.0" encoding="UTF-8" ?> | ||||
|  | <odoo> | ||||
|  |     <!--    Report template for picking operation --> | ||||
|  |     <template id="stock_report_picking_inherit_digital_signature" | ||||
|  |               inherit_id="stock.report_picking"> | ||||
|  |         <xpath expr="//table" position="after"> | ||||
|  |             <div id="signature" class="row justify-content-end"> | ||||
|  |                 <t t-if="o.company_id.position == 'left'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'picking_stamp' | ||||
|  |                         and o.sign_applicable == 'picking_operations' | ||||
|  |                         and o.digital_sign and o.show_sign and o.show_stamp or | ||||
|  |                         o.sign_applicable=='both' and o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'picking_stamp' and | ||||
|  |                         o.show_stamp or o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and | ||||
|  |                         o.sign_applicable == 'picking_operations' and  o.show_sign | ||||
|  |                         or o.sign_applicable == 'both' and o.digital_sign "> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |                 <t t-if="o.company_id.position == 'right'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'picking_stamp' and | ||||
|  |                         o.sign_applicable == 'picking_operations' and | ||||
|  |                         o.digital_sign and o.show_sign and o.show_stamp  or | ||||
|  |                         o.sign_applicable=='both' and | ||||
|  |                         o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;" class="right"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="padding-top: 150px;margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'picking_stamp' and | ||||
|  |                         o.show_stamp or o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;" class="right"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="padding-top: 150px;margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and | ||||
|  |                         o.sign_applicable == 'picking_operations' and | ||||
|  |                         o.show_sign or o.sign_applicable  == 'both'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;" class="right"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="padding-top: 150px;margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |                 <t t-if="o.company_id.position == 'center'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'picking_stamp' and | ||||
|  |                         o.sign_applicable == 'picking_operations' and | ||||
|  |                         o.digital_sign and o.show_sign and o.show_stamp  or | ||||
|  |                         o.sign_applicable=='both' and | ||||
|  |                         o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 50px;" class="center"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'picking_stamp' and | ||||
|  |                         o.show_stamp or o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 50px;" class="center"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and | ||||
|  |                         o.sign_applicable == 'picking_operations' and | ||||
|  |                         o.show_sign or o.sign_applicable== 'both' "> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 50px;" class="center"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |             </div> | ||||
|  |         </xpath> | ||||
|  |     </template> | ||||
|  |     <!-- Report template for delivery slip--> | ||||
|  |     <template id="stock_report_delivery_document_inherit_digital_signature" | ||||
|  |               inherit_id="stock.report_delivery_document"> | ||||
|  |         <xpath expr="//div[@name='signature']" position="before"> | ||||
|  |             <div id="signature" class="row justify-content-end"> | ||||
|  |                 <t t-if="o.company_id.position == 'left'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'delivery_stamp' and | ||||
|  |                         o.digital_sign  and o.show_sign and | ||||
|  |                         o.sign_applicable == 'delivery' or | ||||
|  |                         o.sign_applicable=='both' and o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'delivery_stamp' and | ||||
|  |                         o.show_stamp or o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and o.sign_applicable == 'delivery' | ||||
|  |                         and o.show_sign or o.sign_applicable == 'both'"> | ||||
|  |                            <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="left"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left:160px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |                 <t t-if="o.company_id.position == 'right'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'delivery_stamp' and o.digital_sign | ||||
|  |                         and o.show_sign and o.sign_applicable == 'delivery' and | ||||
|  |                         o.show_stamp or o.sign_applicable=='both' and | ||||
|  |                         o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;" class="right"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="padding-top: 150px;margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'delivery_stamp' and | ||||
|  |                         o.show_stamp or o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;" class="right"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="padding-top: 150px;margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and | ||||
|  |                         o.sign_applicable == 'delivery' and | ||||
|  |                         o.show_sign or o.sign_applicable == 'both'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="right"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 60px;" class="right"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="padding-top: 150px;margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 550px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |                 <t t-if="o.company_id.position == 'center'"> | ||||
|  |                     <div> | ||||
|  |                         <t t-if="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'delivery_stamp' and | ||||
|  |                         o.digital_sign  and o.show_sign and | ||||
|  |                         o.sign_applicable == 'delivery' and o.show_stamp or | ||||
|  |                         o.sign_applicable=='both' and | ||||
|  |                         o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 50px;" class="center"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.company_id.stamp and | ||||
|  |                         o.stamp_applicable == 'delivery_stamp' and | ||||
|  |                         o.show_stamp or  o.stamp_applicable == 'both_stamp'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 50px;" class="center"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                         <t t-elif="o.digital_sign and  o.sign_applicable == 'delivery' | ||||
|  |                         and  o.show_sign or o.sign_applicable == 'both'"> | ||||
|  |                             <t t-if="o.show_stamp"> | ||||
|  |                                 <img t-att-src="image_data_uri(o.company_id.stamp)" | ||||
|  |                                  class="center"/> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="o.show_sign"> | ||||
|  |                               <img t-att-src="image_data_uri(o.digital_sign)" | ||||
|  |                                  style="max-height: 4cm; max-width: 6cm; | ||||
|  |                                  padding-top: 50px;" class="center"/> | ||||
|  |                             <p t-field="o.sign_by" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.sign_on" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             <p t-field="o.designation" | ||||
|  |                                style="margin-left: 320px; | ||||
|  |                             margin-top: -10px;"/> | ||||
|  |                             </t> | ||||
|  |                         </t> | ||||
|  |                     </div> | ||||
|  |                 </t> | ||||
|  |             </div> | ||||
|  |         </xpath> | ||||
|  |     </template> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,32 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <!--    Inheriting view for stock picking form --> | ||||
|  |     <record id="view_picking_form" model="ir.ui.view"> | ||||
|  |         <field name="name">stock.picking.view.form.inherit.digital.signature | ||||
|  |         </field> | ||||
|  |         <field name="model">stock.picking</field> | ||||
|  |         <field name="priority" eval="20"/> | ||||
|  |         <field name="inherit_id" ref="stock.view_picking_form"/> | ||||
|  |         <field name="arch" type="xml"> | ||||
|  |             <xpath expr="//field[@name='move_ids_without_package']" | ||||
|  |                    position="after"> | ||||
|  |                 <group> | ||||
|  |                     <field name="show_sign" invisible="1"/> | ||||
|  |                     <field name="enable_option" invisible="1"/> | ||||
|  |                     <field name="sign_applicable" invisible="1"/> | ||||
|  |                     <group name="inventory_signature" string="Digital Signature" | ||||
|  |                            attrs="{'invisible': [('show_sign','=',False)]}"> | ||||
|  |                         <field name="digital_sign"/> | ||||
|  |                         <field name="sign_by" | ||||
|  |                                attrs="{'invisible': [('enable_option','=', | ||||
|  |                            False)]}"/> | ||||
|  |                         <field name="designation" | ||||
|  |                                attrs="{'invisible': [('enable_option','=',False)]}"/> | ||||
|  |                         <field name="sign_on" | ||||
|  |                                attrs="{'invisible': [('enable_option','=',False)]}"/> | ||||
|  |                     </group> | ||||
|  |                 </group> | ||||
|  |             </xpath> | ||||
|  |         </field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||