mass replace sql with webnotes.conn.sql

This commit is contained in:
Pratik Vyas 2013-09-18 12:20:53 +05:30
parent e55fbfc090
commit 5e16a69b35
45 changed files with 245 additions and 246 deletions

View File

@ -32,7 +32,7 @@ class DocType:
def validate_parent(self): def validate_parent(self):
"""Fetch Parent Details and validation for account not to be created under ledger""" """Fetch Parent Details and validation for account not to be created under ledger"""
if self.doc.parent_account: if self.doc.parent_account:
par = sql("""select name, group_or_ledger, is_pl_account, debit_or_credit par = webnotes.conn.sql("""select name, group_or_ledger, is_pl_account, debit_or_credit
from tabAccount where name =%s""", self.doc.parent_account) from tabAccount where name =%s""", self.doc.parent_account)
if not par: if not par:
msgprint("Parent account does not exists", raise_exception=1) msgprint("Parent account does not exists", raise_exception=1)
@ -60,7 +60,7 @@ class DocType:
def validate_duplicate_account(self): def validate_duplicate_account(self):
if self.doc.fields.get('__islocal') or not self.doc.name: if self.doc.fields.get('__islocal') or not self.doc.name:
company_abbr = webnotes.conn.get_value("Company", self.doc.company, "abbr") company_abbr = webnotes.conn.get_value("Company", self.doc.company, "abbr")
if sql("""select name from tabAccount where name=%s""", if webnotes.conn.sql("""select name from tabAccount where name=%s""",
(self.doc.account_name + " - " + company_abbr)): (self.doc.account_name + " - " + company_abbr)):
msgprint("Account Name: %s already exists, please rename" msgprint("Account Name: %s already exists, please rename"
% self.doc.account_name, raise_exception=1) % self.doc.account_name, raise_exception=1)
@ -97,12 +97,12 @@ class DocType:
# Check if any previous balance exists # Check if any previous balance exists
def check_gle_exists(self): def check_gle_exists(self):
exists = sql("""select name from `tabGL Entry` where account = %s exists = webnotes.conn.sql("""select name from `tabGL Entry` where account = %s
and ifnull(is_cancelled, 'No') = 'No'""", self.doc.name) and ifnull(is_cancelled, 'No') = 'No'""", self.doc.name)
return exists and exists[0][0] or '' return exists and exists[0][0] or ''
def check_if_child_exists(self): def check_if_child_exists(self):
return sql("""select name from `tabAccount` where parent_account = %s return webnotes.conn.sql("""select name from `tabAccount` where parent_account = %s
and docstatus != 2""", self.doc.name) and docstatus != 2""", self.doc.name)
def validate_mandatory(self): def validate_mandatory(self):
@ -141,7 +141,7 @@ class DocType:
# Get credit limit # Get credit limit
credit_limit_from = 'Customer' credit_limit_from = 'Customer'
cr_limit = sql("""select t1.credit_limit from tabCustomer t1, `tabAccount` t2 cr_limit = webnotes.conn.sql("""select t1.credit_limit from tabCustomer t1, `tabAccount` t2
where t2.name=%s and t1.name = t2.master_name""", account) where t2.name=%s and t1.name = t2.master_name""", account)
credit_limit = cr_limit and flt(cr_limit[0][0]) or 0 credit_limit = cr_limit and flt(cr_limit[0][0]) or 0
if not credit_limit: if not credit_limit:
@ -173,7 +173,7 @@ class DocType:
self.update_nsm_model() self.update_nsm_model()
# delete all cancelled gl entry of this account # delete all cancelled gl entry of this account
sql("""delete from `tabGL Entry` where account = %s and webnotes.conn.sql("""delete from `tabGL Entry` where account = %s and
ifnull(is_cancelled, 'No') = 'Yes'""", self.doc.name) ifnull(is_cancelled, 'No') = 'Yes'""", self.doc.name)
def on_rename(self, new, old, merge=False): def on_rename(self, new, old, merge=False):
@ -185,7 +185,7 @@ class DocType:
# rename account name # rename account name
new_account_name = " - ".join(parts[:-1]) new_account_name = " - ".join(parts[:-1])
sql("update `tabAccount` set account_name = %s where name = %s", (new_account_name, old)) webnotes.conn.sql("update `tabAccount` set account_name = %s where name = %s", (new_account_name, old))
if merge: if merge:
new_name = " - ".join(parts) new_name = " - ".join(parts)

View File

@ -22,7 +22,7 @@ class DocType:
msgprint("Bank Account, From Date and To Date are Mandatory") msgprint("Bank Account, From Date and To Date are Mandatory")
return return
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.posting_date >= %s and t1.posting_date <= %s and t1.docstatus=1", (self.doc.bank_account, self.doc.from_date, self.doc.to_date)) dl = webnotes.conn.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.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.doclist = self.doc.clear_table(self.doclist, 'entries') self.doclist = self.doc.clear_table(self.doclist, 'entries')
self.doc.total_amount = 0.0 self.doc.total_amount = 0.0
@ -46,7 +46,7 @@ class DocType:
msgprint("Clearance Date can not be before Cheque Date (Row #%s)" % msgprint("Clearance Date can not be before Cheque Date (Row #%s)" %
d.idx, raise_exception=1) d.idx, raise_exception=1)
sql("""update `tabJournal Voucher` webnotes.conn.sql("""update `tabJournal Voucher`
set clearance_date = %s, modified = %s where name=%s""", set clearance_date = %s, modified = %s where name=%s""",
(d.clearance_date, nowdate(), d.voucher_id)) (d.clearance_date, nowdate(), d.voucher_id))
vouchers.append(d.voucher_id) vouchers.append(d.voucher_id)

View File

@ -63,7 +63,7 @@ class DocType:
tot_outstanding = 0 #needed when there is no GL Entry in the system for that acc head tot_outstanding = 0 #needed when there is no GL Entry in the system for that acc head
if (self.doc.voucher_type=='Journal Voucher' or self.doc.voucher_type=='Sales Invoice') \ if (self.doc.voucher_type=='Journal Voucher' or self.doc.voucher_type=='Sales Invoice') \
and (master_type =='Customer' and master_name): and (master_type =='Customer' and master_name):
dbcr = sql("""select sum(debit), sum(credit) from `tabGL Entry` dbcr = webnotes.conn.sql("""select sum(debit), sum(credit) from `tabGL Entry`
where account = '%s' and is_cancelled='No'""" % self.doc.account) where account = '%s' and is_cancelled='No'""" % self.doc.account)
if dbcr: if dbcr:
tot_outstanding = flt(dbcr[0][0]) - flt(dbcr[0][1]) + \ tot_outstanding = flt(dbcr[0][0]) - flt(dbcr[0][1]) + \
@ -80,7 +80,7 @@ class DocType:
def validate_account_details(self, adv_adj): def validate_account_details(self, adv_adj):
"""Account must be ledger, active and not freezed""" """Account must be ledger, active and not freezed"""
ret = sql("""select group_or_ledger, docstatus, freeze_account, company ret = webnotes.conn.sql("""select group_or_ledger, docstatus, freeze_account, company
from tabAccount where name=%s""", self.doc.account, as_dict=1) from tabAccount where name=%s""", self.doc.account, as_dict=1)
if ret and ret[0]["group_or_ledger"]=='Group': if ret and ret[0]["group_or_ledger"]=='Group':
@ -145,7 +145,7 @@ class DocType:
def update_outstanding_amt(self): def update_outstanding_amt(self):
# get final outstanding amt # get final outstanding amt
bal = flt(sql("""select sum(debit) - sum(credit) from `tabGL Entry` bal = flt(webnotes.conn.sql("""select sum(debit) - sum(credit) from `tabGL Entry`
where against_voucher=%s and against_voucher_type=%s and account = %s where against_voucher=%s and against_voucher_type=%s and account = %s
and ifnull(is_cancelled,'No') = 'No'""", (self.doc.against_voucher, and ifnull(is_cancelled,'No') = 'No'""", (self.doc.against_voucher,
self.doc.against_voucher_type, self.doc.account))[0][0] or 0.0) self.doc.against_voucher_type, self.doc.account))[0][0] or 0.0)
@ -170,5 +170,5 @@ class DocType:
# Update outstanding amt on against voucher # Update outstanding amt on against voucher
if self.doc.against_voucher_type in ["Sales Invoice", "Purchase Invoice"]: if self.doc.against_voucher_type in ["Sales Invoice", "Purchase Invoice"]:
sql("update `tab%s` set outstanding_amount=%s where name='%s'"% webnotes.conn.sql("update `tab%s` set outstanding_amount=%s where name='%s'"%
(self.doc.against_voucher_type, bal, self.doc.against_voucher)) (self.doc.against_voucher_type, bal, self.doc.against_voucher))

View File

@ -43,7 +43,7 @@ class DocType:
ret['company'] = get_companies() ret['company'] = get_companies()
#--- to get fiscal year and start_date of that fiscal year ----- #--- to get fiscal year and start_date of that fiscal year -----
res = sql("select name, year_start_date from `tabFiscal Year`") res = webnotes.conn.sql("select name, year_start_date from `tabFiscal Year`")
ret['fiscal_year'] = [r[0] for r in res] ret['fiscal_year'] = [r[0] for r in res]
ret['start_dates'] = {} ret['start_dates'] = {}
for r in res: for r in res:
@ -51,7 +51,7 @@ class DocType:
#--- from month and to month (for MIS - Comparison Report) ------- #--- from month and to month (for MIS - Comparison Report) -------
month_list = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] month_list = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
fiscal_start_month = sql("select MONTH(year_start_date) from `tabFiscal Year` where name = %s",(webnotes.defaults.get_global_default("fiscal_year"))) fiscal_start_month = webnotes.conn.sql("select MONTH(year_start_date) from `tabFiscal Year` where name = %s",(webnotes.defaults.get_global_default("fiscal_year")))
fiscal_start_month = fiscal_start_month and fiscal_start_month[0][0] or 1 fiscal_start_month = fiscal_start_month and fiscal_start_month[0][0] or 1
mon = [''] mon = ['']
for i in range(fiscal_start_month,13): mon.append(month_list[i-1]) for i in range(fiscal_start_month,13): mon.append(month_list[i-1])
@ -106,7 +106,7 @@ class DocType:
def dates(self,fiscal_year,from_date,to_date): def dates(self,fiscal_year,from_date,to_date):
import datetime import datetime
ret = '' ret = ''
start_date = cstr(sql("select year_start_date from `tabFiscal Year` where name = %s",fiscal_year)[0][0]) start_date = cstr(webnotes.conn.sql("select year_start_date from `tabFiscal Year` where name = %s",fiscal_year)[0][0])
st_mon = cint(from_date.split('-')[1]) st_mon = cint(from_date.split('-')[1])
ed_mon = cint(to_date.split('-')[1]) ed_mon = cint(to_date.split('-')[1])
st_day = cint(from_date.split('-')[2]) st_day = cint(from_date.split('-')[2])
@ -151,7 +151,7 @@ class DocType:
def get_totals(self, args): def get_totals(self, args):
args = eval(args) args = eval(args)
#msgprint(args) #msgprint(args)
totals = sql("SELECT %s FROM %s WHERE %s %s %s %s" %(cstr(args['query_val']), cstr(args['tables']), cstr(args['company']), cstr(args['cond']), cstr(args['add_cond']), cstr(args['fil_cond'])), as_dict = 1)[0] totals = webnotes.conn.sql("SELECT %s FROM %s WHERE %s %s %s %s" %(cstr(args['query_val']), cstr(args['tables']), cstr(args['company']), cstr(args['cond']), cstr(args['add_cond']), cstr(args['fil_cond'])), as_dict = 1)[0]
#msgprint(totals) #msgprint(totals)
tot_keys = totals.keys() tot_keys = totals.keys()
# return in flt because JSON doesn't accept Decimal # return in flt because JSON doesn't accept Decimal
@ -184,7 +184,7 @@ class DocType:
# Get Children # Get Children
# ------------ # ------------
def get_children(self, parent_account, level, pl, company, fy): def get_children(self, parent_account, level, pl, company, fy):
cl = sql("select distinct account_name, name, debit_or_credit, lft, rgt from `tabAccount` where ifnull(parent_account, '') = %s and ifnull(is_pl_account, 'No')=%s and company=%s and docstatus != 2 order by name asc", (parent_account, pl, company)) cl = webnotes.conn.sql("select distinct account_name, name, debit_or_credit, lft, rgt from `tabAccount` where ifnull(parent_account, '') = %s and ifnull(is_pl_account, 'No')=%s and company=%s and docstatus != 2 order by name asc", (parent_account, pl, company))
level0_diff = [0 for p in self.period_list] level0_diff = [0 for p in self.period_list]
if pl=='Yes' and level==0: # switch for income & expenses if pl=='Yes' and level==0: # switch for income & expenses
cl = [c for c in cl] cl = [c for c in cl]
@ -237,7 +237,7 @@ class DocType:
def define_periods(self, year, period): def define_periods(self, year, period):
# get year start date # get year start date
ysd = sql("select year_start_date from `tabFiscal Year` where name=%s", year) ysd = webnotes.conn.sql("select year_start_date from `tabFiscal Year` where name=%s", year)
ysd = ysd and ysd[0][0] or '' ysd = ysd and ysd[0][0] or ''
self.ysd = ysd self.ysd = ysd

View File

@ -23,7 +23,7 @@ class DocType:
def validate_account_head(self): def validate_account_head(self):
acc_det = sql("select debit_or_credit, is_pl_account, group_or_ledger, company \ acc_det = webnotes.conn.sql("select debit_or_credit, is_pl_account, group_or_ledger, company \
from `tabAccount` where name = '%s'" % (self.doc.closing_account_head)) from `tabAccount` where name = '%s'" % (self.doc.closing_account_head))
# Account should be under liability # Account should be under liability
@ -43,7 +43,7 @@ class DocType:
def validate_posting_date(self): def validate_posting_date(self):
yr = sql("""select year_start_date, adddate(year_start_date, interval 1 year) yr = webnotes.conn.sql("""select year_start_date, adddate(year_start_date, interval 1 year)
from `tabFiscal Year` where name=%s""", (self.doc.fiscal_year, )) from `tabFiscal Year` where name=%s""", (self.doc.fiscal_year, ))
self.year_start_date = yr and yr[0][0] or '' self.year_start_date = yr and yr[0][0] or ''
self.year_end_date = yr and yr[0][1] or '' self.year_end_date = yr and yr[0][1] or ''
@ -54,7 +54,7 @@ class DocType:
raise Exception raise Exception
# Period Closing Entry # Period Closing Entry
pce = sql("select name from `tabPeriod Closing Voucher` \ pce = webnotes.conn.sql("select name from `tabPeriod Closing Voucher` \
where posting_date > '%s' and fiscal_year = '%s' and docstatus = 1" \ where posting_date > '%s' and fiscal_year = '%s' and docstatus = 1" \
% (self.doc.posting_date, self.doc.fiscal_year)) % (self.doc.posting_date, self.doc.fiscal_year))
if pce and pce[0][0]: if pce and pce[0][0]:
@ -64,13 +64,13 @@ class DocType:
def validate_pl_balances(self): def validate_pl_balances(self):
income_bal = sql("select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) \ income_bal = webnotes.conn.sql("select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) \
from `tabGL Entry` t1, tabAccount t2 where t1.account = t2.name \ from `tabGL Entry` t1, tabAccount t2 where t1.account = t2.name \
and t1.posting_date between '%s' and '%s' and t2.debit_or_credit = 'Credit' \ and t1.posting_date between '%s' and '%s' and t2.debit_or_credit = 'Credit' \
and t2.group_or_ledger = 'Ledger' and t2.is_pl_account = 'Yes' and t2.docstatus < 2 \ and t2.group_or_ledger = 'Ledger' and t2.is_pl_account = 'Yes' and t2.docstatus < 2 \
and t2.company = '%s'" % (self.year_start_date, self.doc.posting_date, self.doc.company)) and t2.company = '%s'" % (self.year_start_date, self.doc.posting_date, self.doc.company))
expense_bal = sql("select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) \ expense_bal = webnotes.conn.sql("select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) \
from `tabGL Entry` t1, tabAccount t2 where t1.account = t2.name \ from `tabGL Entry` t1, tabAccount t2 where t1.account = t2.name \
and t1.posting_date between '%s' and '%s' and t2.debit_or_credit = 'Debit' \ and t1.posting_date between '%s' and '%s' and t2.debit_or_credit = 'Debit' \
and t2.group_or_ledger = 'Ledger' and t2.is_pl_account = 'Yes' and t2.docstatus < 2 \ and t2.group_or_ledger = 'Ledger' and t2.is_pl_account = 'Yes' and t2.docstatus < 2 \
@ -86,7 +86,7 @@ class DocType:
def get_pl_balances(self, d_or_c): def get_pl_balances(self, d_or_c):
"""Get account (pl) specific balance""" """Get account (pl) specific balance"""
acc_bal = sql("select t1.account, sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) \ acc_bal = webnotes.conn.sql("select t1.account, sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) \
from `tabGL Entry` t1, `tabAccount` t2 where t1.account = t2.name and t2.group_or_ledger = 'Ledger' \ from `tabGL Entry` t1, `tabAccount` t2 where t1.account = t2.name and t2.group_or_ledger = 'Ledger' \
and ifnull(t2.is_pl_account, 'No') = 'Yes' and ifnull(is_cancelled, 'No') = 'No' \ and ifnull(t2.is_pl_account, 'No') = 'Yes' and ifnull(is_cancelled, 'No') = 'No' \
and t2.debit_or_credit = '%s' and t2.docstatus < 2 and t2.company = '%s' \ and t2.debit_or_credit = '%s' and t2.docstatus < 2 and t2.company = '%s' \
@ -169,7 +169,7 @@ class DocType:
def on_cancel(self): def on_cancel(self):
# get all submit entries of current closing entry voucher # get all submit entries of current closing entry voucher
gl_entries = sql("select account, debit, credit from `tabGL Entry` where voucher_type = 'Period Closing Voucher' and voucher_no = '%s' and ifnull(is_cancelled, 'No') = 'No'" % (self.doc.name)) gl_entries = webnotes.conn.sql("select account, debit, credit from `tabGL Entry` where voucher_type = 'Period Closing Voucher' and voucher_no = '%s' and ifnull(is_cancelled, 'No') = 'No'" % (self.doc.name))
# Swap Debit & Credit Column and make gl entry # Swap Debit & Credit Column and make gl entry
for gl in gl_entries: for gl in gl_entries:
@ -177,4 +177,4 @@ class DocType:
self.save_entry(fdict, is_cancel = 'Yes') self.save_entry(fdict, is_cancel = 'Yes')
# Update is_cancelled = 'Yes' to all gl entries for current voucher # Update is_cancelled = 'Yes' to all gl entries for current voucher
sql("update `tabGL Entry` set is_cancelled = 'Yes' where voucher_type = '%s' and voucher_no = '%s'" % (self.doc.doctype, self.doc.name)) webnotes.conn.sql("update `tabGL Entry` set is_cancelled = 'Yes' where voucher_type = '%s' and voucher_no = '%s'" % (self.doc.doctype, self.doc.name))

