diff options
| author | trisusilo48 <tri.susilo@altama.co.id> | 2025-03-10 10:19:42 +0700 |
|---|---|---|
| committer | trisusilo48 <tri.susilo@altama.co.id> | 2025-03-10 10:19:42 +0700 |
| commit | ecbe06d325e1b8dcef3597c9e5d848f31e3e6628 (patch) | |
| tree | 11a2513852c22d0c2c480252ab070d31675f8c52 | |
| parent | 447edfb87520d5d1475eeba43f1cd3425222cd4d (diff) | |
| parent | 8ded428f62eca10e114a72c50074b4d8afa36dc8 (diff) | |
Merge branch 'odoo-backup' of https://bitbucket.org/altafixco/indoteknik-addons into odoo-backup
| -rw-r--r-- | indoteknik_api/controllers/api_v1/partner.py | 518 | ||||
| -rw-r--r-- | indoteknik_api/models/res_partner.py | 8 | ||||
| -rw-r--r-- | indoteknik_custom/models/res_partner.py | 9 | ||||
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 1 | ||||
| -rw-r--r-- | indoteknik_custom/models/user_pengajuan_tempo.py | 3 | ||||
| -rw-r--r-- | indoteknik_custom/models/user_pengajuan_tempo_request.py | 29 | ||||
| -rw-r--r-- | indoteknik_custom/views/res_partner.xml | 3 | ||||
| -rw-r--r-- | indoteknik_custom/views/user_pengajuan_tempo.xml | 2 | ||||
| -rw-r--r-- | indoteknik_custom/views/user_pengajuan_tempo_request.xml | 3 |
9 files changed, 332 insertions, 244 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py index d28aa8b4..ebd91210 100644 --- a/indoteknik_api/controllers/api_v1/partner.py +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -309,270 +309,310 @@ class Partner(controller.Controller): @http.route(prefix + 'partner/pengajuan_tempo', auth='public', methods=['POST'], csrf=False) @controller.Controller.must_authorized() def write_pengajuan_tempo(self, **kw): - id = int(kw.get('partner_id')) - user_id = int(kw.get('user_id')) - tempo_request = True if kw.get('tempo_request') == 'true' else False - pengajuan_tempo = request.env['user.pengajuan.tempo'].search([('name_tempo', '=', user_id)], limit=1) - user = request.env['res.partner'].search([('id', '=', user_id)], limit=1) - company_name = kw.get('name', pengajuan_tempo.name_tempo.name) - partner_id = request.env['res.partner'].search([('name', 'like', company_name)], limit=1) - user_account = self.get_user_by_email(user.email) - - params = self.get_request_params(kw, { + try: + id = int(kw.get('partner_id')) + user_id = int(kw.get('user_id')) + tempo_request = True if kw.get('tempo_request') == 'true' else False + pengajuan_tempo = request.env['user.pengajuan.tempo'].search([('name_tempo', '=', user_id)], limit=1) + user = request.env['res.partner'].search([('id', '=', user_id)], limit=1) + company_name = kw.get('name', pengajuan_tempo.name_tempo.name) + partner_id = request.env['res.partner'].search([('name', 'like', company_name)], limit=1) + user_account = self.get_user_by_email(user.email) + dokumen_prosedur = False + if kw.get('formDokumenProsedur') and kw.get('formDokumenProsedur') != 'false': + dokumen_prosedur = kw.get('formDokumenProsedur') + params = self.get_request_params(kw, { - # informasi perusahaan - # 'name': ['required', 'alias:name_tempo'], - 'industryId': ['alias:industry_id_tempo'], - 'street': ['alias:street_tempo'], - 'state': ['alias:state_id_tempo'], - 'city': ['alias:city_id_tempo'], - 'district': ['alias:district_id_tempo'], - 'subDistrict': ['alias:subDistrict_id_tempo'], - 'zip': ['alias:zip_tempo'], - 'mobile': ['alias:mobile_tempo'], - 'bankName': ['alias:bank_name_tempo'], - 'accountName': ['alias:account_name_tempo'], - 'accountNumber': ['alias:account_number_tempo'], - 'website': ['alias:website_tempo'], - 'estimasi': ['alias:estimasi_tempo'], - 'portal': ['alias:portal'], - 'bersedia': ['alias:bersedia'], - 'tempoDuration': ['alias:tempo_duration'], - 'tempoLimit': ['alias:tempo_limit'], - - # informasi perusahaan - 'direkturTittle': ['alias:direktur_tittle'], - 'direkturName': ['alias:direktur_name'], - 'direkturMobile': ['alias:direktur_mobile'], - 'direkturEmail': ['alias:direktur_email'], - 'purchasingTittle': ['alias:purchasing_tittle'], - 'purchasingName': ['alias:purchasing_name'], - 'purchasingMobile': ['alias:purchasing_mobile'], - 'purchasingEmail': ['alias:purchasing_email'], - 'financeTittle': ['alias:finance_tittle'], - 'financeName': ['alias:finance_name'], - 'financeMobile': ['alias:finance_mobile'], - 'financeEmail': ['alias:finance_email'], - - # Pengiriman - 'PICTittle': ['alias:pic_tittle'], - 'PICName': ['alias:pic_name'], - 'streetPengiriman': ['alias:street_pengiriman'], - 'statePengiriman': ['alias:state_id_pengiriman'], - 'cityPengiriman': ['alias:city_id_pengiriman'], - 'districtPengiriman': ['alias:district_id_pengiriman'], - 'subDistrictPengiriman': ['alias:subDistrict_id_pengiriman'], - 'zipPengiriman': ['alias:zip_pengiriman'], - 'invoicePicTittle': ['alias:invoice_pic_tittle'], - 'invoicePic': ['alias:invoice_pic'], - 'streetInvoice': ['alias:street_invoice'], - 'stateInvoice': ['alias:state_id_invoice'], - 'cityInvoice': ['alias:city_id_invoice'], - 'districtInvoice': ['alias:district_id_invoice'], - 'subDistrictInvoice': ['alias:subDistrict_id_invoice'], - 'zipInvoice': ['alias:zip_invoice'], - 'isSameAddrees':['alias:is_same_address'], - 'isSameAddreesStreet':['alias:is_same_address_street'], - }) + # informasi perusahaan + # 'name': ['required', 'alias:name_tempo'], + 'industryId': ['alias:industry_id_tempo'], + 'street': ['alias:street_tempo'], + 'state': ['alias:state_id_tempo'], + 'city': ['alias:city_id_tempo'], + 'district': ['alias:district_id_tempo'], + 'subDistrict': ['alias:subDistrict_id_tempo'], + 'zip': ['alias:zip_tempo'], + 'mobile': ['alias:mobile_tempo'], + 'bankName': ['alias:bank_name_tempo'], + 'accountName': ['alias:account_name_tempo'], + 'accountNumber': ['alias:account_number_tempo'], + 'website': ['alias:website_tempo'], + 'estimasi': ['alias:estimasi_tempo'], + 'portal': ['alias:portal'], + 'bersedia': ['alias:bersedia'], + 'tempoDuration': ['alias:tempo_duration'], + 'tempoLimit': ['alias:tempo_limit'], + + # informasi perusahaan + 'direkturTittle': ['alias:direktur_tittle'], + 'direkturName': ['alias:direktur_name'], + 'direkturMobile': ['alias:direktur_mobile'], + 'direkturEmail': ['alias:direktur_email'], + 'purchasingTittle': ['alias:purchasing_tittle'], + 'purchasingName': ['alias:purchasing_name'], + 'purchasingMobile': ['alias:purchasing_mobile'], + 'purchasingEmail': ['alias:purchasing_email'], + 'financeTittle': ['alias:finance_tittle'], + 'financeName': ['alias:finance_name'], + 'financeMobile': ['alias:finance_mobile'], + 'financeEmail': ['alias:finance_email'], + + # Pengiriman + 'PICTittle': ['alias:pic_tittle'], + 'PICBarangMobile': ['alias:pic_mobile'], + 'PICName': ['alias:pic_name'], + 'streetPengiriman': ['alias:street_pengiriman'], + 'statePengiriman': ['alias:state_id_pengiriman'], + 'cityPengiriman': ['alias:city_id_pengiriman'], + 'districtPengiriman': ['alias:district_id_pengiriman'], + 'subDistrictPengiriman': ['alias:subDistrict_id_pengiriman'], + 'zipPengiriman': ['alias:zip_pengiriman'], + 'invoicePicTittle': ['alias:invoice_pic_tittle'], + 'invoicePicMobile': ['alias:invoice_pic_mobile'], + 'invoicePic': ['alias:invoice_pic'], + 'streetInvoice': ['alias:street_invoice'], + 'stateInvoice': ['alias:state_id_invoice'], + 'cityInvoice': ['alias:city_id_invoice'], + 'districtInvoice': ['alias:district_id_invoice'], + 'subDistrictInvoice': ['alias:subDistrict_id_invoice'], + 'zipInvoice': ['alias:zip_invoice'], + 'isSameAddrees':['alias:is_same_address'], + 'isSameAddreesStreet':['alias:is_same_address_street'], + }) - # # Konversi nilai 'true' ke boolean True - # is_same_address = kw.get('isSameAddrees', 'false').lower() == 'true' - # is_same_address_street = kw.get('isSameAddreesStreet', 'false').lower() == 'true' - # - # # Tambahkan nilai yang dikonversi ke params - # if 'isSameAddress' in kw: - # params['value']['is_same_address'] = is_same_address - # if 'is_same_address_street' in kw: - # params['value']['is_same_address_street'] = is_same_address_street + # # Konversi nilai 'true' ke boolean True + # is_same_address = kw.get('isSameAddrees', 'false').lower() == 'true' + # is_same_address_street = kw.get('isSameAddreesStreet', 'false').lower() == 'true' + # + # # Tambahkan nilai yang dikonversi ke params + # if 'isSameAddress' in kw: + # params['value']['is_same_address'] = is_same_address + # if 'is_same_address_street' in kw: + # params['value']['is_same_address_street'] = is_same_address_street - if not params['valid']: - return self.response(code=400, description=params) - if params['value']['portal']: - if params['value']['portal'] == 'ada': - params['value']['portal'] = True + if not params['valid']: + return self.response(code=400, description=params) + if params['value']['portal']: + if params['value']['portal'] == 'ada': + params['value']['portal'] = True + else: + params['value']['portal'] = False + # Filter data baru yang dikirim (non-kosong, boolean False tetap masuk) + new_data = {key: value for key, value in params['value'].items() if value != ''} + + if pengajuan_tempo: + try: + pengajuan_tempo.write(new_data) + except Exception as e: + return self.response(code=500, description=f'Error updating partner data: {str(e)}') else: - params['value']['portal'] = False - # Filter data baru yang dikirim (non-kosong, boolean False tetap masuk) - new_data = {key: value for key, value in params['value'].items() if value != ''} - - if pengajuan_tempo: - # Jika pengajuan_tempo sudah ada, hanya write data baru yang non-kosong - pengajuan_tempo.write(new_data) - else: - # Jika belum ada, buat record baru - pengajuan_tempo = request.env['user.pengajuan.tempo'].create(new_data) - pengajuan_tempo.partner_id = user_id - - if partner_id: - pengajuan_tempo.name_tempo = partner_id + try: + pengajuan_tempo = request.env['user.pengajuan.tempo'].create(new_data) + pengajuan_tempo.partner_id = user_id + except Exception as e: + return self.response(code=500, description=f'Error creating partner data: {str(e)}') + + if partner_id: + try: + pengajuan_tempo.name_tempo = partner_id + except Exception as e: + return self.response(code=500, description=f'Error updating partner data: {str(e)}') + + # Prosedur Pengiriman + if dokumen_prosedur: + dokumen_prosedur = json.loads(dokumen_prosedur) + mimetype, _ = mimetypes.guess_type(dokumen_prosedur['name']) + mimetype = mimetype or 'application/octet-stream' + data = base64.b64decode(dokumen_prosedur['base64']) + dokumen_prosedur_attachment = request.env['ir.attachment'].create({ + 'name': dokumen_prosedur['name'], + 'type': 'binary', + 'datas': base64.b64encode(data), + 'res_model': 'user.pengajuan.tempo', + 'res_id': pengajuan_tempo.id, + 'mimetype': mimetype + }) + pengajuan_tempo.dokumen_prosedur = [(6, 0, [dokumen_prosedur_attachment.id])] + pengajuan_tempo.message_post(body="Dokumen Prosedur", attachment_ids=[dokumen_prosedur_attachment.id]) + + + form_supplier_data = kw.get('formSupplier', False) + + if form_supplier_data: + try: + form_supplier_data = json.loads(form_supplier_data) + + supplier_ids_to_add = [] + for item in form_supplier_data: + supplier_name = item.get("supplier") + pic_name = item.get("pic") + phone = item.get("telepon") + tempo_duration = item.get("durasiTempo") + credit_limit = item.get("creditLimit") + + new_data = { + 'name_supplier': supplier_name, + 'pic_name': pic_name, + 'phone': phone, + 'tempo_duration': tempo_duration, + 'credit_limit': credit_limit, + } + new_supplier_data = request.env['user.pengajuan.tempo.line'].create(new_data) + + supplier_ids_to_add.append(new_supplier_data.id) + + pengajuan_tempo.write({'supplier_ids': [(6, 0, supplier_ids_to_add)]}) + + except json.JSONDecodeError: + return http.Response(status=400, json_body={'error': 'Invalid JSON format for formSupplier'}) + category_produk_ids = kw.get('categoryProduk', False) + category_ids = '' + if category_produk_ids: + try: + category_ids = list(map(int, category_produk_ids.split(','))) + pengajuan_tempo.category_produk_ids = [(6, 0, category_ids)] + except Exception as e: + return self.response(code=500, description=f'Unexpected error: {str(e)}') + + + tukar_invoice_input = kw.get('tukarInvoiceInput') + if tukar_invoice_input: + pengajuan_tempo.tukar_invoice = tukar_invoice_input + + tukar_invoice_input_pembayaran = kw.get('tukarInvoiceInputPembayaran') + if tukar_invoice_input_pembayaran: + pengajuan_tempo.jadwal_bayar = tukar_invoice_input_pembayaran + + dokumen_kirim = [ + 'Surat Tanda Terima Barang (STTB)', + 'Good Receipt (GR)', + 'Surat Terima Barang (STB)', + 'Lembar Penerimaan Barang (LPB)' + ] + + dokumen_kirim_barang_ids = kw.get('dokumenPengiriman') + dokumen_kirim_input = kw.get('dokumenKirimInput', '') + dokumen_kirim_barang_input = kw.get('dokumenPengirimanInput', '') + dokumen_kirim_barang = [] + + if dokumen_kirim_barang_ids: + dokumen_kirim_ids = list(map(int, dokumen_kirim_barang_ids.split(','))) + dokumen_kirim_barang = [dokumen_kirim[i] for i in dokumen_kirim_ids if 0 <= i < len(dokumen_kirim)] + if dokumen_kirim_input: + input_items = [item.strip() for item in dokumen_kirim_input.split(',')] + dokumen_kirim_barang.extend(item for item in input_items if item and item not in dokumen_kirim_barang) + pengajuan_tempo.dokumen_kirim_input = dokumen_kirim_input + if dokumen_kirim_barang: + pengajuan_tempo.dokumen_pengiriman = ', '.join(dokumen_kirim_barang) + if dokumen_kirim_barang_input: + pengajuan_tempo.dokumen_pengiriman_input = dokumen_kirim_barang_input + + dokumen = [ + 'Invoice Pembelian', + 'Surat Jalan', + 'Berita Acara Serah Terima (BAST)', + 'Faktur Pajak', + 'Good Receipt (GR)' + ] + + dokumen_invoice = kw.get('dokumenPengirimanInvoice', '') + if dokumen_invoice: + pengajuan_tempo.dokumen_invoice = dokumen_invoice + user_tempo_request = [] + if tempo_request: + user_tempo_request = request.env['user.pengajuan.tempo.request'].create({ + 'user_id': id, + 'pengajuan_tempo_id': pengajuan_tempo.id, + 'user_company_id': partner_id.id, + 'tempo_duration': pengajuan_tempo.tempo_duration.id, + 'tempo_limit': pengajuan_tempo.tempo_limit, + }) - form_supplier_data = kw.get('formSupplier', False) + form_dokumen_data = kw.get('formDocs', False) + if form_dokumen_data: + try: + form_dokumen = json.loads(form_dokumen_data) - if form_supplier_data: - try: - form_supplier_data = json.loads(form_supplier_data) - - supplier_ids_to_add = [] - for item in form_supplier_data: - supplier_name = item.get("supplier") - pic_name = item.get("pic") - phone = item.get("telepon") - tempo_duration = item.get("durasiTempo") - credit_limit = item.get("creditLimit") - - new_data = { - 'name_supplier': supplier_name, - 'pic_name': pic_name, - 'phone': phone, - 'tempo_duration': tempo_duration, - 'credit_limit': credit_limit, - } - new_supplier_data = request.env['user.pengajuan.tempo.line'].create(new_data) - - supplier_ids_to_add.append(new_supplier_data.id) - - pengajuan_tempo.write({'supplier_ids': [(6, 0, supplier_ids_to_add)]}) - - except json.JSONDecodeError: - return http.Response(status=400, json_body={'error': 'Invalid JSON format for formSupplier'}) - category_produk_ids = kw.get('categoryProduk', False) - category_ids = '' - if category_produk_ids: - category_ids = list(map(int, category_produk_ids.split(','))) - pengajuan_tempo.category_produk_ids = [(6, 0, category_ids)] - - tukar_invoice_input = kw.get('tukarInvoiceInput') - if tukar_invoice_input: - pengajuan_tempo.tukar_invoice = tukar_invoice_input - - tukar_invoice_input_pembayaran = kw.get('tukarInvoiceInputPembayaran') - if tukar_invoice_input_pembayaran: - pengajuan_tempo.jadwal_bayar = tukar_invoice_input_pembayaran - - dokumen_kirim = [ - 'Surat Tanda Terima Barang (STTB)', - 'Good Receipt (GR)', - 'Surat Terima Barang (STB)', - 'Lembar Penerimaan Barang (LPB)' - ] - - dokumen_kirim_barang_ids = kw.get('dokumenPengiriman') - dokumen_kirim_input = kw.get('dokumenKirimInput', '') - dokumen_kirim_barang_input = kw.get('dokumenPengirimanInput', '') - dokumen_kirim_barang = [] - - if dokumen_kirim_barang_ids: - dokumen_kirim_ids = list(map(int, dokumen_kirim_barang_ids.split(','))) - dokumen_kirim_barang = [dokumen_kirim[i] for i in dokumen_kirim_ids if 0 <= i < len(dokumen_kirim)] - if dokumen_kirim_input: - input_items = [item.strip() for item in dokumen_kirim_input.split(',')] - dokumen_kirim_barang.extend(item for item in input_items if item and item not in dokumen_kirim_barang) - pengajuan_tempo.dokumen_kirim_input = dokumen_kirim_input - if dokumen_kirim_barang: - pengajuan_tempo.dokumen_pengiriman = ', '.join(dokumen_kirim_barang) - if dokumen_kirim_barang_input: - pengajuan_tempo.dokumen_pengiriman_input = dokumen_kirim_barang_input - - dokumen = [ - 'Invoice Pembelian', - 'Surat Jalan', - 'Berita Acara Serah Terima (BAST)', - 'Faktur Pajak', - 'Good Receipt (GR)' - ] - - dokumen_invoice = kw.get('dokumenPengirimanInvoice', '') - if dokumen_invoice: - pengajuan_tempo.dokumen_invoice = dokumen_invoice - user_tempo_request = [] - if tempo_request: - user_tempo_request = request.env['user.pengajuan.tempo.request'].create({ - 'user_id': id, - 'pengajuan_tempo_id': pengajuan_tempo.id, - 'user_company_id': partner_id.id, - 'tempo_duration': pengajuan_tempo.tempo_duration.id, - 'tempo_limit': pengajuan_tempo.tempo_limit, - }) + for dokumen in form_dokumen: + if dokumen['details']['base64'] != '': + mimetype, _ = mimetypes.guess_type(dokumen['details']['name']) + mimetype = mimetype or 'application/octet-stream' + data = base64.b64decode(dokumen['details']['base64']) + sppkp_attachment = request.env['ir.attachment'].create({ + 'name': dokumen['details']['name'], + 'type': 'binary', + 'datas': base64.b64encode(data), + 'res_model': 'user.pengajuan.tempo', + 'res_id': pengajuan_tempo.id, + 'mimetype': mimetype + }) - form_dokumen_data = kw.get('formDocs', False) - if form_dokumen_data: - try: - form_dokumen = json.loads(form_dokumen_data) + if dokumen['documentName'] == 'dokumenNib': + pengajuan_tempo.dokumen_nib = [(6, 0, [sppkp_attachment.id])] - for dokumen in form_dokumen: - if dokumen['details']['base64'] != '': - mimetype, _ = mimetypes.guess_type(dokumen['details']['name']) - mimetype = mimetype or 'application/octet-stream' - data = base64.b64decode(dokumen['details']['base64']) - sppkp_attachment = request.env['ir.attachment'].create({ - 'name': dokumen['details']['name'], - 'type': 'binary', - 'datas': base64.b64encode(data), - 'res_model': 'user.pengajuan.tempo', - 'res_id': pengajuan_tempo.id, - 'mimetype': mimetype - }) + elif dokumen['documentName'] == 'dokumenSiup': + pengajuan_tempo.dokumen_siup = [(6, 0, [sppkp_attachment.id])] - if dokumen['documentName'] == 'dokumenNib': - pengajuan_tempo.dokumen_nib = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenTdp': + pengajuan_tempo.dokumen_tdp = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenSiup': - pengajuan_tempo.dokumen_siup = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenSkdp': + pengajuan_tempo.dokumen_skdp = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenTdp': - pengajuan_tempo.dokumen_tdp = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenSkt': + pengajuan_tempo.dokumen_skt = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenSkdp': - pengajuan_tempo.dokumen_skdp = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenNpwp': + pengajuan_tempo.dokumen_npwp = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenSkt': - pengajuan_tempo.dokumen_skt = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenSppkp': + pengajuan_tempo.dokumen_sppkp = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenNpwp': - pengajuan_tempo.dokumen_npwp = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenAktaPerubahan': + pengajuan_tempo.dokumen_akta_perubahan = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenSppkp': - pengajuan_tempo.dokumen_sppkp = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenKtpDirut': + pengajuan_tempo.dokumen_ktp_dirut = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenAktaPerubahan': - pengajuan_tempo.dokumen_akta_perubahan = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenAktaPendirian': + pengajuan_tempo.dokumen_akta_pendirian = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenKtpDirut': - pengajuan_tempo.dokumen_ktp_dirut = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenLaporanKeuangan': + pengajuan_tempo.dokumen_laporan_keuangan = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenAktaPendirian': - pengajuan_tempo.dokumen_akta_pendirian = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenFotoKantor': + pengajuan_tempo.dokumen_foto_kantor = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenLaporanKeuangan': - pengajuan_tempo.dokumen_laporan_keuangan = [(6, 0, [sppkp_attachment.id])] + elif dokumen['documentName'] == 'dokumenTempatBekerja': + pengajuan_tempo.dokumen_tempat_bekerja = [(6, 0, [sppkp_attachment.id])] - elif dokumen['documentName'] == 'dokumenFotoKantor': - pengajuan_tempo.dokumen_foto_kantor = [(6, 0, [sppkp_attachment.id])] + formatted_text = ''.join([' ' + char if char.isupper() and i != 0 else char for i, char in + enumerate(dokumen['documentName'])]) + teks = formatted_text.strip().title() + pengajuan_tempo.message_post(body=teks, attachment_ids=[sppkp_attachment.id]) + if tempo_request: + user_tempo_request.message_post(body=teks, attachment_ids=[sppkp_attachment.id]) - elif dokumen['documentName'] == 'dokumenTempatBekerja': - pengajuan_tempo.dokumen_tempat_bekerja = [(6, 0, [sppkp_attachment.id])] - formatted_text = ''.join([' ' + char if char.isupper() and i != 0 else char for i, char in - enumerate(dokumen['documentName'])]) - teks = formatted_text.strip().title() - pengajuan_tempo.message_post(body=teks, attachment_ids=[sppkp_attachment.id]) - if tempo_request: - user_tempo_request.message_post(body=teks, attachment_ids=[sppkp_attachment.id]) + except json.JSONDecodeError: + return http.Response(status=400, json_body={'error': 'Invalid JSON format for formDokumen'}) + if tempo_request: + # pengajuan_tempo.user_id = id + template = pengajuan_tempo.env.ref('indoteknik_custom.mail_template_res_user_company_request_tempo_review') + template.send_mail(pengajuan_tempo.id, force_send=True) + template2 = pengajuan_tempo.env.ref('indoteknik_custom.mail_template_res_user_company_new_tempo_to_sales') + template2.send_mail(pengajuan_tempo.id, force_send=True) + if not pengajuan_tempo: + return self.response(code=500, description="Failed to create or update pengajuan_tempo") - except json.JSONDecodeError: - return http.Response(status=400, json_body={'error': 'Invalid JSON format for formDokumen'}) + return self.response({ + 'id': pengajuan_tempo.id, + 'user_id': user_id, + }) + except Exception as e: + return self.response(code=500, description=f'Unexpected error: {str(e)}') - if tempo_request: - # pengajuan_tempo.user_id = id - template = pengajuan_tempo.env.ref('indoteknik_custom.mail_template_res_user_company_request_tempo_review') - template.send_mail(pengajuan_tempo.id, force_send=True) - template2 = pengajuan_tempo.env.ref('indoteknik_custom.mail_template_res_user_company_new_tempo_to_sales') - template2.send_mail(pengajuan_tempo.id, force_send=True) - return self.response({ - 'id': pengajuan_tempo.id, - 'user_id': user_id, - }) def get_user_by_email(self, email): return request.env['res.users'].search([ diff --git a/indoteknik_api/models/res_partner.py b/indoteknik_api/models/res_partner.py index 0e09fbc6..3a98f3bc 100644 --- a/indoteknik_api/models/res_partner.py +++ b/indoteknik_api/models/res_partner.py @@ -59,6 +59,7 @@ class ResPartner(models.Model): # Pengiriman 'PIC_tittle' : pengajuan_tempo.pic_tittle if pengajuan_tempo.pic_tittle else '', + 'PICBarangMobile' : pengajuan_tempo.pic_mobile if pengajuan_tempo.pic_mobile else '', 'PIC_name' : pengajuan_tempo.pic_name if pengajuan_tempo.pic_name else '', 'street_pengiriman' : pengajuan_tempo.street_pengiriman if pengajuan_tempo.street_pengiriman else '', 'state_pengiriman' : pengajuan_tempo.state_id_pengiriman.id if pengajuan_tempo.state_id_pengiriman else '', @@ -67,6 +68,7 @@ class ResPartner(models.Model): 'subDistrict_pengiriman': pengajuan_tempo.subDistrict_id_pengiriman.id if pengajuan_tempo.subDistrict_id_pengiriman else '', 'zip_pengiriman' : pengajuan_tempo.zip_pengiriman if pengajuan_tempo.zip_pengiriman else '', 'invoice_pic_tittle' : pengajuan_tempo.invoice_pic_tittle if pengajuan_tempo.invoice_pic_tittle else '', + 'invoice_pic_mobile' : pengajuan_tempo.invoice_pic_mobile if pengajuan_tempo.invoice_pic_mobile else '', 'invoice_pic' : pengajuan_tempo.invoice_pic if pengajuan_tempo.invoice_pic else '', 'street_invoice' : pengajuan_tempo.street_invoice if pengajuan_tempo.street_invoice else '', 'state_invoice' : pengajuan_tempo.state_id_invoice.id if pengajuan_tempo.state_id_invoice else '', @@ -82,6 +84,12 @@ class ResPartner(models.Model): 'dokumen_pengiriman_invoice' : pengajuan_tempo.dokumen_invoice if pengajuan_tempo.dokumen_invoice else '', 'is_same_addrees': pengajuan_tempo.is_same_address if pengajuan_tempo.is_same_address else False, 'is_same_addrees_street': pengajuan_tempo.is_same_address_street if pengajuan_tempo.is_same_address_street else False, + 'dokumen_prosedur': + { + 'name': pengajuan_tempo.dokumen_prosedur.name, + 'base64': pengajuan_tempo.dokumen_prosedur.datas.decode('utf-8'), + 'format': pengajuan_tempo.dokumen_prosedur.mimetype, + } if pengajuan_tempo.dokumen_prosedur else '', 'supplier_ids': [ { 'id': supplier.id, diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py index fa2f6a81..fe04535c 100644 --- a/indoteknik_custom/models/res_partner.py +++ b/indoteknik_custom/models/res_partner.py @@ -58,6 +58,7 @@ class ResPartner(models.Model): # Pengiriman pic_name = fields.Char(string='Nama PIC Penerimaan Barang') + pic_mobile = fields.Char(string='Nomor HP PIC Penerimaan Barang') street_pengiriman = fields.Char(string="Alamat Perusahaan") state_id_pengiriman = fields.Many2one('res.country.state', string='State') city_id_pengiriman = fields.Many2one('vit.kota', string='City') @@ -65,6 +66,7 @@ class ResPartner(models.Model): subDistrict_id_pengiriman = fields.Many2one('vit.kelurahan', string='Kelurahan') zip_pengiriman = fields.Char(string="Zip") invoice_pic = fields.Char(string='Nama PIC Penerimaan Invoice') + invoice_pic_mobile = fields.Char(string='Nomor HP PIC Penerimaan Invoice') street_invoice = fields.Char(string="Alamat Perusahaan") state_id_invoice = fields.Many2one('res.country.state', string='State') city_id_invoice = fields.Many2one('vit.kota', string='City') @@ -73,6 +75,7 @@ class ResPartner(models.Model): zip_invoice = fields.Char(string="Zip") tukar_invoice = fields.Char(string='Jadwal Penukaran Invoice') jadwal_bayar = fields.Char(string='Jadwal Pembayaran') + dokumen_prosedur = fields.Many2one('ir.attachment', string="Dokumen Pengiriman", tracking=3, readonly=True) dokumen_pengiriman = fields.Char(string='Dokumen Tanda Terima yang Diberikan Pada Saat Pengiriman Barang') dokumen_pengiriman_input = fields.Char(string='Dokumen yang Dibawa Saat Pengiriman Barang') dokumen_invoice = fields.Char(string='Dokumen yang dilampirkan saat Pengiriman Invoice') @@ -254,6 +257,7 @@ class ResPartner(models.Model): # Pengiriman vals['pic_name'] = vals.get('pic_name', self.pic_name) + vals['pic_mobile'] = vals.get('pic_mobile', self.pic_mobile) vals['street_pengiriman'] = vals.get('street_pengiriman', self.street_pengiriman) vals['state_id_pengiriman'] = vals.get('state_id_pengiriman', self.state_id_pengiriman) vals['city_id_pengiriman'] = vals.get('city_id_pengiriman', self.city_id_pengiriman) @@ -261,6 +265,7 @@ class ResPartner(models.Model): vals['subDistrict_id_pengiriman'] = vals.get('subDistrict_id_pengiriman', self.subDistrict_id_pengiriman) vals['zip_pengiriman'] = vals.get('zip_pengiriman', self.zip_pengiriman) vals['invoice_pic'] = vals.get('invoice_pic', self.invoice_pic) + vals['invoice_pic_mobile'] = vals.get('invoice_pic_mobile', self.invoice_pic_mobile) vals['street_invoice'] = vals.get('street_invoice', self.street_invoice) vals['state_id_invoice'] = vals.get('state_id_invoice', self.state_id_invoice) vals['city_id_invoice'] = vals.get('city_id_invoice', self.city_id_invoice) @@ -269,6 +274,7 @@ class ResPartner(models.Model): vals['zip_invoice'] = vals.get('zip_invoice', self.zip_invoice) vals['tukar_invoice'] = vals.get('tukar_invoice', self.tukar_invoice) vals['jadwal_bayar'] = vals.get('jadwal_bayar', self.jadwal_bayar) + vals['dokumen_prosedur'] = vals.get('dokumen_prosedur', self.dokumen_prosedur) vals['dokumen_pengiriman'] = vals.get('dokumen_pengiriman', self.dokumen_pengiriman) vals['dokumen_pengiriman_input'] = vals.get('dokumen_pengiriman_input', self.dokumen_pengiriman_input) vals['dokumen_invoice'] = vals.get('dokumen_invoice', self.dokumen_invoice) @@ -323,6 +329,7 @@ class ResPartner(models.Model): 'finance_mobile': vals.get('finance_mobile'), 'finance_email': vals.get('finance_email'), 'pic_name': vals.get('pic_name'), + 'pic_mobile': vals.get('pic_mobile'), 'street_pengiriman': vals.get('street_pengiriman'), 'state_id_pengiriman': vals.get('state_id_pengiriman'), 'city_id_pengiriman': vals.get('city_id_pengiriman'), @@ -330,6 +337,7 @@ class ResPartner(models.Model): 'subDistrict_id_pengiriman': vals.get('subDistrict_id_pengiriman'), 'zip_pengiriman': vals.get('zip_pengiriman'), 'invoice_pic': vals.get('invoice_pic'), + 'invoice_pic_mobile': vals.get('invoice_pic_mobile'), 'street_invoice': vals.get('street_invoice'), 'state_id_invoice': vals.get('state_id_invoice'), 'city_id_invoice': vals.get('city_id_invoice'), @@ -338,6 +346,7 @@ class ResPartner(models.Model): 'zip_invoice': vals.get('zip_invoice'), 'tukar_invoice': vals.get('tukar_invoice'), 'jadwal_bayar': vals.get('jadwal_bayar'), + 'dokumen_prosedur': vals.get('dokumen_prosedur'), 'dokumen_pengiriman': vals.get('dokumen_pengiriman'), 'dokumen_pengiriman_input': vals.get('dokumen_pengiriman_input'), 'dokumen_invoice': vals.get('dokumen_invoice'), diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 498f2467..852e3cf0 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -214,6 +214,7 @@ class SaleOrder(models.Model): ('dokumen_tidak_support', 'Indoteknik tidak bisa support document yang dibutuhkan (Ex: TKDN, COO, SNI)'), ('ganti_quotation', 'Ganti Quotation'), ('testing_internal', 'Testing Internal'), + ('revisi_data', 'Revisi Data'), ], string='Reason for Cancel', copy=False, index=True, tracking=3) attachment_bukti = fields.Many2one( 'ir.attachment', diff --git a/indoteknik_custom/models/user_pengajuan_tempo.py b/indoteknik_custom/models/user_pengajuan_tempo.py index 0fdcdbeb..0b3ab63d 100644 --- a/indoteknik_custom/models/user_pengajuan_tempo.py +++ b/indoteknik_custom/models/user_pengajuan_tempo.py @@ -74,6 +74,7 @@ class UserPengajuanTempo(models.Model): # Pengiriman pic_tittle = fields.Char(string='Tittle PIC Penerimaan Barang') + pic_mobile = fields.Char(string='Nomor HP PIC Penerimaan Barang') pic_name = fields.Char(string='Nama PIC Penerimaan Barang') street_pengiriman = fields.Char(string="Alamat Perusahaan") state_id_pengiriman = fields.Many2one('res.country.state', string='State') @@ -83,6 +84,7 @@ class UserPengajuanTempo(models.Model): zip_pengiriman = fields.Char(string="Zip") invoice_pic_tittle = fields.Char(string='Tittle PIC Penerimaan Invoice') invoice_pic = fields.Char(string='Nama PIC Penerimaan Invoice') + invoice_pic_mobile = fields.Char(string='Nomor HP PIC Penerimaan Invoice') street_invoice = fields.Char(string="Alamat Perusahaan") state_id_invoice = fields.Many2one('res.country.state', string='State') city_id_invoice = fields.Many2one('vit.kota', string='City') @@ -97,6 +99,7 @@ class UserPengajuanTempo(models.Model): dokumen_invoice = fields.Char(string='Dokumen yang dilampirkan saat Pengiriman Invoice') is_same_address = fields.Boolean(string="Same Address pengiriman invoicr dan alamat pengiriman barang") is_same_address_street = fields.Boolean(string="Same Address pengiriman barang dan alamat bisnis") + dokumen_prosedur = fields.Many2many('ir.attachment', 'dokumen_prosedur_rel', string="Dokumen Prosedur", tracking=True) # Referensi supplier_ids = fields.Many2many('user.pengajuan.tempo.line', string="Suppliers") diff --git a/indoteknik_custom/models/user_pengajuan_tempo_request.py b/indoteknik_custom/models/user_pengajuan_tempo_request.py index be4293a0..abcb6f2f 100644 --- a/indoteknik_custom/models/user_pengajuan_tempo_request.py +++ b/indoteknik_custom/models/user_pengajuan_tempo_request.py @@ -108,6 +108,7 @@ class UserPengajuanTempoRequest(models.Model): # Pengiriman pic_tittle = fields.Char(string='Tittle PIC Penerimaan Barang', related='pengajuan_tempo_id.pic_tittle', store=True, readonly=False) + pic_mobile = fields.Char(string='Nomor HP PIC Penerimaan Barang', related='pengajuan_tempo_id.pic_mobile', store=True, readonly=False) pic_name = fields.Char(string='Nama PIC Penerimaan Barang', related='pengajuan_tempo_id.pic_name', store=True, readonly=False) street_pengiriman = fields.Char(string="Alamat Perusahaan", related='pengajuan_tempo_id.street_pengiriman', store=True, readonly=False) state_id_pengiriman = fields.Many2one('res.country.state', string='State', related='pengajuan_tempo_id.state_id_pengiriman', store=True, readonly=False) @@ -116,6 +117,7 @@ class UserPengajuanTempoRequest(models.Model): subDistrict_id_pengiriman = fields.Many2one('vit.kelurahan', string='Kelurahan', related='pengajuan_tempo_id.subDistrict_id_pengiriman', store=True, readonly=False) zip_pengiriman = fields.Char(string="Zip", related='pengajuan_tempo_id.zip_pengiriman', store=True, readonly=False) invoice_pic_tittle = fields.Char(string='Tittle PIC Penerimaan Invoice', related='pengajuan_tempo_id.invoice_pic_tittle', store=True, readonly=False) + invoice_pic_mobile = fields.Char(string='Nomor HP PIC Penerimaan Invoice', related='pengajuan_tempo_id.invoice_pic_mobile', store=True, readonly=False) invoice_pic = fields.Char(string='Nama PIC Penerimaan Invoice', related='pengajuan_tempo_id.invoice_pic', store=True, readonly=False) street_invoice = fields.Char(string="Alamat Perusahaan", related='pengajuan_tempo_id.street_invoice', store=True, readonly=False) state_id_invoice = fields.Many2one('res.country.state', string='State', related='pengajuan_tempo_id.state_id_invoice', store=True, readonly=False) @@ -130,7 +132,14 @@ class UserPengajuanTempoRequest(models.Model): dokumen_invoice = fields.Char(string='Dokumen yang dilampirkan saat Pengiriman Invoice', related='pengajuan_tempo_id.dokumen_invoice', store=True, readonly=False) is_same_address = fields.Boolean(string="Same Address pengiriman invoicr dan alamat pengiriman barang", related='pengajuan_tempo_id.is_same_address', store=True, readonly=False) is_same_address_street = fields.Boolean(string="Same Address pengiriman barang dan alamat bisnis", related='pengajuan_tempo_id.is_same_address_street', store=True, readonly=False) - + dokumen_prosedur = fields.Many2many( + 'ir.attachment', + 'dokumen_prosedur_rel', + string="Dokumen Prosedur", + related='pengajuan_tempo_id.dokumen_prosedur', + readonly=False, + tracking=3 + ) #Referensi supplier_ids = fields.Many2many('user.pengajuan.tempo.line',related='pengajuan_tempo_id.supplier_ids', string="Suppliers", readonly=False) @@ -292,16 +301,17 @@ class UserPengajuanTempoRequest(models.Model): self.pengajuan_tempo_id.finance_mobile = self.finance_mobile self.pengajuan_tempo_id.finance_email = self.finance_email - @api.onchange('pic_tittle', 'pic_name', 'street_pengiriman', 'state_id_pengiriman', 'city_id_pengiriman', + @api.onchange('pic_tittle','pic_mobile', 'pic_name', 'street_pengiriman', 'state_id_pengiriman', 'city_id_pengiriman', 'zip_pengiriman', 'district_id_pengiriman', 'subDistrict_id_pengiriman' - 'invoice_pic_tittle', 'invoice_pic', 'street_invoice', 'state_id_invoice', 'city_id_invoice', + 'invoice_pic_tittle','invoice_pic_mobile', 'invoice_pic', 'street_invoice', 'state_id_invoice', 'city_id_invoice', 'district_id_invoice', 'subDistrict_id_invoice', 'zip_invoice', 'tukar_invoice', 'jadwal_bayar', 'dokumen_pengiriman', 'dokumen_pengiriman_input', 'dokumen_invoice', - 'is_same_address', 'is_same_address_street') + 'is_same_address', 'is_same_address_street','dokumen_prosedur') def _onchange_related_fields_pengiriman(self): if self.pengajuan_tempo_id: # Perbarui nilai di pengajuan_tempo_id self.pengajuan_tempo_id.pic_tittle = self.pic_tittle + self.pengajuan_tempo_id.pic_mobile = self.pic_mobile self.pengajuan_tempo_id.pic_name = self.pic_name self.pengajuan_tempo_id.street_pengiriman = self.street_pengiriman self.pengajuan_tempo_id.state_id_pengiriman = self.state_id_pengiriman @@ -310,6 +320,7 @@ class UserPengajuanTempoRequest(models.Model): self.pengajuan_tempo_id.subDistrict_id_pengiriman = self.subDistrict_id_pengiriman self.pengajuan_tempo_id.zip_pengiriman = self.zip_pengiriman self.pengajuan_tempo_id.invoice_pic_tittle = self.invoice_pic_tittle + self.pengajuan_tempo_id.invoice_pic_mobile = self.invoice_pic_mobile self.pengajuan_tempo_id.invoice_pic = self.invoice_pic self.pengajuan_tempo_id.street_invoice = self.street_invoice self.pengajuan_tempo_id.state_id_invoice = self.state_id_invoice @@ -324,6 +335,7 @@ class UserPengajuanTempoRequest(models.Model): self.pengajuan_tempo_id.dokumen_invoice = self.dokumen_invoice self.pengajuan_tempo_id.is_same_address = self.is_same_address self.pengajuan_tempo_id.is_same_address_street = self.is_same_address_street + self.pengajuan_tempo_id.dokumen_prosedur = self.dokumen_prosedur @api.onchange('supplier_ids') def _onchange_supplier_ids(self): @@ -337,7 +349,6 @@ class UserPengajuanTempoRequest(models.Model): def _onchange_related_fields_dokumen(self): if self.pengajuan_tempo_id: # Perbarui nilai di pengajuan_tempo_id - self.pengajuan_tempo_id.dokumen_nib = self.dokumen_nib self.pengajuan_tempo_id.dokumen_siup = self.dokumen_siup self.pengajuan_tempo_id.dokumen_tdp = self.dokumen_tdp self.pengajuan_tempo_id.dokumen_skdp = self.dokumen_skdp @@ -509,6 +520,7 @@ class UserPengajuanTempoRequest(models.Model): { "type": "delivery", "name": self.pengajuan_tempo_id.pic_name, + "phone": self.pengajuan_tempo_id.pic_mobile, "street": self.pengajuan_tempo_id.street_pengiriman, "state_id": self.pengajuan_tempo_id.state_id_pengiriman.id, "kota_id": self.pengajuan_tempo_id.city_id_pengiriman.id, @@ -519,6 +531,7 @@ class UserPengajuanTempoRequest(models.Model): { "type": "invoice", "name": self.pengajuan_tempo_id.invoice_pic, + "phone": self.pengajuan_tempo_id.invoice_pic_mobile, "street": self.pengajuan_tempo_id.street_invoice, "state_id": self.pengajuan_tempo_id.state_id_invoice.id, "kota_id": self.pengajuan_tempo_id.city_id_invoice.id, @@ -583,6 +596,10 @@ class UserPengajuanTempoRequest(models.Model): self.user_company_id.dokumen_pengiriman = self.pengajuan_tempo_id.dokumen_pengiriman self.user_company_id.dokumen_pengiriman_input = self.pengajuan_tempo_id.dokumen_pengiriman_input self.user_company_id.dokumen_invoice = self.pengajuan_tempo_id.dokumen_invoice + self.user_company_id.dokumen_prosedur = self.pengajuan_tempo_id.dokumen_prosedur[0] if self.pengajuan_tempo_id.dokumen_prosedur else [] + if self.user_company_id.dokumen_prosedur: + self.user_company_id.message_post(body='Dokumen Prosedur', + attachment_ids=[self.user_company_id.dokumen_prosedur.id]) # Referensi self.user_company_id.supplier_ids = self.pengajuan_tempo_id.supplier_ids @@ -592,6 +609,8 @@ class UserPengajuanTempoRequest(models.Model): if self.user_company_id.dokumen_npwp: self.user_company_id.message_post(body='Dokumen NPWP', attachment_ids=[self.user_company_id.dokumen_npwp.id]) + + self.user_company_id.dokumen_sppkp = self.pengajuan_tempo_id.dokumen_sppkp[0] if self.pengajuan_tempo_id.dokumen_sppkp else [] if self.user_company_id.dokumen_sppkp: self.user_company_id.message_post(body='Dokumen SPPKP', attachment_ids=[self.user_company_id.dokumen_sppkp.id]) diff --git a/indoteknik_custom/views/res_partner.xml b/indoteknik_custom/views/res_partner.xml index af5e0db3..cb9fa3ac 100644 --- a/indoteknik_custom/views/res_partner.xml +++ b/indoteknik_custom/views/res_partner.xml @@ -131,6 +131,7 @@ <group string="Pengiriman" colspan="4"> <group> <field name="pic_name"/> + <field name="pic_mobile"/> <field name="street_pengiriman"/> <field name="state_id_pengiriman"/> <field name="city_id_pengiriman"/> @@ -140,6 +141,7 @@ </group> <group> <field name="invoice_pic"/> + <field name="invoice_pic_mobile"/> <field name="street_invoice"/> <field name="state_id_invoice"/> <field name="city_id_invoice"/> @@ -150,6 +152,7 @@ <group> <field name="tukar_invoice"/> <field name="jadwal_bayar"/> + <field name="dokumen_prosedur" /> <field name="dokumen_pengiriman"/> <field name="dokumen_pengiriman_input"/> <field name="dokumen_invoice"/> diff --git a/indoteknik_custom/views/user_pengajuan_tempo.xml b/indoteknik_custom/views/user_pengajuan_tempo.xml index 7f1faa41..4eebe9e4 100644 --- a/indoteknik_custom/views/user_pengajuan_tempo.xml +++ b/indoteknik_custom/views/user_pengajuan_tempo.xml @@ -53,6 +53,7 @@ <group string="Pengiriman" colspan="4"> <group> <field name="pic_name"/> + <field name="pic_mobile"/> <field name="street_pengiriman"/> <field name="state_id_pengiriman"/> <field name="city_id_pengiriman"/> @@ -62,6 +63,7 @@ </group> <group> <field name="invoice_pic"/> + <field name="invoice_pic_mobile"/> <field name="street_invoice"/> <field name="state_id_invoice"/> <field name="city_id_invoice"/> diff --git a/indoteknik_custom/views/user_pengajuan_tempo_request.xml b/indoteknik_custom/views/user_pengajuan_tempo_request.xml index 7063231b..339ce8db 100644 --- a/indoteknik_custom/views/user_pengajuan_tempo_request.xml +++ b/indoteknik_custom/views/user_pengajuan_tempo_request.xml @@ -102,6 +102,7 @@ <Page string="Pengiriman"> <group> <field name="pic_name"/> + <field name="pic_mobile"/> <field name="street_pengiriman"/> <field name="state_id_pengiriman"/> <field name="city_id_pengiriman"/> @@ -111,6 +112,7 @@ </group> <group> <field name="invoice_pic"/> + <field name="invoice_pic_mobile"/> <field name="street_invoice"/> <field name="state_id_invoice"/> <field name="city_id_invoice"/> @@ -121,6 +123,7 @@ <group> <field name="tukar_invoice"/> <field name="jadwal_bayar"/> + <field name="dokumen_prosedur" widget="many2many_binary"/> <field name="dokumen_pengiriman"/> <field name="dokumen_pengiriman_input"/> <field name="dokumen_invoice"/> |
