Пользовательская функция Zoho CRM Deluge Script обновляет поле даты с помощью поля года с другой датой - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь создать пользовательскую функцию в Zoho CRM, которая принимает запись счета-фактуры, просматривает период времени подписки (дата начала и дата окончания) и делит промежуточный итог по месяцам подписки. (Апрель, май, июнь и т. Д. c.) Я пытаюсь создать дату, которая принимает константу 04/30 и добавляет год от даты начала года или года окончания даты, но у меня возникли проблемы с синтаксис. Я полагаю, что с моим заявлением может быть что-то не так. Извините, полный нуб в этом. Если бы кто-нибудь мог дать направление по ним, это было бы очень признательно.

Вот код, который у меня есть до сих пор

invoice_record = zoho.crm.getRecordById("Invoices", invoice_id);
start_date = invoice_record.get("Service Start Date");
end_date = invoice_record.get("Service End Date");
invoice_date = invoice_record.get("Invoice Date");
start_date_month = start_date.getMonth();
start_date_year = start_date.getyear ();
end_date_year = end_date.getyear();

// calculate how many months in the service period

service_length = start_date.monthsBetween(end_date);

//April Revenue Recognition

april_date_start_year_datestring = "04/30/" + start_date_year;

april_date_start_year = april_date_start_year_datestring.todate( "MM/dd/yyyy") ;

april_date_end_year_datestring = "04/30/" + end_date_year;

april_date_end_year = april_date_end_year_datestring.todate( "mm/dd/yyyy") ;

if (april_date_start_year >= start_date || april_date_end_year < = april_date_end_year ) 
{ rev_rec_april = "Sub Total" / service_length }
else
{rev_rec_april = 0}

invoice_record.put("April Revenue", rev_rec_april);

update_resp = zoho.crm.updateRecord("invoices", invoice_id.toString(), invoice_record);

1 Ответ

0 голосов
/ 03 марта 2020

Если кто-нибудь найдет это полезным позже, вот что получилось:

invoice_record = zoho.crm.getRecordById("Invoices",invoice_id);
start_date_datestring = invoice_record.get("Service_Date");
start_date = start_date_datestring.toDate("yyyy-MM-dd");
end_date_datestring = invoice_record.get("End_of_Service_Date");
end_date = end_date_datestring.todate("yyyy-MM-dd");
invoice_date = invoice_record.get("Invoice_Date");
start_date_month = start_date.getMonth();
start_date_year = start_date.getyear();
end_date_year = end_date.getyear();
subtotal2 = invoice_record.get("Sub_Total");
// calculate how many months in the service period
service_length = start_date.monthsBetween(end_date);
//April Revenue Recognition
if(4 >= start_date_month)
{
    april_date_datestring = "04/30/" + start_date_year;
}
else
{
    april_date_datestring = "04/30/" + end_date_year;
}
april_date = april_date_datestring.todate("MM/d/yyyy");
info april_date;
if(april_date >= start_date && april_date <= end_date)
{
    rev_rec_april = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_april = 0.0;
}
//May Revenue Recognition
if(5 >= start_date_month)
{
    may_date_datestring = "05/31/" + start_date_year;
}
else
{
    may_date_datestring = "05/31/" + end_date_year;
}
may_date = may_date_datestring.todate("MM/d/yyyy");
info may_date;
if(may_date >= start_date && may_date <= end_date)
{
    rev_rec_may = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_may = 0.0;
}
//June Revenue Recognition
if(6 >= start_date_month)
{
    june_date_datestring = "06/30/" + start_date_year;
}
else
{
    june_date_datestring = "06/30/" + end_date_year;
}
june_date = june_date_datestring.todate("MM/d/yyyy");
info june_date;
if(june_date >= start_date && june_date <= end_date)
{
    rev_rec_june = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_june = 0.0;
}
//July Revenue
if(7 >= start_date_month)
{
    july_date_datestring = "07/31/" + start_date_year;
}
else
{
    july_date_datestring = "07/31/" + end_date_year;
}
july_date = july_date_datestring.todate("MM/d/yyyy");
info july_date;
if(july_date >= start_date && july_date <= end_date)
{
    rev_rec_july = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_july = 0.0;
}
//August Revenue
if(8 >= start_date_month)
{
    august_date_datestring = "08/31/" + start_date_year;
}
else
{
    august_date_datestring = "08/31/" + end_date_year;
}
august_date = august_date_datestring.todate("MM/d/yyyy");
info august_date;
if(august_date >= start_date && august_date <= end_date)
{
    rev_rec_august = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_august = 0.0;
}
//September Revenue
if(9 >= start_date_month)
{
    september_date_datestring = "09/30/" + start_date_year;
}
else
{
    september_date_datestring = "09/30/" + end_date_year;
}
september_date = september_date_datestring.todate("MM/d/yyyy");
info september_date;
if(september_date >= start_date && september_date <= end_date)
{
    rev_rec_september = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_september = 0.0;
}
//October Revenue
if(10 >= start_date_month)
{
    october_date_datestring = "10/31/" + start_date_year;
}
else
{
    october_date_datestring = "10/31/" + end_date_year;
}
october_date = october_date_datestring.todate("MM/d/yyyy");
info october_date;
if(october_date >= start_date && october_date <= end_date)
{
    rev_rec_october = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_october = 0.0;
}
//November Revenue
if(11 >= start_date_month)
{
    november_date_datestring = "11/30/" + start_date_year;
}
else
{
    november_date_datestring = "11/30/" + end_date_year;
}
november_date = november_date_datestring.todate("MM/d/yyyy");
info november_date;
if(november_date >= start_date && november_date <= end_date)
{
    rev_rec_november = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_november = 0.0;
}
//December Revenue
if(12 >= start_date_month)
{
    december_date_datestring = "12/31/" + start_date_year;
}
else
{
    december_date_datestring = "12/31/" + end_date_year;
}
december_date = december_date_datestring.todate("MM/d/yyyy");
info december_date;
if(december_date >= start_date && december_date <= end_date)
{
    rev_rec_december = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_december = 0.0;
}
// January Revenue
if(1 >= start_date_month)
{
    january_date_datestring = "01/31/" + start_date_year;
}
else
{
    january_date_datestring = "01/31/" + end_date_year;
}
january_date = january_date_datestring.todate("MM/d/yyyy");
info january_date;
if(january_date >= start_date && january_date <= end_date)
{
    rev_rec_january = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_january = 0.0;
}
//February Revenue
if(2 >= start_date_month)
{
    february_date_datestring = "02/28/" + start_date_year;
}
else
{
    february_date_datestring = "02/28/" + end_date_year;
}
february_date = february_date_datestring.todate("MM/d/yyyy");
info february_date;
if(february_date >= start_date && february_date <= end_date)
{
    rev_rec_february = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_february = 0.0;
}
// March Revenue
if(3 >= start_date_month)
{
    march_date_datestring = "03/31/" + start_date_year;
}
else
{
    march_date_datestring = "03/31/" + end_date_year;
}
march_date = march_date_datestring.todate("MM/d/yyyy");
info march_date;
if(march_date >= start_date && march_date <= end_date)
{
    rev_rec_march = (subtotal2 / service_length).round(2);
}
else
{
    rev_rec_march = 0.0;
}
//map all revenue fields
mp = {"April_Revenue":rev_rec_april,"June_Revenue":rev_rec_june,"May_Revenue":rev_rec_may,"July_Revenue":rev_rec_july,"August_Revenue":rev_rec_august,"September_Revenue":rev_rec_september,"October_Revenue":rev_rec_october,"November_Revenue":rev_rec_november,"December_Revenue":rev_rec_december,"January_Revenue":rev_rec_january,"February_Revenue":rev_rec_february,"March_Revenue":rev_rec_march};
info mp;
//update the record
update_resp = zoho.crm.updateRecord("Invoices",invoice_id,mp);
info update_resp;

...