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.
85 lines
4.2 KiB
85 lines
4.2 KiB
# -*- coding: utf-8 -*-
|
|
#############################################################################
|
|
#
|
|
# Cybrosys Technologies Pvt. Ltd.
|
|
#
|
|
# Copyright (C) 2025-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
|
|
# Author: Abbas P(<https://www.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/>.
|
|
#
|
|
#############################################################################
|
|
"""Franchise feedback form"""
|
|
from odoo import api, fields, models, _
|
|
|
|
|
|
class DealerSale(models.Model):
|
|
"""Franchise Dealer Monthly Sales Feedback."""
|
|
_name = "dealer.sale"
|
|
_inherit = ['portal.mixin', 'mail.thread', 'mail.activity.mixin',
|
|
'utm.mixin']
|
|
_description = "Dealer Sales"
|
|
_rec_name = "dealer_id"
|
|
|
|
serial_no = fields.Char(string="Sl No", help='Serial no', readonly=True,
|
|
copy=False, default='New')
|
|
dealer_id = fields.Many2one('franchise.dealer',
|
|
string="Franchise Dealer",
|
|
help='Franchise dealer name', required=True)
|
|
franchise_reference = fields.Char(string="Franchise Reference",
|
|
readonly=True,
|
|
help='Franchise Reference Number')
|
|
dealer_mail = fields.Char(string='mail', help='Franchise Dealer email')
|
|
dealer_agreement_id = fields.Many2one('franchise.agreement',
|
|
string="Franchise agreement type",
|
|
help='Franchise Agreement Type')
|
|
dealership_signed_on = fields.Date(string='Dealership Signed on',
|
|
readonly=True,
|
|
help='Dealership Contract Signed on')
|
|
sale_quantity = fields.Integer(string="Sale Quantity",
|
|
help='Total Sale Quantity')
|
|
scrap_quantity = fields.Integer(string="Scrap Quantity",
|
|
help='Total Scrap Quantity')
|
|
total_sale_amount = fields.Float(string="Sale Amount",
|
|
help='Total Sale Amount')
|
|
discount_percentage = fields.Float(string="Discount Given in(%)",
|
|
help='Discount Given in(%)')
|
|
monthly_target_amount = fields.Float(string="Monthly Target",
|
|
help='Monthly Target Amount')
|
|
monthly_target_gained = fields.Float(string="Monthly Target Gained in (%)",
|
|
help='Monthly Target Gained in (%)')
|
|
state = fields.Selection(selection=[('a_to_verify', 'To Verify'),
|
|
('b_verified', 'Verified')],
|
|
string='Status', required=True,
|
|
help='Status of the Franchise Registration',
|
|
readonly=True, copy=False,
|
|
tracking=True, default='a_to_verify')
|
|
company_id = fields.Many2one('res.company', string='Company',
|
|
help='Company Name',
|
|
change_default=True,
|
|
default=lambda self: self.env.company,
|
|
required=False)
|
|
|
|
def action_verify_sale(self):
|
|
"""Method to verify the sales feedback"""
|
|
self.write({'state': "b_verified"})
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
"""Method to create Franchise dealer sales record sequences."""
|
|
for vals in vals_list:
|
|
if vals.get('serial_no', _("New")) == _("New"):
|
|
vals['serial_no'] = self.env['ir.sequence'].next_by_code(
|
|
'dealer.sale') or 'New'
|
|
result = super(DealerSale, self).create(vals)
|
|
return result
|
|
|