Fix #7123 - getting abra ready to test
[Pman.Xtuple] / Pman.Tab.XtupleStockHistory.bjs
1 {
2     "id": "roo-file-72",
3     "name": "Pman.Tab.XtupleStockHistory",
4     "parent": "Pman.Tab.XtupleManage",
5     "title": "Pman.Tab.XtupleStockHistory",
6     "path": "/home/edward/gitlive/web.xtuple/Pman/Xtuple/Pman.Tab.XtupleStockHistory.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": "invhist",
17             "title": "Inventory History",
18             "xtype": "GridPanel",
19             "|xns": "Roo",
20             "items": [
21                 {
22                     "listeners": {
23                         "|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}",
24                         "celldblclick": "function (_self, rowIndex, colIndex, e)\n{\n    var col = _this.grid.colModel.config[colIndex].dataIndex;\n    \n    if (col !='item_number') {\n        return;\n    }\n    var r = _this.grid.ds.getAt(rowIndex).data;\n    \n    _this.itemsiteCombo.setValue(r.item_number);\n    _this.grid.footer.onClick('first');\n    \n    \n}"
25                     },
26                     "*prop": "grid",
27                     "autoExpandColumn": "invhist_comments",
28                     "loadMask": true,
29                     "xtype": "Grid",
30                     "|xns": "Roo.grid",
31                     "items": [
32                         {
33                             "|xns": "Roo",
34                             "xtype": "Toolbar",
35                             "*prop": "toolbar",
36                             "items": [
37                                 {
38                                     "listeners": {
39                                         "select": "function (combo, record, index)\n{\n  \n \n   (function() { \n     if (_this.grid) {\n        _this.grid.footer.onClick('first'); \n    }\n     }).defer(100);\n}",
40                                         "render": "function (_self)\n{\n    _this.itemsiteCombo = _self;\n}"
41                                     },
42                                     "allowBlank": true,
43                                     "displayField": "itemsite_item_id_item_number",
44                                     "editable": true,
45                                     "emptyText": "Select itemsite",
46                                     "fieldLabel": "Item",
47                                     "forceSelection": true,
48                                     "listWidth": 400,
49                                     "loadingText": "Searching...",
50                                     "minChars": 2,
51                                     "name": "itemsite_item_id_item_number",
52                                     "pageSize": 20,
53                                     "qtip": "Select itemsite",
54                                     "queryParam": "query[number]",
55                                     "selectOnFocus": true,
56                                     "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{itemsite_item_id_item_number}</b> {itemsite_item_id_item_descrip1}</div>",
57                                     "triggerAction": "all",
58                                     "typeAhead": true,
59                                     "valueField": "itemsite_item_id_item_number",
60                                     "width": 200,
61                                     "xtype": "ComboBox",
62                                     "|xns": "Roo.form",
63                                     "items": [
64                                         {
65                                             "listeners": {
66                                                 "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    var l = _this.locationCombo.getValue();\n    if (l ) { \n        o.params._has_invdetail_location_id = l;\n    }\n\n}\n"
67                                             },
68                                             "*prop": "store",
69                                             "remoteSort": true,
70                                             "xtype": "Store",
71                                             "|sortInfo": "{ direction : 'ASC', field: 'id' }",
72                                             "|xns": "Roo.data",
73                                             "items": [
74                                                 {
75                                                     "*prop": "proxy",
76                                                     "method": "GET",
77                                                     "xtype": "HttpProxy",
78                                                     "|url": "baseURL + '/Roo/itemsite.php'",
79                                                     "|xns": "Roo.data"
80                                                 },
81                                                 {
82                                                     "*prop": "reader",
83                                                     "xtype": "JsonReader",
84                                                     "|xns": "Roo.data",
85                                                     "id": "id",
86                                                     "root": "data",
87                                                     "totalProperty": "total",
88                                                     "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"itemsite_abcclass\",\"type\":\"string\"}]"
89                                                 }
90                                             ]
91                                         }
92                                     ]
93                                 },
94                                 {
95                                     "listeners": {
96                                         "select": "function (combo, record, index)\n{\n  \n \n   (function() { \n     if (_this.grid) {\n        _this.grid.footer.onClick('first'); \n    }\n     }).defer(100);\n}",
97                                         "render": "function (_self)\n{\n    _this.locationCombo = _self;\n} "
98                                     },
99                                     "allowBlank": true,
100                                     "displayField": "location_descrip",
101                                     "editable": true,
102                                     "emptyText": "Select location",
103                                     "fieldLabel": "location",
104                                     "forceSelection": true,
105                                     "hiddenName": "location_id",
106                                     "listWidth": 400,
107                                     "loadingText": "Searching...",
108                                     "minChars": 2,
109                                     "name": "location_descrip",
110                                     "pageSize": 200,
111                                     "qtip": "Select location",
112                                     "queryParam": "query[location_name]",
113                                     "selectOnFocus": true,
114                                     "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{location_descrip}</b> </div>",
115                                     "triggerAction": "all",
116                                     "typeAhead": true,
117                                     "valueField": "location_id",
118                                     "width": 200,
119                                     "xtype": "ComboBox",
120                                     "|xns": "Roo.form",
121                                     "items": [
122                                         {
123                                             "listeners": {
124                                                 "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    o.params._has_invdetail = 1;\n    // set more here\n     var item_num =  _this.itemsiteCombo.getValue();\n     if (item_num.length) {\n        o.params._has_invdetail_item = item_num;\n    }\n    \n}\n"
125                                             },
126                                             "*prop": "store",
127                                             "remoteSort": true,
128                                             "xtype": "Store",
129                                             "|sortInfo": "{ direction : 'ASC', field: 'location_name' }",
130                                             "|xns": "Roo.data",
131                                             "items": [
132                                                 {
133                                                     "*prop": "proxy",
134                                                     "method": "GET",
135                                                     "xtype": "HttpProxy",
136                                                     "|url": "baseURL + '/Roo/location.php'",
137                                                     "|xns": "Roo.data"
138                                                 },
139                                                 {
140                                                     "*prop": "reader",
141                                                     "xtype": "JsonReader",
142                                                     "|xns": "Roo.data",
143                                                     "id": "id",
144                                                     "root": "data",
145                                                     "totalProperty": "total",
146                                                     "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"location_name\",\"type\":\"string\"}]"
147                                                 }
148                                             ]
149                                         }
150                                     ]
151                                 },
152                                 {
153                                     "listeners": {
154                                         "render": "function (_self)\n{\n  _this.viewtype = _self;\n}",
155                                         "select": "function (combo, record, index)\n{\n    Roo.log('select');\n    _this.grid.footer.onClick('first');\n}"
156                                     },
157                                     "allowBlank": false,
158                                     "displayField": "fname",
159                                     "editable": false,
160                                     "hiddenName": "status",
161                                     "listWidth": 200,
162                                     "mode": "local",
163                                     "name": "status_name",
164                                     "triggerAction": "all",
165                                     "value": "BOTH",
166                                     "valueField": "ftype",
167                                     "width": 150,
168                                     "xtype": "ComboBox",
169                                     "|xns": "Roo.form",
170                                     "items": [
171                                         {
172                                             "*prop": "store",
173                                             "xtype": "SimpleStore",
174                                             "|data": "[ \n    [ 'BOTH', \"All Transactions\"],\n    [ 'IN' , \"Incomming\"],\n    [ 'OUT', \"Outgoing\"] ,\n    [ 'BOTHALL', \"All Transactions (with voided)\"]\n\n]\n",
175                                             "|fields": "[  'ftype', 'fname']",
176                                             "|xns": "Roo.data"
177                                         }
178                                     ]
179                                 },
180                                 {
181                                     "|xns": "Roo.Toolbar",
182                                     "xtype": "Separator"
183                                 },
184                                 {
185                                     "text": "From",
186                                     "xtype": "TextItem",
187                                     "|xns": "Roo.Toolbar"
188                                 },
189                                 {
190                                     "listeners": {
191                                         "render": "function (_self)\n{\n    _this.dateSel = _self;\n}",
192                                         "select": "function (combo, date)\n{\n    _this.grid.footer.onClick('first');\n}"
193                                     },
194                                     "allowBlank": true,
195                                     "fieldLabel": "Date",
196                                     "format": "Y-m-d",
197                                     "useIso": true,
198                                     "width": 150,
199                                     "xtype": "DateField",
200                                     "|xns": "Roo.form"
201                                 },
202                                 {
203                                     "|xns": "Roo.Toolbar",
204                                     "xtype": "Separator"
205                                 },
206                                 {
207                                     "text": "To",
208                                     "xtype": "TextItem",
209                                     "|xns": "Roo.Toolbar"
210                                 },
211                                 {
212                                     "listeners": {
213                                         "render": "function (_self)\n{\n    _this.endDateSel = _self;\n}",
214                                         "select": "function (combo, date)\n{\n    _this.grid.footer.onClick('first');\n}"
215                                     },
216                                     "allowBlank": true,
217                                     "fieldLabel": "Date",
218                                     "format": "Y-m-d",
219                                     "useIso": true,
220                                     "width": 150,
221                                     "xtype": "DateField",
222                                     "|xns": "Roo.form"
223                                 },
224                                 {
225                                     "|xns": "Roo.Toolbar",
226                                     "xtype": "Fill"
227                                 },
228                                 {
229                                     "text": "Download Reports",
230                                     "xtype": "Button",
231                                     "|icon": "rootURL + '/Pman/templates/images/spreadsheet.gif'",
232                                     "|xns": "Roo.Toolbar",
233                                     "items": [
234                                         {
235                                             "|xns": "Roo.menu",
236                                             "xtype": "Menu",
237                                             "*prop": "menu",
238                                             "items": [
239                                                 {
240                                                     "listeners": {
241                                                         "click": "function (_self, e)\n{\n    if (!_this.itemsiteCombo.getValue().length  && \n        !_this.locationCombo.getValue() && \n        !_this.dateSel.getValue() && \n        !_this.endDateSel.getValue()) {\n        _this.grid.ds.removeAll();\n        Roo.MessageBox.alert(\"Error\", \"Nothing to download!\");\n        return false;\n    }\n    \n    new Pman.Download({\n        //params : {_asExcel : 1,  limit : 99999},\n        grid : _this.grid,\n        newWindow : 1\n    });\n    \n    Roo.MessageBox.alert(\"Notice\", \"Report will download shortly\");\n}"
242                                                     },
243                                                     "text": "History",
244                                                     "xtype": "Item",
245                                                     "|xns": "Roo.menu"
246                                                 },
247                                                 {
248                                                     "listeners": {
249                                                         "click": "function (_self, e)\n{\n    \n    var dt = _this.dateSel.getValue();\n    var end_dt =           _this.endDateSel.getValue();\n   \n    \n    if(!dt){\n        Roo.Msg.alert('Error', 'Please select a FROM date to download');\n        return;\n    }\n    if(!end_dt){\n        Roo.Msg.alert('Error', 'Please select a TO date to download');\n        return;\n    }\n    \n    var    params = {\n        _group : 'invhist',\n        _name : 'summary',\n        'from_dt:text' : dt,\n        'to_dt:text' : end_dt,\n                \n        csvCols : '*',\n        csvTitles : '*',    \n        limit : 9999   \n        \n    }\n    if (  _this.locationCombo.getValue() * 1) {\n              params['invdetail_location_id:number']  =  _this.locationCombo.getValue() ;\n    }\n    \n    \n    new Pman.Download({\n        url : baseURL + '/Roo/Metasql',\n        method : 'GET',\n        params :  params\n    });\n    \n    Roo.MessageBox.alert(\"Notice\", \"Report will download shortly\");\n}"
250                                                     },
251                                                     "text": "Summary of Orders/Transfers",
252                                                     "xtype": "Item",
253                                                     "|xns": "Roo.menu"
254                                                 },
255                                                 {
256                                                     "|xns": "Roo.menu",
257                                                     "xtype": "Separator"
258                                                 },
259                                                 {
260                                                     "listeners": {
261                                                         "click": "function (_self, e)\n{\n\n    new Pman.Download({\n        url : baseURL + '/Roo/Metasql',\n        method : 'GET',\n        params : {\n            _group : 'inventory',\n            _name : 'asset',\n            csvCols : '*',\n            csvTitles : '*', \n            limit : 9999         \n            \n        }\n    });\n    \n    Roo.MessageBox.alert(\"Notice\", \"Report will download shortly\");\n}"
262                                                     },
263                                                     "text": "Day by Day - GL to stock comparison",
264                                                     "xtype": "Item",
265                                                     "|xns": "Roo.menu"
266                                                 },
267                                                 {
268                                                     "listeners": {
269                                                         "click": "function (_self, e)\n{\n    var dt = _this.dateSel.getValue();\n    \n    if(!dt){\n        Roo.Msg.alert('Error', 'Please select a FROM date to download');\n        return;\n    }\n    \n    new Pman.Download({\n        url : baseURL + '/Roo/Metasql',\n        method : 'GET',\n        params : {\n            _group : 'inventory',\n            _name : 'bydate',\n            '_as_of:text' : typeof(dt) == 'string' ? dt : dt.format('Y-m-d'),\n            csvCols : '*',\n            csvTitles : '*', \n            limit : 9999         \n            \n        }\n    });\n    \n    Roo.MessageBox.alert(\"Notice\", \"Report will download shortly\");\n}"
270                                                     },
271                                                     "text": "Inventory Transactions on From date",
272                                                     "xtype": "Item",
273                                                     "|xns": "Roo.menu"
274                                                 },
275                                                 {
276                                                     "listeners": {
277                                                         "click": "function (_self, e)\n{\n    var dt = _this.dateSel.getValue();\n    \n    if(!dt){\n        Roo.Msg.alert('Error', 'Please select a FROM date to download');\n        return;\n    }\n    \n    new Pman.Download({\n        url : baseURL + '/Roo/Metasql',\n        method : 'GET',\n        params : {\n            _group : 'gltrans',\n            _name : 'bydate',\n            '_as_of:text' : typeof(dt) == 'string' ? dt : dt.format('Y-m-d'),\n            csvCols : '*',\n            csvTitles : '*', \n            limit : 9999         \n            \n        }\n    });\n    \n    Roo.MessageBox.alert(\"Notice\", \"Report will download shortly\");\n}"
278                                                     },
279                                                     "text": "GL Stock Transactions on From date",
280                                                     "xtype": "Item",
281                                                     "|xns": "Roo.menu"
282                                                 },
283                                                 {
284                                                     "|xns": "Roo.menu",
285                                                     "xtype": "Separator"
286                                                 },
287                                                 {
288                                                     "listeners": {
289                                                         "click": "function (_self, e)\n{\n    var dt = _this.dateSel.getValue();\n    var end_dt =           _this.endDateSel.getValue();\n    var location_id =           _this.locationCombo.getValue() *1;\n    \n    if(!dt){\n        Roo.Msg.alert('Error', 'Please select a FROM date to download');\n        return;\n    }\n    if(!end_dt){\n        Roo.Msg.alert('Error', 'Please select a TO date to download');\n        return;\n    }\n     if(!location_id){\n        Roo.Msg.alert('Error', 'Please select a Location to download');\n        return;\n    }\n    new Pman.Download({\n        url : baseURL + '/Roo/Metasql',\n        newWindow : 1,\n        method : 'GET',\n        params : {\n            _group : 'invdetail',\n            '_name[0]' : 'opening',\n            '_name[1]' : 'closing',                        \n            '_name[2]' : 'byitem',\n            '_name[3]' : 'bydate',     \n            'location_id:number' : location_id,\n            'from_dt:text' : typeof(dt) == 'string' ? dt : dt.format('Y-m-d'),\n            'to_dt:text' : typeof(end_dt) == 'string' ? end_dt : end_dt.format('Y-m-d'),            \n            limit : 9999         \n            \n        }\n    });\n    \n    Roo.MessageBox.alert(\"Notice\", \"Report will download shortly\");\n}\n"
290                                                     },
291                                                     "text": "Consignment Detail Report",
292                                                     "xtype": "Item",
293                                                     "|xns": "Roo.menu"
294                                                 }
295                                             ]
296                                         }
297                                     ]
298                                 }
299                             ]
300                         },
301                         {
302                             "listeners": {
303                                 "beforeload": "function (_self, o)\n{\n    if (!_this.itemsiteCombo.getValue().length  && \n        !_this.locationCombo.getValue() && \n        !_this.dateSel.getValue() && \n        !_this.endDateSel.getValue()) {\n        _this.grid.ds.removeAll();\n        return false;\n    }\n    o.params['query[item_number]'] = _this.itemsiteCombo.getValue();\n    o.params.invdetail_location_id   = _this.locationCombo.getValue();\n    o.params['query[viewtype]']   = _this.viewtype.getValue();    \n    o.params._with_item =1;\n    \n    var start = _this.dateSel.getValue();\n    var end = _this.endDateSel.getValue();\n   \n    o.params['query[dateSel]'] = typeof(start) == 'string' ? start : start.format('Y-m-d');\n    o.params['query[endDateSel]'] = typeof(end) == 'string' ? end : end.format('Y-m-d');\n    \n    o.params._with_balance = 1;\n    \n   \n}"
304                             },
305                             "*prop": "dataSource",
306                             "remoteSort": true,
307                             "xtype": "Store",
308                             "|sortInfo": "{ field : 'invhist_transdate,invdetail_id', direction: 'DESC' }",
309                             "|xns": "Roo.data",
310                             "items": [
311                                 {
312                                     "*prop": "proxy",
313                                     "method": "GET",
314                                     "xtype": "HttpProxy",
315                                     "|url": "baseURL + '/Roo/invdetail.php'",
316                                     "|xns": "Roo.data"
317                                 },
318                                 {
319                                     "|xns": "Roo.data",
320                                     "xtype": "JsonReader",
321                                     "totalProperty": "total",
322                                     "root": "data",
323                                     "*prop": "reader",
324                                     "id": "id",
325                                     "|fields": "[\n    {\n        'name': 'invhist_id',\n        'type': 'int'\n    },\n    {\n        'name': 'invhist_itemsite_id',\n        'type': 'int'\n    },\n    {\n        'name': 'invhist_transdate',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'invhist_transtype',\n        'type': 'string'\n    },\n    {\n        'name': 'invhist_invqty',\n        'type': 'float'\n    },\n    {\n        'name': 'invhist_invuom',\n        'type': 'string'\n    },\n    {\n        'name': 'invhist_ordnumber',\n        'type': 'string'\n    },\n    {\n        'name': 'invhist_docnumber',\n        'type': 'string'\n    },\n    {\n        'name': 'invhist_qoh_before',\n        'type': 'float'\n    },\n    {\n        'name': 'invhist_qoh_after',\n        'type': 'float'\n    },\n    {\n        'name': 'invhist_unitcost',\n        'type': 'float'\n    },\n    {\n        'name': 'invhist_acct_id',\n        'type': 'int'\n    },\n    {\n        'name': 'invhist_xfer_warehous_id',\n        'type': 'int'\n    },\n    {\n        'name': 'invhist_comments',\n        'type': 'string'\n    },\n    {\n        'name': 'invhist_posted',\n        'type': 'int'\n    },\n    {\n        'name': 'invhist_imported',\n        'type': 'int'\n    },\n    {\n        'name': 'invhist_hasdetail',\n        'type': 'int'\n    },\n    {\n        'name': 'invhist_ordtype',\n        'type': 'string'\n    },\n    {\n        'name': 'invhist_analyze',\n        'type': 'int'\n    },\n    {\n        'name': 'invhist_user',\n        'type': 'string'\n    },\n    {\n        'name': 'invhist_created',\n        'type': 'date',\n        'dateFormat': 'Y-m-d'\n    },\n    {\n        'name': 'invhist_costmethod',\n        'type': 'string'\n    },\n    {\n        'name': 'invhist_value_before',\n        'type': 'float'\n    },\n    {\n        'name': 'invhist_value_after',\n        'type': 'float'\n    },\n    {\n        'name': 'invhist_series',\n        'type': 'int'\n    }\n]"
326                                 }
327                             ]
328                         },
329                         {
330                             "*prop": "footer",
331                             "displayInfo": true,
332                             "displayMsg": "Displaying invhist{0} - {1} of {2}",
333                             "emptyMsg": "No invhist found",
334                             "pageSize": 25,
335                             "xtype": "PagingToolbar",
336                             "|xns": "Roo",
337                             "items": [
338                                 {
339                                     "listeners": {
340                                         "click": "function (_self, e)\n{\n   Roo.MessageBox.progress (\"Syncing Fifo fill\", \"Sending\");\n  \n   var offset = 0;\n   var st = new Date();\n   \n   // for a single location.\n   \n   \n  \n   var runSync=  function() {\n       \n\n       \n       \n       new Pman.Request( {\n            url : baseURL+'/Roo/Invdetail',\n            method : 'GET',\n            timeout : 60000,\n            params : {\n                _fifo_fill : 1,\n                offset : offset,\n                location_id : _this.locationCombo.getValue(),\n                item_number : _this.itemsiteCombo.getValue()\n            },\n            success : function(res) {\n                Roo.log(res);\n                if (!res.data.total) {\n                    Roo.MessageBox.hide();\n                    return;\n                }\n                var el = new Date();\n       \n                var elapsed = el - st;\n                \n                var total_time = (elapsed / offset) * res.data.total ;\n                var remaining = (total_time - elapsed) / (1000 * 60);\n                \n                \n                offset = res.data.offset + res.data.limit;\n                Roo.MessageBox.updateProgress ( offset  / res.data.total, \"Done \" + offset + '/' + res.data.total + \n                    \" Est. complete in \" + remaining.toFixed(1) + \"mins\");\n                runSync();\n            }, \n            failure : function() {\n                Roo.MessageBox.alert(\"Error\", \"Sending failed - probably a timeout\");\n            }\n            \n        \n       });\n   }\n   runSync();\n}\n"
341                                     },
342                                     "text": "Fifo Fill",
343                                     "xtype": "Button",
344                                     "|xns": "Roo.Toolbar"
345                                 },
346                                 {
347                                     "listeners": {
348                                         "click": "function (_self, e)\n{\n   Roo.MessageBox.progress (\"Syncing Fifo fill values\", \"Sending\");\n  \n   var offset = 0;\n   var st = new Date();\n   \n   // for a single location.\n   \n   \n  \n   var runSync=  function() {\n       \n\n       \n       \n       new Pman.Request( {\n            url : baseURL+'/Roo/Invdetail',\n            method : 'GET',\n            timeout : 60000,\n            params : {\n                _fifo_fill : 2,\n                offset : offset,\n                location_id : _this.locationCombo.getValue(),\n                item_number : _this.itemsiteCombo.getValue()\n            },\n            success : function(res) {\n                Roo.log(res);\n                if (!res.data.total) {\n                    Roo.MessageBox.hide();\n                    return;\n                }\n                var el = new Date();\n       \n                var elapsed = el - st;\n                \n                var total_time = (elapsed / offset) * res.data.total ;\n                var remaining = (total_time - elapsed) / (1000 * 60);\n                \n                \n                offset = res.data.offset + res.data.limit;\n                Roo.MessageBox.updateProgress ( offset  / res.data.total, \"Done \" + offset + '/' + res.data.total + \n                    \" Est. complete in \" + remaining.toFixed(1) + \"mins\");\n                runSync();\n            }, \n            failure : function() {\n                Roo.MessageBox.alert(\"Error\", \"Sending failed - probably a timeout\");\n            }\n            \n        \n       });\n   }\n   runSync();\n}\n"
349                                     },
350                                     "text": "Fifo Fill Values",
351                                     "xtype": "Button",
352                                     "|xns": "Roo.Toolbar"
353                                 },
354                                 {
355                                     "listeners": {
356                                         "click": "\nfunction (_self, e)\n{\n   Roo.MessageBox.progress (\"Syncing shipvoid fill\", \"Sending\");\n  \n   var offset = 0;\n   var st = new Date();\n   \n   // for a single location.\n   \n   \n  \n   var runSync=  function() {\n        \n       \n       new Pman.Request( {\n            url : baseURL+'/Roo/cohead',\n            method : 'GET',\n            timeout : 60000,\n            params : {\n                _fill_shipvoid : 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                var el = new Date();\n       \n                var elapsed = el - st;\n                \n                var total_time = (elapsed / offset) * res.data.total ;\n                var remaining = (total_time - elapsed) / (1000 * 60);\n                \n                \n                offset = res.data.offset + res.data.limit;\n                Roo.MessageBox.updateProgress ( offset  / res.data.total, \"Done \" + offset + '/' + res.data.total + \n                    \" Est. complete in \" + remaining.toFixed(1) + \"mins\");\n                runSync();\n            }, \n            failure : function() {\n                Roo.MessageBox.alert(\"Error\", \"Sending failed - probably a timeout\");\n            }\n            \n        \n       });\n   }\n   runSync();\n}\n"
357                                     },
358                                     "text": "Shipvoid Fill",
359                                     "xtype": "Button",
360                                     "|xns": "Roo.Toolbar"
361                                 }
362                             ]
363                         },
364                         {
365                             "*prop": "colModel[]",
366                             "align": "right",
367                             "dataIndex": "invdetail_id",
368                             "header": "Invdetail#",
369                             "width": 75,
370                             "xtype": "ColumnModel",
371                             "|renderer": "function(v,x,r) { \n    if (r.data.invfifo_void > 0) { \n        return '<s>' + v + '</s>'; \n    }\n    return v;\n }",
372                             "|xns": "Roo.grid"
373                         },
374                         {
375                             "*prop": "colModel[]",
376                             "dataIndex": "invhist_transdate",
377                             "header": "Date",
378                             "sortable": true,
379                             "width": 75,
380                             "xtype": "ColumnModel",
381                             "|renderer": "function(v,x,r) {\n    \n    var vv = Date.parseDate(v.split(' ')[0],'Y-m-d' );\n    \n    if (r.data.invfifo_void > 0) { \n        return String.format('<s>{0}</s>', vv ? vv.format('d/M/Y') : '');\n    } \n    \n    return String.format('{0}', vv ? vv.format('d/M/Y') : '');\n }",
382                             "|xns": "Roo.grid"
383                         },
384                         {
385                             "*prop": "colModel[]",
386                             "dataIndex": "invhist_created",
387                             "header": "Entered",
388                             "hidden": true,
389                             "sortable": true,
390                             "width": 75,
391                             "xtype": "ColumnModel",
392                             "|renderer": "function(v) { \n    var vv = Date.parseDate(v.split(' ')[0],'Y-m-d' );\n    return String.format('{0}', vv ? vv.format('d/M/Y') : '');\n }",
393                             "|xns": "Roo.grid"
394                         },
395                         {
396                             "*prop": "colModel[]",
397                             "dataIndex": "item_number",
398                             "header": "Item",
399                             "width": 75,
400                             "xtype": "ColumnModel",
401                             "|renderer": "function(v) { \n     \n    return String.format('<b>{0}</b>', v );\n }",
402                             "|xns": "Roo.grid"
403                         },
404                         {
405                             "*prop": "colModel[]",
406                             "dataIndex": "invhist_ordnumber",
407                             "header": "Order#",
408                             "width": 100,
409                             "xtype": "ColumnModel",
410                             "|renderer": "function(v,x,r) {\n\n\n     return String.format('{0}', v); }",
411                             "|xns": "Roo.grid"
412                         },
413                         {
414                             "*prop": "colModel[]",
415                             "dataIndex": "invhist_docnumber",
416                             "header": "doc#",
417                             "width": 100,
418                             "xtype": "ColumnModel",
419                             "|renderer": "function(v) { return String.format('{0}', v); }",
420                             "|xns": "Roo.grid"
421                         },
422                         {
423                             "*prop": "colModel[]",
424                             "dataIndex": "invhist_transtype",
425                             "header": "Type",
426                             "width": 50,
427                             "xtype": "ColumnModel",
428                             "|renderer": "function(v,x,r) { return String.format('{0}/{1}', v,r.data.invhist_ordtype); }",
429                             "|xns": "Roo.grid"
430                         },
431                         {
432                             "*prop": "colModel[]",
433                             "align": "right",
434                             "dataIndex": "invhist_unitcost",
435                             "header": " unitcost",
436                             "width": 50,
437                             "xtype": "ColumnModel",
438                             "|renderer": "function(v) { return String.format('{0}', v); }",
439                             "|xns": "Roo.grid"
440                         },
441                         {
442                             "*prop": "colModel[]",
443                             "dataIndex": "location_name",
444                             "header": "Location",
445                             "width": 100,
446                             "xtype": "ColumnModel",
447                             "|renderer": "function(v) { return String.format('<B>{0}</B>', v); }",
448                             "|xns": "Roo.grid"
449                         },
450                         {
451                             "*prop": "colModel[]",
452                             "align": "right",
453                             "dataIndex": "invdetail_qty",
454                             "header": "Change",
455                             "width": 50,
456                             "xtype": "ColumnModel",
457                             "|renderer": "function(v,x,r) \n{\n    if (r.data.invfifo_void > 0) { \n        return String.format('<s>{0}</s>', parseInt( v)); \n    } \n    return String.format('{0}', parseInt( v)); \n}",
458                             "|xns": "Roo.grid"
459                         },
460                         {
461                             "*prop": "colModel[]",
462                             "align": "right",
463                             "dataIndex": "invdetail_balance_qty",
464                             "header": "Balance",
465                             "width": 75,
466                             "xtype": "ColumnModel",
467                             "|renderer": "function(v,x,r) \n{\n    if (r.data.invfifo_void > 0) { \n        return String.format('<s>{0}</s>', parseInt( v)); \n    } \n    return String.format('{0}', parseInt( v)); \n}",
468                             "|xns": "Roo.grid"
469                         },
470                         {
471                             "xtype": "ColumnModel",
472                             "header": "Invhist comments",
473                             "width": 200,
474                             "dataIndex": "invhist_comments",
475                             "|renderer": "function(v) { return String.format('{0}', v); }",
476                             "|xns": "Roo.grid",
477                             "*prop": "colModel[]"
478                         },
479                         {
480                             "*prop": "colModel[]",
481                             "align": "right",
482                             "dataIndex": "invfifo_qty_after",
483                             "header": "Fifo After",
484                             "width": 75,
485                             "xtype": "ColumnModel",
486                             "|renderer": "function(v,x,r) { \n    if ( r.data.invdetail_qty < 0 ) {\n        return '';\n    }\n    return   (v*1).toFixed(0) ;\n }",
487                             "|xns": "Roo.grid"
488                         },
489                         {
490                             "*prop": "colModel[]",
491                             "align": "right",
492                             "dataIndex": "invfifo_qty_after",
493                             "header": "Fifo After",
494                             "width": 75,
495                             "xtype": "ColumnModel",
496                             "|renderer": "function(v,x,r) { \n    if ( r.data.invdetail_qty > 0 ) {\n        return '';\n    }\n    return   (v*1).toFixed(0) ;\n }",
497                             "|xns": "Roo.grid"
498                         },
499                         {
500                             "*prop": "colModel[]",
501                             "align": "right",
502                             "dataIndex": "invfifo_cost_before",
503                             "header": "Fifo Cost Before",
504                             "width": 75,
505                             "xtype": "ColumnModel",
506                             "|renderer": "function(v,x,r) { \n        if ( r.data.invdetail_qty < 0 ) {\n        return '';\n    } \n    return   (v*1).toFixed(2) ;\n }",
507                             "|xns": "Roo.grid"
508                         },
509                         {
510                             "*prop": "colModel[]",
511                             "align": "right",
512                             "dataIndex": "invfifo_cost_after",
513                             "header": "Fifo Cost After",
514                             "width": 75,
515                             "xtype": "ColumnModel",
516                             "|renderer": "function(v,x,r) { \n        if ( r.data.invdetail_qty < 0 ) {\n        return '';\n    } \n    return   (v*1).toFixed(2) ;\n }",
517                             "|xns": "Roo.grid"
518                         },
519                         {
520                             "*prop": "colModel[]",
521                             "align": "right",
522                             "dataIndex": "invfifo_cost_before",
523                             "header": "Fifo Cost Before",
524                             "width": 75,
525                             "xtype": "ColumnModel",
526                             "|renderer": "function(v,x,r) { \n    if ( r.data.invdetail_qty > 0 ) {\n        return '';\n    }\n    return   (v*1).toFixed(2) ;\n }",
527                             "|xns": "Roo.grid"
528                         },
529                         {
530                             "*prop": "colModel[]",
531                             "align": "right",
532                             "dataIndex": "invfifo_cost_after",
533                             "header": "Fifo Cost After",
534                             "width": 75,
535                             "xtype": "ColumnModel",
536                             "|renderer": "function(v,x,r) { \n    if ( r.data.invdetail_qty > 0 ) {\n        return '';\n    }\n    return   (v*1).toFixed(2) ;\n }",
537                             "|xns": "Roo.grid"
538                         },
539                         {
540                             "*prop": "colModel[]",
541                             "align": "right",
542                             "dataIndex": "invfifo_unitcost",
543                             "header": "Fifo Unitcost",
544                             "width": 75,
545                             "xtype": "ColumnModel",
546                             "|renderer": "function(v,x,r) \n{\n    if (r.data.invfifo_void > 0) { \n        return   '<s>' + (v*1).toFixed(2) + '</s>';\n    } \n    return   (v*1).toFixed(2) ;\n}",
547                             "|xns": "Roo.grid"
548                         },
549                         {
550                             "*prop": "colModel[]",
551                             "align": "right",
552                             "dataIndex": "invfifo_landedunitcost",
553                             "header": "Fifo Landed Unitcost",
554                             "width": 75,
555                             "xtype": "ColumnModel",
556                             "|renderer": "function(v,x,r) { \n    \n    var cu = ((r.data.invfifo_cost_after*1 - r.data.invfifo_cost_before*1) / Math.abs(r.data.invdetail_qty)).toFixed(2);\n    var lu = (v*1).toFixed(2) ;\n    if (cu != lu) {\n        \n        if (r.data.invfifo_void > 0) { \n            return   '<s><span style=\"color:red\">' + + lu +'/' +cu + '</span></s>';\n        } \n        \n        return '<span style=\"color:red\">' + lu +'/' +cu + '</span>';\n    }\n    if (r.data.invfifo_void > 0) { \n        return   '<s>' + lu + '</s>';\n    } \n        \n    return  lu;\n }",
557                             "|xns": "Roo.grid"
558                         }
559                     ]
560                 }
561             ]
562         }
563     ],
564     "permname": "",
565     "modOrder": "005"
566 }