3 "name": "Pman.Tab.CoreOAuthClient",
6 "path": "/home/edward/gitlive/Pman.Core/Pman.Tab.CoreOAuthClient.bjs",
10 "title": "Email Template",
11 "xtype": "NestedLayoutPanel",
16 "xtype": "BorderLayout",
23 "xtype": "LayoutRegion",
28 "|activate": "function() {\n _this.panel = this;\n \n \n var pid = _this.form.findField('pohead_id').getValue() * 1;\n if (pid < 1) {\n Roo.MessageBox.alert(\"Save First\", \"Please save the purchase order first, before adding items\");\n _this.dialog.layout.getRegion('center').showPanel(0);\n return;\n }\n \n if (_this.grid) {\n _this.grid.footer.onClick('first');\n }\n}",
29 "deactivate": "function (_self)\n{\n if(_this.grid){\n var ar = [];\n\n _this.grid.ds.each(function(r) {\n ar.push({\n poitem_id : r.data.poitem_id,\n poitem_itemsite_id : r.data.poitem_itemsite_id,\n poitem_unitprice : r.data.poitem_unitprice,\n poitem_qty_ordered : r.data.poitem_qty_ordered\n });\n \n });\n \n _this.form.findField('items').setValue(JSON.stringify(ar));\n }\n _this.dontClose = true;\n _this.form.doAction(\"submit\");\n\n}"
35 "tableName": "poitem",
36 "title": "Order Items",
42 "|render": "function() \n{\n _this.grid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.panel.active) {\n this.footer.onClick('first');\n }\n}",
43 "beforeedit": "function (e)\n{\n var r = e.record.data.poitem_qty_received * 1;\n \n if(r > 0){\n Roo.MessageBox.alert(\"Error\", \"This item has been receipted\");\n return false;\n }\n \n var status = _this.form.findField('pohead_status').getValue();\n \n if(status == 'C'){\n Roo.MessageBox.alert(\"Error\", \"This PO has been closed\");\n return false;\n }\n \n \n}"
46 "autoExpandColumn": "item_descrip1",
49 "xtype": "EditorGrid",
54 "beforeload": "function (_self, o){\n o.params = o.params || {};\n var hid = _this.form.findField('pohead_id').getValue();\n \n if(!hid.length){\n return false;\n }\n \n o.params.poitem_pohead_id = hid;\n o.params._with_item = 1;\n o.params._roo_office = _this.data.office ? _this.data.office : baseURL.split('/').pop().substr(0,2);\n\n}\n",
55 "load": "function (_self, records, options)\n{\n _this.grid.footer.updateSummary();\n}"
57 "*prop": "dataSource",
60 "|sortInfo": "{ field : 'poitem_linenumber', direction: 'ASC' }",
68 "|url": "baseURL + '/Xtuple/Roo/Poitem.php'",
75 "totalProperty": "total",
76 "xtype": "JsonReader",
77 "|fields": "[\n {\n 'name': 'poitem_id',\n 'type': 'int'\n }\n]",
89 "|click": "function()\n{\n var status = _this.form.findField('pohead_status').getValue();\n \n if(status == 'C'){\n Roo.MessageBox.alert(\"Error\", \"This PO has been closed\");\n return;\n }\n \n var ct = _this.grid.ds.getCount();\n \n var last = ct ? _this.grid.ds.getAt(ct-1).data.poitem_linenumber * 1 + 1 : 1;\n \n var dt = _this.form.findField('pohead_orderdate').getValue();\n \n var nr = _this.grid.ds.reader.newRow({\n poitem_id : 0,\n poitem_linenumber : last,\n item_number : '',\n item_descrip1 : '',\n poitem_duedate : dt,\n poitem_qty_ordered : 1,\n poitem_unitprice : 0\n });\n \n _this.grid.stopEditing();\n _this.grid.ds.insert(_this.grid.ds.getCount(), nr); \n _this.grid.startEditing(_this.grid.ds.getCount()-1, 1);\n}\n"
91 "cls": "x-btn-text-icon",
94 "|icon": "Roo.rootURL + 'images/default/dd/drop-add.gif'",
99 "|click": "function ()\n{\n var status = _this.form.findField('pohead_status').getValue();\n \n if(status == 'C'){\n Roo.MessageBox.alert(\"Error\", \"This PO has been closed\");\n return;\n }\n \n var cs = _this.grid.getSelectionModel().getSelectedCell();\n if (!cs) {\n Roo.MessageBox.alert(\"Error\", \"Select a cell\");\n return;\n }\n _this.grid.stopEditing();\n var r = _this.grid.ds.getAt(cs[0]);\n \n if(r.data.poitem_qty_received * 1 > 0){\n Roo.MessageBox.alert(\"Error\", \"This item has been receipted\");\n return;\n }\n \n \n _this.grid.ds.remove(r);\n \n}"
101 "cls": "x-btn-text-icon",
104 "|icon": "rootURL + '/Pman/templates/images/trash.gif'",
105 "|xns": "Roo.Toolbar"
112 "emptyMsg": "No Item found",
114 "xtype": "PagingToolbar",
115 "|updateSummary": "function() {\n\r\n var f = this;\r\n new Pman.Request({\r\n url : baseURL + '/Xtuple/Roo/Poitem',\r\n method : 'GET',\r\n params : {\n _roo_office : _this.data.office ? _this.data.office : baseURL.split('/').pop().substr(0,2),\r\n _totals : 1,\r\n poitem_pohead_id : _this.form.findField('pohead_id').getValue()\r\n },\r\n success : function(d) {\n Roo.log(d);\r\n f.displayEl.update(String.format(\r\n \"{0} items | Total : {1} {2}\",\r\n d.data[0].count_item,\r\n _this.form.findField('pohead_curr_id').el.dom.value,\r\n d.data[0].totals\r\n ));\r\n \r\n }\r\n });\r\n\n}\n",
119 "*prop": "colModel[]",
121 "dataIndex": "poitem_linenumber",
124 "xtype": "ColumnModel",
125 "|renderer": "function(v) { return String.format('{0}', v); }",
129 "*prop": "colModel[]",
130 "dataIndex": "item_number",
131 "header": "Item code",
133 "xtype": "ColumnModel",
134 "|renderer": "function(v) { return String.format('{0}', v); }",
139 "xtype": "GridEditor",
144 "beforeselect": "function (combo, record, index)\n{\n var ar = _this.grid.activeEditor.record;\n \n (function() { \n ar.set('item_descrip1', record.data.itemsite_item_id_item_descrip1);\n ar.set('poitem_itemsite_id', record.data.itemsite_id);\n }).defer(100);\n \n}"
148 "displayField": "itemsite_item_id_item_number",
150 "emptyText": "Select item",
151 "forceSelection": true,
152 "hiddenName": "itemsite_item_id_item_number",
154 "loadingText": "Searching...",
156 "name": "item_number",
158 "qtip": "Select item",
159 "queryParam": "query[number]",
160 "selectOnFocus": true,
161 "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{itemsite_item_id_item_number}</b> - {itemsite_item_id_item_descrip1} </div>",
162 "triggerAction": "all",
164 "valueField": "item_number",
170 "|beforeload": "function (_self, o){\n o.params = o.params || {}; \n o.params.itemsite_posupply = 1;\n}\n"
175 "|sortInfo": "{ direction : 'ASC', field: 'item_number' }",
181 "xtype": "HttpProxy",
182 "|url": "baseURL + '/Roo/itemsite.php'",
189 "totalProperty": "total",
190 "xtype": "JsonReader",
191 "|fields": "[{\"name\":\"item_id\",\"type\":\"int\"},\"item_number\"]",
203 "*prop": "colModel[]",
204 "dataIndex": "item_descrip1",
205 "header": "Item description",
207 "xtype": "ColumnModel",
208 "|renderer": "function(v) { return String.format('{0}', v); }",
212 "*prop": "colModel[]",
213 "dataIndex": "poitem_duedate",
214 "header": "Due date",
216 "xtype": "ColumnModel",
217 "|renderer": "function(v) { return String.format('{0}', v ? v.format('Y-m-d') : ''); }",
221 "*prop": "colModel[]",
223 "dataIndex": "poitem_qty_ordered",
226 "xtype": "ColumnModel",
227 "|renderer": "function(v) { return String.format('{0}', v); }",
232 "xtype": "GridEditor",
237 "allowDecimals": false,
238 "decimalPrecision": 0,
240 "style": "text-align:right",
241 "xtype": "NumberField",
249 "*prop": "colModel[]",
251 "dataIndex": "poitem_qty_received",
252 "header": "Received",
254 "xtype": "ColumnModel",
255 "|renderer": "function(v,x,r) { \n return String.format(\n r.data.poitem_qty_ordered != (v-r.data.poitem_qty_returned) ? '<span style=\"color:red\">{0}</span>': '{0}',\n v - r.data.poitem_qty_returned);\n}",
259 "*prop": "colModel[]",
261 "dataIndex": "poitem_qty_vouchered",
262 "header": "Vouchered",
264 "xtype": "ColumnModel",
265 "|renderer": "function(v,x,r) { \n return String.format(\n r.data.poitem_qty_ordered != v ? '<span style=\"color:red\">{0}</span>': '{0}',\n v);\n}",
269 "*prop": "colModel[]",
271 "dataIndex": "poitem_unitprice",
272 "header": "Unit price",
274 "xtype": "ColumnModel",
275 "|renderer": "function(v) { return String.format('{0}', (v || v == 0) ? parseFloat(v).toFixed(3) : ''); }",
280 "xtype": "GridEditor",
286 "allowDecimals": false,
287 "decimalPrecision": 0,
289 "style": "text-align:right",
290 "xtype": "NumberField",