diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2024-10-04 14:23:59 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2024-10-04 14:23:59 +0700 |
| commit | 48c220d1c38f435962b8b630c5209ba781ca30df (patch) | |
| tree | 628b39f7c40793b2029aa2267f9ea5af4f580ee0 /indoteknik_custom/models/vendor_approval.py | |
| parent | 7059f095dd09649f7c12f74ff29200f644bbc854 (diff) | |
push
Diffstat (limited to 'indoteknik_custom/models/vendor_approval.py')
| -rw-r--r-- | indoteknik_custom/models/vendor_approval.py | 28 |
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') |
