[design] list views

This commit is contained in:
Rushabh Mehta
2015-01-05 17:38:48 +05:30
parent 9b955feff8
commit e1cb0ae738
53 changed files with 1587 additions and 1767 deletions

View File

@@ -78,7 +78,7 @@
"icon": "icon-archive",
"idx": 1,
"max_attachments": 5,
"modified": "2014-12-15 17:37:01.781726",
"modified": "2015-01-05 16:11:40.125703",
"modified_by": "Administrator",
"module": "Stock",
"name": "Batch",
@@ -97,5 +97,6 @@
"submit": 0,
"write": 1
}
]
],
"title_field": "item"
}

View File

@@ -1,21 +1,18 @@
<div class="row" style="max-height: 30px;">
<div class="col-xs-12">
<div class="text-ellipsis">
{%= list.get_avatar_and_id(doc) %}
<span class="filterable" style="margin-right: 8px;"
data-filter="item,=,{%= doc.item %}">
{%= doc.item %}</span>
{% if(doc.expiry_date && frappe.datetime.get_diff(doc.expiry_date) <= 0) { %}
<span class="label label-danger filterable"
data-filter="expiry_date,>=,Today">
{%= __("Expired") %}: {%= doc.get_formatted("expiry_date") %}
</span>
{% } else if(doc.expiry_date) { %}
<span class="label label-default filterable"
data-filter="expiry_date,=,{%= doc.expiry_date %}">
{%= __("Expiry") %}: {%= doc.get_formatted("expiry_date") %}
</span>
{% } %}
</div>
<div class="col-xs-12 col-sm-9 text-ellipsis">
{%= list.get_avatar_and_id(doc) %}
</div>
<div class="col-sm-3 hidden-xs text-ellipsis">
{% if(doc.expiry_date && frappe.datetime.get_diff(doc.expiry_date) <= 0) { %}
<span class="indicator red filterable"
data-filter="expiry_date,>=,Today">
{%= __("Expired") %}
</span>
{% } else if(doc.expiry_date) { %}
<span class="indicator darkgrey filterable"
data-filter="expiry_date,=,{%= doc.expiry_date %}" title="{%= __("Expiry Date") %}">
{%= doc.get_formatted("expiry_date") %}
</span>
{% } %}
</div>
</div>

View File

@@ -1013,7 +1013,7 @@
"idx": 1,
"in_create": 0,
"is_submittable": 1,
"modified": "2015-01-01 14:30:01.408528",
"modified": "2015-01-05 15:51:31.663904",
"modified_by": "Administrator",
"module": "Stock",
"name": "Delivery Note",
@@ -1098,5 +1098,6 @@
"read_only_onload": 1,
"search_fields": "status,customer,customer_name, territory,grand_total",
"sort_field": "modified",
"sort_order": "DESC"
"sort_order": "DESC",
"title_field": "customer_name"
}

View File

@@ -1,29 +1,26 @@
<div class="row" style="max-height: 30px;">
<div class="col-xs-9">
<div class="col-xs-8">
<div class="text-ellipsis">
{%= list.get_avatar_and_id(doc) %}
<span style="margin-right: 8px; display: inline-block">
<span class="filterable"
data-filter="customer,=,{%= doc.customer %}">
{%= doc.customer_name %}</span></span>
{% if(doc.transporter_name) { %}
<span style="margin-right: 8px;"
title="{%= doc.transporter_name %}" class="filterable"
data-filter="transporter_name,=,{%= doc.transporter_name %}">
<i class="icon-truck text-muted"></i>
</span>
{% } %}
{% if(doc.docstatus===0) { %}
<span class="label label-danger filterable"
data-filter="docstatus,=,0">{%= __("Draft") %}</span>
{% } %}
{% if(doc.transporter_name) { %}
<span style="margin-right: 8px;"
title="{%= doc.transporter_name %}" class="filterable"
data-filter="transporter_name,=,{%= doc.transporter_name %}">
<i class="icon-truck text-muted"></i>
</span>
{% } %}
</div>
</div>
<div class="col-xs-1 text-right">
{% var completed = doc.per_installed, title=__("% Installed") %}
{% include "templates/form_grid/includes/progress.html" %}
</div>
<div class="col-xs-2 text-right">
<div class="col-sm-2 hidden-xs">
{% if(doc.docstatus===0) { %}
<span class="indicator red filterable"
data-filter="docstatus,=,0">{%= __("Draft") %}</span>
{% } else if(doc.docstatus===1) { %}
<span class="indicator blue filterable"
data-filter="docstatus,=,1">{%= __("Delivered") %}</span>
{% } %}
</div>
<div class="col-sm-2 hidden-xs text-right">
<div class="text-ellipsis" title="{%= doc.get_formatted('grand_total_export') %}">
{%= doc.get_formatted("grand_total_export") %}
</div>

