1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
from odoo import models, api, fields, _
from odoo.exceptions import UserError
from datetime import datetime
# import datetime
import logging
from terbilang import Terbilang
import pytz
from pytz import timezone
class DownPayment(models.Model):
_name = 'down.payment'
_description = 'Down Payment Management'
_rec_name = 'number'
user_id = fields.Many2one('res.users', string='Diajukan Oleh', default=lambda self: self.env.user, tracking=3)
number = fields.Char(string='No. Dokumen', default='New Draft', tracking=3)
applicant_name = fields.Char(string='Nama Pemohon', tracking=3, required=True)
nominal = fields.Float(string='Nominal', tracking=3, required=True)
bank_name = fields.Char(string='Bank', tracking=3, required=True)
account_name = fields.Char(string='Nama Account', tracking=3, required=True)
bank_account = fields.Char(string='No. Rekening', tracking=3, required=True)
detail_note = fields.Text(string='Keterangan Penggunaan Rinci', tracking=3)
status = fields.Selection([
('draft', 'Draft'),
('pengajuan1', 'Menunggu Approval Departement'),
('pengajuan2', 'Menunggu Pengecekan AP'),
('pengajuan3', 'Menunggu Approval Pimpinan'),
('approved', 'Approved'),
('reject', 'Rejected')
], string='Status', default='draft', tracking=3, index=True, track_visibility='onchange')
status_pay_down_payment = fields.Selection([
('pending', 'Pending'),
('payment', 'Payment'),
], string='Status Pembayaran', default='pending', tracking=3)
departement_type = fields.Selection([
('sales', 'Sales'),
('merchandiser', 'Merchandiser'),
('marketing', 'Marketing'),
('logistic', 'Logistic'),
('procurement', 'Procurement'),
('fat', 'FAT'),
('hr_ga', 'HR & GA'),
], string='Departement Type', tracking=3, required=True)
# Sales & MD : Darren ID 19
# Marketing : Iwan ID 216
# Logistic & Procurement : Rafly H ID 21
# FAT : Stephan ID 28
# HR & GA : Akbar ID 7 / Pimpinan
# ---------------------------------------
# AP : Manzila (Finance) ID 23
def action_realisasi_pum(self):
self.ensure_one()
# Logic untuk realisasi PUM
return
def action_confirm_payment(self):
self.ensure_one()
# Logic untuk konfirmasi pembayaran
return
def action_reject(self):
self.ensure_one()
# Logic untuk konfirmasi pembayaran
return
def action_approval_check(self):
self.ensure_one()
# Logic untuk konfirmasi pembayaran
return
@api.model
def create(self, vals):
if not vals.get('number') or vals['number'] == 'New Draft':
vals['number'] = self.env['ir.sequence'].next_by_code('down.payment') or 'New Draft'
return super(DownPayment, self).create(vals)
class RealizationDownPayment(models.Model):
_name = 'realization.down.payment'
_description = 'Realization Down Payment Management'
# number = fields.Char(string='No. Dokumen', tracking=3)
title = fields.Char(string='Judul', required=True, tracking=3)
goals = fields.Text(string='Tujuan', tracking=3, required=True)
related = fields.Char(string='Terkait', tracking=3, required=True)
# Page Rincian Pemberian PUM
date_line = fields.Date(string='Tanggal', required=True, tracking=3, default=lambda self: fields.Date.today())
info_line = fields.Char(string='Description', required=True, tracking=3)
value_line = fields.Float(string='Nilai', required=True, tracking=3)
grand_total = fields.Float(string='Grand Total', tracking=3)
# Page Rincian Penggunaan PUM
date_line_use = fields.Date(string='Tanggal', required=True, tracking=3, default=lambda self: fields.Date.today())
info_line_use = fields.Char(string='Description', required=True, tracking=3)
value_line_use = fields.Float(string='Nominal', required=True, tracking=3)
attachment = fields.Boolean(string='Attachment', tracking=3, default=False)
grand_total_use = fields.Float(string='Grand Total', tracking=3)
value_down_payment = fields.Float(string='PUM', required=True, tracking=3)
remaining_value = fields.Float(string='Sisa Uang PUM', tracking=3)
note_approval = fields.Text(string='Note Persetujuan', tracking=3)
|