diff options
Diffstat (limited to 'indoteknik_api/models')
| -rw-r--r-- | indoteknik_api/models/__init__.py | 1 | ||||
| -rw-r--r-- | indoteknik_api/models/account_move.py | 5 | ||||
| -rw-r--r-- | indoteknik_api/models/res_partner.py | 108 | ||||
| -rw-r--r-- | indoteknik_api/models/res_users.py | 15 |
4 files changed, 123 insertions, 6 deletions
diff --git a/indoteknik_api/models/__init__.py b/indoteknik_api/models/__init__.py index 892d2657..8c85938c 100644 --- a/indoteknik_api/models/__init__.py +++ b/indoteknik_api/models/__init__.py @@ -9,3 +9,4 @@ from . import sale_order from . import x_manufactures from . import website_content from . import coupon_program +from . import res_partner diff --git a/indoteknik_api/models/account_move.py b/indoteknik_api/models/account_move.py index 23a7076c..645c157a 100644 --- a/indoteknik_api/models/account_move.py +++ b/indoteknik_api/models/account_move.py @@ -7,6 +7,7 @@ class AccountMove(models.Model): def api_v1_single_response(self, account_move, context=False): sale_order = self.env['sale.order'].search([('name', '=', account_move.invoice_origin), ('state', '=', 'done')], limit=1) + sale_order_v2 = self.env['sale.order'].search([('name', '=', account_move.invoice_origin)],limit=1) amount_residual = account_move.amount_residual if sale_order.payment_status == 'settlement' or sale_order.payment_status == 'capture': amount_residual = 0 @@ -21,6 +22,9 @@ class AccountMove(models.Model): 'amount_residual': amount_residual, 'invoice_date': account_move.invoice_date.strftime('%d/%m/%Y') or '', 'efaktur': True if account_move.efaktur_document else False, + 'invoice_date_due': account_move.invoice_date_due.strftime('%d/%m/%Y') or '-', + 'sales_order': account_move.invoice_origin, + 'sales_order_id': sale_order_v2.id, } if isinstance(object, datetime.date): data['invoice_date'] = account_move.invoice_date.strftime('%d/%m/%Y') @@ -35,7 +39,6 @@ class AccountMove(models.Model): 'sales': account_move.invoice_user_id.name, 'amount_total': account_move.amount_total, 'amount_residual': amount_residual, - 'invoice_date_due': account_move.invoice_date_due.strftime('%d/%m/%Y') or '', 'customer': res_users.api_address_response(account_move.partner_id), 'products': [], } diff --git a/indoteknik_api/models/res_partner.py b/indoteknik_api/models/res_partner.py new file mode 100644 index 00000000..9b9f87d4 --- /dev/null +++ b/indoteknik_api/models/res_partner.py @@ -0,0 +1,108 @@ +from odoo import models +import json + +class ResPartner(models.Model): + _inherit = 'res.partner' + + def api_single_response(self, res_partner, with_detail=''): + config = self.env['ir.config_parameter'] + + partner = res_partner.partner_id + + dokumen_kirim = [ + ['Surat Tanda Terima Barang (STTB)', '0'], + ['Good Receipt (GR)', '1'], + ['Surat Terima Barang (STB)', '2'], + ['Lembar Penerimaan Barang (LPB)', '3'] + ] + dokumen_pengiriman = [] + if res_partner.dokumen_pengiriman : + res_partner_dokumen_pengiriman = res_partner.dokumen_pengiriman + mapping_dokumen = {item[0]: item[1] for item in dokumen_kirim} + dokumen_pengiriman_list = [dokumen.strip() for dokumen in res_partner_dokumen_pengiriman.split(',')] + dokumen_pengiriman = [mapping_dokumen.get(dokumen, '4') for dokumen in dokumen_pengiriman_list] + + dokumen = [ + ['Invoice Pembelian','0'], + ['Surat Jalan','1'], + ['Berita Acara Serah Terima (BAST)','2'], + ['Faktur Pajak','3'], + ['Good Receipt (GR)','4'] + ] + dokumen_invoice = [] + if res_partner.dokumen_invoice: + res_partner_dokumen_invoice = res_partner.dokumen_invoice + mapping_dokumen = {item[0]: item[1] for item in dokumen} + dokumen_invoice_list = [dokumen.strip() for dokumen in res_partner_dokumen_invoice.split(',')] + dokumen_invoice = [mapping_dokumen.get(dokumen, '4') for dokumen in dokumen_invoice_list] + + + data = { + 'name' : res_partner.name_tempo.name, + 'industry_id' : res_partner.industry_id_tempo.id, + 'street' : res_partner.street_tempo, + 'state' : res_partner.state_id_tempo.id, + 'city' : res_partner.city_id_tempo.id, + 'zip' : res_partner.zip_tempo, + 'mobile' : res_partner.mobile_tempo, + 'bank_name' : res_partner.bank_name_tempo, + 'account_name' : res_partner.account_name_tempo, + 'account_number' : res_partner.account_number_tempo, + 'website' : res_partner.website_tempo if res_partner.website_tempo else '', + 'estimasi' : res_partner.estimasi_tempo, + 'tempo_duration' : res_partner.tempo_duration.id, + 'tempo_limit' : res_partner.tempo_limit, + 'category_produk': ','.join([str(cat.id) for cat in res_partner.category_produk_ids]) if res_partner.category_produk_ids else '', + + # Kontak Perusahaan + 'direktur_name' : res_partner.direktur_name if res_partner.direktur_name else '', + 'direktur_mobile' : res_partner.direktur_mobile if res_partner.direktur_mobile else '', + 'direktur_email' : res_partner.direktur_email if res_partner.direktur_email else '', + 'purchasing_name' : res_partner.purchasing_name if res_partner.purchasing_name else '', + 'purchasing_mobile' : res_partner.purchasing_mobile if res_partner.purchasing_mobile else '', + 'purchasing_email' : res_partner.purchasing_email if res_partner.purchasing_email else '', + 'finance_name' : res_partner.finance_name if res_partner.finance_name else '', + 'finance_mobile' : res_partner.finance_mobile if res_partner.finance_mobile else '', + 'finance_email' : res_partner.finance_email if res_partner.finance_email else '', + + # Pengiriman + 'PIC_name' : res_partner.pic_name if res_partner.pic_name else '', + 'street_pengiriman' : res_partner.street_pengiriman if res_partner.street_pengiriman else '', + 'state_id_pengiriman' : res_partner.state_id_pengiriman.id if res_partner.state_id_pengiriman else '', + 'city_id_pengiriman' : res_partner.city_id_pengiriman.id if res_partner.city_id_pengiriman else '', + 'zip_pengiriman' : res_partner.zip_pengiriman if res_partner.zip_pengiriman else '', + 'invoice_pic' : res_partner.invoice_pic if res_partner.invoice_pic else '', + 'street_invoice' : res_partner.street_invoice if res_partner.street_invoice else '', + 'state_id_invoice' : res_partner.state_id_invoice.id if res_partner.state_id_invoice else '', + 'city_id_invoice' : res_partner.city_id_invoice.id if res_partner.city_id_invoice else '', + 'tukar_invoice' : res_partner.tukar_invoice if res_partner.tukar_invoice else '', + 'jadwal_bayar' : res_partner.jadwal_bayar if res_partner.jadwal_bayar else '', + 'dokumen_pengiriman' : ','.join(dokumen_pengiriman) if dokumen_pengiriman else '', + 'dokumen_pengiriman_invoice' : ','.join(dokumen_invoice) if dokumen_invoice else '', + 'is_same_address': res_partner.is_same_address if res_partner.is_same_address else False, + 'res_partner.is_same_address': res_partner.is_same_address_street if res_partner.is_same_address_street else False, + 'supplier_ids': [ + { + 'id': supplier.id, + 'supplier': supplier.name_supplier, + 'telepon': supplier.phone, + 'pic': supplier.pic_name, + 'credit_limit': supplier.credit_limit, + 'durasi_tempo': supplier.tempo_duration + } + for supplier in res_partner.supplier_ids + ] if res_partner.supplier_ids else '' + + # Dokumen + # 'dokumen_nib': res_partner.dokumen_nib if res_partner.dokumen_nib else '', + # 'dokumen_npwp': res_partner.dokumen_npwp if res_partner.dokumen_npwp else '', + # 'dokumen_sppkp': res_partner.dokumen_sppkp if res_partner.dokumen_sppkp else '', + # 'dokumen_akta_perubahan': res_partner.dokumen_akta_perubahan if res_partner.dokumen_akta_perubahan else '', + # 'dokumen_ktp_dirut': res_partner.dokumen_ktp_dirut if res_partner.dokumen_ktp_dirut else '', + # 'dokumen_akta_pendirian': res_partner.dokumen_akta_pendirian if res_partner.dokumen_akta_pendirian else '', + # 'dokumen_laporan_keuangan': res_partner.dokumen_laporan_keuangan if res_partner.dokumen_laporan_keuangan else '', + # 'dokumen_foto_kantor': res_partner.dokumen_foto_kantor if res_partner.dokumen_foto_kantor else '', + # 'dokumen_tempat_bekerja': res_partner.dokumen_tempat_bekerja if res_partner.dokumen_tempat_bekerja else '', + } + + return data
\ No newline at end of file diff --git a/indoteknik_api/models/res_users.py b/indoteknik_api/models/res_users.py index 52a044dc..15aaa5a7 100644 --- a/indoteknik_api/models/res_users.py +++ b/indoteknik_api/models/res_users.py @@ -1,10 +1,10 @@ from odoo import models - +from odoo.http import request class ResUsers(models.Model): _inherit = 'res.users' - def api_single_response(self, res_user, with_detail=''): + def api_single_response(self, res_user, with_detail='', payment_tempo= ''): config = self.env['ir.config_parameter'] partner = res_user.partner_id @@ -14,9 +14,13 @@ class ResUsers(models.Model): 'manager': 2, 'director': 3 } - partner_tempo = False + partner_tempo = '' + is_tempo_request = request.env['user.pengajuan.tempo.request'].search([('user_company_id', '=', main_partner.id)], limit=1) + tempo_progres = 'review' if is_tempo_request.state_tempo in ('draft','approval_sales','approval_finance') else '' if main_partner: - partner_tempo = main_partner.get_check_tempo_partner() + partner_tempo = main_partner.get_check_payment_term() + if payment_tempo: + tempo_progres = payment_tempo data = { 'id': res_user.id, @@ -36,7 +40,8 @@ class ResUsers(models.Model): 'so_approval': main_partner.use_so_approval, 'only_ready_stock': main_partner.use_only_ready_stock }, - 'partner_tempo': partner_tempo + 'partner_tempo': partner_tempo, + 'tempo_progres': tempo_progres } return data |
