Merge branch 'master' of github.com:webnotes/erpnext
This commit is contained in:
commit
b420e88955
@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
@ -264,13 +264,6 @@ cur_frm.cscript.write_off_amount = function(doc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---- 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
|
//Set debit and credit to zero on adding new row
|
||||||
//----------------------------------------------
|
//----------------------------------------------
|
||||||
cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
|
cur_frm.fields_dict['entries'].grid.onrowadd = function(doc, cdt, cdn){
|
||||||
|
@ -320,13 +320,6 @@ class DocType(TransactionBase):
|
|||||||
def get_advances(self):
|
def get_advances(self):
|
||||||
self.doclist = get_obj('GL Control').get_advances(self, self.doc.debit_to, 'Sales Invoice Advance', 'advance_adjustment_details', 'credit')
|
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):
|
def get_company_abbr(self):
|
||||||
return webnotes.conn.sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0]
|
return webnotes.conn.sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0]
|
||||||
|
|
||||||
|
6
patches/december_2012/remove_project_mapper.py
Normal file
6
patches/december_2012/remove_project_mapper.py
Normal file
@ -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)
|
@ -562,4 +562,8 @@ patch_list = [
|
|||||||
'patch_module': 'patches.december_2012',
|
'patch_module': 'patches.december_2012',
|
||||||
'patch_file': 'delete_form16_print_format',
|
'patch_file': 'delete_form16_print_format',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'patch_module': 'patches.december_2012',
|
||||||
|
'patch_file': 'remove_project_mapper',
|
||||||
|
},
|
||||||
]
|
]
|
@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
@ -178,19 +178,11 @@ cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
|
|||||||
var cond = '';
|
var cond = '';
|
||||||
if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
|
if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
|
||||||
return repl('SELECT `tabProject`.name FROM `tabProject` \
|
return repl('SELECT `tabProject`.name FROM `tabProject` \
|
||||||
WHERE `tabProject`.status not in ("Completed", "Cancelled") \
|
WHERE `tabProject`.status not in ("Completed", "Cancelled") \
|
||||||
AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
|
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 *****************************
|
// *************** Customized link query for QUOTATION *****************************
|
||||||
cur_frm.fields_dict['quotation_no'].get_query = function(doc) {
|
cur_frm.fields_dict['quotation_no'].get_query = function(doc) {
|
||||||
|
@ -39,10 +39,6 @@ class DocType(TransactionBase):
|
|||||||
self.partner_tname = 'Partner Target Detail'
|
self.partner_tname = 'Partner Target Detail'
|
||||||
self.territory_tname = 'Territory Target Detail'
|
self.territory_tname = 'Territory Target Detail'
|
||||||
|
|
||||||
# DOCTYPE TRIGGER FUNCTIONS
|
|
||||||
# =============================
|
|
||||||
# Pull Quotation Items
|
|
||||||
# -----------------------
|
|
||||||
def pull_quotation_details(self):
|
def pull_quotation_details(self):
|
||||||
self.doclist = self.doc.clear_table(self.doclist, 'other_charges')
|
self.doclist = self.doc.clear_table(self.doclist, 'other_charges')
|
||||||
self.doclist = self.doc.clear_table(self.doclist, 'sales_order_details')
|
self.doclist = self.doc.clear_table(self.doclist, 'sales_order_details')
|
||||||
@ -55,29 +51,12 @@ class DocType(TransactionBase):
|
|||||||
|
|
||||||
return cstr(self.doc.quotation_no)
|
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):
|
def get_contact_details(self):
|
||||||
get_obj('Sales Common').get_contact_details(self,0)
|
get_obj('Sales Common').get_contact_details(self,0)
|
||||||
|
|
||||||
# Get Commission rate of Sales Partner
|
|
||||||
# -------------------------------------
|
|
||||||
def get_comm_rate(self, sales_partner):
|
def get_comm_rate(self, sales_partner):
|
||||||
return get_obj('Sales Common').get_comm_rate(sales_partner, self)
|
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):
|
def get_item_details(self, args=None):
|
||||||
import json
|
import json
|
||||||
args = args and json.loads(args) or {}
|
args = args and json.loads(args) or {}
|
||||||
@ -94,45 +73,24 @@ class DocType(TransactionBase):
|
|||||||
if not doc.fields.get(r):
|
if not doc.fields.get(r):
|
||||||
doc.fields[r] = ret[r]
|
doc.fields[r] = ret[r]
|
||||||
|
|
||||||
|
|
||||||
# Re-calculates Basic Rate & amount based on Price List Selected
|
|
||||||
# --------------------------------------------------------------
|
|
||||||
def get_adj_percent(self, arg=''):
|
def get_adj_percent(self, arg=''):
|
||||||
get_obj('Sales Common').get_adj_percent(self)
|
get_obj('Sales Common').get_adj_percent(self)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Get projected qty of item based on warehouse selected
|
|
||||||
# -----------------------------------------------------
|
|
||||||
def get_available_qty(self,args):
|
def get_available_qty(self,args):
|
||||||
return get_obj('Sales Common').get_available_qty(eval(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):
|
def get_rate(self,arg):
|
||||||
return get_obj('Sales Common').get_rate(arg)
|
return get_obj('Sales Common').get_rate(arg)
|
||||||
|
|
||||||
# Load Default Charges
|
|
||||||
# ----------------------------------------------------------
|
|
||||||
def load_default_taxes(self):
|
def load_default_taxes(self):
|
||||||
self.doclist = get_obj('Sales Common').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):
|
def get_other_charges(self):
|
||||||
self.doclist = get_obj('Sales Common').get_other_charges(self)
|
self.doclist = get_obj('Sales Common').get_other_charges(self)
|
||||||
|
|
||||||
|
|
||||||
# GET TERMS & CONDITIONS
|
|
||||||
# =====================================================================================
|
|
||||||
def get_tc_details(self):
|
def get_tc_details(self):
|
||||||
return get_obj('Sales Common').get_tc_details(self)
|
return get_obj('Sales Common').get_tc_details(self)
|
||||||
|
|
||||||
#check if maintenance schedule already generated
|
|
||||||
#============================================
|
|
||||||
def check_maintenance_schedule(self):
|
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 = 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 ''
|
nm = nm and nm[0][0] or ''
|
||||||
@ -140,8 +98,6 @@ class DocType(TransactionBase):
|
|||||||
if not nm:
|
if not nm:
|
||||||
return 'No'
|
return 'No'
|
||||||
|
|
||||||
#check if maintenance visit already generated
|
|
||||||
#============================================
|
|
||||||
def check_maintenance_visit(self):
|
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 = 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 ''
|
nm = nm and nm[0][0] or ''
|
||||||
@ -149,20 +105,12 @@ class DocType(TransactionBase):
|
|||||||
if not nm:
|
if not nm:
|
||||||
return 'No'
|
return 'No'
|
||||||
|
|
||||||
# VALIDATE
|
|
||||||
# =====================================================================================
|
|
||||||
# Fiscal Year Validation
|
|
||||||
# ----------------------
|
|
||||||
def validate_fiscal_year(self):
|
def validate_fiscal_year(self):
|
||||||
get_obj('Sales Common').validate_fiscal_year(self.doc.fiscal_year,self.doc.transaction_date,'Sales Order Date')
|
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):
|
def validate_reference_value(self):
|
||||||
get_obj('DocType Mapper', 'Quotation-Sales Order', with_children = 1).validate_reference_value(self, self.doc.name)
|
get_obj('DocType Mapper', 'Quotation-Sales Order', with_children = 1).validate_reference_value(self, self.doc.name)
|
||||||
|
|
||||||
# Validate Mandatory
|
|
||||||
# -------------------
|
|
||||||
def validate_mandatory(self):
|
def validate_mandatory(self):
|
||||||
# validate transaction date v/s delivery date
|
# validate transaction date v/s delivery date
|
||||||
if self.doc.delivery_date:
|
if self.doc.delivery_date:
|
||||||
@ -174,9 +122,6 @@ class DocType(TransactionBase):
|
|||||||
msgprint("Please Enter Amendment Date")
|
msgprint("Please Enter Amendment Date")
|
||||||
raise Exception
|
raise Exception
|
||||||
|
|
||||||
|
|
||||||
# Validate P.O Date
|
|
||||||
# ------------------
|
|
||||||
def validate_po(self):
|
def validate_po(self):
|
||||||
# validate p.o date v/s delivery date
|
# 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):
|
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 @@ class DocType(TransactionBase):
|
|||||||
msgprint("""Another Sales Order (%s) exists against same PO No and Customer.
|
msgprint("""Another Sales Order (%s) exists against same PO No and Customer.
|
||||||
Please be sure, you are not making duplicate entry.""" % so[0][0])
|
Please be sure, you are not making duplicate entry.""" % so[0][0])
|
||||||
|
|
||||||
# Validations of Details Table
|
|
||||||
# -----------------------------
|
|
||||||
def validate_for_items(self):
|
def validate_for_items(self):
|
||||||
check_list, flag = [], 0
|
check_list, flag = [], 0
|
||||||
chk_dupl_itm = []
|
chk_dupl_itm = []
|
||||||
@ -237,8 +180,6 @@ class DocType(TransactionBase):
|
|||||||
if getlist(self.doclist, 'sales_order_details') and self.doc.quotation_no and flag == 0:
|
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)
|
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):
|
def validate_sales_mntc_quotation(self):
|
||||||
for d in getlist(self.doclist, 'sales_order_details'):
|
for d in getlist(self.doclist, 'sales_order_details'):
|
||||||
if d.prevdoc_docname:
|
if d.prevdoc_docname:
|
||||||
@ -255,18 +196,13 @@ class DocType(TransactionBase):
|
|||||||
|
|
||||||
self.validate_sales_mntc_quotation()
|
self.validate_sales_mntc_quotation()
|
||||||
|
|
||||||
#check for does customer belong to same project as entered..
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
def validate_proj_cust(self):
|
def validate_proj_cust(self):
|
||||||
if self.doc.project_name and self.doc.customer_name:
|
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))
|
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:
|
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))
|
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
|
raise Exception
|
||||||
|
|
||||||
|
|
||||||
# Validate
|
|
||||||
# ---------
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_fiscal_year()
|
self.validate_fiscal_year()
|
||||||
self.validate_order_type()
|
self.validate_order_type()
|
||||||
@ -295,11 +231,6 @@ class DocType(TransactionBase):
|
|||||||
if not self.doc.billing_status: self.doc.billing_status = 'Not Billed'
|
if not self.doc.billing_status: self.doc.billing_status = 'Not Billed'
|
||||||
if not self.doc.delivery_status: self.doc.delivery_status = 'Not Delivered'
|
if not self.doc.delivery_status: self.doc.delivery_status = 'Not Delivered'
|
||||||
|
|
||||||
|
|
||||||
# ON SUBMIT
|
|
||||||
# ===============================================================================================
|
|
||||||
# Checks Quotation Status
|
|
||||||
# ------------------------
|
|
||||||
def check_prev_docstatus(self):
|
def check_prev_docstatus(self):
|
||||||
for d in getlist(self.doclist, 'sales_order_details'):
|
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)
|
cancel_quo = sql("select name from `tabQuotation` where docstatus = 2 and name = '%s'" % d.prevdoc_docname)
|
||||||
@ -312,8 +243,6 @@ class DocType(TransactionBase):
|
|||||||
if enq:
|
if enq:
|
||||||
sql("update `tabOpportunity` set status = %s where name=%s",(flag,enq[0][0]))
|
sql("update `tabOpportunity` set status = %s where name=%s",(flag,enq[0][0]))
|
||||||
|
|
||||||
#update status of quotation, enquiry
|
|
||||||
#----------------------------------------
|
|
||||||
def update_prevdoc_status(self, flag):
|
def update_prevdoc_status(self, flag):
|
||||||
for d in getlist(self.doclist, 'sales_order_details'):
|
for d in getlist(self.doclist, 'sales_order_details'):
|
||||||
if d.prevdoc_docname:
|
if d.prevdoc_docname:
|
||||||
@ -354,8 +283,6 @@ class DocType(TransactionBase):
|
|||||||
|
|
||||||
webnotes.conn.set(self.doc, 'status', 'Cancelled')
|
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):
|
def check_nextdoc_docstatus(self):
|
||||||
# Checks Delivery Note
|
# 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))
|
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))
|
||||||
|
@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
@ -78,13 +78,6 @@ class DocType(TransactionBase):
|
|||||||
def get_tc_details(self):
|
def get_tc_details(self):
|
||||||
return get_obj('Sales Common').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):
|
def get_item_details(self, args=None):
|
||||||
import json
|
import json
|
||||||
args = args and json.loads(args) or {}
|
args = args and json.loads(args) or {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user