38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
# Copyright (c) 2017, Frappe and Contributors
|
|
# License: GNU General Public License v3. See license.txt
|
|
|
|
from __future__ import unicode_literals
|
|
from erpnext.regional.italy.setup import make_custom_fields, setup_report
|
|
from erpnext.regional.italy import state_codes
|
|
import frappe
|
|
|
|
def execute():
|
|
company = frappe.get_all('Company', filters = {'country': 'Italy'})
|
|
if not company:
|
|
return
|
|
|
|
frappe.reload_doc('regional', 'report', 'electronic_invoice_register')
|
|
make_custom_fields()
|
|
setup_report()
|
|
|
|
# Set state codes
|
|
condition = ""
|
|
for state, code in state_codes.items():
|
|
condition += " when {0} then {1}".format(frappe.db.escape(state), frappe.db.escape(code))
|
|
|
|
if condition:
|
|
condition = "state_code = (case state {0} end),".format(condition)
|
|
|
|
frappe.db.sql("""
|
|
UPDATE tabAddress set {condition} country_code = UPPER(ifnull((select code
|
|
from `tabCountry` where name = `tabAddress`.country), ''))
|
|
where country_code is null and state_code is null
|
|
""".format(condition=condition))
|
|
|
|
frappe.db.sql("""
|
|
UPDATE `tabSales Invoice Item` si, `tabSales Order` so
|
|
set si.customer_po_no = so.po_no, si.customer_po_date = so.po_date
|
|
WHERE
|
|
si.sales_order = so.name and so.po_no is not null
|
|
""")
|