View File

@ -61,7 +61,7 @@ class DocType(BuyingController):
"purchase_receipt_details") "purchase_receipt_details")
def get_credit_to(self): def get_credit_to(self):
acc_head = sql("""select name, credit_days from `tabAccount` acc_head = webnotes.conn.sql("""select name, credit_days from `tabAccount`
where (name = %s or (master_name = %s and master_type = 'supplier')) where (name = %s or (master_name = %s and master_type = 'supplier'))
and docstatus != 2 and company = %s""", and docstatus != 2 and company = %s""",
(cstr(self.doc.supplier) + " - " + self.company_abbr, (cstr(self.doc.supplier) + " - " + self.company_abbr,
@ -88,14 +88,14 @@ class DocType(BuyingController):
return get_obj('Purchase Common').get_rate(arg,self) return get_obj('Purchase Common').get_rate(arg,self)
def get_rate1(self,acc): def get_rate1(self,acc):
rate = sql("select tax_rate from `tabAccount` where name='%s'"%(acc)) rate = webnotes.conn.sql("select tax_rate from `tabAccount` where name='%s'"%(acc))
ret={'add_tax_rate' :rate and flt(rate[0][0]) or 0 } ret={'add_tax_rate' :rate and flt(rate[0][0]) or 0 }
return ret return ret
def check_active_purchase_items(self): def check_active_purchase_items(self):
for d in getlist(self.doclist, 'entries'): for d in getlist(self.doclist, 'entries'):
if d.item_code: # extra condn coz item_code is not mandatory in PV if d.item_code: # extra condn coz item_code is not mandatory in PV
valid_item = sql("select docstatus,is_purchase_item from tabItem where name = %s",d.item_code) valid_item = webnotes.conn.sql("select docstatus,is_purchase_item from tabItem where name = %s",d.item_code)
if valid_item[0][0] == 2: if valid_item[0][0] == 2:
msgprint("Item : '%s' is Inactive, you can restore it from Trash" %(d.item_code)) msgprint("Item : '%s' is Inactive, you can restore it from Trash" %(d.item_code))
raise Exception raise Exception
@ -115,7 +115,7 @@ class DocType(BuyingController):
def validate_bill_no(self): def validate_bill_no(self):
if self.doc.bill_no and self.doc.bill_no.lower().strip() \ if self.doc.bill_no and self.doc.bill_no.lower().strip() \
not in ['na', 'not applicable', 'none']: not in ['na', 'not applicable', 'none']:
b_no = sql("""select bill_no, name, ifnull(is_opening,'') from `tabPurchase Invoice` b_no = webnotes.conn.sql("""select bill_no, name, ifnull(is_opening,'') from `tabPurchase Invoice`
where bill_no = %s and credit_to = %s and docstatus = 1 and name != %s""", where bill_no = %s and credit_to = %s and docstatus = 1 and name != %s""",
(self.doc.bill_no, self.doc.credit_to, self.doc.name)) (self.doc.bill_no, self.doc.credit_to, self.doc.name))
if b_no and cstr(b_no[0][2]) == cstr(self.doc.is_opening): if b_no and cstr(b_no[0][2]) == cstr(self.doc.is_opening):
@ -131,7 +131,7 @@ class DocType(BuyingController):
self.doc.remarks = "No Remarks" self.doc.remarks = "No Remarks"
def validate_credit_acc(self): def validate_credit_acc(self):
acc = sql("select debit_or_credit, is_pl_account from tabAccount where name = %s", acc = webnotes.conn.sql("select debit_or_credit, is_pl_account from tabAccount where name = %s",
self.doc.credit_to) self.doc.credit_to)
if not acc: if not acc:
msgprint("Account: "+ self.doc.credit_to + "does not exist") msgprint("Account: "+ self.doc.credit_to + "does not exist")
@ -147,7 +147,7 @@ class DocType(BuyingController):
# ------------------------------------------------------------ # ------------------------------------------------------------
def check_for_acc_head_of_supplier(self): def check_for_acc_head_of_supplier(self):
if self.doc.supplier and self.doc.credit_to: if self.doc.supplier and self.doc.credit_to:
acc_head = sql("select master_name from `tabAccount` where name = %s", self.doc.credit_to) acc_head = webnotes.conn.sql("select master_name from `tabAccount` where name = %s", self.doc.credit_to)
if (acc_head and cstr(acc_head[0][0]) != cstr(self.doc.supplier)) or (not acc_head and (self.doc.credit_to != cstr(self.doc.supplier) + " - " + self.company_abbr)): if (acc_head and cstr(acc_head[0][0]) != cstr(self.doc.supplier)) or (not acc_head and (self.doc.credit_to != cstr(self.doc.supplier) + " - " + self.company_abbr)):
msgprint("Credit To: %s do not match with Supplier: %s for Company: %s.\n If both correctly entered, please select Master Type and Master Name in account master." %(self.doc.credit_to,self.doc.supplier,self.doc.company), raise_exception=1) msgprint("Credit To: %s do not match with Supplier: %s for Company: %s.\n If both correctly entered, please select Master Type and Master Name in account master." %(self.doc.credit_to,self.doc.supplier,self.doc.company), raise_exception=1)
@ -159,7 +159,7 @@ class DocType(BuyingController):
for d in getlist(self.doclist,'entries'): for d in getlist(self.doclist,'entries'):
if d.purchase_order and not d.purchase_order in check_list and not d.purchase_receipt: if d.purchase_order and not d.purchase_order in check_list and not d.purchase_receipt:
check_list.append(d.purhcase_order) check_list.append(d.purhcase_order)
stopped = sql("select name from `tabPurchase Order` where status = 'Stopped' and name = '%s'" % d.purchase_order) stopped = webnotes.conn.sql("select name from `tabPurchase Order` where status = 'Stopped' and name = '%s'" % d.purchase_order)
if stopped: if stopped:
msgprint("One cannot do any transaction against 'Purchase Order' : %s, it's status is 'Stopped'" % (d.purhcase_order)) msgprint("One cannot do any transaction against 'Purchase Order' : %s, it's status is 'Stopped'" % (d.purhcase_order))
raise Exception raise Exception
@ -258,11 +258,11 @@ class DocType(BuyingController):
def check_prev_docstatus(self): def check_prev_docstatus(self):
for d in getlist(self.doclist,'entries'): for d in getlist(self.doclist,'entries'):
if d.purchase_order: if d.purchase_order:
submitted = sql("select name from `tabPurchase Order` where docstatus = 1 and name = '%s'" % d.purchase_order) submitted = webnotes.conn.sql("select name from `tabPurchase Order` where docstatus = 1 and name = '%s'" % d.purchase_order)
if not submitted: if not submitted:
webnotes.throw("Purchase Order : "+ cstr(d.purchase_order) +" is not submitted") webnotes.throw("Purchase Order : "+ cstr(d.purchase_order) +" is not submitted")
if d.purchase_receipt: if d.purchase_receipt:
submitted = sql("select name from `tabPurchase Receipt` where docstatus = 1 and name = '%s'" % d.purchase_receipt) submitted = webnotes.conn.sql("select name from `tabPurchase Receipt` where docstatus = 1 and name = '%s'" % d.purchase_receipt)
if not submitted: if not submitted:
webnotes.throw("Purchase Receipt : "+ cstr(d.purchase_receipt) +" is not submitted") webnotes.throw("Purchase Receipt : "+ cstr(d.purchase_receipt) +" is not submitted")

View File

@ -22,14 +22,14 @@ class DocType(BuyingController):
msgprint(_("You need to put at least one item in the item table."), raise_exception=True) msgprint(_("You need to put at least one item in the item table."), raise_exception=True)
def get_supplier_details(self, name = ''): def get_supplier_details(self, name = ''):
details = sql("select supplier_name,address from `tabSupplier` where name = '%s' and docstatus != 2" %(name), as_dict = 1) details = webnotes.conn.sql("select supplier_name,address from `tabSupplier` where name = '%s' and docstatus != 2" %(name), as_dict = 1)
if details: if details:
ret = { ret = {
'supplier_name' : details and details[0]['supplier_name'] or '', 'supplier_name' : details and details[0]['supplier_name'] or '',
'supplier_address' : details and details[0]['address'] or '' 'supplier_address' : details and details[0]['address'] or ''
} }
# ********** get primary contact details (this is done separately coz. , in case there is no primary contact thn it would not be able to fetch customer details in case of join query) # ********** get primary contact details (this is done separately coz. , in case there is no primary contact thn it would not be able to fetch customer details in case of join query)
contact_det = sql("select contact_name, contact_no, email_id from `tabContact` where supplier = '%s' and is_supplier = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(name), as_dict = 1) contact_det = webnotes.conn.sql("select contact_name, contact_no, email_id from `tabContact` where supplier = '%s' and is_supplier = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(name), as_dict = 1)
ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or '' ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or ''
return ret return ret
else: else:
@ -39,7 +39,7 @@ class DocType(BuyingController):
# Get Available Qty at Warehouse # Get Available Qty at Warehouse
def get_bin_details( self, arg = ''): def get_bin_details( self, arg = ''):
arg = eval(arg) arg = eval(arg)
bin = sql("select projected_qty from `tabBin` where item_code = %s and warehouse = %s", (arg['item_code'], arg['warehouse']), as_dict=1) bin = webnotes.conn.sql("select projected_qty from `tabBin` where item_code = %s and warehouse = %s", (arg['item_code'], arg['warehouse']), as_dict=1)
ret = { 'projected_qty' : bin and flt(bin[0]['projected_qty']) or 0 } ret = { 'projected_qty' : bin and flt(bin[0]['projected_qty']) or 0 }
return ret return ret
@ -69,7 +69,7 @@ class DocType(BuyingController):
# update last purchsae rate # update last purchsae rate
if last_purchase_rate: if last_purchase_rate:
sql("update `tabItem` set last_purchase_rate = %s where name = %s", webnotes.conn.sql("update `tabItem` set last_purchase_rate = %s where name = %s",
(flt(last_purchase_rate),d.item_code)) (flt(last_purchase_rate),d.item_code))
def get_last_purchase_rate(self, obj): def get_last_purchase_rate(self, obj):
@ -106,7 +106,7 @@ class DocType(BuyingController):
raise Exception raise Exception
# udpate with latest quantities # udpate with latest quantities
bin = sql("select projected_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1) bin = webnotes.conn.sql("select projected_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
f_lst ={'projected_qty': bin and flt(bin[0]['projected_qty']) or 0, 'ordered_qty': 0, 'received_qty' : 0} f_lst ={'projected_qty': bin and flt(bin[0]['projected_qty']) or 0, 'ordered_qty': 0, 'received_qty' : 0}
if d.doctype == 'Purchase Receipt Item': if d.doctype == 'Purchase Receipt Item':
@ -115,7 +115,7 @@ class DocType(BuyingController):
if d.fields.has_key(x): if d.fields.has_key(x):
d.fields[x] = f_lst[x] d.fields[x] = f_lst[x]
item = sql("select is_stock_item, is_purchase_item, is_sub_contracted_item, end_of_life from tabItem where name=%s", item = webnotes.conn.sql("select is_stock_item, is_purchase_item, is_sub_contracted_item, end_of_life from tabItem where name=%s",
d.item_code) d.item_code)
if not item: if not item:
msgprint("Item %s does not exist in Item Master." % cstr(d.item_code), raise_exception=True) msgprint("Item %s does not exist in Item Master." % cstr(d.item_code), raise_exception=True)
@ -138,7 +138,7 @@ class DocType(BuyingController):
# if is not stock item # if is not stock item
f = [d.schedule_date, d.item_code, d.description] f = [d.schedule_date, d.item_code, d.description]
ch = sql("select is_stock_item from `tabItem` where name = '%s'"%d.item_code) ch = webnotes.conn.sql("select is_stock_item from `tabItem` where name = '%s'"%d.item_code)
if ch and ch[0][0] == 'Yes': if ch and ch[0][0] == 'Yes':
# check for same items # check for same items
@ -164,18 +164,18 @@ class DocType(BuyingController):
# but if in Material Request uom KG it can change in PO # but if in Material Request uom KG it can change in PO
get_qty = (transaction == 'Material Request - Purchase Order') and 'qty * conversion_factor' or 'qty' get_qty = (transaction == 'Material Request - Purchase Order') and 'qty * conversion_factor' or 'qty'
qty = sql("select sum(%s) from `tab%s` where %s = '%s' and docstatus = 1 and parent != '%s'"% ( get_qty, curr_doctype, ref_tab_fname, ref_tab_dn, curr_parent_name)) qty = webnotes.conn.sql("select sum(%s) from `tab%s` where %s = '%s' and docstatus = 1 and parent != '%s'"% ( get_qty, curr_doctype, ref_tab_fname, ref_tab_dn, curr_parent_name))
qty = qty and flt(qty[0][0]) or 0 qty = qty and flt(qty[0][0]) or 0
# get total qty of ref doctype # get total qty of ref doctype
#-------------------- #--------------------
max_qty = sql("select qty from `tab%s` where name = '%s' and docstatus = 1"% (ref_doc_tname, ref_tab_dn)) max_qty = webnotes.conn.sql("select qty from `tab%s` where name = '%s' and docstatus = 1"% (ref_doc_tname, ref_tab_dn))
max_qty = max_qty and flt(max_qty[0][0]) or 0 max_qty = max_qty and flt(max_qty[0][0]) or 0
return cstr(qty)+'~~~'+cstr(max_qty) return cstr(qty)+'~~~'+cstr(max_qty)
def check_for_stopped_status(self, doctype, docname): def check_for_stopped_status(self, doctype, docname):
stopped = sql("select name from `tab%s` where name = '%s' and status = 'Stopped'" % stopped = webnotes.conn.sql("select name from `tab%s` where name = '%s' and status = 'Stopped'" %
( doctype, docname)) ( doctype, docname))
if stopped: if stopped:
msgprint("One cannot do any transaction against %s : %s, it's status is 'Stopped'" % msgprint("One cannot do any transaction against %s : %s, it's status is 'Stopped'" %
@ -183,7 +183,7 @@ class DocType(BuyingController):
def check_docstatus(self, check, doctype, docname , detail_doctype = ''): def check_docstatus(self, check, doctype, docname , detail_doctype = ''):
if check == 'Next': if check == 'Next':
submitted = sql("""select t1.name from `tab%s` t1,`tab%s` t2 submitted = webnotes.conn.sql("""select t1.name from `tab%s` t1,`tab%s` t2
where t1.name = t2.parent and t2.prevdoc_docname = %s and t1.docstatus = 1""" where t1.name = t2.parent and t2.prevdoc_docname = %s and t1.docstatus = 1"""
% (doctype, detail_doctype, '%s'), docname) % (doctype, detail_doctype, '%s'), docname)
if submitted: if submitted:
@ -191,7 +191,7 @@ class DocType(BuyingController):
+ _(" has already been submitted."), raise_exception=1) + _(" has already been submitted."), raise_exception=1)
if check == 'Previous': if check == 'Previous':
submitted = sql("""select name from `tab%s` submitted = webnotes.conn.sql("""select name from `tab%s`
where docstatus = 1 and name = %s"""% (doctype, '%s'), docname) where docstatus = 1 and name = %s"""% (doctype, '%s'), docname)
if not submitted: if not submitted:
msgprint(cstr(doctype) + ": " + cstr(submitted[0][0]) msgprint(cstr(doctype) + ": " + cstr(submitted[0][0])
@ -199,7 +199,7 @@ class DocType(BuyingController):
def get_rate(self, arg, obj): def get_rate(self, arg, obj):
arg = eval(arg) arg = eval(arg)
rate = sql("select account_type, tax_rate from `tabAccount` where name = %s" rate = webnotes.conn.sql("select account_type, tax_rate from `tabAccount` where name = %s"
, (arg['account_head']), as_dict=1) , (arg['account_head']), as_dict=1)
return {'rate': rate and (rate[0]['account_type'] == 'Tax' \ return {'rate': rate and (rate[0]['account_type'] == 'Tax' \
@ -208,6 +208,6 @@ class DocType(BuyingController):
def get_prevdoc_date(self, obj): def get_prevdoc_date(self, obj):
for d in getlist(obj.doclist, obj.fname): for d in getlist(obj.doclist, obj.fname):
if d.prevdoc_doctype and d.prevdoc_docname: if d.prevdoc_doctype and d.prevdoc_docname:
dt = sql("select transaction_date from `tab%s` where name = %s" dt = webnotes.conn.sql("select transaction_date from `tab%s` where name = %s"
% (d.prevdoc_doctype, '%s'), (d.prevdoc_docname)) % (d.prevdoc_doctype, '%s'), (d.prevdoc_docname))
d.prevdoc_date = dt and dt[0][0].strftime('%Y-%m-%d') or '' d.prevdoc_date = dt and dt[0][0].strftime('%Y-%m-%d') or ''

View File

@ -130,8 +130,8 @@ class DocType(BuyingController):
get_obj("Warehouse", d.warehouse).update_bin(args) get_obj("Warehouse", d.warehouse).update_bin(args)
def check_modified_date(self): def check_modified_date(self):
mod_db = sql("select modified from `tabPurchase Order` where name = '%s'" % self.doc.name) mod_db = webnotes.conn.sql("select modified from `tabPurchase Order` where name = '%s'" % self.doc.name)
date_diff = sql("select TIMEDIFF('%s', '%s')" % ( mod_db[0][0],cstr(self.doc.modified))) date_diff = webnotes.conn.sql("select TIMEDIFF('%s', '%s')" % ( mod_db[0][0],cstr(self.doc.modified)))
if date_diff and date_diff[0][0]: if date_diff and date_diff[0][0]:
msgprint(cstr(self.doc.doctype) +" => "+ cstr(self.doc.name) +" has been modified. Please Refresh. ") msgprint(cstr(self.doc.doctype) +" => "+ cstr(self.doc.name) +" has been modified. Please Refresh. ")
@ -170,7 +170,7 @@ class DocType(BuyingController):
pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Receipt', docname = self.doc.name, detail_doctype = 'Purchase Receipt Item') pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Receipt', docname = self.doc.name, detail_doctype = 'Purchase Receipt Item')
# Check if Purchase Invoice has been submitted against current Purchase Order # Check if Purchase Invoice has been submitted against current Purchase Order
submitted = sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_order = '%s' and t1.docstatus = 1" % self.doc.name) submitted = webnotes.conn.sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_order = '%s' and t1.docstatus = 1" % self.doc.name)
if submitted: if submitted:
msgprint("Purchase Invoice : " + cstr(submitted[0][0]) + " has already been submitted !") msgprint("Purchase Invoice : " + cstr(submitted[0][0]) + " has already been submitted !")
raise Exception raise Exception

View File

@ -28,7 +28,7 @@ class DocType(TransactionBase):
self.doc.name = make_autoname(self.doc.naming_series + '.#####') self.doc.name = make_autoname(self.doc.naming_series + '.#####')
def update_credit_days_limit(self): def update_credit_days_limit(self):
sql("""update tabAccount set credit_days = %s where name = %s""", webnotes.conn.sql("""update tabAccount set credit_days = %s where name = %s""",
(cint(self.doc.credit_days), self.doc.name + " - " + self.get_company_abbr())) (cint(self.doc.credit_days), self.doc.name + " - " + self.get_company_abbr()))
def on_update(self): def on_update(self):
@ -42,7 +42,7 @@ class DocType(TransactionBase):
self.update_credit_days_limit() self.update_credit_days_limit()
def get_payables_group(self): def get_payables_group(self):
g = sql("select payables_group from tabCompany where name=%s", self.doc.company) g = webnotes.conn.sql("select payables_group from tabCompany where name=%s", self.doc.company)
g = g and g[0][0] or '' g = g and g[0][0] or ''
if not g: if not g:
msgprint("Update Company master, assign a default group for Payables") msgprint("Update Company master, assign a default group for Payables")
@ -64,14 +64,14 @@ class DocType(TransactionBase):
msgprint(_("Created Group ") + ac) msgprint(_("Created Group ") + ac)
def get_company_abbr(self): def get_company_abbr(self):
return 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]
def get_parent_account(self, abbr): def get_parent_account(self, abbr):
if (not self.doc.supplier_type): if (not self.doc.supplier_type):
msgprint("Supplier Type is mandatory") msgprint("Supplier Type is mandatory")
raise Exception raise Exception
if not sql("select name from tabAccount where name=%s and debit_or_credit = 'Credit' and ifnull(is_pl_account, 'No') = 'No'", (self.doc.supplier_type + " - " + abbr)): if not webnotes.conn.sql("select name from tabAccount where name=%s and debit_or_credit = 'Credit' and ifnull(is_pl_account, 'No') = 'No'", (self.doc.supplier_type + " - " + abbr)):
# if not group created , create it # if not group created , create it
self.add_account(self.doc.supplier_type, self.get_payables_group(), abbr) self.add_account(self.doc.supplier_type, self.get_payables_group(), abbr)
@ -89,7 +89,7 @@ class DocType(TransactionBase):
abbr = self.get_company_abbr() abbr = self.get_company_abbr()
parent_account = self.get_parent_account(abbr) parent_account = self.get_parent_account(abbr)
if not sql("select name from tabAccount where name=%s", (self.doc.name + " - " + abbr)): if not webnotes.conn.sql("select name from tabAccount where name=%s", (self.doc.name + " - " + abbr)):
ac_bean = webnotes.bean({ ac_bean = webnotes.bean({
"doctype": "Account", "doctype": "Account",
'account_name': self.doc.name, 'account_name': self.doc.name,
@ -120,15 +120,15 @@ class DocType(TransactionBase):
def get_contacts(self,nm): def get_contacts(self,nm):
if nm: if nm:
contact_details =webnotes.conn.convert_to_lists(sql("select name, CONCAT(IFNULL(first_name,''),' ',IFNULL(last_name,'')),contact_no,email_id from `tabContact` where supplier = '%s'"%nm)) contact_details =webnotes.conn.convert_to_lists(webnotes.conn.sql("select name, CONCAT(IFNULL(first_name,''),' ',IFNULL(last_name,'')),contact_no,email_id from `tabContact` where supplier = '%s'"%nm))
return contact_details return contact_details
else: else:
return '' return ''
def delete_supplier_address(self): def delete_supplier_address(self):
for rec in sql("select * from `tabAddress` where supplier=%s", (self.doc.name,), as_dict=1): for rec in webnotes.conn.sql("select * from `tabAddress` where supplier=%s", (self.doc.name,), as_dict=1):
sql("delete from `tabAddress` where name=%s",(rec['name'])) webnotes.conn.sql("delete from `tabAddress` where name=%s",(rec['name']))
def delete_supplier_contact(self): def delete_supplier_contact(self):
for contact in webnotes.conn.sql_list("""select name from `tabContact` for contact in webnotes.conn.sql_list("""select name from `tabContact`
@ -137,7 +137,7 @@ class DocType(TransactionBase):
def delete_supplier_account(self): def delete_supplier_account(self):
"""delete supplier's ledger if exist and check balance before deletion""" """delete supplier's ledger if exist and check balance before deletion"""
acc = sql("select name from `tabAccount` where master_type = 'Supplier' \ acc = webnotes.conn.sql("select name from `tabAccount` where master_type = 'Supplier' \
and master_name = %s and docstatus < 2", self.doc.name) and master_name = %s and docstatus < 2", self.doc.name)
if acc: if acc:
from webnotes.model import delete_doc from webnotes.model import delete_doc
@ -160,7 +160,7 @@ class DocType(TransactionBase):
('Purchase Receipt', 'supplier'), ('Purchase Receipt', 'supplier'),
('Serial No', 'supplier')] ('Serial No', 'supplier')]
for rec in update_fields: for rec in update_fields:
sql("update `tab%s` set supplier_name = %s where `%s` = %s" % \ webnotes.conn.sql("update `tab%s` set supplier_name = %s where `%s` = %s" % \
(rec[0], '%s', rec[1], '%s'), (new, old)) (rec[0], '%s', rec[1], '%s'), (new, old))
for account in webnotes.conn.sql("""select name, account_name from for account in webnotes.conn.sql("""select name, account_name from

View File

@ -14,7 +14,7 @@ class DocType:
self.doclist = doclist self.doclist = doclist
def validate_duplicate_record(self): def validate_duplicate_record(self):
res = sql("""select name from `tabAttendance` where employee = %s and att_date = %s res = webnotes.conn.sql("""select name from `tabAttendance` where employee = %s and att_date = %s
and name != %s and docstatus = 1""", and name != %s and docstatus = 1""",
(self.doc.employee, self.doc.att_date, self.doc.name)) (self.doc.employee, self.doc.att_date, self.doc.name))
if res: if res:
@ -23,7 +23,7 @@ class DocType:
def check_leave_record(self): def check_leave_record(self):
if self.doc.status == 'Present': if self.doc.status == 'Present':
leave = sql("""select name from `tabLeave Application` leave = webnotes.conn.sql("""select name from `tabLeave Application`
where employee = %s and %s between from_date and to_date and status = 'Approved' where employee = %s and %s between from_date and to_date and status = 'Approved'
and docstatus = 1""", (self.doc.employee, self.doc.att_date)) and docstatus = 1""", (self.doc.employee, self.doc.att_date))
@ -41,7 +41,7 @@ class DocType:
msgprint(_("Attendance can not be marked for future dates"), raise_exception=1) msgprint(_("Attendance can not be marked for future dates"), raise_exception=1)
def validate_employee(self): def validate_employee(self):
emp = sql("select name from `tabEmployee` where name = %s and status = 'Active'", emp = webnotes.conn.sql("select name from `tabEmployee` where name = %s and status = 'Active'",
self.doc.employee) self.doc.employee)
if not emp: if not emp:
msgprint(_("Employee: ") + self.doc.employee + msgprint(_("Employee: ") + self.doc.employee +

View File

@ -36,7 +36,7 @@ class DocType:
def check_existing_leave_allocation(self): def check_existing_leave_allocation(self):
"""check whether leave for same type is already allocated or not""" """check whether leave for same type is already allocated or not"""
leave_allocation = sql("""select name from `tabLeave Allocation` leave_allocation = webnotes.conn.sql("""select name from `tabLeave Allocation`
where employee=%s and leave_type=%s and fiscal_year=%s and docstatus=1""", where employee=%s and leave_type=%s and fiscal_year=%s and docstatus=1""",
(self.doc.employee, self.doc.leave_type, self.doc.fiscal_year)) (self.doc.employee, self.doc.leave_type, self.doc.fiscal_year))
if leave_allocation: if leave_allocation:
@ -63,14 +63,14 @@ class DocType:
return self.get_leaves_allocated(prev_fyear) - self.get_leaves_applied(prev_fyear) return self.get_leaves_allocated(prev_fyear) - self.get_leaves_applied(prev_fyear)
def get_leaves_applied(self, fiscal_year): def get_leaves_applied(self, fiscal_year):
leaves_applied = sql("""select SUM(ifnull(total_leave_days, 0)) leaves_applied = webnotes.conn.sql("""select SUM(ifnull(total_leave_days, 0))
from `tabLeave Application` where employee=%s and leave_type=%s from `tabLeave Application` where employee=%s and leave_type=%s
and fiscal_year=%s and docstatus=1""", and fiscal_year=%s and docstatus=1""",
(self.doc.employee, self.doc.leave_type, fiscal_year)) (self.doc.employee, self.doc.leave_type, fiscal_year))
return leaves_applied and flt(leaves_applied[0][0]) or 0 return leaves_applied and flt(leaves_applied[0][0]) or 0
def get_leaves_allocated(self, fiscal_year): def get_leaves_allocated(self, fiscal_year):
leaves_allocated = sql("""select SUM(ifnull(total_leaves_allocated, 0)) leaves_allocated = webnotes.conn.sql("""select SUM(ifnull(total_leaves_allocated, 0))
from `tabLeave Allocation` where employee=%s and leave_type=%s from `tabLeave Allocation` where employee=%s and leave_type=%s
and fiscal_year=%s and docstatus=1 and name!=%s""", and fiscal_year=%s and docstatus=1 and name!=%s""",
(self.doc.employee, self.doc.leave_type, fiscal_year, self.doc.name)) (self.doc.employee, self.doc.leave_type, fiscal_year, self.doc.name))
@ -78,7 +78,7 @@ class DocType:
def allow_carry_forward(self): def allow_carry_forward(self):
"""check whether carry forward is allowed or not for this leave type""" """check whether carry forward is allowed or not for this leave type"""
cf = sql("""select is_carry_forward from `tabLeave Type` where name = %s""", cf = webnotes.conn.sql("""select is_carry_forward from `tabLeave Type` where name = %s""",
self.doc.leave_type) self.doc.leave_type)
cf = cf and cint(cf[0][0]) or 0 cf = cf and cint(cf[0][0]) or 0
if not cf: if not cf:
@ -109,7 +109,7 @@ class DocType:
webnotes.conn.set(self.doc,'total_leaves_allocated',flt(leave_det['total_leaves_allocated'])) webnotes.conn.set(self.doc,'total_leaves_allocated',flt(leave_det['total_leaves_allocated']))
def check_for_leave_application(self): def check_for_leave_application(self):
exists = sql("""select name from `tabLeave Application` exists = webnotes.conn.sql("""select name from `tabLeave Application`
where employee=%s and leave_type=%s and fiscal_year=%s and docstatus=1""", where employee=%s and leave_type=%s and fiscal_year=%s and docstatus=1""",
(self.doc.employee, self.doc.leave_type, self.doc.fiscal_year)) (self.doc.employee, self.doc.leave_type, self.doc.fiscal_year))
if exists: if exists:

View File

@ -33,7 +33,7 @@ class DocType:
emp_query = "select name from `tabEmployee` " emp_query = "select name from `tabEmployee` "
if flag == 1: if flag == 1:
emp_query += condition emp_query += condition
e = sql(emp_query) e = webnotes.conn.sql(emp_query)
return e return e
# ---------------- # ----------------

View File

@ -29,7 +29,7 @@ class DocType:
cond = self.get_filter_condition() cond = self.get_filter_condition()
cond += self.get_joining_releiving_condition() cond += self.get_joining_releiving_condition()
emp_list = sql(""" emp_list = webnotes.conn.sql("""
select t1.name select t1.name
from `tabEmployee` t1, `tabSalary Structure` t2 from `tabEmployee` t1, `tabSalary Structure` t2
where t1.docstatus!=2 and t2.docstatus != 2 where t1.docstatus!=2 and t2.docstatus != 2
@ -67,7 +67,7 @@ class DocType:
def get_month_details(self, year, month): def get_month_details(self, year, month):
ysd = sql("select year_start_date from `tabFiscal Year` where name ='%s'"%year)[0][0] ysd = webnotes.conn.sql("select year_start_date from `tabFiscal Year` where name ='%s'"%year)[0][0]
if ysd: if ysd:
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
import calendar, datetime import calendar, datetime
@ -95,7 +95,7 @@ class DocType:
emp_list = self.get_emp_list() emp_list = self.get_emp_list()
ss_list = [] ss_list = []
for emp in emp_list: for emp in emp_list:
if not sql("""select name from `tabSalary Slip` if not webnotes.conn.sql("""select name from `tabSalary Slip`
where docstatus!= 2 and employee = %s and month = %s and fiscal_year = %s and company = %s where docstatus!= 2 and employee = %s and month = %s and fiscal_year = %s and company = %s
""", (emp[0], self.doc.month, self.doc.fiscal_year, self.doc.company)): """, (emp[0], self.doc.month, self.doc.fiscal_year, self.doc.company)):
ss = webnotes.bean({ ss = webnotes.bean({
@ -126,7 +126,7 @@ class DocType:
which are not submitted which are not submitted
""" """
cond = self.get_filter_condition() cond = self.get_filter_condition()
ss_list = sql(""" ss_list = webnotes.conn.sql("""
select t1.name from `tabSalary Slip` t1 select t1.name from `tabSalary Slip` t1
where t1.docstatus = 0 and month = '%s' and fiscal_year = '%s' %s where t1.docstatus = 0 and month = '%s' and fiscal_year = '%s' %s
""" % (self.doc.month, self.doc.fiscal_year, cond)) """ % (self.doc.month, self.doc.fiscal_year, cond))
@ -188,7 +188,7 @@ class DocType:
Get total salary amount from submitted salary slip based on selected criteria Get total salary amount from submitted salary slip based on selected criteria
""" """
cond = self.get_filter_condition() cond = self.get_filter_condition()
tot = sql(""" tot = webnotes.conn.sql("""
select sum(rounded_total) from `tabSalary Slip` t1 select sum(rounded_total) from `tabSalary Slip` t1
where t1.docstatus = 1 and month = '%s' and fiscal_year = '%s' %s where t1.docstatus = 1 and month = '%s' and fiscal_year = '%s' %s
""" % (self.doc.month, self.doc.fiscal_year, cond)) """ % (self.doc.month, self.doc.fiscal_year, cond))
@ -201,7 +201,7 @@ class DocType:
get default bank account,default salary acount from company get default bank account,default salary acount from company
""" """
amt = self.get_total_salary() amt = self.get_total_salary()
com = sql("select default_bank_account from `tabCompany` where name = '%s'" % self.doc.company) com = webnotes.conn.sql("select default_bank_account from `tabCompany` where name = '%s'" % self.doc.company)
if not com[0][0] or not com[0][1]: if not com[0][0] or not com[0][1]:
msgprint("You can set Default Bank Account in Company master.") msgprint("You can set Default Bank Account in Company master.")

View File

@ -9,7 +9,7 @@ test_records = []
# from webnotes.model.doc import Document # from webnotes.model.doc import Document
# from webnotes.model.code import get_obj # from webnotes.model.code import get_obj
# sql = webnotes.conn.sql # webnotes.conn.sql = webnotes.conn.sql
# #
# class TestSalaryManager(unittest.TestCase): # class TestSalaryManager(unittest.TestCase):
# def setUp(self): # def setUp(self):
@ -20,15 +20,15 @@ test_records = []
# ss1[0].employee = emp1.name # ss1[0].employee = emp1.name
# for s in ss1: s.save(1) # for s in ss1: s.save(1)
# for s in ss1[1:]: # for s in ss1[1:]:
# sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name)) # webnotes.conn.sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
# sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name)) # webnotes.conn.sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
# #
# #
# ss2[0].employee = emp2.name # ss2[0].employee = emp2.name
# for s in ss2: s.save(1) # for s in ss2: s.save(1)
# for s in ss2[1:]: # for s in ss2[1:]:
# sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name)) # webnotes.conn.sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
# sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name)) # webnotes.conn.sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
# #
# sman.save() # sman.save()
# self.sm = get_obj('Salary Manager') # self.sm = get_obj('Salary Manager')
@ -36,7 +36,7 @@ test_records = []
# self.sm.create_sal_slip() # self.sm.create_sal_slip()
# #
# def test_creation(self): # def test_creation(self):
# ssid = sql(""" # ssid = webnotes.conn.sql("""
# select name, department # select name, department
# from `tabSalary Slip` # from `tabSalary Slip`
# where month = '08' and fiscal_year='2011-2012'""") # where month = '08' and fiscal_year='2011-2012'""")
@ -46,7 +46,7 @@ test_records = []
# #
# #
# def test_lwp_calc(self): # def test_lwp_calc(self):
# ss = sql(""" # ss = webnotes.conn.sql("""
# select payment_days # select payment_days
# from `tabSalary Slip` # from `tabSalary Slip`
# where month = '08' and fiscal_year='2011-2012' and employee = '%s' # where month = '08' and fiscal_year='2011-2012' and employee = '%s'

View File

@ -31,7 +31,7 @@ class DocType(TransactionBase):
def check_sal_struct(self): def check_sal_struct(self):
struct = sql("select name from `tabSalary Structure` where employee ='%s' and is_active = 'Yes' "%self.doc.employee) struct = webnotes.conn.sql("select name from `tabSalary Structure` where employee ='%s' and is_active = 'Yes' "%self.doc.employee)
if not struct: if not struct:
msgprint("Please create Salary Structure for employee '%s'"%self.doc.employee) msgprint("Please create Salary Structure for employee '%s'"%self.doc.employee)
self.doc.employee = '' self.doc.employee = ''
@ -99,13 +99,13 @@ class DocType(TransactionBase):
return payment_days return payment_days
def get_holidays_for_employee(self, m): def get_holidays_for_employee(self, m):
holidays = sql("""select t1.holiday_date holidays = webnotes.conn.sql("""select t1.holiday_date
from `tabHoliday` t1, tabEmployee t2 from `tabHoliday` t1, tabEmployee t2
where t1.parent = t2.holiday_list and t2.name = %s where t1.parent = t2.holiday_list and t2.name = %s
and t1.holiday_date between %s and %s""", and t1.holiday_date between %s and %s""",
(self.doc.employee, m['month_start_date'], m['month_end_date'])) (self.doc.employee, m['month_start_date'], m['month_end_date']))
if not holidays: if not holidays:
holidays = sql("""select t1.holiday_date holidays = webnotes.conn.sql("""select t1.holiday_date
from `tabHoliday` t1, `tabHoliday List` t2 from `tabHoliday` t1, `tabHoliday List` t2
where t1.parent = t2.name and ifnull(t2.is_default, 0) = 1 where t1.parent = t2.name and ifnull(t2.is_default, 0) = 1
and t2.fiscal_year = %s and t2.fiscal_year = %s
@ -119,7 +119,7 @@ class DocType(TransactionBase):
for d in range(m['month_days']): for d in range(m['month_days']):
dt = add_days(cstr(m['month_start_date']), d) dt = add_days(cstr(m['month_start_date']), d)
if dt not in holidays: if dt not in holidays:
leave = sql(""" leave = webnotes.conn.sql("""
select t1.name, t1.half_day select t1.name, t1.half_day
from `tabLeave Application` t1, `tabLeave Type` t2 from `tabLeave Application` t1, `tabLeave Type` t2
where t2.name = t1.leave_type where t2.name = t1.leave_type
@ -133,7 +133,7 @@ class DocType(TransactionBase):
return lwp return lwp
def check_existing(self): def check_existing(self):
ret_exist = sql("""select name from `tabSalary Slip` ret_exist = webnotes.conn.sql("""select name from `tabSalary Slip`
where month = %s and fiscal_year = %s and docstatus != 2 where month = %s and fiscal_year = %s and docstatus != 2
and employee = %s and name != %s""", and employee = %s and name != %s""",
(self.doc.month, self.doc.fiscal_year, self.doc.employee, self.doc.name)) (self.doc.month, self.doc.fiscal_year, self.doc.employee, self.doc.name))
@ -200,9 +200,9 @@ class DocType(TransactionBase):
receiver = webnotes.conn.get_value("Employee", self.doc.employee, "company_email") receiver = webnotes.conn.get_value("Employee", self.doc.employee, "company_email")
if receiver: if receiver:
subj = 'Salary Slip - ' + cstr(self.doc.month) +'/'+cstr(self.doc.fiscal_year) subj = 'Salary Slip - ' + cstr(self.doc.month) +'/'+cstr(self.doc.fiscal_year)
earn_ret=sql("""select e_type, e_modified_amount from `tabSalary Slip Earning` earn_ret=webnotes.conn.sql("""select e_type, e_modified_amount from `tabSalary Slip Earning`
where parent = %s""", self.doc.name) where parent = %s""", self.doc.name)
ded_ret=sql("""select d_type, d_modified_amount from `tabSalary Slip Deduction` ded_ret=webnotes.conn.sql("""select d_type, d_modified_amount from `tabSalary Slip Deduction`
where parent = %s""", self.doc.name) where parent = %s""", self.doc.name)
earn_table = '' earn_table = ''

View File

@ -19,7 +19,7 @@ class DocType:
def get_employee_details(self): def get_employee_details(self):
ret = {} ret = {}
det = sql("""select employee_name, branch, designation, department, grade det = webnotes.conn.sql("""select employee_name, branch, designation, department, grade
from `tabEmployee` where name = %s""", self.doc.employee) from `tabEmployee` where name = %s""", self.doc.employee)
if det: if det:
ret = { ret = {
@ -33,7 +33,7 @@ class DocType:
return ret return ret
def get_ss_values(self,employee): def get_ss_values(self,employee):
basic_info = sql("""select bank_name, bank_ac_no, esic_card_no, pf_number basic_info = webnotes.conn.sql("""select bank_name, bank_ac_no, esic_card_no, pf_number
from `tabEmployee` where name =%s""", employee) from `tabEmployee` where name =%s""", employee)
ret = {'bank_name': basic_info and basic_info[0][0] or '', ret = {'bank_name': basic_info and basic_info[0][0] or '',
'bank_ac_no': basic_info and basic_info[0][1] or '', 'bank_ac_no': basic_info and basic_info[0][1] or '',
@ -42,7 +42,7 @@ class DocType:
return ret return ret
def make_table(self, doct_name, tab_fname, tab_name): def make_table(self, doct_name, tab_fname, tab_name):
list1 = sql("select name from `tab%s` where docstatus != 2" % doct_name) list1 = webnotes.conn.sql("select name from `tab%s` where docstatus != 2" % doct_name)
for li in list1: for li in list1:
child = addchild(self.doc, tab_fname, tab_name, self.doclist) child = addchild(self.doc, tab_fname, tab_name, self.doclist)
if(tab_fname == 'earning_details'): if(tab_fname == 'earning_details'):
@ -57,7 +57,7 @@ class DocType:
self.make_table('Deduction Type','deduction_details', 'Salary Structure Deduction') self.make_table('Deduction Type','deduction_details', 'Salary Structure Deduction')
def check_existing(self): def check_existing(self):
ret = sql("""select name from `tabSalary Structure` where is_active = 'Yes' ret = webnotes.conn.sql("""select name from `tabSalary Structure` where is_active = 'Yes'
and employee = %s and name!=%s""", (self.doc.employee,self.doc.name)) and employee = %s and name!=%s""", (self.doc.employee,self.doc.name))
if ret and self.doc.is_active=='Yes': if ret and self.doc.is_active=='Yes':
msgprint(_("""Another Salary Structure '%s' is active for employee '%s'. msgprint(_("""Another Salary Structure '%s' is active for employee '%s'.

View File

@ -17,7 +17,7 @@ class DocType:
self.doclist = doclist self.doclist = doclist
def autoname(self): def autoname(self):
last_name = sql("""select max(name) from `tabBOM` last_name = webnotes.conn.sql("""select max(name) from `tabBOM`
where name like "BOM/%s/%%" """ % cstr(self.doc.item).replace('"', '\\"')) where name like "BOM/%s/%%" """ % cstr(self.doc.item).replace('"', '\\"'))
if last_name: if last_name:
idx = cint(cstr(last_name[0][0]).split('/')[-1].split('-')[0]) + 1 idx = cint(cstr(last_name[0][0]).split('/')[-1].split('-')[0]) + 1
@ -143,7 +143,7 @@ class DocType:
webnotes.bean(self.doclist).update_after_submit() webnotes.bean(self.doclist).update_after_submit()
def get_bom_unitcost(self, bom_no): def get_bom_unitcost(self, bom_no):
bom = sql("""select name, total_cost/quantity as unit_cost from `tabBOM` bom = webnotes.conn.sql("""select name, total_cost/quantity as unit_cost from `tabBOM`
where is_active = 1 and name = %s""", bom_no, as_dict=1) where is_active = 1 and name = %s""", bom_no, as_dict=1)
return bom and bom[0]['unit_cost'] or 0 return bom and bom[0]['unit_cost'] or 0
@ -155,7 +155,7 @@ class DocType:
from stock.utils import get_incoming_rate from stock.utils import get_incoming_rate
dt = self.doc.costing_date or nowdate() dt = self.doc.costing_date or nowdate()
time = self.doc.costing_date == nowdate() and now().split()[1] or '23:59' time = self.doc.costing_date == nowdate() and now().split()[1] or '23:59'
warehouse = sql("select warehouse from `tabBin` where item_code = %s", args['item_code']) warehouse = webnotes.conn.sql("select warehouse from `tabBin` where item_code = %s", args['item_code'])
rate = [] rate = []
for wh in warehouse: for wh in warehouse:
r = get_incoming_rate({ r = get_incoming_rate({
@ -183,7 +183,7 @@ class DocType:
if not self.doc.is_active: if not self.doc.is_active:
webnotes.conn.set(self.doc, "is_default", 0) webnotes.conn.set(self.doc, "is_default", 0)
sql("update `tabItem` set default_bom = null where name = %s and default_bom = %s", webnotes.conn.sql("update `tabItem` set default_bom = null where name = %s and default_bom = %s",
(self.doc.item, self.doc.name)) (self.doc.item, self.doc.name))
def clear_operations(self): def clear_operations(self):
@ -249,7 +249,7 @@ class DocType:
def validate_bom_no(self, item, bom_no, idx): def validate_bom_no(self, item, bom_no, idx):
"""Validate BOM No of sub-contracted items""" """Validate BOM No of sub-contracted items"""
bom = sql("""select name from `tabBOM` where name = %s and item = %s bom = webnotes.conn.sql("""select name from `tabBOM` where name = %s and item = %s
and is_active=1 and docstatus=1""", and is_active=1 and docstatus=1""",
(bom_no, item), as_dict =1) (bom_no, item), as_dict =1)
if not bom: if not bom:
@ -271,7 +271,7 @@ class DocType:
for d in check_list: for d in check_list:
bom_list, count = [self.doc.name], 0 bom_list, count = [self.doc.name], 0
while (len(bom_list) > count ): while (len(bom_list) > count ):
boms = sql(" select %s from `tabBOM Item` where %s = '%s' " % boms = webnotes.conn.sql(" select %s from `tabBOM Item` where %s = '%s' " %
(d[0], d[1], cstr(bom_list[count]))) (d[0], d[1], cstr(bom_list[count])))
count = count + 1 count = count + 1
for b in boms: for b in boms:
@ -363,7 +363,7 @@ class DocType:
def get_child_exploded_items(self, bom_no, qty): def get_child_exploded_items(self, bom_no, qty):
""" Add all items from Flat BOM of child BOM""" """ Add all items from Flat BOM of child BOM"""
child_fb_items = sql("""select item_code, description, stock_uom, qty, rate, child_fb_items = webnotes.conn.sql("""select item_code, description, stock_uom, qty, rate,
qty_consumed_per_unit from `tabBOM Explosion Item` qty_consumed_per_unit from `tabBOM Explosion Item`
where parent = %s and docstatus = 1""", bom_no, as_dict = 1) where parent = %s and docstatus = 1""", bom_no, as_dict = 1)
@ -389,12 +389,12 @@ class DocType:
ch.save(1) ch.save(1)
def get_parent_bom_list(self, bom_no): def get_parent_bom_list(self, bom_no):
p_bom = sql("select parent from `tabBOM Item` where bom_no = '%s'" % bom_no) p_bom = webnotes.conn.sql("select parent from `tabBOM Item` where bom_no = '%s'" % bom_no)
return p_bom and [i[0] for i in p_bom] or [] return p_bom and [i[0] for i in p_bom] or []
def validate_bom_links(self): def validate_bom_links(self):
if not self.doc.is_active: if not self.doc.is_active:
act_pbom = sql("""select distinct bom_item.parent from `tabBOM Item` bom_item act_pbom = webnotes.conn.sql("""select distinct bom_item.parent from `tabBOM Item` bom_item
where bom_item.bom_no = %s and bom_item.docstatus = 1 where bom_item.bom_no = %s and bom_item.docstatus = 1
and exists (select * from `tabBOM` where name = bom_item.parent and exists (select * from `tabBOM` where name = bom_item.parent
and docstatus = 1 and is_active = 1)""", self.doc.name) and docstatus = 1 and is_active = 1)""", self.doc.name)

View File

@ -22,14 +22,14 @@ class DocType:
"In Process", "Completed", "Cancelled"]) "In Process", "Completed", "Cancelled"])
if self.doc.production_item : if self.doc.production_item :
item_detail = sql("select name from `tabItem` where name = '%s' and docstatus != 2" item_detail = webnotes.conn.sql("select name from `tabItem` where name = '%s' and docstatus != 2"
% self.doc.production_item, as_dict = 1) % self.doc.production_item, as_dict = 1)
if not item_detail: if not item_detail:
msgprint("Item '%s' does not exist or cancelled in the system." msgprint("Item '%s' does not exist or cancelled in the system."
% cstr(self.doc.production_item), raise_exception=1) % cstr(self.doc.production_item), raise_exception=1)
if self.doc.bom_no: if self.doc.bom_no:
bom = sql("""select name from `tabBOM` where name=%s and docstatus=1 bom = webnotes.conn.sql("""select name from `tabBOM` where name=%s and docstatus=1
and is_active=1 and item=%s""" and is_active=1 and item=%s"""
, (self.doc.bom_no, self.doc.production_item), as_dict =1) , (self.doc.bom_no, self.doc.production_item), as_dict =1)
if not bom: if not bom:
@ -103,7 +103,7 @@ class DocType:
def on_cancel(self): def on_cancel(self):
# Check whether any stock entry exists against this Production Order # Check whether any stock entry exists against this Production Order
stock_entry = sql("""select name from `tabStock Entry` stock_entry = webnotes.conn.sql("""select name from `tabStock Entry`
where production_order = %s and docstatus = 1""", self.doc.name) where production_order = %s and docstatus = 1""", self.doc.name)
if stock_entry: if stock_entry:
msgprint("""Submitted Stock Entry %s exists against this production order. msgprint("""Submitted Stock Entry %s exists against this production order.

View File

@ -18,7 +18,7 @@ class DocType:
def get_so_details(self, so): def get_so_details(self, so):
"""Pull other details from so""" """Pull other details from so"""
so = sql("""select transaction_date, customer, grand_total so = webnotes.conn.sql("""select transaction_date, customer, grand_total
from `tabSales Order` where name = %s""", so, as_dict = 1) from `tabSales Order` where name = %s""", so, as_dict = 1)
ret = { ret = {
'sales_order_date': so and so[0]['transaction_date'] or '', 'sales_order_date': so and so[0]['transaction_date'] or '',
@ -30,7 +30,7 @@ class DocType:
def get_item_details(self, item_code): def get_item_details(self, item_code):
""" Pull other item details from item master""" """ Pull other item details from item master"""
item = sql("""select description, stock_uom, default_bom item = webnotes.conn.sql("""select description, stock_uom, default_bom
from `tabItem` where name = %s""", item_code, as_dict =1) from `tabItem` where name = %s""", item_code, as_dict =1)
ret = { ret = {
'description' : item and item[0]['description'], 'description' : item and item[0]['description'],
@ -62,7 +62,7 @@ class DocType:
if self.doc.fg_item: if self.doc.fg_item:
item_filter += ' and item.name = "' + self.doc.fg_item + '"' item_filter += ' and item.name = "' + self.doc.fg_item + '"'
open_so = sql(""" open_so = webnotes.conn.sql("""
select distinct so.name, so.transaction_date, so.customer, so.grand_total select distinct so.name, so.transaction_date, so.customer, so.grand_total
from `tabSales Order` so, `tabSales Order Item` so_item from `tabSales Order` so, `tabSales Order Item` so_item
where so_item.parent = so.name where so_item.parent = so.name
@ -107,7 +107,7 @@ class DocType:
msgprint("Please enter sales order in the above table") msgprint("Please enter sales order in the above table")
return [] return []
items = sql("""select distinct parent, item_code, reserved_warehouse, items = webnotes.conn.sql("""select distinct parent, item_code, reserved_warehouse,
(qty - ifnull(delivered_qty, 0)) as pending_qty (qty - ifnull(delivered_qty, 0)) as pending_qty
from `tabSales Order Item` so_item from `tabSales Order Item` so_item
where parent in (%s) and docstatus = 1 and ifnull(qty, 0) > ifnull(delivered_qty, 0) where parent in (%s) and docstatus = 1 and ifnull(qty, 0) > ifnull(delivered_qty, 0)
@ -116,7 +116,7 @@ class DocType:
or ifnull(item.is_sub_contracted_item, 'No') = 'Yes'))""" % \ or ifnull(item.is_sub_contracted_item, 'No') = 'Yes'))""" % \
(", ".join(["%s"] * len(so_list))), tuple(so_list), as_dict=1) (", ".join(["%s"] * len(so_list))), tuple(so_list), as_dict=1)
dnpi_items = sql("""select distinct dnpi.parent, dnpi.item_code, dnpi.warehouse as reserved_warhouse, dnpi_items = webnotes.conn.sql("""select distinct dnpi.parent, dnpi.item_code, dnpi.warehouse as reserved_warhouse,
(((so_item.qty - ifnull(so_item.delivered_qty, 0)) * dnpi.qty) / so_item.qty) (((so_item.qty - ifnull(so_item.delivered_qty, 0)) * dnpi.qty) / so_item.qty)
as pending_qty as pending_qty
from `tabSales Order Item` so_item, `tabDelivery Note Packing Item` dnpi from `tabSales Order Item` so_item, `tabDelivery Note Packing Item` dnpi
@ -135,7 +135,7 @@ class DocType:
self.clear_item_table() self.clear_item_table()
for p in items: for p in items:
item_details = sql("""select description, stock_uom, default_bom item_details = webnotes.conn.sql("""select description, stock_uom, default_bom
from tabItem where name=%s""", p['item_code']) from tabItem where name=%s""", p['item_code'])
pi = addchild(self.doc, 'pp_details', 'Production Plan Item', self.doclist) pi = addchild(self.doc, 'pp_details', 'Production Plan Item', self.doclist)
pi.sales_order = p['parent'] pi.sales_order = p['parent']
@ -161,7 +161,7 @@ class DocType:
msgprint("Please enter bom no for item: %s at row no: %s" % msgprint("Please enter bom no for item: %s at row no: %s" %
(d.item_code, d.idx), raise_exception=1) (d.item_code, d.idx), raise_exception=1)
else: else:
bom = sql("""select name from `tabBOM` where name = %s and item = %s bom = webnotes.conn.sql("""select name from `tabBOM` where name = %s and item = %s
and docstatus = 1 and is_active = 1""", and docstatus = 1 and is_active = 1""",
(d.bom_no, d.item_code), as_dict = 1) (d.bom_no, d.item_code), as_dict = 1)
if not bom: if not bom:
@ -242,7 +242,7 @@ class DocType:
for bom in bom_dict: for bom in bom_dict:
if self.doc.use_multi_level_bom: if self.doc.use_multi_level_bom:
# get all raw materials with sub assembly childs # get all raw materials with sub assembly childs
fl_bom_items = sql("""select fb.item_code, fl_bom_items = webnotes.conn.sql("""select fb.item_code,
ifnull(sum(fb.qty_consumed_per_unit), 0)*%s as qty, ifnull(sum(fb.qty_consumed_per_unit), 0)*%s as qty,
fb.description, fb.stock_uom, it.min_order_qty fb.description, fb.stock_uom, it.min_order_qty
from `tabBOM Explosion Item` fb,`tabItem` it from `tabBOM Explosion Item` fb,`tabItem` it
@ -253,7 +253,7 @@ class DocType:
else: else:
# Get all raw materials considering SA items as raw materials, # Get all raw materials considering SA items as raw materials,
# so no childs of SA items # so no childs of SA items
fl_bom_items = sql("""select bom_item.item_code, fl_bom_items = webnotes.conn.sql("""select bom_item.item_code,
ifnull(sum(bom_item.qty_consumed_per_unit), 0) * %s, ifnull(sum(bom_item.qty_consumed_per_unit), 0) * %s,
bom_item.description, bom_item.stock_uom, item.min_order_qty bom_item.description, bom_item.stock_uom, item.min_order_qty
from `tabBOM Item` bom_item, tabItem item from `tabBOM Item` bom_item, tabItem item
@ -273,7 +273,7 @@ class DocType:
'Quantity Requested for Purchase', 'Ordered Qty', 'Actual Qty']] 'Quantity Requested for Purchase', 'Ordered Qty', 'Actual Qty']]
for d in self.item_dict: for d in self.item_dict:
item_list.append([d, self.item_dict[d][1], self.item_dict[d][2], self.item_dict[d][0]]) item_list.append([d, self.item_dict[d][1], self.item_dict[d][2], self.item_dict[d][0]])
item_qty= sql("""select warehouse, indented_qty, ordered_qty, actual_qty item_qty= webnotes.conn.sql("""select warehouse, indented_qty, ordered_qty, actual_qty
from `tabBin` where item_code = %s""", d) from `tabBin` where item_code = %s""", d)
i_qty, o_qty, a_qty = 0, 0, 0 i_qty, o_qty, a_qty = 0, 0, 0
for w in item_qty: for w in item_qty:

View File

@ -17,9 +17,9 @@ class DocType:
self.doclist = doclist self.doclist = doclist
def update_bom_operation(self): def update_bom_operation(self):
bom_list = sql(" select DISTINCT parent from `tabBOM Operation` where workstation = '%s'" % self.doc.name) bom_list = webnotes.conn.sql(" select DISTINCT parent from `tabBOM Operation` where workstation = '%s'" % self.doc.name)
for bom_no in bom_list: for bom_no in bom_list:
sql("update `tabBOM Operation` set hour_rate = '%s' where parent = '%s' and workstation = '%s'"%( self.doc.hour_rate, bom_no[0], self.doc.name)) webnotes.conn.sql("update `tabBOM Operation` set hour_rate = '%s' where parent = '%s' and workstation = '%s'"%( self.doc.hour_rate, bom_no[0], self.doc.name))
def on_update(self): def on_update(self):
webnotes.conn.set(self.doc, 'overhead', flt(self.doc.hour_rate_electricity) + flt(self.doc.hour_rate_consumable) + flt(self.doc.hour_rate_rent)) webnotes.conn.set(self.doc, 'overhead', flt(self.doc.hour_rate_electricity) + flt(self.doc.hour_rate_consumable) + flt(self.doc.hour_rate_rent))

View File

@ -16,13 +16,13 @@ class DocType:
self.doclist = doclist self.doclist = doclist
def get_project_details(self): def get_project_details(self):
cust = sql("select customer, customer_name from `tabProject` where name = %s", self.doc.project) cust = webnotes.conn.sql("select customer, customer_name from `tabProject` where name = %s", self.doc.project)
if cust: if cust:
ret = {'customer': cust and cust[0][0] or '', 'customer_name': cust and cust[0][1] or ''} ret = {'customer': cust and cust[0][0] or '', 'customer_name': cust and cust[0][1] or ''}
return ret return ret
def get_customer_details(self): def get_customer_details(self):
cust = sql("select customer_name from `tabCustomer` where name=%s", self.doc.customer) cust = webnotes.conn.sql("select customer_name from `tabCustomer` where name=%s", self.doc.customer)
if cust: if cust:
ret = {'customer_name': cust and cust[0][0] or ''} ret = {'customer_name': cust and cust[0][0] or ''}
return ret return ret

View File

@ -30,7 +30,7 @@ class DocType(TransactionBase):
return webnotes.conn.get_value('Company', self.doc.company, 'abbr') return webnotes.conn.get_value('Company', self.doc.company, 'abbr')
def get_receivables_group(self): def get_receivables_group(self):
g = sql("select receivables_group from tabCompany where name=%s", self.doc.company) g = webnotes.conn.sql("select receivables_group from tabCompany where name=%s", self.doc.company)
g = g and g[0][0] or '' g = g and g[0][0] or ''
if not g: if not g:
msgprint("Update Company master, assign a default group for Receivables") msgprint("Update Company master, assign a default group for Receivables")
@ -46,7 +46,7 @@ class DocType(TransactionBase):
def update_lead_status(self): def update_lead_status(self):
if self.doc.lead_name: if self.doc.lead_name:
sql("update `tabLead` set status='Converted' where name = %s", self.doc.lead_name) webnotes.conn.sql("update `tabLead` set status='Converted' where name = %s", self.doc.lead_name)
def create_account_head(self): def create_account_head(self):
if self.doc.company : if self.doc.company :
@ -131,7 +131,7 @@ class DocType(TransactionBase):
def delete_customer_account(self): def delete_customer_account(self):
"""delete customer's ledger if exist and check balance before deletion""" """delete customer's ledger if exist and check balance before deletion"""
acc = sql("select name from `tabAccount` where master_type = 'Customer' \ acc = webnotes.conn.sql("select name from `tabAccount` where master_type = 'Customer' \
and master_name = %s and docstatus < 2", self.doc.name) and master_name = %s and docstatus < 2", self.doc.name)
if acc: if acc:
from webnotes.model import delete_doc from webnotes.model import delete_doc
@ -142,7 +142,7 @@ class DocType(TransactionBase):
self.delete_customer_contact() self.delete_customer_contact()
self.delete_customer_account() self.delete_customer_account()
if self.doc.lead_name: if self.doc.lead_name:
sql("update `tabLead` set status='Interested' where name=%s",self.doc.lead_name) webnotes.conn.sql("update `tabLead` set status='Interested' where name=%s",self.doc.lead_name)
def on_rename(self, new, old, merge=False): def on_rename(self, new, old, merge=False):
#update customer_name if not naming series #update customer_name if not naming series

View File

@ -37,7 +37,7 @@ class DocType(SellingController):
webnotes.conn.set(self.doc, 'status', status) webnotes.conn.set(self.doc, 'status', status)
def check_status(self): def check_status(self):
chk = sql("select status from `tabLead` where name=%s", self.doc.name) chk = webnotes.conn.sql("select status from `tabLead` where name=%s", self.doc.name)
chk = chk and chk[0][0] or '' chk = chk and chk[0][0] or ''
return cstr(chk) return cstr(chk)

View File

@ -26,7 +26,7 @@ class DocType(TransactionBase):
}) })
def get_item_details(self, item_code): def get_item_details(self, item_code):
item = sql("""select item_name, stock_uom, description_html, description, item_group, brand item = webnotes.conn.sql("""select item_name, stock_uom, description_html, description, item_group, brand
from `tabItem` where name = %s""", item_code, as_dict=1) from `tabItem` where name = %s""", item_code, as_dict=1)
ret = { ret = {
'item_name': item and item[0]['item_name'] or '', 'item_name': item and item[0]['item_name'] or '',
@ -38,7 +38,7 @@ class DocType(TransactionBase):
return ret return ret
def get_cust_address(self,name): def get_cust_address(self,name):
details = sql("select customer_name, address, territory, customer_group from `tabCustomer` where name = '%s' and docstatus != 2" %(name), as_dict = 1) details = webnotes.conn.sql("select customer_name, address, territory, customer_group from `tabCustomer` where name = '%s' and docstatus != 2" %(name), as_dict = 1)
if details: if details:
ret = { ret = {
'customer_name': details and details[0]['customer_name'] or '', 'customer_name': details and details[0]['customer_name'] or '',
@ -48,7 +48,7 @@ class DocType(TransactionBase):
} }
# ********** get primary contact details (this is done separately coz. , in case there is no primary contact thn it would not be able to fetch customer details in case of join query) # ********** get primary contact details (this is done separately coz. , in case there is no primary contact thn it would not be able to fetch customer details in case of join query)
contact_det = sql("select contact_name, contact_no, email_id from `tabContact` where customer = '%s' and is_customer = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(name), as_dict = 1) contact_det = webnotes.conn.sql("select contact_name, contact_no, email_id from `tabContact` where customer = '%s' and is_customer = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(name), as_dict = 1)
ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or '' ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or ''
ret['contact_no'] = contact_det and contact_det[0]['contact_no'] or '' ret['contact_no'] = contact_det and contact_det[0]['contact_no'] or ''
@ -61,7 +61,7 @@ class DocType(TransactionBase):
def get_contact_details(self, arg): def get_contact_details(self, arg):
arg = eval(arg) arg = eval(arg)
contact = sql("select contact_no, email_id from `tabContact` where contact_name = '%s' and customer_name = '%s'" %(arg['contact_person'],arg['customer']), as_dict = 1) contact = webnotes.conn.sql("select contact_no, email_id from `tabContact` where contact_name = '%s' and customer_name = '%s'" %(arg['contact_person'],arg['customer']), as_dict = 1)
ret = { ret = {
'contact_no' : contact and contact[0]['contact_no'] or '', 'contact_no' : contact and contact[0]['contact_no'] or '',
'email_id' : contact and contact[0]['email_id'] or '' 'email_id' : contact and contact[0]['email_id'] or ''
@ -135,7 +135,7 @@ class DocType(TransactionBase):
webnotes.conn.set(self.doc, 'status', 'Submitted') webnotes.conn.set(self.doc, 'status', 'Submitted')
def on_cancel(self): def on_cancel(self):
chk = sql("select t1.name from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.docstatus=1 and (t1.status!='Order Lost' and t1.status!='Cancelled') and t2.prevdoc_docname = %s",self.doc.name) chk = webnotes.conn.sql("select t1.name from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.docstatus=1 and (t1.status!='Order Lost' and t1.status!='Cancelled') and t2.prevdoc_docname = %s",self.doc.name)
if chk: if chk:
msgprint("Quotation No. "+cstr(chk[0][0])+" is submitted against this Opportunity. Thus can not be cancelled.") msgprint("Quotation No. "+cstr(chk[0][0])+" is submitted against this Opportunity. Thus can not be cancelled.")
raise Exception raise Exception
@ -143,7 +143,7 @@ class DocType(TransactionBase):
webnotes.conn.set(self.doc, 'status', 'Cancelled') webnotes.conn.set(self.doc, 'status', 'Cancelled')
def declare_enquiry_lost(self,arg): def declare_enquiry_lost(self,arg):
chk = sql("select t1.name from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.docstatus=1 and (t1.status!='Order Lost' and t1.status!='Cancelled') and t2.prevdoc_docname = %s",self.doc.name) chk = webnotes.conn.sql("select t1.name from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.docstatus=1 and (t1.status!='Order Lost' and t1.status!='Cancelled') and t2.prevdoc_docname = %s",self.doc.name)
if chk: if chk:
msgprint("Quotation No. "+cstr(chk[0][0])+" is submitted against this Opportunity. Thus 'Opportunity Lost' can not be declared against it.") msgprint("Quotation No. "+cstr(chk[0][0])+" is submitted against this Opportunity. Thus 'Opportunity Lost' can not be declared against it.")
raise Exception raise Exception

View File

@ -77,7 +77,7 @@ class DocType(SellingController):
if self.doc.order_type in ['Maintenance', 'Service']: if self.doc.order_type in ['Maintenance', 'Service']:
for d in getlist(self.doclist, 'quotation_details'): for d in getlist(self.doclist, 'quotation_details'):
is_service_item = sql("select is_service_item from `tabItem` where name=%s", d.item_code) is_service_item = webnotes.conn.sql("select is_service_item from `tabItem` where name=%s", d.item_code)
is_service_item = is_service_item and is_service_item[0][0] or 'No' is_service_item = is_service_item and is_service_item[0][0] or 'No'
if is_service_item == 'No': if is_service_item == 'No':
@ -85,7 +85,7 @@ class DocType(SellingController):
raise Exception raise Exception
else: else:
for d in getlist(self.doclist, 'quotation_details'): for d in getlist(self.doclist, 'quotation_details'):
is_sales_item = sql("select is_sales_item from `tabItem` where name=%s", d.item_code) is_sales_item = webnotes.conn.sql("select is_sales_item from `tabItem` where name=%s", d.item_code)
is_sales_item = is_sales_item and is_sales_item[0][0] or 'No' is_sales_item = is_sales_item and is_sales_item[0][0] or 'No'
if is_sales_item == 'No': if is_sales_item == 'No':
@ -141,18 +141,18 @@ class DocType(SellingController):
if prevdoc: if prevdoc:
if flag == 'submit': #on submit if flag == 'submit': #on submit
sql("update `tabOpportunity` set status = 'Quotation Sent' where name = %s", prevdoc) webnotes.conn.sql("update `tabOpportunity` set status = 'Quotation Sent' where name = %s", prevdoc)
elif flag == 'cancel': #on cancel elif flag == 'cancel': #on cancel
sql("update `tabOpportunity` set status = 'Open' where name = %s", prevdoc) webnotes.conn.sql("update `tabOpportunity` set status = 'Open' where name = %s", prevdoc)
elif flag == 'order lost': #order lost elif flag == 'order lost': #order lost
sql("update `tabOpportunity` set status = 'Opportunity Lost' where name=%s", prevdoc) webnotes.conn.sql("update `tabOpportunity` set status = 'Opportunity Lost' where name=%s", prevdoc)
elif flag == 'order confirm': #order confirm elif flag == 'order confirm': #order confirm
sql("update `tabOpportunity` set status='Order Confirmed' where name=%s", prevdoc) webnotes.conn.sql("update `tabOpportunity` set status='Order Confirmed' where name=%s", prevdoc)
# declare as order lost # declare as order lost
#------------------------- #-------------------------
def declare_order_lost(self, arg): def declare_order_lost(self, arg):
chk = sql("select t1.name from `tabSales Order` t1, `tabSales Order Item` t2 where t2.parent = t1.name and t1.docstatus=1 and t2.prevdoc_docname = %s",self.doc.name) chk = webnotes.conn.sql("select t1.name from `tabSales Order` t1, `tabSales Order Item` t2 where t2.parent = t1.name and t1.docstatus=1 and t2.prevdoc_docname = %s",self.doc.name)
if chk: if chk:
msgprint("Sales Order No. "+cstr(chk[0][0])+" is submitted against this Quotation. Thus 'Order Lost' can not be declared against it.") msgprint("Sales Order No. "+cstr(chk[0][0])+" is submitted against this Quotation. Thus 'Order Lost' can not be declared against it.")
raise Exception raise Exception

View File

@ -87,14 +87,14 @@ class DocType(SellingController):
# used for production plan # used for production plan
d.transaction_date = self.doc.transaction_date d.transaction_date = self.doc.transaction_date
tot_avail_qty = sql("select projected_qty from `tabBin` \ tot_avail_qty = webnotes.conn.sql("select projected_qty from `tabBin` \
where item_code = '%s' and warehouse = '%s'" % (d.item_code,d.reserved_warehouse)) where item_code = '%s' and warehouse = '%s'" % (d.item_code,d.reserved_warehouse))
d.projected_qty = tot_avail_qty and flt(tot_avail_qty[0][0]) or 0 d.projected_qty = tot_avail_qty and flt(tot_avail_qty[0][0]) or 0
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:
res = sql("select name from `tabQuotation` where name=%s and order_type = %s", (d.prevdoc_docname, self.doc.order_type)) res = webnotes.conn.sql("select name from `tabQuotation` where name=%s and order_type = %s", (d.prevdoc_docname, self.doc.order_type))
if not res: if not res:
msgprint("""Order Type (%s) should be same in Quotation: %s \ msgprint("""Order Type (%s) should be same in Quotation: %s \
and current Sales Order""" % (self.doc.order_type, d.prevdoc_docname)) and current Sales Order""" % (self.doc.order_type, d.prevdoc_docname))
@ -111,7 +111,7 @@ class DocType(SellingController):
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 = webnotes.conn.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
@ -167,28 +167,28 @@ class DocType(SellingController):
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 = webnotes.conn.sql("select name from `tabQuotation` where docstatus = 2 and name = '%s'" % d.prevdoc_docname)
if cancel_quo: if cancel_quo:
msgprint("Quotation :" + cstr(cancel_quo[0][0]) + " is already cancelled !") msgprint("Quotation :" + cstr(cancel_quo[0][0]) + " is already cancelled !")
raise Exception , "Validation Error. " raise Exception , "Validation Error. "
def update_enquiry_status(self, prevdoc, flag): def update_enquiry_status(self, prevdoc, flag):
enq = sql("select t2.prevdoc_docname from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.name=%s", prevdoc) enq = webnotes.conn.sql("select t2.prevdoc_docname from `tabQuotation` t1, `tabQuotation Item` t2 where t2.parent = t1.name and t1.name=%s", prevdoc)
if enq: if enq:
sql("update `tabOpportunity` set status = %s where name=%s",(flag,enq[0][0])) webnotes.conn.sql("update `tabOpportunity` set status = %s where name=%s",(flag,enq[0][0]))
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:
if flag=='submit': if flag=='submit':
sql("update `tabQuotation` set status = 'Order Confirmed' where name=%s",d.prevdoc_docname) webnotes.conn.sql("update `tabQuotation` set status = 'Order Confirmed' where name=%s",d.prevdoc_docname)
#update enquiry #update enquiry
self.update_enquiry_status(d.prevdoc_docname, 'Order Confirmed') self.update_enquiry_status(d.prevdoc_docname, 'Order Confirmed')
elif flag == 'cancel': elif flag == 'cancel':
chk = sql("select t1.name from `tabSales Order` t1, `tabSales Order Item` t2 where t2.parent = t1.name and t2.prevdoc_docname=%s and t1.name!=%s and t1.docstatus=1", (d.prevdoc_docname,self.doc.name)) chk = webnotes.conn.sql("select t1.name from `tabSales Order` t1, `tabSales Order Item` t2 where t2.parent = t1.name and t2.prevdoc_docname=%s and t1.name!=%s and t1.docstatus=1", (d.prevdoc_docname,self.doc.name))
if not chk: if not chk:
sql("update `tabQuotation` set status = 'Submitted' where name=%s",d.prevdoc_docname) webnotes.conn.sql("update `tabQuotation` set status = 'Submitted' where name=%s",d.prevdoc_docname)
#update enquiry #update enquiry
self.update_enquiry_status(d.prevdoc_docname, 'Quotation Sent') self.update_enquiry_status(d.prevdoc_docname, 'Quotation Sent')
@ -218,35 +218,35 @@ class DocType(SellingController):
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 = webnotes.conn.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))
if submit_dn: if submit_dn:
msgprint("Delivery Note : " + cstr(submit_dn[0][0]) + " has been submitted against " + cstr(self.doc.doctype) + ". Please cancel Delivery Note : " + cstr(submit_dn[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1) msgprint("Delivery Note : " + cstr(submit_dn[0][0]) + " has been submitted against " + cstr(self.doc.doctype) + ". Please cancel Delivery Note : " + cstr(submit_dn[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1)
# Checks Sales Invoice # Checks Sales Invoice
submit_rv = sql("select t1.name from `tabSales Invoice` t1,`tabSales Invoice Item` t2 where t1.name = t2.parent and t2.sales_order = '%s' and t1.docstatus = 1" % (self.doc.name)) submit_rv = webnotes.conn.sql("select t1.name from `tabSales Invoice` t1,`tabSales Invoice Item` t2 where t1.name = t2.parent and t2.sales_order = '%s' and t1.docstatus = 1" % (self.doc.name))
if submit_rv: if submit_rv:
msgprint("Sales Invoice : " + cstr(submit_rv[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Sales Invoice : "+ cstr(submit_rv[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1) msgprint("Sales Invoice : " + cstr(submit_rv[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Sales Invoice : "+ cstr(submit_rv[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1)
#check maintenance schedule #check maintenance schedule
submit_ms = 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) submit_ms = webnotes.conn.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)
if submit_ms: if submit_ms:
msgprint("Maintenance Schedule : " + cstr(submit_ms[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Maintenance Schedule : "+ cstr(submit_ms[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1) msgprint("Maintenance Schedule : " + cstr(submit_ms[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Maintenance Schedule : "+ cstr(submit_ms[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1)
# check maintenance visit # check maintenance visit
submit_mv = 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",self.doc.name) submit_mv = webnotes.conn.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",self.doc.name)
if submit_mv: if submit_mv:
msgprint("Maintenance Visit : " + cstr(submit_mv[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Maintenance Visit : " + cstr(submit_mv[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1) msgprint("Maintenance Visit : " + cstr(submit_mv[0][0]) + " has already been submitted against " +cstr(self.doc.doctype)+ ". Please cancel Maintenance Visit : " + cstr(submit_mv[0][0]) + " first and then cancel "+ cstr(self.doc.doctype), raise_exception = 1)
# check production order # check production order
pro_order = sql("""select name from `tabProduction Order` where sales_order = %s and docstatus = 1""", self.doc.name) pro_order = webnotes.conn.sql("""select name from `tabProduction Order` where sales_order = %s and docstatus = 1""", self.doc.name)
if pro_order: if pro_order:
msgprint("""Production Order: %s exists against this sales order. msgprint("""Production Order: %s exists against this sales order.
Please cancel production order first and then cancel this sales order""" % Please cancel production order first and then cancel this sales order""" %
pro_order[0][0], raise_exception=1) pro_order[0][0], raise_exception=1)
def check_modified_date(self): def check_modified_date(self):
mod_db = sql("select modified from `tabSales Order` where name = '%s'" % self.doc.name) mod_db = webnotes.conn.sql("select modified from `tabSales Order` where name = '%s'" % self.doc.name)
date_diff = sql("select TIMEDIFF('%s', '%s')" % ( mod_db[0][0],cstr(self.doc.modified))) date_diff = webnotes.conn.sql("select TIMEDIFF('%s', '%s')" % ( mod_db[0][0],cstr(self.doc.modified)))
if date_diff and date_diff[0][0]: if date_diff and date_diff[0][0]:
msgprint("%s: %s has been modified after you have opened. Please Refresh" msgprint("%s: %s has been modified after you have opened. Please Refresh"
% (self.doc.doctype, self.doc.name), raise_exception=1) % (self.doc.doctype, self.doc.name), raise_exception=1)

View File

@ -28,15 +28,15 @@ class DocType:
where_clause = self.doc.sales_partner and " and ifnull(is_sales_partner, 0) = 1 and sales_partner = '%s'" % self.doc.sales_partner or " and ifnull(sales_partner, '') != ''" where_clause = self.doc.sales_partner and " and ifnull(is_sales_partner, 0) = 1 and sales_partner = '%s'" % self.doc.sales_partner or " and ifnull(sales_partner, '') != ''"
if self.doc.send_to in ['All Contact', 'All Customer Contact', 'All Supplier Contact', 'All Sales Partner Contact']: if self.doc.send_to in ['All Contact', 'All Customer Contact', 'All Supplier Contact', 'All Sales Partner Contact']:
rec = sql("select CONCAT(ifnull(first_name,''),'',ifnull(last_name,'')), mobile_no from `tabContact` where ifnull(mobile_no,'')!='' and docstatus != 2 %s" % where_clause) rec = webnotes.conn.sql("select CONCAT(ifnull(first_name,''),'',ifnull(last_name,'')), mobile_no from `tabContact` where ifnull(mobile_no,'')!='' and docstatus != 2 %s" % where_clause)
elif self.doc.send_to == 'All Lead (Open)': elif self.doc.send_to == 'All Lead (Open)':
rec = sql("select lead_name, mobile_no from tabLead where ifnull(mobile_no,'')!='' and docstatus != 2 and status = 'Open'") rec = webnotes.conn.sql("select lead_name, mobile_no from tabLead where ifnull(mobile_no,'')!='' and docstatus != 2 and status = 'Open'")
elif self.doc.send_to == 'All Employee (Active)': elif self.doc.send_to == 'All Employee (Active)':
where_clause = self.doc.department and " and department = '%s'" % self.doc.department or "" where_clause = self.doc.department and " and department = '%s'" % self.doc.department or ""
where_clause += self.doc.branch and " and branch = '%s'" % self.doc.branch or "" where_clause += self.doc.branch and " and branch = '%s'" % self.doc.branch or ""
rec = sql("select employee_name, cell_number from `tabEmployee` where status = 'Active' and docstatus < 2 and ifnull(cell_number,'')!='' %s" % where_clause) rec = webnotes.conn.sql("select employee_name, cell_number from `tabEmployee` where status = 'Active' and docstatus < 2 and ifnull(cell_number,'')!='' %s" % where_clause)
elif self.doc.send_to == 'All Sales Person': elif self.doc.send_to == 'All Sales Person':
rec = sql("select sales_person_name, mobile_no from `tabSales Person` where docstatus != 2 and ifnull(mobile_no,'')!=''") rec = webnotes.conn.sql("select sales_person_name, mobile_no from `tabSales Person` where docstatus != 2 and ifnull(mobile_no,'')!=''")
rec_list = '' rec_list = ''
for d in rec: for d in rec:
rec_list += d[0] + ' - ' + d[1] + '\n' rec_list += d[0] + ' - ' + d[1] + '\n'

View File

@ -27,10 +27,10 @@ class DocType(TransactionBase):
amt_list.append(flt(x[0])) amt_list.append(flt(x[0]))
max_amount = max(amt_list) max_amount = max(amt_list)
app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s" % ('%s', '%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on, company)) app_dtl = webnotes.conn.sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and company = %s %s" % ('%s', '%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on, company))
if not app_dtl: if not app_dtl:
app_dtl = sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s" % ('%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on)) app_dtl = webnotes.conn.sql("select approving_user, approving_role from `tabAuthorization Rule` where transaction = %s and (value = %s or value > %s) and docstatus != 2 and based_on = %s and ifnull(company,'') = '' %s" % ('%s', '%s', '%s', '%s', condition), (doctype_name, flt(max_amount), total, based_on))
for d in app_dtl: for d in app_dtl:
if(d[0]): appr_users.append(d[0]) if(d[0]): appr_users.append(d[0])
if(d[1]): appr_roles.append(d[1]) if(d[1]): appr_roles.append(d[1])
@ -57,18 +57,18 @@ class DocType(TransactionBase):
add_cond1,add_cond2 = '','' add_cond1,add_cond2 = '',''
if based_on == 'Itemwise Discount': if based_on == 'Itemwise Discount':
add_cond1 += " and master_name = '"+cstr(item)+"'" add_cond1 += " and master_name = '"+cstr(item)+"'"
itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on, company)) itemwise_exists = webnotes.conn.sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on, company))
if not itemwise_exists: if not itemwise_exists:
itemwise_exists = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s" % ('%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on)) itemwise_exists = webnotes.conn.sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s" % ('%s', '%s', '%s', cond, add_cond1), (doctype_name, total, based_on))
if itemwise_exists: if itemwise_exists:
self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company) self.get_appr_user_role(itemwise_exists, doctype_name, total, based_on, cond+add_cond1, item,company)
chk = 0 chk = 0
if chk == 1: if chk == 1:
if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''" if based_on == 'Itemwise Discount': add_cond2 += " and ifnull(master_name,'') = ''"
appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on, company)) appr = webnotes.conn.sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and company = %s and docstatus != 2 %s %s" % ('%s', '%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on, company))
if not appr: if not appr:
appr = sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s"% ('%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on)) appr = webnotes.conn.sql("select value from `tabAuthorization Rule` where transaction = %s and value <= %s and based_on = %s and ifnull(company,'') = '' and docstatus != 2 %s %s"% ('%s', '%s', '%s', cond, add_cond2), (doctype_name, total, based_on))
self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company) self.get_appr_user_role(appr, doctype_name, total, based_on, cond+add_cond2, item, company)
@ -111,7 +111,7 @@ class DocType(TransactionBase):
# ================ # ================
# Check for authorization set for individual user # Check for authorization set for individual user
based_on = [x[0] for x in sql("select distinct based_on from `tabAuthorization Rule` where transaction = %s and system_user = %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, session['user'], company))] based_on = [x[0] for x in webnotes.conn.sql("select distinct based_on from `tabAuthorization Rule` where transaction = %s and system_user = %s and (company = %s or ifnull(company,'')='') and docstatus != 2", (doctype_name, session['user'], company))]
for d in based_on: for d in based_on:
self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company) self.bifurcate_based_on_type(doctype_name, total, av_dis, d, doc_obj, 1, company)
@ -123,7 +123,7 @@ class DocType(TransactionBase):
# Specific Role # Specific Role
# =============== # ===============
# Check for authorization set on particular roles # Check for authorization set on particular roles
based_on = [x[0] for x in sql("""select based_on based_on = [x[0] for x in webnotes.conn.sql("""select based_on
from `tabAuthorization Rule` from `tabAuthorization Rule`
where transaction = %s and system_role IN (%s) and based_on IN (%s) where transaction = %s and system_role IN (%s) and based_on IN (%s)
and (company = %s or ifnull(company,'')='') and (company = %s or ifnull(company,'')='')
@ -147,9 +147,9 @@ class DocType(TransactionBase):
# payroll related check # payroll related check
def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company): def get_value_based_rule(self,doctype_name,employee,total_claimed_amount,company):
val_lst =[] val_lst =[]
val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company)) val = webnotes.conn.sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and company = %s and docstatus!=2",(doctype_name,employee,employee,total_claimed_amount,company))
if not val: if not val:
val = sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name, employee, employee, total_claimed_amount)) val = webnotes.conn.sql("select value from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)< %s and ifnull(company,'') = '' and docstatus!=2",(doctype_name, employee, employee, total_claimed_amount))
if val: if val:
val_lst = [y[0] for y in val] val_lst = [y[0] for y in val]
@ -157,9 +157,9 @@ class DocType(TransactionBase):
val_lst.append(0) val_lst.append(0)
max_val = max(val_lst) max_val = max(val_lst)
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1) rule = webnotes.conn.sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and company = %s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,company,employee,employee,flt(max_val)), as_dict=1)
if not rule: if not rule:
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1) rule = webnotes.conn.sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and ifnull(company,'') = '' and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(value,0)= %s and docstatus!=2",(doctype_name,employee,employee,flt(max_val)), as_dict=1)
return rule return rule
@ -174,9 +174,9 @@ class DocType(TransactionBase):
if doctype_name == 'Expense Claim': if doctype_name == 'Expense Claim':
rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company) rule = self.get_value_based_rule(doctype_name,doc_obj.doc.employee,doc_obj.doc.total_claimed_amount, doc_obj.doc.company)
elif doctype_name == 'Appraisal': elif doctype_name == 'Appraisal':
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1) rule = webnotes.conn.sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and company = %s and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee, doc_obj.doc.company),as_dict=1)
if not rule: if not rule:
rule = sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1) rule = webnotes.conn.sql("select name, to_emp, to_designation, approving_role, approving_user from `tabAuthorization Rule` where transaction=%s and (to_emp=%s or to_designation IN (select designation from `tabEmployee` where name=%s)) and ifnull(company,'') = '' and docstatus!=2",(doctype_name,doc_obj.doc.employee, doc_obj.doc.employee),as_dict=1)
if rule: if rule:
for m in rule: for m in rule:
@ -184,7 +184,7 @@ class DocType(TransactionBase):
if m['approving_user']: if m['approving_user']:
app_specific_user.append(m['approving_user']) app_specific_user.append(m['approving_user'])
elif m['approving_role']: elif m['approving_role']:
user_lst = [z[0] for z in sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])] user_lst = [z[0] for z in webnotes.conn.sql("select distinct t1.name from `tabProfile` t1, `tabUserRole` t2 where t2.role=%s and t2.parent=t1.name and t1.name !='Administrator' and t1.name != 'Guest' and t1.docstatus !=2",m['approving_role'])]
for x in user_lst: for x in user_lst:
if not x in app_user: if not x in app_user:
app_user.append(x) app_user.append(x)

View File

@ -18,7 +18,7 @@ class DocType:
def check_duplicate_entry(self): def check_duplicate_entry(self):
exists = sql("""select name, docstatus from `tabAuthorization Rule` exists = webnotes.conn.sql("""select name, docstatus from `tabAuthorization Rule`
where transaction = %s and based_on = %s and system_user = %s where transaction = %s and based_on = %s and system_user = %s
and system_role = %s and approving_user = %s and approving_role = %s and system_role = %s and approving_user = %s and approving_role = %s
and to_emp =%s and to_designation=%s and name != %s""", and to_emp =%s and to_designation=%s and name != %s""",
@ -38,12 +38,12 @@ class DocType:
def validate_master_name(self): def validate_master_name(self):
if self.doc.based_on == 'Customerwise Discount' and \ if self.doc.based_on == 'Customerwise Discount' and \
not sql("select name from tabCustomer where name = '%s' and docstatus != 2" % \ not webnotes.conn.sql("select name from tabCustomer where name = '%s' and docstatus != 2" % \
(self.doc.master_name)): (self.doc.master_name)):
msgprint("Please select valid Customer Name for Customerwise Discount", msgprint("Please select valid Customer Name for Customerwise Discount",
raise_exception=1) raise_exception=1)
elif self.doc.based_on == 'Itemwise Discount' and \ elif self.doc.based_on == 'Itemwise Discount' and \
not sql("select name from tabItem where name = '%s' and docstatus != 2" % \ not webnotes.conn.sql("select name from tabItem where name = '%s' and docstatus != 2" % \
(self.doc.master_name)): (self.doc.master_name)):
msgprint("Please select valid Item Name for Itemwise Discount", raise_exception=1) msgprint("Please select valid Item Name for Itemwise Discount", raise_exception=1)
elif (self.doc.based_on == 'Grand Total' or \ elif (self.doc.based_on == 'Grand Total' or \
@ -64,7 +64,7 @@ class DocType:
Applicable To (Role).", raise_exception=1) Applicable To (Role).", raise_exception=1)
elif self.doc.system_user and self.doc.approving_role and \ elif self.doc.system_user and self.doc.approving_role and \
has_common([self.doc.approving_role], [x[0] for x in \ has_common([self.doc.approving_role], [x[0] for x in \
sql("select role from `tabUserRole` where parent = '%s'" % \ webnotes.conn.sql("select role from `tabUserRole` where parent = '%s'" % \
(self.doc.system_user))]): (self.doc.system_user))]):
msgprint("System User : %s is assigned role : %s. So rule does not make sense" % msgprint("System User : %s is assigned role : %s. So rule does not make sense" %
(self.doc.system_user,self.doc.approving_role), raise_exception=1) (self.doc.system_user,self.doc.approving_role), raise_exception=1)

View File

@ -14,7 +14,7 @@ class DocType(DocTypeNestedSet):
self.nsm_parent_field = 'parent_customer_group'; self.nsm_parent_field = 'parent_customer_group';
def validate(self): def validate(self):
if sql("select name from `tabCustomer Group` where name = %s and docstatus = 2", if webnotes.conn.sql("select name from `tabCustomer Group` where name = %s and docstatus = 2",
(self.doc.customer_group_name)): (self.doc.customer_group_name)):
msgprint("""Another %s record is trashed. msgprint("""Another %s record is trashed.
To untrash please go to Setup -> Recycle Bin.""" % To untrash please go to Setup -> Recycle Bin.""" %
@ -32,7 +32,7 @@ class DocType(DocTypeNestedSet):
self.doc.name, raise_exception=1) self.doc.name, raise_exception=1)
def on_trash(self): def on_trash(self):
cust = sql("select name from `tabCustomer` where ifnull(customer_group, '') = %s", cust = webnotes.conn.sql("select name from `tabCustomer` where ifnull(customer_group, '') = %s",
self.doc.name) self.doc.name)
cust = [d[0] for d in cust] cust = [d[0] for d in cust]
if cust: if cust:
@ -41,7 +41,7 @@ class DocType(DocTypeNestedSet):
To trash/delete this, remove/change customer group in customer master""" % To trash/delete this, remove/change customer group in customer master""" %
(self.doc.name, cust or ''), raise_exception=1) (self.doc.name, cust or ''), raise_exception=1)
if sql("select name from `tabCustomer Group` where parent_customer_group = %s \ if webnotes.conn.sql("select name from `tabCustomer Group` where parent_customer_group = %s \
and docstatus != 2", self.doc.name): and docstatus != 2", self.doc.name):
msgprint("Child customer group exists for this customer group. \ msgprint("Child customer group exists for this customer group. \
You can not trash/cancel/delete this customer group.", raise_exception=1) You can not trash/cancel/delete this customer group.", raise_exception=1)

View File

@ -22,7 +22,7 @@ class DocType:
where fieldname='naming_series'""") where fieldname='naming_series'""")
)))), )))),
"prefixes": "\n".join([''] + [i[0] for i in "prefixes": "\n".join([''] + [i[0] for i in
sql("""select name from tabSeries""")]) webnotes.conn.sql("""select name from tabSeries""")])
} }
def scrub_options_list(self, ol): def scrub_options_list(self, ol):
@ -125,12 +125,12 @@ class DocType:
def insert_series(self, series): def insert_series(self, series):
"""insert series if missing""" """insert series if missing"""
if not webnotes.conn.exists('Series', series): if not webnotes.conn.exists('Series', series):
sql("insert into tabSeries (name, current) values (%s,0)", (series)) webnotes.conn.sql("insert into tabSeries (name, current) values (%s,0)", (series))
def update_series_start(self): def update_series_start(self):
if self.doc.prefix: if self.doc.prefix:
self.insert_series(self.doc.prefix) self.insert_series(self.doc.prefix)
sql("update `tabSeries` set current = '%s' where name = '%s'" % (self.doc.current_value,self.doc.prefix)) webnotes.conn.sql("update `tabSeries` set current = '%s' where name = '%s'" % (self.doc.current_value,self.doc.prefix))
msgprint("Series Updated Successfully") msgprint("Series Updated Successfully")
else: else:
msgprint("Please select prefix first") msgprint("Please select prefix first")

