Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt b/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt
deleted file mode 100644
index dd5705d..0000000
--- a/accounts/DocType Mapper/Project-Sales Invoice/Project-Sales Invoice.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-[
- {
- "owner": "ashwini@webnotestech.com",
- "docstatus": 0,
- "creation": "2010-09-01 15:47:59",
- "modified_by": "Administrator",
- "modified": "2012-04-03 12:49:50"
- },
- {
- "match_id": 0,
- "parent": "Project-Sales Invoice",
- "name": "__common__",
- "doctype": "Table Mapper Detail",
- "parenttype": "DocType Mapper",
- "from_table": "Project",
- "to_table": "Sales Invoice",
- "validation_logic": "name is not null",
- "parentfield": "table_mapper_details"
- },
- {
- "map": "Yes",
- "match_id": 0,
- "parent": "Project-Sales Invoice",
- "name": "__common__",
- "to_field": "customer",
- "doctype": "Field Mapper Detail",
- "parenttype": "DocType Mapper",
- "checking_operator": "=",
- "from_field": "customer",
- "parentfield": "field_mapper_details"
- },
- {
- "name": "__common__",
- "to_doctype": "Sales Invoice",
- "module": "Accounts",
- "doctype": "DocType Mapper",
- "from_doctype": "Project"
- },
- {
- "name": "Project-Sales Invoice",
- "doctype": "DocType Mapper"
- },
- {
- "doctype": "Field Mapper Detail"
- },
- {
- "doctype": "Table Mapper Detail"
- }
-]
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 7c9b477..86dc3a5 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -264,13 +264,6 @@
}
-//---- get customer details ----------------------------
-cur_frm.cscript.project_name = function(doc,cdt,cdn){
- $c_obj(make_doclist(doc.doctype, doc.name),'pull_project_customer','', function(r,rt){
- refresh_many(['customer', 'customer_name','customer_address', 'territory']);
- });
-}
-
//Set debit and credit to zero on adding new row
//----------------------------------------------
cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index 486bc0a..5042f53 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -320,13 +320,6 @@
def get_advances(self):
self.doclist = get_obj('GL Control').get_advances(self, self.doc.debit_to, 'Sales Invoice Advance', 'advance_adjustment_details', 'credit')
-
- def pull_project_customer(self):
- res = webnotes.conn.sql("select customer from `tabProject` where name = '%s'" %
- self.doc.project_name)
- if res and res[0][0]:
- get_obj('DocType Mapper', 'Project-Sales Invoice').dt_map('Project', 'Sales Invoice', self.doc.project_name, self.doc, self.doclist, "[['Project', 'Sales Invoice']]")
-
def get_company_abbr(self):
return webnotes.conn.sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0]
diff --git a/patches/december_2012/remove_project_mapper.py b/patches/december_2012/remove_project_mapper.py
new file mode 100644
index 0000000..39aae6b
--- /dev/null
+++ b/patches/december_2012/remove_project_mapper.py
@@ -0,0 +1,6 @@
+import webnotes
+
+def execute():
+ from webnotes.model import delete_doc
+ for d in ["Project-Sales Order", "Project-Delivery Note", "Project-Sales Invoice"]:
+ delete_doc("DocType Mapper", d)
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 2ca4822..7a347ff 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -562,4 +562,8 @@
'patch_module': 'patches.december_2012',
'patch_file': 'delete_form16_print_format',
},
+ {
+ 'patch_module': 'patches.december_2012',
+ 'patch_file': 'remove_project_mapper',
+ },
]
\ No newline at end of file
diff --git a/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt b/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt
deleted file mode 100644
index 0d4a5a3..0000000
--- a/selling/DocType Mapper/Project-Sales Order/Project-Sales Order.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-[
- {
- "owner": "ashwini@webnotestech.com",
- "docstatus": 0,
- "creation": "2010-09-01 15:47:59",
- "modified_by": "Administrator",
- "modified": "2011-09-15 15:04:43"
- },
- {
- "match_id": 0,
- "parent": "Project-Sales Order",
- "name": "__common__",
- "doctype": "Table Mapper Detail",
- "parenttype": "DocType Mapper",
- "from_table": "Project",
- "to_table": "Sales Order",
- "validation_logic": "name is not null",
- "parentfield": "table_mapper_details"
- },
- {
- "map": "Yes",
- "match_id": 0,
- "parent": "Project-Sales Order",
- "name": "__common__",
- "to_field": "customer",
- "doctype": "Field Mapper Detail",
- "parenttype": "DocType Mapper",
- "checking_operator": "=",
- "from_field": "customer",
- "parentfield": "field_mapper_details"
- },
- {
- "name": "__common__",
- "to_doctype": "Sales Order",
- "module": "Selling",
- "doctype": "DocType Mapper",
- "from_doctype": "Project"
- },
- {
- "name": "Project-Sales Order",
- "doctype": "DocType Mapper"
- },
- {
- "doctype": "Field Mapper Detail"
- },
- {
- "doctype": "Table Mapper Detail"
- }
-]
\ No newline at end of file
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index 17c8d09..a3b71b4 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -178,19 +178,11 @@
var cond = '';
if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
return repl('SELECT `tabProject`.name FROM `tabProject` \
- WHERE `tabProject`.status not in ("Completed", "Cancelled") \
- AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+ WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+ AND %(cond)s `tabProject`.name LIKE "%s" \
+ ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
}
-//---- get customer details ----------------------------
-cur_frm.cscript.project_name = function(doc,cdt,cdn){
- $c_obj(make_doclist(doc.doctype, doc.name),'pull_project_customer','', function(r,rt){
- refresh_many(['customer','customer_name', 'customer_address', 'contact_person', 'territory', 'contact_no', 'email_id', 'customer_group']);
- });
-
-}
-
-
// *************** Customized link query for QUOTATION *****************************
cur_frm.fields_dict['quotation_no'].get_query = function(doc) {
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index f024efc..e0ac2ff 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -39,10 +39,6 @@
self.partner_tname = 'Partner Target Detail'
self.territory_tname = 'Territory Target Detail'
-# DOCTYPE TRIGGER FUNCTIONS
-# =============================
- # Pull Quotation Items
- # -----------------------
def pull_quotation_details(self):
self.doclist = self.doc.clear_table(self.doclist, 'other_charges')
self.doclist = self.doc.clear_table(self.doclist, 'sales_order_details')
@@ -55,29 +51,12 @@
return cstr(self.doc.quotation_no)
- #pull project customer
- #-------------------------
- def pull_project_customer(self):
- res = sql("select customer from `tabProject` where name = '%s'"%self.doc.project_name)
- if res and res[0][0]:
- get_obj('DocType Mapper', 'Project-Sales Order').dt_map('Project', 'Sales Order', self.doc.project_name, self.doc, self.doclist, "[['Project', 'Sales Order']]")
-
-
- # Get contact person details based on customer selected
- # ------------------------------------------------------
def get_contact_details(self):
get_obj('Sales Common').get_contact_details(self,0)
- # Get Commission rate of Sales Partner
- # -------------------------------------
def get_comm_rate(self, sales_partner):
return get_obj('Sales Common').get_comm_rate(sales_partner, self)
-
-# SALES ORDER DETAILS TRIGGER FUNCTIONS
-# ================================================================================
- # Get Item Details
- # ----------------
def get_item_details(self, args=None):
import json
args = args and json.loads(args) or {}
@@ -94,45 +73,24 @@
if not doc.fields.get(r):
doc.fields[r] = ret[r]
-
- # Re-calculates Basic Rate & amount based on Price List Selected
- # --------------------------------------------------------------
def get_adj_percent(self, arg=''):
get_obj('Sales Common').get_adj_percent(self)
-
-
- # Get projected qty of item based on warehouse selected
- # -----------------------------------------------------
def get_available_qty(self,args):
return get_obj('Sales Common').get_available_qty(eval(args))
-# OTHER CHARGES TRIGGER FUNCTIONS
-# ====================================================================================
-
- # Get Tax rate if account type is TAX
- # ------------------------------------
def get_rate(self,arg):
return get_obj('Sales Common').get_rate(arg)
- # Load Default Charges
- # ----------------------------------------------------------
def load_default_taxes(self):
self.doclist = get_obj('Sales Common').load_default_taxes(self)
- # Pull details from other charges master (Get Sales Taxes and Charges Master)
- # ----------------------------------------------------------
def get_other_charges(self):
self.doclist = get_obj('Sales Common').get_other_charges(self)
-
-# GET TERMS & CONDITIONS
-# =====================================================================================
def get_tc_details(self):
return get_obj('Sales Common').get_tc_details(self)
-#check if maintenance schedule already generated
-#============================================
def check_maintenance_schedule(self):
nm = sql("select t1.name from `tabMaintenance Schedule` t1, `tabMaintenance Schedule Item` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1", self.doc.name)
nm = nm and nm[0][0] or ''
@@ -140,8 +98,6 @@
if not nm:
return 'No'
-#check if maintenance visit already generated
-#============================================
def check_maintenance_visit(self):
nm = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent=t1.name and t2.prevdoc_docname=%s and t1.docstatus=1 and t1.completion_status='Fully Completed'", self.doc.name)
nm = nm and nm[0][0] or ''
@@ -149,20 +105,12 @@
if not nm:
return 'No'
-# VALIDATE
-# =====================================================================================
- # Fiscal Year Validation
- # ----------------------
def validate_fiscal_year(self):
get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.transaction_date,'Sales Order Date')
- # Validate values with reference document
- #----------------------------------------
def validate_reference_value(self):
get_obj('DocType Mapper', 'Quotation-Sales Order', with_children = 1).validate_reference_value(self, self.doc.name)
- # Validate Mandatory
- # -------------------
def validate_mandatory(self):
# validate transaction date v/s delivery date
if self.doc.delivery_date:
@@ -174,9 +122,6 @@
msgprint("Please Enter Amendment Date")
raise Exception
-
- # Validate P.O Date
- # ------------------
def validate_po(self):
# validate p.o date v/s delivery date
if self.doc.po_date and self.doc.delivery_date and getdate(self.doc.po_date) > getdate(self.doc.delivery_date):
@@ -191,8 +136,6 @@
msgprint("""Another Sales Order (%s) exists against same PO No and Customer.
Please be sure, you are not making duplicate entry.""" % so[0][0])
- # Validations of Details Table
- # -----------------------------
def validate_for_items(self):
check_list, flag = [], 0
chk_dupl_itm = []
@@ -237,8 +180,6 @@
if getlist(self.doclist, 'sales_order_details') and self.doc.quotation_no and flag == 0:
msgprint("There are no items of the quotation selected", raise_exception=1)
- # validate sales/ maintenance quotation against order type
- #------------------------------------------------------------------
def validate_sales_mntc_quotation(self):
for d in getlist(self.doclist, 'sales_order_details'):
if d.prevdoc_docname:
@@ -255,18 +196,13 @@
self.validate_sales_mntc_quotation()
- #check for does customer belong to same project as entered..
- #-------------------------------------------------------------------------------------------------
def validate_proj_cust(self):
if self.doc.project_name and self.doc.customer_name:
res = sql("select name from `tabProject` where name = '%s' and (customer = '%s' or ifnull(customer,'')='')"%(self.doc.project_name, self.doc.customer))
if not res:
msgprint("Customer - %s does not belong to project - %s. \n\nIf you want to use project for multiple customers then please make customer details blank in project - %s."%(self.doc.customer,self.doc.project_name,self.doc.project_name))
raise Exception
-
-
- # Validate
- # ---------
+
def validate(self):
self.validate_fiscal_year()
self.validate_order_type()
@@ -295,11 +231,6 @@
if not self.doc.billing_status: self.doc.billing_status = 'Not Billed'
if not self.doc.delivery_status: self.doc.delivery_status = 'Not Delivered'
-
-# ON SUBMIT
-# ===============================================================================================
- # Checks Quotation Status
- # ------------------------
def check_prev_docstatus(self):
for d in getlist(self.doclist, 'sales_order_details'):
cancel_quo = sql("select name from `tabQuotation` where docstatus = 2 and name = '%s'" % d.prevdoc_docname)
@@ -312,8 +243,6 @@
if enq:
sql("update `tabOpportunity` set status = %s where name=%s",(flag,enq[0][0]))
- #update status of quotation, enquiry
- #----------------------------------------
def update_prevdoc_status(self, flag):
for d in getlist(self.doclist, 'sales_order_details'):
if d.prevdoc_docname:
@@ -354,8 +283,6 @@
webnotes.conn.set(self.doc, 'status', 'Cancelled')
- # does not allow to cancel document if DN or RV made against it is SUBMITTED
- # ----------------------------------------------------------------------------
def check_nextdoc_docstatus(self):
# Checks Delivery Note
submit_dn = sql("select t1.name from `tabDelivery Note` t1,`tabDelivery Note Item` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name))
diff --git a/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt b/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt
deleted file mode 100644
index 6bc90f4..0000000
--- a/stock/DocType Mapper/Project-Delivery Note/Project-Delivery Note.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-[
- {
- "owner": "harshada@webnotestech.com",
- "docstatus": 0,
- "creation": "2010-09-01 15:47:59",
- "modified_by": "Administrator",
- "modified": "2011-09-15 15:04:43"
- },
- {
- "match_id": 0,
- "parent": "Project-Delivery Note",
- "name": "__common__",
- "doctype": "Table Mapper Detail",
- "parenttype": "DocType Mapper",
- "from_table": "Project",
- "to_table": "Delivery Note",
- "validation_logic": "name is not null",
- "parentfield": "table_mapper_details"
- },
- {
- "map": "Yes",
- "match_id": 0,
- "parent": "Project-Delivery Note",
- "name": "__common__",
- "to_field": "customer",
- "doctype": "Field Mapper Detail",
- "parenttype": "DocType Mapper",
- "checking_operator": "=",
- "from_field": "customer",
- "parentfield": "field_mapper_details"
- },
- {
- "name": "__common__",
- "to_doctype": "Delivery Note",
- "module": "Stock",
- "doctype": "DocType Mapper",
- "from_doctype": "Project"
- },
- {
- "name": "Project-Delivery Note",
- "doctype": "DocType Mapper"
- },
- {
- "doctype": "Field Mapper Detail"
- },
- {
- "doctype": "Table Mapper Detail"
- }
-]
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index ef22437..af4d91e 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -78,13 +78,6 @@
def get_tc_details(self):
return get_obj('Sales Common').get_tc_details(self)
-
- def pull_project_customer(self):
- res = sql("select customer from `tabProject` where name = '%s'" % self.doc.project_name)
- if res and res[0][0]:
- get_obj('DocType Mapper', 'Project-Delivery Note').dt_map('Project', 'Delivery Note', self.doc.project_name, self.doc, self.doclist, "[['Project', 'Delivery Note']]")
-
-
def get_item_details(self, args=None):
import json
args = args and json.loads(args) or {}