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