summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/bill_receipt.py
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2023-07-15 06:18:06 +0000
committerIT Fixcomart <it@fixcomart.co.id>2023-07-15 06:18:06 +0000
commit884524fc6d8edebb0a4cbcb03c3038bdb46b45c5 (patch)
tree863e5c637ea589771859072c350f3c63b3faefed /indoteknik_custom/models/bill_receipt.py
parentb496b7907c60d8b262ddba42e55dd8485f718fce (diff)
parent855f63e1c39ba1ff4d84360845949bc260462c83 (diff)
Merged in receipt-bill (pull request #52)
Receipt bill
Diffstat (limited to 'indoteknik_custom/models/bill_receipt.py')
-rw-r--r--indoteknik_custom/models/bill_receipt.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/indoteknik_custom/models/bill_receipt.py b/indoteknik_custom/models/bill_receipt.py
new file mode 100644
index 00000000..31c09b33
--- /dev/null
+++ b/indoteknik_custom/models/bill_receipt.py
@@ -0,0 +1,70 @@
+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")
+ document_date = fields.Date(string="Document Date")
+ 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('due.extension') 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')
+ po_id = fields.Many2one('purchase.order', string='PO')
+ sale_order_id = fields.Many2one('sale.order', string='Sale Order')
+ user_id = fields.Many2one('res.users', string='Purchase Rep')
+ payment_term_id = fields.Many2one('account.payment.term', string='Payment Terms')
+ amount_total = fields.Float(string='Total')
+ reference = fields.Char(string='Reference')
+
+ @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
+
+