Merge branch 'master' of github.com:webnotes/erpnext

This commit is contained in:
Nabin Hait 2012-04-13 14:14:39 +05:30
commit 6c615d9527
28 changed files with 527 additions and 300 deletions

View File

@ -134,6 +134,16 @@
'to_field': 'serial_no'
},
# Field Mapper Detail
{
'checking_operator': u'=',
'doctype': u'Field Mapper Detail',
'from_field': u'export_rate',
'map': u'Yes',
'match_id': 1,
'to_field': u'export_rate'
},
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
@ -143,17 +153,6 @@
'validation_logic': 'docstatus=1'
},
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
'from_field': 'delivery_note_details',
'from_table': 'Delivery Note Detail',
'match_id': 1,
'to_field': 'entries',
'to_table': 'RV Detail',
'validation_logic': 'amount > ifnull(billed_amt, 0) and docstatus = 1'
},
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
@ -186,4 +185,4 @@
'to_table': 'Sales Team',
'validation_logic': 'name is not null'
}
]
]

View File

@ -3,189 +3,188 @@
# These values are common in all dictionaries
{
'creation': '2010-08-08 17:09:36',
'creation': '2010-09-20 12:33:35',
'docstatus': 0,
'modified': '2011-09-15 15:04:45',
'modified_by': 'Administrator',
'owner': 'Administrator'
'modified': '2012-03-28 19:19:38',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
# These values are common for all Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
'doctype': u'Table Mapper Detail',
'name': '__common__',
'parent': 'Sales Order-Receivable Voucher',
'parentfield': 'table_mapper_details',
'parenttype': 'DocType Mapper'
'parent': u'Sales Order-Receivable Voucher',
'parentfield': u'table_mapper_details',
'parenttype': u'DocType Mapper'
},
# These values are common for all Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'doctype': u'Field Mapper Detail',
'name': '__common__',
'parent': 'Sales Order-Receivable Voucher',
'parentfield': 'field_mapper_details',
'parenttype': 'DocType Mapper'
'parent': u'Sales Order-Receivable Voucher',
'parentfield': u'field_mapper_details',
'parenttype': u'DocType Mapper'
},
# These values are common for all DocType Mapper
{
'doctype': u'DocType Mapper',
'from_doctype': 'Sales Order',
'module': 'Accounts',
'from_doctype': u'Sales Order',
'module': u'Accounts',
'name': '__common__',
'ref_doc_submitted': 1,
'to_doctype': 'Receivable Voucher'
'to_doctype': u'Receivable Voucher'
},
# DocType Mapper, Sales Order-Receivable Voucher
{
'doctype': u'DocType Mapper',
'name': 'Sales Order-Receivable Voucher'
'name': u'Sales Order-Receivable Voucher'
},
# Field Mapper Detail
{
'checking_operator': '=',
'doctype': 'Field Mapper Detail',
'from_field': 'customer',
'map': 'Yes',
'checking_operator': u'=',
'doctype': u'Field Mapper Detail',
'from_field': u'customer',
'map': u'Yes',
'match_id': 0,
'to_field': 'customer'
'to_field': u'customer'
},
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'from_field': 'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty',
'map': 'Yes',
'doctype': u'Field Mapper Detail',
'from_field': u'eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty',
'map': u'Yes',
'match_id': 1,
'to_field': 'qty'
'to_field': u'qty'
},
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'from_field': 'parent',
'map': 'Yes',
'doctype': u'Field Mapper Detail',
'from_field': u'parent',
'map': u'Yes',
'match_id': 1,
'to_field': 'sales_order'
'to_field': u'sales_order'
},
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'from_field': 'name',
'map': 'Yes',
'doctype': u'Field Mapper Detail',
'from_field': u'name',
'map': u'Yes',
'match_id': 1,
'to_field': 'so_detail'
'to_field': u'so_detail'
},
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'from_field': 'eval:flt(obj.amount) - flt(obj.billed_amt)',
'map': 'Yes',
'doctype': u'Field Mapper Detail',
'from_field': u'eval:flt(obj.amount) - flt(obj.billed_amt)',
'map': u'Yes',
'match_id': 1,
'to_field': 'amount'
'to_field': u'amount'
},
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'from_field': 'eval: (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)',
'map': 'Yes',
'doctype': u'Field Mapper Detail',
'from_field': u'eval: (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)',
'map': u'Yes',
'match_id': 1,
'to_field': 'export_amount'
'to_field': u'export_amount'
},
# Field Mapper Detail
{
'checking_operator': '=',
'doctype': 'Field Mapper Detail',
'from_field': 'project_name',
'map': 'Yes',
'checking_operator': u'=',
'doctype': u'Field Mapper Detail',
'from_field': u'project_name',
'map': u'Yes',
'match_id': 0,
'to_field': 'project_name'
'to_field': u'project_name'
},
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'from_field': 'reserved_warehouse',
'map': 'Yes',
'doctype': u'Field Mapper Detail',
'from_field': u'reserved_warehouse',
'map': u'Yes',
'match_id': 1,
'to_field': 'warehouse'
'to_field': u'warehouse'
},
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'from_field': 'naming_series',
'map': 'No',
'doctype': u'Field Mapper Detail',
'from_field': u'naming_series',
'map': u'No',
'match_id': 0,
'to_field': 'naming_series'
'to_field': u'naming_series'
},
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
'from_field': 'incentives',
'map': 'No',
'doctype': u'Field Mapper Detail',
'from_field': u'incentives',
'map': u'No',
'match_id': 3,
'to_field': 'incentives'
'to_field': u'incentives'
},
# Field Mapper Detail
{
'checking_operator': u'=',
'doctype': u'Field Mapper Detail',
'from_field': u'export_rate',
'map': u'Yes',
'match_id': 1,
'to_field': u'export_rate'
},
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
'from_table': 'Sales Order',
'doctype': u'Table Mapper Detail',
'from_table': u'Sales Order',
'match_id': 0,
'to_table': 'Receivable Voucher',
'validation_logic': 'docstatus=1'
'to_table': u'Receivable Voucher',
'validation_logic': u'docstatus=1'
},
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
'from_field': 'sales_order_detail',
'from_table': 'Sales Order Detail',
'doctype': u'Table Mapper Detail',
'from_field': u'sales_order_detail',
'from_table': u'Sales Order Detail',
'match_id': 1,
'to_field': 'entries',
'to_table': 'RV Detail',
'validation_logic': 'docstatus = 1'
'to_field': u'entries',
'to_table': u'RV Detail',
'validation_logic': u'(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
},
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
'from_field': 'sales_order_detail',
'from_table': 'Sales Order Detail',
'match_id': 1,
'to_field': 'entries',
'to_table': 'RV Detail',
'validation_logic': '(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1'
},
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
'from_field': 'other_charges',
'from_table': 'RV Tax Detail',
'doctype': u'Table Mapper Detail',
'from_field': u'other_charges',
'from_table': u'RV Tax Detail',
'match_id': 2,
'to_field': 'other_charges',
'to_table': 'RV Tax Detail',
'validation_logic': 'name is not null'
'to_field': u'other_charges',
'to_table': u'RV Tax Detail',
'validation_logic': u'name is not null'
},
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
'from_field': 'sales_team',
'from_table': 'Sales Team',
'doctype': u'Table Mapper Detail',
'from_field': u'sales_team',
'from_table': u'Sales Team',
'match_id': 3,
'to_field': 'sales_team',
'to_table': 'Sales Team',
'validation_logic': 'name is not null'
'to_field': u'sales_team',
'to_table': u'Sales Team',
'validation_logic': u'name is not null'
}
]

