diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2023-11-04 11:56:57 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2023-11-04 11:56:57 +0700 |
| commit | d445d93ab8688cd63a49ac6c128dca8eccb30fde (patch) | |
| tree | 674da7a688737658599c38d7c9db416d49934a4b | |
| parent | e12706c91da229ee1f556635968f8d9c42555af1 (diff) | |
change to dpp
| -rw-r--r-- | indoteknik_custom/models/commision.py | 43 | ||||
| -rw-r--r-- | indoteknik_custom/views/customer_commision.xml | 22 |
2 files changed, 61 insertions, 4 deletions
diff --git a/indoteknik_custom/models/commision.py b/indoteknik_custom/models/commision.py index d6c0b0a5..315e47f6 100644 --- a/indoteknik_custom/models/commision.py +++ b/indoteknik_custom/models/commision.py @@ -9,6 +9,8 @@ _logger = logging.getLogger(__name__) class CustomerCommision(models.Model): _name = 'customer.commision' _order = 'id desc' + _inherit = ['mail.thread'] + _rec_name = 'number' number = fields.Char(string='Document No', index=True, copy=False, readonly=True) date_from = fields.Date(string='Date From', required=True) @@ -17,6 +19,30 @@ class CustomerCommision(models.Model): description = fields.Char(string='Description') notification = fields.Char(string='Notification') commision_lines = fields.One2many('customer.commision.line', 'customer_commision_id', string='Lines', auto_join=True) + status = fields.Selection([ + ('pengajuan', 'Menunggu Approval'), + ('approved', 'Approved') + ], string='Status', copy=False, readonly=True, tracking=3) + commision_percent = fields.Float(string='Commision %', tracking=3) + commision_amt = fields.Float(string='Commision Amount', tracking=3) + total_dpp = fields.Float(string='Total DPP', compute='_compute_total_dpp') + + @api.constrains('commision_percent') + def _onchange_commision_percent(self): + print('masuk onchange commision percent') + self.commision_amt = self.commision_percent * self.total_dpp // 100 + + # @api.constrains('commision_amt') + # def _onchange_commision_amt(self): + # print('masuk onchange commision amt') + # self.commision_percent = (self.commision_amt / self.grand_total * 100) + + def _compute_total_dpp(self): + for data in self: + total_dpp = 0 + for line in data.commision_lines: + total_dpp = total_dpp + line.dpp + data.total_dpp = total_dpp @api.model def create(self, vals): @@ -25,10 +51,20 @@ class CustomerCommision(models.Model): return result def action_confirm_customer_commision(self): - print("a") + if not self.status: + self.status = 'pengajuan' + elif self.status == 'pengajuan' and self.env.user.is_leader: + for line in self.commision_lines: + line.invoice_id.is_customer_commision = True + self.status = 'approved' + else: + raise UserError('Harus di approved oleh Pimpinan') return def generate_customer_commision(self): + if self.commision_lines: + raise UserError('Line sudah ada, tidak bisa di generate ulang') + partners = [] partners += self.partner_id.child_ids partners.append(self.partner_id) @@ -37,6 +73,7 @@ class CustomerCommision(models.Model): where = [ ('move_type', '=', 'out_invoice'), ('state', '=', 'posted'), + ('is_customer_commision', '=', False), ('partner_id.id', '=', partner.id), ('invoice_date', '>=', self.date_from), ('invoice_date', '<=', self.date_to), @@ -65,3 +102,7 @@ class CustomerCommisionLine(models.Model): dpp = fields.Float(string='DPP') tax = fields.Float(string='TaxAmt') total = fields.Float(string='Total') + +class AccountMove(models.Model): + _inherit = 'account.move' + is_customer_commision = fields.Boolean(string='Customer Commision Used') diff --git a/indoteknik_custom/views/customer_commision.xml b/indoteknik_custom/views/customer_commision.xml index b60cc1d9..ccaa0727 100644 --- a/indoteknik_custom/views/customer_commision.xml +++ b/indoteknik_custom/views/customer_commision.xml @@ -11,6 +11,7 @@ <field name="partner_id"/> <field name="description"/> <field name="notification" readonly="1"/> + <field name="status" readonly="1"/> </tree> </field> </record> @@ -46,10 +47,10 @@ <group> <field name="number"/> <field name="date_from"/> - <field name="date_to"/> <field name="partner_id"/> <field name="description"/> - <field name="notification" readonly="1"/> + <field name="commision_percent"/> + <field name="commision_amt"/> </group> <group> <div> @@ -59,6 +60,10 @@ class="mr-2 oe_highlight" /> </div> + <field name="date_to"/> + <field name="notification" readonly="1"/> + <field name="status" readonly="1"/> + <field name="total_dpp"/> </group> </group> <notebook> @@ -67,6 +72,10 @@ </page> </notebook> </sheet> + <div class="oe_chatter"> + <field name="message_follower_ids" widget="mail_followers"/> + <field name="message_ids" widget="mail_thread"/> + </div> </form> </field> </record> @@ -78,10 +87,17 @@ <field name="view_mode">tree,form</field> </record> - <menuitem id="menu_customer_commision" + <menuitem id="menu_customer_commision_acct" name="Customer Commision" action="customer_commision_action" parent="account.menu_finance_entries" sequence="113" /> + + <menuitem id="menu_customer_commision_sales" + name="Customer Commision" + action="customer_commision_action" + parent="sale.product_menu_catalog" + sequence="101" + /> </odoo>
\ No newline at end of file |
