summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2023-07-18 05:57:38 +0000
committerIT Fixcomart <it@fixcomart.co.id>2023-07-18 05:57:38 +0000
commitbe96aa583d6d68404a19350aae464a05a3f6efd4 (patch)
tree1f8270064b940e9df4c1359c3c20e6d8bd3f355b /indoteknik_custom/models
parent5b1c2054e3ca176a3705c6d0a84e33867ad1c945 (diff)
parentcc4150ade5d8f6cea80ce4acf92907be0a3ed29a (diff)
Merged in receipt-bill (pull request #58)
Receipt bill
Diffstat (limited to 'indoteknik_custom/models')
-rwxr-xr-xindoteknik_custom/models/__init__.py3
-rw-r--r--indoteknik_custom/models/bill_receipt.py95
2 files changed, 97 insertions, 1 deletions
diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py
index 9e4d2cf9..8b3296a5 100755
--- a/indoteknik_custom/models/__init__.py
+++ b/indoteknik_custom/models/__init__.py
@@ -66,4 +66,5 @@ from . import requisition
from . import token_storage
from . import product_sla
from . import account_move_due_extension
-from . import voucher \ No newline at end of file
+from . import voucher
+from . import bill_receipt \ No newline at end of file
diff --git a/indoteknik_custom/models/bill_receipt.py b/indoteknik_custom/models/bill_receipt.py
new file mode 100644
index 00000000..39d5f31b
--- /dev/null
+++ b/indoteknik_custom/models/bill_receipt.py
@@ -0,0 +1,95 @@
+from odoo import models, api, fields
+from odoo.exceptions import AccessError, UserError, ValidationError
+from datetime import timedelta, date
+import logging
+
+_logger = logging.getLogger(__name__)
+
+class BillReceipt(models.Model):
+ _name = "bill.receipt"
+ _description = "Bill Receipt"
+ _rec_name = 'number'
+
+ number = fields.Char(string='Document No', index=True, copy=False, readonly=True, tracking=True)
+ vendor_id = fields.Many2one('res.partner', string="Vendor", required=True)
+ document_date = fields.Date(string="Document Date", required=True)
+ description = fields.Text(string='Description')
+ validated = fields.Boolean(string="Validated", readonly=True)
+ bill_line = fields.One2many('bill.receipt.line', 'bill_id', string='Bill Receipt Lines')
+
+ @api.model
+ def create(self, vals):
+ vals['number'] = self.env['ir.sequence'].next_by_code('bill.receipt') or '0'
+ result = super(BillReceipt, self).create(vals)
+ return result
+
+ def validate_button(self):
+ if not self.bill_line:
+ raise UserError('Bill receipt line masih kosong')
+
+ self.validated = True
+
+ def cancel_button(self):
+ if not self.bill_line:
+ raise UserError('Bill receipt line masih kosong')
+
+ if self.validated != True:
+ raise UserError('Document ini belum di validate')
+
+ self.validated = False
+
+class BillReceiptLine(models.Model):
+ _name = 'bill.receipt.line'
+ _description = 'Bill Receipt Line'
+ _order = 'bill_id, id'
+
+ bill_id = fields.Many2one('bill.receipt', string='Bill Receipt')
+ sale_order_id = fields.Many2one('sale.order', string='Sale Order')
+ po_id = fields.Many2one('purchase.order', string='PO')
+ user_id = fields.Many2one('res.users', string='Purchase Rep')
+ payment_term_id = fields.Many2one('account.payment.term', string='Payment Terms')
+ vendor_id = fields.Many2one('res.partner', string='Vendor')
+ date_approve = fields.Datetime(string='Confirmation Date')
+ date_planned = fields.Datetime(string='Receipt Date')
+ amount_untaxed = fields.Float(string='Untaxed Amount')
+ amount_total = fields.Float(string='Total')
+ reference = fields.Char(string='Reference')
+ partner_ref = fields.Char(string='Vendor Reference')
+
+ @api.onchange('po_id')
+ def onchange_partner_ref(self):
+ self.partner_ref = self.po_id.partner_ref
+
+ @api.onchange('po_id')
+ def onchange_vendor_id(self):
+ self.vendor_id = self.po_id.partner_id
+
+ @api.onchange('po_id')
+ def onchange_date_approve(self):
+ self.date_approve = self.po_id.date_approve
+
+ @api.onchange('po_id')
+ def onchange_date_planned(self):
+ self.date_planned = self.po_id.date_planned
+
+ @api.onchange('po_id')
+ def onchange_amount_untaxed(self):
+ self.amount_untaxed = self.po_id.amount_untaxed
+
+ @api.onchange('po_id')
+ def onchange_user_id(self):
+ self.user_id = self.po_id.user_id
+
+ @api.onchange('po_id')
+ def onchange_sale_order_id(self):
+ self.sale_order_id = self.po_id.sale_order_id
+
+ @api.onchange('po_id')
+ def onchange_payment_term_id(self):
+ self.payment_term_id = self.po_id.payment_term_id
+
+ @api.onchange('po_id')
+ def onchange_amount_total(self):
+ self.amount_total = self.po_id.amount_total
+
+