View File

@ -46,6 +46,14 @@ class DocType:
else:
msgprint("Please enter atleast 1 invoice in the table below", raise_exception=1)
self.calculate_total_invoiced_amount()
def calculate_total_invoiced_amount(self):
total = 0
for d in getlist(self.doclist, 'invoice_details'):
total += flt(d.grand_total)
webnotes.conn.set(self.doc, 'total_invoiced_amount', total)
def get_invoice_details(self, invoice_no):
""" Pull details from invoices for referrence """

View File

@ -3,188 +3,223 @@
# These values are common in all dictionaries
{
'creation': '2011-12-07 16:16:16',
'creation': '2011-12-14 11:40:47',
'docstatus': 0,
'modified': '2011-12-07 17:50:17',
'modified_by': 'Administrator',
'owner': 'Administrator'
'modified': '2012-04-06 17:29:50',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
# These values are common for all DocType
{
'_last_update': '1323255350',
'colour': 'White:FFF',
'_last_update': u'1333712835',
'allow_attach': 1,
'colour': u'White:FFF',
'doctype': 'DocType',
'module': 'Accounts',
'max_attachments': 3,
'module': u'Accounts',
'name': '__common__',
'section_style': 'Simple',
'section_style': u'Simple',
'show_in_menu': 0,
'version': 11
'version': 19
},
# These values are common for all DocField
{
'doctype': 'DocField',
'doctype': u'DocField',
'name': '__common__',
'parent': 'C-Form',
'parentfield': 'fields',
'parenttype': 'DocType',
'permlevel': 0
'parent': u'C-Form',
'parentfield': u'fields',
'parenttype': u'DocType'
},
# These values are common for all DocPerm
{
'doctype': 'DocPerm',
'doctype': u'DocPerm',
'name': '__common__',
'parent': 'C-Form',
'parentfield': 'permissions',
'parenttype': 'DocType',
'parent': u'C-Form',
'parentfield': u'permissions',
'parenttype': u'DocType',
'read': 1
},
# DocType, C-Form
{
'doctype': 'DocType',
'name': 'C-Form'
'name': u'C-Form'
},
# DocPerm
{
'create': 1,
'doctype': 'DocPerm',
'doctype': u'DocPerm',
'permlevel': 0,
'role': 'Accounts User',
'role': u'Accounts User',
'write': 1
},
# DocPerm
{
'create': 1,
'doctype': 'DocPerm',
'doctype': u'DocPerm',
'permlevel': 0,
'role': 'Accounts Manager',
'role': u'Accounts Manager',
'submit': 0,
'write': 1
},
# DocPerm
{
'doctype': 'DocPerm',
'doctype': u'DocPerm',
'permlevel': 1,
'role': 'All'
'role': u'All'
},
# DocField
{
'doctype': 'DocField',
'fieldtype': 'Column Break',
'width': '50%'
'doctype': u'DocField',
'fieldtype': u'Column Break',
'permlevel': 0,
'width': u'50%'
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'naming_series',
'fieldtype': 'Select',
'label': 'Series',
'options': '\nC-FORM/',
'doctype': u'DocField',
'fieldname': u'naming_series',
'fieldtype': u'Select',
'label': u'Series',
'options': u'\nC-FORM/',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'c_form_no',
'fieldtype': 'Data',
'label': 'C-Form No',
'doctype': u'DocField',
'fieldname': u'c_form_no',
'fieldtype': u'Data',
'label': u'C-Form No',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'received_date',
'fieldtype': 'Date',
'label': 'Received Date',
'doctype': u'DocField',
'fieldname': u'received_date',
'fieldtype': u'Date',
'label': u'Received Date',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'customer',
'fieldtype': 'Link',
'label': 'Customer',
'options': 'Customer',
'doctype': u'DocField',
'fieldname': u'customer',
'fieldtype': u'Link',
'label': u'Customer',
'options': u'Customer',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': 'DocField',
'fieldtype': 'Column Break',
'width': '50%'
'doctype': u'DocField',
'fieldtype': u'Column Break',
'permlevel': 0,
'width': u'50%'
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'company',
'fieldtype': 'Select',
'label': 'Company',
'options': 'link:Company'
'doctype': u'DocField',
'fieldname': u'company',
'fieldtype': u'Select',
'label': u'Company',
'options': u'link:Company',
'permlevel': 0
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'fiscal_year',
'fieldtype': 'Select',
'label': 'Fiscal Year',
'options': 'link:Fiscal Year',
'doctype': u'DocField',
'fieldname': u'fiscal_year',
'fieldtype': u'Select',
'label': u'Fiscal Year',
'options': u'link:Fiscal Year',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'quarter',
'fieldtype': 'Select',
'label': 'Quarter',
'options': '\nI\nII\nIII\nIV'
'doctype': u'DocField',
'fieldname': u'quarter',
'fieldtype': u'Select',
'label': u'Quarter',
'options': u'\nI\nII\nIII\nIV',
'permlevel': 0
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'total_amount',
'fieldtype': 'Currency',
'label': 'Total Amount',
'doctype': u'DocField',
'fieldname': u'total_amount',
'fieldtype': u'Currency',
'label': u'Total Amount',
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'state',
'fieldtype': 'Select',
'label': 'State',
'options': "link:State\ncountry='India'",
'doctype': u'DocField',
'fieldname': u'state',
'fieldtype': u'Select',
'label': u'State',
'options': u"link:State\ncountry='India'",
'permlevel': 0,
'reqd': 1
},
# DocField
{
'doctype': 'DocField',
'fieldtype': 'Section Break'
'doctype': u'DocField',
'fieldtype': u'Section Break',
'permlevel': 0
},
# DocField
{
'doctype': 'DocField',
'fieldname': 'invoice_details',
'fieldtype': 'Table',
'label': 'Invoice Details',
'options': 'C-Form Invoice Detail'
'doctype': u'DocField',
'fieldname': u'invoice_details',
'fieldtype': u'Table',
'label': u'Invoice Details',
'options': u'C-Form Invoice Detail',
'permlevel': 0
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'total_invoiced_amount',
'fieldtype': u'Currency',
'label': u'Total Invoiced Amount',
'permlevel': 1,
'print_hide': 0
},
# DocField
{
'doctype': u'DocField',
'fieldname': u'file_list',
'fieldtype': u'Text',
'hidden': 1,
'label': u'File List',
'permlevel': 0,
'print_hide': 1
}
]

