Convert Sales Order to Invoice in custom function (code)

Convert Sales Order to Invoice in custom function (code)


Hi..
I have tried to run this code
Unfortunately it didn't work
I am trying to convert a sales order into an invoice on the same date as the sales order
This is done when updating a specific field of the sales order






  1. respMap = zoho.books.getRecordById("Sales_Orders", input.soId.toLong());
  2. productDet = ifnull(respMap.get("product"),"");
  3. productList = productDet.toJSONList();
  4. pdlist = List();
  5. for each eachProd in productList
  6. {
  7. eachProdDet = eachProd.toMap();
  8. productDesc = ifnull(eachProdDet.get("Product Description"),"");
  9. quantity = ifnull(eachProdDet.get("Quantity"),"0");
  10. listPrice = (ifnull(eachProdDet.get("List Price"),"0.0")).toDecimal();
  11. netTotal = (ifnull(eachProdDet.get("Net Total"),"0.0")).toDecimal();
  12. linediscount = (ifnull(eachProdDet.get(("Discount")),"0.0")).toDecimal();
  13. total = (ifnull(eachProdDet.get("Total"),"0.0")).toDecimal();
  14. productId = ifnull(eachProdDet.get("Product Id"),"");
  15. linetax = (ifnull(eachProdDet.get("Tax"),"")).toDecimal();
  16. mp = map();
  17. mp.put("Product Id", productId);
  18. mp.put("Quantity", quantity);
  19. mp.put("List Price", listPrice);
  20. mp.put(("Discount"), linediscount);
  21. mp.put("Total", total);
  22. mp.put("Tax", linetax);
  23. mp.put("Net Total", netTotal);
  24. pdlist.add(mp);
  25. }
  26. paramap = map();
  27. paramap.put("Products", pdlist);
  28. paramap.put("Subject", ifnull(respMap.get("Subject"),""));
  29. paramap.put("CONTACTID", ifnull(respMap.get("CONTACTID"),""));
  30. paramap.put("Terms and Conditions", ifnull(respMap.get("Terms and Conditions"),""));
  31. paramap.put("Description", ifnull(respMap.get("Description"),""));
  32. paramap.put("Tax", (ifnull(respMap.get("Tax"),"0.0")).toDecimal());
  33. paramap.put("Adjustment", (ifnull(respMap.get("Adjustment"),"0.0")).toDecimal());
  34. paramap.put(("Discount"), (ifnull(respMap.get(("Discount")),"0.0")).toDecimal());
  35. paramap.put("Sub Total", (ifnull(respMap.get("Sub Total"),"0.0")).toDecimal());
  36. paramap.put("Grand Total", (ifnull(respMap.get("Grand Total"),"0.0")).toDecimal());
  37. paramap.put("Invoice Date", (ifnull(respMap.get("Order Date"),"0.0")).toDecimal());
  38. createResp = zoho.books.create("Invoices", paramap);
  39. return "Invoice created successfully";