Update entity properties
diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index 01f71c9..b2a98b4 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -35,15 +35,17 @@
# get categories info with parent category and stuff
connection = get_client_connection()
categories = connection.get_list('Hub Category', filters={'parent_hub_category': parent})
- # print("============================================================")
- # print(categories)
+
response = [{'value': c.get('name'), 'expandable': c.get('is_group')} for c in categories]
return response
- # return [
- # {'value': 'Men', 'expandable': 1},
- # {'value': 'Women', 'expandable': 0}
- # ]
+@frappe.whitelist()
+def update_category(item_name, category):
+ connection = get_hub_connection()
+ response = connection.update('Hub Item', dict(
+ hub_category = category
+ ), item_name)
+ return response.ok
@frappe.whitelist()
def get_details(hub_sync_id=None, doctype='Hub Item'):
@@ -53,11 +55,6 @@
details = connection.get_doc(doctype, hub_sync_id)
return details
-# @frappe.whitelist()
-# def get_company_details(hub_sync_id):
-# connection = get_client_connection()
-# return connection.get_doc('Hub Company', hub_sync_id)
-
def get_client_connection():
# frappeclient connection
hub_connection = get_hub_connection()
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 45a5b11..69d8a47 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -484,7 +484,7 @@
erpnext.patches.v10_0.update_asset_calculate_depreciation
erpnext.patches.v10_0.add_guardian_role_for_parent_portal
erpnext.patches.v10_0.set_numeric_ranges_in_template_if_blank
-#erpnext.patches.v10_0.update_reserved_qty_for_purchase_order
+erpnext.patches.v10_0.update_reserved_qty_for_purchase_order
erpnext.patches.v10_0.fichier_des_ecritures_comptables_for_france
erpnext.patches.v10_0.update_assessment_plan
erpnext.patches.v10_0.update_assessment_result
@@ -493,4 +493,4 @@
erpnext.patches.v10_0.set_default_payment_terms_based_on_company
erpnext.patches.v10_0.update_sales_order_link_to_purchase_order
erpnext.patches.v10_0.added_extra_gst_custom_field_in_gstr2
-#erpnext.patches.v10_0.item_barcode_childtable_migrate
+erpnext.patches.v10_0.item_barcode_childtable_migrate
diff --git a/erpnext/public/js/hub/hub_factory.js b/erpnext/public/js/hub/hub_factory.js
index 0318c99..1578e4d 100644
--- a/erpnext/public/js/hub/hub_factory.js
+++ b/erpnext/public/js/hub/hub_factory.js
@@ -15,30 +15,33 @@
'/assets/erpnext/css/hub.css',
]
};
+ frappe.model.with_doc('Hub Settings', 'Hub Settings', () => {
+ this.hub_settings = frappe.get_doc('Hub Settings');
- if (!erpnext.hub.pages[page_name]) {
- if (!route[2]) {
- // page === 'Item' &&
- frappe.require(assets['List'], () => {
- erpnext.hub.pages[page_name] = new erpnext.hub[page+'Listing']({
- doctype: 'Hub Settings',
- parent: this.make_page(true, page_name)
+ if (!erpnext.hub.pages[page_name]) {
+ if (!route[2]) {
+ frappe.require(assets['List'], () => {
+ erpnext.hub.pages[page_name] = new erpnext.hub[page+'Listing']({
+ parent: this.make_page(true, page_name),
+ hub_settings: this.hub_settings
+ });
+ window.hub_page = erpnext.hub.pages[page_name];
});
- window.hub_page = erpnext.hub.pages[page_name];
- });
+ } else {
+ frappe.require(assets['Form'], () => {
+ erpnext.hub.pages[page_name] = new erpnext.hub[page+'Page']({
+ unique_id: route[2],
+ doctype: route[2],
+ parent: this.make_page(true, page_name),
+ hub_settings: this.hub_settings
+ });
+ window.hub_page = erpnext.hub.pages[page_name];
+ });
+ }
} else {
- frappe.require(assets['Form'], () => {
- erpnext.hub.pages[page_name] = new erpnext.hub[page+'Page']({
- unique_id: route[2],
- doctype: 'Hub Settings',
- parent: this.make_page(true, page_name)
- });
- window.hub_page = erpnext.hub.pages[page_name];
- });
+ frappe.container.change_to(page_name);
+ window.hub_page = erpnext.hub.pages[page_name];
}
- } else {
- frappe.container.change_to(page_name);
- window.hub_page = erpnext.hub.pages[page_name];
- }
+ });
}
});
diff --git a/erpnext/public/js/hub/hub_form.js b/erpnext/public/js/hub/hub_form.js
index eb7c6b4..fe39793 100644
--- a/erpnext/public/js/hub/hub_form.js
+++ b/erpnext/public/js/hub/hub_form.js
@@ -4,11 +4,11 @@
setup_defaults() {
super.setup_defaults();
this.method = 'erpnext.hub_node.get_details';
- //doctype, unique_id,
+ const route = frappe.get_route();
+ this.page_name = route[2];
}
set_breadcrumbs() {
- this.set_title();
frappe.breadcrumbs.add({
label: __('Hub'),
route: '#Hub/' + this.doctype,
@@ -16,10 +16,6 @@
});
}
- set_title() {
- this.page_title = this.data.item_name || this.hub_item_code || 'Hub' + this.doctype;
- }
-
setup_side_bar() {
this.sidebar = new frappe.ui.Sidebar({
wrapper: this.$page.find('.layout-side-section'),
@@ -56,15 +52,7 @@
label: image_html
});
- let fields = [];
- this.fields.map(fieldname => {
- fields.push({
- label: toTitle(frappe.model.unscrub(fieldname)),
- fieldname,
- fieldtype: 'Data',
- read_only: 1
- });
- });
+ let fields = this.get_field_configs();
this.form = new frappe.ui.FieldGroup({
parent: this.$result,
@@ -93,39 +81,51 @@
this.image_field_name = 'image';
}
- setup_fields() {
- this.fields = ['hub_item_code', 'item_name', 'item_code', 'description',
- 'seller', 'company_name', 'country', 'hub_category'];
+ get_field_configs() {
+ let fields = [];
+ this.fields.map(fieldname => {
+ fields.push({
+ label: toTitle(frappe.model.unscrub(fieldname)),
+ fieldname,
+ fieldtype: 'Data',
+ read_only: 1
+ });
+ });
+
+ let category_field = {
+ label: 'Hub Category',
+ fieldname: 'hub_category',
+ fieldtype: 'Data'
+ }
+
+ if(this.data.company_name === this.hub_settings.company) {
+ this.page.set_primary_action(__('Update'), () => {
+ this.update_on_hub();
+ }, 'octicon octicon-plus');
+ } else {
+ category_field.read_only = 1;
+ }
+
+ fields.push(category_field);
+
+ return fields;
}
- show_action_modal(item) {
- return new Promise(res => {
- let fields = [
- { label: __('Item Code'), fieldtype: 'Data', fieldname: 'item_code', default: item.item_code },
- { fieldtype: 'Column Break' },
- { label: __('Item Group'), fieldtype: 'Link', fieldname: 'item_group', default: item.item_group },
- { label: __('Supplier Details'), fieldtype: 'Section Break' },
- { label: __('Supplier Name'), fieldtype: 'Data', fieldname: 'supplier_name', default: item.company_name },
- { label: __('Supplier Email'), fieldtype: 'Data', fieldname: 'supplier_email', default: item.seller },
- { fieldtype: 'Column Break' },
- { label: __('Supplier Type'), fieldname: 'supplier_type',
- fieldtype: 'Link', options: 'Supplier Type' }
- ];
- fields = fields.map(f => { f.reqd = 1; return f; });
-
- const d = new frappe.ui.Dialog({
- title: __('Request for Quotation'),
- fields: fields,
- primary_action_label: __('Send'),
- primary_action: (values) => {
- res(values);
- d.hide();
- }
- });
-
- d.show();
+ update_on_hub() {
+ return new Promise((resolve, reject) => {
+ frappe.call({
+ method: 'erpnext.hub_node.update_category',
+ args: { item: this.unique_id, category: this.form.get_value('hub_category') },
+ callback: resolve,
+ freeze: true
+ }).fail(reject);
});
}
+
+ setup_fields() {
+ this.fields = ['hub_item_code', 'item_name', 'item_code', 'description',
+ 'seller', 'company_name', 'country'];
+ }
}
erpnext.hub.CompanyPage = class CompanyPage extends erpnext.hub.HubForm{
@@ -135,6 +135,20 @@
this.image_field_name = 'company_logo';
}
+ get_field_configs() {
+ let fields = [];
+ this.fields.map(fieldname => {
+ fields.push({
+ label: toTitle(frappe.model.unscrub(fieldname)),
+ fieldname,
+ fieldtype: 'Data',
+ read_only: 1
+ });
+ });
+
+ return fields;
+ }
+
setup_fields() {
this.fields = ['company_name', 'description', 'route', 'country', 'seller', 'site_name'];
}
diff --git a/erpnext/public/js/hub/hub_page.js b/erpnext/public/js/hub/hub_page.js
index beea480..f333fee 100644
--- a/erpnext/public/js/hub/hub_page.js
+++ b/erpnext/public/js/hub/hub_page.js
@@ -126,6 +126,21 @@
this.update_category(node.label);
}
});
+
+ this.sidebar.add_item({
+ label: this.hub_settings.company,
+ on_click: () => frappe.set_route('Form', 'Company', this.hub_settings.company)
+ }, __("Account"));
+
+ this.sidebar.add_item({
+ label: __('Companies'),
+ on_click: () => frappe.set_route('Hub', 'Company')
+ });
+
+ this.sidebar.add_item({
+ label: __("My Orders"),
+ on_click: () => frappe.set_route('List', 'Request for Quotation')
+ }, __("Account"));
}
update_category(label) {
@@ -171,9 +186,10 @@
<h5 class="bold">
${ title }
</h5>
- <p>${ company_name }</p>
+
</div>
</a>
+ <a href="${'#Hub/Company/'+company_name}"><p>${ company_name }</p></a>
</div>
`;
}