View File

@ -35,45 +35,111 @@ class DocType:
yr = sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",dt)
return yr and yr[0][0] or ''
# Get gl entries for the period and account
def get_gl_entries(self, lft, rgt):
gle = sql("select t1.posting_date, t1.voucher_type, t1.voucher_no, t1.debit, t1.credit, t1.remarks from `tabGL Entry` t1, `tabAccount` t2 WHERE t1.posting_date >= %s AND t1.posting_date <= %s and ifnull(t1.is_opening, 'No') = 'No' AND t1.account = t2.name AND t2.lft >= %s AND t2.rgt <= %s and ifnull(t1.is_cancelled, 'No') = 'No'", (self.doc.from_date, self.doc.to_date, lft, rgt), as_dict=1)
def validate_date(self):
"""check for from date and to date within same year"""
if not sql("select name from `tabFiscal Year` where %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day) and %s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)",(self.doc.from_date, self.doc.to_date)):
msgprint("From Date and To Date must be within same year")
raise Exception
if not self.doc.from_date or not self.doc.to_date:
msgprint("From Date and To Date is mandatory")
raise Exception
def add_header(self):
title = 'Ledger Balances Between ' + getdate(self.doc.from_date).strftime('%d-%m-%Y') + ' and ' + getdate(self.doc.to_date).strftime('%d-%m-%Y')
return [[title], ['Account', 'Opening(Dr)', 'Opening (Cr)', 'Debit', 'Credit', 'Closing(Dr)', 'Closing(Cr)'], ['', '', '', '', '', '', '', 'Posting Date', 'Voucher Type', 'Voucher No', 'Debit', 'Credit', 'Remarks']]
def get_account_subtree(self, acc):
return sql("""
SELECT
CONCAT(REPEAT(' ', COUNT(parent.name) - (sub_tree.depth + 1)), node.name) as account,
node.lft AS lft, node.rgt AS rgt,
node.debit_or_credit as dr_or_cr, node.group_or_ledger as group_or_ledger, node.is_pl_account as is_pl_account
FROM tabAccount AS node,
tabAccount AS parent,
tabAccount AS sub_parent,
(
SELECT node.name, (COUNT(parent.name) - 1) AS depth
FROM tabAccount AS node, tabAccount AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.name = %s
GROUP BY node.name
ORDER BY node.lft
)AS sub_tree
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
AND sub_parent.name = sub_tree.name
GROUP BY node.name
ORDER BY node.lft""", acc, as_dict = 1)
def show_acc_summary(self, glc, acc_det):
from_date_year = self.get_year(add_days(self.doc.from_date, -1))
to_date_year = self.get_year(self.doc.to_date)
acc = acc_det['account'].strip()
if from_date_year == to_date_year:
debit_on_fromdate, credit_on_fromdate, opening = glc.get_as_on_balance(acc, from_date_year, add_days(self.doc.from_date, -1), acc_det['dr_or_cr'], acc_det['lft'], acc_det['rgt']) # opening = closing of prev_date
elif acc_det['is_pl_account'] == 'No': # if there is no previous year in system and not pl account
opening = sql("select opening from `tabAccount Balance` where account = %s and period = %s", (acc, to_date_year))
debit_on_fromdate, credit_on_fromdate, opening = 0, 0, flt(opening[0][0])
else: # if pl account and there is no previous year in system
debit_on_fromdate, credit_on_fromdate, opening = 0,0,0
# closing balance
#--------------------------------
debit_on_todate, credit_on_todate, closing = glc.get_as_on_balance(acc, to_date_year, self.doc.to_date, acc_det['dr_or_cr'], acc_det['lft'], acc_det['rgt'])
# transaction betn the period
#----------------------------------------
debit = flt(debit_on_todate) - flt(debit_on_fromdate)
credit = flt(credit_on_todate) - flt(credit_on_fromdate)
# Debit / Credit
if acc_det['dr_or_cr'] == 'Credit':
opening, closing = -1*opening, -1*closing
return [acc_det['account'], flt(opening>0 and opening or 0), flt(opening<0 and -opening or 0),
debit, credit, flt(closing>0.01 and closing or 0), flt(closing<-0.01 and -closing or 0)]
def show_gl_entries(self, acc):
"""Get gl entries for the period and account"""
gle = sql("select posting_date, voucher_type, voucher_no, debit, credit, remarks from `tabGL Entry` WHERE account = %s and posting_date >= %s AND posting_date <= %s and ifnull(is_opening, 'No') = 'No' and ifnull(is_cancelled, 'No') = 'No'", (acc, self.doc.from_date, self.doc.to_date), as_dict=1)
entries, dr, cr = [], 0, 0
for d in gle:
dr, cr = dr + flt(d['debit']), cr + flt(d['credit'])
entries.append(['', d['posting_date'], d['voucher_type'], d['voucher_no'], d['debit'], d['credit'], d['remarks']])
return entries, dr, cr
entries.append(['', '', '', '', '', '', '', d['posting_date'], d['voucher_type'], d['voucher_no'], d['debit'], d['credit'], d['remarks']])
return entries
# Get Report Data
def get_report_data(self):
from_date_year = self.get_year(add_days(self.doc.from_date, -1))
to_date_year = self.get_year(self.doc.to_date)
self.validate_date()
res = []
res += self.add_header()
# result initiatlization
header = 'Ledger Balances Between ' + getdate(self.doc.from_date).strftime('%d-%m-%Y') + ' and ' + getdate(self.doc.to_date).strftime('%d-%m-%Y')
res = [[header], ['Account', 'Posting Date', 'Voucher Type', 'Voucher No', 'Debit', 'Credit', 'Remarks']]
glc = get_obj('GL Control')
for d in getlist(self.doclist, 'ledger_details'):
# Fetch acc details
acc_det = sql("select debit_or_credit, is_pl_account, lft, rgt from tabAccount where name = '%s'" % d.account, as_dict=1)[0]
sub_tree = self.get_account_subtree(d.account)
# Opening
opening = glc.get_as_on_balance(d.account, from_date_year, add_days(self.doc.from_date, -1), acc_det['debit_or_credit'], acc_det['lft'], acc_det['rgt'])[2]
if acc_det['debit_or_credit'] == 'Credit':
opening = -1*opening
for acc_det in sub_tree:
acc_summary = self.show_acc_summary(glc, acc_det)
res.append(acc_summary)
# Show gl entries if account is ledger
if acc_det['group_or_ledger'] == 'Ledger' and (acc_summary[3] or acc_summary[4]):
gle = self.show_gl_entries(acc_det['account'].strip())
res += gle
# GL Entries
gle, debit, credit = self.get_gl_entries(acc_det['lft'], acc_det['rgt'])
# Closing
closing = opening + debit - credit
# Append to result
res.append([d.account])
res += gle
res.append(['', '', '', 'Total Debit/Credit', debit, credit])
res.append(['', '', '', 'Opening Balance', opening])
res.append(['', '', '', 'Closing Balance', closing])
return res

