[pos] [minor] pos print format & pos setting cancel function allowed
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index f4ac6b0..17ae216 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -549,9 +549,7 @@
self.values = []
items = get_obj('Sales Common').get_item_list(self)
for d in items:
- stock_item = webnotes.conn.sql("SELECT is_stock_item, is_sample_item \
- FROM tabItem where name = '%s'"%(d['item_code']), as_dict = 1)
- if stock_item[0]['is_stock_item'] == "Yes":
+ if webnotes.conn.get_value("Item", d['item_code'], "is_stock_item") == "Yes":
if not d['warehouse']:
msgprint("Message: Please enter Warehouse for item %s as it is stock item." \
% d['item_code'], raise_exception=1)
diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt
index ca2b4b2..f921f24 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.txt
+++ b/accounts/doctype/sales_invoice/sales_invoice.txt
@@ -180,7 +180,6 @@
"search_index": 1
},
{
- "default": "Today",
"description": "Enter the date by which payments from customer is expected against this invoice.",
"doctype": "DocField",
"fieldname": "due_date",
diff --git a/accounts/report/gross_profit/gross_profit.py b/accounts/report/gross_profit/gross_profit.py
index 3aba234..590babb 100644
--- a/accounts/report/gross_profit/gross_profit.py
+++ b/accounts/report/gross_profit/gross_profit.py
@@ -4,7 +4,7 @@
from __future__ import unicode_literals
import webnotes
from webnotes.utils import flt
-from stock.utils import get_buying_amount
+from stock.utils import get_buying_amount, get_sales_bom_buying_amount
def execute(filters=None):
if not filters: filters = {}
@@ -21,10 +21,15 @@
data = []
for row in source:
selling_amount = flt(row.amount)
-
- buying_amount = get_buying_amount(row.item_code, row.parenttype, row.name, row.item_row,
- stock_ledger_entries.get((row.item_code, row.warehouse), []),
- item_sales_bom.get(row.parenttype, {}).get(row.name, webnotes._dict()))
+
+ item_sales_bom_map = item_sales_bom.get(row.parenttype, {}).get(row.name, webnotes._dict())
+
+ if item_sales_bom_map.get(row.item_code):
+ buying_amount = get_sales_bom_buying_amount(row.item_code, row.warehouse,
+ row.parenttype, row.name, row.item_row, stock_ledger_entries, item_sales_bom_map)
+ else:
+ buying_amount = get_buying_amount(row.parenttype, row.name, row.item_row,
+ stock_ledger_entries.get((row.item_code, row.warehouse), []))
buying_amount = buying_amount > 0 and buying_amount or 0
diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js
index 67ba33c..5785b1a 100644
--- a/buying/doctype/purchase_common/purchase_common.js
+++ b/buying/doctype/purchase_common/purchase_common.js
@@ -333,10 +333,10 @@
// other charges added/deducted
if(tax_count) {
this.frm.doc.other_charges_added = wn.utils.sum($.map(this.frm.tax_doclist,
- function(tax) { return tax.add_deduct_tax == "Add" ? tax.tax_amount : 0.0; }));
+ function(tax) { return (tax.add_deduct_tax == "Add" && in_list(["Valuation and Total", "Total"], tax.category)) ? tax.tax_amount : 0.0; }));
this.frm.doc.other_charges_deducted = wn.utils.sum($.map(this.frm.tax_doclist,
- function(tax) { return tax.add_deduct_tax == "Deduct" ? tax.tax_amount : 0.0; }));
+ function(tax) { return (tax.add_deduct_tax == "Deduct" && in_list(["Valuation and Total", "Total"], tax.category)) ? tax.tax_amount : 0.0; }));
wn.model.round_floats_in(this.frm.doc, ["other_charges_added", "other_charges_deducted"]);
diff --git a/buying/doctype/supplier/supplier.py b/buying/doctype/supplier/supplier.py
index c646fdb..75b2e03 100644
--- a/buying/doctype/supplier/supplier.py
+++ b/buying/doctype/supplier/supplier.py
@@ -18,9 +18,6 @@
self.doc = doc
self.doclist = doclist
- def onload(self):
- self.add_communication_list()
-
def autoname(self):
supp_master_name = webnotes.defaults.get_global_default('supp_master_name')
diff --git a/buying/doctype/supplier/supplier.txt b/buying/doctype/supplier/supplier.txt
index 8fa7067..50202dc 100644
--- a/buying/doctype/supplier/supplier.txt
+++ b/buying/doctype/supplier/supplier.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-01-10 16:34:11",
"docstatus": 0,
- "modified": "2013-08-08 14:22:08",
+ "modified": "2013-09-02 16:25:44",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -205,6 +205,14 @@
"oldfieldtype": "Data"
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication"
+ },
+ {
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
diff --git a/config.json b/config.json
index 5412b01..ef5a164 100644
--- a/config.json
+++ b/config.json
@@ -130,7 +130,7 @@
},
"writers": {
"template": "app/website/templates/pages/writers",
- "args_method": "website.helpers.blog.get_writers_args"
+ "args_method": "website.doctype.blogger.blogger.get_writers_args"
},
"profile": {
"no_cache": true,
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index 63244c5..043099a 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -17,7 +17,6 @@
def onload_post_render(self):
# contact, address, item details
self.set_missing_values()
- self.set_taxes("purchase_tax_details", "purchase_other_charges")
def validate(self):
super(BuyingController, self).validate()
@@ -40,6 +39,8 @@
self.doc.fields[fieldname] = val
self.set_missing_item_details(get_item_details)
+ if self.doc.fields.get("__islocal"):
+ self.set_taxes("purchase_tax_details", "purchase_other_charges")
def set_supplier_from_item_default(self):
if self.meta.get_field("supplier") and not self.doc.supplier:
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index 086c42e..5605ccf 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -14,15 +14,15 @@
def onload_post_render(self):
# contact, address, item details and pos details (if applicable)
self.set_missing_values()
- self.set_taxes("other_charges", "charge")
def set_missing_values(self, for_validate=False):
super(SellingController, self).set_missing_values(for_validate)
# set contact and address details for customer, if they are not mentioned
self.set_missing_lead_customer_details()
-
self.set_price_list_and_item_details()
+ if self.doc.fields.get("__islocal"):
+ self.set_taxes("other_charges", "charge")
def set_missing_lead_customer_details(self):
if self.doc.customer:
@@ -85,7 +85,7 @@
self.doc.grand_total_export or self.doc.rounded_total_export, self.doc.currency)
def set_buying_amount(self, stock_ledger_entries = None):
- from stock.utils import get_buying_amount
+ from stock.utils import get_buying_amount, get_sales_bom_buying_amount
if not stock_ledger_entries:
stock_ledger_entries = self.get_stock_ledger_entries()
@@ -99,10 +99,18 @@
for item in self.doclist.get({"parentfield": self.fname}):
if item.item_code in self.stock_items or \
(item_sales_bom and item_sales_bom.get(item.item_code)):
- buying_amount = get_buying_amount(item.item_code, self.doc.doctype, self.doc.name, item.name,
- stock_ledger_entries.get((item.item_code, item.warehouse), []),
- item_sales_bom)
+ buying_amount = 0
+ if item.item_code in self.stock_items:
+ buying_amount = get_buying_amount(self.doc.doctype, self.doc.name,
+ item.name, stock_ledger_entries.get((item.item_code,
+ item.warehouse), []))
+ elif item_sales_bom and item_sales_bom.get(item.item_code):
+ buying_amount = get_sales_bom_buying_amount(item.item_code, item.warehouse,
+ self.doc.doctype, self.doc.name, item.name, stock_ledger_entries,
+ item_sales_bom)
+
+ # buying_amount >= 0.01 so that gl entry doesn't get created for such small amounts
item.buying_amount = buying_amount >= 0.01 and buying_amount or 0
webnotes.conn.set_value(item.doctype, item.name, "buying_amount",
item.buying_amount)
diff --git a/docs/docs.community.md b/docs/docs.community.md
deleted file mode 100644
index 121a692..0000000
--- a/docs/docs.community.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-{
- "_label": "Get Involved"
-}
----
-If you are an ERPNext user:
-
-[https://groups.google.com/group/erpnext-user-forum](https://groups.google.com/group/erpnext-user-forum)
-
-If you are an ERPNext developer:
-
-[https://groups.google.com/group/erpnext-developer-forum](https://groups.google.com/group/erpnext-developer-forum)
-
-
diff --git a/docs/docs.md b/docs/docs.md
index 378a0b8..3ed24b7 100644
--- a/docs/docs.md
+++ b/docs/docs.md
@@ -7,28 +7,25 @@
"docs.dev",
"docs.download",
"docs.community",
- "docs.blog",
- "docs.about"
+ "docs.blog"
],
"_no_toc": 1
}
---
-<div style="margin: 10px 0px">
- <h1 style="text-align: center">All-in-One Platform to Manage Your Organization.</h1>
- <h3 style="text-align: center; font-weight: normal; color: #888">100% Free and Open Source.</h1>
+<div class="text-center" style="margin: 10px 0px">
+ <h1>ERPNext Docs (beta)</h1>
+ <h3 class="text-muted">Open Source ERP Built for The Web.</h3>
+ <p>For the main site, go to <a href="https://erpnext.com/">https://erpnext.com</a></p>
</div>
![Home Screen](img/home.png)
+Welcome to the ERPNext Documentation + Community Site
+
### What is ERPNext?
-ERPNext is an information system that links together an entire organization's operations. It is a software package that offers convenience of managing all the business functions from a single platform. No need of going to different applications to process different requests. No need of saving data in different functional packages. Under one ERP "roof" you can manage Accounting, Warehouse Management, CRM, Human Resources, Supply Chain Management, Sales Management, and Website Design.
+ERPNext is an Open Source integrated app (that manages Financial Accounting, Inventory, CRM) that is built grounds up for the web, using some of the latest web technologies and frameworks. ERPNext helps your organization manage Financial Accounting, Inventory, Sales, Purchase, Payroll, Customer Support, E-Commerce all in one platform. Learn more at [https://erpnext.com](https://erpnext.com)
-ERPNext is written by Web Notes Technologies keeping small and medium businesses in mind.
+### Site Contents
-- It gives better access to crucial information as a whole rather than in fragments of different versions.
-- It provides comparable financial reports.
-- It avoids duplication of reports and redundant data.
-- It allows better alignment across cross-functional departments.
-- It facilitates Website Design and provides shopping cart facility.
-- It gives better deployment on mobiles, tablets, desktops and large screens.
\ No newline at end of file
+This site contains the full User and Developer Documentation for ERPNext. This is still a work-in-progress. Please feel free to contribute issues and documentation.
diff --git a/docs/templates/docs.html b/docs/templates/docs.html
new file mode 100644
index 0000000..ef3cf8e
--- /dev/null
+++ b/docs/templates/docs.html
@@ -0,0 +1,51 @@
+{% extends "lib/core/doctype/documentation_tool/docs.html" %}
+
+{% block navbar %}
+<div class="navbar navbar-default" style="border-bottom: 2px solid #c0392b">
+ <div class="container">
+ <button type="button" class="navbar-toggle"
+ data-toggle="collapse" data-target=".navbar-responsive-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="index.html">
+ <object data="img/splash.svg" class="erpnext-logo"
+ type="image/svg+xml"></object> erpnext.org</a>
+ <div class="collapse navbar-collapse navbar-responsive-collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="docs.user.html">User</a></li>
+ <li><a href="docs.dev.html">Developer</a></li>
+ <li><a href="docs.user.help.html">Help</a></li>
+ <li><a href="docs.download.html">Download</a></li>
+ <li><a href="https://erpnext.com" target="_blank">Cloud</a></li>
+ </ul>
+ <ul class="nav navbar-nav pull-right">
+ <li><a href="docs.about.html">About</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+{% endblock %}
+
+{% block footer %}
+<hr />
+<div class="footer text-muted" style="font-size: 80%;">
+ <div class="content row">
+ <div class="col-md-12">
+ © <a href="https://erpnext.com">Web Notes</a> |
+ <a href="docs.user.help.html">Help</a> |
+ <a href="https://github.com/webnotes/erpnext" target="_blank">Code</a> |
+ <a href="docs.attributions.html">Attributions</a> |
+ <a href="https://erpnext.com">ERPNext Cloud</a> |
+ <a href="https://erpnext.com/partners">Find a Partner</a> |
+ <a href="https://erpnext.com/donate">Donate</a>
+ <br>
+ <p>
+ Code License: <a href="https://www.gnu.org/licenses/gpl.html">GNU/GPL 3</a>.
+ Documentation License: <a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA-3.0</a>.
+ </p>
+ </div>
+ </div>
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/hr/doctype/job_applicant/get_job_applications.py b/hr/doctype/job_applicant/get_job_applications.py
index 9bec43e..2e01328 100644
--- a/hr/doctype/job_applicant/get_job_applications.py
+++ b/hr/doctype/job_applicant/get_job_applications.py
@@ -37,7 +37,7 @@
mail.save_attachments_in_doc(applicant.doc)
make(content=mail.content, sender=mail.from_email,
- doctype="Job Applicant", name=applicant.doc.name, set_lead=False)
+ doctype="Job Applicant", name=applicant.doc.name)
def get_job_applications():
if cint(webnotes.conn.get_value('Jobs Email Settings', None, 'extract_emails')):
diff --git a/hr/doctype/job_applicant/job_applicant.js b/hr/doctype/job_applicant/job_applicant.js
index 9aff605..f82da11 100644
--- a/hr/doctype/job_applicant/job_applicant.js
+++ b/hr/doctype/job_applicant/job_applicant.js
@@ -16,7 +16,7 @@
},
make_listing: function(doc) {
cur_frm.communication_view = new wn.views.CommunicationList({
- list: wn.model.get("Communication", {"job_applicant": doc.name}),
+ list: wn.model.get("Communication", {"parent": doc.name, "parenttype": "Job Applicant"}),
parent: cur_frm.fields_dict['thread_html'].wrapper,
doc: doc,
recipients: doc.email_id
diff --git a/hr/doctype/job_applicant/job_applicant.py b/hr/doctype/job_applicant/job_applicant.py
index e9b12b0..04b6da9 100644
--- a/hr/doctype/job_applicant/job_applicant.py
+++ b/hr/doctype/job_applicant/job_applicant.py
@@ -11,9 +11,6 @@
def __init__(self, d, dl):
self.doc, self.doclist = d, dl
- def onload(self):
- self.add_communication_list()
-
def get_sender(self, comm):
return webnotes.conn.get_value('Jobs Email Settings',None,'email_id')
diff --git a/hr/doctype/job_applicant/job_applicant.txt b/hr/doctype/job_applicant/job_applicant.txt
index ebf95f6..62b1d80 100644
--- a/hr/doctype/job_applicant/job_applicant.txt
+++ b/hr/doctype/job_applicant/job_applicant.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-01-29 19:25:37",
"docstatus": 0,
- "modified": "2013-07-05 14:43:11",
+ "modified": "2013-09-02 16:26:23",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -90,6 +90,14 @@
"label": "Thread HTML"
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication"
+ },
+ {
"doctype": "DocPerm"
}
]
\ No newline at end of file
diff --git a/patches/august_2013/fix_fiscal_year.py b/patches/august_2013/fix_fiscal_year.py
new file mode 100644
index 0000000..67988c4
--- /dev/null
+++ b/patches/august_2013/fix_fiscal_year.py
@@ -0,0 +1,49 @@
+import webnotes
+
+def execute():
+ create_fiscal_years()
+
+ doctypes = webnotes.conn.sql_list("""select parent from tabDocField
+ where (fieldtype="Link" and options='Fiscal Year')
+ or (fieldtype="Select" and options='link:Fiscal Year')""")
+
+ for dt in doctypes:
+ date_fields = webnotes.conn.sql_list("""select fieldname from tabDocField
+ where parent=%s and fieldtype='Date'""", dt)
+
+ date_field = get_date_field(date_fields, dt)
+
+ if not date_field:
+ print dt, date_field
+ else:
+ webnotes.conn.sql("""update `tab%s` set fiscal_year =
+ if(%s<='2013-06-30', '2012-2013', '2013-2014')""" % (dt, date_field))
+
+def create_fiscal_years():
+ fiscal_years = {
+ "2012-2013": ["2012-07-01", "2013-06-30"],
+ "2013-2014": ["2013-07-01", "2014-06-30"]
+ }
+
+ for d in fiscal_years:
+ webnotes.bean({
+ "doctype": "Fiscal Year",
+ "year": d,
+ "year_start_date": fiscal_years[d][0],
+ "is_fiscal_year_closed": "No"
+ }).insert()
+
+
+def get_date_field(date_fields, dt):
+ date_field = None
+ if date_fields:
+ if "posting_date" in date_fields:
+ date_field = "posting_date"
+ elif "transaction_date" in date_fields:
+ date_field = 'transaction_date'
+ else:
+ date_field = date_fields[0]
+ # print dt, date_fields
+
+ return date_field
+
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index dd95e2d..a5c95a9 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -259,4 +259,6 @@
"execute:webnotes.bean('Style Settings').save() #2013-08-20",
"patches.september_2013.p01_add_user_defaults_from_pos_setting",
"execute:webnotes.reload_doc('accounts', 'Print Format', 'POS Invoice') # 2013-09-02",
+ "patches.september_2013.p01_fix_buying_amount_gl_entries",
+ "patches.september_2013.p01_update_communication",
]
\ No newline at end of file
diff --git a/patches/september_2013/p01_fix_buying_amount_gl_entries.py b/patches/september_2013/p01_fix_buying_amount_gl_entries.py
new file mode 100644
index 0000000..369a291
--- /dev/null
+++ b/patches/september_2013/p01_fix_buying_amount_gl_entries.py
@@ -0,0 +1,66 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+import webnotes.defaults
+from webnotes.utils import cint
+
+def execute():
+ if not cint(webnotes.defaults.get_global_default("auto_inventory_accounting")):
+ return
+
+ # fix delivery note
+ for dn in webnotes.conn.sql_list("""select name from `tabDelivery Note` where docstatus=1
+ and posting_date >= "2013-08-06" order by posting_date"""):
+ recreate_gl_entries("Delivery Note", dn, "delivery_note_details")
+
+ # fix sales invoice
+ for si in webnotes.conn.sql_list("""select name from `tabSales Invoice` where docstatus=1
+ and update_stock=1 and posting_date >= "2013-08-06" order by posting_date"""):
+ recreate_gl_entries("Sales Invoice", si, "entries")
+
+def recreate_gl_entries(doctype, name, parentfield):
+ # calculate buying amount and make gl entries
+ bean = webnotes.bean(doctype, name)
+ bean.run_method("set_buying_amount")
+
+ company_values = webnotes.conn.get_value("Company", bean.doc.company, ["default_expense_account",
+ "stock_adjustment_account", "cost_center", "stock_adjustment_cost_center"])
+
+ # update missing expense account and cost center
+ for item in bean.doclist.get({"parentfield": parentfield}):
+ if item.buying_amount and not validate_item_values(item, bean.doc.company):
+ res = webnotes.conn.sql("""select expense_account, cost_center
+ from `tab%s` child where docstatus=1 and item_code=%s and
+ ifnull(expense_account, '')!='' and ifnull(cost_center, '')!='' and
+ (select company from `tabAccount` ac where ac.name=child.expense_account)=%s and
+ (select company from `tabCost Center` cc where cc.name=child.cost_center)=%s
+ order by creation desc limit 1""" % (item.doctype, "%s", "%s", "%s"),
+ (item.item_code, bean.doc.company, bean.doc.company))
+ if res:
+ item.expense_account = res[0][0]
+ item.cost_center = res[0][1]
+ elif company_values:
+ item.expense_account = company_values[0] or company_values[1]
+ item.cost_center = company_values[2] or company_values[3]
+
+ webnotes.conn.set_value(item.doctype, item.name, "expense_account", item.expense_account)
+ webnotes.conn.set_value(item.doctype, item.name, "cost_center", item.cost_center)
+
+ # remove gl entries
+ webnotes.conn.sql("""delete from `tabGL Entry` where voucher_type=%s
+ and voucher_no=%s""", (doctype, name))
+ bean.run_method("make_gl_entries")
+
+def validate_item_values(item, company):
+ if item.expense_account and \
+ webnotes.conn.get_value("Account", item.expense_account, "company")!=company:
+ return False
+ elif item.cost_center and \
+ webnotes.conn.get_value("Cost Center", item.cost_center, "company")!=company:
+ return False
+ elif not (item.expense_account and item.cost_center):
+ return False
+
+ return True
\ No newline at end of file
diff --git a/patches/september_2013/p01_update_communication.py b/patches/september_2013/p01_update_communication.py
new file mode 100644
index 0000000..d840c80
--- /dev/null
+++ b/patches/september_2013/p01_update_communication.py
@@ -0,0 +1,15 @@
+import webnotes
+
+def execute():
+ for doctype in ("Contact", "Lead", "Job Applicant", "Supplier", "Customer", "Quotation", "Sales Person", "Support Ticket"):
+ fieldname = doctype.replace(" ", '_').lower()
+ webnotes.conn.sql("""update tabCommunication
+ set parenttype=%s, parentfield='communications',
+ parent=`%s`
+ where ifnull(`%s`, '')!=''""" % ("%s", fieldname, fieldname), doctype)
+
+ webnotes.reload_doc("core", "doctype", "communication")
+
+ webnotes.conn.sql("""update tabCommunication set communication_date = creation where
+ ifnull(communication_date, '')='' """)
+
\ No newline at end of file
diff --git a/public/js/toolbar.js b/public/js/toolbar.js
index d2ca512..2566fcb 100644
--- a/public/js/toolbar.js
+++ b/public/js/toolbar.js
@@ -20,20 +20,6 @@
<i class="icon-fixed-width icon-comments"></i> '+wn._('Live Chat')+'</a></li>');
}
- erpnext.toolbar.set_new_comments();
-
$("#toolbar-tools").append('<li><a href="#latest-updates">\
<i class="icon-fixed-width icon-rss"></i> Latest Updates</li>');
-}
-
-erpnext.toolbar.set_new_comments = function(new_comments) {
- return;
- var navbar_nc = $('.navbar-new-comments');
- if(cint(new_comments)) {
- navbar_nc.addClass('navbar-new-comments-true')
- navbar_nc.text(new_comments);
- } else {
- navbar_nc.removeClass('navbar-new-comments-true');
- navbar_nc.text(0);
- }
}
\ No newline at end of file
diff --git a/selling/doctype/customer/customer.py b/selling/doctype/customer/customer.py
index 2eabf12..cb19d4f 100644
--- a/selling/doctype/customer/customer.py
+++ b/selling/doctype/customer/customer.py
@@ -17,10 +17,7 @@
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
-
- def onload(self):
- self.add_communication_list()
-
+
def autoname(self):
cust_master_name = webnotes.defaults.get_global_default('cust_master_name')
if cust_master_name == 'Customer Name':
diff --git a/selling/doctype/customer/customer.txt b/selling/doctype/customer/customer.txt
index 7da29d2..94bd8fc 100644
--- a/selling/doctype/customer/customer.txt
+++ b/selling/doctype/customer/customer.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-06-11 14:26:44",
"docstatus": 0,
- "modified": "2013-08-08 14:22:13",
+ "modified": "2013-09-02 16:25:13",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -349,6 +349,15 @@
"permlevel": 0
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication",
+ "permlevel": 0
+ },
+ {
"amend": 0,
"cancel": 0,
"create": 1,
diff --git a/selling/doctype/lead/get_leads.py b/selling/doctype/lead/get_leads.py
index c376f45..3305a3b 100644
--- a/selling/doctype/lead/get_leads.py
+++ b/selling/doctype/lead/get_leads.py
@@ -9,17 +9,8 @@
def add_sales_communication(subject, content, sender, real_name, mail=None,
status="Open", date=None):
- def set_status(doctype, name):
- w = webnotes.bean(doctype, name)
- w.ignore_permissions = True
- w.doc.status = is_system_user and "Replied" or status
- w.doc.save()
- if mail:
- mail.save_attachments_in_doc(w.doc)
-
lead_name = webnotes.conn.get_value("Lead", {"email_id": sender})
contact_name = webnotes.conn.get_value("Contact", {"email_id": sender})
- is_system_user = webnotes.conn.get_value("Profile", sender)
if not (lead_name or contact_name):
# none, create a new Lead
@@ -34,14 +25,16 @@
lead.insert()
lead_name = lead.doc.name
- make(content=content, sender=sender, subject=subject,
- lead=lead_name, contact=contact_name, date=date)
+ parent_doctype = "Contact" if contact_name else "Lead"
+ parent_name = contact_name or lead_name
+
+ message = make(content=content, sender=sender, subject=subject,
+ doctype = parent_doctype, name = parent_name, date=date)
- if contact_name:
- set_status("Contact", contact_name)
- elif lead_name:
- set_status("Lead", lead_name)
-
+ if mail:
+ # save attachments to parent if from mail
+ bean = webnotes.bean(parent_doctype, parent_name)
+ mail.save_attachments_in_doc(bean.doc)
class SalesMailbox(POP3Mailbox):
def setup(self, args=None):
diff --git a/selling/doctype/lead/lead.py b/selling/doctype/lead/lead.py
index b2016aa..063c5f0 100644
--- a/selling/doctype/lead/lead.py
+++ b/selling/doctype/lead/lead.py
@@ -24,7 +24,6 @@
})
def onload(self):
- self.add_communication_list()
customer = webnotes.conn.get_value("Customer", {"lead_name": self.doc.name})
if customer:
self.doc.fields["__is_customer"] = customer
@@ -39,17 +38,14 @@
def validate(self):
if self.doc.status == 'Lead Lost' and not self.doc.order_lost_reason:
- msgprint("Please Enter Lost Reason under More Info section")
- raise Exception
+ webnotes.throw("Please Enter Lost Reason under More Info section")
if self.doc.source == 'Campaign' and not self.doc.campaign_name and session['user'] != 'Guest':
- msgprint("Please specify campaign name")
- raise Exception
+ webnotes.throw("Please specify campaign name")
if self.doc.email_id:
if not validate_email_add(self.doc.email_id):
- msgprint('Please enter valid email id.')
- raise Exception
+ webnotes.throw('Please enter valid email id.')
def on_update(self):
self.check_email_id_is_unique()
diff --git a/selling/doctype/lead/lead.txt b/selling/doctype/lead/lead.txt
index d66c6a0..9402259 100644
--- a/selling/doctype/lead/lead.txt
+++ b/selling/doctype/lead/lead.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-04-10 11:45:37",
"docstatus": 0,
- "modified": "2013-08-08 14:22:14",
+ "modified": "2013-09-02 17:25:59",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -411,6 +411,14 @@
"label": "Blog Subscriber"
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication"
+ },
+ {
"cancel": 1,
"doctype": "DocPerm",
"role": "Sales Manager"
diff --git a/selling/doctype/opportunity/opportunity.py b/selling/doctype/opportunity/opportunity.py
index 906e547..a3ef197 100644
--- a/selling/doctype/opportunity/opportunity.py
+++ b/selling/doctype/opportunity/opportunity.py
@@ -25,9 +25,6 @@
"contact_by": webnotes.conn.get_value("Opportunity", self.doc.name, "contact_by") if \
(not cint(self.doc.fields.get("__islocal"))) else None,
})
-
- def onload(self):
- self.add_communication_list()
def get_item_details(self, item_code):
item = sql("""select item_name, stock_uom, description_html, description, item_group, brand
diff --git a/selling/doctype/opportunity/opportunity.txt b/selling/doctype/opportunity/opportunity.txt
index 5b1d93f..4ca1564 100644
--- a/selling/doctype/opportunity/opportunity.txt
+++ b/selling/doctype/opportunity/opportunity.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-03-07 18:50:30",
"docstatus": 0,
- "modified": "2013-08-08 14:22:15",
+ "modified": "2013-09-02 16:27:33",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -443,6 +443,14 @@
"width": "150px"
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication"
+ },
+ {
"doctype": "DocPerm",
"role": "Sales User"
},
diff --git a/selling/doctype/quotation/quotation.py b/selling/doctype/quotation/quotation.py
index b6ff1d7..c1b529c 100644
--- a/selling/doctype/quotation/quotation.py
+++ b/selling/doctype/quotation/quotation.py
@@ -20,9 +20,6 @@
self.doclist = doclist
self.tname = 'Quotation Item'
self.fname = 'quotation_details'
-
- def onload(self):
- self.add_communication_list()
# Get contact person details based on customer selected
# ------------------------------------------------------
diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt
index c3b2434..9d47259 100644
--- a/selling/doctype/quotation/quotation.txt
+++ b/selling/doctype/quotation/quotation.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-05-24 19:29:08",
"docstatus": 0,
- "modified": "2013-08-09 14:46:11",
+ "modified": "2013-09-02 16:25:01",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -836,6 +836,14 @@
"width": "40px"
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication"
+ },
+ {
"amend": 1,
"cancel": 1,
"create": 1,
diff --git a/setup/doctype/sales_person/sales_person.txt b/setup/doctype/sales_person/sales_person.txt
index 77ba6af..d78b5c8 100644
--- a/setup/doctype/sales_person/sales_person.txt
+++ b/setup/doctype/sales_person/sales_person.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-01-10 16:34:24",
"docstatus": 0,
- "modified": "2013-08-05 18:11:22",
+ "modified": "2013-09-02 16:26:54",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -161,6 +161,14 @@
"search_index": 0
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication"
+ },
+ {
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt
index 8b17aee..eb05503 100644
--- a/stock/doctype/item/item.txt
+++ b/stock/doctype/item/item.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-05-03 10:45:46",
"docstatus": 0,
- "modified": "2013-08-14 11:46:49",
+ "modified": "2013-08-30 16:21:38",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -35,7 +35,9 @@
"parentfield": "permissions",
"parenttype": "DocType",
"permlevel": 0,
- "read": 1
+ "read": 1,
+ "report": 1,
+ "submit": 0
},
{
"doctype": "DocType",
@@ -558,20 +560,6 @@
"reqd": 1
},
{
- "default": "No",
- "depends_on": "eval:doc.is_sales_item==\"Yes\"",
- "description": "Select \"Yes\" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.",
- "doctype": "DocField",
- "fieldname": "is_sample_item",
- "fieldtype": "Select",
- "label": "Allow Samples",
- "oldfieldname": "is_sample_item",
- "oldfieldtype": "Select",
- "options": "Yes\nNo",
- "read_only": 0,
- "reqd": 1
- },
- {
"depends_on": "eval:doc.is_sales_item==\"Yes\"",
"doctype": "DocField",
"fieldname": "max_discount",
@@ -878,9 +866,7 @@
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
- "report": 1,
"role": "Material Master Manager",
- "submit": 0,
"write": 1
},
{
@@ -888,9 +874,7 @@
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
- "report": 1,
"role": "Material Manager",
- "submit": 0,
"write": 0
},
{
@@ -898,21 +882,7 @@
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
- "report": 1,
"role": "Material User",
- "submit": 0,
"write": 0
- },
- {
- "doctype": "DocPerm",
- "role": "Sales User"
- },
- {
- "doctype": "DocPerm",
- "role": "Purchase User"
- },
- {
- "doctype": "DocPerm",
- "role": "Accounts User"
}
]
\ No newline at end of file
diff --git a/stock/doctype/item/test_item.py b/stock/doctype/item/test_item.py
index b9b67e2..7be6ea5 100644
--- a/stock/doctype/item/test_item.py
+++ b/stock/doctype/item/test_item.py
@@ -44,7 +44,6 @@
"is_purchase_item": "Yes",
"is_sales_item": "Yes",
"is_service_item": "No",
- "is_sample_item": "No",
"inspection_required": "No",
"is_pro_applicable": "No",
"is_sub_contracted_item": "No",
@@ -82,7 +81,6 @@
"is_purchase_item": "Yes",
"is_sales_item": "Yes",
"is_service_item": "No",
- "is_sample_item": "No",
"inspection_required": "No",
"is_pro_applicable": "No",
"is_sub_contracted_item": "No",
@@ -108,7 +106,6 @@
"is_purchase_item": "Yes",
"is_sales_item": "Yes",
"is_service_item": "No",
- "is_sample_item": "No",
"inspection_required": "No",
"is_pro_applicable": "No",
"is_sub_contracted_item": "No",
@@ -128,7 +125,6 @@
"is_purchase_item": "Yes",
"is_sales_item": "Yes",
"is_service_item": "No",
- "is_sample_item": "No",
"inspection_required": "No",
"is_pro_applicable": "No",
"is_sub_contracted_item": "No",
@@ -149,7 +145,6 @@
"is_purchase_item": "Yes",
"is_sales_item": "Yes",
"is_service_item": "No",
- "is_sample_item": "No",
"inspection_required": "No",
"is_pro_applicable": "Yes",
"is_sub_contracted_item": "Yes",
@@ -168,7 +163,6 @@
"is_purchase_item": "Yes",
"is_sales_item": "Yes",
"is_service_item": "No",
- "is_sample_item": "No",
"inspection_required": "No",
"is_pro_applicable": "No",
"is_sub_contracted_item": "No",
@@ -188,7 +182,6 @@
"is_purchase_item": "Yes",
"is_sales_item": "Yes",
"is_service_item": "No",
- "is_sample_item": "No",
"inspection_required": "No",
"is_pro_applicable": "No",
"is_sub_contracted_item": "No",
@@ -209,7 +202,6 @@
"is_purchase_item": "Yes",
"is_sales_item": "Yes",
"is_service_item": "No",
- "is_sample_item": "No",
"inspection_required": "No",
"is_pro_applicable": "No",
"is_sub_contracted_item": "No",
diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.py b/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 617ec69..dbb0a34 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -293,7 +293,7 @@
self.doc.stock_value_difference = 0.0
for d in self.entries:
- self.doc.stock_value_difference -= get_buying_amount(d.item_code, self.doc.doctype, self.doc.name,
+ self.doc.stock_value_difference -= get_buying_amount(self.doc.doctype, self.doc.name,
d.voucher_detail_no, stock_ledger_entries.get((d.item_code, d.warehouse), []))
webnotes.conn.set(self.doc, "stock_value_difference", self.doc.stock_value_difference)
diff --git a/stock/report/items_to_be_requested/items_to_be_requested.txt b/stock/report/items_to_be_requested/items_to_be_requested.txt
index c149c96..91e8ca3 100644
--- a/stock/report/items_to_be_requested/items_to_be_requested.txt
+++ b/stock/report/items_to_be_requested/items_to_be_requested.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-08-20 15:08:10",
"docstatus": 0,
- "modified": "2013-08-20 15:10:43",
+ "modified": "2013-08-20 15:10:45",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -10,7 +10,7 @@
"doctype": "Report",
"is_standard": "Yes",
"name": "__common__",
- "query": "SELECT\n tabBin.item_code as \"Item:Link/Item:120\",\n tabBin.warehouse as \"Item:Link/Warehouse:120\",\n tabBin.actual_qty as \"Actual:Float:90\",\n tabBin.indented_qty as \"Requested:Float:90\",\n tabBin.reserved_qty as \"Reserved:Float:90\",\n tabBin.ordered_qty as \"Ordered:Float:90\",\n tabBin.projected_qty as \"Projected:Float:90\"\nFROM\n tabBin, tabItem\nWHERE\n tabBin.item_code = tabItem.name\n AND tabItem.is_purchase_item = \"Yes\"\n AND tabBin.projected_qty < 0\nORDER BY\n tabBin.projected_qty ASC",
+ "query": "SELECT\n tabBin.item_code as \"Item:Link/Item:120\",\n tabBin.warehouse as \"Warehouse:Link/Warehouse:120\",\n tabBin.actual_qty as \"Actual:Float:90\",\n tabBin.indented_qty as \"Requested:Float:90\",\n tabBin.reserved_qty as \"Reserved:Float:90\",\n tabBin.ordered_qty as \"Ordered:Float:90\",\n tabBin.projected_qty as \"Projected:Float:90\"\nFROM\n tabBin, tabItem\nWHERE\n tabBin.item_code = tabItem.name\n AND tabItem.is_purchase_item = \"Yes\"\n AND tabBin.projected_qty < 0\nORDER BY\n tabBin.projected_qty ASC",
"ref_doctype": "Item",
"report_name": "Items To Be Requested",
"report_type": "Query Report"
diff --git a/stock/utils.py b/stock/utils.py
index f04b663..52471e4 100644
--- a/stock/utils.py
+++ b/stock/utils.py
@@ -164,20 +164,18 @@
webnotes.throw(_("Not allowed entry in Warehouse") \
+ ": " + warehouse, UserNotAllowedForWarehouse)
-def get_buying_amount(item_code, voucher_type, voucher_no, voucher_detail_no,
- stock_ledger_entries, item_sales_bom=None):
- if item_sales_bom and item_sales_bom.get(item_code):
- # sales bom item
- buying_amount = 0.0
- for bom_item in item_sales_bom[item_code]:
- if bom_item.get("parent_detail_docname")==voucher_detail_no:
- buying_amount += _get_buying_amount(voucher_type, voucher_no, voucher_detail_no, stock_ledger_entries)
- return buying_amount
- else:
- # doesn't have sales bom
- return _get_buying_amount(voucher_type, voucher_no, voucher_detail_no, stock_ledger_entries)
+def get_sales_bom_buying_amount(item_code, warehouse, voucher_type, voucher_no, voucher_detail_no,
+ stock_ledger_entries, item_sales_bom):
+ # sales bom item
+ buying_amount = 0.0
+ for bom_item in item_sales_bom[item_code]:
+ if bom_item.get("parent_detail_docname")==voucher_detail_no:
+ buying_amount += get_buying_amount(voucher_type, voucher_no, voucher_detail_no,
+ stock_ledger_entries.get((bom_item.item_code, warehouse), []))
+
+ return buying_amount
-def _get_buying_amount(voucher_type, voucher_no, item_row, stock_ledger_entries):
+def get_buying_amount(voucher_type, voucher_no, item_row, stock_ledger_entries):
# IMP NOTE
# stock_ledger_entries should already be filtered by item_code and warehouse and
# sorted by posting_date desc, posting_time desc
diff --git a/support/doctype/support_ticket/get_support_mails.py b/support/doctype/support_ticket/get_support_mails.py
index 7e09846..fb26e57 100644
--- a/support/doctype/support_ticket/get_support_mails.py
+++ b/support/doctype/support_ticket/get_support_mails.py
@@ -46,7 +46,7 @@
make(content=mail.content, sender=mail.from_email, subject = ticket.doc.subject,
doctype="Support Ticket", name=ticket.doc.name,
- lead = ticket.doc.lead, contact=ticket.doc.contact, date=mail.date)
+ date=mail.date)
if new_ticket and cint(self.email_settings.send_autoreply) and \
"mailer-daemon" not in mail.from_email.lower():
diff --git a/support/doctype/support_ticket/support_ticket.js b/support/doctype/support_ticket/support_ticket.js
index 2c1f332..0e61273 100644
--- a/support/doctype/support_ticket/support_ticket.js
+++ b/support/doctype/support_ticket/support_ticket.js
@@ -46,16 +46,12 @@
make_listing: function(doc) {
var wrapper = cur_frm.fields_dict['thread_html'].wrapper;
- var comm_list = wn.model.get("Communication", {"support_ticket": doc.name})
-
- var sortfn = function (a, b) { return (b.creation > a.creation) ? 1 : -1; }
- comm_list = comm_list.sort(sortfn);
+ var comm_list = wn.model.get("Communication", {"parent": doc.name, "parenttype":"Support Ticket"})
- if(!comm_list.length || (comm_list[comm_list.length - 1].sender != doc.raised_by)) {
+ if(!comm_list.length) {
comm_list.push({
"sender": doc.raised_by,
"creation": doc.creation,
- "modified": doc.creation,
"content": doc.description});
}
diff --git a/support/doctype/support_ticket/support_ticket.py b/support/doctype/support_ticket/support_ticket.py
index 2b8fe85..8e723ee 100644
--- a/support/doctype/support_ticket/support_ticket.py
+++ b/support/doctype/support_ticket/support_ticket.py
@@ -11,9 +11,6 @@
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
-
- def onload(self):
- self.add_communication_list()
def get_sender(self, comm):
return webnotes.conn.get_value('Email Settings',None,'support_email')
@@ -53,7 +50,7 @@
if not self.doc.company:
self.doc.company = webnotes.conn.get_value("Lead", self.doc.lead, "company") or \
webnotes.conn.get_default("company")
-
+
def on_trash(self):
webnotes.conn.sql("""update `tabCommunication` set support_ticket=NULL
where support_ticket=%s""", (self.doc.name,))
diff --git a/support/doctype/support_ticket/support_ticket.txt b/support/doctype/support_ticket/support_ticket.txt
index 53d1c7c..01d0e35 100644
--- a/support/doctype/support_ticket/support_ticket.txt
+++ b/support/doctype/support_ticket/support_ticket.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-02-01 10:36:25",
"docstatus": 0,
- "modified": "2013-08-08 14:22:34",
+ "modified": "2013-09-02 16:24:24",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -225,17 +225,6 @@
"read_only": 1
},
{
- "depends_on": "eval:!doc.__islocal",
- "doctype": "DocField",
- "fieldname": "resolution_details",
- "fieldtype": "Small Text",
- "label": "Resolution Details",
- "no_copy": 1,
- "oldfieldname": "resolution_details",
- "oldfieldtype": "Text",
- "read_only": 1
- },
- {
"doctype": "DocField",
"fieldname": "first_responded_on",
"fieldtype": "Datetime",
@@ -255,6 +244,17 @@
"search_index": 0
},
{
+ "depends_on": "eval:!doc.__islocal",
+ "doctype": "DocField",
+ "fieldname": "resolution_details",
+ "fieldtype": "Small Text",
+ "label": "Resolution Details",
+ "no_copy": 1,
+ "oldfieldname": "resolution_details",
+ "oldfieldtype": "Text",
+ "read_only": 0
+ },
+ {
"doctype": "DocField",
"fieldname": "content_type",
"fieldtype": "Data",
@@ -262,6 +262,14 @@
"label": "Content Type"
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication"
+ },
+ {
"cancel": 0,
"doctype": "DocPerm",
"role": "Guest"
diff --git a/utilities/demo/demo-login.html b/utilities/demo/demo-login.html
index ef24678..4595cb7 100644
--- a/utilities/demo/demo-login.html
+++ b/utilities/demo/demo-login.html
@@ -8,7 +8,7 @@
<div class="panel-body">
<p>
<input id="lead-email" type="email"
- class="form-control" placeholder="Your Email Id">
+ class="form-control" placeholder="Your Email Id (optional)">
</p>
<p>
<button type="submit" id="login_btn"
diff --git a/utilities/demo/demo_docs/Item.csv b/utilities/demo/demo_docs/Item.csv
index 789e10c..ff61c5f 100644
--- a/utilities/demo/demo_docs/Item.csv
+++ b/utilities/demo/demo_docs/Item.csv
@@ -1,50 +1,50 @@
-Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Table:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-DocType:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,Item Reorder,item_reorder,,,,-,UOM Conversion Detail,uom_conversion_details,,-,Item Supplier,item_supplier_details,,-,Item Customer Detail,item_customer_details,,-,Item Tax,item_tax,,-,Item Price,ref_rate_details,,,,-,Item Quality Inspection Parameter,item_specification_details,,-,Website Item Group,website_item_groups,-,Item Website Specification,item_website_specifications,
-Column Labels:,ID,Last Updated On,Item Name,Item Group,Default Unit of Measure,Description,Is Stock Item,Is Asset Item,Has Batch No,Has Serial No,Is Purchase Item,Is Sales Item,Is Service Item,Allow Samples,Inspection Required,Allow Bill of Materials,Allow Production Order,Is Sub Contracted Item,Document Numbering Series,Item Code,Brand,Barcode,Image,Description HTML,Default Warehouse,Allowance Percent,Valuation Method,Minimum Order Qty,Serial Number Series,Warranty Period (in days),End of Life,Net Weight,Weight UOM,Re-Order Level,Re-Order Qty,Default Supplier,Lead Time Days,Default Expense Account,Default Cost Center,Last Purchase Rate,Standard Rate,Manufacturer,Manufacturer Part Number,Max Discount (%),Default Income Account,Cost Center,Default BOM,Show in Website,Page Name,Weightage,Slideshow,Image,Website Warehouse,Website Description,-,ID,Warehouse,Re-order Level,Material Request Type,Re-order Qty,-,ID,UOM,Conversion Factor,-,ID,Supplier,Supplier Part Number,-,ID,Customer Name,Ref Code,-,ID,Tax,Tax Rate,-,ID,Price List Name,Ref Rate,Valid for Buying or Selling?,Currency,-,ID,Parameter,Acceptance Criteria,-,ID,Item Group,-,ID,Label,Description
-Column Name:,name,modified,item_name,item_group,stock_uom,description,is_stock_item,is_asset_item,has_batch_no,has_serial_no,is_purchase_item,is_sales_item,is_service_item,is_sample_item,inspection_required,is_manufactured_item,is_pro_applicable,is_sub_contracted_item,naming_series,item_code,brand,barcode,image,description_html,default_warehouse,tolerance,valuation_method,min_order_qty,serial_no_series,warranty_period,end_of_life,net_weight,weight_uom,re_order_level,re_order_qty,default_supplier,lead_time_days,purchase_account,cost_center,last_purchase_rate,standard_rate,manufacturer,manufacturer_part_no,max_discount,default_income_account,default_sales_cost_center,default_bom,show_in_website,page_name,weightage,slideshow,website_image,website_warehouse,web_long_description,-,name,warehouse,warehouse_reorder_level,material_request_type,warehouse_reorder_qty,-,name,uom,conversion_factor,-,name,supplier,supplier_part_no,-,name,customer_name,ref_code,-,name,tax_type,tax_rate,-,name,price_list,ref_rate,buying_or_selling,ref_currency,-,name,specification,value,-,name,item_group,-,name,label,description
-Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,-,Yes,Yes,Yes,Yes,No,-,Yes,No,No,-,Yes,No,No,-,Yes,Yes,Yes,-,Yes,Yes,No,-,Yes,Yes,Yes,Yes,No,-,Yes,Yes,No,-,Yes,No,-,Yes,No,No
-Type:,Data (text),Data,Data,Link,Link,Small Text,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Data,Link,Data,Select,Small Text,Link,Float,Select,Float,Data,Data,Date,Float,Link,Float,Float,Link,Int,Link,Link,Float,Float,Data,Data,Float,Link,Link,Link,Check,Data,Int,Link,Select,Link,Text Editor,-,Data,Link,Float,Select,Float,-,Data,Link,Float,-,Data,Link,Data,-,Data,Link,Data,-,Data,Link,Float,-,Data,Link,Currency,Select,Link,-,Data,Data,Data,-,Data,Link,-,Data,Data,Text
-Info:,,Don't change!,,Valid Item Group,Valid UOM,,"One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No",One of: ITEM,,Valid Brand,,One of: attach_files:,,Valid Warehouse,,"One of: FIFO, Moving Average",,,,,,Valid UOM,,,Valid Supplier,Integer,Valid Account,Valid Cost Center,,,,,,Valid Account,Valid Cost Center,Valid BOM,0 or 1,,Integer,Valid Website Slideshow,One of: attach_files:,Valid Warehouse,,-,Leave blank for new records,Valid Warehouse,,"One of: Purchase, Transfer",,-,Leave blank for new records,Valid UOM,,-,Leave blank for new records,Valid Supplier,,-,Leave blank for new records,Valid Customer,,-,Leave blank for new records,Valid Account,,-,Leave blank for new records,Valid Price List,,"One of: Buying, Selling",Valid Currency,-,Leave blank for new records,,,-,Leave blank for new records,Valid Item Group,-,Leave blank for new records,,
-Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-,Base Bearing Plate,"""2013-08-20 11:11:53""",Base Bearing Plate,Raw Material,Nos,1/4 in. x 6 in. x 6 in. Mild Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Base Bearing Plate,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Eagle Hardware,0,,,15.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00001,Nos,1.0,,,,,,,,,,,,,,RFD/00001,Standard Buying,15.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00017,Standard Selling,21.0,Selling,USD,,,,,,,,,,,
-,Base Plate,"""2013-08-20 11:11:53""",Base Plate,Raw Material,Nos,3/4 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Base Plate,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,HomeBase,0,,,20.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00002,Nos,1.0,,,,,,,,,,,,,,RFD/00002,Standard Buying,20.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00018,Standard Selling,28.0,Selling,USD,,,,,,,,,,,
-,Bearing Assembly,"""2013-08-20 11:11:55""",Bearing Assembly,Sub Assemblies,Nos,Bearing Assembly,Yes,No,No,No,No,Yes,No,No,No,Yes,Yes,No,,Bearing Assembly,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Asiatic Solutions,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00003,Nos,1.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-,Bearing Block,"""2013-08-20 11:11:54""",Bearing Block,Raw Material,Nos,"CAST IRON, MCMASTER PART NO. 3710T13",Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Block,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Nan Duskin,0,,,10.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00004,Nos,1.0,,,,,,,,,,,,,,RFD/00003,Standard Buying,10.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00019,Standard Selling,14.0,Selling,USD,,,,,,,,,,,
-,Bearing Collar,"""2013-08-20 11:11:54""",Bearing Collar,Raw Material,Nos,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Collar,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Eagle Hardware,0,,,20.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00005,Nos,1.0,,,,,,,,,,,,,,RFD/00004,Standard Buying,20.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00020,Standard Selling,28.0,Selling,USD,,,,,,,,,,,
-,Bearing Pipe,"""2013-08-20 11:11:54""",Bearing Pipe,Raw Material,Nos,1.5 in. Diameter x 36 in. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Bearing Pipe,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,HomeBase,0,,,15.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00006,Nos,1.0,,,,,,,,,,,,,,RFD/00005,Standard Buying,15.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00021,Standard Selling,21.0,Selling,USD,,,,,,,,,,,
-,Blade Rib,"""2013-08-20 11:11:54""",Blade Rib,Raw Material,Nos,1/2 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Blade Rib,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Ks Merchandise,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00007,Nos,1.0,,,,,,,,,,,,,,RFD/00006,Standard Buying,10.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00022,Standard Selling,14.0,Selling,USD,,,,,,,,,,,
-,Disc Collars,"""2013-08-20 11:11:54""",Disc Collars,Raw Material,Nos,For Upper Bearing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Disc Collars,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Asiatic Solutions,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00008,Nos,1.0,,,,,,,,,,,,,,RFD/00007,Standard Buying,74.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00023,Standard Selling,103.6,Selling,USD,,,,,,,,,,,
-,External Disc,"""2013-08-20 11:11:54""",External Disc,Raw Material,Nos,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,External Disc,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,HomeBase,0,,,45.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00009,Nos,1.0,,,,,,,,,,,,,,RFD/00008,Standard Buying,45.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00024,Standard Selling,63.0,Selling,USD,,,,,,,,,,,
-,Internal Disc,"""2013-08-20 11:11:54""",Internal Disc,Raw Material,Nos,For Bearing Collar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Internal Disc,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,HomeBase,0,,,33.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00010,Nos,1.0,,,,,,,,,,,,,,RFD/00009,Standard Buying,33.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00025,Standard Selling,46.2,Selling,USD,,,,,,,,,,,
-,Shaft,"""2013-08-20 11:11:54""",Shaft,Raw Material,Nos,1.25 in. Diameter x 6 ft. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Shaft,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Eagle Hardware,0,,,30.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00011,Nos,1.0,,,,,,,,,,,,,,RFD/00010,Standard Buying,30.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00026,Standard Selling,42.0,Selling,USD,,,,,,,,,,,
-,Stand,"""2013-08-20 11:11:54""",Stand,Raw Material,Nos,N/A,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Stand,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Scott Ties,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00012,Nos,1.0,,,,,,,,,,,,,,RFD/00011,Standard Buying,40.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00027,Standard Selling,56.0,Selling,USD,,,,,,,,,,,
-,Upper Bearing Plate,"""2013-08-20 11:11:54""",Upper Bearing Plate,Raw Material,Nos,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Upper Bearing Plate,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Eagle Hardware,0,,,50.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00013,Nos,1.0,,,,,,,,,,,,,,RFD/00012,Standard Buying,50.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00028,Standard Selling,70.0,Selling,USD,,,,,,,,,,,
-,Wind Mill A Series,"""2013-08-20 11:27:46""",Wind Mill A Series,Products,Nos,Wind Mill A Series for Home Use 9ft,Yes,No,No,Yes,No,Yes,Yes,No,No,Yes,Yes,No,,Wind Mill A Series,,,,,Finished Goods - WP,0.0,,0.0,WMA,,,0.0,,0.0,0.0,,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00014,Nos,1.0,,,,,,,,,,,,,,RFD/00015,Standard Selling,340.0,Selling,USD,,,,,,,,,,,
-,Wind MIll C Series,"""2013-08-20 11:27:27""",Wind MIll C Series,Products,Nos,Wind Mill C Series for Commercial Use 18ft,Yes,No,No,Yes,No,Yes,Yes,No,No,Yes,Yes,No,,Wind MIll C Series,,,,,Finished Goods - WP,0.0,,0.0,WMC,,,0.0,,0.0,0.0,,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00015,Nos,1.0,,,,,,,,,,,,,,RFD/00016,Standard Selling,400.0,Selling,USD,,,,,,,,,,,
-,Wind Turbine,"""2013-08-20 11:29:26""",Wind Turbine,Products,Nos,Small Wind Turbine for Home Use,Yes,No,No,Yes,No,Yes,Yes,No,No,Yes,Yes,No,,Wind Turbine,,,,,Finished Goods - WP,0.0,,0.0,WTU,,,0.0,,0.0,0.0,,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00016,Nos,1.0,,,,,,,,,,,,,,RFD/00014,Standard Selling,300.0,Selling,USD,,,,,,,,,,,
-,Wing Sheet,"""2013-08-20 11:11:55""",Wing Sheet,Raw Material,Nos,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,No,,Wing Sheet,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,New World Realty,0,,,22.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00017,Nos,1.0,,,,,,,,,,,,,,RFD/00013,Standard Buying,22.0,Buying,USD,,,,,,,,,,,
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00029,Standard Selling,30.8,Selling,USD,,,,,,,,,,,
\ No newline at end of file
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+DocType:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,Item Reorder,item_reorder,,,,-,UOM Conversion Detail,uom_conversion_details,,-,Item Supplier,item_supplier_details,,-,Item Customer Detail,item_customer_details,,-,Item Tax,item_tax,,-,Item Price,ref_rate_details,,,,-,Item Quality Inspection Parameter,item_specification_details,,-,Website Item Group,website_item_groups,-,Item Website Specification,item_website_specifications,
+Column Labels:,ID,Last Updated On,Item Name,Item Group,Default Unit of Measure,Description,Is Stock Item,Is Asset Item,Has Batch No,Has Serial No,Is Purchase Item,Is Sales Item,Is Service Item,Inspection Required,Allow Bill of Materials,Allow Production Order,Is Sub Contracted Item,Document Numbering Series,Item Code,Brand,Barcode,Image,Description HTML,Default Warehouse,Allowance Percent,Valuation Method,Minimum Order Qty,Serial Number Series,Warranty Period (in days),End of Life,Net Weight,Weight UOM,Re-Order Level,Re-Order Qty,Default Supplier,Lead Time Days,Default Expense Account,Default Cost Center,Last Purchase Rate,Standard Rate,Manufacturer,Manufacturer Part Number,Max Discount (%),Default Income Account,Cost Center,Default BOM,Show in Website,Page Name,Weightage,Slideshow,Image,Website Warehouse,Website Description,-,ID,Warehouse,Re-order Level,Material Request Type,Re-order Qty,-,ID,UOM,Conversion Factor,-,ID,Supplier,Supplier Part Number,-,ID,Customer Name,Ref Code,-,ID,Tax,Tax Rate,-,ID,Price List Name,Ref Rate,Valid for Buying or Selling?,Currency,-,ID,Parameter,Acceptance Criteria,-,ID,Item Group,-,ID,Label,Description
+Column Name:,name,modified,item_name,item_group,stock_uom,description,is_stock_item,is_asset_item,has_batch_no,has_serial_no,is_purchase_item,is_sales_item,is_service_item,inspection_required,is_manufactured_item,is_pro_applicable,is_sub_contracted_item,naming_series,item_code,brand,barcode,image,description_html,default_warehouse,tolerance,valuation_method,min_order_qty,serial_no_series,warranty_period,end_of_life,net_weight,weight_uom,re_order_level,re_order_qty,default_supplier,lead_time_days,purchase_account,cost_center,last_purchase_rate,standard_rate,manufacturer,manufacturer_part_no,max_discount,default_income_account,default_sales_cost_center,default_bom,show_in_website,page_name,weightage,slideshow,website_image,website_warehouse,web_long_description,-,name,warehouse,warehouse_reorder_level,material_request_type,warehouse_reorder_qty,-,name,uom,conversion_factor,-,name,supplier,supplier_part_no,-,name,customer_name,ref_code,-,name,tax_type,tax_rate,-,name,price_list,ref_rate,buying_or_selling,ref_currency,-,name,specification,value,-,name,item_group,-,name,label,description
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,-,Yes,Yes,Yes,Yes,No,-,Yes,No,No,-,Yes,No,No,-,Yes,Yes,Yes,-,Yes,Yes,No,-,Yes,Yes,Yes,Yes,No,-,Yes,Yes,No,-,Yes,No,-,Yes,No,No
+Type:,Data (text),Data,Data,Link,Link,Small Text,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Data,Link,Data,Select,Small Text,Link,Float,Select,Float,Data,Data,Date,Float,Link,Float,Float,Link,Int,Link,Link,Float,Float,Data,Data,Float,Link,Link,Link,Check,Data,Int,Link,Select,Link,Text Editor,-,Data,Link,Float,Select,Float,-,Data,Link,Float,-,Data,Link,Data,-,Data,Link,Data,-,Data,Link,Float,-,Data,Link,Currency,Select,Link,-,Data,Data,Data,-,Data,Link,-,Data,Data,Text
+Info:,,Don't change!,,Valid Item Group,Valid UOM,,"One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No",One of: ITEM,,Valid Brand,,One of: attach_files:,,Valid Warehouse,,"One of: FIFO, Moving Average",,,,,,Valid UOM,,,Valid Supplier,Integer,Valid Account,Valid Cost Center,,,,,,Valid Account,Valid Cost Center,Valid BOM,0 or 1,,Integer,Valid Website Slideshow,One of: attach_files:,Valid Warehouse,,-,Leave blank for new records,Valid Warehouse,,"One of: Purchase, Transfer",,-,Leave blank for new records,Valid UOM,,-,Leave blank for new records,Valid Supplier,,-,Leave blank for new records,Valid Customer,,-,Leave blank for new records,Valid Account,,-,Leave blank for new records,Valid Price List,,"One of: Buying, Selling",Valid Currency,-,Leave blank for new records,,,-,Leave blank for new records,Valid Item Group,-,Leave blank for new records,,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,Base Bearing Plate,"""2013-08-20 11:11:53""",Base Bearing Plate,Raw Material,Nos,1/4 in. x 6 in. x 6 in. Mild Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Base Bearing Plate,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Eagle Hardware,0,,,15.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00001,Nos,1.0,,,,,,,,,,,,,,RFD/00001,Standard Buying,15.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00017,Standard Selling,21.0,Selling,USD,,,,,,,,,,,
+,Base Plate,"""2013-08-20 11:11:53""",Base Plate,Raw Material,Nos,3/4 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Base Plate,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,HomeBase,0,,,20.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00002,Nos,1.0,,,,,,,,,,,,,,RFD/00002,Standard Buying,20.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00018,Standard Selling,28.0,Selling,USD,,,,,,,,,,,
+,Bearing Assembly,"""2013-08-20 11:11:55""",Bearing Assembly,Sub Assemblies,Nos,Bearing Assembly,Yes,No,No,No,No,Yes,No,No,Yes,Yes,No,,Bearing Assembly,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Asiatic Solutions,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00003,Nos,1.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,Bearing Block,"""2013-08-20 11:11:54""",Bearing Block,Raw Material,Nos,"CAST IRON, MCMASTER PART NO. 3710T13",Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Bearing Block,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Nan Duskin,0,,,10.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00004,Nos,1.0,,,,,,,,,,,,,,RFD/00003,Standard Buying,10.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00019,Standard Selling,14.0,Selling,USD,,,,,,,,,,,
+,Bearing Collar,"""2013-08-20 11:11:54""",Bearing Collar,Raw Material,Nos,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Bearing Collar,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Eagle Hardware,0,,,20.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00005,Nos,1.0,,,,,,,,,,,,,,RFD/00004,Standard Buying,20.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00020,Standard Selling,28.0,Selling,USD,,,,,,,,,,,
+,Bearing Pipe,"""2013-08-20 11:11:54""",Bearing Pipe,Raw Material,Nos,1.5 in. Diameter x 36 in. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Bearing Pipe,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,HomeBase,0,,,15.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00006,Nos,1.0,,,,,,,,,,,,,,RFD/00005,Standard Buying,15.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00021,Standard Selling,21.0,Selling,USD,,,,,,,,,,,
+,Blade Rib,"""2013-08-20 11:11:54""",Blade Rib,Raw Material,Nos,1/2 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Blade Rib,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Ks Merchandise,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00007,Nos,1.0,,,,,,,,,,,,,,RFD/00006,Standard Buying,10.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00022,Standard Selling,14.0,Selling,USD,,,,,,,,,,,
+,Disc Collars,"""2013-08-20 11:11:54""",Disc Collars,Raw Material,Nos,For Upper Bearing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Disc Collars,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Asiatic Solutions,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00008,Nos,1.0,,,,,,,,,,,,,,RFD/00007,Standard Buying,74.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00023,Standard Selling,103.6,Selling,USD,,,,,,,,,,,
+,External Disc,"""2013-08-20 11:11:54""",External Disc,Raw Material,Nos,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,External Disc,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,HomeBase,0,,,45.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00009,Nos,1.0,,,,,,,,,,,,,,RFD/00008,Standard Buying,45.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00024,Standard Selling,63.0,Selling,USD,,,,,,,,,,,
+,Internal Disc,"""2013-08-20 11:11:54""",Internal Disc,Raw Material,Nos,For Bearing Collar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Internal Disc,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,HomeBase,0,,,33.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00010,Nos,1.0,,,,,,,,,,,,,,RFD/00009,Standard Buying,33.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00025,Standard Selling,46.2,Selling,USD,,,,,,,,,,,
+,Shaft,"""2013-08-20 11:11:54""",Shaft,Raw Material,Nos,1.25 in. Diameter x 6 ft. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Shaft,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Eagle Hardware,0,,,30.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00011,Nos,1.0,,,,,,,,,,,,,,RFD/00010,Standard Buying,30.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00026,Standard Selling,42.0,Selling,USD,,,,,,,,,,,
+,Stand,"""2013-08-20 11:11:54""",Stand,Raw Material,Nos,N/A,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Stand,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Scott Ties,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00012,Nos,1.0,,,,,,,,,,,,,,RFD/00011,Standard Buying,40.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00027,Standard Selling,56.0,Selling,USD,,,,,,,,,,,
+,Upper Bearing Plate,"""2013-08-20 11:11:54""",Upper Bearing Plate,Raw Material,Nos,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Upper Bearing Plate,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,Eagle Hardware,0,,,50.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00013,Nos,1.0,,,,,,,,,,,,,,RFD/00012,Standard Buying,50.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00028,Standard Selling,70.0,Selling,USD,,,,,,,,,,,
+,Wind Mill A Series,"""2013-08-20 11:27:46""",Wind Mill A Series,Products,Nos,Wind Mill A Series for Home Use 9ft,Yes,No,No,Yes,No,Yes,Yes,No,Yes,Yes,No,,Wind Mill A Series,,,,,Finished Goods - WP,0.0,,0.0,WMA,,,0.0,,0.0,0.0,,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00014,Nos,1.0,,,,,,,,,,,,,,RFD/00015,Standard Selling,340.0,Selling,USD,,,,,,,,,,,
+,Wind MIll C Series,"""2013-08-20 11:27:27""",Wind MIll C Series,Products,Nos,Wind Mill C Series for Commercial Use 18ft,Yes,No,No,Yes,No,Yes,Yes,No,Yes,Yes,No,,Wind MIll C Series,,,,,Finished Goods - WP,0.0,,0.0,WMC,,,0.0,,0.0,0.0,,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00015,Nos,1.0,,,,,,,,,,,,,,RFD/00016,Standard Selling,400.0,Selling,USD,,,,,,,,,,,
+,Wind Turbine,"""2013-08-20 11:29:26""",Wind Turbine,Products,Nos,Small Wind Turbine for Home Use,Yes,No,No,Yes,No,Yes,Yes,No,Yes,Yes,No,,Wind Turbine,,,,,Finished Goods - WP,0.0,,0.0,WTU,,,0.0,,0.0,0.0,,0,,,0.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00016,Nos,1.0,,,,,,,,,,,,,,RFD/00014,Standard Selling,300.0,Selling,USD,,,,,,,,,,,
+,Wing Sheet,"""2013-08-20 11:11:55""",Wing Sheet,Raw Material,Nos,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Wing Sheet,,,,,Stores - WP,0.0,,0.0,,,,0.0,,0.0,0.0,New World Realty,0,,,22.0,0.0,,,0.0,,,,0,,0,,,,,,,,,,,,UCDD/00017,Nos,1.0,,,,,,,,,,,,,,RFD/00013,Standard Buying,22.0,Buying,USD,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RFD/00029,Standard Selling,30.8,Selling,USD,,,,,,,,,,,
\ No newline at end of file
diff --git a/utilities/demo/make_demo.py b/utilities/demo/make_demo.py
index 3d7d648..4383d32 100644
--- a/utilities/demo/make_demo.py
+++ b/utilities/demo/make_demo.py
@@ -29,15 +29,15 @@
"Purchase Receipt": { "make": 0.7, "qty": (1,15) },
}
-def make(reset=False):
- webnotes.connect()
+def make(reset=False, simulate=True):
#webnotes.print_messages = True
webnotes.mute_emails = True
webnotes.rollback_on_exception = True
if reset:
setup()
- simulate()
+ if simulate:
+ _simulate()
def setup():
install()
@@ -49,7 +49,7 @@
# make_opening_stock()
# make_opening_accounts()
-def simulate():
+def _simulate():
global runs_for
current_date = webnotes.utils.getdate(start_date)
@@ -410,7 +410,4 @@
if submit:
webnotes.form_dict["params"] = json.dumps({"_submit": 1})
webnotes.uploaded_file = os.path.join(os.path.dirname(__file__), "demo_docs", doctype+".csv")
- upload()
-
-if __name__=="__main__":
- make()
\ No newline at end of file
+ upload()
\ No newline at end of file
diff --git a/utilities/demo/make_erpnext_demo.py b/utilities/demo/make_erpnext_demo.py
index 31dc400..9e56839 100644
--- a/utilities/demo/make_erpnext_demo.py
+++ b/utilities/demo/make_erpnext_demo.py
@@ -3,10 +3,17 @@
sys.path.extend([".", "lib", "app"])
import webnotes, os
+import utilities.demo.make_demo
def make_demo_app():
- import utilities.demo.make_demo
- utilities.demo.make_demo.make(reset=True)
+ webnotes.mute_emails = 1
+ webnotes.connect()
+ utilities.demo.make_demo.make(reset=True, simulate=False)
+ # setup demo user etc so that the site it up faster, while the data loads
+ make_demo_user()
+ make_demo_login_page()
+ make_demo_on_login_script()
+ utilities.demo.make_demo.make(reset=False, simulate=True)
def make_demo_user():
roles = ["Accounts Manager", "Analytics", "Expense Approver", "Accounts User",
@@ -88,8 +95,10 @@
p.insert()
- webnotes.conn.set_value("Website Settings", None, "home_page", "demo-login")
- webnotes.conn.set_value("Website Settings", None, "disable_signup", 1)
+ website_settings = webnotes.bean("Website Settings", "Website Settings")
+ website_settings.doc.home_page = "demo-login"
+ website_settings.doc.disable_signup = 1
+ website_settings.save()
webnotes.conn.commit()
@@ -109,9 +118,4 @@
webnotes.conn.commit()
if __name__=="__main__":
- # webnotes.connect()
- webnotes.mute_emails = 1
- make_demo_app()
- make_demo_user()
- make_demo_login_page()
- make_demo_on_login_script()
\ No newline at end of file
+ make_demo_app()
\ No newline at end of file
diff --git a/utilities/doctype/contact/contact.py b/utilities/doctype/contact/contact.py
index 89cfc8e..9997cab 100644
--- a/utilities/doctype/contact/contact.py
+++ b/utilities/doctype/contact/contact.py
@@ -7,14 +7,11 @@
from utilities.transaction_base import TransactionBase
-class DocType(TransactionBase):
+class DocType(TransactionBase):
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
- def onload(self):
- self.add_communication_list()
-
def on_communication_sent(self, comm):
webnotes.conn.set(self.doc, 'status', 'Replied')
diff --git a/utilities/doctype/contact/contact.txt b/utilities/doctype/contact/contact.txt
index 63d0252..d3c7d88 100644
--- a/utilities/doctype/contact/contact.txt
+++ b/utilities/doctype/contact/contact.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-01-10 16:34:32",
"docstatus": 0,
- "modified": "2013-07-05 14:32:19",
+ "modified": "2013-09-02 16:26:13",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -226,6 +226,14 @@
"read_only": 1
},
{
+ "doctype": "DocField",
+ "fieldname": "communications",
+ "fieldtype": "Table",
+ "hidden": 1,
+ "label": "Communications",
+ "options": "Communication"
+ },
+ {
"cancel": 1,
"doctype": "DocPerm",
"role": "System Manager"
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index aace0cb..22bc531 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -229,20 +229,7 @@
if int(webnotes.conn.get_value("Notification Control", None, dt) or 0):
self.doc.fields["__notification_message"] = \
webnotes.conn.get_value("Notification Control", None, dt + "_message")
-
- def add_communication_list(self):
- # remove communications if present
- self.doclist = webnotes.doclist(self.doclist).get({
- "doctype": ["!=", "Communcation"]})
-
- comm_list = webnotes.conn.sql("""select * from tabCommunication
- where %s=%s order by modified desc limit 20""" \
- % (self.doc.doctype.replace(" ", "_").lower(), "%s"),
- self.doc.name, as_dict=1, update={"doctype":"Communication"})
-
- self.doclist.extend(webnotes.doclist([webnotes.doc(fielddata=d) \
- for d in comm_list]))
-
+
def validate_posting_time(self):
if not self.doc.posting_time:
self.doc.posting_time = now_datetime().strftime('%H:%M:%S')
diff --git a/website/css/website.css b/website/css/website.css
index 88bf7fd..24553d9 100644
--- a/website/css/website.css
+++ b/website/css/website.css
@@ -18,14 +18,6 @@
padding-bottom: 30px;
}
-.outer {
- padding: 0px 20px;
-}
-
-.navbar {
- margin: 0px -20px;
-}
-
.banner {
margin-top: 20px;
padding: 0px 20px;
@@ -56,6 +48,7 @@
div.web-footer {
padding-top: 10px;
+ padding-bottom: 20px;
}
.web-footer-menu ul {
diff --git a/website/doctype/blogger/blogger.py b/website/doctype/blogger/blogger.py
index b35b8ee..9cb4a44 100644
--- a/website/doctype/blogger/blogger.py
+++ b/website/doctype/blogger/blogger.py
@@ -5,6 +5,7 @@
from __future__ import unicode_literals
import webnotes
+from webnotes import _
class DocType:
def __init__(self, d, dl):
@@ -23,3 +24,18 @@
b.doc.blogger = self.doc.name
b.save()
+def get_writers_args():
+ bloggers = webnotes.conn.sql("""select * from `tabBlogger`
+ where ifnull(posts,0) > 0 and ifnull(disabled,0)=0
+ order by posts desc""", as_dict=1)
+
+ args = {
+ "bloggers": bloggers,
+ "texts": {
+ "all_posts_by": _("All posts by")
+ },
+ "categories": webnotes.conn.sql_list("select name from `tabBlog Category` order by name")
+ }
+
+ args.update(webnotes.doc("Blog Settings", "Blog Settings").fields)
+ return args
\ No newline at end of file
diff --git a/website/doctype/blogger/blogger.txt b/website/doctype/blogger/blogger.txt
index e2b4367..1486c01 100644
--- a/website/doctype/blogger/blogger.txt
+++ b/website/doctype/blogger/blogger.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-03-25 16:00:51",
"docstatus": 0,
- "modified": "2013-07-05 14:27:34",
+ "modified": "2013-08-30 16:35:24",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -40,6 +40,12 @@
"name": "Blogger"
},
{
+ "doctype": "DocField",
+ "fieldname": "disabled",
+ "fieldtype": "Check",
+ "label": "Disabled"
+ },
+ {
"description": "Will be used in url (usually first name).",
"doctype": "DocField",
"fieldname": "short_name",
diff --git a/website/helpers/blog.py b/website/helpers/blog.py
index f8f7a42..3f6d94f 100644
--- a/website/helpers/blog.py
+++ b/website/helpers/blog.py
@@ -119,18 +119,3 @@
}
args.update(webnotes.doc("Blog Settings", "Blog Settings").fields)
return args
-
-def get_writers_args():
- bloggers = webnotes.conn.sql("""select * from `tabBlogger`
- order by posts desc""", as_dict=1)
-
- args = {
- "bloggers": bloggers,
- "texts": {
- "all_posts_by": _("All posts by")
- },
- "categories": webnotes.conn.sql_list("select name from `tabBlog Category` order by name")
- }
-
- args.update(webnotes.doc("Blog Settings", "Blog Settings").fields)
- return args
\ No newline at end of file
diff --git a/website/helpers/contact.py b/website/helpers/contact.py
index 05ae4f7..35446a3 100644
--- a/website/helpers/contact.py
+++ b/website/helpers/contact.py
@@ -20,7 +20,7 @@
# make lead / communication
from selling.doctype.lead.get_leads import add_sales_communication
- add_sales_communication(subject or "Website Query", message, sender, sender,
+ message = add_sales_communication(subject or "Website Query", message, sender, sender,
mail=None, status=status)
# guest method, cap max writes per hour
@@ -29,4 +29,4 @@
webnotes.response["message"] = "Sorry: we believe we have received an unreasonably high number of requests of this kind. Please try later"
return
- webnotes.response["message"] = 'Thank You'
\ No newline at end of file
+ webnotes.response.status = "okay"
diff --git a/website/templates/css/blog_page.css b/website/templates/css/blog_page.css
index ffa45b4..8f56cd2 100644
--- a/website/templates/css/blog_page.css
+++ b/website/templates/css/blog_page.css
@@ -1,8 +1,4 @@
<style>
- [itemprop="articleBody"] {
- font-size: 120%;
- }
-
.comment-title {
color:#777;
}
diff --git a/website/templates/html/blog_footer.html b/website/templates/html/blog_footer.html
index b4a574c..e71b3ec 100644
--- a/website/templates/html/blog_footer.html
+++ b/website/templates/html/blog_footer.html
@@ -2,7 +2,7 @@
<hr />
{% if categories %}
<h5>Explore posts by categories</h5>
- <ul class="breadcrumb" style="background-color: transparent; padding-left: 0px;">
+ <ul class="breadcrumb" style="background-color: transparent; padding-left: 20px;">
{% for category in categories %}
<li><a href="blog?category={{ category }}">{{ category }}</a>
{% endfor %}
diff --git a/website/templates/html/outer.html b/website/templates/html/outer.html
index 0f0f400..462f4dd 100644
--- a/website/templates/html/outer.html
+++ b/website/templates/html/outer.html
@@ -1,6 +1,7 @@
{% extends "lib/templates/base.html" %}
{% block body %}
+ {% include "app/website/templates/html/navbar.html" %}
<div class="container">
<div class="pull-right" style="margin:4px;" id="user-tools">
{% if shopping_cart_enabled -%}
@@ -23,7 +24,6 @@
<div class="col-md-12">{{ banner_html }}</div>
</div>{% endif %}
<div class="outer">
- {% include "app/website/templates/html/navbar.html" %}
<div class="content row" id="page-{{ name }}" style="display: block;">
{%- block content -%}
{%- endblock -%}
diff --git a/website/templates/js/contact.js b/website/templates/js/contact.js
index a28abba..dece898 100644
--- a/website/templates/js/contact.js
+++ b/website/templates/js/contact.js
@@ -26,7 +26,12 @@
sender: email,
message: message,
callback: function(r) {
- msgprint(r.message);
+ if(r.status==="okay") {
+ msgprint(r.message || "Thank you for your message.")
+ } else {
+ msgprint("There were errors");
+ console.log(r.exc);
+ }
$(':input').val('');
}
});
diff --git a/website/templates/pages/contact.html b/website/templates/pages/contact.html
index 3798708..86be163 100644
--- a/website/templates/pages/contact.html
+++ b/website/templates/pages/contact.html
@@ -32,7 +32,7 @@
</p>
</div>
{% if obj.doc.address %}
- <div class="col-md-3 col-md-offset-1 alert" style="margin-top: 20px;" itemscope itemtype="http://schema.org/PostalAddress">
+ <div class="col-md-3 col-md-offset-1 alert alert-warning" style="margin-top: 20px;" itemscope itemtype="http://schema.org/PostalAddress">
<h4><i class="icon-map-marker"></i> {{ obj.address.address_title }}</h4>
{% if obj.address.address_line1 %}
<span itemprop="streetAddress">{{ obj.address.address_line1 }}</span><br>