fix: ImponibileImporto calculation
This commit is contained in:
		
							parent
							
								
									22ebaf1b11
								
							
						
					
					
						commit
						1b7059b867
					
				| @ -587,5 +587,5 @@ erpnext.patches.v11_1.setup_guardian_role | ||||
| execute:frappe.delete_doc('DocType', 'Notification Control') | ||||
| erpnext.patches.v11_0.remove_barcodes_field_from_copy_fields_to_variants | ||||
| erpnext.patches.v10_0.item_barcode_childtable_migrate # 16-02-2019 | ||||
| erpnext.patches.v11_0.make_italian_localization_fields # 07-03-2019 | ||||
| erpnext.patches.v11_0.make_italian_localization_fields # 26-03-2019 | ||||
| erpnext.patches.v11_1.make_job_card_time_logs | ||||
|  | ||||
| @ -28,3 +28,10 @@ def execute(): | ||||
| 			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 | ||||
| 	""") | ||||
|  | ||||
| @ -143,15 +143,11 @@ | ||||
|         <ImportoTotaleDocumento>{{ format_float(doc.rounded_total or doc.grand_total) }}</ImportoTotaleDocumento> | ||||
|         <Causale>VENDITA</Causale> | ||||
|       </DatiGeneraliDocumento> | ||||
|       {%- for row in doc.e_invoice_items %} | ||||
|         {%- if row.customer_po_no %} | ||||
|       {%- for po_no, po_date in doc.customer_po_data.items() %} | ||||
|         <DatiOrdineAcquisto> | ||||
|               <IdDocumento>{{ row.customer_po_no }}</IdDocumento> | ||||
|               {%- if row.customer_po_date %} | ||||
|                 <Data>{{ row.customer_po_date }}</Data> | ||||
|               {%- endif %} | ||||
|             <IdDocumento>{{ po_no }}</IdDocumento> | ||||
|             <Data>{{ po_date }}</Data> | ||||
|         </DatiOrdineAcquisto> | ||||
|         {%- endif %} | ||||
|       {%- endfor %} | ||||
|       {%- if doc.is_return and doc.return_against_unamended %} | ||||
|       <DatiFattureCollegate> | ||||
| @ -188,7 +184,11 @@ | ||||
|         <UnitaMisura>{{ item.stock_uom }}</UnitaMisura> | ||||
|         <PrezzoUnitario>{{ format_float(item.price_list_rate or item.rate) }}</PrezzoUnitario> | ||||
|         {{ render_discount_or_margin(item) }} | ||||
|         {%- if (item.discount_amount or item.rate_with_margin) %} | ||||
|           <PrezzoTotale>{{ format_float(item.net_amount) }}</PrezzoTotale> | ||||
|         {%- else %} | ||||
|           <PrezzoTotale>{{ format_float(item.amount) }}</PrezzoTotale> | ||||
|         {%- endif %} | ||||
|         <AliquotaIVA>{{ format_float(item.tax_rate) }}</AliquotaIVA> | ||||
|         {%- if item.tax_exemption_reason %} | ||||
|         <Natura>{{ item.tax_exemption_reason.split("-")[0] }}</Natura> | ||||
|  | ||||
| @ -3,15 +3,26 @@ erpnext.setup_e_invoice_button = (doctype) => { | ||||
| 		refresh: (frm) => { | ||||
| 			if(frm.doc.docstatus == 1) { | ||||
| 				frm.add_custom_button('Generate E-Invoice', () => { | ||||
| 					frm.call({ | ||||
| 						method: "erpnext.regional.italy.utils.generate_single_invoice", | ||||
| 						args: { | ||||
| 							docname: frm.doc.name | ||||
| 						}, | ||||
| 						callback: function(r) { | ||||
| 							frm.reload_doc(); | ||||
| 							if(r.message) { | ||||
| 								var w = window.open( | ||||
| 									frappe.urllib.get_full_url( | ||||
| 							"/api/method/erpnext.regional.italy.utils.generate_single_invoice?" | ||||
| 							+ "docname=" + frm.doc.name | ||||
| 										"/api/method/erpnext.regional.italy.utils.download_e_invoice_file?" | ||||
| 										+ "file_name=" + r.message | ||||
| 									) | ||||
| 								) | ||||
| 								if (!w) { | ||||
| 									frappe.msgprint(__("Please enable pop-ups")); return; | ||||
| 								} | ||||
| 							} | ||||
| 						} | ||||
| 					}); | ||||
| 				}); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| @ -32,14 +32,14 @@ def make_custom_fields(update=True): | ||||
| 		dict(fieldname='customer_po_no', label='Customer PO No', | ||||
| 			fieldtype='Data', insert_after='customer_po_details', | ||||
| 			fetch_from = 'sales_order.po_no', | ||||
| 			print_hide=1, allow_on_submit=1, fetch_if_empty= 1, read_only=1), | ||||
| 			print_hide=1, allow_on_submit=1, fetch_if_empty= 1, read_only=1, no_copy=1), | ||||
| 		dict(fieldname='customer_po_clm_brk', label='', | ||||
| 			fieldtype='Column Break', insert_after='customer_po_no', | ||||
| 			print_hide=1, read_only=1), | ||||
| 		dict(fieldname='customer_po_date', label='Customer PO Date', | ||||
| 			fieldtype='Date', insert_after='customer_po_clm_brk', | ||||
| 			fetch_from = 'sales_order.po_date', | ||||
| 			print_hide=1, allow_on_submit=1, fetch_if_empty= 1, read_only=1) | ||||
| 			print_hide=1, allow_on_submit=1, fetch_if_empty= 1, read_only=1, no_copy=1) | ||||
| 	] | ||||
| 
 | ||||
| 	custom_fields = { | ||||
|  | ||||
| @ -82,6 +82,14 @@ def prepare_invoice(invoice, progressive_number): | ||||
| 		if item.tax_rate == 0.0 and item.tax_amount == 0.0: | ||||
| 			item.tax_exemption_reason = tax_data["0.0"]["tax_exemption_reason"] | ||||
| 
 | ||||
| 	customer_po_data = {} | ||||
| 	for d in invoice.e_invoice_items: | ||||
| 		if (d.customer_po_no and d.customer_po_date | ||||
| 			and d.customer_po_no not in customer_po_data): | ||||
| 			customer_po_data[d.customer_po_no] = d.customer_po_date | ||||
| 
 | ||||
| 	invoice.customer_po_data = customer_po_data | ||||
| 
 | ||||
| 	return invoice | ||||
| 
 | ||||
| def get_conditions(filters): | ||||
| @ -267,13 +275,18 @@ def prepare_and_attach_invoice(doc, replace=False): | ||||
| def generate_single_invoice(docname): | ||||
| 	doc = frappe.get_doc("Sales Invoice", docname) | ||||
| 
 | ||||
| 
 | ||||
| 	e_invoice = prepare_and_attach_invoice(doc, True) | ||||
| 
 | ||||
| 	return e_invoice.file_name | ||||
| 
 | ||||
| @frappe.whitelist() | ||||
| def download_e_invoice_file(file_name): | ||||
| 	content = None | ||||
| 	with open(frappe.get_site_path('private', 'files', e_invoice.file_name), "r") as f: | ||||
| 	with open(frappe.get_site_path('private', 'files', file_name), "r") as f: | ||||
| 		content = f.read() | ||||
| 
 | ||||
| 	frappe.local.response.filename = e_invoice.file_name | ||||
| 	frappe.local.response.filename = file_name | ||||
| 	frappe.local.response.filecontent = content | ||||
| 	frappe.local.response.type = "download" | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user