0

請求書の期日を計算するために使用するフラッペの関数があります。posting_date請求月の最終日から 0、7、14 日、および 30 日の 4 種類の顧客クレジット条件payment_due_dateがあります30/06/15

だから私は以下の機能を持っていますget_due_datepayment_due_dates0、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));
    }
});
4

0 に答える 0