View File

@ -935,7 +935,7 @@
'oldfieldname': u'in_words_export',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 1
'print_hide': 0
},
# DocField
@ -1518,4 +1518,4 @@
'permlevel': 0,
'print_hide': 1
}
]
]

View File

@ -19,4 +19,12 @@ pscript['onload_accounts-home'] = function(wrapper) {
if(wn.control_panel.country!='India') {
$('.india-specific').toggle(false);
}
}
if(wn.boot.profile.roles.indexOf('Accounts Manager')==-1 && wn.boot.profile.roles.indexOf('Accounts User')==-1) {
$('[href*="Accounts Browser"]').each(function() {
var txt = $(this).text();
$(this).parent().css('color', '#999').html(txt);
});
}
}

View File

@ -227,7 +227,7 @@ class DocType(TransactionBase):
if d.fields.has_key(x):
d.fields[x] = f_lst[x]
item = sql("select is_stock_item, is_purchase_item from tabItem where name=%s and (ifnull(end_of_life,'')='' or end_of_life = '0000-00-00' or end_of_life > now())", d.item_code)
item = sql("select is_stock_item, is_purchase_item, is_sub_contracted_item from tabItem where name=%s and (ifnull(end_of_life,'')='' or end_of_life = '0000-00-00' or end_of_life > now())", d.item_code)
if not item:
msgprint("Item %s does not exist in Item Master." % cstr(d.item_code))
raise Exception
@ -239,9 +239,10 @@ class DocType(TransactionBase):
raise Exception
# validate purchase item
if not item[0][1]=='Yes':
msgprint("Item %s is not purchase item." % (d.item_code))
if item[0][1] != 'Yes' and item[0][2] != 'Yes':
msgprint("Item %s is not a purchase item or sub-contracted item. Please check" % (d.item_code))
raise Exception
if d.fields.has_key('prevdoc_docname') and d.prevdoc_docname:
# check warehouse, uom in previous doc and in current doc are same.