View File

@@ -1,4 +1,4 @@
frappe.listview_settings['Delivery Note'] = {
add_fields: ["customer", "customer_name", "grand_total", "per_installed",
"transporter_name"]
"transporter_name", "grand_total_export"]
};

View File

@@ -1,51 +1,18 @@
<div class="row">
<div class="col-xs-11">
<div class="col-xs-11 col-sm-9">
<div class="text-ellipsis">
{%= list.get_avatar_and_id(doc) %}
{% if(doc.item_name != doc.name) { %}
<span style="margin-right: 8px;">{%= doc.item_name %}</span>
{% } %}
{% if(doc.is_stock_item==="Yes") { %}
<span style="margin-right: 8px;"
title="{%= __("Stock Item") %}" class="filterable"
data-filter="is_stock_item,=,Yes">
<i class="icon-inbox text-muted"></i>
</span>
{% } %}
{% if(doc.is_sales_item==="Yes") { %}
<span style="margin-right: 8px;"
title="{%= __("Sales Item") %}" class="filterable"
data-filter="is_sales_item,=,Yes">
<i class="icon-tag text-muted"></i>
</span>
{% } %}
{% if(doc.is_purchase_item==="Yes") { %}
<span style="margin-right: 8px;"
title="{%= __("Purchase Item") %}" class="filterable"
data-filter="is_purchase_item,=,Yes">
<i class="icon-shopping-cart text-muted"></i>
</span>
{% } %}
{% if(doc.default_bom==="Yes") { %}
<span style="margin-right: 8px;"
title="{%= __("Manufactured Item") %}" class="filterable"
data-filter="default_bom,=,{%= doc.default_bom %}">
<i class="icon-site-map text-muted"></i>
</span>
{% } %}
{% if(doc.show_in_website) { %}
<span style="margin-right: 8px;"
title="{%= __("Shown in Website") %}" class="filterable"
data-filter="show_in_website,=,Yes">
<i class="icon-globe text-muted"></i>
</span>
{% } %}
<span class="label label-info filterable"
data-filter="item_group,=,{%= doc.item_group %}">
{%= doc.item_group %}</span>
</div>
</div>
<div class="col-xs-1">
<div class="hidden-xs col-sm-2 text-ellipsis">
<span class="indicator darkgrey filterable"
data-filter="item_group,=,{%= doc.item_group %}">
{%= doc.item_group %}</span>
</div>
<div class="col-xs-1 col-sm-1">
{% if(doc.image) { %}
<img src="{%= doc.image %}" class="img-responsive" style="margin-bottom: 4px;">
{% } %}

View File

