Dispatch_Note Actual In Books (Creating Invoice)

PHOTO EMBED

Tue Jan 07 2025 14:57:47 GMT+0000 (Coordinated Universal Time)

Saved by @Pooja

void Books.Dispatch_Note_Actual_In_Books(int dnaid)
{
	books_access = thisapp.Books.Get_Books_Access();
	conn_tok = books_access.get("connection");
	org_id = books_access.get("organisation_id");
	disnote_act = Create_Dispatch_Note_Format[ID == input.dnaid];
	fetch_cust = Customers[ID == disnote_act.Customer_Name];
	if(fetch_cust.ID != 143536000004625764 && fetch_cust.ID != 143536000004570816 && fetch_cust.ID != 143536000005088666 && fetch_cust.ID != 143536000005117329)
	{
		fet_so = Sales_Order[ID == disnote_act.Sales_Order_No];
		fettax = GST_Details[ID == fet_so.Item_Details.Tax];
		//	info fet_so;
		plc_of_supply = Destination[Destination == fet_so.Place_of_Supply.Destination].Short_Name;
		disdate = disnote_act.Dispatch_Note_Date.toString("yyyy-MM-dd");
		sodate = fet_so.Sale_Order_Date.toString("yyyy-MM-dd");
		podate = fet_so.PO_Date.toString("yyyy-MM-dd");
		info disdate;
		info sodate;
		mymap = Map();
		//info mymap;
		mymap.put("customer_id",fetch_cust.Customer_Books_ID);
		//	info fetch_cust.Customer_Books_ID;
		mymap.put("customer_name",fetch_cust.Contact_Name);
		//info fetch_cust.Contact_Name;
		mymap.put("billing_address_id",fetch_cust.Billing_Address_Id);
		//info "custaddress" + fetch_cust.Billing_Address_Id;
		//mymap.put("shipping_address_id",fetch_cust.Shipping_Address_id);
		mymap.put("shipping_address",disnote_act.Customer_Address);
		//info "Shipping" + fet_so.Shipping_Address;
		mymap.put("place_of_supply",plc_of_supply);
		// 	info "placeofsupply" + plc_of_supply;
		custom_list = List();
		custom_map = Map();
		custom_map.put("api_name","cf_sales_order_no");
		custom_map.put("value",fet_so.Sale_Order_No);
		custom_list.add(custom_map);
		// 	info "Salerderno" + fet_so.Sale_Order_No;
		custom_map = Map();
		custom_map.put("api_name","cf_dispatch_date");
		custom_map.put("value",disdate);
		custom_list.add(custom_map);
		custom_map = Map();
		custom_map.put("api_name","cf_disp_note_no");
		custom_map.put("value",disnote_act.CDNF_ID);
		custom_list.add(custom_map);
		// 	info "dis date" + disnote_act.Dispatch_Note_Date;
		custom_map = Map();
		custom_map.put("api_name","cf_sales_order_date");
		custom_map.put("value",sodate);
		custom_list.add(custom_map);
		//info "sale date" + fet_so.Sale_Order_Date;
		vehicle_no = "";
		transpotor = "";
		if(disnote_act.Transport_Type == "One Time")
		{
			vehicle_no = ifNull(disnote_act.Vehicle_No_dup,"");
			transpotor = ifNull(disnote_act.Transporter_Name,"");
		}
		else
		{
			//vehicle_no = ifNull(disnote_act.Vehicle_No_dup,"");
			vehicle_no = ifNull(disnote_act.Vehicle_No.Vehicle_No,"");
			transpotor = ifNull(disnote_act.Transport_Name.Name_of_Transport,"");
		}
		custom_map = Map();
		custom_map.put("api_name","cf_vehicle_no");
		custom_map.put("value",vehicle_no);
		custom_list.add(custom_map);
		// 	info "vehicleno" + disnote_act.Vehicle_No;
		custom_map = Map();
		custom_map.put("api_name","cf_container_no");
		custom_map.put("value",ifnull(disnote_act.Container_No,""));
		custom_list.add(custom_map);
		custom_map = Map();
		custom_map.put("api_name","cf_transporter");
		custom_map.put("value",transpotor);
		custom_list.add(custom_map);
		// 	info "transname" + disnote_act.Transporter_Name;
		custom_map = Map();
		custom_map.put("api_name","cf_gr");
		custom_map.put("value",ifNull(disnote_act.GR_No,""));
		custom_list.add(custom_map);
		// 	info "grno" + disnote_act.GR_No;
		custom_map = Map();
		custom_map.put("api_name","cf_buyer_s_po_no");
		custom_map.put("value",ifNull(fet_so.PO_Reference,""));
		custom_list.add(custom_map);
		custom_map = Map();
		custom_map.put("api_name","cf_buyer_order_date");
		custom_map.put("value",podate);
		custom_list.add(custom_map);
		custom_map = Map();
		custom_map.put("api_name","cf_incoterms");
		custom_map.put("value",ifNull(fet_so.Incoterms1.Incoterms,""));
		custom_list.add(custom_map);
		custom_map = Map();
		custom_map.put("api_name","cf_incoterms_location");
		custom_map.put("value",ifNull(fet_so.Incoterms_Location.Incoterms_Location,""));
		custom_list.add(custom_map);
		mymap.put("custom_fields",custom_list);
		item_list = List();
		actqtycheck = 0;
		tx_val = 0;
		for each  rec in disnote_act.Product_Details
		{
			if(rec.Individual == false && rec.Actual_Qty > 0 && isNull(disnote_act.Draft_Invoice_ID) == True)
			{
				actqtycheck = 1;
				fetchitem = Materials[ID == rec.Product_Code];
				line_item_map = Map();
				line_item_map.put("description",fetchitem.Classification);
				// 		info "Product des" + rec.Product_Description;
				line_item_map.put("item_id",fetchitem.Zoho_Books_ID);
				line_item_map.put(" product_type","goods");
				// 		info fetchitem.Zoho_Books_ID;
				line_item_map.put("quantity",rec.Actual_Qty);
				// 		info "ordee qty" + rec.Ordered_Qty;
				fetsosub = Sale_Order_Subform[Sales_Order_Exis_ID == fet_so.ID && Part_No == rec.Product_Code];
				//info fetsosub;
				line_item_map.put("rate",fetsosub.Rate);
				// 		info "rate" + rec1.Rate;
				//line_item_map.put("tax",fetsosub.Tax);
				// 		info "Tax" + rec1.Tax;
				//line_item_map.put("tax_value",fetsosub.Tax_Value);
				line_item_map.put("tax_id",fetsosub.Tax.Zoho_Books_ID);
				line_item_map.put("salesorder_item_id",fetsosub.zb_line_item_id);
				line_sub = List();
				custom_map = Map();
				custom_map.put("label","Customer Part Code");
				custom_map.put("value",ifNull(fetsosub.Customer_Part_Code,""));
				line_sub.add(custom_map);
				custom_map = Map();
				custom_map.put("label","Packing");
				custom_map.put("value",ifNull(fetsosub.Packing_Std.Packaging_Name,""));
				line_sub.add(custom_map);
				line_item_map.put("item_custom_fields",line_sub);
				line_item_map.put("hsn_or_sac",fetsosub.HSN_Code);
				custom_map = Map();
				custom_map.put("label","UOM");
				custom_map.put("value",ifnull(fetsosub.UoM.UOM,""));
				line_sub.add(custom_map);
				item_list.add(line_item_map);
			}
		}
		if(fet_so.Packing_Forwarding > 0)
		{
			fetchitem = Materials[Part_No == "900114"];
			line_item_map = Map();
			line_item_map.put("name",fetchitem.Part_Description);
			line_item_map.put("item_id",fetchitem.Zoho_Books_ID);
			//line_item_map.put("quantity",1);
			line_item_map.put("rate",fet_so.Packing_Forwarding);
			line_item_map.put("tax_name",fettax.Tax_Name);
			line_item_map.put("tax_id",fettax.Zoho_Books_ID);
			line_item_map.put("tax_percentage",fettax.Total_Rate);
			item_list.add(line_item_map);
			tx_val = ifnull(tx_val,0.0) + ifnull(fet_so.PF_Tax_value,0.0);
		}
		mymap.put("tax_total",tx_val);
		if(actqtycheck == 1)
		{
			mymap.put("line_items",item_list);
			mymap.put("payment_terms_label",ifNull(fetch_cust.Payment_Terms.Stages,""));
			mymap.put("payment_terms",fetch_cust.Exposure_Days);
			info mymap;
			createinbooks = zoho.books.createRecord("invoices","60015333461",mymap,conn_tok);
			info createinbooks;
			rescode = createinbooks.get("code").toLong();
			log_type = "Failure";
			if(rescode == 0)
			{
				log_type = "Success";
			}
			ins_log = insert into Log_Files
			[
				Added_User=zoho.loginuser
				Module_Name="Invoice-Books"
				Form_Name="Dispatch_Note_Actual_In_Books-Invoice"
				Log_Details=createinbooks
				Log_Type=log_type
				Reference_NO=disnote_act.CDNF_ID
			];
			retainerno = createinbooks.get("invoice").toMap();
			retinvno = retainerno.get("invoice_number");
			retinvid = retainerno.get("invoice_id");
			retain_upd_map = Map();
			retain_dummyMap = Map();
			//	retain_upd_map.put("Invoice_No",retinvno);
			retain_upd_map.put("invoice_ID",retinvid);
			disnote_act.Draft_Invoice_ID=retinvid.toString();
			//disnote_act.Draft_Invoice_No=retinvno;
			fet_so.Books_Invoice_ID=retinvid.toString();
		}
	}
}
content_copyCOPY