請求書の期日を計算するために使用するフラッペの関数があります。posting_date
請求月の最終日から 0、7、14 日、および 30 日の 4 種類の顧客クレジット条件payment_due_date
があります30/06/15
。
だから私は以下の機能を持っていますget_due_date
。payment_due_dates
0、7、14日の顧客のすべての顧客は正常に動作しますが、30 日はまだ機能しません。に 30 日を追加するだけposting_date
です。
私はJavascriptを初めて使用するので、frappe.ui.form.on
セクションのコードを借りました。最後の行が関数を誤って「オーバーライド」get_due_date
していると思われますが、それを適切に行うための構文がわかりません.
誰か助けてくれませんか?
function get_due_date(base, days){
base = frappe.datetime.str_to_obj(base);
days = parseInt(days, 10);
var fmt = frappe.datetime.obj_to_str;
switch (parseInt(days)){
case (0):
return fmt(base);
case (7):
case (15):
return fmt(frappe.datetime.add_days(base, days));
case (30):
base = new Date(base.getFullYear(), base.getMonth()+2, 0);
return fmt(base)
}
}
frappe.ui.form.on("Sales Invoice", "posting_date", function(frm) {
var days = get_db_value('Customer', frm.doc.customer, 'credit_days');
days = days*1;
console.log([days, frm]);
msgprint(get_due_date(frm.doc.posting_date, days));
if (days && frm.doc.posting_date){
frappe.model.set_value('Sales Invoice', frm.doc.name, 'payment_due_date', get_due_date(frm.doc.posting_date, days));
}
});