@ -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> |