Slink/sos_inventory/models/sos_suppliers.py

60 lines
2.4 KiB
Python
Executable File

# -*- coding: utf-8 -*-
from odoo import models, fields, api
class SOS_Suppliers(models.Model):
_name = 'sos_suppliers'
_description = 'Suppliers of Sosaley'
_rec_name="supplier_name"
_order = 'supplier_name'
supplier_code = fields.Char(string="Supplier Code", required=True, readonly=True,
default=lambda self: self._generate_id())
supplier_name = fields.Char(string="Supplier Name", required=True)
qp_no= fields.Char(string="QP No")
address = fields.Text(string="Registered Address")
shipped_from_address = fields.Char(string="Shipped From")
contact_person = fields.Char(string="Contact Person")
contact_no = fields.Char(string="Contact no")
email = fields.Char(string="Email")
gst_no = fields.Char(string="GST No")
pan_no = fields.Char(string="PAN No")
cin_no = fields.Char(string="CIN No")
msme_no = fields.Char(string="MSME Certificate No")
bank_details = fields.Text(string="Bank Details")
iso_no = fields.Char(string="ISO Certificate No")
iso_date = fields.Date(string="ISO Certificate Validity Date")
scope = fields.Char(string="Scope of Service")
approval=fields.Date(string="Approved On")
last_evaluation_date=fields.Date(string="Last Evaluated On")
re_evaluation_due_date=fields.Date(string="Re-Evaluation Due on")
re_evaluation_method=fields.Char(string="Re-Evaluation Method")
credit_period = fields.Integer(string="Credit period(In days)")
other_terms = fields.Text(string="Other Terms & Conditions")
quality_policy = fields.Binary(string="Quality policy")
quality_policy_filename=fields.Char(string="Quality Policy File Name")
sarf_doc = fields.Binary(string="SARF Document")
sarf_doc_filename=fields.Char(string="SARF Document File Name")
iso_certificate = fields.Binary(string="ISO Certificate")
iso_certificate_filename=fields.Char(string="ISO Certificate File Name")
_sql_constraints = [
('name_unique', 'UNIQUE(supplier_name)', 'This Supplier is Already In Our Records')
]
def _generate_id(self):
prefix = "SOS/SARF/SUP/"
last_record = self.search([
('supplier_code', 'like', prefix + '%')
], order='supplier_code desc', limit=1)
if last_record:
last_code = last_record.supplier_code
next_number = int(last_code[len(prefix):]) + 1
else:
next_number = 1
return f"{prefix}{next_number:03d}"