mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 08:54:45 +00:00
feat: generate file name
This commit is contained in:
@@ -11,7 +11,7 @@ frappe.ui.form.on('Payment Order', {
|
|||||||
return frappe.call({
|
return frappe.call({
|
||||||
method: "erpnext.regional.india.bank_remittance_txt.generate_report",
|
method: "erpnext.regional.india.bank_remittance_txt.generate_report",
|
||||||
args: {
|
args: {
|
||||||
name: frm.doc.name,
|
name: frm.doc.name
|
||||||
},
|
},
|
||||||
freeze: true,
|
freeze: true,
|
||||||
callback: function(r) {
|
callback: function(r) {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ def create_bank_remittance_txt(name):
|
|||||||
no_of_records = len(payment_order.get("references"))
|
no_of_records = len(payment_order.get("references"))
|
||||||
total_amount = reduce(lambda x, y: x.get("amount") + y.get("amount"), payment_order.get("references"))
|
total_amount = reduce(lambda x, y: x.get("amount") + y.get("amount"), payment_order.get("references"))
|
||||||
|
|
||||||
header = get_header_row(payment_order)
|
header, file_name = get_header_row(payment_order)
|
||||||
batch = get_batch_row(payment_order, no_of_records, total_amount)
|
batch = get_batch_row(payment_order, no_of_records, total_amount)
|
||||||
|
|
||||||
detail = []
|
detail = []
|
||||||
@@ -28,12 +28,12 @@ def create_bank_remittance_txt(name):
|
|||||||
trailer = get_trailer_row(no_of_records, total_amount)
|
trailer = get_trailer_row(no_of_records, total_amount)
|
||||||
detail_records = "\n".join(detail)
|
detail_records = "\n".join(detail)
|
||||||
|
|
||||||
return "\n".join([header, batch , detail_records, trailer])
|
return "\n".join([header, batch , detail_records, trailer]), file_name
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def generate_report(name):
|
def generate_report(name):
|
||||||
data = create_bank_remittance_txt(name)
|
data, file_name = create_bank_remittance_txt(name)
|
||||||
file_name = generate_file_name(name)
|
|
||||||
f = frappe.get_doc({
|
f = frappe.get_doc({
|
||||||
'doctype': 'File',
|
'doctype': 'File',
|
||||||
'file_name': file_name+'.txt',
|
'file_name': file_name+'.txt',
|
||||||
@@ -45,18 +45,18 @@ def generate_report(name):
|
|||||||
f.save()
|
f.save()
|
||||||
download_file(f.file_url)
|
download_file(f.file_url)
|
||||||
|
|
||||||
def generate_file_name(name):
|
def generate_file_name(name, date):
|
||||||
''' generate file name with format (account_code)_mmdd_(payment_order_no) '''
|
''' generate file name with format (account_code)_mmdd_(payment_order_no) '''
|
||||||
return name
|
return date.strftime("%m%d")+sanitize_to_alphanumeric(name)
|
||||||
|
|
||||||
def get_header_row(doc):
|
def get_header_row(doc):
|
||||||
client_code = "ELECTROLAB"
|
client_code = "ELECTROLAB"
|
||||||
file_name = generate_file_name(doc.name)
|
file_name = generate_file_name(doc.name, doc.posting_date)
|
||||||
header = ["H"]
|
header = ["H"]
|
||||||
header.append(cstr(client_code)[:20])
|
header.append(cstr(client_code)[:20])
|
||||||
header += [''] * 3
|
header += [''] * 3
|
||||||
header.append(cstr(file_name)[:20])
|
header.append(cstr(file_name)[:20])
|
||||||
return "~".join(header)
|
return "~".join(header), file_name
|
||||||
|
|
||||||
def get_batch_row(doc, no_of_records, total_amount):
|
def get_batch_row(doc, no_of_records, total_amount):
|
||||||
product_code = "VENPAY"
|
product_code = "VENPAY"
|
||||||
@@ -78,7 +78,7 @@ def get_detail_row(ref_doc, payment_date):
|
|||||||
'parenttype':'Address',
|
'parenttype':'Address',
|
||||||
'parent': ('like', '%-Billing')
|
'parent': ('like', '%-Billing')
|
||||||
},'parent')
|
},'parent')
|
||||||
supplier_billing_address = frappe.get_doc('Address', addr_link)
|
supplier_billing_address = frappe.get_cached_doc('Address', addr_link)
|
||||||
detail = OrderedDict(
|
detail = OrderedDict(
|
||||||
record_identifier='D',
|
record_identifier='D',
|
||||||
payment_ref_no=sanitize_to_alphanumeric(ref_doc.payment_entry),
|
payment_ref_no=sanitize_to_alphanumeric(ref_doc.payment_entry),
|
||||||
|
|||||||
Reference in New Issue
Block a user