View File

View File

@ -0,0 +1,4 @@
def execute():
import webnotes
from webnotes.modules.module_manager import reload_doc
reload_doc('accounts', 'doctype', 'c_form')

View File

@ -0,0 +1,3 @@
def execute():
import webnotes
webnotes.conn.sql("delete from `tabTable Mapper Detail` where to_table = 'RV Detail' and parent = 'Delivery Note-Receivable Voucher' and validation_logic = 'amount > ifnull(billed_amt, 0) and docstatus = 1'")

View File

@ -0,0 +1,9 @@
def execute():
import webnotes
from webnotes.modules.module_manager import reload_doc
reload_doc('stock', 'DocType Mapper', 'Sales Order-Delivery Note')
reload_doc('accounts', 'DocType Mapper', 'Sales Order-Receivable Voucher')
reload_doc('accounts', 'DocType Mapper', 'Delivery Note-Receivable Voucher')
webnotes.conn.sql("delete from `tabField Mapper Detail` where parent = 'Sales Order-Delivery Note' and from_field = 'basic_rate' and to_field = 'basic_rate'")

View File

@ -0,0 +1,14 @@
def execute():
import webnotes
webnotes.conn.sql("""
UPDATE `tabDocField`
SET fieldtype = 'Link', options = 'Deduction Type'
WHERE parent = 'Deduction Detail'
AND fieldname = 'd_type'
""")
webnotes.conn.sql("""
UPDATE `tabDocField`
SET fieldtype = 'Link', options = 'Earning Type'
WHERE parent = 'Earning Detail'
AND fieldname = 'e_type'
""")

View File

@ -0,0 +1,10 @@
def execute():
import webnotes
count = webnotes.conn.sql("""SELECT COUNT(*) FROM `tabTable Mapper Detail`
WHERE parent='Sales Order-Receivable Voucher'
AND from_table='Sales Order Detail'""")
if count and count[0][0]==2:
webnotes.conn.sql("""DELETE FROM `tabTable Mapper Detail`
WHERE parent='Sales Order-Receivable Voucher'
AND from_table='Sales Order Detail'
AND validation_logic='docstatus = 1'""")

View File

@ -207,5 +207,25 @@ patch_list = [
'patch_file': 'update_se_fld_options',
'description': 'Purpose SE: Others to Other'
},
{
'patch_module': 'patches.jan_mar_2012',
'patch_file': 'reload_mapper',
'description': 'SO-DN, SO-Rv, DN-RV'
},
{
'patch_module': 'patches.jan_mar_2012',
'patch_file': 'mapper_fix',
'description': 'DN-RV duplicate table entry'
},
{
'patch_module': 'patches.mar_2012',
'patch_file': 'so_rv_mapper_fix',
'description': 'SO-RV duplicate mapper entry removal'
},
{
'patch_module': 'patches.april_2012',
'patch_file': 'reload_c_form',
'description': 'Added attchemnt option and total field'
},
]

View File

@ -875,7 +875,7 @@
'oldfieldname': u'in_words_export',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 1,
'print_hide': 0,
'width': u'200px'
},
@ -1199,4 +1199,4 @@
'permlevel': 0,
'print_hide': 1
}
]
]

View File

@ -157,11 +157,18 @@ cur_frm.cscript.hide_price_list_currency = function(doc, cdt, cdn, callback1) {
args: {'price_list':doc.price_list_name, 'company': doc.company},
callback: function(r, rt) {
pl_currency = r.message[0]?r.message[0]:[];
unhide_field(['price_list_currency', 'plc_conversion_rate']);
if (pl_currency.length==1) {
if (pl_currency[0] == doc.currency) set_multiple(cdt, cdn, {price_list_currency:doc.currency, plc_conversion_rate:doc.conversion_rate});
else if (pl_currency[0] = r.message[1]) set_multiple(cdt, cdn, {price_list_currency:pl_currency[0], plc_conversion_rate:1})
hide_field(['price_list_currency', 'plc_conversion_rate']);
} else unhide_field(['price_list_currency', 'plc_conversion_rate']);
set_multiple(cdt, cdn, {price_list_currency:pl_currency[0]});
if (pl_currency[0] == doc.currency) {
set_multiple(cdt, cdn, {plc_conversion_rate:doc.conversion_rate});
hide_field(['price_list_currency', 'plc_conversion_rate']);
} else if (pl_currency[0] == r.message[1]) {
set_multiple(cdt, cdn, {plc_conversion_rate:1})
hide_field(['price_list_currency', 'plc_conversion_rate']);
}
}
if (r.message[1] == doc.currency) {
set_multiple(cdt, cdn, {conversion_rate:1});

View File

@ -963,7 +963,7 @@
'oldfieldname': u'in_words_export',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 1,
'print_hide': 0,
'width': u'200px'
},
@ -1333,4 +1333,4 @@
'permlevel': 0,
'print_hide': 1
}
]
]

View File

