summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/down_payment.py
blob: 7a3a39f15e95034c24f7a16636769b1cdf0fb975 (plain)
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)