Fix #7123 - getting abra ready to test
[Pman.Xtuple] / Pman.Dialog.XtupleTransfer.bjs
index 6669b12..52d4da4 100644 (file)
@@ -1,5 +1,5 @@
 {
-    "id": "roo-file-35",
+    "id": "roo-file-37",
     "name": "Pman.Dialog.XtupleTransfer",
     "parent": "",
     "title": "",
@@ -54,7 +54,7 @@
                                     "items": [
                                         {
                                             "listeners": {
-                                                "|actioncomplete": "function(_self,action)\n{\n    if (action.type == 'setdata') {\n       //_this.dialog.el.mask(\"Loading\");\n       Roo.log('setdata');\n       Roo.log(_this.data);       \n       // reversal...\n       _this.grid.setColumns();\n       _this.saveBtn.show();            \n       if (_this.data.createFromRev) {\n            Roo.log('recvg');\n            this.load({ method: 'GET', params: { '_createFromRecv' : _this.data.createFromRev }});       \n            return;\n       \n       }\n       \n        if (_this.data.invhist_transfer_id) {\n        \n        \n            var tdb = baseURL.split('/').pop().split('.').shift();\n            if (tdb != _this.data._roo_office) {\n                this.el.mask('Remote Transfer - Read Only');\n                _this.grid.view.headerPanel.mask(\"\");\n                _this.uploadBtn.hide();\n                _this.saveBtn.hide();                \n            } else {\n                this.el.unmask();\n                _this.grid.view.headerPanel.unmask();\n                _this.uploadBtn.show();\n                _this.saveBtn.show();                \n            }\n            \n        \n        \n            this.load({ method: 'GET', params: {\n                 _id : _this.data.invhist_transfer_id,\n                 _roo_office  : _this.data._roo_office\n           }});\n            return;\n        } \n        _this.grid.ds.removeAll();\n        _this.form.setValues({\n            invhist_transfer_transdate : \n                    typeof(_this.data.invhist_transfer_transdate) == 'undefined' ? \n                            (new Date()).format('Y-m-d') :\n                            _this.data.invhist_transfer_transdate\n                        ,\n            invhist_transfer_number : 'AUTOMATIC',\n            _roo_office :  _this.data._roo_office\n        });\n        \n        if(_this.data._createReverse){\n            if(_this.grid){\n                new Pman.Request({\r\n                    url : baseURL + '/Roo/invhist_transfer_item',\r\n                    method : 'GET',\r\n                    params : {\r\n                        invhist_transfer_item_invhist_transfer_id : _this.data._createReverse,\r\n                        'query[at_location]' : _this.data.invhist_transfer_from,\n                        _requestMeta : 1,\n                        limit : 999,\n                        sort : 'invhist_transfer_item_line',\n                        dir : 'ASC'\r\n                    },\r\n                    success : function (res) \r\n                    {\n                        Roo.log('loadData');\n                        Roo.log(res); \r\n                       _this.grid.ds.loadData(res,false);\r\n                    }\r\n                });\n            }\n        }\n        \n        this.setValues({\n            invhist_transfer_salesrep_id : Pman.Login.authUser.salesrep.salesrep_id,\n            invhist_transfer_salesrep_id_salesrep_name : Pman.Login.authUser.salesrep.salesrep_name\n        });\n        \n        \n        if (typeof(_this.data._ns_autofill) != 'undefined') {\n            Roo.log(\"autofill: \" +  _this.data._ns_autofill);\n        \n           \n            var locid = _this.data._ns_autofill === 1 ?_this.data.invhist_transfer_to  : _this.data.invhist_transfer_from; \n            // clear it so it's not done again..\n            \n            Roo.log(\"locid: \" + locid);\n            \n             var rn = 0;\n             var addRow = function(r) {\n                    \n                    var nsQty = r.netsuite_qty*1;\n                    nsQty = nsQty < 1 ? 0 : nsQty;\n                    \n                    var ourQty = r.itemsite_qty *1;\n                    var addQty = 0;\n                    if (_this.data._ns_autofill === 1) {\n                        // then we are trying to transfer from somewhere to her, to increase the qty to match\n                        // so if  ourQty < nsQty\n                        if (ourQty < nsQty) {\n                            addQty = nsQty - ourQty;\n                        }\n                        \n                    } else {\n                        // we are trying to transfer out to get rid of stock to match..\n                        if (nsQty < ourQty) {\n                            addQty = ourQty - nsQty;\n                        }\n                    }\n                    \n                    if (addQty * 1 < 1) {\n                    \n                        return;\n                    }\n                    \n                   var nr = _this.grid.ds.reader.newRow({\n                        invhist_transfer_item_line : rn + 1,\n                        item_id : r.itemsite_item_id,    \n                        invhist_transfer_item_itemsite_id :         r.itemsite_id,    \n                        item_number : r.itemsite_item_id_item_number,\n                        item_descrip1 : r.itemsite_item_id_item_descrip1,\n                        invhist_transfer_item_qty : addQty,\n                        item_availqty : 0 \n                       // invhist_transfer_item_transfer_id : tid << we do not know this?!?\n                   });\n                     _this.grid.ds.insert(rn++, nr); \n                \n            };\n            \n            \n            \n            \n            // do the request..\n            new Pman.Request({\n                url : baseURL + '/Roo/itemsite',\n                mask: \"Fetching Stock Quantities\",\n                method : 'GET',\n                params : {\n                    limit : 99999,\n                    location_id : locid,\n                    _as_of : _this.data.invhist_transfer_transdate,\n                    _with_stock_and_value : 1,\n                    _with_ns_all_stock : 1,\n                    'sort' :  'itemsite_item_id_item_number',\n                    'dir' : 'ASC'\n                },\n                success : function(res) {\n                    Roo.log(res);\n                     Roo.each(res.data, addRow);\n                     _this.data._ns_autofill = undefined;\n                }\n            });\n        }\n        \n       return;\n    }\n    if (action.type == 'load') {\n    \n        // fix date..\n        this.findField('_roo_office').setValue(  _this.data._roo_office );\n        Roo.log(action);\n        _this.data = action.result.data;\n        if(_this.data.invhist_transfer_void){\n            _this.saveBtn.hide();\n        }\n        var dt = Date.parseDate(_this.data.invhist_transfer_transdate.split(' ')[0], \"Y-m-d\");\n        _this.form.findField('invhist_transfer_transdate').setValue(dt);\n        var dt = Date.parseDate(_this.data.invhist_transfer_arrivaldate.split(' ')[0],\"Y-m-d\");\n        _this.form.findField('invhist_transfer_arrivaldate').setValue(dt);\n        _this.grid.ds.load({});\n        \n        return;\n    }\n    if (action.type =='submit') {\n    \n        \n        _this.dialog.hide();\n    \n         if (_this.callback) {\n            _this.callback.call(_this, _this.form.getValues());\n         }\n         _this.form.reset();\n         return;\n    }\n}\n",
+                                                "|actioncomplete": "function(_self,action)\n{\n    if (action.type == 'setdata') {\n       //_this.dialog.el.mask(\"Loading\");\n       Roo.log('setdata');\n       Roo.log(_this.data);       \n       // reversal...\n       _this.toLocation._is_internalcompany = false;\n       _this.grid.setColumns();\n       _this.saveBtn.show();            \n       if (_this.data.createFromRev) {\n            Roo.log('recvg');\n            this.load({ method: 'GET', params: { '_createFromRecv' : _this.data.createFromRev }});       \n            return;\n       \n       }\n       \n        if (_this.data.invhist_transfer_id) {\n        \n        \n            var tdb = baseURL.split('/').pop().split('.').shift();\n            if (tdb != _this.data._roo_office) {\n                this.el.mask('Remote Transfer - Read Only');\n                _this.grid.view.headerPanel.mask(\"\");\n                _this.uploadBtn.hide();\n                _this.saveBtn.hide();                \n            } else {\n                this.el.unmask();\n                _this.grid.view.headerPanel.unmask();\n                _this.uploadBtn.show();\n                _this.saveBtn.show();                \n            }\n            \n        \n        \n            this.load({ method: 'GET', params: {\n                 _id : _this.data.invhist_transfer_id,\n                 _roo_office  : _this.data._roo_office\n           }});\n            return;\n        } \n        _this.grid.ds.removeAll();\n        _this.form.setValues({\n            invhist_transfer_transdate : \n                    typeof(_this.data.invhist_transfer_transdate) == 'undefined' ? \n                            (new Date()).format('Y-m-d') :\n                            _this.data.invhist_transfer_transdate\n                        ,\n            invhist_transfer_number : 'AUTOMATIC',\n            _roo_office :  _this.data._roo_office\n        });\n        \n        if(_this.data._createReverse){\n            if(_this.grid){\n                new Pman.Request({\r\n                    url : baseURL + '/Roo/invhist_transfer_item',\r\n                    method : 'GET',\r\n                    params : {\r\n                        invhist_transfer_item_invhist_transfer_id : _this.data._createReverse,\r\n                        'query[at_location]' : _this.data.invhist_transfer_from,\n                        _requestMeta : 1,\n                        limit : 999,\n                        sort : 'invhist_transfer_item_line',\n                        dir : 'ASC'\r\n                    },\r\n                    success : function (res) \r\n                    {\n                        Roo.log('loadData');\n                        Roo.log(res); \r\n                       _this.grid.ds.loadData(res,false);\r\n                    }\r\n                });\n            }\n        }\n        \n        this.setValues({\n            invhist_transfer_salesrep_id : Pman.Login.authUser.salesrep.salesrep_id,\n            invhist_transfer_salesrep_id_salesrep_name : Pman.Login.authUser.salesrep.salesrep_name\n        });\n        \n        \n        if (typeof(_this.data._ns_autofill) != 'undefined') {\n            Roo.log(\"autofill: \" +  _this.data._ns_autofill);\n        \n           \n            var locid = _this.data._ns_autofill === 1 ?_this.data.invhist_transfer_to  : _this.data.invhist_transfer_from; \n            // clear it so it's not done again..\n            \n            Roo.log(\"locid: \" + locid);\n            \n             var rn = 0;\n             var addRow = function(r) {\n                    \n                    var nsQty = r.netsuite_qty*1;\n                    nsQty = nsQty < 1 ? 0 : nsQty;\n                    \n                    var ourQty = r.itemsite_qty *1;\n                    var addQty = 0;\n                    if (_this.data._ns_autofill === 1) {\n                        // then we are trying to transfer from somewhere to her, to increase the qty to match\n                        // so if  ourQty < nsQty\n                        if (ourQty < nsQty) {\n                            addQty = nsQty - ourQty;\n                        }\n                        \n                    } else {\n                        // we are trying to transfer out to get rid of stock to match..\n                        if (nsQty < ourQty) {\n                            addQty = ourQty - nsQty;\n                        }\n                    }\n                    \n                    if (addQty * 1 < 1) {\n                    \n                        return;\n                    }\n                    \n                   var nr = _this.grid.ds.reader.newRow({\n                        invhist_transfer_item_line : rn + 1,\n                        item_id : r.itemsite_item_id,    \n                        invhist_transfer_item_itemsite_id :         r.itemsite_id,    \n                        item_number : r.itemsite_item_id_item_number,\n                        item_descrip1 : r.itemsite_item_id_item_descrip1,\n                        invhist_transfer_item_qty : addQty,\n                        item_availqty : 0 \n                       // invhist_transfer_item_transfer_id : tid << we do not know this?!?\n                   });\n                     _this.grid.ds.insert(rn++, nr); \n                \n            };\n            \n            \n            \n            \n            // do the request..\n            new Pman.Request({\n                url : baseURL + '/Roo/itemsite',\n                mask: \"Fetching Stock Quantities\",\n                method : 'GET',\n                params : {\n                    limit : 99999,\n                    location_id : locid,\n                    _as_of : _this.data.invhist_transfer_transdate,\n                    _with_stock_and_value : 1,\n                    _with_ns_all_stock : 1,\n                    'sort' :  'itemsite_item_id_item_number',\n                    'dir' : 'ASC'\n                },\n                success : function(res) {\n                    Roo.log(res);\n                     Roo.each(res.data, addRow);\n                     _this.data._ns_autofill = undefined;\n                }\n            });\n        }\n        \n       return;\n    }\n    if (action.type == 'load') {\n    \n        // fix date..\n        this.findField('_roo_office').setValue(  _this.data._roo_office );\n        Roo.log(action);\n        _this.data = action.result.data;\n        \n        _this.toLocation._is_internalcompany = true;\n        if(!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length){\n            _this.toLocation._is_internalcompany = false;\n        }\n        \n        if(_this.data.invhist_transfer_void){\n            _this.saveBtn.hide();\n        }\n        var dt = Date.parseDate(_this.data.invhist_transfer_transdate.split(' ')[0], \"Y-m-d\");\n        _this.form.findField('invhist_transfer_transdate').setValue(dt);\n        var dt = Date.parseDate(_this.data.invhist_transfer_arrivaldate.split(' ')[0],\"Y-m-d\");\n        _this.form.findField('invhist_transfer_arrivaldate').setValue(dt);\n        _this.grid.ds.load({});\n        \n        return;\n    }\n    if (action.type =='submit') {\n    \n        \n        _this.dialog.hide();\n    \n         if (_this.callback) {\n            _this.callback.call(_this, _this.form.getValues());\n         }\n         _this.form.reset();\n         return;\n    }\n}\n",
                                                 "|rendered": "function (form)\n{\n    _this.form= form;\n}\n"
                                             },
                                             "method": "POST",
                                                             "xtype": "Row",
                                                             "items": [
                                                                 {
+                                                                    "actionMode": "fieldEl",
                                                                     "allowBlank": true,
                                                                     "displayField": "desc",
                                                                     "editable": false,
                                             "clicksToEdit": 1,
                                             "loadMask": true,
                                             "xtype": "EditorGrid",
-                                            "|setColumns": "function() {\n    var cm = _this.grid.getColumnModel();\n    \n    function cid(str) {\n        return cm.getIndexByDataIndex(str);\n    }\n    \n    if((!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length) && !_this.toLocation._is_internalcompany){\n        cm.setHidden(cid('invhist_transfer_item_unit_price'), true);\n        cm.setHidden(cid('invhist_transfer_item_unit_price_default'), true);\n        return;\n    }\n    \n    cm.setHidden(cid('invhist_transfer_item_unit_price'), false);\n    cm.setHidden(cid('invhist_transfer_item_unit_price_default'), false);\n}\n",
+                                            "|setColumns": "function() {\n    var cm = _this.grid.getColumnModel();\n    \n    function cid(str) {\n        return cm.getIndexByDataIndex(str);\n    }\n    \n    if((!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length) && !_this.toLocation._is_internalcompany){\n        cm.setHidden(cid('invhist_transfer_item_unit_price'), true);\n        cm.setHidden(cid('invhist_transfer_item_unit_price_default'), true);\n        _this.form.findField('invhist_transfer_price').hide();\n        return;\n    }\n    \n    cm.setHidden(cid('invhist_transfer_item_unit_price'), false);\n    cm.setHidden(cid('invhist_transfer_item_unit_price_default'), false);\n    _this.form.findField('invhist_transfer_price').show();\n}\n",
                                             "|xns": "Roo.grid",
                                             "items": [
                                                 {
                                                         {
                                                             "*prop": "proxy",
                                                             "method": "GET",
+                                                            "timeout": 180000,
                                                             "xtype": "HttpProxy",
                                                             "|url": "baseURL + '/Xtuple/Roo/invhist_transfer_item.php'",
                                                             "|xns": "Roo.data"
                 },
                 {
                     "listeners": {
-                        "|activate": "function() {\n    _this.tpanel = this;\n    if (_this.tgrid) {\n        _this.tgrid.footer.onClick('first');\n    }\n}"
+                        "|activate": "function() {\n    _this.tpanel = this;\n    if (_this.tgrid) {\n        _this.tgrid.ds.load({});\n    }\n}"
                     },
                     "background": true,
                     "fitContainer": true,
                     "items": [
                         {
                             "listeners": {
-                                "|render": "function() \n{\n    _this.tgrid = this; \n    if (_this.tpanel.active) {\n       this.footer.onClick('first');\n    }\n}"
+                                "|render": "function() \n{\n    _this.tgrid = this; \n    if (_this.tpanel.active) {\n       this.ds.load({});\n    }\n}"
                             },
                             "*prop": "grid",
                             "autoExpandColumn": "item_number",
                             "xtype": "Grid",
                             "|xns": "Roo.grid",
                             "items": [
+                                {
+                                    "|xns": "Roo",
+                                    "xtype": "Toolbar",
+                                    "*prop": "toolbar",
+                                    "items": [
+                                        {
+                                            "listeners": {
+                                                "|click": "function()\n{\n    var id = _this.form.findField('invhist_transfer_id').getValue();\n\n    if(id * 1 < 1){\n        return;\n    }\n    \n    var err = false;\n    \n    _this.tgrid.ds.each(function (r) {\n        if (_this.data.invhist_transfer_void && r.data.transfered_qty * 1 == 0 && r.data.expected_qty * 1 == 0) {\n            return;\n        }\n        if(!_this.data.invhist_transfer_void && r.data.transfered_qty * 1 - r.data.expected_qty * 1 == 0){\n            return;\n        }\n        \n        err = true;\n   });\n   \n   if(!err){\n        Roo.MessageBox.alert(\"Notice\", \"Nothing Wrong!\");\n        return;\n   }\n   \n    new Pman.Request({\n        url : baseURL + '/Roo/invhist_transfer',\n        method : 'POST',\n        mask: 'Fixing',\n        timeout : 1200000, //20 minutes...! - big xfer should be 10mins.\n        params : {\n            invhist_transfer_id : id,\n            _fix : 1\n        },\n        success : function () \n        {\n            _this.tgrid.ds.load({});\n        }\n    });\n    \n    \n    \n}\n"
+                                            },
+                                            "cls": "x-btn-text-icon",
+                                            "text": "Fix Transfer",
+                                            "xtype": "Button",
+                                            "|icon": "Roo.rootURL + 'images/default/tree/leaf.gif'",
+                                            "|xns": "Roo.Toolbar"
+                                        }
+                                    ]
+                                },
                                 {
                                     "listeners": {
-                                        "beforeload": "function (_self, options)\n{\n    options.params = options.params || {};\n\n    if(!_this.data.invhist_transfer_posted || _this.data.cust_to_internalcompany.length){\n        return false;\n    }\n    \n    var id = _this.form.findField('invhist_transfer_id').getValue();\n    \n    options.params.invhist_transfer_item_invhist_transfer_id = id;\n    \n    \n}"
+                                        "beforeload": "function (_self, options)\n{\n    options.params = options.params || {};\n    options.params.limit = 9999;\n    if(_this.data.cust_to_internalcompany.length){\n        this.removeAll();\n        return false;\n    }\n    \n    var id = _this.form.findField('invhist_transfer_id').getValue();\n    \n    if(id * 1 < 1){\n        this.removeAll();\n        return false;\n    }\n    \n    options.params.invhist_transfer_item_invhist_transfer_id = id;\n    \n    options.params._with_expected = 1;\n    \n}"
                                     },
                                     "*prop": "dataSource",
                                     "remoteSort": true,
                                         }
                                     ]
                                 },
-                                {
-                                    "*prop": "footer",
-                                    "displayInfo": true,
-                                    "displayMsg": "Displaying Transfer Items{0} - {1} of {2}",
-                                    "emptyMsg": "Nothing found",
-                                    "pageSize": 25,
-                                    "xtype": "PagingToolbar",
-                                    "|xns": "Roo"
-                                },
                                 {
                                     "*prop": "colModel[]",
                                     "dataIndex": "item_number",
                                     "header": "Item#",
                                     "width": 120,
                                     "xtype": "ColumnModel",
-                                    "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y H:i:s') : ''); }",
+                                    "|renderer": "function(v) { return String.format('{0}', v ? v : ''); }",
                                     "|xns": "Roo.grid"
                                 },
                                 {
                                     "*prop": "colModel[]",
-                                    "dataIndex": "invhist_transfer_item_qty",
-                                    "header": "Qty",
+                                    "dataIndex": "transfered_qty",
+                                    "header": "Transfered",
                                     "width": 100,
                                     "xtype": "ColumnModel",
-                                    "|renderer": "function(v) { return String.format('{0}', v); }",
+                                    "|renderer": "function(v,x,r) \n{ \n    if(v && r.data.transfered_qty * 1 != r.data.expected_qty * 1){\n        return String.format('<span style=\"color:red\">{0}</span>', v); \n    }\n    return String.format('{0}', v ? v : 0);  \n}",
                                     "|xns": "Roo.grid"
                                 },
                                 {
                                     "*prop": "colModel[]",
-                                    "dataIndex": "invhist_transfer_item_qty",
-                                    "header": "Moved Qty",
+                                    "dataIndex": "expected_qty",
+                                    "header": "Expected",
                                     "width": 100,
                                     "xtype": "ColumnModel",
-                                    "|renderer": "function(v) { return String.format('{0}', v); }",
+                                    "|renderer": "function(v,x,r) \n{ \n    \n    if(v && r.data.transfered_qty * 1 != r.data.expected_qty * 1){\n        return String.format('<span style=\"color:red\">{0}</span>', v); \n    }\n    return String.format('{0}', v ? v : 0); \n}",
                                     "|xns": "Roo.grid"
                                 }
                             ]
                 },
                 {
                     "listeners": {
-                        "click": "function (_self, e)\n{\n\n   new Pman.Download({\n        url : baseURL + '/Xtuple/Roo/invhist_transfer',\n        method : 'GET',\n        params : {\n            _roo_office : _this.form.findField('_roo_office').getValue(),\n           _download : _this.data.invhist_transfer_id \n             \n        }\n    });\n    \n    \n\n}"
+                        "click": "function (_self, e)\n{\n\n   new Pman.Download({\n        url : baseURL + '/Xtuple/Roo/invhist_transfer',\n        method : 'GET',\n        timeout : 90000,\n        params : {\n            _roo_office : _this.form.findField('_roo_office').getValue(),\n           _download : _this.data.invhist_transfer_id \n             \n        }\n    });\n    \n    \n\n}"
                     },
                     "*prop": "buttons[]",
                     "text": "Download (Excel)",