summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/vendor_approval.py
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-10-04 14:23:59 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-10-04 14:23:59 +0700
commit48c220d1c38f435962b8b630c5209ba781ca30df (patch)
tree628b39f7c40793b2029aa2267f9ea5af4f580ee0 /indoteknik_custom/models/vendor_approval.py
parent7059f095dd09649f7c12f74ff29200f644bbc854 (diff)
push
Diffstat (limited to 'indoteknik_custom/models/vendor_approval.py')
-rw-r--r--indoteknik_custom/models/vendor_approval.py28
1 files changed, 24 insertions, 4 deletions
diff --git a/indoteknik_custom/models/vendor_approval.py b/indoteknik_custom/models/vendor_approval.py
index 442aec7a..e540b8fc 100644
--- a/indoteknik_custom/models/vendor_approval.py
+++ b/indoteknik_custom/models/vendor_approval.py
@@ -15,21 +15,35 @@ class VendorApproval(models.Model):
partner_id = fields.Many2one('res.partner', string="Customer", readonly=True)
order_id = fields.Many2one('sale.order', string="SO", readonly=True)
vendor_approval_line = fields.One2many('vendor.approval.line', 'vendor_approval_id', string='Vendor Approval Lines', auto_join=True)
- state = fields.Selection([('draft', 'Draft'), ('done', 'Done'), ('cancel', 'Cancel')], string='State', tracking=True)
+ state = fields.Selection([('draft', 'Draft'), ('done', 'Done'), ('cancel', 'Reject')], string='State', tracking=True)
+ create_date_so = fields.Datetime(string='Create Date SO', readonly=True)
+
+ @api.model
+ def create(self, vals):
+ vals['number'] = self.env['ir.sequence'].next_by_code('vendor.approval') or '0'
+ result = super(VendorApproval, self).create(vals)
+ return result
def action_approve(self):
if not self.env.user.has_group('indoteknik_custom.group_role_merchandiser'):
raise UserError('Hanya Merchandiser yang bisa approve')
+
self.state = 'done'
self.order_id.update({'vendor_approval': True})
self.order_id.action_confirm()
+ message = "Vendor Approval approved by %s" % (self.env.user.name)
+ self.order_id.message_post(body=message)
+
-
def action_reject(self):
if not self.env.user.has_group('indoteknik_custom.group_role_merchandiser'):
raise UserError('Hanya Merchandiser yang bisa cancel')
+
self.state = 'cancel'
+ message = "Vendor Approval rejected by %s" % (self.env.user.name)
+ self.order_id.message_post(body=message)
+
def unlink(self):
res = super(VendorApproval, self).unlink()
if not self._name == 'vendor.approval':
@@ -47,7 +61,13 @@ class VendorApprovalLine(models.Model):
product_uom_qty = fields.Float(string='Quantity')
vendor_id = fields.Many2one('res.partner', string='Vendor')
vendor_md_id = fields.Many2one('res.partner', string='Vendor MD')
- purchase_price = fields.Many2one(string='Purchase Price')
- purchase_price_md= fields.Many2one(string='Purchase Price MD')
+ sales_price = fields.Float(string='Sales Price')
+ margin_before = fields.Float(string='Margin Before')
+ margin_after = fields.Float(string='Margin After')
+ purchase_price = fields.Float(string='Purchase Price')
+ purchase_price_md= fields.Float(string='Purchase Price MD')
+ purchase_tax_id = fields.Many2one('account.tax', string='Purchase Tax', domain=['|', ('active', '=', False), ('active', '=', True)])
+ sales_tax_id = fields.Many2one('account.tax', string='Sales Tax', domain=['|', ('active', '=', False), ('active', '=', True)])
+ percent_margin_difference = fields.Float(string='Percent Margin Difference')