mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-08 15:42:52 +00:00
get_query to server side
This commit is contained in:
@@ -132,7 +132,9 @@ cur_frm.fields_dict['master_name'].get_query = function(doc) {
|
|||||||
|
|
||||||
cur_frm.fields_dict['parent_account'].get_query = function(doc) {
|
cur_frm.fields_dict['parent_account'].get_query = function(doc) {
|
||||||
return {
|
return {
|
||||||
query: "accounts.doctype.account.account.get_parent_account",
|
filters: {
|
||||||
filters: { "company": doc.company}
|
"group_or_ledger": "Group",
|
||||||
|
"company": doc.company
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,10 +18,12 @@
|
|||||||
// -----------------------------
|
// -----------------------------
|
||||||
cur_frm.fields_dict.invoice_details.grid.get_field("invoice_no").get_query = function(doc) {
|
cur_frm.fields_dict.invoice_details.grid.get_field("invoice_no").get_query = function(doc) {
|
||||||
return {
|
return {
|
||||||
query: "accounts.doctype.c_form.c_form.get_invoice_nos",
|
|
||||||
filters: {
|
filters: {
|
||||||
customer: doc.customer,
|
"docstatus": 1,
|
||||||
company: doc.company
|
"customer": doc.customer,
|
||||||
|
"company": doc.company,
|
||||||
|
"c_form_applicable": 'Yes',
|
||||||
|
"c_form_no": ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,11 +36,27 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) {
|
|||||||
//Account filtering for cost center
|
//Account filtering for cost center
|
||||||
cur_frm.fields_dict['budget_details'].grid.get_field('account').get_query = function(doc) {
|
cur_frm.fields_dict['budget_details'].grid.get_field('account').get_query = function(doc) {
|
||||||
var mydoc = locals[this.doctype][this.docname];
|
var mydoc = locals[this.doctype][this.docname];
|
||||||
return 'SELECT DISTINCT `tabAccount`.`name`,`tabAccount`.debit_or_credit,`tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.`company` = "' + doc.company_name + '" AND `tabAccount`.docstatus != 2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.debit_or_credit = "Debit" AND `tabAccount`.`group_or_ledger` != "Group" AND `tabAccount`.`group_or_ledger` is not NULL AND `tabAccount`.`name` LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50';
|
return{
|
||||||
|
filters:[
|
||||||
|
['Account', 'company', '=', doc.company_name],
|
||||||
|
['Account', 'is_pl_account', '=', 'Yes'],
|
||||||
|
['Account', 'debit_or_credit', '=', 'Debit'],
|
||||||
|
['Account', 'group_or_ledger', '!=', 'Group'],
|
||||||
|
['Account', 'group_or_ledger', 'is not', 'NULL']
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// return 'SELECT DISTINCT `tabAccount`.`name`,`tabAccount`.debit_or_credit,`tabAccount`.group_or_ledger FROM `tabAccount` WHERE `tabAccount`.`company` = "' + doc.company_name + '" AND `tabAccount`.docstatus != 2 AND `tabAccount`.`is_pl_account` = "Yes" AND `tabAccount`.debit_or_credit = "Debit" AND `tabAccount`.`group_or_ledger` != "Group" AND `tabAccount`.`group_or_ledger` is not NULL AND `tabAccount`.`name` LIKE "%s" ORDER BY `tabAccount`.`name` LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['parent_cost_center'].get_query = function(doc){
|
cur_frm.fields_dict['parent_cost_center'].get_query = function(doc){
|
||||||
return 'SELECT DISTINCT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Group" AND `tabCost Center`.docstatus != 2 AND `tabCost Center`.company_name="'+ doc.company_name+'" AND `tabCost Center`.company_name is not NULL AND `tabCost Center`.name LIKE "%s" ORDER BY `tabCost Center`.name LIMIT 50';
|
return{
|
||||||
|
filters:[
|
||||||
|
['Cost Center', 'group_or_ledger', '=', 'Group'],
|
||||||
|
['Cost Center', 'company', '=', doc.company_name],
|
||||||
|
['Cost Center', 'company_name', 'is not', 'NULL']
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// return 'SELECT DISTINCT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Group" AND `tabCost Center`.docstatus != 2 AND `tabCost Center`.company_name="'+ doc.company_name+'" AND `tabCost Center`.company_name is not NULL AND `tabCost Center`.name LIKE "%s" ORDER BY `tabCost Center`.name LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
//parent cost center
|
//parent cost center
|
||||||
|
|||||||
@@ -196,24 +196,35 @@ cur_frm.fields_dict['entries'].grid.get_field('account').get_query = function(do
|
|||||||
|
|
||||||
cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
|
cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
|
||||||
return {
|
return {
|
||||||
query: "accounts.utils.get_cost_center_list",
|
// query: "accounts.utils.get_cost_center_list",
|
||||||
filters: { company_name: doc.company}
|
filters: {
|
||||||
|
'company_name': doc.company,
|
||||||
|
'group_or_ledger': 'Ledger'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['entries'].grid.get_field('against_voucher').get_query = function(doc) {
|
cur_frm.fields_dict['entries'].grid.get_field('against_voucher').get_query = function(doc) {
|
||||||
var d = locals[this.doctype][this.docname];
|
var d = locals[this.doctype][this.docname];
|
||||||
return {
|
return {
|
||||||
query: "accounts.doctype.journal_voucher.journal_voucher.get_against_purchase_invoice",
|
// query: "accounts.doctype.journal_voucher.journal_voucher.get_against_purchase_invoice",
|
||||||
filters: { account: d.account }
|
filters: [
|
||||||
|
['Purchase Invoice', 'credit_to', '=', d.account],
|
||||||
|
['Purchase Invoice', 'docstatus', '=', 1],
|
||||||
|
['Purchase Invoice', 'outstanding_amount', '>', 0]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['entries'].grid.get_field('against_invoice').get_query = function(doc) {
|
cur_frm.fields_dict['entries'].grid.get_field('against_invoice').get_query = function(doc) {
|
||||||
var d = locals[this.doctype][this.docname];
|
var d = locals[this.doctype][this.docname];
|
||||||
return {
|
return {
|
||||||
query: "accounts.doctype.journal_voucher.journal_voucher.get_against_sales_invoice",
|
// query: "accounts.doctype.journal_voucher.journal_voucher.get_against_sales_invoice",
|
||||||
filters: { account: d.account }
|
filters: [
|
||||||
|
['Sales Invoice', 'debit_to', '=', d.account],
|
||||||
|
['Sales Invoice', 'docstatus', '=', 1],
|
||||||
|
['Sales Invoice', 'outstanding_amount', '>', 0]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,25 +36,12 @@ cur_frm.fields_dict.voucher_no.get_query = function(doc) {
|
|||||||
// TO-do: check for pos, it should not come
|
// TO-do: check for pos, it should not come
|
||||||
if (!doc.account) msgprint("Please select Account first");
|
if (!doc.account) msgprint("Please select Account first");
|
||||||
else {
|
else {
|
||||||
return repl("select gle.voucher_no, gle.posting_date, gle.%(account_type)s \
|
query: "accounts.doctype.payment_to_invoice_matching_tool.payment_to_invoice_matching_tool.gl_entry_details",
|
||||||
from `tabGL Entry` gle \
|
filters: {
|
||||||
where gle.account = '%(acc)s' \
|
"dt": doc.voucher_type,
|
||||||
and gle.voucher_type = '%(dt)s' \
|
"acc": doc.account,
|
||||||
and gle.voucher_no like '%s' \
|
"account_type": doc.account_type
|
||||||
and ifnull(gle.is_cancelled, 'No') = 'No' \
|
}
|
||||||
and (ifnull(gle.against_voucher, '') = '' \
|
|
||||||
or ifnull(gle.against_voucher, '') = gle.voucher_no ) \
|
|
||||||
and ifnull(gle.%(account_type)s, 0) > 0 \
|
|
||||||
and (select ifnull(abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))), 0) \
|
|
||||||
from `tabGL Entry` \
|
|
||||||
where against_voucher_type = '%(dt)s' \
|
|
||||||
and against_voucher = gle.voucher_no \
|
|
||||||
and voucher_no != gle.voucher_no \
|
|
||||||
and account = gle.account \
|
|
||||||
and ifnull(is_cancelled, 'No') = 'No') != \
|
|
||||||
abs(ifnull(gle.debit, 0) - ifnull(gle.credit, 0)) \
|
|
||||||
ORDER BY gle.posting_date DESC, gle.voucher_no DESC LIMIT 50",
|
|
||||||
{dt:doc.voucher_type, acc:doc.account, account_type: doc.account_type});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -139,3 +139,19 @@ class DocType:
|
|||||||
msgprint("Successfully allocated.")
|
msgprint("Successfully allocated.")
|
||||||
else:
|
else:
|
||||||
msgprint("No amount allocated.", raise_exception=1)
|
msgprint("No amount allocated.", raise_exception=1)
|
||||||
|
|
||||||
|
def gl_entry_details(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
("""select gle.voucher_no, gle.posting_date, gle.%(account_type)s
|
||||||
|
from `tabGL Entry` gle
|
||||||
|
where gle.account = '%(acc)s' and gle.voucher_type = '%(dt)s'
|
||||||
|
and gle.voucher_no like '%s' and ifnull(gle.is_cancelled, 'No') = 'No'
|
||||||
|
and (ifnull(gle.against_voucher, '') = '' or ifnull(gle.against_voucher, '') = gle.voucher_no )
|
||||||
|
and ifnull(gle.%(account_type)s, 0) > 0
|
||||||
|
and (select ifnull(abs(sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))), 0)
|
||||||
|
from `tabGL Entry`
|
||||||
|
where against_voucher_type = '%(dt)s' and against_voucher = gle.voucher_no
|
||||||
|
and voucher_no != gle.voucher_no
|
||||||
|
and ifnull(is_cancelled, 'No') = 'No') != abs(ifnull(gle.debit, 0) - ifnull(gle.credit, 0))
|
||||||
|
ORDER BY gle.posting_date DESC, gle.voucher_no DESC limit %(start)s, %(page_len)s"""%
|
||||||
|
{dt:filters["dt"], acc:filters["acc"], account_type: filters['account_type'], "start": start,
|
||||||
|
"page_len": page_len})
|
||||||
@@ -23,5 +23,14 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) {
|
|||||||
|
|
||||||
// ***************** Get Account Head *****************
|
// ***************** Get Account Head *****************
|
||||||
cur_frm.fields_dict['closing_account_head'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['closing_account_head'].get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT `tabAccount`.name FROM `tabAccount` WHERE `tabAccount`.is_pl_account = "No" AND `tabAccount`.debit_or_credit = "Credit" AND `tabAccount`.company = "'+ cstr(doc.company) +'" AND ifnull(`tabAccount`.freeze_account, "No") = "No" AND `tabAccount`.group_or_ledger = "Ledger" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.name ASC LIMIT 50';
|
return{
|
||||||
|
filters:{
|
||||||
|
'is_pl_account': "No",
|
||||||
|
"debit_or_credit": "Credit",
|
||||||
|
"company": doc.company,
|
||||||
|
"freeze_account": "No",
|
||||||
|
"group_or_ledger": "Ledger"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabAccount`.name FROM `tabAccount` WHERE `tabAccount`.is_pl_account = "No" AND `tabAccount`.debit_or_credit = "Credit" AND `tabAccount`.company = "'+ cstr(doc.company) +'" AND ifnull(`tabAccount`.freeze_account, "No") = "No" AND `tabAccount`.group_or_ledger = "Ledger" AND `tabAccount`.%(key)s LIKE "%s" ORDER BY `tabAccount`.name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,41 +25,74 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){
|
|||||||
//cash bank account
|
//cash bank account
|
||||||
//------------------------------------
|
//------------------------------------
|
||||||
cur_frm.fields_dict['cash_bank_account'].get_query = function(doc,cdt,cdn) {
|
cur_frm.fields_dict['cash_bank_account'].get_query = function(doc,cdt,cdn) {
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
return{
|
||||||
|
filters:{
|
||||||
|
'debit_or_credit': "Debit",
|
||||||
|
'is_pl_account': "No",
|
||||||
|
'group_or_ledger': "Ledger",
|
||||||
|
'company': doc.company
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
// Income Account
|
// Income Account
|
||||||
// --------------------------------
|
// --------------------------------
|
||||||
cur_frm.fields_dict['income_account'].get_query = function(doc,cdt,cdn) {
|
cur_frm.fields_dict['income_account'].get_query = function(doc,cdt,cdn) {
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.account_type ="Income Account" AND tabAccount.%(key)s LIKE "%s"'
|
return{
|
||||||
|
filters:{
|
||||||
|
'debit_or_credit': "Credit",
|
||||||
|
'group_or_ledger': "Ledger",
|
||||||
|
'company': doc.company,
|
||||||
|
'account_type': "Income Account"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.account_type ="Income Account" AND tabAccount.%(key)s LIKE "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Cost Center
|
// Cost Center
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
cur_frm.fields_dict['cost_center'].get_query = function(doc,cdt,cdn) {
|
cur_frm.fields_dict['cost_center'].get_query = function(doc,cdt,cdn) {
|
||||||
return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50';
|
return{
|
||||||
|
filters:{
|
||||||
|
'company_name': doc.company,
|
||||||
|
'group_or_ledger': "Ledger",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
//get query select Territory
|
//get query select Territory
|
||||||
//=================================================================
|
//=================================================================
|
||||||
cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
|
cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
|
||||||
return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s" ORDER BY `tabTerritory`.`name` ASC LIMIT 50';
|
return{
|
||||||
|
filters:{
|
||||||
|
'is_group': "No"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s" ORDER BY `tabTerritory`.`name` ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ------------------ Get Print Heading ------------------------------------
|
// ------------------ Get Print Heading ------------------------------------
|
||||||
cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
|
return{
|
||||||
|
filters:[
|
||||||
|
['Print Heading', 'docstatus', '!=', 2]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict["expense_account"].get_query = function(doc) {
|
cur_frm.fields_dict["expense_account"].get_query = function(doc) {
|
||||||
return {
|
return {
|
||||||
"query": "accounts.utils.get_account_list",
|
// "query": "accounts.utils.get_account_list",
|
||||||
"filters": {
|
filters: {
|
||||||
"is_pl_account": "Yes",
|
"is_pl_account": "Yes",
|
||||||
"debit_or_credit": "Debit",
|
"debit_or_credit": "Debit",
|
||||||
"company": doc.company
|
"company": doc.company,
|
||||||
|
"group_or_ledger": "Ledger"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,11 +132,17 @@ cur_frm.cscript.make_bank_voucher = function() {
|
|||||||
|
|
||||||
|
|
||||||
cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
|
return{
|
||||||
|
filters:{'supplier': doc.supplier}
|
||||||
|
}
|
||||||
|
// return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
|
return{
|
||||||
|
filters:{'supplier': doc.supplier}
|
||||||
|
}
|
||||||
|
// return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['entries'].grid.get_field("item_code").get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['entries'].grid.get_field("item_code").get_query = function(doc, cdt, cdn) {
|
||||||
@@ -146,32 +152,73 @@ cur_frm.fields_dict['entries'].grid.get_field("item_code").get_query = function(
|
|||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['credit_to'].get_query = function(doc) {
|
cur_frm.fields_dict['credit_to'].get_query = function(doc) {
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.is_pl_account="No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
return{
|
||||||
|
filters:{
|
||||||
|
'debit_or_credit': 'Credit',
|
||||||
|
'is_pl_account': 'No',
|
||||||
|
'group_or_ledger': 'Ledger',
|
||||||
|
'company': doc.company
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.is_pl_account="No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['purchase_order_main'].get_query = function(doc) {
|
cur_frm.fields_dict['purchase_order_main'].get_query = function(doc) {
|
||||||
|
var filter = [
|
||||||
|
['Purchase Order', 'docstatus', '=', 1],
|
||||||
|
['Purchase Order', 'status', '!=', 'Stopped'],
|
||||||
|
['Purchase Order', 'per_billed', '<', 99.99],
|
||||||
|
['Purchase Order', 'company', '=', doc.company]
|
||||||
|
];
|
||||||
|
var cond = [];
|
||||||
if (doc.supplier){
|
if (doc.supplier){
|
||||||
return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.supplier = "'+ doc.supplier +'" AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`,0) < 99.99 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
|
cond = ['Purchase Order', 'supplier', '=', doc.supplier];
|
||||||
} else {
|
// return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.supplier = "'+ doc.supplier +'" AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`,0) < 99.99 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
|
||||||
return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`, 0) < 99.99 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
|
}
|
||||||
|
filter.push(cond);
|
||||||
|
return{
|
||||||
|
filters: filter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['purchase_receipt_main'].get_query = function(doc) {
|
cur_frm.fields_dict['purchase_receipt_main'].get_query = function(doc) {
|
||||||
|
var filter = [
|
||||||
|
['Purchase Receipt', 'docstatus', '=', 1],
|
||||||
|
['Purchase Receipt', 'status', '!=', 'Stopped'],
|
||||||
|
['Purchase Receipt', 'per_billed', '<', 99.99],
|
||||||
|
['Purchase Receipt', 'company', '=', doc.company]
|
||||||
|
];
|
||||||
|
var cond = [];
|
||||||
if (doc.supplier){
|
if (doc.supplier){
|
||||||
return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.supplier = "'+ doc.supplier +'" AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 99.99 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
|
['Purchase Receipt', 'supplier', '=', doc.supplier];
|
||||||
} else {
|
// return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.supplier = "'+ doc.supplier +'" AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 99.99 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
|
||||||
return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 99.99 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
|
}
|
||||||
|
filter.push(cond);
|
||||||
|
return{
|
||||||
|
filters: filter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Print Heading
|
// Get Print Heading
|
||||||
cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
|
return{
|
||||||
|
filters:[
|
||||||
|
['Print Heading', 'docstatus', '!=', 2]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['entries'].grid.get_field("expense_head").get_query = function(doc) {
|
cur_frm.fields_dict['entries'].grid.get_field("expense_head").get_query = function(doc) {
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE (tabAccount.debit_or_credit="Debit" OR tabAccount.account_type = "Expense Account") AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
|
return{
|
||||||
|
filters:{
|
||||||
|
'debit_or_credit':'Debit',
|
||||||
|
'account_type': 'Expense Account',
|
||||||
|
'group_or_ledger': 'Ledger',
|
||||||
|
'company': doc.company
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT tabAccount.name FROM tabAccount WHERE (tabAccount.debit_or_credit="Debit" OR tabAccount.account_type = "Expense Account") AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"';
|
||||||
}
|
}
|
||||||
cur_frm.cscript.expense_head = function(doc, cdt, cdn){
|
cur_frm.cscript.expense_head = function(doc, cdt, cdn){
|
||||||
var d = locals[cdt][cdn];
|
var d = locals[cdt][cdn];
|
||||||
@@ -186,8 +233,11 @@ cur_frm.cscript.expense_head = function(doc, cdt, cdn){
|
|||||||
|
|
||||||
cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
|
cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
|
||||||
return {
|
return {
|
||||||
query: "accounts.utils.get_cost_center_list",
|
// query: "accounts.utils.get_cost_center_list",
|
||||||
filters: { company_name: doc.company}
|
filters: {
|
||||||
|
'company_name': doc.company,
|
||||||
|
'group_or_ledger': 'Ledger'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,9 +278,14 @@ cur_frm.cscript.make_jv = function(doc, dt, dn, bank_account) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['entries'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['entries'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT `tabProject`.name FROM `tabProject` \
|
return{
|
||||||
WHERE `tabProject`.status not in ("Completed", "Cancelled") \
|
filters:[
|
||||||
AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
|
['Project', 'status', 'not in', 'Completed, Cancelled']
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabProject`.name FROM `tabProject` \
|
||||||
|
// WHERE `tabProject`.status not in ("Completed", "Cancelled") \
|
||||||
|
// AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -127,15 +127,26 @@ cur_frm.cscript.row_id = function(doc, cdt, cdn) {
|
|||||||
refresh_field('row_id',d.name,'purchase_tax_details');
|
refresh_field('row_id',d.name,'purchase_tax_details');
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
|
cur_frm.set_query("account_head", "purchase_tax_details", function() {
|
||||||
|
return {
|
||||||
cur_frm.fields_dict['purchase_tax_details'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
|
filters: [
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND (tabAccount.account_type in ("Tax", "Chargeable", "Expense Account") or (tabAccount.is_pl_account = "Yes" and tabAccount.debit_or_credit = "Debit")) AND tabAccount.company = "' + doc.company + '" AND tabAccount.name LIKE "%s"'
|
["Account", "group_or_ledger", "=", "Ledger"],
|
||||||
|
["Account", "docstatus", "!=", 2],
|
||||||
|
["Account", "account_type", "in", "Tax, Chargeable, Expense Account"],
|
||||||
|
["Account", "is_pl_account", "=", "Yes"],
|
||||||
|
["Account", "debit_or_credit", "=", "Debit"],
|
||||||
|
["Account", "company", "=", doc.company]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
cur_frm.fields_dict['purchase_tax_details'].grid.get_field("cost_center").get_query = function(doc) {
|
cur_frm.fields_dict['purchase_tax_details'].grid.get_field("cost_center").get_query = function(doc) {
|
||||||
return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50';
|
return {
|
||||||
|
filters: {
|
||||||
|
'company_name': doc.company,
|
||||||
|
'group_or_ledger': "Ledger"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -241,38 +241,75 @@ cur_frm.cscript.make_bank_voucher = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict.debit_to.get_query = function(doc) {
|
cur_frm.fields_dict.debit_to.get_query = function(doc) {
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
return{
|
||||||
|
filters: {
|
||||||
|
'debit_or_credit': 'Debit',
|
||||||
|
'is_pl_account': 'No',
|
||||||
|
'group_or_ledger': 'Ledger',
|
||||||
|
'company': doc.company
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict.cash_bank_account.get_query = function(doc) {
|
cur_frm.fields_dict.cash_bank_account.get_query = function(doc) {
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
return{
|
||||||
|
filters: {
|
||||||
|
'debit_or_credit': 'Debit',
|
||||||
|
'is_pl_account': 'No',
|
||||||
|
'group_or_ledger': 'Ledger',
|
||||||
|
'company': doc.company
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict.write_off_account.get_query = function(doc) {
|
cur_frm.fields_dict.write_off_account.get_query = function(doc) {
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "Yes" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
return{
|
||||||
|
filters:{
|
||||||
|
'debit_or_credit': 'Debit',
|
||||||
|
'is_pl_account': 'Yes',
|
||||||
|
'group_or_ledger': 'Ledger',
|
||||||
|
'company': doc.company
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Debit" AND tabAccount.is_pl_account = "Yes" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus!=2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write off cost center
|
// Write off cost center
|
||||||
//-----------------------
|
//-----------------------
|
||||||
cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
|
cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
|
||||||
return 'SELECT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Ledger" AND `tabCost Center`.docstatus!=2 AND `tabCost Center`.company_name="'+doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s"'
|
return{
|
||||||
|
filters:{
|
||||||
|
'group_or_ledger': 'Ledger',
|
||||||
|
'company_name': doc.company
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabCost Center`.name FROM `tabCost Center` WHERE `tabCost Center`.group_or_ledger="Ledger" AND `tabCost Center`.docstatus!=2 AND `tabCost Center`.company_name="'+doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
//project name
|
//project name
|
||||||
//--------------------------
|
//--------------------------
|
||||||
cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
|
||||||
var cond = '';
|
return{
|
||||||
if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
|
query: "controllers.queries.get_project_name",
|
||||||
return repl('SELECT `tabProject`.name FROM `tabProject` \
|
filters: {'customer': doc.customer}
|
||||||
WHERE `tabProject`.status not in ("Completed", "Cancelled") \
|
}
|
||||||
AND %(cond)s `tabProject`.name LIKE "%s" \
|
// var cond = '';
|
||||||
ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
|
// if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
|
||||||
|
// return repl('SELECT `tabProject`.name FROM `tabProject` \
|
||||||
|
// WHERE `tabProject`.status not in ("Completed", "Cancelled") \
|
||||||
|
// AND %(cond)s `tabProject`.name LIKE "%s" \
|
||||||
|
// ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
|
||||||
}
|
}
|
||||||
|
|
||||||
//Territory
|
//Territory
|
||||||
//-----------------------------
|
//-----------------------------
|
||||||
cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
|
cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
|
||||||
return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s" ORDER BY `tabTerritory`.`name` ASC LIMIT 50';
|
return{
|
||||||
|
filters: {'is_group': 'NO'}
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s" ORDER BY `tabTerritory`.`name` ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Income Account in Details Table
|
// Income Account in Details Table
|
||||||
@@ -285,11 +322,12 @@ cur_frm.set_query("income_account", "entries", function(doc) {
|
|||||||
if (sys_defaults.auto_inventory_accounting) {
|
if (sys_defaults.auto_inventory_accounting) {
|
||||||
cur_frm.fields_dict['entries'].grid.get_field('expense_account').get_query = function(doc) {
|
cur_frm.fields_dict['entries'].grid.get_field('expense_account').get_query = function(doc) {
|
||||||
return {
|
return {
|
||||||
"query": "accounts.utils.get_account_list",
|
// "query": "accounts.utils.get_account_list",
|
||||||
"filters": {
|
filters: {
|
||||||
"is_pl_account": "Yes",
|
'is_pl_account': 'Yes',
|
||||||
"debit_or_credit": "Debit",
|
'debit_or_credit': 'Debit',
|
||||||
"company": doc.company
|
'company': doc.company,
|
||||||
|
'group_or_ledger': 'Ledger'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -299,45 +337,66 @@ if (sys_defaults.auto_inventory_accounting) {
|
|||||||
//----------------------------
|
//----------------------------
|
||||||
cur_frm.fields_dict['entries'].grid.get_field('warehouse').get_query= function(doc, cdt, cdn) {
|
cur_frm.fields_dict['entries'].grid.get_field('warehouse').get_query= function(doc, cdt, cdn) {
|
||||||
var d = locals[cdt][cdn];
|
var d = locals[cdt][cdn];
|
||||||
return "SELECT `tabBin`.`warehouse`, `tabBin`.`actual_qty` FROM `tabBin` WHERE `tabBin`.`item_code` = '"+ d.item_code +"' AND ifnull(`tabBin`.`actual_qty`,0) > 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50";
|
return{
|
||||||
|
filters:[
|
||||||
|
['Bin', 'item_code', '=', d.item_code],
|
||||||
|
['Bin', 'actual_qty', '>', 0]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// return "SELECT `tabBin`.`warehouse`, `tabBin`.`actual_qty` FROM `tabBin` WHERE `tabBin`.`item_code` = '"+ d.item_code +"' AND ifnull(`tabBin`.`actual_qty`,0) > 0 AND `tabBin`.`warehouse` like '%s' ORDER BY `tabBin`.`warehouse` DESC LIMIT 50";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cost Center in Details Table
|
// Cost Center in Details Table
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
|
cur_frm.fields_dict["entries"].grid.get_field("cost_center").get_query = function(doc) {
|
||||||
return {
|
return {
|
||||||
query: "accounts.utils.get_cost_center_list",
|
// query: "accounts.utils.get_cost_center_list",
|
||||||
filters: { company_name: doc.company}
|
filters: {
|
||||||
|
'company_name': doc.company,
|
||||||
|
'group_or_ledger': 'Ledger'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sales Order
|
// Sales Order
|
||||||
// -----------
|
// -----------
|
||||||
cur_frm.fields_dict.sales_order_main.get_query = function(doc) {
|
cur_frm.fields_dict.sales_order_main.get_query = function(doc) {
|
||||||
if (doc.customer)
|
var filter = [
|
||||||
return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 99.99 and `tabSales Order`.`customer` = "' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
|
['Sales Order','company','=',doc.company],
|
||||||
else
|
['Sales Order','docstatus','=',1],
|
||||||
return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 99.99 and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
|
['Sales Order','status','!=','Stopped'],
|
||||||
|
['Sales Order','per_billed','<',99.99]
|
||||||
|
];
|
||||||
|
var cond = [];
|
||||||
|
if (doc.customer) cond = ['Sales Order', 'customer', '=', doc.customer];
|
||||||
|
// return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 99.99 and `tabSales Order`.`customer` = "' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
|
||||||
|
filter.push(cond);
|
||||||
|
return{
|
||||||
|
filters: filter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delivery Note
|
// Delivery Note
|
||||||
// --------------
|
// --------------
|
||||||
cur_frm.fields_dict.delivery_note_main.get_query = function(doc) {
|
cur_frm.fields_dict.delivery_note_main.get_query = function(doc) {
|
||||||
if (doc.customer)
|
var filter = [
|
||||||
return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` \
|
['Delivery Note', 'company', '=', doc.company],
|
||||||
WHERE `tabDelivery Note`.company = "' + doc.company
|
['Delivery Note', 'docstatus', '=', 1],
|
||||||
+ '" and `tabDelivery Note`.`docstatus` = 1 and \
|
['Delivery Note', 'per_billed', '<', 99.99]
|
||||||
ifnull(`tabDelivery Note`.per_billed,0) < 99.99 and \
|
];
|
||||||
`tabDelivery Note`.`customer` = "'
|
var cond = [];
|
||||||
+ doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" \
|
if (doc.customer) ['Delivery Note', 'customer', '=', doc.customer];
|
||||||
ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
|
// return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` \
|
||||||
else
|
// WHERE `tabDelivery Note`.company = "' + doc.company
|
||||||
return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` \
|
// + '" and `tabDelivery Note`.`docstatus` = 1 and \
|
||||||
WHERE `tabDelivery Note`.company = "' + doc.company
|
// ifnull(`tabDelivery Note`.per_billed,0) < 99.99 and \
|
||||||
+ '" and `tabDelivery Note`.`docstatus` = 1 and \
|
// `tabDelivery Note`.`customer` = "'
|
||||||
ifnull(`tabDelivery Note`.per_billed,0) < 99.99 and \
|
// + doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" \
|
||||||
`tabDelivery Note`.%(key)s LIKE "%s" \
|
// ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
|
||||||
ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
|
filter.push(cond);
|
||||||
|
return{
|
||||||
|
filters: filter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -137,11 +137,22 @@ cur_frm.cscript.row_id = function(doc, cdt, cdn) {
|
|||||||
/*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
|
/*---------------------- Get rate if account_head has account_type as TAX or CHARGEABLE-------------------------------------*/
|
||||||
|
|
||||||
cur_frm.fields_dict['other_charges'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
|
cur_frm.fields_dict['other_charges'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
|
||||||
return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.account_type in ("Tax", "Chargeable", "Income Account") AND tabAccount.company = "'+doc.company+'" AND tabAccount.name LIKE "%s"'
|
return{
|
||||||
|
filters:[
|
||||||
|
['Account', 'group_or_ledger', '=', 'Ledger'],
|
||||||
|
['Account', 'account_type', 'in', 'Tax, Chargeable, Income Account'],
|
||||||
|
['Account', 'company', '=', doc.company]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.account_type in ("Tax", "Chargeable", "Income Account") AND tabAccount.company = "'+doc.company+'" AND tabAccount.name LIKE "%s"'
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['other_charges'].grid.get_field("cost_center").get_query = function(doc) {
|
cur_frm.fields_dict['other_charges'].grid.get_field("cost_center").get_query = function(doc) {
|
||||||
return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50';
|
return{
|
||||||
|
'company_name': doc.company,
|
||||||
|
'group_or_ledger': "Ledger"
|
||||||
|
}
|
||||||
|
// return 'SELECT `tabCost Center`.`name` FROM `tabCost Center` WHERE `tabCost Center`.`company_name` = "' +doc.company+'" AND `tabCost Center`.%(key)s LIKE "%s" AND `tabCost Center`.`group_or_ledger` = "Ledger" AND `tabCost Center`.`docstatus`!= 2 ORDER BY `tabCost Center`.`name` ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -80,25 +80,37 @@ cur_frm.cscript.supplier_address = cur_frm.cscript.contact_person = function(doc
|
|||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
|
return {
|
||||||
|
filters: {'supplier': doc.supplier}
|
||||||
|
}
|
||||||
|
// return 'SELECT name,address_line1,city FROM tabAddress WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
|
return {
|
||||||
|
filters: {'supplier': doc.supplier}
|
||||||
|
}
|
||||||
|
// return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['po_details'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['po_details'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
|
||||||
return 'SELECT `tabProject`.name FROM `tabProject` \
|
return {
|
||||||
WHERE `tabProject`.status not in ("Completed", "Cancelled") \
|
filters:[
|
||||||
AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
|
['Project', 'status', 'not in', 'Completed, Cancelled']
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['indent_no'].get_query = function(doc) {
|
cur_frm.fields_dict['indent_no'].get_query = function(doc) {
|
||||||
return 'SELECT DISTINCT `name` FROM `tabMaterial Request` \
|
return{
|
||||||
WHERE material_request_type="Purchase" and company = "' + doc.company
|
filters:[
|
||||||
+ '" and `docstatus` = 1 and `status` != "Stopped" \
|
['Material Request', 'material_request_type', '=', 'Purchase'],
|
||||||
and ifnull(`per_ordered`,0) < 99.99 and %(key)s LIKE "%s" \
|
['Material Request', 'company', '=', doc.company],
|
||||||
ORDER BY `name` DESC LIMIT 50';
|
['Material Request', 'docstatus', '=', '1'],
|
||||||
|
['Material Request', 'status', '!=', 'Stopped'],
|
||||||
|
['Material Request', 'per_ordered', '<', 99.99]
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.get_last_purchase_rate = function(doc, cdt, cdn){
|
cur_frm.cscript.get_last_purchase_rate = function(doc, cdt, cdn){
|
||||||
|
|||||||
@@ -43,18 +43,33 @@ cur_frm.cscript.refresh = cur_frm.cscript.inspection_type;
|
|||||||
|
|
||||||
// item code based on GRN/DN
|
// item code based on GRN/DN
|
||||||
cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
|
||||||
|
filter = {};
|
||||||
if (doc.purchase_receipt_no)
|
if (doc.purchase_receipt_no)
|
||||||
return 'SELECT item_code, item_name, description FROM `tabPurchase Receipt Item` WHERE parent = "'+ doc.purchase_receipt_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
|
filter:{
|
||||||
|
'parent': doc.purchase_receipt_no
|
||||||
|
}
|
||||||
|
// return 'SELECT item_code, item_name, description FROM `tabPurchase Receipt Item` WHERE parent = "'+ doc.purchase_receipt_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
|
||||||
else if (doc.delivery_note_no)
|
else if (doc.delivery_note_no)
|
||||||
return 'SELECT item_code, item_name, description FROM `tabDelivery Note Item` WHERE parent = "'+ doc.delivery_note_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
|
filter:{
|
||||||
else
|
'parent': doc.delivery_note_no
|
||||||
return 'SELECT name, item_name, description FROM tabItem WHERE docstatus != 2 AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
|
}
|
||||||
|
// return 'SELECT item_code, item_name, description FROM `tabDelivery Note Item` WHERE parent = "'+ doc.delivery_note_no +'" and docstatus != 2 AND item_code LIKE "%s" ORDER BY item_code ASC LIMIT 50';
|
||||||
|
return{
|
||||||
|
filters: filter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Serial No based on item_code
|
// Serial No based on item_code
|
||||||
cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
|
||||||
|
filter = {};
|
||||||
if (doc.item_code)
|
if (doc.item_code)
|
||||||
return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND item_code = "' + doc.item_code +'" AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
|
filter:{
|
||||||
else
|
'item_code': doc.item_code,
|
||||||
return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
|
'status': "In Store"
|
||||||
|
}
|
||||||
|
// return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND item_code = "' + doc.item_code +'" AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
|
||||||
|
else
|
||||||
|
filter:{ 'status': "In Store" }
|
||||||
|
// return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
|
||||||
|
return{ filters: filter }
|
||||||
}
|
}
|
||||||
@@ -56,18 +56,23 @@ cur_frm.cscript.uom = function(doc, cdt, cdn) {
|
|||||||
|
|
||||||
cur_frm.fields_dict['quotation_items'].grid.get_field('project_name').get_query =
|
cur_frm.fields_dict['quotation_items'].grid.get_field('project_name').get_query =
|
||||||
function(doc, cdt, cdn) {
|
function(doc, cdt, cdn) {
|
||||||
return "select `tabProject`.name from `tabProject` \
|
return{
|
||||||
where `tabProject`.status not in (\"Completed\", \"Cancelled\") \
|
filters:[
|
||||||
and `tabProject`.name like \"%s\" \
|
['Project', 'status', 'not in', 'Completed, Cancelled'],
|
||||||
order by `tabProject`.name ASC LIMIT 50";
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['indent_no'].get_query = function(doc) {
|
cur_frm.fields_dict['indent_no'].get_query = function(doc) {
|
||||||
return "select distinct `name` from `tabMaterial Request` \
|
return{
|
||||||
where material_request_type='Purchase' and company = \"" + doc.company +
|
filters:[
|
||||||
"\" and `docstatus` = 1 and `status` != \"Stopped\" and \
|
['Material Request', 'material_request_type', '=', 'Purchase'],
|
||||||
ifnull(`per_ordered`,0) < 99.99 and \
|
['Material Request', 'company', '=', doc.company],
|
||||||
%(key)s LIKE \"%s\" order by `name` desc limit 50";
|
['Material Request', 'docstatus', '=', 1],
|
||||||
|
['Material Request', 'status', '!=', 'Stopped'],
|
||||||
|
['Material Request', 'per_ordered', '<', 99.99]
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.supplier_address = function(doc, dt, dn) {
|
cur_frm.cscript.supplier_address = function(doc, dt, dn) {
|
||||||
@@ -79,12 +84,13 @@ cur_frm.cscript.supplier_address = function(doc, dt, dn) {
|
|||||||
cur_frm.cscript.contact_person = cur_frm.cscript.supplier_address;
|
cur_frm.cscript.contact_person = cur_frm.cscript.supplier_address;
|
||||||
|
|
||||||
cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['supplier_address'].get_query = function(doc, cdt, cdn) {
|
||||||
return "SELECT name, address_line1, city FROM tabAddress WHERE supplier = \"" + doc.supplier
|
return {
|
||||||
+ "\" AND docstatus != 2 AND name LIKE \"%s\" ORDER BY name ASC LIMIT 50";
|
filters:{'supplier': doc.supplier}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
|
||||||
return "SELECT name, CONCAT(first_name, \" \", ifnull(last_name,\"\")) As FullName, \
|
return {
|
||||||
department, designation FROM tabContact WHERE supplier = \"" + doc.supplier
|
filters:{'supplier': doc.supplier}
|
||||||
+"\" AND docstatus != 2 AND name LIKE \"%s\" ORDER BY name ASC LIMIT 50";
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
180
controllers/queries.py
Normal file
180
controllers/queries.py
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
# ERPNext - web based ERP (http://erpnext.com)
|
||||||
|
# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
|
||||||
|
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
import webnotes
|
||||||
|
|
||||||
|
def get_filters_cond(doctype, filters, conditions):
|
||||||
|
if filters:
|
||||||
|
if isinstance(filters, dict):
|
||||||
|
filters = map(lambda f: [doctype, f[0], "=", f[1]], filters.items())
|
||||||
|
|
||||||
|
from webnotes.widgets.reportview import build_filter_conditions
|
||||||
|
build_filter_conditions(filters, conditions)
|
||||||
|
cond = ' and ' + ' and '.join(conditions)
|
||||||
|
else:
|
||||||
|
cond = ''
|
||||||
|
return cond
|
||||||
|
|
||||||
|
def get_match_cond(doctype, searchfield = 'name'):
|
||||||
|
meta = webnotes.get_doctype(doctype)
|
||||||
|
from webnotes.widgets.search import get_std_fields_list
|
||||||
|
fields = get_std_fields_list(meta, searchfield)
|
||||||
|
|
||||||
|
from webnotes.widgets.reportview import build_match_conditions
|
||||||
|
cond = build_match_conditions(doctype, fields)
|
||||||
|
if cond:
|
||||||
|
cond = ' and ' + cond
|
||||||
|
else:
|
||||||
|
cond = ''
|
||||||
|
return cond
|
||||||
|
|
||||||
|
# searches for enabled profiles
|
||||||
|
def profile_query(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
return webnotes.conn.sql("""select name, concat_ws(' ', first_name, middle_name, last_name)
|
||||||
|
from `tabProfile` where ifnull(enabled, 0)=1 and docstatus < 2 and
|
||||||
|
name not in ('Administrator', 'Guest') and (%(key)s like "%(txt)s" or
|
||||||
|
concat_ws(' ', first_name, middle_name, last_name) like "%(txt)s") %(mcond)s
|
||||||
|
order by
|
||||||
|
case when name like "%(txt)s" then 0 else 1 end,
|
||||||
|
case when concat_ws(' ', first_name, middle_name, last_name) like "%(txt)s"
|
||||||
|
then 0 else 1 end,
|
||||||
|
name asc limit %(start)s, %(page_len)s""" % {'key': searchfield, 'txt': "%%%s%%" % txt,
|
||||||
|
'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
|
||||||
|
|
||||||
|
# searches for active employees
|
||||||
|
def employee_query(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
return webnotes.conn.sql("""select name, employee_name from `tabEmployee`
|
||||||
|
where status = 'Active' and docstatus < 2 and
|
||||||
|
(%(key)s like "%(txt)s" or employee_name like "%(txt)s") %(mcond)s
|
||||||
|
order by
|
||||||
|
case when name like "%(txt)s" then 0 else 1 end,
|
||||||
|
case when employee_name like "%(txt)s" then 0 else 1 end,
|
||||||
|
name limit %(start)s, %(page_len)s""" % {'key': searchfield, 'txt': "%%%s%%" % txt,
|
||||||
|
'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
|
||||||
|
|
||||||
|
# searches for leads which are not converted
|
||||||
|
def lead_query(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
return webnotes.conn.sql("""select name, lead_name, company_name from `tabLead`
|
||||||
|
where docstatus < 2 and ifnull(status, '') != 'Converted' and
|
||||||
|
(%(key)s like "%(txt)s" or lead_name like "%(txt)s" or company_name like "%(txt)s") %(mcond)s
|
||||||
|
order by
|
||||||
|
case when name like "%(txt)s" then 0 else 1 end,
|
||||||
|
case when lead_name like "%(txt)s" then 0 else 1 end,
|
||||||
|
case when company_name like "%(txt)s" then 0 else 1 end,
|
||||||
|
lead_name asc limit %(start)s, %(page_len)s""" % {'key': searchfield, 'txt': "%%%s%%" % txt,
|
||||||
|
'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
|
||||||
|
|
||||||
|
# searches for customer
|
||||||
|
def customer_query(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
cust_master_name = webnotes.defaults.get_user_default("cust_master_name")
|
||||||
|
if cust_master_name == "Customer Name":
|
||||||
|
fields = ["name", "customer_group", "territory"]
|
||||||
|
else:
|
||||||
|
fields = ["name", "customer_name", "customer_group", "territory"]
|
||||||
|
fields = ", ".join(fields)
|
||||||
|
|
||||||
|
return webnotes.conn.sql("""select %(field)s from `tabCustomer` where docstatus < 2 and
|
||||||
|
(%(key)s like "%(txt)s" or customer_name like "%(txt)s") %(mcond)s
|
||||||
|
order by
|
||||||
|
case when name like "%(txt)s" then 0 else 1 end,
|
||||||
|
case when customer_name like "%(txt)s" then 0 else 1 end,
|
||||||
|
name, customer_name limit %(start)s, %(page_len)s""" % {'field': fields,'key': searchfield,
|
||||||
|
'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),
|
||||||
|
'start': start, 'page_len': page_len})
|
||||||
|
|
||||||
|
# searches for supplier
|
||||||
|
def supplier_query(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
supp_master_name = webnotes.defaults.get_user_default("supp_master_name")
|
||||||
|
if supp_master_name == "Supplier Name":
|
||||||
|
fields = ["name", "supplier_type"]
|
||||||
|
else:
|
||||||
|
fields = ["name", "supplier_name", "supplier_type"]
|
||||||
|
fields = ", ".join(fields)
|
||||||
|
|
||||||
|
return webnotes.conn.sql("""select %(field)s from `tabSupplier` where docstatus < 2 and \
|
||||||
|
(%(key)s like "%(txt)s" or supplier_name like "%(txt)s") %(mcond)s
|
||||||
|
order by
|
||||||
|
case when name like "%(txt)s" then 0 else 1 end,
|
||||||
|
case when supplier_name like "%(txt)s" then 0 else 1 end,
|
||||||
|
name, supplier_name limit %(start)s, %(page_len)s """ % {'field': fields,'key': searchfield,
|
||||||
|
'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 'start': start,
|
||||||
|
'page_len': page_len})
|
||||||
|
|
||||||
|
def item_std(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
return webnotes.conn.sql("""select tabItem.name,
|
||||||
|
if(length(tabItem.item_name) > 40,
|
||||||
|
concat(substr(tabItem.item_name, 1, 40), "..."), item_name) as item_name,
|
||||||
|
if(length(tabItem.description) > 40,
|
||||||
|
concat(substr(tabItem.description, 1, 40), "..."), description) as decription
|
||||||
|
FROM tabItem
|
||||||
|
WHERE tabItem.docstatus!=2
|
||||||
|
AND tabItem.%(key)s LIKE "%(txt)s" %(mcond)s limit %(start)s, %(page_len)s """ %
|
||||||
|
{'key': searchfield, 'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),
|
||||||
|
'start': start, 'page_len': page_len})
|
||||||
|
|
||||||
|
def account_query(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
conditions = []
|
||||||
|
if not filters:
|
||||||
|
filters = {}
|
||||||
|
if not filters.group_or_ledger:
|
||||||
|
filters.group_or_ledger = "Ledger"
|
||||||
|
|
||||||
|
return webnotes.conn.sql("""select tabAccount.name, tabAccount.parent_account,
|
||||||
|
tabAccount.debit_or_credit from tabAccount
|
||||||
|
where tabAccount.docstatus!=2 and tabAccount.%(key)s LIKE "%(txt)s"
|
||||||
|
%(fcond)s %(mcond)s limit %(start)s, %(page_len)s""" % {'key': searchfield,
|
||||||
|
'txt': "%%%s%%" % txt, 'fcond': get_filters_cond(doctype, filters, conditions),
|
||||||
|
'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
|
||||||
|
|
||||||
|
def item_query(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
conditions = []
|
||||||
|
return webnotes.conn.sql("""select tabItem.name,
|
||||||
|
if(length(tabItem.item_name) > 40,
|
||||||
|
concat(substr(tabItem.item_name, 1, 40), "..."), item_name) as item_name,
|
||||||
|
if(length(tabItem.description) > 40, \
|
||||||
|
concat(substr(tabItem.description, 1, 40), "..."), description) as decription
|
||||||
|
FROM tabItem
|
||||||
|
WHERE tabItem.docstatus!=2
|
||||||
|
AND (ifnull(`tabItem`.`end_of_life`,"") in ("", "0000-00-00")
|
||||||
|
OR `tabItem`.`end_of_life` > NOW())
|
||||||
|
AND (tabItem.%(key)s LIKE "%(txt)s" OR tabItem.item_name LIKE "%(txt)s") %(fcond)s
|
||||||
|
%(mcond)s limit %(start)s,%(page_len)s """ % {'key': searchfield, 'txt': "%%%s%%" % txt,
|
||||||
|
'fcond': get_filters_cond(doctype, filters, conditions),
|
||||||
|
'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
|
||||||
|
|
||||||
|
def bom(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
conditions = []
|
||||||
|
return webnotes.conn.sql("""select tabBOM.name, tabBOM.item
|
||||||
|
from tabBOM
|
||||||
|
where tabBOM.docstatus=1 and tabBOM.is_active=1
|
||||||
|
and tabBOM.%(key)s like "%s" %(fcond)s %(mcond)s limit %(start)s,
|
||||||
|
%(page_len)s """ % {'key': searchfield, 'txt': "%%%s%%" % txt,
|
||||||
|
'fcond': get_filters_cond(doctype, filters, conditions), 'mcond':get_match_cond(doctype, searchfield),
|
||||||
|
'start': start, 'page_len': page_len})
|
||||||
|
|
||||||
|
# erpnext.queries.task = function() {
|
||||||
|
# return { query: "projects.utils.query_task" };
|
||||||
|
# };
|
||||||
|
|
||||||
|
def get_project_name(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
cond = ''
|
||||||
|
if filters['customer']:
|
||||||
|
cond = '(`tabProject`.customer = filter[customer] or ifnull(`tabProject`.customer,"")="") '
|
||||||
|
return webnotes.conn.sql("""select `tabProject`.name from `tabProject`
|
||||||
|
where `tabProject`.status not in ("Completed", "Cancelled") and %(cond)s %(mcond)s
|
||||||
|
`tabProject`.name like "%(txt)s" order by `tabProject`.name asc limit %(start)s, %(page_len)s """ %
|
||||||
|
{'cond': cond,'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),'start': start, 'page_len': page_len})
|
||||||
@@ -169,30 +169,37 @@ var calculate_total = function(doc) {
|
|||||||
|
|
||||||
|
|
||||||
cur_frm.fields_dict['item'].get_query = function(doc) {
|
cur_frm.fields_dict['item'].get_query = function(doc) {
|
||||||
return erpnext.queries.item({
|
return{
|
||||||
'ifnull(tabItem.is_manufactured_item, "No")': 'Yes',
|
query:"controllers.queries.item_query",
|
||||||
})
|
filters:{
|
||||||
|
'has_serial_no': 'Yes'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['project_name'].get_query = function(doc, dt, dn) {
|
cur_frm.fields_dict['project_name'].get_query = function(doc, dt, dn) {
|
||||||
return 'SELECT `tabProject`.name FROM `tabProject` \
|
return{
|
||||||
WHERE `tabProject`.status not in ("Completed", "Cancelled") \
|
filters:[
|
||||||
AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
|
['Project', 'status', 'not in', 'Completed, Cancelled']
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['bom_materials'].grid.get_field('item_code').get_query = function(doc) {
|
cur_frm.fields_dict['bom_materials'].grid.get_field('item_code').get_query = function(doc) {
|
||||||
return 'SELECT DISTINCT `tabItem`.`name`, `tabItem`.description FROM `tabItem` \
|
return{
|
||||||
WHERE (IFNULL(`tabItem`.`end_of_life`,"") = "" OR `tabItem`.`end_of_life` = "0000-00-00" \
|
query:"controllers.queries.item_query"
|
||||||
OR `tabItem`.`end_of_life` > NOW()) AND `tabItem`.`%(key)s` like "%s" \
|
}
|
||||||
ORDER BY `tabItem`.`name` LIMIT 50';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['bom_materials'].grid.get_field('bom_no').get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict['bom_materials'].grid.get_field('bom_no').get_query = function(doc, cdt, cdn) {
|
||||||
var d = locals[cdt][cdn];
|
var d = locals[cdt][cdn];
|
||||||
return 'SELECT DISTINCT `tabBOM`.`name`, `tabBOM`.`remarks` FROM `tabBOM` \
|
return{
|
||||||
WHERE `tabBOM`.`item` = "' + d.item_code + '" AND `tabBOM`.`is_active` = 1 AND \
|
filters:{
|
||||||
`tabBOM`.docstatus = 1 AND `tabBOM`.`name` like "%s" \
|
'item': d.item_code,
|
||||||
ORDER BY `tabBOM`.`name` LIMIT 50';
|
'is_active': 1,
|
||||||
|
'docstatus': 1
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.validate = function(doc, dt, dn) {
|
cur_frm.cscript.validate = function(doc, dt, dn) {
|
||||||
|
|||||||
Reference in New Issue
Block a user