In Zoho inventory Converting sales return to cerdit note from using Api from Creator
map Inventory.Create_Credit_note(int CRE_ID)
{
return_value = Map();
Cre_details = Credit_Note[ID == CRE_ID];
// Fetch customer from Zoho Books
customerResp = invokeurl
[
type :GET
connection:"z_books"
];
contacts = customerResp.get("contacts");
if(contacts.size() > 0)
{
customerID = contacts.get(0).get("contact_id");
}
else
{
return_value.put("message","Customer not found in Zoho Books");
return return_value;
}
info customerID;
cnDate = Cre_details.Credit_Note_Date;
cnNo = Cre_details.Credit_Note;
Cn_salesreturnid = Cre_details.Sales_Return_Books_ID;
info Cn_salesreturnid;
Cn_salesorderid = Cre_details.Sales_Order_Books_ID;
info Cn_salesorderid;
// Fetch Sales Order data from Zoho Inventory
Get_Data = invokeurl
[
type :GET
connection:"zoh_inv_v3"
];
SO_data = Get_Data.getJSON("salesorder");
invoice_id = ifnull(SO_data.getJSON("invoices").getJSON("invoice_id"),"");
info invoice_id;
invoice_num = ifnull(SO_data.getJSON("invoices").getJSON("invoice_number"),"");
info invoice_num;
Place_Of_Supply = SO_data.getJSON("place_of_supply");
info Place_Of_Supply;
tax_treatment = SO_data.getJSON("tax_treatment");
info tax_treatment;
// Build line items list
itemsList = List();
for each row in Cre_details.Item_Details
{
if(row.Quantity > 0)
{
itemMap = Map();
itemMap.put("item_id",row.Product.Product_Inventory_ID);
itemMap.put("quantity",row.Quantity);
itemMap.put("rate",row.Rate);
itemMap.put("account_id","2976380000000000388");
itemMap.put("location_id","2976380000006616056");
itemMap.put("invoice_id",invoice_id);
itemMap.put("invoice_item_id","2976380000029841014");
itemMap.put("salesreturn_item_id","2976380000029833112");
itemMap.put("is_item_shipped",true);
itemMap.put("is_returned_to_stock",true);
// <-- Fixed typo here!
itemsList.add(itemMap);
}
}
// Build credit note data map
cnData = Map();
cnData.put("location_id","2976380000006616056");
cnData.put("customer_id",customerID);
cnData.put("creditnote_number",cnNo);
cnData.put("date",cnDate.toString("yyyy-MM-dd"));
// cnData.put("invoice_number", invoice_num);
// cnData.put("invoice_id", invoice_id);
//cnData.put("salesreturn_id", Cn_salesreturnid);
// cnData.put("salesorder_id", Cn_salesorderid);
cnData.put("place_of_supply",ifnull(Place_Of_Supply,""));
cnData.put("tax_treatment",ifnull(tax_treatment,""));
cnData.put("line_items",itemsList);
info cnData;
cnDataString = cnData.toString();
response = invokeurl
[
type :POST
parameters:cnDataString
connection:"zoh_inv_v3"
];
info response;
if(response.getJSON("code") == 0)
{
Cre_details.Books_Credit_Note=response.get("creditnote").get("creditnote_id");
sales_ret = Sales_Returns[SalesReturn_Inventory_id == Cn_salesreturnid];
if(sales_ret != null)
{
sales_ret.Create_Credit_Note="Created";
sales_ret.Return_Status="CLOSED";
sales_ret.Refund_Status="pending";
sales_ret.Amount_Refunded=Cre_details.Total;
sales_ret.Credit_Note_Books_Id=response.get("creditnote").get("creditnote_id");
}
return_value.put("message",response.get("message"));
sendmail
[
from :zoho.loginuserid
subject :"Credit Note Created: " + Cre_details.Credit_Note
message :"Credit Note Created Successfully: " + response.toString()
]
}
else
{
return_value.put("message",response.get("message"));
sendmail
[
from :zoho.loginuserid
subject :"Error in Credit Note Creation: " + Cre_details.Credit_Note
message :"Error details: " + response.toString()
]
}
return return_value;
}
/// itemMap.put("salesreturn_item_id","2976380000029833112");
if i use this line iam getting the error
iam passing line item id of the sales return in the sreturn_item_id
during that time i get the error