Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt
index 9ed756f..7a4544f 100644
--- a/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt
+++ b/erpnext/accounts/DocType Mapper/Delivery Note-Receivable Voucher/Delivery Note-Receivable Voucher.txt
@@ -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',
@@ -151,17 +161,6 @@
'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',
- 'from_field': 'delivery_note_details',
- 'from_table': 'Delivery Note 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'
},
@@ -186,4 +185,4 @@
'to_table': 'Sales Team',
'validation_logic': 'name is not null'
}
-]
\ No newline at end of file
+]
diff --git a/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt
index 630fb15..d076d9f 100644
--- a/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt
+++ b/erpnext/accounts/DocType Mapper/Sales Order-Receivable Voucher/Sales Order-Receivable Voucher.txt
@@ -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'
}
]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/c_form/c_form.py b/erpnext/accounts/doctype/c_form/c_form.py
index 367b27a..bc5ed7b 100644
--- a/erpnext/accounts/doctype/c_form/c_form.py
+++ b/erpnext/accounts/doctype/c_form/c_form.py
@@ -46,6 +46,14 @@
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 """
diff --git a/erpnext/accounts/doctype/c_form/c_form.txt b/erpnext/accounts/doctype/c_form/c_form.txt
index 987bc9a..2cead89 100644
--- a/erpnext/accounts/doctype/c_form/c_form.txt
+++ b/erpnext/accounts/doctype/c_form/c_form.txt
@@ -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
}
]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py
index b790d06..88a31f2 100755
--- a/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py
+++ b/erpnext/accounts/doctype/ledger_balance_export/ledger_balance_export.py
@@ -35,45 +35,111 @@
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()
- # 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']]
+ res = []
+ res += self.add_header()
+
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
diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt
index 546d997..9d84f21 100644
--- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt
+++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.txt
@@ -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
}
-]
\ No newline at end of file
+]
diff --git a/erpnext/accounts/page/accounts_home/accounts_home.js b/erpnext/accounts/page/accounts_home/accounts_home.js
index 4551db0..52738a8 100644
--- a/erpnext/accounts/page/accounts_home/accounts_home.js
+++ b/erpnext/accounts/page/accounts_home/accounts_home.js
@@ -19,4 +19,12 @@
if(wn.control_panel.country!='India') {
$('.india-specific').toggle(false);
}
-}
\ No newline at end of file
+
+ 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);
+ });
+ }
+
+}
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.py b/erpnext/buying/doctype/purchase_common/purchase_common.py
index ca9181f..597eec4 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.py
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.py
@@ -227,7 +227,7 @@
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 @@
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.
diff --git a/erpnext/patches/april_2012/__init__.py b/erpnext/patches/april_2012/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/patches/april_2012/__init__.py
diff --git a/erpnext/patches/april_2012/reload_c_form.py b/erpnext/patches/april_2012/reload_c_form.py
new file mode 100644
index 0000000..246ea0f
--- /dev/null
+++ b/erpnext/patches/april_2012/reload_c_form.py
@@ -0,0 +1,4 @@
+def execute():
+ import webnotes
+ from webnotes.modules.module_manager import reload_doc
+ reload_doc('accounts', 'doctype', 'c_form')
diff --git a/erpnext/patches/jan_mar_2012/mapper_fix.py b/erpnext/patches/jan_mar_2012/mapper_fix.py
new file mode 100644
index 0000000..c651c5e
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/mapper_fix.py
@@ -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'")
diff --git a/erpnext/patches/jan_mar_2012/reload_mapper.py b/erpnext/patches/jan_mar_2012/reload_mapper.py
new file mode 100644
index 0000000..a6e3102
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/reload_mapper.py
@@ -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'")
diff --git a/erpnext/patches/mar_2012/earning_deduction_type_patch.py b/erpnext/patches/mar_2012/earning_deduction_type_patch.py
new file mode 100644
index 0000000..438b34e
--- /dev/null
+++ b/erpnext/patches/mar_2012/earning_deduction_type_patch.py
@@ -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'
+ """)
diff --git a/erpnext/patches/mar_2012/so_rv_mapper_fix.py b/erpnext/patches/mar_2012/so_rv_mapper_fix.py
new file mode 100644
index 0000000..8844773
--- /dev/null
+++ b/erpnext/patches/mar_2012/so_rv_mapper_fix.py
@@ -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'""")
diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py
index 3bf4b6a..cd38480 100644
--- a/erpnext/patches/patch_list.py
+++ b/erpnext/patches/patch_list.py
@@ -207,5 +207,25 @@
'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'
+ },
]
diff --git a/erpnext/selling/doctype/quotation/quotation.txt b/erpnext/selling/doctype/quotation/quotation.txt
index c8e3ecb..39a7327 100644
--- a/erpnext/selling/doctype/quotation/quotation.txt
+++ b/erpnext/selling/doctype/quotation/quotation.txt
@@ -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
}
-]
\ No newline at end of file
+]
diff --git a/erpnext/selling/doctype/sales_common/sales_common.js b/erpnext/selling/doctype/sales_common/sales_common.js
index cad8ec1..b257d6d 100644
--- a/erpnext/selling/doctype/sales_common/sales_common.js
+++ b/erpnext/selling/doctype/sales_common/sales_common.js
@@ -157,11 +157,18 @@
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});
diff --git a/erpnext/selling/doctype/sales_order/sales_order.txt b/erpnext/selling/doctype/sales_order/sales_order.txt
index a82f970..7a11bda 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.txt
+++ b/erpnext/selling/doctype/sales_order/sales_order.txt
@@ -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
}
-]
\ No newline at end of file
+]
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index ff9bf68..fb3730c 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -240,7 +240,9 @@
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({
diff --git a/erpnext/setup/doctype/other_charges/other_charges.js b/erpnext/setup/doctype/other_charges/other_charges.js
index a6f457d..85bdb79 100644
--- a/erpnext/setup/doctype/other_charges/other_charges.js
+++ b/erpnext/setup/doctype/other_charges/other_charges.js
@@ -36,6 +36,10 @@
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 @@
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>'
diff --git a/erpnext/setup/doctype/permission_control/permission_control.py b/erpnext/setup/doctype/permission_control/permission_control.py
index 049a3f5..bb05bec 100644
--- a/erpnext/setup/doctype/permission_control/permission_control.py
+++ b/erpnext/setup/doctype/permission_control/permission_control.py
@@ -70,7 +70,10 @@
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}
diff --git a/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt b/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt
index fcadcd4..43e800f 100644
--- a/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt
+++ b/erpnext/stock/DocType Mapper/Sales Order-Delivery Note/Sales Order-Delivery Note.txt
@@ -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'
}
-]
\ No newline at end of file
+]
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index dc847f6..de2d131 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -337,12 +337,12 @@
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 @@
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)
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.txt b/erpnext/stock/doctype/delivery_note/delivery_note.txt
index 4878c36..7bbd7d5 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.txt
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.txt
@@ -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
}
-]
\ No newline at end of file
+]
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 59235ab..f60a5f0 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -41,13 +41,13 @@
// 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'
}
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 07e83ed..55e7b41 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -23,7 +23,10 @@
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 @@
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='';
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 96642d0..a6fbba0 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -31,8 +31,9 @@
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 @@
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 @@
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
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.txt b/erpnext/stock/doctype/stock_entry/stock_entry.txt
index 9792fc9..54053b7 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.txt
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.txt
@@ -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
@@ -107,30 +107,6 @@
# 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,
'cancel': 1,
'create': 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
}
]
\ No newline at end of file