1 //<script type="text/javascript">
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
5 Pman.Dialog.XtupleTransfer = {
10 show : function(data, cb)
18 this.dialog.show(this.data._el);
21 this.form.setValues(data);
22 this.form.fireEvent('actioncomplete', this.form, { type: 'setdata', data: data });
30 this.dialog = Roo.factory({
31 xtype: 'LayoutDialog',
34 show : function (_self)
36 this.layout.getRegion('center').showPanel(0);
44 title : "Edit / Create Inventory Transfer",
48 xtype: 'NestedLayoutPanel',
51 title : "Inventory Transfer",
53 xtype: 'BorderLayout',
57 xtype: 'ContentPanel',
65 actioncomplete : function(_self,action)
67 if (action.type == 'setdata') {
68 //_this.dialog.el.mask("Loading");
72 _this.grid.setColumns();
74 if (_this.data.createFromRev) {
76 this.load({ method: 'GET', params: { '_createFromRecv' : _this.data.createFromRev }});
81 if (_this.data.invhist_transfer_id) {
84 var tdb = baseURL.split('/').pop().split('.').shift();
85 if (tdb != _this.data._roo_office) {
86 this.el.mask('Remote Transfer - Read Only');
87 _this.grid.view.headerPanel.mask("");
88 _this.uploadBtn.hide();
92 _this.grid.view.headerPanel.unmask();
93 _this.uploadBtn.show();
99 this.load({ method: 'GET', params: {
100 _id : _this.data.invhist_transfer_id,
101 _roo_office : _this.data._roo_office
105 _this.grid.ds.removeAll();
106 _this.form.setValues({
107 invhist_transfer_transdate :
108 typeof(_this.data.invhist_transfer_transdate) == 'undefined' ?
109 (new Date()).format('Y-m-d') :
110 _this.data.invhist_transfer_transdate
112 invhist_transfer_number : 'AUTOMATIC',
113 _roo_office : _this.data._roo_office
116 if(_this.data._createReverse){
119 url : baseURL + '/Roo/invhist_transfer_item',
\r
122 invhist_transfer_item_invhist_transfer_id : _this.data._createReverse,
\r
123 'query[at_location]' : _this.data.invhist_transfer_from,
126 sort : 'invhist_transfer_item_line',
129 success : function (res)
\r
133 _this.grid.ds.loadData(res,false);
\r
140 invhist_transfer_salesrep_id : Pman.Login.authUser.salesrep.salesrep_id,
141 invhist_transfer_salesrep_id_salesrep_name : Pman.Login.authUser.salesrep.salesrep_name
145 if (typeof(_this.data._ns_autofill) != 'undefined') {
146 Roo.log("autofill: " + _this.data._ns_autofill);
149 var locid = _this.data._ns_autofill === 1 ?_this.data.invhist_transfer_to : _this.data.invhist_transfer_from;
150 // clear it so it's not done again..
152 Roo.log("locid: " + locid);
155 var addRow = function(r) {
157 var nsQty = r.netsuite_qty*1;
158 nsQty = nsQty < 1 ? 0 : nsQty;
160 var ourQty = r.itemsite_qty *1;
162 if (_this.data._ns_autofill === 1) {
163 // then we are trying to transfer from somewhere to her, to increase the qty to match
164 // so if ourQty < nsQty
165 if (ourQty < nsQty) {
166 addQty = nsQty - ourQty;
170 // we are trying to transfer out to get rid of stock to match..
171 if (nsQty < ourQty) {
172 addQty = ourQty - nsQty;
176 if (addQty * 1 < 1) {
181 var nr = _this.grid.ds.reader.newRow({
182 invhist_transfer_item_line : rn + 1,
183 item_id : r.itemsite_item_id,
184 invhist_transfer_item_itemsite_id : r.itemsite_id,
185 item_number : r.itemsite_item_id_item_number,
186 item_descrip1 : r.itemsite_item_id_item_descrip1,
187 invhist_transfer_item_qty : addQty,
189 // invhist_transfer_item_transfer_id : tid << we do not know this?!?
191 _this.grid.ds.insert(rn++, nr);
200 url : baseURL + '/Roo/itemsite',
201 mask: "Fetching Stock Quantities",
206 _as_of : _this.data.invhist_transfer_transdate,
207 _with_stock_and_value : 1,
208 _with_ns_all_stock : 1,
209 'sort' : 'itemsite_item_id_item_number',
212 success : function(res) {
214 Roo.each(res.data, addRow);
215 _this.data._ns_autofill = undefined;
222 if (action.type == 'load') {
225 this.findField('_roo_office').setValue( _this.data._roo_office );
227 _this.data = action.result.data;
228 if(_this.data.invhist_transfer_void){
229 _this.saveBtn.hide();
231 var dt = Date.parseDate(_this.data.invhist_transfer_transdate.split(' ')[0], "Y-m-d");
232 _this.form.findField('invhist_transfer_transdate').setValue(dt);
233 var dt = Date.parseDate(_this.data.invhist_transfer_arrivaldate.split(' ')[0],"Y-m-d");
234 _this.form.findField('invhist_transfer_arrivaldate').setValue(dt);
235 _this.grid.ds.load({});
239 if (action.type =='submit') {
244 if (_this.callback) {
245 _this.callback.call(_this, _this.form.getValues());
251 rendered : function (form)
257 style : 'margin:10px;',
258 url : baseURL + '/Xtuple/Roo/invhist_transfer.php',
268 legend : "Transfer Details",
269 style : 'width: 380px;height:220px;',
277 name : 'invhist_transfer_transdate',
284 fieldLabel : 'Arrival date',
286 name : 'invhist_transfer_arrivaldate',
292 fieldLabel : 'Reference #',
293 name : 'invhist_transfer_number',
301 displayField : 'salesrep_name',
303 emptyText : "Select salesrep",
304 fieldLabel : 'Sales Rep',
305 forceSelection : true,
306 hiddenName : 'invhist_transfer_salesrep_id',
308 loadingText : "Searching...",
310 name : 'invhist_transfer_salesrep_id_salesrep_name',
312 qtip : "Select salesrep",
313 queryParam : 'query[salesrep_name]',
314 selectOnFocus : true,
315 tpl : '<div class="x-grid-cell-text x-btn button"><b>{salesrep_name}</b> </div>',
316 triggerAction : 'all',
318 valueField : 'salesrep_id',
324 beforeload : function (_self, o){
325 o.params = o.params || {};
330 sortInfo : { direction : 'ASC', field: 'salesrep_name' },
335 url : baseURL + '/Roo/salesrep.php'
342 totalProperty : 'total',
343 fields : [{"name":"salesrep_id","type":"int"},"salesrep_name"]
351 render : function (_self)
353 _this.fromLocation = _self;
357 displayField : 'location_descrip',
359 emptyText : "Select location",
360 fieldLabel : 'From Location',
361 forceSelection : true,
362 hiddenName : 'invhist_transfer_from',
364 loadingText : "Searching...",
366 name : 'invhist_transfer_from_location_descrip',
368 qtip : "Select location",
369 queryParam : 'query[location_name]',
370 selectOnFocus : true,
371 tpl : '<div class="x-grid-cell-text x-btn button"><b>{location_name}</b> - {location_descrip} </div>',
372 triggerAction : 'all',
373 valueField : 'location_id',
379 beforeload : function (_self, o){
380 o.params = o.params || {};
383 o.params._notinternalcompany = 1;
388 sortInfo : { direction : 'ASC', field: 'location_name' },
393 url : baseURL + '/Roo/location.php'
400 totalProperty : 'total',
401 fields : [{"name":"id","type":"int"},{"name":"location_name","type":"string"}]
409 select : function (combo, record, index)
411 combo._is_internalcompany = false;
413 if(record.data.cust_to_internalcompany.length){
414 combo._is_internalcompany = true;
417 _this.grid.setColumns();
419 render : function (_self)
421 _this.toLocation = _self;
425 displayField : 'location_descrip',
427 emptyText : "Select location",
428 fieldLabel : 'To Location',
429 forceSelection : true,
430 hiddenName : 'invhist_transfer_to',
432 loadingText : "Searching...",
434 name : 'invhist_transfer_to_location_descrip',
436 qtip : "Select location",
437 queryParam : 'query[location_name]',
438 selectOnFocus : true,
439 tpl : '<div class="x-grid-cell-text x-btn button"><b>{location_name}</b> - <b style="color:red">{location_cust_id_char_internalcompany} </b> {location_descrip} </div>',
440 triggerAction : 'all',
441 valueField : 'location_id',
447 beforeload : function (_self, o){
448 o.params = o.params || {};
449 o.params.location_restrict = 0;
450 o.params._with_internalcompany = 1;
455 sortInfo : { direction : 'ASC', field: 'location_name' },
460 url : baseURL + '/Roo/location.php'
467 totalProperty : 'total',
468 fields : [{"name":"id","type":"int"},{"name":"location_name","type":"string"}]
479 style : 'margin-left: 10px; float: left;',
486 legend : "Transfer Delivery Note Reference",
487 style : 'width: 260px',
492 fieldLabel : 'invhist_transfer_delivery_note',
493 name : 'invhist_transfer_delivery_note',
502 legend : "Transfer Description",
503 style : 'width: 260px',
508 fieldLabel : 'invhist_transfer_descrip',
509 name : 'invhist_transfer_descrip',
522 displayField : 'desc',
524 fieldLabel : 'Transfer Price',
525 hiddenName : 'invhist_transfer_price',
528 name : 'invhist_transfer_price_desc',
529 triggerAction : 'all',
534 xtype: 'SimpleStore',
537 [ 'PRICELIST', "At Transfer Price"],
538 [ 'LASTPLUS' , "Last Purchase +10% + 15% or stdcost +15%"],
539 [ 'STDCOST' , "stdcost - for old transfers only%"]
542 fields : [ 'code', 'desc']
552 name : 'transfer_items'
562 name : 'invhist_transfer_id'
572 activate : function() {
575 _this.grid.ds.load({});
582 tableName : 'invhist_transfer_item',
583 title : "invhist_transfer_item",
591 //_this.dialog = Pman.Dialog.FILL_IN
592 if (_this.panel.active) {
596 rowdblclick : function (_self, rowIndex, e)
598 if (!_this.dialog) return;
599 _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {
600 _this.grid.footer.onClick('first');
603 beforeedit : function (e)
605 if(_this.data.invhist_transfer_posted){
606 Roo.MessageBox.alert('Error', 'This transfer has been posted');
609 if(_this.data.invhist_transfer_void){
610 Roo.MessageBox.alert('Error', 'This transfer has been voided');
614 if(e.field == 'invhist_transfer_item_unit_price' && (!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length) && !_this.toLocation._is_internalcompany){
615 Roo.MessageBox.alert('Error', 'Not a inter-comany transfer');
623 autoExpandColumn : 'item_descrip1',
626 setColumns : function() {
627 var cm = _this.grid.getColumnModel();
630 return cm.getIndexByDataIndex(str);
633 if((!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length) && !_this.toLocation._is_internalcompany){
634 cm.setHidden(cid('invhist_transfer_item_unit_price'), true);
635 cm.setHidden(cid('invhist_transfer_item_unit_price_default'), true);
639 cm.setHidden(cid('invhist_transfer_item_unit_price'), false);
640 cm.setHidden(cid('invhist_transfer_item_unit_price_default'), false);
643 xtype: 'CellSelectionModel',
646 tabend : function (_self)
648 _this.addItemBtn.fireEvent('click', _this.addItemBtn);
656 beforeload : function (_self, o)
659 o.params = o.params || {};
664 o.params.invhist_transfer_item_invhist_transfer_id = _this.form.findField('invhist_transfer_id').getValue() * 1;
666 if ( !o.params.invhist_transfer_item_invhist_transfer_id) {
667 _this.grid.ds.removeAll();
671 o.params['query[at_location]'] = _this.form.findField('invhist_transfer_from').getValue();
672 o.params.limit = 999;
673 o.params._roo_office = _this.form.findField('_roo_office').getValue();
675 _this.grid.setColumns();
677 if(!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length){
681 o.params._inter_transfer = 1;
688 sortInfo : { field : 'invhist_transfer_item_line', direction: 'ASC' },
693 url : baseURL + '/Xtuple/Roo/invhist_transfer_item.php'
700 totalProperty : 'total',
703 'name': 'invhist_transfer_item_id',
707 'name': 'invhist_transfer_item_invhist_transfer_id',
711 'name': 'invhist_transfer_item_itemsite_id',
715 'name': 'invhist_transfer_item_qty',
719 'name': 'invhist_transfer_item_line',
723 'name': 'invhist_transfer_invhist_id',
746 if (_this.data.invhist_transfer_posted) {
747 Roo.MessageBox.alert("Error", "Transfer has been posted, void it first");
752 var grid = _this.grid;
755 _this.grid.ds.each(function(r) {
756 last = r.data.invhist_transfer_item_line;
761 var nr = _this.grid.ds.reader.newRow({
762 invhist_transfer_item_line : last,
765 invhist_transfer_item_qty : 0,
767 invhist_transfer_item_transfer_id : _this.form.findField('invhist_transfer_id').getValue()
771 grid.ds.insert(grid.ds.getCount(), nr);
772 grid.startEditing(grid.ds.getCount()-1, 1); // type..
774 render : function (_self)
776 _this.addItemBtn = _self;
779 cls : 'x-btn-text-icon',
781 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
786 cls : 'x-btn-text-icon',
787 text : "Fill based on Stock",
788 icon : Roo.rootURL + 'images/default/dd/drop-add.gif',
799 var rn = _this.grid.ds.getCount();
800 var tid = 1 * _this.form.findField('invhist_transfer_id').getValue();
801 var addRow = function(r) {
803 if (r.itemsite_qty * 1 < 1) {
807 var nr = _this.grid.ds.reader.newRow({
808 invhist_transfer_item_line : rn + 1,
809 item_id : r.itemsite_item_id,
810 invhist_transfer_item_itemsite_id : r.itemsite_id,
811 item_number : r.itemsite_item_id_item_number,
812 item_descrip1 : r.itemsite_item_id_item_descrip1,
813 invhist_transfer_item_qty : r.itemsite_qty,
815 invhist_transfer_item_transfer_id : tid
817 _this.grid.ds.insert(rn++, nr);
821 var loc = _this.form.findField('invhist_transfer_from').getValue()*1;
822 var dt = _this.form.findField('invhist_transfer_transdate').getValue().format('Y-m-d');
824 _this.grid.stopEditing();
827 url : baseURL + '/Roo/itemsite',
828 mask : 'Fetching stock',
831 limit : 2000, // alot!
832 _with_stock_and_value : 1,
836 'sort' : 'itemsite_item_id_item_number',
839 success : function(r) {
841 Roo.each(r.data, addRow);
855 render : function (_self)
857 _this.addItemBtn = _self;
860 cls : 'x-btn-text-icon',
861 text : "Transfer all from Location",
862 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
870 var rn = _this.grid.ds.getCount();
871 var tid = 1 * _this.form.findField('invhist_transfer_id').getValue();
874 var addRow = function(r) {
876 if (r.itemsite_qty * 1 > -1) {
880 var nr = _this.grid.ds.reader.newRow({
881 invhist_transfer_item_line : rn + 1,
882 item_id : r.itemsite_item_id,
883 invhist_transfer_item_itemsite_id : r.itemsite_id,
884 item_number : r.itemsite_item_id_item_number,
885 item_descrip1 : r.itemsite_item_id_item_descrip1,
886 invhist_transfer_item_qty : Math.abs(r.itemsite_qty),
888 invhist_transfer_item_transfer_id : tid
890 _this.grid.ds.insert(rn++, nr);
894 var loc = _this.form.findField('invhist_transfer_to').getValue()*1;
895 var dt = _this.form.findField('invhist_transfer_transdate').getValue().format('Y-m-d');
897 _this.grid.stopEditing();
900 url : baseURL + '/Roo/itemsite',
901 mask : 'Fetching stock',
904 limit : 2000, // alot!
905 _with_stock_and_value : 1,
909 'sort' : 'itemsite_item_id_item_number',
912 success : function(r) {
914 Roo.each(r.data, addRow);
928 render : function (_self)
930 _this.addItemBtn = _self;
933 cls : 'x-btn-text-icon',
934 text : "Fill negative at Target",
935 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
950 _this.grid.stopEditing();
952 if (_this.data.invhist_transfer_posted) {
953 Roo.MessageBox.alert("Error", "Transfer has been posted, void it first");
957 var rc= _this.grid.selModel.getSelectedCell();
959 Roo.MessageBox.alert("Error", "Select a item to delete");
963 var rec = _this.grid.ds.getAt(rc[0]);
964 _this.grid.ds.remove(rec);
967 rec = _this.grid.ds.getAt(rc[0]);
969 _this.grid.selModel.select(rc[0], 2);
975 } // nothing left to select..
976 _this.grid.selModel.select(rc[0]-1, 2);
983 cls : 'x-btn-text-icon',
985 icon : rootURL + '/Pman/templates/images/trash.gif'
991 xtype: 'ColumnModel',
993 dataIndex : 'invhist_transfer_item_line',
996 renderer : function(v) { return String.format('{0}', v); }
999 xtype: 'ColumnModel',
1001 dataIndex : 'item_id',
1002 header : 'Item Code',
1004 renderer : function(v,x,r) {
1005 return String.format('{0}', r.data.item_number);
1008 xtype: 'GridEditor',
1014 beforeselect : function (combo, record, index)
1016 // set _this.data values ..
1017 var ar = _this.grid.activeEditor.record;
1018 //Roo.log('beforeselect');
1020 // Roo.log('beforeselect-cb');
1021 ar.set('item_descrip1', record.data.itemsite_item_id_item_descrip1);
1022 // ar.set('coitem_price', record.data.item_listprice);
1023 // ar.set('coitem_custprice', record.data.item_price);
1024 ar.set('invhist_transfer_item_itemsite_id', record.data.itemsite_id);
1025 ar.set('item_number', record.data.itemsite_item_id_item_number);
1026 ar.set('avail_at_location', record.data.avail_at_location);
1033 displayField : 'itemsite_item_id_item_number',
1035 emptyText : "Select item",
1036 forceSelection : true,
1037 hiddenName : 'itemsite_item_id_item_number',
1039 loadingText : "Searching...",
1041 name : 'item_number',
1043 qtip : "Select item",
1044 queryParam : 'query[number]',
1045 selectOnFocus : true,
1046 tpl : '<div class="x-grid-cell-text x-btn button"><b>{itemsite_item_id_item_number}</b> {itemsite_item_id_item_descrip1} ({avail_at_location})</div>',
1047 triggerAction : 'all',
1048 valueField : 'item_number',
1053 beforeload : function (_self, o){
1054 o.params = o.params || {};
1056 o.params['query[at_location]'] = _this.form.findField('invhist_transfer_from').getValue();
1061 sortInfo : { direction : 'ASC', field: 'itemsite_item_id_item_number' },
1066 url : baseURL + '/Roo/itemsite.php'
1069 xtype: 'JsonReader',
1073 totalProperty : 'total',
1074 fields : [{"name":"item_id","type":"int"},"item_number"]
1081 xtype: 'ColumnModel',
1083 dataIndex : 'item_descrip1',
1084 header : 'Description',
1086 renderer : function(v,x,r) { return String.format('{0}', v); }
1089 xtype: 'ColumnModel',
1092 dataIndex : 'avail_at_location',
1093 header : 'Cur. Avail',
1095 renderer : function(v,x,r) { return String.format('{0}', v); }
1098 xtype: 'ColumnModel',
1101 dataIndex : 'invhist_transfer_item_qty',
1104 renderer : function(v,x,r) {
1105 var vv = parseInt(v);
1106 //var aq = parseInt(r.data.avail_qty);
1107 //aq = isNaN(aq) ? 0 : aq;
1112 return String.format('{0}', vv.toFixed(0));
1116 xtype: 'GridEditor',
1119 xtype: 'NumberField',
1121 allowDecimals : false,
1122 decimalPrecision : 0,
1124 style : 'text-align:right'
1129 xtype: 'ColumnModel',
1132 dataIndex : 'invhist_transfer_item_unit_price',
1133 header : 'Unit Price',
1136 renderer : function(v,x,r)
1141 var color = '#666'; // orignal color
1143 if(r.data.invhist_transfer_item_unit_price_default != v){
1147 return String.format('<span style="color:{0};">{1} {2}</span>', color, (r.data.invhist_transfer_item_curr_name) ? r.data.invhist_transfer_item_curr_name : '' , Roo.util.Format.number(v,2));
1150 xtype: 'GridEditor',
1153 xtype: 'NumberField',
1156 allowDecimals : true,
1157 decimalPrecision : 2,
1158 style : 'text-align:right'
1163 xtype: 'ColumnModel',
1166 dataIndex : 'invhist_transfer_item_unit_price_default',
1167 header : 'Default Price',
1170 renderer : function(v,x,r)
1175 return String.format('{0} {1}', (r.data.invhist_transfer_item_curr_name) ? r.data.invhist_transfer_item_curr_name : '' , Roo.util.Format.number(v,2));
1183 xtype: 'LayoutRegion',
1188 xtype: 'LayoutRegion',
1197 activate : function() {
1198 _this.ipanel = this;
1200 _this.igrid.footer.onClick('first');
1205 fitContainer : true,
1208 tableName : 'Images',
1209 title : "Reference Files",
1214 render : function() {
1216 //_this.dialog = Pman.Dialog.FILL_IN
1217 //if (_this.panel.active) {
1218 // this.footer.onClick('first');
1221 rowdblclick : function (_self, rowIndex, e)
1224 var s = _self.getDataSource().getAt(rowIndex);
1226 url : baseURL + '/Images/' + s.data.id
1232 autoExpandColumn : 'id',
1238 beforeload : function (_self, o)
1240 //o.params.ontable = 'Companies';
1242 // o.params.imgtype = 'PressRelease';
1244 o.params = o.params || {};
1245 o.params.onid = _this.form.findField('invhist_transfer_id').getValue();
1246 o.params.ontable = 'invhist_transfer';
1250 load : function (_self, records, options)
1252 _this.panel.el.unmask();
1256 sortInfo : { field: 'created' , direction: 'DESC' },
1258 xtype: 'JsonReader',
1262 totalProperty : 'total',
1297 'name': 'displayorder',
1305 'name': 'parent_image_id',
1311 'dateFormat' : 'Y-m-d H:i:s'
1335 url : baseURL + '/Roo/Images.php'
1339 xtype: 'PagingToolbar',
1343 displayMsg : "Displaying Images {0} - {1} of {2}",
1344 emptyMsg : "No Images found"
1357 //var sel = Pman.Tab.PressReleaseCompanies ? Pman.Tab.PressReleaseCompanies.grid.getSelectionModel().getSelected() : false
1359 Pman.Dialog.Image.show({
1361 ontable: 'invhist_transfer',
1362 onid: _this.form.findField('invhist_transfer_id').getValue(),
1365 if (!data) { return; }
1366 _this.igrid.footer.onClick('first');
1371 cls : 'x-btn-text-icon',
1373 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
1381 Pman.genericDelete(_this, 'Images');
1384 cls : 'x-btn-text-icon',
1386 icon : rootURL + '/Pman/templates/images/trash.gif'
1392 xtype: 'ColumnModel',
1394 dataIndex : 'created',
1398 renderer : function(v,x,r) {
1399 return String.format('{0}<br/><i>{1}</i><br/>{2}<br/><i>{3}x{4}</i>',
1400 v.format('d/M/Y'), r.data.mimetype, r.data.filename,
1401 r.data.width, r.data.height
1406 xtype: 'ColumnModel',
1411 renderer : function(v,x,r) { return String.format('<img src="{0}/Images/Thumb/100/{1}/{2}" height="100">', baseURL, v, r.data.filename); }
1420 activate : function() {
1421 _this.hpanel = this;
1423 _this.hgrid.footer.onClick('first');
1428 fitContainer : true,
1431 tableName : 'events',
1440 if (_this.hpanel.active) {
1441 this.footer.onClick('first');
1445 autoExpandColumn : 'remarks',
1451 beforeload : function (_self, options)
1453 options.params = options.params || {};
1455 options.params.on_table = 'invhist_transfer';
1456 options.params.on_id = _this.form.findField('invhist_transfer_id').getValue();
1460 sortInfo : { field : 'event_when', direction: 'DESC' },
1465 url : baseURL + '/Roo/events.php'
1468 xtype: 'JsonReader',
1472 totalProperty : 'total',
1475 'name': 'event_when',
1487 'name': 'person_id_name',
1498 xtype: 'PagingToolbar',
1501 displayMsg : "Displaying events{0} - {1} of {2}",
1502 emptyMsg : "No Events found",
1507 xtype: 'ColumnModel',
1509 dataIndex : 'event_when',
1512 renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y H:i:s') : ''); }
1515 xtype: 'ColumnModel',
1517 dataIndex : 'action',
1520 renderer : function(v,x,r) { return String.format('{0} - {1}', v, r.data.on_table); }
1523 xtype: 'ColumnModel',
1525 dataIndex : 'ipaddr',
1526 header : 'IP Address',
1528 renderer : function(v) { return String.format('{0}', v); }
1531 xtype: 'ColumnModel',
1533 dataIndex : 'person_id_name',
1536 renderer : function(v) { return String.format('{0}', v); }
1539 xtype: 'ColumnModel',
1541 dataIndex : 'remarks',
1544 renderer : function(v) { return String.format('{0}', v); }
1553 activate : function() {
1554 _this.tpanel = this;
1556 _this.tgrid.footer.onClick('first');
1561 fitContainer : true,
1564 tableName : 'invhist_transfer_item',
1565 title : "Transfered",
1573 if (_this.tpanel.active) {
1574 this.footer.onClick('first');
1578 autoExpandColumn : 'item_number',
1590 var id = _this.form.findField('invhist_transfer_id').getValue();
1600 cls : 'x-btn-text-icon',
1601 text : "Fix Transfer",
1602 icon : Roo.rootURL + 'images/default/tree/leaf.gif'
1610 beforeload : function (_self, options)
1612 options.params = options.params || {};
1614 if(_this.data.cust_to_internalcompany.length){
1619 var id = _this.form.findField('invhist_transfer_id').getValue();
1626 options.params.invhist_transfer_item_invhist_transfer_id = id;
1628 options.params._with_moved = 1;
1633 sortInfo : { field : 'invhist_transfer_item_line', direction: 'ASC' },
1638 url : baseURL + '/Roo/invhist_transfer_item.php'
1641 xtype: 'JsonReader',
1643 id : 'invhist_transfer_item_id',
1645 totalProperty : 'total',
1648 'name': 'invhist_transfer_item_id',
1652 'name': 'invhist_transfer_item_qty',
1656 'name': 'invhist_transfer_item_line',
1663 xtype: 'PagingToolbar',
1666 displayMsg : "Displaying Transfer Items{0} - {1} of {2}",
1667 emptyMsg : "Nothing found",
1672 xtype: 'ColumnModel',
1674 dataIndex : 'item_number',
1677 renderer : function(v) { return String.format('{0}', v ? v : ''); }
1680 xtype: 'ColumnModel',
1682 dataIndex : 'transfered_qty',
1683 header : 'Transfered',
1685 renderer : function(v) { return String.format('{0}', v ? v : 0); }
1688 xtype: 'ColumnModel',
1690 dataIndex : 'expected_qty',
1691 header : 'Expected',
1693 renderer : function(v,x,r)
1695 if(v && r.data.transfered_qty != r.data.expected_qty){
1696 return String.format('<span style="color:red">{0}</span>', v);
1698 return String.format('{0}', v ? v : 0);
1706 xtype: 'LayoutRegion',
1715 click : function (_self, e)
1718 var rn = _this.grid.ds.getCount();
1719 var tid = 1 * _this.form.findField('invhist_transfer_id').getValue();
1720 var addRow = function(r) {
1721 if (r.itemsite_qty * 1 < 1) {
1725 var nr = _this.grid.ds.reader.newRow({
1726 invhist_transfer_item_line : rn + 1,
1727 item_id : r.itemsite_item_id,
1728 invhist_transfer_item_itemsite_id : r.itemsite_id,
1729 item_number : r.itemsite_item_id_item_number,
1730 item_descrip1 : r.itemsite_item_id_item_descrip1,
1731 invhist_transfer_item_qty : r.itemsite_qty,
1733 avail_at_location : '',
1734 invhist_transfer_item_transfer_id : tid,
1735 invhist_transfer_item_unit_price : r.unit_price,
1736 invhist_transfer_item_unit_price_default : r.unit_price,
1738 _this.grid.ds.insert(rn++, nr);
1742 Pman.Dialog.Image.show(
1744 _url : baseURL + '/Xtuple/Import/Transfer'
1749 Roo.each(r.items, addRow);
1751 if (typeof(r.Date) !='undefined') {
1752 _this.form.findField('invhist_transfer_transdate').setValue( Date.parseDate((r.Date) ? r.Date : (new Date()).format('Y-m-d'), "Y-m-d"));
1754 if (typeof(r.ArrivalDate) !='undefined') {
1755 _this.form.findField('invhist_transfer_arrivaldate').setValue(Date.parseDate((r.ArrivalDate) ? r.ArrivalDate : (new Date()).format('Y-m-d'), "Y-m-d"));
1757 if(r.invhist_transfer_from){
1758 _this.fromLocation.setValue(r.invhist_transfer_from);
1759 _this.fromLocation.el.dom.value = r.invhist_transfer_from_location_name;
1761 if(r.invhist_transfer_to){
1762 _this.toLocation.setValue(r.invhist_transfer_to);
1763 _this.toLocation.el.dom.value = r.invhist_transfer_to_location_name;
1767 _this.toLocation._is_internalcompany = true;
1769 _this.grid.setColumns();
\r
1773 render : function (_self)
1775 _this.uploadBtn = _self;
1778 text : "Upload (Excel)"
1784 click : function (_self, e)
1788 url : baseURL + '/Xtuple/Roo/invhist_transfer',
1791 _roo_office : _this.form.findField('_roo_office').getValue(),
1792 _download : _this.data.invhist_transfer_id
1801 text : "Download (Excel)"
1807 click : function (_self, e)
1809 _this.grid.stopEditing();
1810 if (_this.data.invhist_transfer_posted || _this.data.invhist_transfer_void) {
1811 _this.dialog.hide();
1815 if (_this.data.createFromRev) {
1816 Roo.MessageBox.alert("Warning", "A draft item reciept has been created - please void it if it is not needed");
1817 _this.dialog.hide();
1823 Roo.MessageBox.confirm("Confirm", "Are you sure want to cancel, all changes will be lost", function(r) {
1828 _this.dialog.hide();
1842 click : function (_self, e)
1845 _this.grid.stopEditing();
1848 _this.grid.ds.each(function (r) {
1849 var missingqty = r.data.invhist_transfer_item_qty < 1;
1850 var missingsku = r.data.invhist_transfer_item_itemsite_id < 1;
1851 if (missingsku && missingqty) {
1857 err = "Missing Quantity on line : " + r.data.invhist_transfer_item_line;
1860 err = "Missing SKU on line : " + r.data.invhist_transfer_item_line;
1863 id: r.data.invhist_transfer_item_id,
1864 itemsite_id : r.data.invhist_transfer_item_itemsite_id,
1865 line: r.data.invhist_transfer_item_line,
1866 qty: r.data.invhist_transfer_item_qty,
1867 price : r.data.invhist_transfer_item_unit_price
1872 Roo.MessageBox.alert("Error", err);
1876 Roo.MessageBox.alert("Error", "Nothing listed to transfer");
1879 _this.form.findField('transfer_items').setValue( Roo.encode(ar));
1881 var arrivaldate = _this.form.findField('invhist_transfer_arrivaldate').getValue();
1882 var transferprice = _this.form.findField('invhist_transfer_price').getValue();
1884 if(_this.toLocation._is_internalcompany && !arrivaldate){
1885 Roo.MessageBox.alert("Error", "Arrival date must be filled in");
1888 if(_this.toLocation._is_internalcompany && !transferprice.length){
1889 Roo.MessageBox.alert("Error", "For inter company transfer a price must be set");
1893 _this.form.findField('invhist_transfer_arrivaldate').setValue(_this.form.findField('invhist_transfer_transdate').getValue());
1895 _this.form.doAction("submit");
1901 render : function (_self)
1903 _this.saveBtn = _self;