From bed19ac4d389eca69447b0d711690ef581cb1f53 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 21 Mar 2013 17:12:25 +0530 Subject: [PATCH] added website pages for orders, tickets and added sales invoice print format --- .../SalesInvoice/SalesInvoice.html | 137 ++++++++++++++++++ .../SalesInvoice/SalesInvoice.txt | 20 +++ public/js/website_utils.js | 3 +- selling/doctype/sales_common/sales_common.js | 3 +- selling/doctype/sales_order/sales_order.py | 18 ++- .../doctype/backup_manager/backup_dropbox.py | 2 +- .../global_defaults/global_defaults.py | 1 + .../global_defaults/global_defaults.txt | 24 ++- setup/doctype/item_group/item_group.txt | 39 +++-- stock/doctype/item/item.js | 14 ++ stock/doctype/item/item.txt | 57 +++++++- .../doctype/support_ticket/support_ticket.py | 9 +- website/css/website.css | 3 +- website/helpers/account.py | 23 --- website/templates/html/base.html | 15 +- website/templates/html/navbar.html | 62 +++----- website/templates/html/outer.html | 4 +- website/templates/html/page.html | 22 +-- website/templates/pages/account.html | 67 ++------- website/templates/pages/order.html | 12 ++ website/templates/pages/orders.html | 62 ++++++++ website/templates/pages/print.html | 5 +- website/templates/pages/profile.html | 9 +- website/templates/pages/tickets.html | 53 +++++++ 24 files changed, 490 insertions(+), 174 deletions(-) create mode 100644 accounts/Print Format/SalesInvoice/SalesInvoice.html create mode 100644 accounts/Print Format/SalesInvoice/SalesInvoice.txt delete mode 100644 website/helpers/account.py create mode 100644 website/templates/pages/order.html create mode 100644 website/templates/pages/orders.html create mode 100644 website/templates/pages/tickets.html diff --git a/accounts/Print Format/SalesInvoice/SalesInvoice.html b/accounts/Print Format/SalesInvoice/SalesInvoice.html new file mode 100644 index 0000000000..3e24a50f30 --- /dev/null +++ b/accounts/Print Format/SalesInvoice/SalesInvoice.html @@ -0,0 +1,137 @@ +{%- if doc.letter_head -%} + {{ webnotes.conn.get_value("Letter Head", doc.letter_head, "content") }} +{%- endif -%} + + +
+ + + + + + + + + + + + + {%- for row in doclist.get({"doctype":"Sales Invoice Item"}) %} + + + + + + + + + + {% endfor -%} + +
SrItem NameDescriptionQtyUoMBasic RateAmount
{{ row.idx }}{{ row.item_name }}{{ row.description }}{{ row.qty }}{{ row.stock_uom }}{{ utils.fmt_money(row.export_rate) }}{{ utils.fmt_money(row.export_amount) }}
+
+ diff --git a/accounts/Print Format/SalesInvoice/SalesInvoice.txt b/accounts/Print Format/SalesInvoice/SalesInvoice.txt new file mode 100644 index 0000000000..d2b1cdbaf4 --- /dev/null +++ b/accounts/Print Format/SalesInvoice/SalesInvoice.txt @@ -0,0 +1,20 @@ +[ + { + "creation": "2013-03-21 15:24:28", + "docstatus": 0, + "modified": "2013-03-21 15:26:21", + "modified_by": "Administrator", + "owner": "Administrator" + }, + { + "doc_type": "Sales Invoice", + "doctype": "Print Format", + "module": "Accounts", + "name": "__common__", + "standard": "Yes" + }, + { + "doctype": "Print Format", + "name": "SalesInvoice" + } +] \ No newline at end of file diff --git a/public/js/website_utils.js b/public/js/website_utils.js index 65f7a69153..8462c3d98c 100644 --- a/public/js/website_utils.js +++ b/public/js/website_utils.js @@ -70,7 +70,8 @@ $(document).ready(function() { // update login var full_name = getCookie("full_name"); if(full_name) { - $("#user-tools").html(repl('%(full_name)s | \ + $("#user-tools").html(repl('%(full_name)s | \ + My Account | \ (%(count)s) | \ ', { full_name: full_name, diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js index 867a711fe4..d34261d65e 100644 --- a/selling/doctype/sales_common/sales_common.js +++ b/selling/doctype/sales_common/sales_common.js @@ -310,7 +310,8 @@ cur_frm.cscript.barcode = function(doc, cdt, cdn) { var callback = function(r, rt) { cur_frm.cscript.item_code(doc, cdt, cdn); } - get_server_fields('get_barcode_details', d.barcode, cur_frm.cscript.fname, doc, cdt, cdn, 1, callback); + get_server_fields('get_barcode_details', d.barcode, cur_frm.cscript.fname, + doc, cdt, cdn, 1, callback); } cur_frm.fields_dict[cur_frm.cscript.fname].grid.get_field('batch_no').get_query = diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py index 5009c4ee26..91b88a406e 100644 --- a/selling/doctype/sales_order/sales_order.py +++ b/selling/doctype/sales_order/sales_order.py @@ -352,4 +352,20 @@ class DocType(SellingController): return get_obj('Sales Common').get_item_list( self, is_stopped) def on_update(self): - pass \ No newline at end of file + pass + +@webnotes.whitelist() +def get_orders(): + # find customer id + customer = webnotes.conn.get_value("Contact", {"email_id": webnotes.session.user}, + "customer") + + if customer: + orders = webnotes.conn.sql("""select name, creation, currency from `tabSales Order` + where customer=%s""", customer, as_dict=1) + for order in orders: + order.items = webnotes.conn.sql("""select item_name, qty, export_rate, delivered_qty + from `tabSales Order Item` where parent=%s order by idx""", order.name, as_dict=1) + return orders + else: + return [] \ No newline at end of file diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py index 3cc565ef70..ebadeabc6f 100644 --- a/setup/doctype/backup_manager/backup_dropbox.py +++ b/setup/doctype/backup_manager/backup_dropbox.py @@ -113,7 +113,7 @@ def upload_file_to_dropbox(filename, folder, dropbox_client): while uploader.offset < size: try: uploader.upload_chunked() - finish(folder + '/' + os.path.basename(filename), overwrite='True') + uploader.finish(folder + '/' + os.path.basename(filename), overwrite='True') except rest.ErrorResponse, e: pass else: diff --git a/setup/doctype/global_defaults/global_defaults.py b/setup/doctype/global_defaults/global_defaults.py index 6f3ab4a71d..8709ab8d81 100644 --- a/setup/doctype/global_defaults/global_defaults.py +++ b/setup/doctype/global_defaults/global_defaults.py @@ -21,6 +21,7 @@ import webnotes.defaults from webnotes.utils import cint keydict = { + "print_style": "print_style", "fiscal_year": "current_fiscal_year", 'company': 'default_company', 'currency': 'default_currency', diff --git a/setup/doctype/global_defaults/global_defaults.txt b/setup/doctype/global_defaults/global_defaults.txt index 960da7e231..27bc85716b 100644 --- a/setup/doctype/global_defaults/global_defaults.txt +++ b/setup/doctype/global_defaults/global_defaults.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-02-19 12:28:27", + "creation": "2013-02-21 12:28:24", "docstatus": 0, - "modified": "2013-02-20 14:09:00", + "modified": "2013-03-21 15:42:59", "modified_by": "Administrator", "owner": "Administrator" }, @@ -27,8 +27,6 @@ "permlevel": 0 }, { - "amend": 0, - "cancel": 0, "create": 1, "doctype": "DocPerm", "name": "__common__", @@ -59,6 +57,19 @@ "fieldtype": "Data", "label": "Session Expiry" }, + { + "doctype": "DocField", + "fieldname": "column_break_3", + "fieldtype": "Column Break" + }, + { + "description": "For Server Side Print Formats", + "doctype": "DocField", + "fieldname": "print_style", + "fieldtype": "Select", + "label": "Print Format Style", + "options": "Standard\nClassic\nModern\nSpartan" + }, { "doctype": "DocField", "fieldname": "company", @@ -417,6 +428,11 @@ "fieldtype": "Data", "label": "SMS Sender Name" }, + { + "amend": 0, + "cancel": 0, + "doctype": "DocPerm" + }, { "doctype": "DocPerm" } diff --git a/setup/doctype/item_group/item_group.txt b/setup/doctype/item_group/item_group.txt index 5976be6ce5..d9c6ffedda 100644 --- a/setup/doctype/item_group/item_group.txt +++ b/setup/doctype/item_group/item_group.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-01-10 16:34:23", + "creation": "2013-01-23 20:00:16", "docstatus": 0, - "modified": "2013-01-22 14:56:03", + "modified": "2013-03-20 15:09:28", "modified_by": "Administrator", "owner": "Administrator" }, @@ -123,6 +123,13 @@ "fieldtype": "Text Editor", "label": "Description" }, + { + "doctype": "DocField", + "fieldname": "item_website_specifications", + "fieldtype": "Table", + "label": "Item Website Specifications", + "options": "Item Website Specification" + }, { "doctype": "DocField", "fieldname": "lft", @@ -174,6 +181,20 @@ "no_copy": 1, "print_hide": 1 }, + { + "cancel": 1, + "create": 1, + "doctype": "DocPerm", + "role": "System Manager", + "write": 1 + }, + { + "cancel": 1, + "create": 1, + "doctype": "DocPerm", + "role": "Material Master Manager", + "write": 1 + }, { "amend": 0, "cancel": 0, @@ -189,19 +210,5 @@ "doctype": "DocPerm", "role": "Material User", "write": 0 - }, - { - "cancel": 1, - "create": 1, - "doctype": "DocPerm", - "role": "System Manager", - "write": 1 - }, - { - "cancel": 1, - "create": 1, - "doctype": "DocPerm", - "role": "Material Master Manager", - "write": 1 } ] \ No newline at end of file diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js index 5b32a34c80..8b3e04484a 100644 --- a/stock/doctype/item/item.js +++ b/stock/doctype/item/item.js @@ -137,3 +137,17 @@ cur_frm.cscript.on_remove_attachment = function(doc) { + wn.meta.get_docfield(doc.doctype, "description_html").label); } }; + +cur_frm.cscript.copy_from_item_group = function(doc) { + wn.model.with_doc("Item Group", doc.item_group, function() { + $.each(wn.model.get("Item Website Specification", {parent:doc.item_group}), + function(i, d) { + var n = wn.model.add_child(doc, "Item Website Specification", + "item_website_specifications"); + n.label = d.label; + n.description = d.description; + } + ); + cur_frm.refresh(); + }); +} diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt index 036b9d54f6..b7f7be45ad 100644 --- a/stock/doctype/item/item.txt +++ b/stock/doctype/item/item.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-02-21 14:54:43", + "creation": "2013-03-07 15:53:11", "docstatus": 0, - "modified": "2013-03-06 16:02:47", + "modified": "2013-03-20 15:10:12", "modified_by": "Administrator", "owner": "Administrator" }, @@ -33,7 +33,6 @@ "parent": "Item", "parentfield": "permissions", "parenttype": "DocType", - "permlevel": 0, "read": 1, "report": 1, "submit": 0 @@ -785,6 +784,12 @@ "fieldname": "sb72", "fieldtype": "Section Break" }, + { + "doctype": "DocField", + "fieldname": "copy_from_item_group", + "fieldtype": "Button", + "label": "Copy From Item Group" + }, { "depends_on": "show_in_website", "doctype": "DocField", @@ -804,6 +809,24 @@ "cancel": 1, "create": 1, "doctype": "DocPerm", + "permlevel": 0, + "role": "System Manager", + "write": 1 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "permlevel": 1, + "role": "Material Master Manager", + "write": 0 + }, + { + "cancel": 1, + "create": 1, + "doctype": "DocPerm", + "permlevel": 0, "role": "Material Master Manager", "write": 1 }, @@ -812,6 +835,15 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", + "permlevel": 1, + "role": "System Manager" + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "permlevel": 1, "role": "Material Manager", "write": 0 }, @@ -820,6 +852,25 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", + "permlevel": 0, + "role": "Material Manager", + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "permlevel": 1, + "role": "Material User", + "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "permlevel": 0, "role": "Material User", "write": 0 } diff --git a/support/doctype/support_ticket/support_ticket.py b/support/doctype/support_ticket/support_ticket.py index 170497dd7f..1fe2c2d9d4 100644 --- a/support/doctype/support_ticket/support_ticket.py +++ b/support/doctype/support_ticket/support_ticket.py @@ -70,4 +70,11 @@ def set_status(name, status): st = webnotes.bean("Support Ticket", name) st.doc.status = status st.save() - + +@webnotes.whitelist() +def get_tickets(): + tickets = webnotes.conn.sql("""select name, subject, status from + `tabSupport Ticket` where raised_by=%s order by modified desc""", + webnotes.session.user, as_dict=1) + return tickets + diff --git a/website/css/website.css b/website/css/website.css index dc5b9670b3..25e2c91ac2 100644 --- a/website/css/website.css +++ b/website/css/website.css @@ -2,11 +2,10 @@ div.outer { padding: 30px; margin: 30px -30px 10px -30px; min-height: 400px; - overflow: hidden; } .outer .navbar { - margin: -30px -30px 10px -30px; + margin: -30px -30px 20px -30px; } footer { diff --git a/website/helpers/account.py b/website/helpers/account.py deleted file mode 100644 index 2bab370720..0000000000 --- a/website/helpers/account.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (c) 2012 Web Notes Technologies Pvt Ltd. -# License: GNU General Public License (v3). For more information see license.txt - -from __future__ import unicode_literals - -import webnotes -from webnotes.utils import cstr - -@webnotes.whitelist() -def get_orders(): - # find customer id - customer = webnotes.conn.get_value("Contact", {"email_id": webnotes.session.user}, - "customer") - - if customer: - orders = webnotes.conn.sql("""select name, creation, currency from `tabSales Order` - where customer=%s""", customer, as_dict=1) - for order in orders: - order.items = webnotes.conn.sql("""select item_name, qty, export_rate, delivered_qty - from `tabSales Order Item` where parent=%s order by idx""", order.name, as_dict=1) - return orders - else: - return [] \ No newline at end of file diff --git a/website/templates/html/base.html b/website/templates/html/base.html index 2719f8db36..6889d6707a 100644 --- a/website/templates/html/base.html +++ b/website/templates/html/base.html @@ -10,21 +10,18 @@ - - {% if favicon %} + {%- if favicon %} {% else %} - {% endif %} - - {% if description %} + {% endif -%} + {% if description -%} - {% endif %} - - {% block header %} - {% endblock %} + {%- endif %} + {% block header -%} + {%- endblock %} {% block body %} diff --git a/website/templates/html/navbar.html b/website/templates/html/navbar.html index 4663a2f964..55e8094b3d 100644 --- a/website/templates/html/navbar.html +++ b/website/templates/html/navbar.html @@ -1,7 +1,6 @@ -