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