Added purchase invoice sending (act)

This commit is contained in:
Ali 2026-01-27 20:21:35 +04:00
parent f01ab09b4e
commit 7a57b320af
1 changed files with 154 additions and 0 deletions

View File

@ -373,6 +373,69 @@ def create_custom_fields():
options='\nAruba\nƏfqanıstan\nAnqola\nAngilya\nAlbaniya\nAndorra\nNiderland Antil adaları\nBƏƏ\nArgentina\nErmənistan\nAmerika Samoası\nAntiqua və Barbuda\nAvstraliya\nAvstriya\nBurundi\nBelçika\nBenin\nBurkina-Faso\nBanqladeş\nBolqarıstan\nBəhreyn\nBaham adaları\nBosniya və Herseqovina\nBelarus\nBeliz\nBermud adaları\nBoliviya\nBraziliya\nBarbados\nBruney\nButan\nBotsvana\nMAR\nKanada\nKokos adaları\nİsveçrə\nÇili\nÇin\nKot-d\'ivuar\nKamerun\nKDR\nKonqo Respublikası\nKuk adaları\nKolumbiya\nKomor adaları\nKabo-Verde\nKosta-Rika\nKuba\nMilad adası\nKayman adaları\nKipr\nÇexiya\nAlmaniya\nCibuti\nDominika\nDanimarka\nDominikan Respublikası\nƏlcəzair\nEkvador\nMisir\nEritreya\nQərbi Sahara\nİspaniya\nEstoniya\nEfiopiya\nFinlandiya\nFici\nFoklend adaları\nFransa\nFarer adaları\nMikroneziya\nQabon\nBöyük Britaniya\nGürcüstan\nQana\nCəbəli-Tariq\nQvineya\nQambiya\nQvineya-Bisau\nEkvatorial Qvineya\nYunanıstan\nQrenada\nQrenlandiya\nQvatemala\nQuam\nQayana\nHonkonq\nHonduras\nXorvatiya\nHaiti\nMacarıstan\nindoneziya\nHindistan\nirlandiya\nİran\nİraq\nislandiya\nisrail\nitaliya\nYamayka\nlordaniya\nYaponiya\nQazağıstan\nKeniya\nQıızıstan\nKamboca\nKiribati\nSent-Kits və Nevis\nCənubi Koreya\nKüveyt\nLaos\nLivan\nLiberiya\nLiviya\nSent-Lüsiya\nLixtenşteyn\nŞri-Lanka\nLesoto\nLitva\nLüksemburq\nLatviya\nMakao\nMərakeş\nMonako\nMoldova\nMadaqaskar\nMaldiv adaları\nMeksika\nMarşall adaları\nMakedoniya\nMali\nMalta\nMyanma\nMonteneqro\nMonqolustan\nŞimali Marian adaları\nMozambik\nMavritaniya\nMontserrat\nMavriki\nMalavi\nMalayziya\nMayotta\nNamibiya\nYeni Kaledoniya\nNiger\nNorfolk adası\nNigeriya\nNikaraqua\nNiue\nNiderland\nNorveç\nNepal\nNauru\nYeni Zelandiya\nOman\nPakistan\nPanama\nPitkern adaları\nPeru\nFilippin\nPalau\nPapua-Yeni Qvineya\nPolşa\nPuerto-Riko\nKXDR\nPortuqaliya\nParaqvay\nFələstin Dövləti\nFransa Polineziyası\nQətər\nRuminiya\nRusiya\nRuanda\nSəudiyyə Ərəbistanı\nSudan\nSeneqal\nSinqapur\nMüqəddəs Yelena, Askenson və Tristan-da-Kunya adaları\nŞpisbergen və Yan-Mayen\nSolomon adaları\nSyerra-Leone\nSalvador\nSan-Marino\nSomali\nSen-Pyer və Mikelon\nSerbiya\nCənubi Sudan\nSan-Tome və Prinsipi\nSurinam\nSlovakiya\nSloeniya\nİsveç\nSvazilend\nSeyşel adaları\nSuriya\nTörks və Kaykos adaları\nÇad\nToqo\nTailand\nTacikistan\nTokelau\nTürkmənistan\nŞərqi Timor\nTonqa\nTrinidad və Tobaqo\nTunis\nTürkiyə\nTuvalu\nÇin Respublikası\nTanzaniya\nUqanda\nUkrayna\nUruqvay\nABŞ\nÖzbəkistan\nVatikan\nSent-Vinsent və Qrenadin\nVenesuela\nBritaniya Virgin adaları\nAmerika Virgin adaları\nVyetnam\nVanuatu\nUollis və Futuna\nSamoa\nYəmən\nCAR\nZambiya\nZimbabve',
insert_after='purchase_confirmation_doc_type',
depends_on='eval:doc.agricultural_goods && doc.purchase_confirmation_doc_type == "Import"'
),
# === E-TAXES AGRICULTURAL ACT SECTION ===
dict(
fieldname='etaxes_agricultural_section',
label='E-Taxes Agricultural Act',
fieldtype='Section Break',
insert_after='is_taxes_doc',
collapsible=1
),
dict(
fieldname='act_kind',
label='Act Kind',
fieldtype='Select',
options='\nAgricultural Products Act',
insert_after='etaxes_agricultural_section',
description='Type of agricultural act'
),
dict(
fieldname='etaxes_purchase_id',
label='E-Taxes Purchase Act ID',
fieldtype='Data',
insert_after='act_kind',
read_only=1,
allow_on_submit=1,
no_copy=1
),
dict(
fieldname='etaxes_purchase_serial_number',
label='E-Taxes Serial Number',
fieldtype='Data',
insert_after='etaxes_purchase_id',
read_only=1,
in_list_view=1,
allow_on_submit=1,
no_copy=1
),
# Column break
dict(
fieldname='etaxes_purchase_column_break',
fieldtype='Column Break',
insert_after='etaxes_purchase_serial_number'
),
dict(
fieldname='etaxes_purchase_verification_code',
label='E-Taxes Verification Code',
fieldtype='Data',
insert_after='etaxes_purchase_column_break',
read_only=1,
allow_on_submit=1,
no_copy=1
),
dict(
fieldname='etaxes_purchase_send_status',
label='E-Taxes Send Status',
fieldtype='Select',
options='\nNot Sent\nCreated, not signed\nSent and Signed\nFailed',
default='Not Sent',
insert_after='etaxes_purchase_verification_code',
read_only=1,
in_list_view=1,
allow_on_submit=1,
no_copy=1
)
],
"Sales Order": [
@ -871,6 +934,97 @@ def create_custom_fields():
insert_after='from_date_temporary'
)
],
"Supplier": [
# === E-TAXES INDIVIDUAL INFORMATION SECTION ===
dict(
fieldname='etaxes_individual_section',
label='E-Taxes Individual Information',
fieldtype='Section Break',
insert_after='supplier_type',
collapsible=1,
depends_on='eval:doc.supplier_type == "Individual"'
),
# Fetch button from E-Taxes (left side)
dict(
fieldname='etaxes_fetch_button_html',
fieldtype='HTML',
insert_after='etaxes_individual_section',
depends_on='eval:doc.supplier_type == "Individual" && doc.fin && doc.passport_serial_number',
options='<button class="btn btn-primary btn-sm" id="fetch-from-etaxes-btn" style="margin-bottom: 15px;">' +
'<i class="fa fa-cloud-download"></i> Fetch from E-Taxes</button>' +
'<p class="text-muted small" style="margin-top: 5px; margin-bottom: 15px;">Click to auto-fill Date of Birth, First Name, Last Name, Phone Number and Supplier Name from E-Taxes</p>'
),
# Column break for right side
dict(
fieldname='etaxes_button_column_break',
fieldtype='Column Break',
insert_after='etaxes_fetch_button_html',
depends_on='eval:doc.supplier_type == "Individual"'
),
# Hidden placeholder field (right side)
dict(
fieldname='etaxes_placeholder_field',
fieldtype='Data',
insert_after='etaxes_button_column_break',
hidden=1,
depends_on='eval:doc.supplier_type == "Individual"'
),
# Section break to push fields below button
dict(
fieldname='etaxes_fields_section',
fieldtype='Section Break',
insert_after='etaxes_placeholder_field',
depends_on='eval:doc.supplier_type == "Individual"'
),
dict(
fieldname='fin',
label='FIN',
fieldtype='Data',
insert_after='etaxes_fields_section',
depends_on='eval:doc.supplier_type == "Individual"'
),
dict(
fieldname='passport_serial_number',
label='Passport Serial Number',
fieldtype='Data',
insert_after='fin',
depends_on='eval:doc.supplier_type == "Individual"'
),
dict(
fieldname='date_of_birth',
label='Date of Birth',
fieldtype='Date',
insert_after='passport_serial_number',
depends_on='eval:doc.supplier_type == "Individual"'
),
# Column break
dict(
fieldname='individual_column_break',
fieldtype='Column Break',
insert_after='date_of_birth',
depends_on='eval:doc.supplier_type == "Individual"'
),
dict(
fieldname='first_name_individual',
label='First Name',
fieldtype='Data',
insert_after='individual_column_break',
depends_on='eval:doc.supplier_type == "Individual"'
),
dict(
fieldname='last_name_individual',
label='Last Name',
fieldtype='Data',
insert_after='first_name_individual',
depends_on='eval:doc.supplier_type == "Individual"'
),
dict(
fieldname='phone_number_individual',
label='Phone Number',
fieldtype='Data',
insert_after='last_name_individual'
)
],
"Account": [
dict(
fieldname='is_account',