fixes related to --> clear locals and then sync locals when whole doclist is passed
This commit is contained in:
parent
815ad3fa28
commit
8ae5ba9abf
@ -44,7 +44,7 @@ class DocType:
|
||||
|
||||
dl = sql("select t1.name, t1.cheque_no, t1.cheque_date, t2.debit, t2.credit, t1.posting_date, t2.against_account from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 where t2.parent = t1.name and t2.account = %s and (clearance_date is null or clearance_date = '0000-00-00' or clearance_date = '') and (t1.cheque_no is not null or t1.cheque_no != '') and t1.posting_date >= %s and t1.posting_date <= %s and t1.docstatus=1", (self.doc.bank_account, self.doc.from_date, self.doc.to_date))
|
||||
|
||||
self.doc.clear_table(self.doclist, 'entries')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'entries')
|
||||
self.doc.total_amount = 0.0
|
||||
|
||||
for d in dl:
|
||||
|
@ -20,6 +20,6 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){
|
||||
refresh_field('budget_distribution_details');
|
||||
}
|
||||
|
||||
$c('runserverobj',args={'method' : 'get_months', 'docs' : compress_doclist([doc])},callback1);
|
||||
$c('runserverobj',args={'method' : 'get_months', 'docs' : compress_doclist(make_doclist(doc.doctype, doc.name))},callback1);
|
||||
}
|
||||
}
|
@ -77,7 +77,7 @@ class DocType(TransactionBase):
|
||||
# Get TDS Return acknowledgement
|
||||
#-------------------------------
|
||||
def get_return_ack_details(self):
|
||||
self.doc.clear_table(self.doclist, 'form_16A_ack_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'form_16A_ack_details')
|
||||
if not (self.doc.from_date and self.doc.to_date):
|
||||
msgprint("Please enter From Date, To Date")
|
||||
else:
|
||||
@ -90,7 +90,7 @@ class DocType(TransactionBase):
|
||||
# Get tds payment details
|
||||
#-------------------------------
|
||||
def get_tds(self):
|
||||
self.doc.clear_table(self.doclist,'form_16A_tax_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist,'form_16A_tax_details')
|
||||
import datetime
|
||||
if self.doc.from_date and self.doc.to_date and self.doc.tds_category:
|
||||
tot=0.0
|
||||
|
@ -289,7 +289,7 @@ class DocType:
|
||||
def get_advances(self, obj, account_head, table_name,table_field_name, dr_or_cr):
|
||||
jv_detail = webnotes.conn.sql("select t1.name, t1.remark, t2.%s, t2.name, t1.ded_amount from `tabJournal Voucher` t1, `tabJournal Voucher Detail` t2 where t1.name = t2.parent and (t2.against_voucher is null or t2.against_voucher = '') and (t2.against_invoice is null or t2.against_invoice = '') and (t2.against_jv is null or t2.against_jv = '') and t2.account = '%s' and t2.is_advance = 'Yes' and t1.docstatus = 1 order by t1.voucher_date " % (dr_or_cr,account_head))
|
||||
# clear advance table
|
||||
obj.doc.clear_table(obj.doclist,table_field_name)
|
||||
obj.doclist = obj.doc.clear_table(obj.doclist,table_field_name)
|
||||
# Create advance table
|
||||
for d in jv_detail:
|
||||
add = addchild(obj.doc, table_field_name, table_name, 1, obj.doclist)
|
||||
@ -300,6 +300,8 @@ class DocType:
|
||||
add.allocate_amount = 0
|
||||
if table_name == 'Purchase Invoice Advance':
|
||||
add.tds_amount = flt(d[4])
|
||||
|
||||
return obj.doclist
|
||||
|
||||
# Clear rows which is not adjusted
|
||||
#-------------------------------------
|
||||
|
@ -378,7 +378,7 @@ class DocType:
|
||||
# get outstanding invoices
|
||||
# -------------------------
|
||||
def get_outstanding_invoices(self):
|
||||
self.doc.clear_table(self.doclist, 'entries')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'entries')
|
||||
total = 0
|
||||
for d in self.get_values():
|
||||
total += flt(d[2])
|
||||
|
@ -73,7 +73,7 @@ class DocType:
|
||||
Payment entry will be decided based on account type (Dr/Cr)
|
||||
"""
|
||||
|
||||
self.doc.clear_table(self.doclist, 'ir_payment_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'ir_payment_details')
|
||||
gle = self.get_gl_entries()
|
||||
self.create_payment_table(gle)
|
||||
|
||||
|
@ -170,7 +170,7 @@ class DocType(TransactionBase):
|
||||
# Advance Allocation
|
||||
# -------------------
|
||||
def get_advances(self):
|
||||
get_obj('GL Control').get_advances( self, self.doc.credit_to, 'Purchase Invoice Advance','advance_allocation_details','debit')
|
||||
self.doclist = get_obj('GL Control').get_advances(self, self.doc.credit_to, 'Purchase Invoice Advance','advance_allocation_details','debit')
|
||||
|
||||
|
||||
# ============= OTHER CHARGES ====================
|
||||
@ -183,7 +183,7 @@ class DocType(TransactionBase):
|
||||
# Get Purchase Taxes and Charges Master
|
||||
# -----------------------------------------------------------
|
||||
def get_purchase_tax_details(self):
|
||||
return get_obj('Purchase Common').get_purchase_tax_details(self)
|
||||
self.doclist = get_obj('Purchase Common').get_purchase_tax_details(self)
|
||||
|
||||
|
||||
def get_rate1(self,acc):
|
||||
|
@ -140,13 +140,13 @@ class DocType(TransactionBase):
|
||||
# Delivery Note
|
||||
if self.doc.delivery_note_main:
|
||||
self.validate_prev_docname('delivery note')
|
||||
self.doc.clear_table(self.doclist,'other_charges')
|
||||
self.doclist = self.doc.clear_table(self.doclist,'other_charges')
|
||||
self.doclist = get_obj('DocType Mapper', 'Delivery Note-Sales Invoice').dt_map('Delivery Note', 'Sales Invoice', self.doc.delivery_note_main, self.doc, self.doclist, "[['Delivery Note', 'Sales Invoice'],['Delivery Note Item', 'Sales Invoice Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]")
|
||||
self.get_income_account('entries')
|
||||
# Sales Order
|
||||
elif self.doc.sales_order_main:
|
||||
self.validate_prev_docname('sales order')
|
||||
self.doc.clear_table(self.doclist,'other_charges')
|
||||
self.doclist = self.doc.clear_table(self.doclist,'other_charges')
|
||||
get_obj('DocType Mapper', 'Sales Order-Sales Invoice').dt_map('Sales Order', 'Sales Invoice', self.doc.sales_order_main, self.doc, self.doclist, "[['Sales Order', 'Sales Invoice'],['Sales Order Item', 'Sales Invoice Item'],['Sales Taxes and Charges','Sales Taxes and Charges'], ['Sales Team', 'Sales Team']]")
|
||||
self.get_income_account('entries')
|
||||
|
||||
@ -240,18 +240,17 @@ class DocType(TransactionBase):
|
||||
# Load Default Charges
|
||||
# ----------------------------------------------------------
|
||||
def load_default_taxes(self):
|
||||
return get_obj('Sales Common').load_default_taxes(self)
|
||||
self.doclist = get_obj('Sales Common').load_default_taxes(self)
|
||||
|
||||
# Get Sales Taxes and Charges Master Details
|
||||
# --------------------------
|
||||
def get_other_charges(self):
|
||||
return get_obj('Sales Common').get_other_charges(self)
|
||||
|
||||
self.doclist = get_obj('Sales Common').get_other_charges(self)
|
||||
|
||||
# Get Advances
|
||||
# -------------
|
||||
def get_advances(self):
|
||||
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')
|
||||
|
||||
#pull project customer
|
||||
#-------------------------
|
||||
|
@ -67,7 +67,7 @@ class DocType:
|
||||
# Fetch voucherwise tds details
|
||||
#-------------------------------
|
||||
def get_tds_list(self):
|
||||
self.doc.clear_table(self.doclist,'tds_payment_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist,'tds_payment_details')
|
||||
self.doc.total_tds = 0
|
||||
import datetime
|
||||
if not self.doc.tds_category:
|
||||
|
@ -621,7 +621,7 @@ class DocType(TransactionBase):
|
||||
# Get other charges from Master
|
||||
# =================================================================================
|
||||
def get_purchase_tax_details(self,obj):
|
||||
self.doc.clear_table(obj.doclist,'purchase_tax_details')
|
||||
obj.doclist = self.doc.clear_table(obj.doclist,'purchase_tax_details')
|
||||
idx = 0
|
||||
other_charge = sql("select category, add_deduct_tax, charge_type,row_id,description,account_head,rate,tax_amount from `tabPurchase Taxes and Charges` where parent = '%s' order by idx" %(obj.doc.purchase_other_charges), as_dict = 1)
|
||||
for other in other_charge:
|
||||
@ -636,6 +636,7 @@ class DocType(TransactionBase):
|
||||
d.tax_amount = flt(other['tax_amount'])
|
||||
d.idx = idx
|
||||
idx += 1
|
||||
return obj.doclist
|
||||
|
||||
|
||||
# Get Tax rate if account type is TAX
|
||||
|
@ -291,7 +291,7 @@ class DocType(TransactionBase):
|
||||
if self.doc.is_subcontracted == 'Yes':
|
||||
self.add_bom(d)
|
||||
else:
|
||||
self.doc.clear_table(self.doclist,'po_raw_material_details',1)
|
||||
self.doclist = self.doc.clear_table(self.doclist,'po_raw_material_details',1)
|
||||
self.doc.save()
|
||||
elif item_det[0][1] == 'No':
|
||||
self.add_bom(d)
|
||||
@ -371,4 +371,4 @@ class DocType(TransactionBase):
|
||||
|
||||
# **** Pull details from other charges master (Get Other Charges) ****
|
||||
def get_purchase_tax_details(self):
|
||||
return get_obj('Purchase Common').get_purchase_tax_details(self)
|
||||
self.doclist = get_obj('Purchase Common').get_purchase_tax_details(self)
|
||||
|
@ -45,7 +45,7 @@ class DocType:
|
||||
|
||||
|
||||
def get_item_specification_details(self):
|
||||
self.doc.clear_table(self.doclist, 'qa_specification_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'qa_specification_details')
|
||||
specification = sql("select specification, value from `tabItem Quality Inspection Parameter` where parent = '%s' order by idx" % (self.doc.item_code))
|
||||
for d in specification:
|
||||
child = addchild(self.doc, 'qa_specification_details', 'Quality Inspection Reading', 1, self.doclist)
|
||||
|
@ -48,7 +48,7 @@ class DocType:
|
||||
if not self.doc.kra_template:
|
||||
msgprint("Please select Appraisal Template to be be fetched")
|
||||
raise Exception
|
||||
self.doc.clear_table(self.doclist,'appraisal_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist,'appraisal_details')
|
||||
get_obj('DocType Mapper', 'Appraisal Template-Appraisal').dt_map('Appraisal Template', 'Appraisal', self.doc.kra_template, self.doc, self.doclist, "[['Appraisal Template','Appraisal'],['Appraisal Template Goal', 'Appraisal Goal']]")
|
||||
|
||||
def validate_dates(self):
|
||||
|
@ -113,7 +113,7 @@ class DocType:
|
||||
# clear table
|
||||
# ------------
|
||||
def clear_table(self):
|
||||
self.doc.clear_table(self.doclist,'holiday_list_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist,'holiday_list_details')
|
||||
|
||||
|
||||
# ***************************************** validate *************************************************
|
||||
|
@ -24,7 +24,7 @@ cur_frm.cscript.onload = function(doc,dt,dn){
|
||||
// Validation For To Date
|
||||
// ================================================================================================
|
||||
cur_frm.cscript.to_date = function(doc, cdt, cdn) {
|
||||
$c('runserverobj', args={'method':'to_date_validation','docs':compress_doclist([doc])},
|
||||
$c('runserverobj', args={'method':'to_date_validation','docs':compress_doclist(make_doclist(doc.doctype, doc.name))},
|
||||
function(r, rt) {
|
||||
var doc = locals[cdt][cdn];
|
||||
if (r.message) {
|
||||
|
@ -70,8 +70,8 @@ class DocType(TransactionBase):
|
||||
# Pull struct details
|
||||
#=======================================================
|
||||
def pull_sal_struct(self, struct):
|
||||
self.doc.clear_table(self.doclist, 'earning_details')
|
||||
self.doc.clear_table(self.doclist, 'deduction_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'earning_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'deduction_details')
|
||||
|
||||
get_obj('DocType Mapper', 'Salary Structure-Salary Slip').dt_map('Salary Structure', 'Salary Slip', struct, self.doc, self.doclist, "[['Salary Structure', 'Salary Slip'],['Salary Structure Earning', 'Salary Slip Earning'],['Salary Structure Deduction','Salary Slip Deduction']]")
|
||||
|
||||
|
@ -322,7 +322,7 @@ class DocType:
|
||||
|
||||
def add_to_flat_bom_detail(self, is_submit = 0):
|
||||
"Add items to Flat BOM table"
|
||||
self.doc.clear_table(self.doclist, 'flat_bom_details', 1)
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'flat_bom_details', 1)
|
||||
for d in self.cur_flat_bom_items:
|
||||
ch = addchild(self.doc, 'flat_bom_details', 'BOM Explosion Item', 1, self.doclist)
|
||||
for i in d.keys():
|
||||
|
@ -58,13 +58,13 @@ class DocType:
|
||||
|
||||
def clear_so_table(self):
|
||||
""" Clears sales order table"""
|
||||
self.doc.clear_table(self.doclist, 'pp_so_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'pp_so_details')
|
||||
|
||||
|
||||
|
||||
def clear_item_table(self):
|
||||
""" Clears item table"""
|
||||
self.doc.clear_table(self.doclist, 'pp_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'pp_details')
|
||||
|
||||
|
||||
|
||||
|
@ -95,5 +95,5 @@ cur_frm.cscript.add = function(doc, dt, dn) {
|
||||
cur_frm.mylist.run();
|
||||
|
||||
}
|
||||
$c_obj([doc],'add_update','',callback);
|
||||
$c_obj(make_doclist(doc.doctype, doc.name),'add_update','',callback);
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ cur_frm.cscript.item_code=function(doc,cdt,cdn){
|
||||
// ===============================================================
|
||||
cur_frm.cscript['Create Customer'] = function(){
|
||||
var doc = cur_frm.doc;
|
||||
$c('runserverobj',args={ 'method':'check_status', 'docs':compress_doclist([doc])},
|
||||
$c('runserverobj',args={ 'method':'check_status', 'docs':compress_doclist(make_doclist(doc.doctype, doc.name))},
|
||||
function(r,rt){
|
||||
if(r.message == 'Converted'){
|
||||
msgprint("This lead is already converted to customer");
|
||||
@ -124,7 +124,7 @@ cur_frm.cscript.send_email = function(doc,cdt,cdn){
|
||||
// ===============================================================
|
||||
cur_frm.cscript['Create Opportunity'] = function(){
|
||||
var doc = cur_frm.doc;
|
||||
$c('runserverobj',args={ 'method':'check_status', 'docs':compress_doclist([doc])},
|
||||
$c('runserverobj',args={ 'method':'check_status', 'docs':compress_doclist(make_doclist(doc.doctype, doc.name))},
|
||||
function(r,rt){
|
||||
if(r.message == 'Converted'){
|
||||
msgprint("This lead is now converted to customer. Please create enquiry on behalf of customer");
|
||||
|
@ -53,7 +53,7 @@ class DocType(TransactionBase):
|
||||
# Pull Opportunity Details
|
||||
# --------------------
|
||||
def pull_enq_details(self):
|
||||
self.doc.clear_table(self.doclist, 'quotation_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'quotation_details')
|
||||
get_obj('DocType Mapper', 'Opportunity-Quotation').dt_map('Opportunity', 'Quotation', self.doc.enq_no, self.doc, self.doclist, "[['Opportunity', 'Quotation'],['Opportunity Item', 'Quotation Item']]")
|
||||
|
||||
self.get_adj_percent()
|
||||
@ -115,12 +115,12 @@ class DocType(TransactionBase):
|
||||
# Load Default Charges
|
||||
# ----------------------------------------------------------
|
||||
def load_default_taxes(self):
|
||||
return 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):
|
||||
return get_obj('Sales Common').get_other_charges(self)
|
||||
self.doclist = get_obj('Sales Common').get_other_charges(self)
|
||||
|
||||
|
||||
# GET TERMS AND CONDITIONS
|
||||
|
@ -72,9 +72,11 @@ class DocType(TransactionBase):
|
||||
|
||||
# Get Sales Person Details
|
||||
# ==========================
|
||||
|
||||
# TODO: To be deprecated if not in use
|
||||
def get_sales_person_details(self, obj):
|
||||
if obj.doc.doctype != 'Quotation':
|
||||
obj.doc.clear_table(obj.doclist,'sales_team')
|
||||
obj.doclist = obj.doc.clear_table(obj.doclist,'sales_team')
|
||||
idx = 0
|
||||
for d in webnotes.conn.sql("select sales_person, allocated_percentage, allocated_amount, incentives from `tabSales Team` where parent = '%s'" % obj.doc.customer):
|
||||
ch = addchild(obj.doc, 'sales_team', 'Sales Team', 1, obj.doclist)
|
||||
@ -84,6 +86,7 @@ class DocType(TransactionBase):
|
||||
ch.incentives = d and flt(d[3]) or 0
|
||||
ch.idx = idx
|
||||
idx += 1
|
||||
return obj.doclist
|
||||
|
||||
|
||||
# Get customer's contact person details
|
||||
@ -215,15 +218,15 @@ class DocType(TransactionBase):
|
||||
# ====================
|
||||
def load_default_taxes(self, obj):
|
||||
if cstr(obj.doc.charge):
|
||||
self.get_other_charges(obj)
|
||||
return self.get_other_charges(obj)
|
||||
else:
|
||||
self.get_other_charges(obj, 1)
|
||||
return self.get_other_charges(obj, 1)
|
||||
|
||||
|
||||
# Get other charges from Master
|
||||
# =================================================================================
|
||||
def get_other_charges(self,obj, default=0):
|
||||
obj.doc.clear_table(obj.doclist,'other_charges')
|
||||
obj.doclist = obj.doc.clear_table(obj.doclist, 'other_charges')
|
||||
if not getlist(obj.doclist, 'other_charges'):
|
||||
if default: add_cond = 'ifnull(t2.is_default,0) = 1'
|
||||
else: add_cond = 't1.parent = "'+cstr(obj.doc.charge)+'"'
|
||||
@ -253,6 +256,7 @@ class DocType(TransactionBase):
|
||||
d.included_in_print_rate = cint(d.included_in_print_rate)
|
||||
d.idx = idx
|
||||
idx += 1
|
||||
return obj.doclist
|
||||
|
||||
# Get TERMS AND CONDITIONS
|
||||
# =======================================================================================
|
||||
@ -484,11 +488,22 @@ class DocType(TransactionBase):
|
||||
self.cleanup_packing_list(obj, parent_items)
|
||||
|
||||
def cleanup_packing_list(self, obj, parent_items):
|
||||
"""Remove all those parent items which are no longer present in main item table"""
|
||||
"""Remove all those child items which are no longer present in main item table"""
|
||||
delete_list = []
|
||||
for d in getlist(obj.doclist, 'packing_details'):
|
||||
if [d.parent_item, d.parent_detail_docname] not in parent_items:
|
||||
d.parent = ''
|
||||
# mark for deletion from doclist
|
||||
delete_list.append(d.name)
|
||||
|
||||
if not delete_list: return
|
||||
|
||||
# delete from doclist
|
||||
obj.doclist = filter(lambda d: d.name not in delete_list, obj.doclist)
|
||||
|
||||
# delete from db
|
||||
webnotes.conn.sql("""\
|
||||
delete from `tabDelivery Note Packing Item`
|
||||
where name in ("%s")""" % '", "'.join(delete_list))
|
||||
|
||||
# Get total in words
|
||||
# ==================================================================
|
||||
|
@ -35,8 +35,9 @@ convert_to_lists = webnotes.conn.convert_to_lists
|
||||
from utilities.transaction_base import TransactionBase
|
||||
|
||||
class DocType(TransactionBase):
|
||||
def __init__(self, doc, doclist=[]):
|
||||
def __init__(self, doc, doclist=None):
|
||||
self.doc = doc
|
||||
if not doclist: doclist = []
|
||||
self.doclist = doclist
|
||||
self.tname = 'Sales Order Item'
|
||||
self.fname = 'sales_order_details'
|
||||
@ -55,10 +56,10 @@ class DocType(TransactionBase):
|
||||
# Pull Quotation Items
|
||||
# -----------------------
|
||||
def pull_quotation_details(self):
|
||||
self.doc.clear_table(self.doclist, 'other_charges')
|
||||
self.doc.clear_table(self.doclist, 'sales_order_details')
|
||||
self.doc.clear_table(self.doclist, 'sales_team')
|
||||
self.doc.clear_table(self.doclist, 'tc_details')
|
||||
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_team')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'tc_details')
|
||||
if self.doc.quotation_no:
|
||||
get_obj('DocType Mapper', 'Quotation-Sales Order').dt_map('Quotation', 'Sales Order', self.doc.quotation_no, self.doc, self.doclist, "[['Quotation', 'Sales Order'],['Quotation Item', 'Sales Order Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team'],['TC Detail','TC Detail']]")
|
||||
else:
|
||||
@ -135,12 +136,12 @@ class DocType(TransactionBase):
|
||||
# Load Default Charges
|
||||
# ----------------------------------------------------------
|
||||
def load_default_taxes(self):
|
||||
return 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):
|
||||
return get_obj('Sales Common').get_other_charges(self)
|
||||
self.doclist = get_obj('Sales Common').get_other_charges(self)
|
||||
|
||||
|
||||
# GET TERMS & CONDITIONS
|
||||
@ -322,7 +323,7 @@ class DocType(TransactionBase):
|
||||
# this is to verify that the allocated % of sales persons is 100%
|
||||
sales_com_obj.get_allocated_sum(self)
|
||||
sales_com_obj.make_packing_list(self,'sales_order_details')
|
||||
|
||||
|
||||
# get total in words
|
||||
dcc = TransactionBase().get_company_currency(self.doc.company)
|
||||
self.doc.in_words = sales_com_obj.get_total_in_words(dcc, self.doc.rounded_total)
|
||||
|
@ -55,7 +55,7 @@ cur_frm.cscript.make_history_list = function(parent,doc){
|
||||
// get sates on country trigger
|
||||
// -----------------------------
|
||||
cur_frm.cscript.get_states=function(doc,dt,dn){
|
||||
$c('runserverobj', args={'method':'check_state', 'docs':compress_doclist([doc])},
|
||||
$c('runserverobj', args={'method':'check_state', 'docs':compress_doclist(make_doclist(doc.doctype, doc.name))},
|
||||
function(r,rt){
|
||||
if(r.message) {
|
||||
set_field_options('state', r.message);
|
||||
|
@ -19,7 +19,7 @@ cur_frm.cscript.onload = function(doc, cdt, cdn){
|
||||
var callback = function(r, rt){
|
||||
set_field_options('select_doc_for_series', r.message);
|
||||
}
|
||||
$c_obj([doc],'get_transactions','',callback);
|
||||
$c_obj(make_doclist(doc.doctype, doc.name),'get_transactions','',callback);
|
||||
cur_frm.cscript.refresh();
|
||||
// add page head
|
||||
//var ph = new PageHeader(cur_frm.fields_dict['head_html'].wrapper, 'Setup Series', 'Set prefix for numbering series on your transactions');
|
||||
@ -36,5 +36,5 @@ cur_frm.cscript.select_doc_for_series = function(doc, cdt, cdn) {
|
||||
refresh_field('set_options');
|
||||
}
|
||||
|
||||
$c_obj([doc],'get_options','',callback)
|
||||
$c_obj(make_doclist(doc.doctype, doc.name),'get_options','',callback)
|
||||
}
|
||||
|
@ -32,6 +32,6 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) {
|
||||
|
||||
cur_frm.cscript.clear_prices = function(doc, cdt, cdn) {
|
||||
if(confirm("This action will clear all rates for '"+ doc.name +"' from the Item Master and cannot be un-done. Are you sure you want to continue?")) {
|
||||
$c_obj([doc], 'clear_prices', '', function(r, rt) { });
|
||||
$c_obj(make_doclist(doc.doctype, doc.name), 'clear_prices', '', function(r, rt) { });
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ cur_frm.cscript.onload = function(){
|
||||
}
|
||||
cur_frm.cscript.country = function(doc, cdt, cdn) {
|
||||
var mydoc=doc;
|
||||
$c('runserverobj', args={'method':'check_state', 'docs':compress_doclist([doc])},
|
||||
$c('runserverobj', args={'method':'check_state', 'docs':compress_doclist(make_doclist(doc.doctype, doc.name))},
|
||||
function(r,rt){
|
||||
if(r.message) {
|
||||
var doc = locals[mydoc.doctype][mydoc.name];
|
||||
|
@ -65,7 +65,7 @@ class DocType(TransactionBase):
|
||||
# *************** Pull Sales Order Items ************************
|
||||
def pull_sales_order_details(self):
|
||||
self.validate_prev_docname()
|
||||
self.doc.clear_table(self.doclist,'other_charges')
|
||||
self.doclist = self.doc.clear_table(self.doclist,'other_charges')
|
||||
|
||||
if self.doc.sales_order_no:
|
||||
get_obj('DocType Mapper', 'Sales Order-Delivery Note').dt_map('Sales Order', 'Delivery Note', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Delivery Note'],['Sales Order Item', 'Delivery Note Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]")
|
||||
@ -151,12 +151,12 @@ class DocType(TransactionBase):
|
||||
# Load Default Charges
|
||||
# ----------------------------------------------------------
|
||||
def load_default_taxes(self):
|
||||
return 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):
|
||||
return get_obj('Sales Common').get_other_charges(self)
|
||||
self.doclist = get_obj('Sales Common').get_other_charges(self)
|
||||
|
||||
|
||||
#check in manage account if sales order required or not.
|
||||
|
@ -43,7 +43,7 @@ class DocType:
|
||||
def get_purchase_receipts(self):
|
||||
""" Get purchase receipts for given period """
|
||||
|
||||
self.doc.clear_table(self.doclist,'lc_pr_details',1)
|
||||
self.doclist = self.doc.clear_table(self.doclist,'lc_pr_details',1)
|
||||
self.check_mandatory()
|
||||
|
||||
pr = sql("select name from `tabPurchase Receipt` where docstatus = 1 and posting_date >= '%s' and posting_date <= '%s' and currency = '%s' order by name " % (self.doc.from_pr_date, self.doc.to_pr_date, self.doc.currency), as_dict = 1)
|
||||
@ -58,7 +58,7 @@ class DocType:
|
||||
|
||||
def get_landed_cost_master_details(self):
|
||||
""" pull details from landed cost master"""
|
||||
self.doc.clear_table(self.doclist, 'landed_cost_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'landed_cost_details')
|
||||
idx = 0
|
||||
landed_cost = sql("select account_head, description from `tabLanded Cost Master Detail` where parent=%s", (self.doc.landed_cost), as_dict = 1)
|
||||
for cost in landed_cost:
|
||||
|
@ -370,7 +370,7 @@ class DocType(TransactionBase):
|
||||
raise Exception
|
||||
self.add_bom(d)
|
||||
else:
|
||||
self.doc.clear_table(self.doclist,'pr_raw_material_details',1)
|
||||
self.doclist = self.doc.clear_table(self.doclist,'pr_raw_material_details',1)
|
||||
self.doc.save()
|
||||
elif item_det[0][1] == 'No':
|
||||
if not self.doc.supplier_warehouse:
|
||||
@ -479,4 +479,4 @@ class DocType(TransactionBase):
|
||||
|
||||
# **** Pull details from other charges master (Get Other Charges) ****
|
||||
def get_purchase_tax_details(self):
|
||||
return get_obj('Purchase Common').get_purchase_tax_details(self)
|
||||
self.doclist = get_obj('Purchase Common').get_purchase_tax_details(self)
|
||||
|
@ -57,7 +57,7 @@ class DocType :
|
||||
# Create Item Table
|
||||
# -----------------------------
|
||||
def create_item_table(self, det):
|
||||
self.doc.clear_table(self.doclist, 'return_details', 1)
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'return_details', 1)
|
||||
for i in det:
|
||||
ch = addchild(self.doc, 'return_details', 'Sales and Purchase Return Item', 1, self.doclist)
|
||||
ch.detail_name = i and i[0] or ''
|
||||
@ -73,5 +73,5 @@ class DocType :
|
||||
# Clear return table
|
||||
# --------------------------------
|
||||
def clear_return_table(self):
|
||||
self.doc.clear_table(self.doclist, 'return_details', 1)
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'return_details', 1)
|
||||
self.doc.save()
|
||||
|
@ -240,7 +240,7 @@ class DocType(TransactionBase):
|
||||
consider_sa_items_as_rm = self.doc.consider_sa_items_as_raw_materials
|
||||
|
||||
self.get_raw_materials(bom_no, fg_qty, consider_sa_items_as_rm)
|
||||
self.doc.clear_table(self.doclist, 'mtn_details', 1)
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'mtn_details', 1)
|
||||
|
||||
sw = (self.doc.process == 'Backflush') and cstr(pro_obj.doc.wip_warehouse) or ''
|
||||
tw = (self.doc.process == 'Material Transfer') and cstr(pro_obj.doc.wip_warehouse) or ''
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
cur_frm.cscript.country = function(doc, cdt, cdn) {
|
||||
var mydoc=doc;
|
||||
$c('runserverobj', args={'method':'check_state', 'docs':compress_doclist([doc])},
|
||||
$c('runserverobj', args={'method':'check_state', 'docs':compress_doclist(make_doclist(doc.doctype, doc.name))},
|
||||
function(r,rt){
|
||||
if(r.message) {
|
||||
var doc = locals[mydoc.doctype][mydoc.name];
|
||||
|
@ -42,8 +42,8 @@ class DocType(TransactionBase):
|
||||
# pull sales order details
|
||||
#--------------------------
|
||||
def pull_sales_order_detail(self):
|
||||
self.doc.clear_table(self.doclist, 'item_maintenance_detail')
|
||||
self.doc.clear_table(self.doclist, 'maintenance_schedule_detail')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'item_maintenance_detail')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'maintenance_schedule_detail')
|
||||
self.doclist = get_obj('DocType Mapper', 'Sales Order-Maintenance Schedule').dt_map('Sales Order', 'Maintenance Schedule', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Maintenance Schedule'],['Sales Order Item', 'Maintenance Schedule Item']]")
|
||||
|
||||
#pull item details
|
||||
@ -60,7 +60,7 @@ class DocType(TransactionBase):
|
||||
#-------------------------------------
|
||||
def generate_schedule(self):
|
||||
import datetime
|
||||
self.doc.clear_table(self.doclist, 'maintenance_schedule_detail')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'maintenance_schedule_detail')
|
||||
count = 0
|
||||
sql("delete from `tabMaintenance Schedule Detail` where parent='%s'" %(self.doc.name))
|
||||
for d in getlist(self.doclist, 'item_maintenance_detail'):
|
||||
|
@ -56,7 +56,7 @@ class DocType(TransactionBase):
|
||||
msgprint("You can not fetch details of both, Sales Order and Customer Issue, in same Maintenance Visit")
|
||||
raise Exception
|
||||
|
||||
self.doc.clear_table(self.doclist, 'maintenance_visit_details')
|
||||
self.doclist = self.doc.clear_table(self.doclist, 'maintenance_visit_details')
|
||||
|
||||
if self.doc.sales_order_no:
|
||||
self.doclist = get_obj('DocType Mapper', 'Sales Order-Maintenance Visit').dt_map('Sales Order', 'Maintenance Visit', self.doc.sales_order_no, self.doc, self.doclist, "[['Sales Order', 'Maintenance Visit'],['Sales Order Item', 'Maintenance Visit Purpose']]")
|
||||
|
@ -99,7 +99,7 @@ $.extend(cur_frm.cscript, {
|
||||
},
|
||||
|
||||
send: function(doc, dt, dn) {
|
||||
$c_obj([doc], 'send_response', '', function(r,rt) {
|
||||
$c_obj(make_doclist(doc.doctype, doc.name), 'send_response', '', function(r,rt) {
|
||||
locals[dt][dn].new_response = '';
|
||||
if(!(r.exc || r.server_messages)) {
|
||||
cur_frm.refresh();
|
||||
@ -124,7 +124,7 @@ $.extend(cur_frm.cscript, {
|
||||
var answer = confirm("Close Ticket "+doc.name+"?\n\nAllocated To: "+doc.allocated_to+"\n\nSubject: "+doc.subject+"");
|
||||
if(answer) {
|
||||
if(doc.name)
|
||||
$c_obj([doc],'close_ticket','',function(r,rt) {
|
||||
$c_obj(make_doclist(doc.doctype, doc.name),'close_ticket','',function(r,rt) {
|
||||
if(!r.exc) {
|
||||
cur_frm.refresh();
|
||||
}
|
||||
@ -138,7 +138,7 @@ $.extend(cur_frm.cscript, {
|
||||
var answer = confirm("Re-Open Ticket "+doc.name+"?\n\nAllocated To: "+doc.allocated_to+"\n\nSubject: "+doc.subject+"");
|
||||
if(answer) {
|
||||
if(doc.name)
|
||||
$c_obj([doc],'reopen_ticket','',function(r,rt) {
|
||||
$c_obj(make_doclist(doc.doctype, doc.name),'reopen_ticket','',function(r,rt) {
|
||||
if(!r.exc) {
|
||||
cur_frm.refresh();
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ class TransactionBase:
|
||||
# Get Sales Person Details of Customer
|
||||
# ------------------------------------
|
||||
def get_sales_person(self, name):
|
||||
self.doc.clear_table(self.doclist,'sales_team')
|
||||
self.doclist = self.doc.clear_table(self.doclist,'sales_team')
|
||||
idx = 0
|
||||
for d in webnotes.conn.sql("select sales_person, allocated_percentage, allocated_amount, incentives from `tabSales Team` where parent = '%s'" % name):
|
||||
ch = addchild(self.doc, 'sales_team', 'Sales Team', 1, self.doclist)
|
||||
|
@ -396,7 +396,7 @@ wn.request.cleanup=function(opts,r){if(opts.btn)$(opts.btn).done_working();if(op
|
||||
return;}
|
||||
if(r.server_messages)msgprint(r.server_messages)
|
||||
if(r.exc){console.log(r.exc);};if(r['403']){wn.container.change_to('403');}
|
||||
if(r.docs)LocalDB.sync(r.docs);}
|
||||
if(r.docs){LocalDB.sync(r.docs);}}
|
||||
wn.request.call=function(opts){wn.request.prepare(opts);$.ajax({url:opts.url||wn.request.url,data:opts.args,type:opts.type||'POST',dataType:opts.dataType||'json',success:function(r,xhr){wn.request.cleanup(opts,r);opts.success(r,xhr.responseText);},error:function(xhr,textStatus){wn.request.cleanup(opts,{});show_alert('Unable to complete request: '+textStatus)
|
||||
if(opts.error)opts.error(xhr)}})}
|
||||
wn.call=function(opts){var args=$.extend({},opts.args)
|
||||
@ -1313,8 +1313,10 @@ LocalDB.add=function(dt,dn){if(!locals[dt])locals[dt]={};if(locals[dt][dn])delet
|
||||
LocalDB.delete_doc=function(dt,dn){var doc=get_local(dt,dn);for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||doc.__oldparent==dn)){delete locals[ndt][ndn];}}}}
|
||||
delete locals[dt][dn];}
|
||||
function get_local(dt,dn){return locals[dt]?locals[dt][dn]:null;}
|
||||
LocalDB.sync=function(list){if(list._kl)list=expand_doclist(list);for(var i=0;i<list.length;i++){var d=list[i];if(!d.name)
|
||||
LocalDB.sync=function(list){if(list._kl)list=expand_doclist(list);if(list){LocalDB.clear_locals(list[0].doctype,list[0].name);}
|
||||
for(var i=0;i<list.length;i++){var d=list[i];if(!d.name)
|
||||
d.name=LocalDB.get_localname(d.doctype);LocalDB.add(d.doctype,d.name);locals[d.doctype][d.name]=d;if(d.doctype=='DocField')wn.meta.add_field(d);if(d.localname){wn.model.new_names[d.localname]=d.name;$(document).trigger('rename',[d.doctype,d.localname,d.name]);delete locals[d.doctype][d.localname];}}}
|
||||
LocalDB.clear_locals=function(dt,dn){var doclist=make_doclist(dt,dn,1);$.each(doclist,function(i,v){v&&delete locals[v.doctype][v.name];});}
|
||||
local_name_idx={};LocalDB.get_localname=function(doctype){if(!local_name_idx[doctype])local_name_idx[doctype]=1;var n='New '+get_doctype_label(doctype)+' '+local_name_idx[doctype];local_name_idx[doctype]++;return n;}
|
||||
LocalDB.set_default_values=function(doc){var doctype=doc.doctype;var docfields=wn.meta.docfield_list[doctype];if(!docfields){return;}
|
||||
var fields_to_refresh=[];for(var fid=0;fid<docfields.length;fid++){var f=docfields[fid];if(!in_list(no_value_fields,f.fieldtype)&&doc[f.fieldname]==null){var v=LocalDB.get_default_value(f.fieldname,f.fieldtype,f['default']);if(v){doc[f.fieldname]=v;fields_to_refresh.push(f.fieldname);}}}
|
||||
@ -1344,7 +1346,8 @@ return sys_defaults[fn];}
|
||||
LocalDB.add_child=function(doc,childtype,parentfield){var n=LocalDB.create(childtype);var d=locals[childtype][n];d.parent=doc.name;d.parentfield=parentfield;d.parenttype=doc.doctype;return d;}
|
||||
LocalDB.no_copy_list=['amended_from','amendment_date','cancel_reason'];LocalDB.copy=function(dt,dn,from_amend){var newdoc=LocalDB.create(dt);for(var key in locals[dt][dn]){var df=get_field(dt,key);if(key!=='name'&&key.substr(0,2)!='__'&&!(df&&((!from_amend&&cint(df.no_copy)==1)||in_list(LocalDB.no_copy_list,df.fieldname)))){locals[dt][newdoc][key]=locals[dt][dn][key];}}
|
||||
return locals[dt][newdoc];}
|
||||
function make_doclist(dt,dn,deleted){var dl=[];dl[0]=locals[dt][dn];for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||(deleted&&doc.__oldparent==dn))){dl[dl.length]=doc;}}}}
|
||||
function make_doclist(dt,dn,deleted){if(!locals[dt]){return[];}
|
||||
var dl=[];dl[0]=locals[dt][dn];for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||(deleted&&doc.__oldparent==dn))){dl[dl.length]=doc;}}}}
|
||||
return dl;}
|
||||
var Meta={};var local_dt={};Meta.make_local_dt=function(dt,dn){var dl=make_doclist('DocType',dt);if(!local_dt[dt])local_dt[dt]={};if(!local_dt[dt][dn])local_dt[dt][dn]={};for(var i=0;i<dl.length;i++){var d=dl[i];if(d.doctype=='DocField'){var key=d.fieldname?d.fieldname:d.label;local_dt[dt][dn][key]=copy_dict(d);}}}
|
||||
Meta.get_field=function(dt,fn,dn){if(dn&&local_dt[dt]&&local_dt[dt][dn]){return local_dt[dt][dn][fn];}else{if(wn.meta.docfield_map[dt])var d=wn.meta.docfield_map[dt][fn];if(d)return d;}
|
||||
@ -2115,7 +2118,7 @@ $c_get_values=function(args,doc,dt,dn,user_callback){var call_back=function(r,rt
|
||||
refresh_field(fl[i],dn,args.table_field);else
|
||||
refresh_field(fl[i]);}}
|
||||
$c('webnotes.widgets.form.utils.get_fields',args,call_back);}
|
||||
get_server_fields=function(method,arg,table_field,doc,dt,dn,allow_edit,call_back){if(!allow_edit)freeze('Fetching Data...');$c('runserverobj',args={'method':method,'docs':compress_doclist([doc]),'arg':arg},function(r,rt){if(r.message){var d=locals[dt][dn];var field_dict=r.message;for(var key in field_dict){d[key]=field_dict[key];if(table_field)refresh_field(key,d.name,table_field);else refresh_field(key);}}
|
||||
get_server_fields=function(method,arg,table_field,doc,dt,dn,allow_edit,call_back){if(!allow_edit)freeze('Fetching Data...');$c('runserverobj',args={'method':method,'docs':compress_doclist(make_doclist(doc.doctype,doc.name)),'arg':arg},function(r,rt){if(r.message){var d=locals[dt][dn];var field_dict=r.message;for(var key in field_dict){d[key]=field_dict[key];if(table_field)refresh_field(key,d.name,table_field);else refresh_field(key);}}
|
||||
if(call_back){doc=locals[doc.doctype][doc.name];call_back(doc,dt,dn);}
|
||||
if(!allow_edit)unfreeze();});}
|
||||
set_multiple=function(dt,dn,dict,table_field){var d=locals[dt][dn];for(var key in dict){d[key]=dict[key];if(table_field)refresh_field(key,d.name,table_field);else refresh_field(key);}}
|
||||
|
@ -283,7 +283,7 @@ wn.request.cleanup=function(opts,r){if(opts.btn)$(opts.btn).done_working();if(op
|
||||
return;}
|
||||
if(r.server_messages)msgprint(r.server_messages)
|
||||
if(r.exc){console.log(r.exc);};if(r['403']){wn.container.change_to('403');}
|
||||
if(r.docs)LocalDB.sync(r.docs);}
|
||||
if(r.docs){LocalDB.sync(r.docs);}}
|
||||
wn.request.call=function(opts){wn.request.prepare(opts);$.ajax({url:opts.url||wn.request.url,data:opts.args,type:opts.type||'POST',dataType:opts.dataType||'json',success:function(r,xhr){wn.request.cleanup(opts,r);opts.success(r,xhr.responseText);},error:function(xhr,textStatus){wn.request.cleanup(opts,{});show_alert('Unable to complete request: '+textStatus)
|
||||
if(opts.error)opts.error(xhr)}})}
|
||||
wn.call=function(opts){var args=$.extend({},opts.args)
|
||||
@ -626,8 +626,10 @@ LocalDB.add=function(dt,dn){if(!locals[dt])locals[dt]={};if(locals[dt][dn])delet
|
||||
LocalDB.delete_doc=function(dt,dn){var doc=get_local(dt,dn);for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||doc.__oldparent==dn)){delete locals[ndt][ndn];}}}}
|
||||
delete locals[dt][dn];}
|
||||
function get_local(dt,dn){return locals[dt]?locals[dt][dn]:null;}
|
||||
LocalDB.sync=function(list){if(list._kl)list=expand_doclist(list);for(var i=0;i<list.length;i++){var d=list[i];if(!d.name)
|
||||
LocalDB.sync=function(list){if(list._kl)list=expand_doclist(list);if(list){LocalDB.clear_locals(list[0].doctype,list[0].name);}
|
||||
for(var i=0;i<list.length;i++){var d=list[i];if(!d.name)
|
||||
d.name=LocalDB.get_localname(d.doctype);LocalDB.add(d.doctype,d.name);locals[d.doctype][d.name]=d;if(d.doctype=='DocField')wn.meta.add_field(d);if(d.localname){wn.model.new_names[d.localname]=d.name;$(document).trigger('rename',[d.doctype,d.localname,d.name]);delete locals[d.doctype][d.localname];}}}
|
||||
LocalDB.clear_locals=function(dt,dn){var doclist=make_doclist(dt,dn,1);$.each(doclist,function(i,v){v&&delete locals[v.doctype][v.name];});}
|
||||
local_name_idx={};LocalDB.get_localname=function(doctype){if(!local_name_idx[doctype])local_name_idx[doctype]=1;var n='New '+get_doctype_label(doctype)+' '+local_name_idx[doctype];local_name_idx[doctype]++;return n;}
|
||||
LocalDB.set_default_values=function(doc){var doctype=doc.doctype;var docfields=wn.meta.docfield_list[doctype];if(!docfields){return;}
|
||||
var fields_to_refresh=[];for(var fid=0;fid<docfields.length;fid++){var f=docfields[fid];if(!in_list(no_value_fields,f.fieldtype)&&doc[f.fieldname]==null){var v=LocalDB.get_default_value(f.fieldname,f.fieldtype,f['default']);if(v){doc[f.fieldname]=v;fields_to_refresh.push(f.fieldname);}}}
|
||||
@ -657,7 +659,8 @@ return sys_defaults[fn];}
|
||||
LocalDB.add_child=function(doc,childtype,parentfield){var n=LocalDB.create(childtype);var d=locals[childtype][n];d.parent=doc.name;d.parentfield=parentfield;d.parenttype=doc.doctype;return d;}
|
||||
LocalDB.no_copy_list=['amended_from','amendment_date','cancel_reason'];LocalDB.copy=function(dt,dn,from_amend){var newdoc=LocalDB.create(dt);for(var key in locals[dt][dn]){var df=get_field(dt,key);if(key!=='name'&&key.substr(0,2)!='__'&&!(df&&((!from_amend&&cint(df.no_copy)==1)||in_list(LocalDB.no_copy_list,df.fieldname)))){locals[dt][newdoc][key]=locals[dt][dn][key];}}
|
||||
return locals[dt][newdoc];}
|
||||
function make_doclist(dt,dn,deleted){var dl=[];dl[0]=locals[dt][dn];for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||(deleted&&doc.__oldparent==dn))){dl[dl.length]=doc;}}}}
|
||||
function make_doclist(dt,dn,deleted){if(!locals[dt]){return[];}
|
||||
var dl=[];dl[0]=locals[dt][dn];for(var ndt in locals){if(locals[ndt]){for(var ndn in locals[ndt]){var doc=locals[ndt][ndn];if(doc&&doc.parenttype==dt&&(doc.parent==dn||(deleted&&doc.__oldparent==dn))){dl[dl.length]=doc;}}}}
|
||||
return dl;}
|
||||
var Meta={};var local_dt={};Meta.make_local_dt=function(dt,dn){var dl=make_doclist('DocType',dt);if(!local_dt[dt])local_dt[dt]={};if(!local_dt[dt][dn])local_dt[dt][dn]={};for(var i=0;i<dl.length;i++){var d=dl[i];if(d.doctype=='DocField'){var key=d.fieldname?d.fieldname:d.label;local_dt[dt][dn][key]=copy_dict(d);}}}
|
||||
Meta.get_field=function(dt,fn,dn){if(dn&&local_dt[dt]&&local_dt[dt][dn]){return local_dt[dt][dn][fn];}else{if(wn.meta.docfield_map[dt])var d=wn.meta.docfield_map[dt][fn];if(d)return d;}
|
||||
|
Loading…
x
Reference in New Issue
Block a user