0

我在 frappe 中有一个函数,用于计算发票到期日。我有 4 种类型的客户信用条款,posting_date分别是发票月份最后一天的 0、7、14 天和 30 天——即,如果发票是在 5 月的任何日期提出payment_due_date30/06/15

所以我有以下功能get_due_date。0、7、14 天客户的所有客户payment_due_dates都可以正常工作,但 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