@@ -22,10 +22,8 @@ erpnext.buying.MaterialRequestController = erpnext.buying.BuyingController.exten
cur_frm.dashboard.reset();
if(doc.docstatus===1) {
if(doc.status==="Stopped") {
cur_frm.dashboard.set_headline_alert(__("Stopped"), "alert-danger", "icon-stop")
cur_frm.dashboard.set_headline_alert(__("Stopped"), "alert-danger", "octicon octicon-circle-slash")
}
cur_frm.dashboard.add_progress(cint(doc.per_ordered) + "% "
+ __("Fulfilled"), cint(doc.per_ordered));
}
if(doc.docstatus==0) {

View File

@@ -235,7 +235,7 @@
"icon": "icon-ticket",
"idx": 1,
"is_submittable": 1,
"modified": "2014-12-24 14:28:14.548275",
"modified": "2015-01-05 15:17:13.466750",
"modified_by": "Administrator",
"module": "Stock",
"name": "Material Request",
@@ -303,5 +303,6 @@
"read_only_onload": 1,
"search_fields": "status,transaction_date",
"sort_field": "modified",
"sort_order": "DESC"
"sort_order": "DESC",
"title_field": "material_request_type"
}

View File

@@ -1,28 +1,20 @@
<div class="row" style="max-height: 30px;">
<div class="col-xs-10">
<div class="text-ellipsis">
{%= list.get_avatar_and_id(doc) %}
<span style="margin-right: 8px; display: inline-block"
title="{%= doc.material_request_type %}" class="filterable"
data-filter="material_request_type,=,{%= doc.material_request_type %}">
{% if(doc.material_request_type==="Purchase") { %}
<i class="icon-shopping-cart"></i>
{% } else { %}
<i class="icon-truck"></i>
{% } %}
</span>
{% if(doc.status=="Draft") { %}
<span class="label label-danger"
data-filter="status,=,{%= doc.status %}">{%= doc.status %}</span>
{% } %}
{% if(doc.status=="Submitted" && doc.per_ordered < 100) { %}
<span class="label label-warning filterable"
data-filter="per_ordered,<,100">{%= __("Pending") %}</span>
{% } %}
</div>
<div class="col-sm-10 col-xs-12 text-ellipsis">
{%= list.get_avatar_and_id(doc) %}
</div>
<div class="col-xs-2">
{% var completed = doc.per_ordered, title = __("Ordered") %}
{% include "templates/form_grid/includes/progress.html" %}
<div class="col-sm-2 hidden-xs">
{% if(doc.status=="Draft") { %}
<span class="indicator red filterable"
data-filter="status,=,{%= doc.status %}">{%= doc.status %}</span>
{% } else if(doc.status=="Submitted" && doc.per_ordered < 100) { %}
<span class="indicator orange filterable"
data-filter="per_ordered,<,100">{%= __("Pending") %}</span>
{% } else if(doc.status=="Submitted" && doc.per_ordered == 100) { %}
<span class="indicator blue filterable"
data-filter="per_ordered,=,100">{%= __("Completed") %}</span>
{% } else if(doc.status=="Stopped") { %}
<span class="indicator red filterable"
data-filter="status,=,Stopped">{%= __("Stopped") %}</span>
{% } %}
</div>
</div>

View File

