You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							133 lines
						
					
					
						
							7.4 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							133 lines
						
					
					
						
							7.4 KiB
						
					
					
				
								# -*- coding: utf-8 -*-
							 | 
						|
								###############################################################################
							 | 
						|
								#
							 | 
						|
								#   Cybrosys Technologies Pvt. Ltd.
							 | 
						|
								#
							 | 
						|
								#   Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
							 | 
						|
								#   Author: Remya R( odoo@cybrosys.com )
							 | 
						|
								#
							 | 
						|
								#   You can modify it under the terms of the GNU AFFERO
							 | 
						|
								#   GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
							 | 
						|
								#
							 | 
						|
								#   You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
							 | 
						|
								#   (AGPL v3) along with this program.
							 | 
						|
								#   If not, see <http://www.gnu.org/licenses/>.
							 | 
						|
								#
							 | 
						|
								###############################################################################
							 | 
						|
								from odoo import fields, models
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								class ChequeFormat(models.Model):
							 | 
						|
								    """ Configure cheque print template."""
							 | 
						|
								    _name = 'cheque.format'
							 | 
						|
								    _description = 'Cheque Format'
							 | 
						|
								    _rec_name = 'bank_name'
							 | 
						|
								
							 | 
						|
								    bank_name = fields.Char(string='Bank Name',
							 | 
						|
								                            help='Enter the name of the bank.',
							 | 
						|
								                            required=True)
							 | 
						|
								    font_size = fields.Float(string='Font Size',
							 | 
						|
								                             help='Total font size for the text.')
							 | 
						|
								    cheque_width = fields.Float(string='Width', help='Width of the cheque.')
							 | 
						|
								    cheque_height = fields.Float(string='Height', help='Height of the cheque.')
							 | 
						|
								    print_cheque_number = fields.Boolean(string='Print Cheque Number',
							 | 
						|
								                                         help='Enable to print the cheque '
							 | 
						|
								                                              'sequence number. '
							 | 
						|
								                                              'You can adjust this if the '
							 | 
						|
								                                              'numbering is incorrect.')
							 | 
						|
								    cheque_no_tm = fields.Float(string='Cheque No: Top Margin',
							 | 
						|
								                                help="Top margin for the cheque number.")
							 | 
						|
								    cheque_no_lm = fields.Float(string='Cheque No: Left Margin',
							 | 
						|
								                                help="Left margin for the cheque number.")
							 | 
						|
								    is_account_payee = fields.Boolean(string="Crossed Account Payee Cheque",
							 | 
						|
								                                      help="Select to make the cheque a "
							 | 
						|
								                                           "Crossed Account Payee cheque. "
							 | 
						|
								                                           "Prints ‘A/C Payee Only’ between "
							 | 
						|
								                                           "parallel crossing lines.")
							 | 
						|
								    a_c_payee_top_margin = fields.Float(string='Payee Top Margin',
							 | 
						|
								                                        help="Top margin for the 'A/C Payee' "
							 | 
						|
								                                             "text.")
							 | 
						|
								    a_c_payee_left_margin = fields.Float(string="Payee Left Margin",
							 | 
						|
								                                         help="Left margin for the 'A/C Payee'"
							 | 
						|
								                                              " text.")
							 | 
						|
								    a_c_payee_width = fields.Float(string="Payee Width",
							 | 
						|
								                                   help="Width of the 'A/C Payee' text.")
							 | 
						|
								    a_c_payee_height = fields.Float(string="Payee Height",
							 | 
						|
								                                    help="Height of the 'A/C Payee' text.")
							 | 
						|
								    date_remove_slashes = fields.Boolean(string="Remove Slashes",
							 | 
						|
								                                         help="Enable to remove slashes from"
							 | 
						|
								                                              " the date.")
							 | 
						|
								    date_top_margin = fields.Float(string="Date Top Margin",
							 | 
						|
								                                   help="Top margin for the date.")
							 | 
						|
								    date_left_margin = fields.Float(string="Date Left Margin",
							 | 
						|
								                                    help="Left margin for the date.")
							 | 
						|
								    date_letter_spacing = fields.Float(string="Date Letter Spacing",
							 | 
						|
								                                       help="Spacing between date characters.")
							 | 
						|
								    beneficiary_top_margin = fields.Float(string="Beneficiary Top Margin",
							 | 
						|
								                                          help="Top margin for the beneficiary"
							 | 
						|
								                                               " name.")
							 | 
						|
								    beneficiary_left_margin = fields.Float(string="Beneficiary Left Margin",
							 | 
						|
								                                           help="Left margin for the "
							 | 
						|
								                                                "beneficiary name.")
							 | 
						|
								    amount_word_tm = fields.Float(string="Amount in Words Top Margin",
							 | 
						|
								                                  help="Top margin for the amount in words.")
							 | 
						|
								    amount_word_lm = fields.Float(string="Amount in Words Left Margin",
							 | 
						|
								                                  help="Left margin for the amount in words.")
							 | 
						|
								    amount_word_ls = fields.Float(string="Amount in Words Letter Spacing",
							 | 
						|
								                                  help="Spacing between characters in the "
							 | 
						|
								                                       "amount in words.")
							 | 
						|
								    print_currency = fields.Boolean(string="Print Currency Symbol",
							 | 
						|
								                                    help="Enable to print the currency symbol."
							 | 
						|
								                                         "")
							 | 
						|
								    amount_digit_tm = fields.Float(string="Amount in Digits Top Margin",
							 | 
						|
								                                   help="Top margin for the amount in digits."
							 | 
						|
								                                        "")
							 | 
						|
								    amount_digit_lm = fields.Float(string="Amount in Digits Left Margin",
							 | 
						|
								                                   help="Left margin for the amount in digits."
							 | 
						|
								                                        "")
							 | 
						|
								    amount_digit_ls = fields.Float(string="Amount in Digits Letter Spacing",
							 | 
						|
								                                   help="Spacing between characters in the "
							 | 
						|
								                                        "amount in digits.")
							 | 
						|
								    amount_digit_size = fields.Float(string="Amount in Digits Font Size",
							 | 
						|
								                                     help="Font size for the amount in digits"
							 | 
						|
								                                          ".")
							 | 
						|
								
							 | 
						|
								    def action_print_test(self):
							 | 
						|
								        """Print a test cheque to make corrections for the user in
							 | 
						|
								         cheque format."""
							 | 
						|
								        data = {
							 | 
						|
								            'cheque_width': self.cheque_width,
							 | 
						|
								            'cheque_height': self.cheque_height,
							 | 
						|
								            'font_size': self.font_size,
							 | 
						|
								            'print_cheque_number': self.print_cheque_number,
							 | 
						|
								            'cheque_no_tm': self.cheque_no_tm,
							 | 
						|
								            'cheque_no_lm': self.cheque_no_lm,
							 | 
						|
								            'is_account_payee': self.is_account_payee,
							 | 
						|
								            'a_c_payee_top_margin': self.a_c_payee_top_margin,
							 | 
						|
								            'a_c_payee_left_margin': self.a_c_payee_left_margin,
							 | 
						|
								            'a_c_payee_width': self.a_c_payee_width,
							 | 
						|
								            'a_c_payee_height': self.a_c_payee_height,
							 | 
						|
								            'date_top_margin': self.date_top_margin,
							 | 
						|
								            'date_left_margin': self.date_left_margin,
							 | 
						|
								            'date_letter_spacing': self.date_letter_spacing,
							 | 
						|
								            'beneficiary_top_margin': self.beneficiary_top_margin,
							 | 
						|
								            'beneficiary_left_margin': self.beneficiary_left_margin,
							 | 
						|
								            'amount_word_tm': self.amount_word_tm,
							 | 
						|
								            'amount_word_lm': self.amount_word_lm,
							 | 
						|
								            'amount_word_ls': self.amount_word_ls,
							 | 
						|
								            'amount_digit_tm': self.amount_digit_tm,
							 | 
						|
								            'amount_digit_lm': self.amount_digit_lm,
							 | 
						|
								            'amount_digit_ls': self.amount_digit_ls,
							 | 
						|
								            'amount_digit_size': self.amount_digit_size,
							 | 
						|
								            'print_currency': self.print_currency,
							 | 
						|
								            'currency_symbol': self.env.company.currency_id.symbol,
							 | 
						|
								            'date_remove_slashes': self.date_remove_slashes
							 | 
						|
								        }
							 | 
						|
								        return self.env.ref(
							 | 
						|
								            'odoo_print_cheque.test_cheque_action').report_action(None,
							 | 
						|
								                                                                  data=data)
							 | 
						|
								
							 |