diff --git a/README.md b/README.md
index 3327238f2fe..27f86feb3c0 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# ERPNext - Open Source + SAAS ERP
+Version 2.0
+
Includes Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS
Built on Python / MySQL / wnframework
@@ -9,7 +11,7 @@ Built on Python / MySQL / wnframework
## Platform
-ERPNext is built on [wnframework](https://github.com/webnotes/wnframework)
+ERPNext is built on [wnframework](https://github.com/webnotes/wnframework) (Version 2.0)
## Download and Install
@@ -20,9 +22,18 @@ For download and install details, please go to [erpnext.org](http://erpnext.org)
- [User / Functional](http://groups.google.com/group/erpnext-user-forum)
- [Technical](http://groups.google.com/group/wnframework)
-## Contributing
+## Changes from wnframework version 1.7
-If you interested in contributing to ERPNext, you must go thorough the wnframework. The code is not easily understandable, but we are making a lot of effort to do it.
+To update from wnframework version 1.
+
+1. set your html folder to the root of erpnext (rather than wnframework)
+2. symlink wnframework as 'lib':
+
+ ln -s path/to/wnframework lib
+
+3. to setup the versions db, run:
+
+ python lib/wnf.py setup
## License
diff --git a/cgi-bin/README.md b/cgi-bin/README.md
new file mode 100644
index 00000000000..0ea07794685
--- /dev/null
+++ b/cgi-bin/README.md
@@ -0,0 +1 @@
+## Deprecated
\ No newline at end of file
diff --git a/cgi-bin/getfile.cgi b/cgi-bin/getfile.cgi
new file mode 100755
index 00000000000..6b113057dcc
--- /dev/null
+++ b/cgi-bin/getfile.cgi
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+
+try:
+
+ import sys, os
+
+ sys.path.append('../lib/py')
+ sys.path.append('../erpnext')
+
+ def getTraceback():
+ import sys, traceback, string
+ type, value, tb = sys.exc_info()
+ body = "Traceback (innermost last):\n"
+ list = traceback.format_tb(tb, None) \
+ + traceback.format_exception_only(type, value)
+ body = body + "%-20s %s" % (string.join(list[:-1], ""), list[-1])
+ return body
+
+ import cgi
+ import webnotes
+ import webnotes.auth
+ import webnotes.utils
+ import webnotes.utils.file_manager
+ import webnotes.db
+ import webnotes.defs
+
+ sys.path.append(webnotes.defs.modules_path)
+
+ form = cgi.FieldStorage()
+ webnotes.form_dict = {}
+
+ for each in form.keys():
+ webnotes.form_dict[each] = form.getvalue(each)
+
+ n = form.getvalue('name')
+
+ # authenticate
+ webnotes.auth.HTTPRequest()
+
+ # get file
+ res = webnotes.utils.file_manager.get_file(n)
+
+ fname = res[0]
+ if hasattr(res[1], 'tostring'):
+ fcontent = res[1].tostring()
+ else:
+ fcontent = res[1]
+
+ if form.getvalue('thumbnail'):
+ tn = webnotes.utils.cint(form.getvalue('thumbnail'))
+ try:
+ from PIL import Image
+ import cStringIO
+
+ fobj = cStringIO.StringIO(fcontent)
+ image = Image.open(fobj)
+ image.thumbnail((tn,tn*2), Image.ANTIALIAS)
+ outfile = cStringIO.StringIO()
+
+ if image.mode != "RGB":
+ image = image.convert("RGB")
+
+ image.save(outfile, 'JPEG')
+ outfile.seek(0)
+ fcontent = outfile.read()
+ except:
+ pass
+
+ import mimetypes
+ print "Content-Type: %s" % (mimetypes.guess_type(fname)[0] or 'application/unknown')
+ print "Content-Disposition: filename="+fname.replace(' ', '_')
+ print "Cache-Control: max-age=3600"
+ print
+ print fcontent
+
+except Exception, e:
+ print "Content-Type: text/html"
+ try:
+ out = {'message':'', 'exc':getTraceback().replace('\n','
')}
+ except:
+ out = {'exc': e}
+ print
+ print str(out)
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 40cdad38f22..9ed756f0235 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
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:34',
'docstatus': 0,
- 'modified': '2011-09-13 17:35:54',
+ 'modified': '2011-09-15 15:04:42',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -143,6 +143,17 @@
'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',
diff --git a/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt b/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt
index 0854802f0d8..e88f45250fd 100644
--- a/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt
+++ b/erpnext/accounts/DocType Mapper/Project-Receivable Voucher/Project-Receivable Voucher.txt
@@ -3,9 +3,9 @@
# These values are common in all dictionaries
{
- 'creation': '2010-09-01 15:48:10',
+ 'creation': '2010-09-01 15:47:59',
'docstatus': 0,
- 'modified': '2010-09-01 14:24:38',
+ 'modified': '2011-09-15 15:04:43',
'modified_by': 'Administrator',
'owner': 'ashwini@webnotestech.com'
},
diff --git a/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt b/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt
index 61ee9b6d649..19491102743 100644
--- a/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt
+++ b/erpnext/accounts/DocType Mapper/Purchase Order-Payable Voucher/Purchase Order-Payable Voucher.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2011-09-13 17:37:09',
+ 'modified': '2011-09-15 15:04:43',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -116,6 +116,17 @@
'validation_logic': 'docstatus =1'
},
+ # Table Mapper Detail
+ {
+ 'doctype': 'Table Mapper Detail',
+ 'from_field': 'po_details',
+ 'from_table': 'PO Detail',
+ 'match_id': 1,
+ 'to_field': 'entries',
+ 'to_table': 'PV Detail',
+ 'validation_logic': 'ifnull(billed_qty,0) < qty'
+ },
+
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
diff --git a/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt b/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt
index b2baa57c62b..94408e7a2b3 100644
--- a/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt
+++ b/erpnext/accounts/DocType Mapper/Purchase Receipt-Payable Voucher/Purchase Receipt-Payable Voucher.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2011-09-13 17:27:32',
+ 'modified': '2011-09-15 15:04:44',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
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 ebbdbcd0b57..630fb1502ab 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
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:36',
'docstatus': 0,
- 'modified': '2011-09-13 17:36:31',
+ 'modified': '2011-09-15 15:04:45',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -145,6 +145,17 @@
'validation_logic': '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': 'docstatus = 1'
+ },
+
# Table Mapper Detail
{
'doctype': 'Table Mapper Detail',
diff --git a/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt b/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt
index 30412182fd3..fe49f4901e8 100644
--- a/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt
+++ b/erpnext/buying/DocType Mapper/Indent-Purchase Order/Indent-Purchase Order.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:34',
'docstatus': 0,
- 'modified': '2009-12-30 16:55:33',
+ 'modified': '2011-09-15 15:04:42',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
diff --git a/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt b/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt
index b3081bfb52d..aed40029e23 100644
--- a/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt
+++ b/erpnext/hr/DocType Mapper/KRA Template-Appraisal/KRA Template-Appraisal.txt
@@ -3,9 +3,9 @@
# These values are common in all dictionaries
{
- 'creation': '2010-09-01 15:48:10',
+ 'creation': '2010-09-01 15:47:59',
'docstatus': 0,
- 'modified': '2010-09-01 14:25:40',
+ 'modified': '2011-09-15 15:04:42',
'modified_by': 'Administrator',
'owner': 'ashwini@webnotestech.com'
},
diff --git a/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt b/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt
index 03318a1c2d3..0a365d10aa6 100644
--- a/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt
+++ b/erpnext/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt
@@ -3,10 +3,10 @@
# These values are common in all dictionaries
{
- 'creation': '2010-12-14 10:23:25',
+ 'creation': '2010-12-14 10:33:11',
'docstatus': 0,
- 'modified': '2011-02-12 18:31:40',
- 'modified_by': 'umair@iwebnotes.com',
+ 'modified': '2011-09-15 15:04:44',
+ 'modified_by': 'Administrator',
'owner': 'harshada@webnotestech.com'
},
diff --git a/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt b/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt
index dfbef85dfcc..7065fa6ecc5 100644
--- a/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt
+++ b/erpnext/production/DocType Mapper/Production Forecast-Production Plan/Production Forecast-Production Plan.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2010-01-27 16:03:20',
+ 'modified': '2011-09-15 15:04:42',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
diff --git a/erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt b/erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt
index 6125d981922..3d6281195d5 100644
--- a/erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt
+++ b/erpnext/production/DocType Mapper/Production Forecast-Production Planning Tool/Production Forecast-Production Planning Tool.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2010-02-12 12:41:03',
+ 'modified': '2011-09-15 15:04:43',
'modified_by': 'Administrator',
'owner': 'jai@webnotestech.com'
},
diff --git a/erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt b/erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt
index 41c517376f5..780b841208d 100644
--- a/erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt
+++ b/erpnext/production/DocType Mapper/Sales Order-Production Plan/Sales Order-Production Plan.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:36',
'docstatus': 0,
- 'modified': '2009-12-21 13:16:59',
+ 'modified': '2011-09-15 15:04:45',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
diff --git a/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt b/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt
index e45c48767d4..da8762deab6 100644
--- a/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt
+++ b/erpnext/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:34',
'docstatus': 0,
- 'modified': '2011-09-13 17:28:37',
+ 'modified': '2011-09-15 15:04:42',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
diff --git a/erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt b/erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt
index 04f70ad94c1..ee8f8b01675 100644
--- a/erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt
+++ b/erpnext/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt
@@ -3,9 +3,9 @@
# These values are common in all dictionaries
{
- 'creation': '2010-09-01 15:48:10',
+ 'creation': '2010-09-01 15:47:59',
'docstatus': 0,
- 'modified': '2010-09-01 14:23:28',
+ 'modified': '2011-09-15 15:04:43',
'modified_by': 'Administrator',
'owner': 'ashwini@webnotestech.com'
},
diff --git a/erpnext/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt b/erpnext/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt
index e1579f93f6e..69c4fe21f1d 100644
--- a/erpnext/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt
+++ b/erpnext/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt
@@ -3,9 +3,9 @@
# These values are common in all dictionaries
{
- 'creation': '2010-09-01 15:48:10',
+ 'creation': '2010-09-01 15:47:59',
'docstatus': 0,
- 'modified': '2010-09-01 14:25:08',
+ 'modified': '2011-09-15 15:04:43',
'modified_by': 'Administrator',
'owner': 'harshada@webnotestech.com'
},
diff --git a/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
index f561c157d97..3e65b2eaefd 100644
--- a/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
+++ b/erpnext/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
@@ -5,7 +5,7 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2011-09-13 17:26:55',
+ 'modified': '2011-09-15 15:04:43',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
diff --git a/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt b/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt
index 74437311e04..61b33ee9506 100755
--- a/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt
+++ b/erpnext/stock/DocType Mapper/Receivable Voucher-Delivery Note/Receivable Voucher-Delivery Note.txt
@@ -3,9 +3,9 @@
# These values are common in all dictionaries
{
- 'creation': '2010-12-15 08:39:22',
+ 'creation': '2010-12-14 17:56:41',
'docstatus': 0,
- 'modified': '2011-09-13 17:26:01',
+ 'modified': '2011-09-15 15:04:44',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
@@ -107,6 +107,15 @@
'to_field': 'naming_series'
},
+ # Field Mapper Detail
+ {
+ 'doctype': 'Field Mapper Detail',
+ 'from_field': 'customer_address',
+ 'map': 'Yes',
+ 'match_id': 0,
+ 'to_field': 'delivery_address'
+ },
+
# Field Mapper Detail
{
'doctype': 'Field Mapper Detail',
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index 65b86867b68..3b71bd00342 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -40,7 +40,7 @@ class DocType:
# update valuation for post dated entry
- if actual_qty:
+ if actual_qty and serial_no:
# check actual qty with total number of serial no
self.check_qty_with_serial_no()
diff --git a/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt b/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt
index 75244dea9d0..55060ea75f9 100644
--- a/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt
+++ b/erpnext/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt
@@ -5,8 +5,8 @@
{
'creation': '2010-08-08 17:09:34',
'docstatus': 0,
- 'modified': '2011-05-18 13:37:43',
- 'modified_by': 'umair@iwebnotes.com',
+ 'modified': '2011-09-15 15:04:41',
+ 'modified_by': 'Administrator',
'owner': 'ashwini@webnotestech.com'
},
diff --git a/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt b/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt
index e56c4bdf976..ccd0e60c9b0 100644
--- a/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt
+++ b/erpnext/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt
@@ -5,8 +5,8 @@
{
'creation': '2010-08-08 17:09:35',
'docstatus': 0,
- 'modified': '2011-05-18 11:05:26',
- 'modified_by': 'umair@iwebnotes.com',
+ 'modified': '2011-09-15 15:04:44',
+ 'modified_by': 'Administrator',
'owner': 'Administrator'
},
diff --git a/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt b/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt
index 26a48f8a670..e4bd45bd17b 100644
--- a/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt
+++ b/erpnext/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt
@@ -5,8 +5,8 @@
{
'creation': '2010-08-08 17:09:36',
'docstatus': 0,
- 'modified': '2011-05-18 13:35:55',
- 'modified_by': 'umair@iwebnotes.com',
+ 'modified': '2011-09-15 15:04:45',
+ 'modified_by': 'Administrator',
'owner': 'ashwini@webnotestech.com'
},
diff --git a/index.cgi b/index.cgi
index da52ef11864..3d61c560521 100755
--- a/index.cgi
+++ b/index.cgi
@@ -9,7 +9,6 @@ sys.path.append('lib/py')
sys.path.append('erpnext')
import webnotes
-import webnotes.defs
webnotes.form = cgi.FieldStorage()
diff --git a/index.html b/index.html
index e28f0069849..5d45b5f795a 100644
--- a/index.html
+++ b/index.html
@@ -3,7 +3,7 @@