Pman.Tab.CoreOAuthClient.bjs
[Pman.Core] / Pman.Tab.CoreOAuthClient.bjs
1 {
2     "id": "roo-file-363",
3     "name": "Pman.Tab.CoreOAuthClient",
4     "parent": "",
5     "title": "",
6     "path": "/home/edward/gitlive/Pman.Core/Pman.Tab.CoreOAuthClient.bjs",
7     "items": [
8         {
9             "region": "center",
10             "title": "Email Template",
11             "xtype": "NestedLayoutPanel",
12             "|xns": "Roo",
13             "items": [
14                 {
15                     "|xns": "Roo",
16                     "xtype": "BorderLayout",
17                     "*prop": "layout",
18                     "items": [
19                         {
20                             "*prop": "center",
21                             "autoScroll": false,
22                             "split": true,
23                             "xtype": "LayoutRegion",
24                             "|xns": "Roo"
25                         },
26                         {
27                             "listeners": {
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}"
30                             },
31                             "background": true,
32                             "fitContainer": true,
33                             "fitToframe": true,
34                             "region": "center",
35                             "tableName": "poitem",
36                             "title": "Order Items",
37                             "xtype": "GridPanel",
38                             "|xns": "Roo",
39                             "items": [
40                                 {
41                                     "listeners": {
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}"
44                                     },
45                                     "*prop": "grid",
46                                     "autoExpandColumn": "item_descrip1",
47                                     "clicksToEdit": 1,
48                                     "loadMask": true,
49                                     "xtype": "EditorGrid",
50                                     "|xns": "Roo.grid",
51                                     "items": [
52                                         {
53                                             "listeners": {
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}"
56                                             },
57                                             "*prop": "dataSource",
58                                             "remoteSort": true,
59                                             "xtype": "Store",
60                                             "|sortInfo": "{ field : 'poitem_linenumber', direction: 'ASC' }",
61                                             "|xns": "Roo.data",
62                                             "items": [
63                                                 {
64                                                     "*prop": "proxy",
65                                                     "method": "GET",
66                                                     "timeout": 90000,
67                                                     "xtype": "HttpProxy",
68                                                     "|url": "baseURL + '/Xtuple/Roo/Poitem.php'",
69                                                     "|xns": "Roo.data"
70                                                 },
71                                                 {
72                                                     "*prop": "reader",
73                                                     "id": "poitem_id",
74                                                     "root": "data",
75                                                     "totalProperty": "total",
76                                                     "xtype": "JsonReader",
77                                                     "|fields": "[\n    {\n        'name': 'poitem_id',\n        'type': 'int'\n    }\n]",
78                                                     "|xns": "Roo.data"
79                                                 }
80                                             ]
81                                         },
82                                         {
83                                             "|xns": "Roo",
84                                             "xtype": "Toolbar",
85                                             "*prop": "toolbar",
86                                             "items": [
87                                                 {
88                                                     "listeners": {
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"
90                                                     },
91                                                     "cls": "x-btn-text-icon",
92                                                     "text": "Add",
93                                                     "xtype": "Button",
94                                                     "|icon": "Roo.rootURL + 'images/default/dd/drop-add.gif'",
95                                                     "|xns": "Roo.Toolbar"
96                                                 },
97                                                 {
98                                                     "listeners": {
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}"
100                                                     },
101                                                     "cls": "x-btn-text-icon",
102                                                     "text": "Remove",
103                                                     "xtype": "Button",
104                                                     "|icon": "rootURL + '/Pman/templates/images/trash.gif'",
105                                                     "|xns": "Roo.Toolbar"
106                                                 }
107                                             ]
108                                         },
109                                         {
110                                             "*prop": "footer",
111                                             "displayInfo": true,
112                                             "emptyMsg": "No Item found",
113                                             "pageSize": 100,
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",
116                                             "|xns": "Roo"
117                                         },
118                                         {
119                                             "*prop": "colModel[]",
120                                             "align": "right",
121                                             "dataIndex": "poitem_linenumber",
122                                             "header": "Line#",
123                                             "width": 50,
124                                             "xtype": "ColumnModel",
125                                             "|renderer": "function(v) { return String.format('{0}', v); }",
126                                             "|xns": "Roo.grid"
127                                         },
128                                         {
129                                             "*prop": "colModel[]",
130                                             "dataIndex": "item_number",
131                                             "header": "Item code",
132                                             "width": 100,
133                                             "xtype": "ColumnModel",
134                                             "|renderer": "function(v) { return String.format('{0}', v); }",
135                                             "|xns": "Roo.grid",
136                                             "items": [
137                                                 {
138                                                     "|xns": "Roo.grid",
139                                                     "xtype": "GridEditor",
140                                                     "*prop": "editor",
141                                                     "items": [
142                                                         {
143                                                             "listeners": {
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}"
145                                                             },
146                                                             "*prop": "field",
147                                                             "allowBlank": false,
148                                                             "displayField": "itemsite_item_id_item_number",
149                                                             "editable": true,
150                                                             "emptyText": "Select item",
151                                                             "forceSelection": true,
152                                                             "hiddenName": "itemsite_item_id_item_number",
153                                                             "listWidth": 400,
154                                                             "loadingText": "Searching...",
155                                                             "minChars": 2,
156                                                             "name": "item_number",
157                                                             "pageSize": 20,
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",
163                                                             "typeAhead": false,
164                                                             "valueField": "item_number",
165                                                             "xtype": "ComboBox",
166                                                             "|xns": "Roo.form",
167                                                             "items": [
168                                                                 {
169                                                                     "listeners": {
170                                                                         "|beforeload": "function (_self, o){\n    o.params = o.params || {}; \n    o.params.itemsite_posupply = 1;\n}\n"
171                                                                     },
172                                                                     "*prop": "store",
173                                                                     "remoteSort": true,
174                                                                     "xtype": "Store",
175                                                                     "|sortInfo": "{ direction : 'ASC', field: 'item_number' }",
176                                                                     "|xns": "Roo.data",
177                                                                     "items": [
178                                                                         {
179                                                                             "*prop": "proxy",
180                                                                             "method": "GET",
181                                                                             "xtype": "HttpProxy",
182                                                                             "|url": "baseURL + '/Roo/itemsite.php'",
183                                                                             "|xns": "Roo.data"
184                                                                         },
185                                                                         {
186                                                                             "*prop": "reader",
187                                                                             "id": "itemsite_id",
188                                                                             "root": "data",
189                                                                             "totalProperty": "total",
190                                                                             "xtype": "JsonReader",
191                                                                             "|fields": "[{\"name\":\"item_id\",\"type\":\"int\"},\"item_number\"]",
192                                                                             "|xns": "Roo.data"
193                                                                         }
194                                                                     ]
195                                                                 }
196                                                             ]
197                                                         }
198                                                     ]
199                                                 }
200                                             ]
201                                         },
202                                         {
203                                             "*prop": "colModel[]",
204                                             "dataIndex": "item_descrip1",
205                                             "header": "Item description",
206                                             "width": 150,
207                                             "xtype": "ColumnModel",
208                                             "|renderer": "function(v) { return String.format('{0}', v); }",
209                                             "|xns": "Roo.grid"
210                                         },
211                                         {
212                                             "*prop": "colModel[]",
213                                             "dataIndex": "poitem_duedate",
214                                             "header": "Due date",
215                                             "width": 100,
216                                             "xtype": "ColumnModel",
217                                             "|renderer": "function(v) { return String.format('{0}', v ? v.format('Y-m-d') : ''); }",
218                                             "|xns": "Roo.grid"
219                                         },
220                                         {
221                                             "*prop": "colModel[]",
222                                             "align": "right",
223                                             "dataIndex": "poitem_qty_ordered",
224                                             "header": "Ordered",
225                                             "width": 75,
226                                             "xtype": "ColumnModel",
227                                             "|renderer": "function(v) { return String.format('{0}', v); }",
228                                             "|xns": "Roo.grid",
229                                             "items": [
230                                                 {
231                                                     "|xns": "Roo.grid",
232                                                     "xtype": "GridEditor",
233                                                     "*prop": "editor",
234                                                     "items": [
235                                                         {
236                                                             "*prop": "field",
237                                                             "allowDecimals": false,
238                                                             "decimalPrecision": 0,
239                                                             "minValue": 1,
240                                                             "style": "text-align:right",
241                                                             "xtype": "NumberField",
242                                                             "|xns": "Roo.form"
243                                                         }
244                                                     ]
245                                                 }
246                                             ]
247                                         },
248                                         {
249                                             "*prop": "colModel[]",
250                                             "align": "right",
251                                             "dataIndex": "poitem_qty_received",
252                                             "header": "Received",
253                                             "width": 75,
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}",
256                                             "|xns": "Roo.grid"
257                                         },
258                                         {
259                                             "*prop": "colModel[]",
260                                             "align": "right",
261                                             "dataIndex": "poitem_qty_vouchered",
262                                             "header": "Vouchered",
263                                             "width": 65,
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}",
266                                             "|xns": "Roo.grid"
267                                         },
268                                         {
269                                             "*prop": "colModel[]",
270                                             "align": "right",
271                                             "dataIndex": "poitem_unitprice",
272                                             "header": "Unit price",
273                                             "width": 100,
274                                             "xtype": "ColumnModel",
275                                             "|renderer": "function(v) { return String.format('{0}', (v || v == 0) ? parseFloat(v).toFixed(3) : ''); }",
276                                             "|xns": "Roo.grid",
277                                             "items": [
278                                                 {
279                                                     "|xns": "Roo.grid",
280                                                     "xtype": "GridEditor",
281                                                     "*prop": "editor",
282                                                     "items": [
283                                                         {
284                                                             "*prop": "field",
285                                                             "allowBlank": false,
286                                                             "allowDecimals": false,
287                                                             "decimalPrecision": 0,
288                                                             "minValue": 1,
289                                                             "style": "text-align:right",
290                                                             "xtype": "NumberField",
291                                                             "|xns": "Roo.form"
292                                                         }
293                                                     ]
294                                                 }
295                                             ]
296                                         }
297                                     ]
298                                 }
299                             ]
300                         }
301                     ]
302                 }
303             ]
304         }
305     ],
306     "permname": "",
307     "modOrder": "001"
308 }