Merge branch 'master' of github.com:webnotes/erpnext into responsive
Conflicts:
accounts/doctype/sales_invoice/sales_invoice.py
accounts/doctype/sales_invoice_item/sales_invoice_item.txt
buying/doctype/supplier_quotation/supplier_quotation.js
patches/patch_list.py
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
index 8b35bc1..ac7d9d2 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
+++ b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.js
@@ -50,6 +50,7 @@
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",
diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
index 53588e0..f04f895 100644
--- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
+++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
@@ -147,7 +147,7 @@
d.account_head = '';
}
else if(d.account_head && d.charge_type) {
- arg = "{'charge_type' : '" + d.charge_type +"', 'account_head' : '" + d.account_head + "'}";
+ arg = "{'charge_type' : '" + d.charge_type + "', 'account_head' : '" + d.account_head + "'}";
get_server_fields('get_rate', arg, 'purchase_tax_details', doc, cdt, cdn, 1);
}
refresh_field('account_head',d.name,'purchase_tax_details');
diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py
index 1250db5..995415e 100644
--- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py
+++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.py
@@ -26,11 +26,11 @@
class DocType:
- def __init__(self, doc, doclist=[]):
- self.doc = doc
- self.doclist = doclist
+ def __init__(self, doc, doclist=[]):
+ self.doc = doc
+ self.doclist = doclist
- # Get Tax Rate if account type is Tax
- # ===================================================================
- def get_rate(self, arg):
- return get_obj('Purchase Common').get_rate(arg, self)
\ No newline at end of file
+ # Get Tax Rate if account type is Tax
+ # ===================================================================
+ def get_rate(self, arg):
+ return get_obj('Purchase Common').get_rate(arg, self)
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice_item/sales_invoice_item.txt b/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
index 014a9f4..1a9cd48 100644
--- a/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
+++ b/accounts/doctype/sales_invoice_item/sales_invoice_item.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2013-04-19 11:00:07",
+ "creation": "2013-06-04 11:02:19",
"docstatus": 0,
- "modified": "2013-05-22 12:07:00",
+ "modified": "2013-06-26 14:34:00",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -243,7 +243,8 @@
"oldfieldname": "serial_no",
"oldfieldtype": "Small Text",
"print_hide": 0,
- "read_only": 0
+ "read_only": 0,
+ "reqd": 0
},
{
"doctype": "DocField",
diff --git a/accounts/report/purchase_invoice_trends/purchase_invoice_trends.py b/accounts/report/purchase_invoice_trends/purchase_invoice_trends.py
index a558a6c..659cb85 100644
--- a/accounts/report/purchase_invoice_trends/purchase_invoice_trends.py
+++ b/accounts/report/purchase_invoice_trends/purchase_invoice_trends.py
@@ -21,8 +21,7 @@
def execute(filters=None):
if not filters: filters ={}
data = []
- trans = "Purchase Invoice"
- conditions = get_columns(filters, trans)
+ conditions = get_columns(filters, "Purchase Invoice")
data = get_data(filters, conditions)
return conditions["columns"], data
\ No newline at end of file
diff --git a/accounts/report/purchase_register/purchase_register.py b/accounts/report/purchase_register/purchase_register.py
index d6233a4..655cf8c 100644
--- a/accounts/report/purchase_register/purchase_register.py
+++ b/accounts/report/purchase_register/purchase_register.py
@@ -40,9 +40,10 @@
# invoice details
purchase_order = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_order", [])))
purchase_receipt = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_receipt", [])))
+ project_name = list(set(invoice_po_pr_map.get(inv.name, {}).get("project_name", [])))
row = [inv.name, inv.posting_date, inv.supplier, inv.credit_to,
- account_map.get(inv.credit_to), inv.project_name, inv.bill_no, inv.bill_date,
+ account_map.get(inv.credit_to), ", ".join(project_name), inv.bill_no, inv.bill_date,
inv.remarks, ", ".join(purchase_order), ", ".join(purchase_receipt)]
# map expense values
@@ -105,11 +106,10 @@
def get_invoices(filters):
conditions = get_conditions(filters)
- return webnotes.conn.sql("""select pi.name, pi.posting_date, pi.credit_to,
- pii.project_name, pi.supplier, pi.bill_no, pi.bill_date, pi.remarks, pi.net_total,
- pi.total_tax, pi.grand_total, pi.outstanding_amount
- from `tabPurchase Invoice` pi, `tabPurchase Invoice Item` pii
- where pii.parent = pi.name and pi.docstatus = 1 %s
+ return webnotes.conn.sql("""select name, posting_date, credit_to,
+ supplier, bill_no, bill_date, remarks, net_total,
+ total_tax, grand_total, outstanding_amount
+ from `tabPurchase Invoice` where docstatus = 1 %s
order by posting_date desc, name desc""" % conditions, filters, as_dict=1)
@@ -138,8 +138,8 @@
return invoice_tax_map
def get_invoice_po_pr_map(invoice_list):
- pi_items = webnotes.conn.sql("""select parent, purchase_order, purchase_receipt
- from `tabPurchase Invoice Item` where parent in (%s)
+ pi_items = webnotes.conn.sql("""select parent, purchase_order, purchase_receipt,
+ project_name from `tabPurchase Invoice Item` where parent in (%s)
and (ifnull(purchase_order, '') != '' or ifnull(purchase_receipt, '') != '')""" %
', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1)
@@ -151,6 +151,9 @@
if d.purchase_receipt:
invoice_po_pr_map.setdefault(d.parent, webnotes._dict()).setdefault(
"purchase_receipt", []).append(d.purchase_receipt)
+ if d.project_name:
+ invoice_po_pr_map.setdefault(d.parent, webnotes._dict()).setdefault(
+ "project_name", []).append(d.project_name)
return invoice_po_pr_map
diff --git a/accounts/report/sales_invoice_trends/sales_invoice_trends.py b/accounts/report/sales_invoice_trends/sales_invoice_trends.py
index a106834..9a5eaf2 100644
--- a/accounts/report/sales_invoice_trends/sales_invoice_trends.py
+++ b/accounts/report/sales_invoice_trends/sales_invoice_trends.py
@@ -21,8 +21,7 @@
def execute(filters=None):
if not filters: filters ={}
data = []
- trans = "Sales Invoice"
- conditions = get_columns(filters, trans)
+ conditions = get_columns(filters, "Sales Invoice")
data = get_data(filters, conditions)
return conditions["columns"], data
\ No newline at end of file
diff --git a/buying/report/purchase_order_trends/purchase_order_trends.py b/buying/report/purchase_order_trends/purchase_order_trends.py
index 9b29465..9dc986e 100644
--- a/buying/report/purchase_order_trends/purchase_order_trends.py
+++ b/buying/report/purchase_order_trends/purchase_order_trends.py
@@ -21,8 +21,7 @@
def execute(filters=None):
if not filters: filters ={}
data = []
- trans = "Purchase Order"
- conditions = get_columns(filters, trans)
+ conditions = get_columns(filters, "Purchase Order")
data = get_data(filters, conditions)
return conditions["columns"], data
\ No newline at end of file
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index ec7e3e5..69522c4 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -71,7 +71,7 @@
ret = get_item_details(args)
for fieldname, value in ret.items():
if self.meta.get_field(fieldname, parentfield=self.fname) and \
- not item.fields.get(fieldname):
+ item.fields.get(fieldname) is None:
item.fields[fieldname] = value
def set_taxes(self, tax_doctype, tax_parentfield, tax_master_field):
diff --git a/patches/patch_list.py b/patches/patch_list.py
index aaf5102..daf5847 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -243,10 +243,9 @@
"execute:webnotes.delete_doc('DocType', 'System Console')",
"patches.june_2013.p03_buying_selling_for_price_list",
"patches.june_2013.p04_fix_event_for_lead_oppty_project",
+ "patches.june_2013.p05_remove_search_criteria_reports",
"patches.june_2013.p05_remove_unused_doctypes",
"patches.june_2013.p06_drop_unused_tables",
- "patches.june_2013.p08_shopping_cart_settings",
- "patches.june_2013.p05_remove_search_criteria_reports",
"patches.june_2013.p07_taxes_price_list_for_territory",
"patches.june_2013.p08_shopping_cart_settings",
"patches.june_2013.p09_update_global_defaults",
diff --git a/selling/doctype/sms_center/sms_center.py b/selling/doctype/sms_center/sms_center.py
index 7d50e71..8b404e6 100644
--- a/selling/doctype/sms_center/sms_center.py
+++ b/selling/doctype/sms_center/sms_center.py
@@ -35,11 +35,12 @@
def create_receiver_list(self):
rec, where_clause = '', ''
if self.doc.send_to == 'All Customer Contact':
- where_clause = self.doc.customer and " and customer = '%s'" % self.doc.customer or " and ifnull(is_customer, 0) = 1"
+ where_clause = self.doc.customer and " and customer = '%s'" % self.doc.customer or " and ifnull(customer, '') != ''"
if self.doc.send_to == 'All Supplier Contact':
- where_clause = self.doc.supplier and " and ifnull(is_supplier, 0) = 1 and supplier = '%s'" % self.doc.supplier or " and ifnull(is_supplier, 0) = 1"
+ where_clause = self.doc.supplier and " and ifnull(is_supplier, 0) = 1 and supplier = '%s'" % self.doc.supplier or " and ifnull(supplier, '') != ''"
if self.doc.send_to == 'All Sales Partner Contact':
- where_clause = self.doc.sales_partner and " and ifnull(is_sales_partner, 0) = 1 and sales_aprtner = '%s'" % self.doc.sales_partner or " and ifnull(is_sales_partner, 0) = 1"
+ 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']:
rec = 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)':
diff --git a/selling/report/quotation_trends/quotation_trends.py b/selling/report/quotation_trends/quotation_trends.py
index d08e0f8..29f9ef8 100644
--- a/selling/report/quotation_trends/quotation_trends.py
+++ b/selling/report/quotation_trends/quotation_trends.py
@@ -21,8 +21,7 @@
def execute(filters=None):
if not filters: filters ={}
data = []
- trans = "Quotation"
- conditions = get_columns(filters, trans)
+ conditions = get_columns(filters, "Quotation")
data = get_data(filters, conditions)
return conditions["columns"], data
\ No newline at end of file
diff --git a/selling/report/sales_order_trends/sales_order_trends.py b/selling/report/sales_order_trends/sales_order_trends.py
index 455fbd4..ac7c3ab 100644
--- a/selling/report/sales_order_trends/sales_order_trends.py
+++ b/selling/report/sales_order_trends/sales_order_trends.py
@@ -21,8 +21,7 @@
def execute(filters=None):
if not filters: filters ={}
data = []
- trans = "Sales Order"
- conditions = get_columns(filters, trans)
+ conditions = get_columns(filters, "Sales Order")
data = get_data(filters, conditions)
return conditions["columns"], data
\ No newline at end of file
diff --git a/stock/report/delivery_note_trends/delivery_note_trends.py b/stock/report/delivery_note_trends/delivery_note_trends.py
index 9878ecc..e5b2cd0 100644
--- a/stock/report/delivery_note_trends/delivery_note_trends.py
+++ b/stock/report/delivery_note_trends/delivery_note_trends.py
@@ -21,8 +21,7 @@
def execute(filters=None):
if not filters: filters ={}
data = []
- trans = "Delivery Note"
- conditions = get_columns(filters, trans)
+ conditions = get_columns(filters, "Delivery Note")
data = get_data(filters, conditions)
return conditions["columns"], data
\ No newline at end of file
diff --git a/stock/report/purchase_receipt_trends/purchase_receipt_trends.py b/stock/report/purchase_receipt_trends/purchase_receipt_trends.py
index 56c0023..b41ce28 100644
--- a/stock/report/purchase_receipt_trends/purchase_receipt_trends.py
+++ b/stock/report/purchase_receipt_trends/purchase_receipt_trends.py
@@ -21,11 +21,7 @@
def execute(filters=None):
if not filters: filters ={}
data = []
- trans = "Purchase Receipt"
- conditions = get_columns(filters, trans)
- data = get_data(filters, tab, conditions)
-
- if not data :
- webnotes.msgprint("Data not found for selected criterias")
+ conditions = get_columns(filters, "Purchase Receipt")
+ data = get_data(filters, conditions)
return conditions["columns"], data
\ No newline at end of file
diff --git a/utilities/cleanup_data.py b/utilities/cleanup_data.py
index ed04a94..df7f4be 100644
--- a/utilities/cleanup_data.py
+++ b/utilities/cleanup_data.py
@@ -20,14 +20,16 @@
def delete_transactions():
print "Deleting transactions..."
- trans = ['Timesheet', 'Task', 'Support Ticket', 'Stock Reconciliation', 'Stock Ledger Entry',
+ trans = ['Task', 'Support Ticket', 'Stock Reconciliation', 'Stock Ledger Entry',
'Stock Entry', 'Sales Order', 'Salary Slip','Sales Invoice', 'Quotation',
'Quality Inspection', 'Purchase Receipt', 'Purchase Order', 'Production Order',
'POS Setting', 'Period Closing Voucher', 'Purchase Invoice', 'Maintenance Visit',
'Maintenance Schedule', 'Leave Application', 'Leave Allocation', 'Lead', 'Journal Voucher',
'Installation Note', 'Material Request', 'GL Entry', 'Expense Claim', 'Opportunity',
'Delivery Note', 'Customer Issue', 'Bin', 'Authorization Rule', 'Attendance', 'C-Form',
- 'Appraisal', 'Installation Note', 'Communication']
+ 'Appraisal', 'Installation Note', 'Communication', "Supplier Quotation", "Newsletter",
+ "Job Applicant", "Web Page", "Website Slideshow", "Blog Post", "Blog Category", "Blogger",
+ "Time Log", "Time Log Batch", "Workflow"]
for d in trans:
for t in webnotes.conn.sql("select options from tabDocField where parent='%s' and fieldtype='Table'" % d):
webnotes.conn.sql("delete from `tab%s`" % (t))
@@ -66,6 +68,7 @@
'Item Group': ['All Item Groups', 'Default'],
'Item': '',
'Holiday List': '',
+ 'Activity Type': '',
'Grade': '',
'Feed': '',
'Expense Claim Type': ['Travel', 'Medical', 'Calls', 'Food', 'Others'],