By Default, ERPNext uses the current date for templating.
(โดยปกติ ERPNext ใช้วันที่ปัจจุบันในการสร้างชื่อซีรีส์)
Case: The User wants the year and month part of naming to be the same as the posting date.
• Let’s assume the Naming Template is IV-.YY.MM.-.####.
• If today’s date is 1/10/2024, and the user edits the posting date to 30/9/2024, ERPNext will use IV-2410-#### as the naming series.
แก้ไขปัญหานี้ได้โดยใช้สคริปต์ client ง่ายๆ เพื่อจัดการการตั้งค่าซีรีส์
frappe.ui.form.on('Sales Invoice', {
validate(frm) {
//check for isCN
if(frm.doc.is_return == 1){
frm.doc.naming_series = "";
let year = frm.doc.posting_date.slice(2,4);
let month = frm.doc.posting_date.slice(5,7);
frm.doc.naming_series += "CN-" + year + month + "-.####";
}else{
frm.doc.naming_series = "";
let year = frm.doc.posting_date.slice(2,4);
let month = frm.doc.posting_date.slice(5,7);
frm.doc.naming_series += "IV-" + year + month + "-.####";
}
}
});
Case: The user needs to differentiate the naming series for different payment types (REC, PAY, INTERNAL).
กรณี: ผู้ใช้ต้องการแยกแยะซีรีส์ของการชำระเงิน (REC, PAY, INTERNAL)
frappe.ui.form.on('Payment Entry', {
validate(frm) {
let postingDate = new Date(frm.doc.posting_date);
if(frm.doc.payment_type == "Internal Transfer"){
frm.doc.naming_series = "";
let year = frm.doc.posting_date.slice(2,4);
let month = frm.doc.posting_date.slice(5,7);
frm.doc.naming_series += "INTERNAL-" + year + month + "-.####";
}
if(frm.doc.payment_type == "PAY"){
frm.doc.naming_series = "";
let year = frm.doc.posting_date.slice(2,4);
let month = frm.doc.posting_date.slice(5,7);
frm.doc.naming_series += "PAY-" + year + month + "-.####";
}
if(frm.doc.payment_type == "Receive"){
frm.doc.naming_series = "";
let year = frm.doc.posting_date.slice(2,4);
let month = frm.doc.posting_date.slice(5,7);
frm.doc.naming_series += "REC-" + year + month + "-.####";
}
}
});
Pro:
- Easy to implement (ง่ายต่อการใช้งาน)
Con:
- If the user forgets to modify the posting date before saving it as a draft, the naming series will be incorrect, and editing the naming series after saving it as a draft is not allowed. The user must delete the draft and recreate the document.
(หากผู้ใช้ลืมแก้ไขวันที่โพสต์ก่อนบันทึกเป็นฉบับร่าง ชื่อซีรีส์จะไม่ถูกต้อง และไม่สามารถแก้ไขซีรีส์หลังบันทึกเป็นฉบับร่างได้ ผู้ใช้จำเป็นต้องลบฉบับร่างและสร้างเอกสารใหม่อีกครั้ง)