@ -240,7 +240,9 @@ class DocType:
Adds common conditions in dictionary "args"
"""
start_date, end_date = self.get_start_end_dates()
fiscal_start_date = webnotes.utils.get_defaults()['year_start_date']
fiscal_year = webnotes.utils.get_defaults()['fiscal_year']
fiscal_start_date = webnotes.conn.get_value('Fiscal Year', fiscal_year,
'year_start_date')
if 'new' in args['type']:
args.update({

View File

@ -36,6 +36,10 @@ cur_frm.pformat.rounded_total_export = function(doc) {
return '';
}
cur_frm.pformat.in_words_export = function(doc) {
return '';
}
cur_frm.pformat.other_charges= function(doc){
//function to make row of table
var make_row = function(title,val,bold){
@ -89,7 +93,7 @@ cur_frm.pformat.other_charges= function(doc){
out += make_row('Rounded Total',fmt_money(doc.rounded_total_export),1);
}
if(doc.in_words_export){
if(doc.in_words_export && !print_hide_dict['in_words_export']){
out +='</table></td></tr>';
out += '<tr><td colspan = "2">';
out += '<table><tr><td style="width:25%;"><b>In Words</b></td>'

View File

@ -70,7 +70,10 @@ class DocType:
ret.append(p)
# fields list
fl = ['', 'owner'] + [l[0] for l in sql("select fieldname from tabDocField where parent=%s and fieldtype='Link' and ifnull(options,'')!=''", doctype)]
fl = ['', 'owner'] + [l[0] for l in sql("""\
select fieldname from tabDocField where parent=%s
and ((fieldtype='Link' and ifnull(options,'')!='') or
(fieldtype='Select') and lcase(ifnull(options,'')) like 'link:%%')""", doctype)]
return {'perms':ret, 'fields':fl}

View File

@ -131,10 +131,10 @@
{
'checking_operator': u'=',
'doctype': u'Field Mapper Detail',
'from_field': u'basic_rate',
'from_field': u'export_rate',
'map': u'Yes',
'match_id': 1,
'to_field': u'basic_rate'
'to_field': u'export_rate'
},
# Field Mapper Detail
@ -264,4 +264,4 @@
'to_table': u'Delivery Note',
'validation_logic': u'docstatus = 1'
}
]
]

View File

@ -337,12 +337,12 @@ class DocType:
and t1.docstatus != 2
""", self.doc.item_code)
if ((flt(ret[0]['re_order_level']) > flt(current_qty)) and ret[0]['re_order_level']):
self.create_auto_indent(ret[0], doc_type, doc_name)
if ((flt(ret[0]['re_order_level']) > flt(current_qty[0][0])) and ret[0]['re_order_level']):
self.create_auto_indent(ret[0], doc_type, doc_name, current_qty[0][0])
def create_auto_indent(self, i , doc_type, doc_name):
def create_auto_indent(self, i , doc_type, doc_name, cur_qty):
""" Create indent on reaching reorder level """
indent = Document('Indent')
@ -361,7 +361,7 @@ class DocType:
indent_details_child.item_name = i['item_name']
indent_details_child.description = i['description']
indent_details_child.item_group = i['item_group']
indent_details_child.qty = i['re_order_qty']
indent_details_child.qty = i['re_order_qty'] or (flt(i['re_order_level']) - flt(cur_qty))
indent_details_child.brand = i['brand']
indent_details_child.save()
indent_obj = get_obj('Indent',indent.name,with_children=1)

View File

@ -869,7 +869,7 @@
'oldfieldname': u'in_words_export',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 1,
'print_hide': 0,
'width': u'150px'
},
@ -1346,4 +1346,4 @@
'permlevel': 0,
'print_hide': 1
}
]
]

View File

