3 "name": "Pman.Tab.XtuplePriceLists",
4 "parent": "Pman.Tab.XtupleManage",
5 "title": "Pman.Tab.XtuplePriceLists",
6 "path": "/home/edward/gitlive/web.xtuple/Pman/Xtuple/Pman.Tab.XtuplePriceLists.bjs",
13 "title": "Price List",
14 "xtype": "NestedLayoutPanel",
19 "xtype": "BorderLayout",
24 "xtype": "LayoutRegion",
31 "xtype": "LayoutRegion",
36 "|activate": "function() {\n _this.panel = this;\n if (_this.grid) {\n _this.grid.footer.onClick('first');\n }\n}"
42 "tableName": "ipshead",
43 "title": "Price Lists",
49 "|render": "function() \n{\n _this.grid = this; \n _this.dialog = Pman.Dialog.XtuplePriceList\n if (_this.panel.active) {\n this.footer.onClick('first');\n }\n}",
50 "|rowdblclick": "function (_self, rowIndex, e)\n{\n if (!_this.dialog) return;\n _this.dialog.show( this.getDataSource().getAt(rowIndex).data, function() {\n _this.grid.footer.onClick('first');\n }); \n \n}\n"
53 "autoExpandColumn": "ipshead_descrip",
61 "xtype": "RowSelectionModel",
65 "*prop": "dataSource",
68 "|sortInfo": "{ field : 'ipshead_name', direction: 'ASC' }",
75 "|url": "baseURL + '/Roo/ipshead.php'",
80 "xtype": "JsonReader",
81 "totalProperty": "total",
85 "|fields": "[\n {\n 'name': 'ipshead_id',\n 'type': 'int'\n },\n {\n 'name': 'ipshead_name',\n 'type': 'string'\n },\n {\n 'name': 'ipshead_descrip',\n 'type': 'string'\n },\n {\n 'name': 'ipshead_effective',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'ipshead_expires',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'ipshead_curr_id',\n 'type': 'int'\n },\n {\n 'name': 'ipshead_updated',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'ipshead_curr_id_curr_id',\n 'type': 'int'\n },\n {\n 'name': 'ipshead_curr_id_curr_base',\n 'type': 'int'\n },\n {\n 'name': 'ipshead_curr_id_curr_name',\n 'type': 'string'\n },\n {\n 'name': 'ipshead_curr_id_curr_symbol',\n 'type': 'string'\n },\n {\n 'name': 'ipshead_curr_id_curr_abbr',\n 'type': 'string'\n }\n]"
92 "displayMsg": "Displaying ipshead{0} - {1} of {2}",
93 "emptyMsg": "No ipshead found",
95 "xtype": "PagingToolbar",
105 "click": "function (_self, e)\n{\n new Pman.Download({\n method: 'GET',\n url : baseURL + '/Roo/Ipsiteminfo',\n params : {\n _pricegrid : 1\n }\n });\n}"
107 "text": "Download Price Matrix",
109 "|xns": "Roo.Toolbar"
113 "click": "function (_self, e)\n{\n Pman.Dialog.Image.show(\n {\n _url : baseURL+'/Xtuple/Pricing'\n \n },\n function (data) {\n var msg = [];\n if (data.deleted) {\n msg.push(\"Deleted \" + data.deleted + \" Price(s)\");\n }\n if (data.updated) {\n msg.push(\"Updated \" + data.updated + \" Price(s)\");\n } \n if (data.inserted) {\n msg.push(\"Added \" + data.inserted + \" Price(s)\");\n }\n if (!msg.length) {\n msg.push(\"No data changed\");\n }\n Roo.MessageBox.alert(\"Notice\", msg.join(\"\\n\"));\n\n }\n );\n}"
115 "text": "Upload Price Matrix",
117 "|xns": "Roo.Toolbar"
120 "|xns": "Roo.Toolbar",
126 "cls": "x-btn-text-icon",
127 "|icon": "Roo.rootURL + 'images/default/dd/drop-add.gif'",
129 "|click": "function()\n{\n if (!_this.dialog) return;\n _this.dialog.show( { id : 0 } , function() {\n _this.grid.footer.onClick('first');\n }); \n}\n"
131 "|xns": "Roo.Toolbar"
135 "cls": "x-btn-text-icon",
136 "|icon": "rootURL + '/Pman/templates/images/trash.gif'",
139 "|click": "function()\n{\n Pman.genericDelete(_this, 'ipshead'); \n}\n "
141 "|xns": "Roo.Toolbar"
146 "*prop": "colModel[]",
147 "dataIndex": "ipshead_curr_id_curr_name",
148 "header": "Ipshead curr",
151 "xtype": "ColumnModel",
152 "|renderer": "function(v) { return String.format('{0}', v); }",
156 "*prop": "colModel[]",
157 "dataIndex": "ipshead_name",
158 "header": "Ipshead name",
161 "xtype": "ColumnModel",
162 "|renderer": "function(v) { return String.format('{0}', v); }",
166 "xtype": "ColumnModel",
167 "header": "Ipshead descrip",
169 "dataIndex": "ipshead_descrip",
170 "|renderer": "function(v) { return String.format('{0}', v); }",
172 "*prop": "colModel[]"
175 "xtype": "ColumnModel",
176 "header": "Ipshead effective",
178 "dataIndex": "ipshead_effective",
179 "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
181 "*prop": "colModel[]"
184 "*prop": "colModel[]",
185 "dataIndex": "ipshead_expires",
186 "header": "Ipshead expires",
188 "xtype": "ColumnModel",
189 "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
193 "xtype": "ColumnModel",
194 "header": "Ipshead updated",
196 "dataIndex": "ipshead_updated",
197 "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
199 "*prop": "colModel[]"
207 "|activate": "function() {\n _this.ipanel = this;\n if (_this.igrid) {\n // _this.igrid.footer.onClick('first');\n }\n}"
210 "fitContainer": true,
215 "xtype": "GridPanel",
220 "|render": "function() \n{\n _this.igrid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.ipanel.active) {\n //this.footer.onClick('first');\n }\n}",
221 "cellclick": "function (_self, row, col, e)\n{\n var di = _this.grid.colModel.getDataIndex(col);\n \n var rec = _this.grid.ds.getAt(row);\n \n if(di == 'item_image_filename'){\n if(!rec.data.item_image_id){\n return;\n }\n var u = baseURL;\n if(rec.data.item_image_from_hk){\n u = u.split('/');\n u.pop();\n u = u.join('/') + '/hk.php';\n }\n Pman.download( {\n url: u + '/Images/Download/' + rec.data.item_image_id + '/' + rec.data.item_image_filename\n });\n return;\n }\n \n if (di == 'item_active') {\n \n var nv = rec.data.item_active ? 0 : 1;\n new Pman.Request({\n mask : 'Saving',\n url : baseURL + '/Roo/Item',\n params : {\n item_id : rec.data.item_id,\n item_active : nv\n },\n success : function() {\n rec.set('item_active', nv);\n }\n });\n return;\n \n \n }\n \n if(di == 'itemsrc_active'){\n if(!rec.data.itemsrc_active){\n Roo.MessageBox.alert('Error','Please edit it on Xtuple tool');\n return;\n }\n if(rec.data.itemsrc_active){\n Roo.MessageBox.confirm(\"Confirm\", \"Are you sure this product is no longer purchased\",\n function (res) {\n if(res!='yes') {\n return;\n }\n rec.commit();\n });\n }\n }\n \n _this.locgrid.footer.onClick('first');\n \n \n \n \n}",
222 "afteredit": "function (e)\n{\n \n \n Roo.log(e);\n new Pman.Request({\n url : baseURL +'/Roo/Charass',\n params : {\n charass_char_id_char_name : e.field.replace(/^item_char_/,'').toUpperCase(),\n charass_value : e.value,\n charass_target_type : 'I',\n charass_default : 1,\n charass_target_id : e.record.data.item_id\n },\n method : 'POST'\n });\n \n \n e.record.commit();\n \n \n \n}",
223 "rowdblclick": "function (_self, rowIndex, e)\n{\n if (!_this.dialog) return;\n _this.dialog.show( this.getDataSource().getAt(rowIndex).data, function() {\n _this.grid.footer.onClick('first');\n }); \n}\n"
226 "autoExpandColumn": "item_descrip1",
229 "xtype": "EditorGrid",
234 "beforeload": "function (_self, o)\n{\n o.params = o.params || {}\n \n var p = _this.grid.getSelectionModel().getSelected();\n \n if(!p || p.ipshead_id * 1 < 1){\n this.ds.removeAll();\n return;\n }\n \n o.params.item_active = 1;\n\n}",
235 "update": "function (_self, record, operation)\n{\n if(operation != 'commit'){\n return;\n }\n \n var nv = record.data.itemsrc_active ? 0 : 1;\n new Pman.Request({\n mask : 'Saving',\n url : baseURL + '/Roo/Itemsrc',\n params : {\n _update_by_item : 1,\n item_id : record.data.item_id,\n itemsrc_active : nv\n },\n success : function(res) {\n record.set('itemsrc_active', nv);\n }\n });\n}"
237 "*prop": "dataSource",
240 "|sortInfo": "{ field : 'item_number', direction: 'ASC' }",
245 "xtype": "HttpProxy",
247 "|url": "baseURL + '/Roo/item.php'",
252 "xtype": "JsonReader",
253 "totalProperty": "total",
257 "|fields": "[\n {\n 'name': 'item_id',\n 'type': 'int'\n },\n {\n 'name': 'item_number',\n 'type': 'string'\n },\n {\n 'name': 'item_descrip1',\n 'type': 'string'\n },\n {\n 'name': 'item_descrip2',\n 'type': 'string'\n },\n {\n 'name': 'item_classcode_id',\n 'type': 'int'\n },\n {\n 'name': 'item_picklist',\n 'type': 'int'\n },\n {\n 'name': 'item_comments',\n 'type': 'string'\n },\n {\n 'name': 'item_sold',\n 'type': 'int'\n },\n {\n 'name': 'item_fractional',\n 'type': 'int'\n },\n {\n 'name': 'item_active',\n 'type': 'int'\n },\n {\n 'name': 'item_type',\n 'type': 'string'\n },\n {\n 'name': 'item_prodweight',\n 'type': 'float'\n },\n {\n 'name': 'item_packweight',\n 'type': 'float'\n },\n {\n 'name': 'item_prodcat_id',\n 'type': 'int'\n },\n {\n 'name': 'item_exclusive',\n 'type': 'int'\n },\n {\n 'name': 'item_listprice',\n 'type': 'float'\n },\n {\n 'name': 'item_config',\n 'type': 'int'\n },\n {\n 'name': 'item_extdescrip',\n 'type': 'string'\n },\n {\n 'name': 'item_upccode',\n 'type': 'string'\n },\n {\n 'name': 'item_maxcost',\n 'type': 'float'\n },\n {\n 'name': 'item_inv_uom_id',\n 'type': 'int'\n },\n {\n 'name': 'item_price_uom_id',\n 'type': 'int'\n },\n {\n 'name': 'item_warrdays',\n 'type': 'int'\n },\n {\n 'name': 'item_freightclass_id',\n 'type': 'int'\n },\n {\n 'name': 'item_tax_recoverable',\n 'type': 'int'\n },\n {\n 'name': 'item_price_uom_id_uom_id',\n 'type': 'int'\n },\n {\n 'name': 'item_price_uom_id_uom_name',\n 'type': 'string'\n },\n {\n 'name': 'item_price_uom_id_uom_descrip',\n 'type': 'string'\n },\n {\n 'name': 'item_price_uom_id_uom_item_weight',\n 'type': 'int'\n },\n {\n 'name': 'item_inv_uom_id_uom_id',\n 'type': 'int'\n },\n {\n 'name': 'item_inv_uom_id_uom_name',\n 'type': 'string'\n },\n {\n 'name': 'item_inv_uom_id_uom_descrip',\n 'type': 'string'\n },\n {\n 'name': 'item_inv_uom_id_uom_item_weight',\n 'type': 'int'\n },\n {\n 'name': 'item_freightclass_id_freightclass_id',\n 'type': 'int'\n },\n {\n 'name': 'item_freightclass_id_freightclass_code',\n 'type': 'string'\n },\n {\n 'name': 'item_freightclass_id_freightclass_descrip',\n 'type': 'string'\n },\n {\n 'name': 'item_classcode_id_classcode_id',\n 'type': 'int'\n },\n {\n 'name': 'item_classcode_id_classcode_code',\n 'type': 'string'\n },\n {\n 'name': 'item_classcode_id_classcode_descrip',\n 'type': 'string'\n },\n {\n 'name': 'item_classcode_id_classcode_mfg',\n 'type': 'int'\n },\n {\n 'name': 'item_classcode_id_classcode_creator',\n 'type': 'string'\n },\n {\n 'name': 'item_classcode_id_classcode_created',\n 'type': 'date'\n },\n {\n 'name': 'item_classcode_id_classcode_modifier',\n 'type': 'string'\n },\n {\n 'name': 'item_classcode_id_classcode_modified',\n 'type': 'date'\n },\n {\n 'name': 'item_classcode_id_classcode_type',\n 'type': 'string'\n }\n]"
268 "render": "function (_self)\n{\n _this.brandSel = _self;\n}",
269 "select": "function (combo, record, index)\n{\n _this.grid.footer.onClick('first');\n}"
273 "displayField": "charass_value",
275 "forceSelection": true,
277 "loadingText": "Searching...",
280 "qtip": "Select Brand",
281 "queryParam": "query[charass_value]",
282 "selectOnFocus": true,
283 "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{charass_value}</b> </div>",
284 "triggerAction": "all",
291 "|beforeload": "function (_self, o)\n{\n o.params = o.params || {};\n // staff can see all logs, other companies can only see their own.\n // look for all of the charass 's with the same type= eg. brand.\n \n o.params.charass_char_id_char_name = 'BRAND';\n o.params.charass_target_type ='I';\n o.params._distinct = 'charass_value';\n o.params._columns = 'charass_value';\n\n}"
296 "|sortInfo": "{ field : 'charass_value' , direction : 'ASC' }",
302 "xtype": "HttpProxy",
303 "|url": "baseURL + '/Roo/Charass.php'",
308 "xtype": "JsonReader",
309 "totalProperty": "total",
313 "|fields": "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'person_name',\n 'type': 'string'\n },\n {\n 'name': 'event_when',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'action',\n 'type': 'string'\n },\n {\n 'name': 'ipaddr',\n 'type': 'string'\n },\n {\n 'name': 'on_id',\n 'type': 'int'\n },\n {\n 'name': 'on_table',\n 'type': 'string'\n },\n {\n 'name': 'person_id',\n 'type': 'int'\n },\n {\n 'name': 'remarks',\n 'type': 'string'\n },\n {\n 'name': 'person_id_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_name',\n 'type': 'string'\n },\n {\n 'name': 'person_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'person_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'person_id_email',\n 'type': 'string'\n },\n {\n 'name': 'person_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_role',\n 'type': 'string'\n },\n {\n 'name': 'person_id_active',\n 'type': 'int'\n },\n {\n 'name': 'person_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'person_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'person_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'person_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'person_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'person_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'person_id_deleted_dt',\n 'type': 'date'\n }\n]"
321 "render": "function (_self)\n{\n _this.search = _self;\n}",
322 "specialkey": "function (_self, e)\n{\n _this.grid.footer.onClick('first');\n}"
324 "xtype": "TextField",
329 "|click": "function (_self, e)\n{\n_this.grid.footer.onClick('first');\n}"
333 "|icon": "rootURL + '/Pman/templates/images/search.gif'",
334 "|xns": "Roo.Toolbar"
338 "|click": "function (_self, e)\n{\n _this.search.setValue('');\n \n\n \n _this.grid.footer.onClick('first');\n}"
342 "|icon": "rootURL + '/Pman/templates/images/edit-clear.gif'",
343 "|xns": "Roo.Toolbar"
346 "|xns": "Roo.Toolbar",
351 "toggle": "function (_self, pressed)\n{\n\n this.setText(pressed ? \"Hide Inactive\" : \"Show Inactive\");\n (function() { _this.grid.footer.onClick('first'); }).defer(100);\n}",
352 "render": "function (_self)\n{\n _this.active = _self;\n}"
354 "enableToggle": true,
355 "text": "Show Inactive",
357 "|xns": "Roo.Toolbar"
360 "|xns": "Roo.Toolbar",
364 "text": "Report start :",
366 "|xns": "Roo.Toolbar"
370 "render": "function (_self)\n{\n _this.dateFrom = _self;\n}"
374 "xtype": "DateField",
375 "|value": "(function() { return (new Date()).format('Y') + '-01-01'; })()",
380 "render": "function (_self)\n{\n _this.datespan = _self;\n}"
383 "displayField": "fname",
385 "fieldLabel": "Status",
386 "hiddenName": "cm_status",
389 "name": "cm_status_name",
390 "triggerAction": "all",
392 "valueField": "ftype",
399 "xtype": "SimpleStore",
400 "|data": "[ \n [ '1', \"Single Month Sales\"],\n [ '3', \"Quarter Sales\"],\n [ '6', \"Half year Sales\"] ,\n [ '12', \"Full Year Sales\"] \n]\n",
401 "|fields": "[ 'ftype', 'fname']",
408 "click": "function (_self, e)\n{\n if (!_this.brandSel.getValue().length) {\n Roo.MessageBox.alert(\"Error\", \"Select a brand to download\");\n return;\n }\n\n new Pman.Download({\n url : baseURL + '/Xtuple/Reports/SalesByCountryItemYear',\n params: { \n date_from : _this.dateFrom.getValue(),\n brand : _this.brandSel.getValue(),\n span : _this.datespan.getValue()\n }\n });\n \n\n}"
410 "text": "Download Sales Report",
412 "|xns": "Roo.Toolbar"
418 "xtype": "PagingToolbar",
421 "displayMsg": "Displaying item{0} - {1} of {2}",
422 "emptyMsg": "No item found",
427 "click": "function (_self, e)\n{\n new Pman.Download({\n method: 'GET',\n url : baseURL + '/Roo/item',\n params : {\n _costgrid : 1\n }\n });\n}"
429 "text": "Download Standard costs",
431 "|xns": "Roo.Toolbar"
435 "click": "function (_self, e)\n{\n Pman.Dialog.Image.show(\n {\n _url : baseURL+'/Xtuple/Import/Products'\n \n },\n function (data) {\n var msg = [];\n \n if (data.updated) {\n msg.push(\"Updated \" + data.updated + \" Products(s)\");\n } \n if (data.inserted) {\n msg.push(\"Added \" + data.inserted + \" Products(s)\");\n }\n if (data.skipped) {\n msg.push(\"Skipped \" + data.skipped);\n }\n \n if (!msg.length) {\n msg.push(\"No data changed\");\n }\n Roo.MessageBox.alert(\"Notice\", msg.join(\"\\n\"));\n\n }\n );\n}"
437 "text": "Upload new products and costs",
439 "|xns": "Roo.Toolbar"
443 "click": "function (_self, e)\n{\n \n var sel = _this.grid.selModel.getSelectedCell();\n if (!sel) {\n Roo.MessageBox.alert(\"Error\", \"Select a row\");\n return;\n }\n \n var rec = _this.grid.ds.getAt(sel[0]);\n if(rec.data.item_id * 1 < 1){\n return;\n }\n \n Pman.Dialog.Image.show({\n id : rec.data.item_image_id ? rec.data.item_image_id : 0,\n onid : rec.data.item_id,\n ontable : 'Item'\n }, function(data) {\n if (data) {\n _this.grid.footer.onClick('first');\n \n }\n \n });\n}"
445 "text": "Upload an image",
447 "|xns": "Roo.Toolbar"
451 "click": "function (_self, e)\n{\n Roo.MessageBox.progress (\"Syncing Stock\", \"Sending\");\n \n var offset = 0;\n \n function runSync() {\n \n new Pman.Request( {\n url : baseURL+'/Roo/Item',\n method : 'GET',\n params : {\n _syncFromHK : 1,\n offset : offset\n },\n success : function(res) {\n Roo.log(res);\n if (!res.data.total) {\n Roo.MessageBox.hide();\n return;\n }\n offset += res.data.limit;\n Roo.MessageBox.updateProgress ( offset / res.data.total, \"Done \" + offset + '/' + res.data.total);\n runSync();\n }\n \n \n });\n }\n runSync();\n}"
453 "text": "Sync Product Data from HK",
455 "|hidden": "(function() {\n\n return baseURL.match(/hk\\.php$/) ? true : false;\n})()",
456 "|xns": "Roo.Toolbar"
461 "*prop": "colModel[]",
462 "dataIndex": "item_image_filename",
463 "header": "Image ( Click to download )",
465 "xtype": "ColumnModel",
466 "|renderer": "function(v,x,r)\r\n{\n if(!v){\n return '';\n }\n if(r.data.item_image_from_hk){\n var url = baseURL.split('/');\n url.pop();\n url = url.join('/');\n return '<img src=\"' + url + '/hk.php/Images/Thumb/150x150/' + r.data.item_image_id + '/' + v + '\" width=\"150\" height=\"150\" />'; \n }\r\n return '<img src=\"' + baseURL + '/Images/Thumb/150x150/' + r.data.item_image_id + '/' + v + '\" width=\"150\" height=\"150\" />';\r\n}",
470 "*prop": "colModel[]",
471 "dataIndex": "item_char_brand",
475 "xtype": "ColumnModel",
476 "|renderer": "function(v) { return String.format('{0}', v); }",
481 "xtype": "GridEditor",
488 "displayField": "charass_value",
490 "forceSelection": false,
492 "loadingText": "Searching...",
495 "qtip": "Select Brand",
496 "queryParam": "query[charass_value]",
497 "selectOnFocus": true,
498 "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{charass_value}</b> </div>",
499 "triggerAction": "all",
506 "|beforeload": "function (_self, o)\n{\n o.params = o.params || {};\n // staff can see all logs, other companies can only see their own.\n // look for all of the charass 's with the same type= eg. brand.\n \n o.params.charass_char_id_char_name = 'BRAND';\n o.params.charass_target_type ='I';\n o.params._distinct = 'charass_value';\n o.params._columns = 'charass_value';\n\n}"
511 "|sortInfo": "{ field : 'charass_value' , direction : 'ASC' }",
517 "xtype": "HttpProxy",
518 "|url": "baseURL + '/Roo/Charass.php'",
523 "xtype": "JsonReader",
524 "totalProperty": "total",
528 "|fields": "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'person_name',\n 'type': 'string'\n },\n {\n 'name': 'event_when',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'action',\n 'type': 'string'\n },\n {\n 'name': 'ipaddr',\n 'type': 'string'\n },\n {\n 'name': 'on_id',\n 'type': 'int'\n },\n {\n 'name': 'on_table',\n 'type': 'string'\n },\n {\n 'name': 'person_id',\n 'type': 'int'\n },\n {\n 'name': 'remarks',\n 'type': 'string'\n },\n {\n 'name': 'person_id_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_name',\n 'type': 'string'\n },\n {\n 'name': 'person_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'person_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'person_id_email',\n 'type': 'string'\n },\n {\n 'name': 'person_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_role',\n 'type': 'string'\n },\n {\n 'name': 'person_id_active',\n 'type': 'int'\n },\n {\n 'name': 'person_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'person_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'person_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'person_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'person_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'person_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'person_id_deleted_dt',\n 'type': 'date'\n }\n]"
539 "*prop": "colModel[]",
540 "dataIndex": "item_char_productgroup",
541 "header": "Product Group",
543 "xtype": "ColumnModel",
544 "|renderer": "function(v) { return String.format('{0}', v); }",
549 "xtype": "GridEditor",
556 "displayField": "charass_value",
558 "forceSelection": false,
560 "loadingText": "Searching...",
563 "qtip": "Select Brand",
564 "queryParam": "query[charass_value]",
565 "selectOnFocus": true,
566 "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{charass_value}</b> </div>",
567 "triggerAction": "all",
574 "|beforeload": "function (_self, o)\n{\n o.params = o.params || {};\n // staff can see all logs, other companies can only see their own.\n // look for all of the charass 's with the same type= eg. brand.\n \n o.params.charass_char_id_char_name = 'PRODUCTGROUP';\n o.params.charass_target_type ='I';\n o.params._distinct = 'charass_value';\n o.params._columns = 'charass_value'; \n}"
579 "|sortInfo": "{ field : 'charass_value' , direction : 'ASC' }",
585 "xtype": "HttpProxy",
586 "|url": "baseURL + '/Roo/Charass.php'",
591 "xtype": "JsonReader",
592 "totalProperty": "total",
596 "|fields": "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'person_name',\n 'type': 'string'\n },\n {\n 'name': 'event_when',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'action',\n 'type': 'string'\n },\n {\n 'name': 'ipaddr',\n 'type': 'string'\n },\n {\n 'name': 'on_id',\n 'type': 'int'\n },\n {\n 'name': 'on_table',\n 'type': 'string'\n },\n {\n 'name': 'person_id',\n 'type': 'int'\n },\n {\n 'name': 'remarks',\n 'type': 'string'\n },\n {\n 'name': 'person_id_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_name',\n 'type': 'string'\n },\n {\n 'name': 'person_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'person_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'person_id_email',\n 'type': 'string'\n },\n {\n 'name': 'person_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_role',\n 'type': 'string'\n },\n {\n 'name': 'person_id_active',\n 'type': 'int'\n },\n {\n 'name': 'person_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'person_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'person_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'person_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'person_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'person_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'person_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'person_id_deleted_dt',\n 'type': 'date'\n }\n]"
607 "*prop": "colModel[]",
608 "dataIndex": "item_number",
611 "xtype": "ColumnModel",
612 "|renderer": "function(v) { return String.format('{0}', v); }",
616 "*prop": "colModel[]",
617 "dataIndex": "item_descrip1",
618 "header": "Description",
620 "xtype": "ColumnModel",
621 "|renderer": "function(v) { return String.format('{0}', v); }",
625 "*prop": "colModel[]",
626 "dataIndex": "itemsrc_active",
627 "header": "Purchased",
629 "xtype": "ColumnModel",
630 "|renderer": "function(v) { \n var state = v * 1 > 0 ? '-checked' : '';\n\n return '<img class=\"x-grid-check-icon' + state + '\" src=\"' + Roo.BLANK_IMAGE_URL + '\"/>';\n \n }",
634 "*prop": "colModel[]",
635 "dataIndex": "item_sold",
636 "header": "is Sold?",
638 "xtype": "ColumnModel",
639 "|renderer": "function(v) { \n var state = v * 1 > 0 ? '-checked' : '';\n\n return '<img class=\"x-grid-check-icon' + state + '\" src=\"' + Roo.BLANK_IMAGE_URL + '\"/>';\n \n }",
643 "*prop": "colModel[]",
644 "dataIndex": "item_active",
645 "header": "is Active?",
647 "xtype": "ColumnModel",
648 "|renderer": "function(v) { \n var state = v * 1 > 0 ? '-checked' : '';\n\n return '<img class=\"x-grid-check-icon' + state + '\" src=\"' + Roo.BLANK_IMAGE_URL + '\"/>';\n \n }",
652 "*prop": "colModel[]",
653 "dataIndex": "last_purchase_price",
654 "header": "Last purchase price",
656 "xtype": "ColumnModel",
657 "|renderer": "function(v,x,r) {\n\n return String.format('{0}{1}', r.data.last_purchase_price_curr_name, Roo.util.Format.number(v,2)) ; \n \n }",
661 "*prop": "colModel[]",
662 "dataIndex": "item_type",
663 "header": "Item type",
665 "xtype": "ColumnModel",
666 "|renderer": "function(v) { return String.format('{0}', v); }",
670 "*prop": "colModel[]",
671 "dataIndex": "item_prodcat_id_prodcat_code",
672 "header": "Item prodcat",
674 "xtype": "ColumnModel",
675 "|renderer": "function(v) { return String.format('{0}', v); }",
679 "*prop": "colModel[]",
681 "dataIndex": "item_actcost",
684 "xtype": "ColumnModel",
685 "|renderer": "function(v,x,r) {\n\n return String.format('{0}{1}', r.data.item_curr_name, Roo.util.Format.number(v,2)) ; \n \n }",
689 "*prop": "colModel[]",
691 "dataIndex": "item_base_cost",
692 "header": "Cost (base)",
694 "xtype": "ColumnModel",
695 "|renderer": "function(v,x,r) {\n\n return String.format('{0}{1}', r.data.item_base_curr, Roo.util.Format.number(v,2)) ; \n \n }",