View File

@ -13,7 +13,7 @@ class DocType:
def get_message(self, arg): def get_message(self, arg):
fn = arg.lower().replace(' ', '_') + '_message' fn = arg.lower().replace(' ', '_') + '_message'
v = sql("select value from tabSingles where field=%s and doctype=%s", (fn, 'Notification Control')) v = webnotes.conn.sql("select value from tabSingles where field=%s and doctype=%s", (fn, 'Notification Control'))
return v and v[0][0] or '' return v and v[0][0] or ''
def set_message(self, arg = ''): def set_message(self, arg = ''):

View File

@ -23,7 +23,7 @@ class DocType:
def get_contacts(self,nm): def get_contacts(self,nm):
if nm: if nm:
contact_details =webnotes.conn.convert_to_lists(sql("select name, CONCAT(IFNULL(first_name,''),' ',IFNULL(last_name,'')),contact_no,email_id from `tabContact` where sales_partner = '%s'"%nm)) contact_details =webnotes.conn.convert_to_lists(webnotes.conn.sql("select name, CONCAT(IFNULL(first_name,''),' ',IFNULL(last_name,'')),contact_no,email_id from `tabContact` where sales_partner = '%s'"%nm))
return contact_details return contact_details
else: else:
return '' return ''

View File

@ -60,7 +60,7 @@ class DocType:
self.doc.save() self.doc.save()
def get_first_sle(self): def get_first_sle(self):
sle = sql(""" sle = webnotes.conn.sql("""
select * from `tabStock Ledger Entry` select * from `tabStock Ledger Entry`
where item_code = %s where item_code = %s
and warehouse = %s and warehouse = %s

View File

@ -57,7 +57,7 @@ class DocType(SellingController):
def set_actual_qty(self): def set_actual_qty(self):
for d in getlist(self.doclist, 'delivery_note_details'): for d in getlist(self.doclist, 'delivery_note_details'):
if d.item_code and d.warehouse: if d.item_code and d.warehouse:
actual_qty = sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code, d.warehouse)) actual_qty = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code, d.warehouse))
d.actual_qty = actual_qty and flt(actual_qty[0][0]) or 0 d.actual_qty = actual_qty and flt(actual_qty[0][0]) or 0
@ -133,7 +133,7 @@ class DocType(SellingController):
def validate_proj_cust(self): def validate_proj_cust(self):
"""check for does customer belong to same project as entered..""" """check for does customer belong to same project as entered.."""
if self.doc.project_name and self.doc.customer: if self.doc.project_name and 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)) res = webnotes.conn.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
@ -167,11 +167,11 @@ class DocType(SellingController):
def update_current_stock(self): def update_current_stock(self):
for d in getlist(self.doclist, 'delivery_note_details'): for d in getlist(self.doclist, 'delivery_note_details'):
bin = sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1) bin = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0 d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
for d in getlist(self.doclist, 'packing_details'): for d in getlist(self.doclist, 'packing_details'):
bin = sql("select actual_qty, projected_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1) bin = webnotes.conn.sql("select actual_qty, projected_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0 d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
d.projected_qty = bin and flt(bin[0]['projected_qty']) or 0 d.projected_qty = bin and flt(bin[0]['projected_qty']) or 0
@ -266,12 +266,12 @@ class DocType(SellingController):
webnotes.msgprint("Packing Error:\n" + err_msg, raise_exception=1) webnotes.msgprint("Packing Error:\n" + err_msg, raise_exception=1)
def check_next_docstatus(self): def check_next_docstatus(self):
submit_rv = sql("select t1.name from `tabSales Invoice` t1,`tabSales Invoice Item` t2 where t1.name = t2.parent and t2.delivery_note = '%s' and t1.docstatus = 1" % (self.doc.name)) submit_rv = webnotes.conn.sql("select t1.name from `tabSales Invoice` t1,`tabSales Invoice Item` t2 where t1.name = t2.parent and t2.delivery_note = '%s' and t1.docstatus = 1" % (self.doc.name))
if submit_rv: if submit_rv:
msgprint("Sales Invoice : " + cstr(submit_rv[0][0]) + " has already been submitted !") msgprint("Sales Invoice : " + cstr(submit_rv[0][0]) + " has already been submitted !")
raise Exception , "Validation Error." raise Exception , "Validation Error."
submit_in = sql("select t1.name from `tabInstallation Note` t1, `tabInstallation Note Item` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name)) submit_in = webnotes.conn.sql("select t1.name from `tabInstallation Note` t1, `tabInstallation Note Item` t2 where t1.name = t2.parent and t2.prevdoc_docname = '%s' and t1.docstatus = 1" % (self.doc.name))
if submit_in: if submit_in:
msgprint("Installation Note : "+cstr(submit_in[0][0]) +" has already been submitted !") msgprint("Installation Note : "+cstr(submit_in[0][0]) +" has already been submitted !")
raise Exception , "Validation Error." raise Exception , "Validation Error."

View File

@ -32,7 +32,7 @@ class DocType:
self.doclist = 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() 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) pr = webnotes.conn.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)
if len(pr)>200: if len(pr)>200:
msgprint("Please enter date of shorter duration as there are too many purchase receipt, hence it cannot be loaded.", raise_exception=1) msgprint("Please enter date of shorter duration as there are too many purchase receipt, hence it cannot be loaded.", raise_exception=1)
@ -50,14 +50,14 @@ class DocType:
def validate_selected_pr(self): def validate_selected_pr(self):
"""Validate selected PR as submitted""" """Validate selected PR as submitted"""
invalid_pr = sql("SELECT name FROM `tabPurchase Receipt` WHERE docstatus != 1 and name in (%s)" % ("'" + "', '".join(self.selected_pr) + "'")) invalid_pr = webnotes.conn.sql("SELECT name FROM `tabPurchase Receipt` WHERE docstatus != 1 and name in (%s)" % ("'" + "', '".join(self.selected_pr) + "'"))
if invalid_pr: if invalid_pr:
msgprint("Selected purchase receipts must be submitted. Following PR are not submitted: %s" % invalid_pr, raise_exception=1) msgprint("Selected purchase receipts must be submitted. Following PR are not submitted: %s" % invalid_pr, raise_exception=1)
def get_total_amt(self): def get_total_amt(self):
""" Get sum of net total of all selected PR""" """ Get sum of net total of all selected PR"""
return sql("SELECT SUM(net_total) FROM `tabPurchase Receipt` WHERE name in (%s)" % ("'" + "', '".join(self.selected_pr) + "'"))[0][0] return webnotes.conn.sql("SELECT SUM(net_total) FROM `tabPurchase Receipt` WHERE name in (%s)" % ("'" + "', '".join(self.selected_pr) + "'"))[0][0]
def add_charges_in_pr(self): def add_charges_in_pr(self):
@ -73,7 +73,7 @@ class DocType:
self.prwise_cost[pr] = self.prwise_cost.get(pr, 0) + amt self.prwise_cost[pr] = self.prwise_cost.get(pr, 0) + amt
cumulative_grand_total += amt cumulative_grand_total += amt
pr_oc_row = sql("select name from `tabPurchase Taxes and Charges` where parent = %s and category = 'Valuation' and add_deduct_tax = 'Add' and charge_type = 'Actual' and account_head = %s",(pr, lc.account_head)) pr_oc_row = webnotes.conn.sql("select name from `tabPurchase Taxes and Charges` where parent = %s and category = 'Valuation' and add_deduct_tax = 'Add' and charge_type = 'Actual' and account_head = %s",(pr, lc.account_head))
if not pr_oc_row: # add if not exists if not pr_oc_row: # add if not exists
ch = addchild(pr_obj.doc, 'purchase_tax_details', 'Purchase Taxes and Charges') ch = addchild(pr_obj.doc, 'purchase_tax_details', 'Purchase Taxes and Charges')
ch.category = 'Valuation' ch.category = 'Valuation'
@ -88,7 +88,7 @@ class DocType:
ch.idx = 500 # add at the end ch.idx = 500 # add at the end
ch.save(1) ch.save(1)
else: # overwrite if exists else: # overwrite if exists
sql("update `tabPurchase Taxes and Charges` set rate = %s, tax_amount = %s where name = %s and parent = %s ", (amt, amt, pr_oc_row[0][0], pr)) webnotes.conn.sql("update `tabPurchase Taxes and Charges` set rate = %s, tax_amount = %s where name = %s and parent = %s ", (amt, amt, pr_oc_row[0][0], pr))
def reset_other_charges(self, pr_obj): def reset_other_charges(self, pr_obj):
@ -200,9 +200,9 @@ class DocType:
d.save() d.save()
if d.serial_no: if d.serial_no:
self.update_serial_no(d.serial_no, d.valuation_rate) self.update_serial_no(d.serial_no, d.valuation_rate)
sql("update `tabStock Ledger Entry` set incoming_rate = '%s' where voucher_detail_no = '%s'"%(flt(d.valuation_rate), d.name)) webnotes.conn.sql("update `tabStock Ledger Entry` set incoming_rate = '%s' where voucher_detail_no = '%s'"%(flt(d.valuation_rate), d.name))
res = sql("""select item_code, warehouse, posting_date, posting_time res = webnotes.conn.sql("""select item_code, warehouse, posting_date, posting_time
from `tabStock Ledger Entry` where voucher_detail_no = %s LIMIT 1""", from `tabStock Ledger Entry` where voucher_detail_no = %s LIMIT 1""",
d.name, as_dict=1) d.name, as_dict=1)

