mass replace sql with webnotes.conn.sql
This commit is contained in:
parent
e55fbfc090
commit
5e16a69b35
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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))
|
@ -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
|
||||||
|
@ -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))
|
@ -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")
|
||||||
|
|
||||||
|
@ -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 ''
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 +
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
|
||||||
# ----------------
|
# ----------------
|
||||||
|
@ -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.")
|
||||||
|
@ -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'
|
||||||
|
@ -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 = ''
|
||||||
|
@ -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'.
|
||||||
|
@ -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)
|
||||||
|
@ -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.
|
||||||
|
@ -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:
|
||||||
|
@ -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))
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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'
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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")
|
||||||
|
@ -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 = ''):
|
||||||
|
@ -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 ''
|
||||||
|
@ -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
|
||||||
|
@ -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."
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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]})
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
@ -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")
|
||||||
|
@ -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.
|
||||||
|
@ -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]
|
||||||
|
@ -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)
|
||||||
|
@ -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 ''
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user