Create SalesOrder in Books
Tue Jan 07 2025 14:56:59 GMT+0000 (Coordinated Universal Time)
Saved by @Pooja
void Books.Create_Sales_Order_in_Books(int soid) { //Getting authtoken and organisation id books_access = thisapp.Books.Get_Books_Access(); conn_tok = books_access.get("connection"); org_id = books_access.get("organisation_id"); //info auth_tok; //info org_id; //------------------------------------------------------------------------------ fetch_so = Sales_Order[ID == input.soid]; //info fetch_so; fetch_cust = Customers[ID == fetch_so.Customer_Name]; //info ("fetchcust" + fetch_cust) + " " + fetch_cust.Customer_Books_ID; fetch_delivery_method = Shipping_Mode[ID == fetch_so.Delivery_Mode].Shipping_Mode; fetch_warehouse = Warehouse[ID = fetch_so.Warehouse].Warehouse_Name; fettax = GST_Details[ID == fetch_so.Item_Details.Tax]; fetemp = Employee_Details[ID == fetch_so.Created_By].Employee_Name; fetch_payment_trms = Payment_Terms[ID == fetch_so.Payment_Terms].Stages; shipment_date = fetch_so.Expected_Shipment_Date.toString("yyyy-MM-dd"); so_date = zoho.currentdate.toString("yyyy-MM-dd"); curr_code = Currency_Code[ID == fetch_cust.Currency_Code]; curr_conv = Currency_Conversion[Convert_To == fetch_cust.Currency_Code]; plc_of_supply = Destination[Destination == fetch_so.Place_of_Supply.Destination].Short_Name; fet_gst_trmt = GST_Treatment[ID == fetch_cust.GST_Treatment]; mymap = Map(); mymap.put("customer_id",fetch_cust.Customer_Books_ID); mymap.put("customer_name",fetch_cust.Contact_Name); mymap.put("date",so_date); //mymap.put("billing_address",fetch_so.Billing_Address); //mymap.put("shipping_address",fetch_so.Shipping_Address); mymap.put("shipment_date",shipment_date); mymap.put("delivery_method",fetch_delivery_method); mymap.put("place_of_supply",plc_of_supply); mymap.put("gst_treatment",fet_gst_trmt.Link_name); mymap.put("salesorder_number",fetch_so.Sale_Order_No); mymap.put("salesperson_name",fetemp); mymap.put("currency_id",curr_code.Zoho_Books_ID); mymap.put("exchange_rate",curr_conv.Exchange_Rate); mymap.put("status","Open"); url_to_so = "https://creatorapp.zoho.in/carrierwheels/erp/#Page:SO_Print?ID=" + soid; custom_list = List(); custom_map = Map(); custom_map.put("api_name","cf_download_so_from_erp"); custom_map.put("value",url_to_so); custom_list.add(custom_map); mymap.put("custom_fields",custom_list); item_list = List(); tx_val = 0; totalqty = 0; for each rec in fetch_so.Item_Details { fetchitem = Materials[ID == rec.Part_Description]; line_item_map = Map(); line_item_map.put("name",rec.Part_Description.Part_Description); line_item_map.put("item_id",fetchitem.Zoho_Books_ID); // line_item_map.put("description",rec.Part_Description.Additional_Description); line_item_map.put("quantity",rec.Qty); totalqty = ifnull(totalqty,0.00) + ifnull(rec.Qty,0.00); line_item_map.put("rate",rec.Rate); line_item_map.put("warehouse_name",fetch_warehouse); //line_item_map.put("tax_type",fettax.Tax_Details.Tax_Type); 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(rec.Tax_Value,0.0); } if(fetch_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",fetch_so.Packing_Forwarding); line_item_map.put("warehouse_name",fetch_warehouse); 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(fetch_so.PF_Tax_value,0.0); } mymap.put("tax_total",tx_val); mymap.put("line_items",item_list); post_url = zoho.books.createRecord("salesorders",org_id,mymap,conn_tok); info post_url; res_code = post_url.get("code").toLong(); resp_Map = Map(); log_type = "Failure"; if(res_code == 0) { log_type = "Success"; books_id = post_url.toMap().get("salesorder").toMap().get("salesorder_id"); fetch_so.Zoho_Books_ID=books_id; test_map = Map(); mark_response = invokeurl [ url :"https://www.zohoapis.in/books/v3/salesorders/" + books_id + "/status/open?organization_id=" + org_id + "" type :POST parameters:test_map connection:"books_con" ]; } if(res_code == 0) { getzbook = zoho.books.getRecordsByID("salesorders",org_id,books_id); get_line_item = getzbook.toMap().get("salesorder").toMap().get("line_items"); for each lineitem in get_line_item { lineitemid = lineitem.getjson("line_item_id"); itemid = lineitem.getjson("item_id"); fetso = Sales_Order[Zoho_Books_ID == books_id]; fetsosf = Sale_Order_Subform[Sales_Order_Exis_ID == fetso.ID]; getmat = Materials[Zoho_Books_ID == itemid]; for each sosfrec in fetsosf { if(sosfrec.Part_No == getmat.ID) { sosfrec.zb_line_item_id=lineitemid; fetso.pack_forw_lineitemid=lineitemid; } } } } ins_log = insert into Log_Files [ Added_User=zoho.loginuser Log_Type=log_type Module_Name="Books" Form_Name="Sales Order" Log_Details=post_url Reference_NO=fetch_so.Sale_Order_No ]; //sending error log message if(log_type == "Failure") { resp_Map.put("Resp","Failure"); resp_Map.put("log_msg",post_url.get("message")); } //status to changed updtstatus = zoho.books.markStatus("salesorders",org_id,books_id,"open",conn_tok); }
Comments