@@ -22,23 +22,6 @@
"permlevel": 0,
"read_only": 0
},
{
"default": "Not Available",
"description": "Only Serial Nos with status \"Available\" can be delivered.",
"fieldname": "status",
"fieldtype": "Select",
"in_filter": 1,
"in_list_view": 1,
"label": "Status",
"no_copy": 1,
"oldfieldname": "status",
"oldfieldtype": "Select",
"options": "Not Available\nAvailable\nDelivered\nPurchase Returned\nSales Returned",
"permlevel": 0,
"read_only": 1,
"reqd": 1,
"search_index": 1
},
{
"fieldname": "serial_no",
"fieldtype": "Data",
@@ -66,6 +49,23 @@
"reqd": 1,
"search_index": 0
},
{
"default": "Not Available",
"description": "Only Serial Nos with status \"Available\" can be delivered.",
"fieldname": "status",
"fieldtype": "Select",
"in_filter": 1,
"in_list_view": 1,
"label": "Status",
"no_copy": 1,
"oldfieldname": "status",
"oldfieldtype": "Select",
"options": "Not Available\nAvailable\nDelivered\nPurchase Returned\nSales Returned",
"permlevel": 0,
"read_only": 1,
"reqd": 1,
"search_index": 1
},
{
"description": "Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt",
"fieldname": "warehouse",
@@ -91,7 +91,7 @@
{
"fieldname": "item_name",
"fieldtype": "Data",
"in_list_view": 1,
"in_list_view": 0,
"label": "Item Name",
"permlevel": 0,
"read_only": 1
@@ -417,7 +417,7 @@
"icon": "icon-barcode",
"idx": 1,
"in_create": 0,
"modified": "2015-01-01 14:30:05.865206",
"modified": "2015-01-05 16:03:49.825174",
"modified_by": "Administrator",
"module": "Stock",
"name": "Serial No",

View File

@@ -1,28 +0,0 @@
<div class="row" style="max-height: 30px;">
<div class="col-xs-12">
<div class="text-ellipsis">
{%= list.get_avatar_and_id(doc) %}
<span class="filterable" style="margin-right: 8px;"
data-filter="item_code,=,{%= doc.item_code %}">
{%= doc.item_code %}</span>
{% var icon = {
"Available": ["icon-ok", "label-success"],
"Not Available": ["icon-remove", "label-danger"],
"Delivered": ["icon-truck", "label-success"],
"Purchase Returned": ["icon-retweet", "label-warning"],
"Sales Returned": ["icon-retweet", "label-warning"],
}[doc.status]; %}
<span class="label {%= icon[1] %} filterable"
data-filter="status,=,{%= doc.status %}"
title="{%= doc.purpose %}">
<i class="{%= icon[0] %}"></i> {%= doc.status %}
</span>
{% if(doc.warehouse) { %}
<span class="label label-default filterable"
data-filter="warehouse,=,{%= doc.warehouse %}">
{%= doc.warehouse %}
</span>
{% } %}
</div>
</div>
</div>

View File

@@ -1,3 +0,0 @@
frappe.listview_settings['Serial No'] = {
add_fields: ["status", "item_code", "warehouse"]
};

View File

@@ -587,7 +587,7 @@
"is_submittable": 1,
"issingle": 0,
"max_attachments": 0,
"modified": "2014-12-24 16:43:51.886121",
"modified": "2015-01-05 15:28:49.649079",
"modified_by": "Administrator",
"module": "Stock",
"name": "Stock Entry",
@@ -656,5 +656,6 @@
"read_only_onload": 0,
"search_fields": "posting_date, from_warehouse, to_warehouse, purpose, remarks",
"sort_field": "modified",
"sort_order": "DESC"
"sort_order": "DESC",
"title_field": "purpose"
}

View File

@@ -1,51 +1,24 @@
<div class="row" style="max-height: 30px;">
<div class="col-xs-12">
<div class="col-xs-12 col-sm-8">
<div class="text-ellipsis">
{%= list.get_avatar_and_id(doc) %}
{% var icon = {
"Material Issue": "icon-arrow-right",
"Material Receipt": "icon-arrow-left",
"Material Transfer": "icon-resize-horizontal",
"Manufacture": "icon-wrench",
"Repack": "icon-wrench",
"Sales Return": "icon-warning-sign",
"Purchase Return": "icon-warning-sign",
"Subcontract": "icon-truck"
}[doc.purpose]; %}
<span class="label label-info filterable"
data-filter="purpose,=,{%= doc.purpose %}"
title="{%= doc.purpose %}">
<i class="{%= icon %}"></i>
</span>
{% if(doc.from_warehouse) { %}
<span class="label label-default filterable"
data-filter="from_warehouse,=,{%= doc.from_warehouse %}">
{%= doc.from_warehouse %}
</span>
{% } %}
{% if(doc.from_warehouse || doc.to_warehouse) { %}
<i class="icon-arrow-right text-muted"></i>
{% } %}
{% if(doc.to_warehouse) { %}
<span class="label label-primary filterable"
data-filter="to_warehouse,=,{%= doc.to_warehouse %}">
{%= doc.to_warehouse %}
</span>
{% } %}
{% if(doc.production_order) { %}
<span class="label label-info filterable"
data-filter="production_order,=,{%= doc.production_order %}"
title="{%= doc.production_order %}">
<i class="icon-wrench"></i>
</span>
{% } %}
{% if(doc.bom_no) { %}
<span class="label label-info filterable"
data-filter="bom_no,=,{%= doc.bom_no %}"
title="{%= doc.bom_no %}">
<i class="icon-sitemap"></i>
</span>
{% } %}
</div>
</div>
<div class="col-sm-4 hidden-xs">
{% if(doc.from_warehouse) { %}
<span class="label label-default filterable"
data-filter="from_warehouse,=,{%= doc.from_warehouse %}">
{%= doc.from_warehouse %}
</span>
{% } %}
{% if(doc.from_warehouse || doc.to_warehouse) { %}
<i class="octicon octicon-arrow-right text-muted"></i>
{% } %}
{% if(doc.to_warehouse) { %}
<span class="label label-primary filterable"
data-filter="to_warehouse,=,{%= doc.to_warehouse %}">
{%= doc.to_warehouse %}
</span>
{% } %}
</div>
</div>

View File

@@ -1,223 +1,224 @@
{
"allow_import": 1,
"allow_rename": 1,
"creation": "2013-03-07 18:50:32",
"description": "A logical Warehouse against which stock entries are made.",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"allow_import": 1,
"allow_rename": 1,
"creation": "2013-03-07 18:50:32",
"description": "A logical Warehouse against which stock entries are made.",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "warehouse_detail",
"fieldtype": "Section Break",
"label": "Warehouse Detail",
"oldfieldtype": "Section Break",
"permlevel": 0,
"fieldname": "warehouse_detail",
"fieldtype": "Section Break",
"label": "Warehouse Detail",
"oldfieldtype": "Section Break",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "warehouse_name",
"fieldtype": "Data",
"label": "Warehouse Name",
"oldfieldname": "warehouse_name",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 0,
"fieldname": "warehouse_name",
"fieldtype": "Data",
"label": "Warehouse Name",
"oldfieldname": "warehouse_name",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 0,
"reqd": 1
},
},
{
"fieldname": "company",
"fieldtype": "Link",
"in_filter": 1,
"label": "Company",
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "Company",
"permlevel": 0,
"read_only": 0,
"reqd": 1,
"fieldname": "company",
"fieldtype": "Link",
"in_filter": 1,
"label": "Company",
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "Company",
"permlevel": 0,
"read_only": 0,
"reqd": 1,
"search_index": 1
},
},
{
"depends_on": "eval:sys_defaults.auto_accounting_for_stock",
"description": "Account for the warehouse (Perpetual Inventory) will be created under this Account.",
"fieldname": "create_account_under",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Parent Account",
"options": "Account",
"depends_on": "eval:sys_defaults.auto_accounting_for_stock",
"description": "Account for the warehouse (Perpetual Inventory) will be created under this Account.",
"fieldname": "create_account_under",
"fieldtype": "Link",
"in_list_view": 0,
"label": "Parent Account",
"options": "Account",
"permlevel": 0
},
},
{
"fieldname": "disabled",
"fieldtype": "Check",
"label": "Disabled",
"fieldname": "disabled",
"fieldtype": "Check",
"label": "Disabled",
"permlevel": 0
},
},
{
"description": "For Reference Only.",
"fieldname": "warehouse_contact_info",
"fieldtype": "Section Break",
"label": "Warehouse Contact Info",
"permlevel": 0,
"description": "For Reference Only.",
"fieldname": "warehouse_contact_info",
"fieldtype": "Section Break",
"label": "Warehouse Contact Info",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "email_id",
"fieldtype": "Data",
"hidden": 1,
"label": "Email Id",
"oldfieldname": "email_id",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"fieldname": "email_id",
"fieldtype": "Data",
"hidden": 1,
"label": "Email Id",
"oldfieldname": "email_id",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"read_only": 0
},
},
{
"fieldname": "phone_no",
"fieldtype": "Data",
"label": "Phone No",
"oldfieldname": "phone_no",
"oldfieldtype": "Int",
"options": "Phone",
"permlevel": 0,
"fieldname": "phone_no",
"fieldtype": "Data",
"label": "Phone No",
"oldfieldname": "phone_no",
"oldfieldtype": "Int",
"options": "Phone",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "mobile_no",
"fieldtype": "Data",
"label": "Mobile No",
"oldfieldname": "mobile_no",
"oldfieldtype": "Int",
"options": "Phone",
"permlevel": 0,
"fieldname": "mobile_no",
"fieldtype": "Data",
"label": "Mobile No",
"oldfieldname": "mobile_no",
"oldfieldtype": "Int",
"options": "Phone",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "address_line_1",
"fieldtype": "Data",
"label": "Address Line 1",
"oldfieldname": "address_line_1",
"oldfieldtype": "Data",
"permlevel": 0,
"fieldname": "address_line_1",
"fieldtype": "Data",
"in_list_view": 0,
"label": "Address Line 1",
"oldfieldname": "address_line_1",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "address_line_2",
"fieldtype": "Data",
"label": "Address Line 2",
"oldfieldname": "address_line_2",
"oldfieldtype": "Data",
"permlevel": 0,
"fieldname": "address_line_2",
"fieldtype": "Data",
"label": "Address Line 2",
"oldfieldname": "address_line_2",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "city",
"fieldtype": "Data",
"in_list_view": 1,
"label": "City",
"oldfieldname": "city",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 0,
"fieldname": "city",
"fieldtype": "Data",
"in_list_view": 1,
"label": "City",
"oldfieldname": "city",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 0,
"reqd": 0
},
},
{
"fieldname": "state",
"fieldtype": "Data",
"label": "State",
"oldfieldname": "state",
"oldfieldtype": "Select",
"permlevel": 0,
"fieldname": "state",
"fieldtype": "Data",
"label": "State",
"oldfieldname": "state",
"oldfieldtype": "Select",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "pin",
"fieldtype": "Int",
"label": "PIN",
"oldfieldname": "pin",
"oldfieldtype": "Int",
"permlevel": 0,
"fieldname": "pin",
"fieldtype": "Int",
"label": "PIN",
"oldfieldname": "pin",
"oldfieldtype": "Int",
"permlevel": 0,
"read_only": 0
}
],
"icon": "icon-building",
"idx": 1,
"modified": "2014-09-15 02:55:16.750848",
"modified_by": "Administrator",
"module": "Stock",
"name": "Warehouse",
"owner": "Administrator",
],
"icon": "icon-building",
"idx": 1,
"modified": "2015-01-05 15:58:43.046509",
"modified_by": "Administrator",
"module": "Stock",
"name": "Warehouse",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Material Master Manager",
"submit": 0,
"amend": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Material Master Manager",
"submit": 0,
"write": 1
},
},
{
"amend": 0,
"apply_user_permissions": 1,
"create": 0,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Material User",
"submit": 0,
"amend": 0,
"apply_user_permissions": 1,
"create": 0,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Material User",
"submit": 0,
"write": 0
},
},
{
"apply_user_permissions": 1,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"apply_user_permissions": 1,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Sales User"
},
},
{
"apply_user_permissions": 1,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"apply_user_permissions": 1,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Purchase User"
},
},
{
"apply_user_permissions": 1,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"apply_user_permissions": 1,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts User"
},
},
{
"apply_user_permissions": 1,
"permlevel": 0,
"read": 1,
"apply_user_permissions": 1,
"permlevel": 0,
"read": 1,
"role": "Manufacturing User"
}
]
}
}