View File

@ -216,7 +216,7 @@ class DocType(BuyingController):
def validate_inspection(self): def validate_inspection(self):
for d in getlist(self.doclist, 'purchase_receipt_details'): #Enter inspection date for all items that require inspection for d in getlist(self.doclist, 'purchase_receipt_details'): #Enter inspection date for all items that require inspection
ins_reqd = sql("select inspection_required from `tabItem` where name = %s", ins_reqd = webnotes.conn.sql("select inspection_required from `tabItem` where name = %s",
(d.item_code,), as_dict = 1) (d.item_code,), as_dict = 1)
ins_reqd = ins_reqd and ins_reqd[0]['inspection_required'] or 'No' ins_reqd = ins_reqd and ins_reqd[0]['inspection_required'] or 'No'
if ins_reqd == 'Yes' and not d.qa_no: if ins_reqd == 'Yes' and not d.qa_no:
@ -269,7 +269,7 @@ class DocType(BuyingController):
sr.save() sr.save()
def check_next_docstatus(self): def check_next_docstatus(self):
submit_rv = sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % (self.doc.name)) submit_rv = webnotes.conn.sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % (self.doc.name))
if submit_rv: if submit_rv:
msgprint("Purchase Invoice : " + cstr(self.submit_rv[0][0]) + " has already been submitted !") msgprint("Purchase Invoice : " + cstr(self.submit_rv[0][0]) + " has already been submitted !")
raise Exception , "Validation Error." raise Exception , "Validation Error."
@ -282,7 +282,7 @@ class DocType(BuyingController):
# 1.Check if Purchase Invoice has been submitted against current Purchase Order # 1.Check if Purchase Invoice has been submitted against current Purchase Order
# pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Invoice', docname = self.doc.name, detail_doctype = 'Purchase Invoice Item') # pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Invoice', docname = self.doc.name, detail_doctype = 'Purchase Invoice Item')
submitted = sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % self.doc.name) submitted = webnotes.conn.sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % self.doc.name)
if submitted: if submitted:
msgprint("Purchase Invoice : " + cstr(submitted[0][0]) + " has already been submitted !") msgprint("Purchase Invoice : " + cstr(submitted[0][0]) + " has already been submitted !")
raise Exception raise Exception
@ -313,7 +313,7 @@ class DocType(BuyingController):
def get_current_stock(self): def get_current_stock(self):
for d in getlist(self.doclist, 'pr_raw_material_details'): for d in getlist(self.doclist, 'pr_raw_material_details'):
if self.doc.supplier_warehouse: if self.doc.supplier_warehouse:
bin = sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.rm_item_code, self.doc.supplier_warehouse), as_dict = 1) bin = webnotes.conn.sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.rm_item_code, self.doc.supplier_warehouse), as_dict = 1)
d.current_stock = bin and flt(bin[0]['actual_qty']) or 0 d.current_stock = bin and flt(bin[0]['actual_qty']) or 0

