summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_custom/models/uangmuka_pembelian.py5
-rw-r--r--indoteknik_custom/models/uangmuka_penjualan.py60
-rw-r--r--indoteknik_custom/views/uangmuka_penjualan.xml3
3 files changed, 60 insertions, 8 deletions
diff --git a/indoteknik_custom/models/uangmuka_pembelian.py b/indoteknik_custom/models/uangmuka_pembelian.py
index 29d188d3..3d271117 100644
--- a/indoteknik_custom/models/uangmuka_pembelian.py
+++ b/indoteknik_custom/models/uangmuka_pembelian.py
@@ -27,8 +27,9 @@ class UangmukaPembelian(models.TransientModel):
current_time = datetime.now()
for order in orders:
+ ref_label = 'UANG MUKA PEMBELIAN '+order.name+' '+order.partner_id.name
param_header = {
- 'ref': 'UANG MUKA PEMBELIAN '+order.name+' '+order.partner_id.name,
+ 'ref': ref_label,
'date': current_time,
'journal_id': 11
}
@@ -43,6 +44,7 @@ class UangmukaPembelian(models.TransientModel):
'currency_id': 12,
'debit': self.pay_amt,
'credit': 0,
+ 'name': ref_label,
}
param_credit = {
@@ -52,6 +54,7 @@ class UangmukaPembelian(models.TransientModel):
'currency_id': 12,
'debit': 0,
'credit': self.pay_amt,
+ 'name': ref_label,
}
request.env['account.move.line'].create([param_debit, param_credit])
return {
diff --git a/indoteknik_custom/models/uangmuka_penjualan.py b/indoteknik_custom/models/uangmuka_penjualan.py
index 6c234369..406caa4e 100644
--- a/indoteknik_custom/models/uangmuka_penjualan.py
+++ b/indoteknik_custom/models/uangmuka_penjualan.py
@@ -1,9 +1,9 @@
-from odoo import fields, models, _
+from odoo import fields, models, _, api
from odoo.exceptions import UserError
from datetime import datetime
from odoo.http import request
-import logging
+import logging, math
_logger = logging.getLogger(__name__)
@@ -14,7 +14,15 @@ class UangmukaPenjualan(models.TransientModel):
pay_amt = fields.Float(string='Payment', help='berapa nilai yang terbentuk untuk COA Uang Muka Penjualan')
account_id = fields.Many2one('account.account', string='Bank Intransit', default=389, help='pilih COA intransit bank')
+ ongkir_amt = fields.Float(string='Ongkir', help='masukan nilai yang akan menjadi Pendapatan Ongkos Kirim')
+ selisih_amt = fields.Float(string='Selisih', help='masukan nilai yang akan menjadi Selisih Pembayaran')
+ total_amt = fields.Float(string='Total', help='Total yang akan masuk di journal entries')
+ @api.onchange('pay_amt', 'ongkir_amt', 'selisih_amt')
+ def _compute_total_amt(self):
+ for o in self:
+ o.total_amt = o.pay_amt + o.ongkir_amt + o.selisih_amt
+
def create_uangmukapenjualan(self):
if self.pay_amt <= 0:
raise UserError('Payment Amount harus diisi')
@@ -23,12 +31,22 @@ class UangmukaPenjualan(models.TransientModel):
if not self.env.user.is_accounting:
raise UserError('Hanya Finance yang dapat membuat Uang Muka Penjualan')
+ is_have_ongkir = is_have_selisih = False
+
+ if self.ongkir_amt > 0:
+ is_have_ongkir = True
+ if not math.isclose(self.selisih_amt, 0):
+ is_have_selisih = True
+ # elif self.selisih_amt > 0:
+ # is_have_selisih = True
+
orders = self.env['sale.order'].browse(self._context.get('active_ids',[]))
current_time = datetime.now()
for order in orders:
+ ref_label = 'UANG MUKA PENJUALAN '+order.name+' '+order.partner_id.name
param_header = {
- 'ref': 'UANG MUKA PENJUALAN '+order.name+' '+order.partner_id.name,
+ 'ref': ref_label,
'date': current_time,
'journal_id': 11
}
@@ -38,13 +56,14 @@ class UangmukaPenjualan(models.TransientModel):
param_debit = {
'move_id': account_move.id,
- 'account_id': self.account_id.id,
+ 'account_id': self.account_id.id, # intransit
'partner_id': order.partner_id.id,
'currency_id': 12,
- 'debit': self.pay_amt,
+ 'debit': self.pay_amt + self.ongkir_amt + self.selisih_amt,
'credit': 0,
+ 'name': ref_label,
}
-
+ # sisa di credit untuk uang muka penjualan, diluar ongkir dan selisih
param_credit = {
'move_id': account_move.id,
'account_id': 449, # uang muka penjualan
@@ -52,8 +71,35 @@ class UangmukaPenjualan(models.TransientModel):
'currency_id': 12,
'debit': 0,
'credit': self.pay_amt,
+ 'name': ref_label,
+ }
+ param_ongkir_credit = {
+ 'move_id': account_move.id,
+ 'account_id': 550, # pendapatan ongkos kirim
+ 'partner_id': order.partner_id.id,
+ 'currency_id': 12,
+ 'debit': 0,
+ 'credit': self.ongkir_amt,
+ 'name': ref_label,
+ }
+ param_selisih_credit = {
+ 'move_id': account_move.id,
+ 'account_id': 561, # selisih pembayaran
+ 'partner_id': order.partner_id.id,
+ 'currency_id': 12,
+ 'debit': 0,
+ 'credit': self.selisih_amt,
+ 'name': ref_label,
}
- request.env['account.move.line'].create([param_debit, param_credit])
+
+ if is_have_ongkir and is_have_selisih:
+ request.env['account.move.line'].create([param_debit, param_credit, param_ongkir_credit, param_selisih_credit])
+ elif is_have_ongkir:
+ request.env['account.move.line'].create([param_debit, param_credit, param_ongkir_credit])
+ elif is_have_selisih:
+ request.env['account.move.line'].create([param_debit, param_credit, param_selisih_credit])
+ else:
+ request.env['account.move.line'].create([param_debit, param_credit])
return {
'name': _('Journal Entries'),
'view_mode': 'form',
diff --git a/indoteknik_custom/views/uangmuka_penjualan.xml b/indoteknik_custom/views/uangmuka_penjualan.xml
index b2353f12..f2fc83bc 100644
--- a/indoteknik_custom/views/uangmuka_penjualan.xml
+++ b/indoteknik_custom/views/uangmuka_penjualan.xml
@@ -10,7 +10,10 @@
</p>
<group>
<field name="pay_amt"/>
+ <field name="ongkir_amt"/>
+ <field name="selisih_amt"/>
<field name="account_id" domain="[('name', 'ilike', 'intransit')]"/>
+ <field name="total_amt" readonly="1"/>
</group>
<footer>
<button name="create_uangmukapenjualan" id="create_uangmukapenjualan" string="Create" type="object" required="1"/>