mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-01 11:19:09 +00:00
Accounts Payable report improved: some query written outside the for-loop
Supplier: supplier_status field has been deleted, not used by anyone except janak index patch modified
This commit is contained in:
@@ -2,134 +2,145 @@
|
|||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
|
||||||
if not filter_values.get('posting_date') or not filter_values.get('posting_date1'):
|
if not filter_values.get('posting_date') or not filter_values.get('posting_date1'):
|
||||||
msgprint("Please select From Posting Date and To Posting Date ")
|
msgprint("Please select From Posting Date and To Posting Date ")
|
||||||
raise Exception
|
raise Exception
|
||||||
else:
|
else:
|
||||||
from_date = filter_values.get('posting_date')
|
from_date = filter_values.get('posting_date')
|
||||||
to_date = filter_values.get('posting_date1')
|
to_date = filter_values.get('posting_date1')
|
||||||
|
|
||||||
if not filter_values['range_1'] or not filter_values['range_2'] or not filter_values['range_3'] or not filter_values['range_4']:
|
if not filter_values['range_1'] or not filter_values['range_2'] or not filter_values['range_3'] or not filter_values['range_4']:
|
||||||
msgprint("Please select aging ranges in no of days in 'More Filters' ")
|
msgprint("Please select aging ranges in no of days in 'More Filters' ")
|
||||||
raise Exception
|
raise Exception
|
||||||
|
|
||||||
# validate Range
|
# validate Range
|
||||||
range_list = ['range_1','range_2','range_3','range_4']
|
range_list = ['range_1','range_2','range_3','range_4']
|
||||||
for r in range(len(range_list)-1):
|
for r in range(len(range_list)-1):
|
||||||
if not cint(filter_values[range_list[r]]) < cint(filter_values[range_list[r + 1]]):
|
if not cint(filter_values[range_list[r]]) < cint(filter_values[range_list[r + 1]]):
|
||||||
msgprint("Range %s should be less than Range %s." % (cstr(r+1),cstr(r+2)))
|
msgprint("Range %s should be less than Range %s." % (cstr(r+1),cstr(r+2)))
|
||||||
raise Exception
|
raise Exception
|
||||||
|
|
||||||
|
|
||||||
# Add columns
|
# Add columns
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
data = [['Aging Date','Date','80px',''],
|
data = [['Aging Date','Date','80px',''],
|
||||||
['Transaction Date','Date','80px',''],
|
['Transaction Date','Date','80px',''],
|
||||||
['Account','Data','120px',''],
|
['Account','Data','120px',''],
|
||||||
['Against Voucher Type','Data','120px',''],
|
['Against Voucher Type','Data','120px',''],
|
||||||
['Against Voucher','Data','120px',''],
|
['Against Voucher','Data','120px',''],
|
||||||
['Voucher Type','Data','120px',''],
|
['Voucher Type','Data','120px',''],
|
||||||
['Voucher No','Data','120px',''],
|
['Voucher No','Data','120px',''],
|
||||||
['Remarks','Data','160px',''],
|
['Remarks','Data','160px',''],
|
||||||
['Supplier Type', 'Data', '80px', ''],
|
['Supplier Type', 'Data', '80px', ''],
|
||||||
['Due Date', 'Data', '80px', ''],
|
['Due Date', 'Data', '80px', ''],
|
||||||
['Bill No','Data','80px',''],
|
['Bill No','Data','80px',''],
|
||||||
['Bill Date','Data','80px',''],
|
['Bill Date','Data','80px',''],
|
||||||
['Opening Amt','Currency','120px',''],
|
['Opening Amt','Currency','120px',''],
|
||||||
['Outstanding Amt','Currency','120px',''],
|
['Outstanding Amt','Currency','120px',''],
|
||||||
['Age (Days)', 'Currency', '150px', ''],
|
['Age (Days)', 'Currency', '150px', ''],
|
||||||
['0-'+cstr(filter_values['range_1']),'Currency','100px',''],
|
['0-'+cstr(filter_values['range_1']),'Currency','100px',''],
|
||||||
[cstr(cint(filter_values['range_1']) + 1)+ '-' +cstr(filter_values['range_2']),'Currency','100px',''],
|
[cstr(cint(filter_values['range_1']) + 1)+ '-' +cstr(filter_values['range_2']),'Currency','100px',''],
|
||||||
[cstr(cint(filter_values['range_2']) + 1)+ '-' +cstr(filter_values['range_3']),'Currency','100px',''],
|
[cstr(cint(filter_values['range_2']) + 1)+ '-' +cstr(filter_values['range_3']),'Currency','100px',''],
|
||||||
[cstr(cint(filter_values['range_3']) + 1)+ '-' +cstr(filter_values['range_4']),'Currency','100px',''],
|
[cstr(cint(filter_values['range_3']) + 1)+ '-' +cstr(filter_values['range_4']),'Currency','100px',''],
|
||||||
[cstr(filter_values['range_4']) + '-Above','Currency','100px','']]
|
[cstr(filter_values['range_4']) + '-Above','Currency','100px','']]
|
||||||
|
|
||||||
|
|
||||||
for d in data:
|
for d in data:
|
||||||
colnames.append(d[0])
|
colnames.append(d[0])
|
||||||
coltypes.append(d[1])
|
coltypes.append(d[1])
|
||||||
colwidths.append(d[2])
|
colwidths.append(d[2])
|
||||||
coloptions.append(d[3])
|
coloptions.append(d[3])
|
||||||
col_idx[d[0]] = len(colnames)-1
|
col_idx[d[0]] = len(colnames)-1
|
||||||
|
|
||||||
# ageing based on
|
# ageing based on
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
aging_based_on = 'Aging Date'
|
aging_based_on = 'Aging Date'
|
||||||
if filter_values.has_key('aging_based_on') and filter_values['aging_based_on']:
|
if filter_values.has_key('aging_based_on') and filter_values['aging_based_on']:
|
||||||
aging_based_on = filter_values['aging_based_on'].split(NEWLINE)[-1]
|
aging_based_on = filter_values['aging_based_on'].split(NEWLINE)[-1]
|
||||||
|
|
||||||
if len(res) > 600 and from_export == 0:
|
if len(res) > 600 and from_export == 0:
|
||||||
msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please select Account or click on 'Export' to open in excel")
|
msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please select Account or click on 'Export' to open in excel")
|
||||||
raise Exception
|
raise Exception
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# main loop starts here
|
# main loop starts here
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
|
||||||
|
# get supplier type
|
||||||
|
supp_type_dict = {}
|
||||||
|
for each in sql("select t2.name, t1.supplier_type from tabSupplier t1, tabAccount t2 where t1.name = t2.account_name group by t2.name"):
|
||||||
|
supp_type_dict[each[0]] = each[1]
|
||||||
|
|
||||||
|
# get due_date, bill_no, bill_date from PV
|
||||||
|
pv_dict = {}
|
||||||
|
for t in sql("select name, due_date, bill_no, bill_date from `tabPayable Voucher` group by name"):
|
||||||
|
pv_dict[t[0]] = [cstr(t[1]), t[2], cstr(t[3])]
|
||||||
|
|
||||||
|
# pv outside this period
|
||||||
|
pv_outside_period = [d[0] for d in sql("select distinct name from `tabPayable Voucher` where (posting_date < '%s' or posting_date > '%s') and docstatus = 1" % (from_date, to_date))]
|
||||||
|
|
||||||
|
|
||||||
out = []
|
out = []
|
||||||
total_booking_amt, total_outstanding_amt = 0,0
|
total_booking_amt, total_outstanding_amt = 0,0
|
||||||
|
|
||||||
for r in res:
|
for r in res:
|
||||||
# get supplier type
|
outstanding_amt, due_date, bill_no, bill_date, cond = 0, '','','', ''
|
||||||
supplier_type = sql("select t1.supplier_type from tabSupplier t1, tabAccount t2 where t1.name = t2.account_name and t2.name = '%s'" % r[col_idx['Account']])
|
booking_amt = r.pop(8)
|
||||||
r.append(supplier_type and cstr(supplier_type[0][0]) or '')
|
|
||||||
|
# supplier type
|
||||||
|
r.append(supp_type_dict.get(r[col_idx['Account']], ''))
|
||||||
|
|
||||||
|
# if entry against Payable Voucher
|
||||||
|
if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher':
|
||||||
|
r += pv_dict.get(r[col_idx['Voucher No']], ['', '', ''])
|
||||||
|
cond = " and ifnull(against_voucher, '') = '%s'" % r[col_idx['Against Voucher']]
|
||||||
|
|
||||||
outstanding_amt, booking_amt, due_date, bill_no, bill_date, cond = 0,0, '','','', ''
|
# if entry against JV & and not adjusted within period
|
||||||
|
elif r[col_idx['Against Voucher Type']] == 'Payable Voucher' and r[col_idx['Against Voucher']] in pv_outside_period:
|
||||||
|
booking_amt = 0
|
||||||
|
cond = " and voucher_no = '%s' and ifnull(against_voucher, '') = '%s'" % (r[col_idx['Voucher No']], r[col_idx['Against Voucher']])
|
||||||
|
|
||||||
|
# if un-adjusted
|
||||||
|
elif not r[col_idx['Against Voucher']]:
|
||||||
|
booking_amt = 0
|
||||||
|
cond = " and ((voucher_no = '%s' and ifnull(against_voucher, '') = '') or (ifnull(against_voucher, '') = '%s' and voucher_type = 'Journal Voucher'))" % (r[col_idx['Voucher No']], r[col_idx['Voucher No']])
|
||||||
|
|
||||||
# if entry against Payable Voucher
|
if cond:
|
||||||
if r[col_idx['Against Voucher']] and r[col_idx['Voucher Type']] == 'Payable Voucher':
|
outstanding_amt = flt(sql("select sum(ifnull(credit, 0))-sum(ifnull(debit, 0)) from `tabGL Entry` where account = '%s' and ifnull(is_cancelled, 'No') = 'No' and posting_date <= '%s' %s" % (r[col_idx['Account']], to_date, cond))[0][0] or 0)
|
||||||
due_date, bill_no, bill_date = [cstr(t) for t in sql("select due_date,bill_no,bill_date from `tabPayable Voucher` where name = %s", r[col_idx['Voucher No']])[0]]
|
|
||||||
|
|
||||||
# get opening
|
# add to total outstanding
|
||||||
booking_amt = sql("select credit from `tabGL Entry` where account = %s and voucher_no = %s and is_cancelled = 'No'", (r[col_idx['Account']], r[col_idx['Voucher No']]))
|
total_outstanding_amt += flt(outstanding_amt)
|
||||||
booking_amt = booking_amt and flt(booking_amt[0][0]) or 0
|
|
||||||
|
|
||||||
cond = " and against_voucher = '%s' and against_voucher is not null" % r[col_idx['Against Voucher']]
|
# add to total booking amount
|
||||||
|
if outstanding_amt and r[col_idx['Voucher Type']] == 'Payable Voucher' and r[col_idx['Against Voucher']]:
|
||||||
|
total_booking_amt += flt(booking_amt)
|
||||||
|
|
||||||
# if entry against JV & and not adjusted within period
|
r += [booking_amt, outstanding_amt]
|
||||||
elif r[col_idx['Against Voucher Type']] == 'Payable Voucher' and sql("select name from `tabPayable Voucher` where name = '%s' and (posting_date < '%s' or posting_date > '%s') and docstatus = 1" % (r[col_idx['Against Voucher']], from_date, to_date)):
|
|
||||||
cond = " and voucher_no = '%s' and ifnull(against_voucher, '') = '%s'" % (r[col_idx['Voucher No']], r[col_idx['Against Voucher']])
|
# split into date ranges
|
||||||
|
val_l1 = val_l2 = val_l3 = val_l4 = val_l5_above= 0
|
||||||
# if un-adjusted
|
if r[col_idx[aging_based_on]]:
|
||||||
elif not r[col_idx['Against Voucher']]:
|
diff = (getdate(to_date) - getdate(r[col_idx[aging_based_on]])).days
|
||||||
cond = " and ((voucher_no = '%s' and ifnull(against_voucher, '') = '') or (ifnull(against_voucher, '') = '%s' and voucher_type = 'Journal Voucher'))" % (r[col_idx['Voucher No']], r[col_idx['Voucher No']])
|
if diff < cint(filter_values['range_1']):
|
||||||
|
val_l1 = outstanding_amt
|
||||||
|
if diff >= cint(filter_values['range_1']) and diff < cint(filter_values['range_2']):
|
||||||
|
val_l2 = outstanding_amt
|
||||||
|
if diff >= cint(filter_values['range_2']) and diff < cint(filter_values['range_3']):
|
||||||
|
val_l3 = outstanding_amt
|
||||||
|
if diff >= cint(filter_values['range_3']) and diff < cint(filter_values['range_4']):
|
||||||
|
val_l4 = outstanding_amt
|
||||||
|
if diff >= cint(filter_values['range_4']):
|
||||||
|
val_l5_above = outstanding_amt
|
||||||
|
|
||||||
if cond:
|
r += [diff, val_l1, val_l2, val_l3, val_l4, val_l5_above]
|
||||||
outstanding_amt = flt(sql("select sum(ifnull(credit, 0))-sum(ifnull(debit, 0)) from `tabGL Entry` where account = '%s' and ifnull(is_cancelled, 'No') = 'No' and posting_date <= '%s' %s" % (r[col_idx['Account']], to_date, cond))[0][0] or 0)
|
|
||||||
|
|
||||||
# add to total outstanding
|
# Only show that entry which has outstanding
|
||||||
total_outstanding_amt += flt(outstanding_amt)
|
if abs(flt(outstanding_amt)) > 0.001:
|
||||||
|
out.append(r)
|
||||||
# add to total booking amount
|
|
||||||
if outstanding_amt and r[col_idx['Voucher Type']] == 'Payable Voucher' and r[col_idx['Against Voucher']]:
|
if len(out) > 300 and from_export == 0:
|
||||||
total_booking_amt += flt(booking_amt)
|
msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please select Account or click on 'Export' to open in excel")
|
||||||
|
raise Exception
|
||||||
r += [due_date, bill_no, bill_date, booking_amt, outstanding_amt]
|
|
||||||
|
|
||||||
# split into date ranges
|
|
||||||
val_l1 = val_l2 = val_l3 = val_l4 = val_l5_above= 0
|
|
||||||
if r[col_idx[aging_based_on]]:
|
|
||||||
diff = (getdate(to_date) - getdate(r[col_idx[aging_based_on]])).days
|
|
||||||
if diff < cint(filter_values['range_1']):
|
|
||||||
val_l1 = outstanding_amt
|
|
||||||
if diff >= cint(filter_values['range_1']) and diff < cint(filter_values['range_2']):
|
|
||||||
val_l2 = outstanding_amt
|
|
||||||
if diff >= cint(filter_values['range_2']) and diff < cint(filter_values['range_3']):
|
|
||||||
val_l3 = outstanding_amt
|
|
||||||
if diff >= cint(filter_values['range_3']) and diff < cint(filter_values['range_4']):
|
|
||||||
val_l4 = outstanding_amt
|
|
||||||
if diff >= cint(filter_values['range_4']):
|
|
||||||
val_l5_above = outstanding_amt
|
|
||||||
|
|
||||||
r += [diff, val_l1, val_l2, val_l3, val_l4, val_l5_above]
|
|
||||||
|
|
||||||
# Only show that entry which has outstanding
|
|
||||||
if abs(flt(outstanding_amt)) > 0.001:
|
|
||||||
out.append(r)
|
|
||||||
|
|
||||||
if len(out) > 300 and from_export == 0:
|
|
||||||
msgprint("This is a very large report and cannot be shown in the browser as it is likely to make your browser very slow.Please select Account or click on 'Export' to open in excel")
|
|
||||||
raise Exception
|
|
||||||
|
|
||||||
|
|
||||||
# Append Extra rows to RES
|
# Append Extra rows to RES
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
SELECT DISTINCT `tabGL Entry`.`Aging_date`,`tabGL Entry`.`transaction_date`,`tabGL Entry`.`account`, `tabGL Entry`.`against_voucher_type`, `tabGL Entry`.`against_voucher`,`tabGL Entry`.`voucher_type`,`tabGL Entry`.`voucher_no`, `tabGL Entry`.remarks
|
SELECT DISTINCT `tabGL Entry`.`Aging_date`,`tabGL Entry`.`transaction_date`,`tabGL Entry`.`account`, `tabGL Entry`.`against_voucher_type`, `tabGL Entry`.`against_voucher`,`tabGL Entry`.`voucher_type`,`tabGL Entry`.`voucher_no`, `tabGL Entry`.`remarks`, `tabGL Entry`.`credit`
|
||||||
FROM `tabGL Entry`,`tabAccount`
|
FROM `tabGL Entry`,`tabAccount`
|
||||||
WHERE `tabGL Entry`.`posting_date`>= '%(posting_date)s'
|
WHERE `tabGL Entry`.`posting_date`>= '%(posting_date)s'
|
||||||
AND `tabGL Entry`.`posting_date`<= '%(posting_date1)s'
|
AND `tabGL Entry`.`posting_date`<= '%(posting_date1)s'
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
{
|
{
|
||||||
'creation': '2010-08-08 17:09:26',
|
'creation': '2010-08-08 17:09:26',
|
||||||
'docstatus': 0,
|
'docstatus': 0,
|
||||||
'modified': '2011-05-10 17:42:21',
|
'modified': '2011-07-19 16:18:58',
|
||||||
'modified_by': 'Administrator',
|
'modified_by': 'Administrator',
|
||||||
'owner': 'Administrator'
|
'owner': 'Administrator'
|
||||||
},
|
},
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
'show_in_menu': 0,
|
'show_in_menu': 0,
|
||||||
'subject': ' ',
|
'subject': ' ',
|
||||||
'tag_fields': 'supplier_type',
|
'tag_fields': 'supplier_type',
|
||||||
'version': 86
|
'version': 87
|
||||||
},
|
},
|
||||||
|
|
||||||
# These values are common for all DocField
|
# These values are common for all DocField
|
||||||
@@ -163,24 +163,11 @@
|
|||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
|
|
||||||
# DocField
|
|
||||||
{
|
|
||||||
'doctype': 'DocField',
|
|
||||||
'fieldname': 'supplier_status',
|
|
||||||
'fieldtype': 'Select',
|
|
||||||
'idx': 6,
|
|
||||||
'label': 'Supplier Status',
|
|
||||||
'oldfieldname': 'supplier_status',
|
|
||||||
'oldfieldtype': 'Select',
|
|
||||||
'options': '\nApproved\nUnapproved',
|
|
||||||
'permlevel': 0
|
|
||||||
},
|
|
||||||
|
|
||||||
# DocField
|
# DocField
|
||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 7,
|
'idx': 6,
|
||||||
'label': 'Address & Contacts',
|
'label': 'Address & Contacts',
|
||||||
'oldfieldtype': 'Column Break',
|
'oldfieldtype': 'Column Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@@ -192,7 +179,7 @@
|
|||||||
'depends_on': 'eval:doc.__islocal',
|
'depends_on': 'eval:doc.__islocal',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'HTML',
|
'fieldtype': 'HTML',
|
||||||
'idx': 8,
|
'idx': 7,
|
||||||
'label': 'Address Desc',
|
'label': 'Address Desc',
|
||||||
'options': '<em>Addresses will appear only when you save the supplier</em>',
|
'options': '<em>Addresses will appear only when you save the supplier</em>',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@@ -203,7 +190,7 @@
|
|||||||
'colour': 'White:FFF',
|
'colour': 'White:FFF',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'HTML',
|
'fieldtype': 'HTML',
|
||||||
'idx': 9,
|
'idx': 8,
|
||||||
'label': 'Address HTML',
|
'label': 'Address HTML',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
@@ -212,7 +199,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 10,
|
'idx': 9,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
},
|
},
|
||||||
@@ -223,7 +210,7 @@
|
|||||||
'depends_on': 'eval:doc.__islocal',
|
'depends_on': 'eval:doc.__islocal',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'HTML',
|
'fieldtype': 'HTML',
|
||||||
'idx': 11,
|
'idx': 10,
|
||||||
'label': 'Contact Desc',
|
'label': 'Contact Desc',
|
||||||
'options': '<em>Contact Details will appear only when you save the supplier</em>',
|
'options': '<em>Contact Details will appear only when you save the supplier</em>',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@@ -233,7 +220,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'HTML',
|
'fieldtype': 'HTML',
|
||||||
'idx': 12,
|
'idx': 11,
|
||||||
'label': 'Contact HTML',
|
'label': 'Contact HTML',
|
||||||
'permlevel': 1
|
'permlevel': 1
|
||||||
},
|
},
|
||||||
@@ -242,7 +229,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 13,
|
'idx': 12,
|
||||||
'label': 'More Info',
|
'label': 'More Info',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@@ -255,7 +242,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'company',
|
'fieldname': 'company',
|
||||||
'fieldtype': 'Link',
|
'fieldtype': 'Link',
|
||||||
'idx': 14,
|
'idx': 13,
|
||||||
'in_filter': 1,
|
'in_filter': 1,
|
||||||
'label': 'Company',
|
'label': 'Company',
|
||||||
'oldfieldname': 'company',
|
'oldfieldname': 'company',
|
||||||
@@ -273,7 +260,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'supplier_details',
|
'fieldname': 'supplier_details',
|
||||||
'fieldtype': 'Text',
|
'fieldtype': 'Text',
|
||||||
'idx': 15,
|
'idx': 14,
|
||||||
'label': 'Supplier Details',
|
'label': 'Supplier Details',
|
||||||
'oldfieldname': 'supplier_details',
|
'oldfieldname': 'supplier_details',
|
||||||
'oldfieldtype': 'Code',
|
'oldfieldtype': 'Code',
|
||||||
@@ -284,7 +271,7 @@
|
|||||||
{
|
{
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Column Break',
|
'fieldtype': 'Column Break',
|
||||||
'idx': 16,
|
'idx': 15,
|
||||||
'permlevel': 0,
|
'permlevel': 0,
|
||||||
'width': '50%'
|
'width': '50%'
|
||||||
},
|
},
|
||||||
@@ -294,7 +281,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'credit_days',
|
'fieldname': 'credit_days',
|
||||||
'fieldtype': 'Int',
|
'fieldtype': 'Int',
|
||||||
'idx': 17,
|
'idx': 16,
|
||||||
'label': 'Credit Days',
|
'label': 'Credit Days',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
},
|
},
|
||||||
@@ -304,7 +291,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'website',
|
'fieldname': 'website',
|
||||||
'fieldtype': 'Data',
|
'fieldtype': 'Data',
|
||||||
'idx': 18,
|
'idx': 17,
|
||||||
'label': 'Website',
|
'label': 'Website',
|
||||||
'oldfieldname': 'website',
|
'oldfieldname': 'website',
|
||||||
'oldfieldtype': 'Data',
|
'oldfieldtype': 'Data',
|
||||||
@@ -317,7 +304,7 @@
|
|||||||
'depends_on': 'eval:!doc.__islocal',
|
'depends_on': 'eval:!doc.__islocal',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'Section Break',
|
'fieldtype': 'Section Break',
|
||||||
'idx': 19,
|
'idx': 18,
|
||||||
'label': 'Transaction History',
|
'label': 'Transaction History',
|
||||||
'oldfieldtype': 'Section Break',
|
'oldfieldtype': 'Section Break',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@@ -329,7 +316,7 @@
|
|||||||
'depends_on': 'eval:!doc.__islocal',
|
'depends_on': 'eval:!doc.__islocal',
|
||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldtype': 'HTML',
|
'fieldtype': 'HTML',
|
||||||
'idx': 20,
|
'idx': 19,
|
||||||
'label': 'History HTML',
|
'label': 'History HTML',
|
||||||
'oldfieldtype': 'HTML',
|
'oldfieldtype': 'HTML',
|
||||||
'permlevel': 0
|
'permlevel': 0
|
||||||
@@ -340,7 +327,7 @@
|
|||||||
'doctype': 'DocField',
|
'doctype': 'DocField',
|
||||||
'fieldname': 'trash_reason',
|
'fieldname': 'trash_reason',
|
||||||
'fieldtype': 'Small Text',
|
'fieldtype': 'Small Text',
|
||||||
'idx': 21,
|
'idx': 20,
|
||||||
'label': 'Trash Reason',
|
'label': 'Trash Reason',
|
||||||
'oldfieldname': 'trash_reason',
|
'oldfieldname': 'trash_reason',
|
||||||
'oldfieldtype': 'Small Text',
|
'oldfieldtype': 'Small Text',
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ def create_proper_index():
|
|||||||
'File Group': ['parent_group'],
|
'File Group': ['parent_group'],
|
||||||
'Maintenance Visit Detail': ['item_code', 'service_person'],
|
'Maintenance Visit Detail': ['item_code', 'service_person'],
|
||||||
'Support Ticket Response': [],
|
'Support Ticket Response': [],
|
||||||
'PV Detail': ['item_code', 'purchase_order', 'po_detail', 'purchase_receipt', 'pr_detail', 'expense_head', 'cost_center'],
|
'PV Detail': ['item_code', 'purchase_order', 'purchase_receipt', 'expense_head', 'cost_center'],
|
||||||
'Timesheet Detail': ['project_name', 'task_id', 'customer_name'],
|
'Timesheet Detail': ['project_name', 'task_id', 'customer_name'],
|
||||||
'Holiday List Detail': [],
|
'Holiday List Detail': [],
|
||||||
'Workflow Rule Detail': [],
|
'Workflow Rule Detail': [],
|
||||||
@@ -125,7 +125,7 @@ def create_proper_index():
|
|||||||
'Declaration Detail': [],
|
'Declaration Detail': [],
|
||||||
'Holiday List': ['fiscal_year'],
|
'Holiday List': ['fiscal_year'],
|
||||||
'Sales Person': ['lft', 'rgt', 'parent_sales_person'],
|
'Sales Person': ['lft', 'rgt', 'parent_sales_person'],
|
||||||
'RV Detail': ['item_code', 'sales_order', 'so_detail', 'delivery_note', 'dn_detail', 'cost_center', 'income_account'],
|
'RV Detail': ['item_code', 'sales_order', 'delivery_note', 'cost_center', 'income_account'],
|
||||||
'Module Def Item': [],
|
'Module Def Item': [],
|
||||||
'TDS Category': [],
|
'TDS Category': [],
|
||||||
'DocTrigger': [],
|
'DocTrigger': [],
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# REMEMBER to update this
|
# REMEMBER to update this
|
||||||
# ========================
|
# ========================
|
||||||
|
|
||||||
last_patch = 326
|
last_patch = 327
|
||||||
|
|
||||||
#-------------------------------------------
|
#-------------------------------------------
|
||||||
|
|
||||||
@@ -1298,3 +1298,6 @@ def execute(patch_no):
|
|||||||
# load the new billing page
|
# load the new billing page
|
||||||
if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
|
if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
|
||||||
reload_doc('server_tools','page','billing')
|
reload_doc('server_tools','page','billing')
|
||||||
|
elif patch_no == 327:
|
||||||
|
if webnotes.conn.get_value('Control Panel', None, 'account_id') != 'axjanak2011':
|
||||||
|
sql("delete from `tabDocField` where fieldname = 'supplier_status' and parent = 'Supplier'")
|
||||||
|
|||||||
Reference in New Issue
Block a user