I'm not a full time developer, just helping to customize our CRM, in the small company I work for. There must be something wrong with me, because I can't do something so simple as complete a field with the current date in a function using Deluge. I'm getting errors like "UnParsable date" or "INVALID_DATA" or just "Error".
I don't want to use a workflow rule, I need to modify this function that someone wrote, it creates a PO for each Supplier in the Sales Order (using a button).
Thanks in advance, I'm about to give up..
string button.convert_so2po(Int so_id)
{
result_string = "Resultado: ";
// Obtiene la orden de venta.
so_aux = zoho.crm.getRecordById("Sales_Orders",so_id);
so_quote_link = so_aux.get("quote_link");
so_oc_cliente_link = so_aux.get("oc_cliente_link");
po_link_map = Map();
po_link_map.put("quote_link",so_quote_link);
po_link_map.put("oc_cliente_link",so_oc_cliente_link);
so_read = invokeurl
[
type :GET
connection:"zohocrmcon"
];
so = so_read.get("data").get(0);
//info "SO: " + so;
//Si la SO ya tiene PO, le pide que primero las borre y sale de la función.
/*if(!so.get("ordenes_de_compra").isEmpty())
{
return "Por favor, borre primero las OC Generadas.";
}*/
// Obtiene la lista de items a comprar
so_items = so.get("Ordered_Items");
// Crea la lista de proveedores para luego generar una PO por cada uno
proveedores = List();
for each _item in so_items
{
_proveedor = _item.get("Proveedor");
if(proveedores.contains(_proveedor) = False)
{
proveedores.add(_proveedor);
}
}
// Completa los datos comunes a todas las PO que genera a través de la SO
//po_map.put("Nombre_de_Cuenta",so.get("Account_Name"));
//po_map.put("Nombre_de_Negocio",so.get("Deal_Name"));
//po_map.put("Nombre_de_Presupuesto",so.get("Quote_Name"));
po_map = Map();
po_map.put("Orden_de_venta",so.get("id"));
po_map.put("quote_file",so.get("quote_file"));
dateVariable = ?? ; //STEP 1
po_map.put("PO_Date", dateVariable); // STEP 2
so_asunto = so.get("Subject");
// Completo los datos específicos de cada PO, una por cada proveedor.
ordenes_de_compra = List();
aux_po_id = 0;
// Sufijo del número de PO
for each _proveedor in proveedores
{
aux_po_id = aux_po_id + 1;
order_list = List();
for each _item in so_items
{
// info "Item:" + _item;
if(_item.get("Proveedor") = _proveedor)
{
_order_line = Map();
_order_line.put("Product_Name",_item.get("Product_Name"));
_order_line.put("Description",_item.get("Description"));
_order_line.put("articulo_dsi",_item.get("articulo_dsi"));
_order_line.put("Quantity",_item.get("Quantity"));
_order_line.put("List_Price",_item.get("List_Price"));
_order_line.put("IVA",_item.get("IVA"));
_order_line.put("quote_id",_item.get("Quote"));
order_list.add(_order_line);
}
}
po_map.put("Vendor_Name",_proveedor);
po_map.put("Purchase_Items",order_list);
asunto = so_asunto + " (" + _proveedor.get("name") + ")";
po_map.put("Subject",asunto);
po_number = so.get("N_mero_AR") + "-" + aux_po_id.toString("00");
po_map.put("oc_numero",po_number);
// info _proveedor + "<->" + po_map;
dmp_list = List();
dmp_list.add(po_map);
dmp = Map();
dmp.put("data",dmp_list);
info dmp;
// Preparo la URL para invocar en la creación de Órdenes de compra
create_po = invokeurl
[
type :POST
parameters:dmp + ""
connection:"zohocrmcon"
];
// Creo la Orden de compra
result = create_po;
result_code = result.get("data").get(0).get("code");
result_string = result_string + po_number + "@" + _proveedor.get("name") + ": " + result_code + ". ";
info result;
po_id = result.get("data").get(0).get("details").get("id");
// Agrego la lista de quotes
zoho.crm.updateRecord("Purchase_Orders",po_id,po_link_map);
// info "LEO " + zoho.crm.getRecordById("Purchase_Orders", po_id);
_po_ref = Map();
_po_ref.put("name",asunto);
_po_ref.put("id",po_id);
orden_de_compra = Map();
orden_de_compra.put("ordenes_de_compra",_po_ref);
ordenes_de_compra.add(orden_de_compra);
}
// Preparo la URL para invocar
so_oc = Map();
so_oc.put("ordenes_de_compra",ordenes_de_compra);
dmp_list = List();
dmp_list.add(so_oc);
dmp = Map();
dmp.put("data",dmp_list);
info dmp;
update_so = invokeurl
[
type :PUT
parameters:dmp + ""
connection:"zohocrmcon"
];
// Actualizo el registro
info update_so;
return result_string;
}