View File

@ -387,7 +387,7 @@ class DocType(StockController):
def get_item_details(self, arg): def get_item_details(self, arg):
arg = json.loads(arg) arg = json.loads(arg)
item = sql("""select stock_uom, description, item_name from `tabItem` item = webnotes.conn.sql("""select stock_uom, description, item_name from `tabItem`
where name = %s and (ifnull(end_of_life,'')='' or end_of_life ='0000-00-00' where name = %s and (ifnull(end_of_life,'')='' or end_of_life ='0000-00-00'
or end_of_life > now())""", (arg.get('item_code')), as_dict = 1) or end_of_life > now())""", (arg.get('item_code')), as_dict = 1)
if not item: if not item:
@ -411,7 +411,7 @@ class DocType(StockController):
def get_uom_details(self, arg = ''): def get_uom_details(self, arg = ''):
arg, ret = eval(arg), {} arg, ret = eval(arg), {}
uom = sql("""select conversion_factor from `tabUOM Conversion Detail` uom = webnotes.conn.sql("""select conversion_factor from `tabUOM Conversion Detail`
where parent = %s and uom = %s""", (arg['item_code'], arg['uom']), as_dict = 1) where parent = %s and uom = %s""", (arg['item_code'], arg['uom']), as_dict = 1)
if not uom: if not uom:
msgprint("There is no Conversion Factor for UOM '%s' in Item '%s'" % (arg['uom'], msgprint("There is no Conversion Factor for UOM '%s' in Item '%s'" % (arg['uom'],
@ -522,7 +522,7 @@ class DocType(StockController):
if self.doc.use_multi_level_bom: if self.doc.use_multi_level_bom:
# get all raw materials with sub assembly childs # get all raw materials with sub assembly childs
fl_bom_sa_child_item = sql("""select fl_bom_sa_child_item = webnotes.conn.sql("""select
fb.item_code, fb.item_code,
ifnull(sum(fb.qty_consumed_per_unit),0)*%s as qty, ifnull(sum(fb.qty_consumed_per_unit),0)*%s as qty,
fb.description, fb.description,
@ -542,7 +542,7 @@ class DocType(StockController):
_make_items_dict(fl_bom_sa_child_item) _make_items_dict(fl_bom_sa_child_item)
else: else:
# get only BOM items # get only BOM items
fl_bom_sa_items = sql("""select fl_bom_sa_items = webnotes.conn.sql("""select
`tabItem`.item_code, `tabItem`.item_code,
ifnull(sum(`tabBOM Item`.qty_consumed_per_unit), 0) *%s as qty, ifnull(sum(`tabBOM Item`.qty_consumed_per_unit), 0) *%s as qty,
`tabItem`.description, `tabItem`.description,
@ -600,7 +600,7 @@ class DocType(StockController):
def get_issued_qty(self): def get_issued_qty(self):
issued_item_qty = {} issued_item_qty = {}
result = sql("""select t1.item_code, sum(t1.qty) result = webnotes.conn.sql("""select t1.item_code, sum(t1.qty)
from `tabStock Entry Detail` t1, `tabStock Entry` t2 from `tabStock Entry Detail` t1, `tabStock Entry` t2
where t1.parent = t2.name and t2.production_order = %s and t2.docstatus = 1 where t1.parent = t2.name and t2.production_order = %s and t2.docstatus = 1
and t2.purpose = 'Material Transfer' and t2.purpose = 'Material Transfer'
@ -666,7 +666,7 @@ class DocType(StockController):
def get_cust_addr(self): def get_cust_addr(self):
from utilities.transaction_base import get_default_address, get_address_display from utilities.transaction_base import get_default_address, get_address_display
res = sql("select customer_name from `tabCustomer` where name = '%s'"%self.doc.customer) res = webnotes.conn.sql("select customer_name from `tabCustomer` where name = '%s'"%self.doc.customer)
address_display = None address_display = None
customer_address = get_default_address("customer", self.doc.customer) customer_address = get_default_address("customer", self.doc.customer)
if customer_address: if customer_address:
@ -687,7 +687,7 @@ class DocType(StockController):
def get_supp_addr(self): def get_supp_addr(self):
from utilities.transaction_base import get_default_address, get_address_display from utilities.transaction_base import get_default_address, get_address_display
res = sql("""select supplier_name from `tabSupplier` res = webnotes.conn.sql("""select supplier_name from `tabSupplier`
where name=%s""", self.doc.supplier) where name=%s""", self.doc.supplier)
address_display = None address_display = None
supplier_address = get_default_address("customer", self.doc.customer) supplier_address = get_default_address("customer", self.doc.customer)

View File

@ -33,7 +33,7 @@ class DocType:
msgprint("Please Enter Conversion Factor.") msgprint("Please Enter Conversion Factor.")
raise Exception raise Exception
stock_uom = sql("select stock_uom from `tabItem` where name = '%s'" % self.doc.item_code) stock_uom = webnotes.conn.sql("select stock_uom from `tabItem` where name = '%s'" % self.doc.item_code)
stock_uom = stock_uom and stock_uom[0][0] stock_uom = stock_uom and stock_uom[0][0]
if cstr(self.doc.new_stock_uom) == cstr(stock_uom): if cstr(self.doc.new_stock_uom) == cstr(stock_uom):
msgprint("Item Master is already updated with New Stock UOM " + cstr(self.doc.new_stock_uom)) msgprint("Item Master is already updated with New Stock UOM " + cstr(self.doc.new_stock_uom))
@ -49,9 +49,9 @@ class DocType:
def update_bin(self): def update_bin(self):
# update bin # update bin
if flt(self.doc.conversion_factor) != flt(1): if flt(self.doc.conversion_factor) != flt(1):
sql("update `tabBin` set stock_uom = '%s' , indented_qty = ifnull(indented_qty,0) * %s, ordered_qty = ifnull(ordered_qty,0) * %s, reserved_qty = ifnull(reserved_qty,0) * %s, planned_qty = ifnull(planned_qty,0) * %s, projected_qty = actual_qty + ordered_qty + indented_qty + planned_qty - reserved_qty where item_code = '%s'" % (self.doc.new_stock_uom, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.item_code) ) webnotes.conn.sql("update `tabBin` set stock_uom = '%s' , indented_qty = ifnull(indented_qty,0) * %s, ordered_qty = ifnull(ordered_qty,0) * %s, reserved_qty = ifnull(reserved_qty,0) * %s, planned_qty = ifnull(planned_qty,0) * %s, projected_qty = actual_qty + ordered_qty + indented_qty + planned_qty - reserved_qty where item_code = '%s'" % (self.doc.new_stock_uom, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.conversion_factor, self.doc.item_code) )
else: else:
sql("update `tabBin` set stock_uom = '%s' where item_code = '%s'" % (self.doc.new_stock_uom, self.doc.item_code) ) webnotes.conn.sql("update `tabBin` set stock_uom = '%s' where item_code = '%s'" % (self.doc.new_stock_uom, self.doc.item_code) )
# acknowledge user # acknowledge user
msgprint(" All Bins Updated Successfully.") msgprint(" All Bins Updated Successfully.")
@ -61,16 +61,16 @@ class DocType:
from stock.stock_ledger import update_entries_after from stock.stock_ledger import update_entries_after
if flt(self.doc.conversion_factor) != flt(1): if flt(self.doc.conversion_factor) != flt(1):
sql("update `tabStock Ledger Entry` set stock_uom = '%s', actual_qty = ifnull(actual_qty,0) * '%s' where item_code = '%s' " % (self.doc.new_stock_uom, self.doc.conversion_factor, self.doc.item_code)) webnotes.conn.sql("update `tabStock Ledger Entry` set stock_uom = '%s', actual_qty = ifnull(actual_qty,0) * '%s' where item_code = '%s' " % (self.doc.new_stock_uom, self.doc.conversion_factor, self.doc.item_code))
else: else:
sql("update `tabStock Ledger Entry` set stock_uom = '%s' where item_code = '%s' " % (self.doc.new_stock_uom, self.doc.item_code)) webnotes.conn.sql("update `tabStock Ledger Entry` set stock_uom = '%s' where item_code = '%s' " % (self.doc.new_stock_uom, self.doc.item_code))
# acknowledge user # acknowledge user
msgprint("Stock Ledger Entries Updated Successfully.") msgprint("Stock Ledger Entries Updated Successfully.")
# update item valuation # update item valuation
if flt(self.doc.conversion_factor) != flt(1): if flt(self.doc.conversion_factor) != flt(1):
wh = sql("select name from `tabWarehouse`") wh = webnotes.conn.sql("select name from `tabWarehouse`")
for w in wh: for w in wh:
update_entries_after({"item_code": self.doc.item_code, "warehouse": w[0]}) update_entries_after({"item_code": self.doc.item_code, "warehouse": w[0]})

View File

@ -21,7 +21,7 @@ class DocType:
def get_bin(self, item_code, warehouse=None): def get_bin(self, item_code, warehouse=None):
warehouse = warehouse or self.doc.name warehouse = warehouse or self.doc.name
bin = sql("select name from tabBin where item_code = %s and \ bin = webnotes.conn.sql("select name from tabBin where item_code = %s and \
warehouse = %s", (item_code, warehouse)) warehouse = %s", (item_code, warehouse))
bin = bin and bin[0][0] or '' bin = bin and bin[0][0] or ''
if not bin: if not bin:
@ -163,22 +163,22 @@ class DocType:
def on_trash(self): def on_trash(self):
# delete bin # delete bin
bins = sql("select * from `tabBin` where warehouse = %s", self.doc.name, as_dict=1) bins = webnotes.conn.sql("select * from `tabBin` where warehouse = %s", self.doc.name, as_dict=1)
for d in bins: for d in bins:
if d['actual_qty'] or d['reserved_qty'] or d['ordered_qty'] or \ if d['actual_qty'] or d['reserved_qty'] or d['ordered_qty'] or \
d['indented_qty'] or d['projected_qty'] or d['planned_qty']: d['indented_qty'] or d['projected_qty'] or d['planned_qty']:
msgprint("""Warehouse: %s can not be deleted as qty exists for item: %s""" msgprint("""Warehouse: %s can not be deleted as qty exists for item: %s"""
% (self.doc.name, d['item_code']), raise_exception=1) % (self.doc.name, d['item_code']), raise_exception=1)
else: else:
sql("delete from `tabBin` where name = %s", d['name']) webnotes.conn.sql("delete from `tabBin` where name = %s", d['name'])
# delete cancelled sle # delete cancelled sle
if sql("""select name from `tabStock Ledger Entry` if webnotes.conn.sql("""select name from `tabStock Ledger Entry`
where warehouse = %s and ifnull('is_cancelled', '') = 'No'""", self.doc.name): where warehouse = %s and ifnull('is_cancelled', '') = 'No'""", self.doc.name):
msgprint("""Warehosue can not be deleted as stock ledger entry msgprint("""Warehosue can not be deleted as stock ledger entry
exists for this warehouse.""", raise_exception=1) exists for this warehouse.""", raise_exception=1)
else: else:
sql("delete from `tabStock Ledger Entry` where warehouse = %s", self.doc.name) webnotes.conn.sql("delete from `tabStock Ledger Entry` where warehouse = %s", self.doc.name)
def on_rename(self, newdn, olddn, merge=False): def on_rename(self, newdn, olddn, merge=False):
if merge: if merge:

View File

@ -27,7 +27,7 @@ class DocType(TransactionBase):
self.doc.resolved_by = webnotes.session.user self.doc.resolved_by = webnotes.session.user
def on_cancel(self): def on_cancel(self):
lst = 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!=2"%(self.doc.name)) lst = webnotes.conn.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!=2"%(self.doc.name))
if lst: if lst:
lst1 = ','.join([x[0] for x in lst]) lst1 = ','.join([x[0] for x in lst])
msgprint("Maintenance Visit No. "+lst1+" already created against this customer issue. So can not be Cancelled") msgprint("Maintenance Visit No. "+lst1+" already created against this customer issue. So can not be Cancelled")

View File

@ -19,7 +19,7 @@ class DocType(TransactionBase):
self.doclist = doclist self.doclist = doclist
def get_item_details(self, item_code): def get_item_details(self, item_code):
item = sql("select item_name, description from `tabItem` where name = '%s'" %(item_code), as_dict=1) item = webnotes.conn.sql("select item_name, description from `tabItem` where name = '%s'" %(item_code), as_dict=1)
ret = { ret = {
'item_name': item and item[0]['item_name'] or '', 'item_name': item and item[0]['item_name'] or '',
'description' : item and item[0]['description'] or '' 'description' : item and item[0]['description'] or ''
@ -29,7 +29,7 @@ class DocType(TransactionBase):
def generate_schedule(self): def generate_schedule(self):
self.doclist = self.doc.clear_table(self.doclist, 'maintenance_schedule_detail') self.doclist = self.doc.clear_table(self.doclist, 'maintenance_schedule_detail')
count = 0 count = 0
sql("delete from `tabMaintenance Schedule Detail` where parent='%s'" %(self.doc.name)) webnotes.conn.sql("delete from `tabMaintenance Schedule Detail` where parent='%s'" %(self.doc.name))
for d in getlist(self.doclist, 'item_maintenance_detail'): for d in getlist(self.doclist, 'item_maintenance_detail'):
self.validate_maintenance_detail() self.validate_maintenance_detail()
s_list =[] s_list =[]
@ -66,7 +66,7 @@ class DocType(TransactionBase):
email_map[d.incharge_name] = webnotes.bean("Sales Person", email_map[d.incharge_name] = webnotes.bean("Sales Person",
d.incharge_name).run_method("get_email_id") d.incharge_name).run_method("get_email_id")
scheduled_date =sql("select scheduled_date from `tabMaintenance Schedule Detail` \ scheduled_date =webnotes.conn.sql("select scheduled_date from `tabMaintenance Schedule Detail` \
where incharge_name='%s' and item_code='%s' and parent='%s' " %(d.incharge_name, \ where incharge_name='%s' and item_code='%s' and parent='%s' " %(d.incharge_name, \
d.item_code, self.doc.name), as_dict=1) d.item_code, self.doc.name), as_dict=1)
@ -171,7 +171,7 @@ class DocType(TransactionBase):
def validate_sales_order(self): def validate_sales_order(self):
for d in getlist(self.doclist, 'item_maintenance_detail'): for d in getlist(self.doclist, 'item_maintenance_detail'):
if d.prevdoc_docname: if d.prevdoc_docname:
chk = 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", d.prevdoc_docname) chk = webnotes.conn.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", d.prevdoc_docname)
if chk: if chk:
msgprint("Maintenance Schedule against "+d.prevdoc_docname+" already exist") msgprint("Maintenance Schedule against "+d.prevdoc_docname+" already exist")
raise Exception raise Exception
@ -185,7 +185,7 @@ class DocType(TransactionBase):
cur_s_no = cur_serial_no.split(',') cur_s_no = cur_serial_no.split(',')
for x in cur_s_no: for x in cur_s_no:
chk = sql("select name, status from `tabSerial No` where docstatus!=2 and name=%s", (x)) chk = webnotes.conn.sql("select name, status from `tabSerial No` where docstatus!=2 and name=%s", (x))
chk1 = chk and chk[0][0] or '' chk1 = chk and chk[0][0] or ''
status = chk and chk[0][1] or '' status = chk and chk[0][1] or ''
@ -208,7 +208,7 @@ class DocType(TransactionBase):
cur_s_no = cur_serial_no.split(',') cur_s_no = cur_serial_no.split(',')
for x in cur_s_no: for x in cur_s_no:
dt = sql("select delivery_date from `tabSerial No` where name = %s", x) dt = webnotes.conn.sql("select delivery_date from `tabSerial No` where name = %s", x)
dt = dt and dt[0][0] or '' dt = dt and dt[0][0] or ''
if dt: if dt:
@ -224,7 +224,7 @@ class DocType(TransactionBase):
cur_s_no = cur_serial_no.split(',') cur_s_no = cur_serial_no.split(',')
for x in cur_s_no: for x in cur_s_no:
sql("update `tabSerial No` set amc_expiry_date = '%s', maintenance_status = 'Under AMC' where name = '%s'"% (amc_end_date,x)) webnotes.conn.sql("update `tabSerial No` set amc_expiry_date = '%s', maintenance_status = 'Under AMC' where name = '%s'"% (amc_end_date,x))
def on_update(self): def on_update(self):
webnotes.conn.set(self.doc, 'status', 'Draft') webnotes.conn.set(self.doc, 'status', 'Draft')
@ -232,7 +232,7 @@ class DocType(TransactionBase):
def validate_serial_no_warranty(self): def validate_serial_no_warranty(self):
for d in getlist(self.doclist, 'item_maintenance_detail'): for d in getlist(self.doclist, 'item_maintenance_detail'):
if cstr(d.serial_no).strip(): if cstr(d.serial_no).strip():
dt = sql("""select warranty_expiry_date, amc_expiry_date dt = webnotes.conn.sql("""select warranty_expiry_date, amc_expiry_date
from `tabSerial No` where name = %s""", d.serial_no, as_dict=1) from `tabSerial No` where name = %s""", d.serial_no, as_dict=1)
if dt[0]['warranty_expiry_date'] and dt[0]['warranty_expiry_date'] >= d.start_date: if dt[0]['warranty_expiry_date'] and dt[0]['warranty_expiry_date'] >= d.start_date:
webnotes.msgprint("""Serial No: %s is already under warranty upto %s. webnotes.msgprint("""Serial No: %s is already under warranty upto %s.

View File

@ -18,7 +18,7 @@ class DocType(TransactionBase):
self.doclist = doclist self.doclist = doclist
def get_item_details(self, item_code): def get_item_details(self, item_code):
item = sql("select item_name,description from `tabItem` where name = '%s'" %(item_code), as_dict=1) item = webnotes.conn.sql("select item_name,description from `tabItem` where name = '%s'" %(item_code), as_dict=1)
ret = { ret = {
'item_name' : item and item[0]['item_name'] or '', 'item_name' : item and item[0]['item_name'] or '',
'description' : item and item[0]['description'] or '' 'description' : item and item[0]['description'] or ''
@ -27,7 +27,7 @@ class DocType(TransactionBase):
def validate_serial_no(self): def validate_serial_no(self):
for d in getlist(self.doclist, 'maintenance_visit_details'): for d in getlist(self.doclist, 'maintenance_visit_details'):
if d.serial_no and not sql("select name from `tabSerial No` where name = '%s' and docstatus != 2" % d.serial_no): if d.serial_no and not webnotes.conn.sql("select name from `tabSerial No` where name = '%s' and docstatus != 2" % d.serial_no):
msgprint("Serial No: "+ d.serial_no + " not exists in the system") msgprint("Serial No: "+ d.serial_no + " not exists in the system")
raise Exception raise Exception
@ -51,7 +51,7 @@ class DocType(TransactionBase):
elif self.doc.completion_status == 'Partially Completed': elif self.doc.completion_status == 'Partially Completed':
status = 'Work In Progress' status = 'Work In Progress'
else: else:
nm = sql("select t1.name, t1.mntc_date, t2.service_person, t2.work_done from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent = t1.name and t1.completion_status = 'Partially Completed' and t2.prevdoc_docname = %s and t1.name!=%s and t1.docstatus = 1 order by t1.name desc limit 1", (d.prevdoc_docname, self.doc.name)) nm = webnotes.conn.sql("select t1.name, t1.mntc_date, t2.service_person, t2.work_done from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent = t1.name and t1.completion_status = 'Partially Completed' and t2.prevdoc_docname = %s and t1.name!=%s and t1.docstatus = 1 order by t1.name desc limit 1", (d.prevdoc_docname, self.doc.name))
if nm: if nm:
status = 'Work In Progress' status = 'Work In Progress'
@ -64,7 +64,7 @@ class DocType(TransactionBase):
service_person = '' service_person = ''
work_done = '' work_done = ''
sql("update `tabCustomer Issue` set resolution_date=%s, resolved_by=%s, resolution_details=%s, status=%s where name =%s",(mntc_date,service_person,work_done,status,d.prevdoc_docname)) webnotes.conn.sql("update `tabCustomer Issue` set resolution_date=%s, resolved_by=%s, resolution_details=%s, status=%s where name =%s",(mntc_date,service_person,work_done,status,d.prevdoc_docname))
def check_if_last_visit(self): def check_if_last_visit(self):
@ -76,7 +76,7 @@ class DocType(TransactionBase):
check_for_doctype = d.prevdoc_doctype check_for_doctype = d.prevdoc_doctype
if check_for_docname: if check_for_docname:
check = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent = t1.name and t1.name!=%s and t2.prevdoc_docname=%s and t1.docstatus = 1 and (t1.mntc_date > %s or (t1.mntc_date = %s and t1.mntc_time > %s))", (self.doc.name, check_for_docname, self.doc.mntc_date, self.doc.mntc_date, self.doc.mntc_time)) check = webnotes.conn.sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent = t1.name and t1.name!=%s and t2.prevdoc_docname=%s and t1.docstatus = 1 and (t1.mntc_date > %s or (t1.mntc_date = %s and t1.mntc_time > %s))", (self.doc.name, check_for_docname, self.doc.mntc_date, self.doc.mntc_date, self.doc.mntc_time))
if check: if check:
check_lst = [x[0] for x in check] check_lst = [x[0] for x in check]

View File

@ -35,25 +35,24 @@ class DocType(TransactionBase):
self.validate_primary_contact() self.validate_primary_contact()
def validate_primary_contact(self): def validate_primary_contact(self):
sql = webnotes.conn.sql
if self.doc.is_primary_contact == 1: if self.doc.is_primary_contact == 1:
if self.doc.customer: if self.doc.customer:
sql("update tabContact set is_primary_contact=0 where customer = '%s'" % (self.doc.customer)) webnotes.conn.sql("update tabContact set is_primary_contact=0 where customer = '%s'" % (self.doc.customer))
elif self.doc.supplier: elif self.doc.supplier:
sql("update tabContact set is_primary_contact=0 where supplier = '%s'" % (self.doc.supplier)) webnotes.conn.sql("update tabContact set is_primary_contact=0 where supplier = '%s'" % (self.doc.supplier))
elif self.doc.sales_partner: elif self.doc.sales_partner:
sql("update tabContact set is_primary_contact=0 where sales_partner = '%s'" % (self.doc.sales_partner)) webnotes.conn.sql("update tabContact set is_primary_contact=0 where sales_partner = '%s'" % (self.doc.sales_partner))
else: else:
if self.doc.customer: if self.doc.customer:
if not sql("select name from tabContact where is_primary_contact=1 and customer = '%s'" % (self.doc.customer)): if not webnotes.conn.sql("select name from tabContact where is_primary_contact=1 and customer = '%s'" % (self.doc.customer)):
self.doc.is_primary_contact = 1 self.doc.is_primary_contact = 1
elif self.doc.supplier: elif self.doc.supplier:
if not sql("select name from tabContact where is_primary_contact=1 and supplier = '%s'" % (self.doc.supplier)): if not webnotes.conn.sql("select name from tabContact where is_primary_contact=1 and supplier = '%s'" % (self.doc.supplier)):
self.doc.is_primary_contact = 1 self.doc.is_primary_contact = 1
elif self.doc.sales_partner: elif self.doc.sales_partner:
if not sql("select name from tabContact where is_primary_contact=1 and sales_partner = '%s'" % (self.doc.sales_partner)): if not webnotes.conn.sql("select name from tabContact where is_primary_contact=1 and sales_partner = '%s'" % (self.doc.sales_partner)):
self.doc.is_primary_contact = 1 self.doc.is_primary_contact = 1
def on_trash(self): def on_trash(self):
webnotes.conn.sql("""update `tabSupport Ticket` set contact='' where contact=%s""", webnotes.conn.sql("""update `tabSupport Ticket` set contact='' where contact=%s""",
self.doc.name) self.doc.name)

View File

@ -48,7 +48,7 @@ class DocType:
def get_contact_number(self, arg): def get_contact_number(self, arg):
"returns mobile number of the contact" "returns mobile number of the contact"
args = load_json(arg) args = load_json(arg)
number = sql("""select mobile_no, phone from tabContact where name=%s and %s=%s""" % number = webnotes.conn.sql("""select mobile_no, phone from tabContact where name=%s and %s=%s""" %
('%s', args['key'], '%s'), (args['contact_name'], args['value'])) ('%s', args['key'], '%s'), (args['contact_name'], args['value']))
return number and (number[0][0] or number[0][1]) or '' return number and (number[0][0] or number[0][1]) or ''