@ -41,13 +41,13 @@ cur_frm.fields_dict['default_bom'].get_query = function(doc) {
// Expense Account
// ---------------------------------
cur_frm.fields_dict['purchase_account'].get_query = function(doc){
return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Debit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'
return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Debit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'
}
// Income Account
// --------------------------------
cur_frm.fields_dict['default_income_account'].get_query = function(doc) {
return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Credit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.`account_type` ="Income Account" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'
return 'SELECT DISTINCT `tabAccount`.`name` FROM `tabAccount` WHERE `tabAccount`.`debit_or_credit`="Credit" AND `tabAccount`.`group_or_ledger`="Ledger" AND `tabAccount`.`docstatus`!=2 AND `tabAccount`.`account_type` ="Income Account" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50'
}

View File

@ -23,7 +23,10 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) {
var cfn_set_fields = function(doc, cdt, cdn) {
lst = ['supplier','supplier_name','supplier_address','customer','customer_name','customer_address'];
hide_field(lst);
if (in_list(['Material Issue', 'Material Transfer', 'Material Receipt', 'Production Order', 'Subcontracting', 'Other'], doc.purpose)) {
hide_field(lst);
} else unhide_field(lst);
if (doc.purpose == 'Production Order' || doc.purpose == 'Other'){
unhide_field('Get Items');
@ -52,6 +55,7 @@ var cfn_set_fields = function(doc, cdt, cdn) {
if(doc.purpose == 'Purchase Return'){
doc.customer=doc.customer_name = doc.customer_address=doc.delivery_note_no=doc.sales_invoice_no='';
unhide_field(['supplier','supplier_name','supplier_address','purchase_receipt_no']);
}
else if(doc.purpose == 'Sales Return'){
doc.supplier=doc.supplier_name = doc.supplier_address=doc.purchase_receipt_no='';

View File

@ -31,8 +31,9 @@ in_transaction = webnotes.conn.in_transaction
convert_to_lists = webnotes.conn.convert_to_lists
# -----------------------------------------------------------------------------------------
from utilities.transaction_base import TransactionBase
class DocType:
class DocType(TransactionBase):
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
@ -510,10 +511,11 @@ class DocType:
def get_cust_addr(self):
res = sql("select customer_name,address from `tabCustomer` where name = '%s'"%self.doc.customer)
res = sql("select customer_name from `tabCustomer` where name = '%s'"%self.doc.customer)
addr = self.get_address_text(customer = self.doc.customer)
ret = {
'customer_name' : res and res[0][0] or '',
'customer_address' : res and res[0][1] or ''}
'customer_address' : addr and addr[0] or ''}
return ret
@ -530,7 +532,8 @@ class DocType:
def get_supp_addr(self):
res = sql("select supplier_name,address from `tabSupplier` where name = '%s'"%self.doc.supplier)
addr = self.get_address_text(supplier = self.doc.supplier)
ret = {
'supplier_name' : res and res[0][0] or '',
'supplier_address' : res and res[0][1] or ''}
'supplier_address' : addr and addr[0] or ''}
return ret

View File

@ -3,16 +3,16 @@
# These values are common in all dictionaries
{
'creation': '2010-08-08 17:09:25',
'creation': '2009-05-12 16:46:45',
'docstatus': 0,
'modified': '2012-03-21 11:00:48',
'modified': '2012-04-13 14:12:02',
'modified_by': u'Administrator',
'owner': u'Administrator'
},
# These values are common for all DocType
{
'_last_update': u'1332233897',
'_last_update': u'1334303911',
'allow_attach': 0,
'allow_copy': 0,
'allow_email': 0,
@ -41,7 +41,7 @@
'subject': u'%(remarks)s',
'tag_fields': u'purpose',
'use_template': 0,
'version': 259
'version': 263
},
# These values are common for all DocField
@ -71,26 +71,26 @@
# DocPerm
{
'amend': 0,
'cancel': 0,
'create': 0,
'amend': 1,
'cancel': 1,
'create': 1,
'doctype': u'DocPerm',
'permlevel': 1,
'role': u'Material Manager',
'submit': 0,
'write': 0
},
# DocPerm
{
'amend': 0,
'cancel': 0,
'create': 0,
'doctype': u'DocPerm',
'permlevel': 1,
'permlevel': 0,
'role': u'Material User',
'submit': 0,
'write': 0
'submit': 1,
'write': 1
},
# DocPerm
{
'amend': 1,
'cancel': 1,
'create': 1,
'doctype': u'DocPerm',
'permlevel': 0,
'role': u'Material Manager',
'submit': 1,
'write': 1
},
# DocPerm
@ -105,30 +105,6 @@
'write': 1
},
# DocPerm
{
'amend': 0,
'cancel': 0,
'create': 0,
'doctype': u'DocPerm',
'permlevel': 1,
'role': u'Production User',
'submit': 0,
'write': 0
},
# DocPerm
{
'amend': 0,
'cancel': 0,
'create': 0,
'doctype': u'DocPerm',
'permlevel': 2,
'role': u'Production User',
'submit': 0,
'write': 1
},
# DocPerm
{
'amend': 1,
@ -148,20 +124,25 @@
'create': 0,
'doctype': u'DocPerm',
'permlevel': 1,
'role': u'Production Manager',
'role': u'All',
'submit': 0,
'write': 0
},
# DocPerm
{
'amend': 0,
'cancel': 0,
'create': 0,
'doctype': u'DocPerm',
'permlevel': 2,
'role': u'Production User',
'write': 1
},
# DocPerm
{
'doctype': u'DocPerm',
'permlevel': 2,
'role': u'Production Manager',
'submit': 0,
'write': 1
},
@ -191,12 +172,13 @@
'doctype': u'DocField',
'fieldname': u'naming_series',
'fieldtype': u'Select',
'hidden': 0,
'in_filter': 0,
'label': u'Series',
'no_copy': 1,
'oldfieldname': u'naming_series',
'oldfieldtype': u'Select',
'options': u'STE',
'options': u'\nSTE',
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
@ -211,6 +193,7 @@
'doctype': u'DocField',
'fieldname': u'amendment_date',
'fieldtype': u'Date',
'hidden': 0,
'in_filter': 0,
'label': u'Amendment Date',
'no_copy': 1,
@ -219,6 +202,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -229,6 +213,7 @@
'doctype': u'DocField',
'fieldname': u'purpose',
'fieldtype': u'Select',
'hidden': 0,
'in_filter': 1,
'label': u'Purpose',
'no_copy': 0,
@ -236,6 +221,7 @@
'oldfieldtype': u'Select',
'options': u'Material Issue\nMaterial Receipt\nMaterial Transfer\nSales Return\nPurchase Return\nSubcontracting\nProduction Order\nOther',
'permlevel': 0,
'print_hide': 0,
'report_hide': 0,
'reqd': 1,
'search_index': 0,
@ -259,6 +245,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 1,
'trigger': u'Client'
},
@ -280,6 +267,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 1,
'trigger': u'Client'
},
@ -303,7 +291,7 @@
'doctype': u'DocField',
'fieldname': u'supplier',
'fieldtype': u'Link',
'hidden': 1,
'hidden': 0,
'in_filter': 0,
'label': u'Supplier',
'no_copy': 0,
@ -313,6 +301,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0,
'trigger': u'Client'
},
@ -323,13 +312,16 @@
'doctype': u'DocField',
'fieldname': u'supplier_name',
'fieldtype': u'Data',
'hidden': 0,
'in_filter': 0,
'label': u'Supplier Name',
'no_copy': 0,
'oldfieldname': u'supplier_name',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 0,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -340,14 +332,16 @@
'doctype': u'DocField',
'fieldname': u'supplier_address',
'fieldtype': u'Small Text',
'hidden': 1,
'hidden': 0,
'in_filter': 0,
'label': u'Supplier Address',
'no_copy': 0,
'oldfieldname': u'supplier_address',
'oldfieldtype': u'Small Text',
'permlevel': 0,
'print_hide': 0,
'report_hide': 0,
'reqd': 0,
'search_index': 0,
'trigger': u'Client'
},
@ -359,7 +353,7 @@
'doctype': u'DocField',
'fieldname': u'customer',
'fieldtype': u'Link',
'hidden': 1,
'hidden': 0,
'in_filter': 0,
'label': u'Customer',
'no_copy': 0,
@ -369,6 +363,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0,
'trigger': u'Client'
},
@ -379,14 +374,16 @@
'doctype': u'DocField',
'fieldname': u'customer_name',
'fieldtype': u'Data',
'hidden': 1,
'hidden': 0,
'in_filter': 0,
'label': u'Customer Name',
'no_copy': 0,
'oldfieldname': u'customer_name',
'oldfieldtype': u'Data',
'permlevel': 1,
'print_hide': 0,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -396,14 +393,16 @@
'doctype': u'DocField',
'fieldname': u'customer_address',
'fieldtype': u'Small Text',
'hidden': 1,
'hidden': 0,
'in_filter': 0,
'label': u'Customer Address',
'no_copy': 0,
'oldfieldname': u'customer_address',
'oldfieldtype': u'Small Text',
'permlevel': 0,
'print_hide': 0,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -424,6 +423,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0,
'trigger': u'Client'
},
@ -445,6 +445,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 1,
'trigger': u'Client'
},
@ -479,6 +480,7 @@
'doctype': u'DocField',
'fieldname': u'fg_completed_qty',
'fieldtype': u'Currency',
'hidden': 0,
'in_filter': 0,
'label': u'FG Completed Qty',
'no_copy': 0,
@ -487,6 +489,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0,
'trigger': u'Client'
},
@ -511,6 +514,7 @@
'doctype': u'DocField',
'fieldname': u'from_warehouse',
'fieldtype': u'Link',
'hidden': 0,
'in_filter': 0,
'label': u'Source Warehouse',
'no_copy': 0,
@ -533,6 +537,7 @@
'doctype': u'DocField',
'fieldname': u'to_warehouse',
'fieldtype': u'Link',
'hidden': 0,
'in_filter': 0,
'label': u'Target Warehouse',
'no_copy': 0,
@ -576,6 +581,7 @@
'doctype': u'DocField',
'fieldname': u'transfer_date',
'fieldtype': u'Date',
'hidden': 0,
'in_filter': 1,
'label': u'Transfer Date',
'no_copy': 1,
@ -595,6 +601,7 @@
'doctype': u'DocField',
'fieldname': u'posting_date',
'fieldtype': u'Date',
'hidden': 0,
'in_filter': 1,
'label': u'Posting Date',
'no_copy': 1,
@ -613,6 +620,7 @@
'doctype': u'DocField',
'fieldname': u'posting_time',
'fieldtype': u'Time',
'hidden': 0,
'in_filter': 0,
'label': u'Posting Time',
'no_copy': 1,
@ -631,6 +639,7 @@
'doctype': u'DocField',
'fieldname': u'amended_from',
'fieldtype': u'Link',
'hidden': 0,
'in_filter': 0,
'label': u'Amended From',
'no_copy': 1,
@ -640,6 +649,7 @@
'permlevel': 1,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -649,6 +659,7 @@
'doctype': u'DocField',
'fieldname': u'transporter',
'fieldtype': u'Data',
'hidden': 0,
'in_filter': 0,
'label': u'Transporter',
'no_copy': 0,
@ -657,6 +668,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -666,6 +678,7 @@
'doctype': u'DocField',
'fieldname': u'is_excisable_goods',
'fieldtype': u'Select',
'hidden': 0,
'in_filter': 0,
'label': u'Is Excisable Goods',
'no_copy': 0,
@ -675,6 +688,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -684,6 +698,7 @@
'doctype': u'DocField',
'fieldname': u'excisable_goods',
'fieldtype': u'Select',
'hidden': 0,
'in_filter': 0,
'label': u'Excisable Goods',
'no_copy': 0,
@ -693,6 +708,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -712,6 +728,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -721,6 +738,7 @@
'doctype': u'DocField',
'fieldname': u'remarks',
'fieldtype': u'Text',
'hidden': 0,
'in_filter': 0,
'label': u'Remarks',
'no_copy': 1,
@ -795,6 +813,7 @@
'permlevel': 0,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -814,6 +833,7 @@
'doctype': u'DocField',
'fieldname': u'mtn_details',
'fieldtype': u'Table',
'hidden': 0,
'in_filter': 0,
'label': u'MTN Details',
'no_copy': 0,
@ -823,6 +843,7 @@
'permlevel': 0,
'print_hide': 0,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -832,6 +853,7 @@
'doctype': u'DocField',
'fieldname': u'total_amount',
'fieldtype': u'Currency',
'hidden': 0,
'in_filter': 0,
'label': u'Total Amount',
'no_copy': 0,
@ -840,6 +862,7 @@
'permlevel': 1,
'print_hide': 1,
'report_hide': 0,
'reqd': 0,
'search_index': 0
},
@ -858,6 +881,7 @@
'doctype': u'DocField',
'fieldname': u'company',
'fieldtype': u'Link',
'hidden': 0,
'in_filter': 1,
'label': u'Company',
'no_copy': 0,
@ -877,6 +901,7 @@
'doctype': u'DocField',
'fieldname': u'fiscal_year',
'fieldtype': u'Select',
'hidden': 0,
'in_filter': 0,
'label': u'Fiscal Year',
'no_copy': 0,
@ -896,6 +921,7 @@
'doctype': u'DocField',
'fieldname': u'select_print_heading',
'fieldtype': u'Link',
'hidden': 0,
'in_filter': 0,
'label': u'Select Print Heading',
'no_copy': 0,
@ -903,7 +929,9 @@
'oldfieldtype': u'Link',
'options': u'Print Heading',
'permlevel': 0,
'print_hide': 0,
'report_hide': 0,
'reqd': 0,
'search_index': 0
}
]