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.toLocation._is_internalcompany = false;
73 _this.grid.setColumns();
75 if (_this.data.createFromRev) {
77 this.load({ method: 'GET', params: { '_createFromRecv' : _this.data.createFromRev }});
82 if (_this.data.invhist_transfer_id) {
85 var tdb = baseURL.split('/').pop().split('.').shift();
86 if (tdb != _this.data._roo_office) {
87 this.el.mask('Remote Transfer - Read Only');
88 _this.grid.view.headerPanel.mask("");
89 _this.uploadBtn.hide();
93 _this.grid.view.headerPanel.unmask();
94 _this.uploadBtn.show();
100 this.load({ method: 'GET', params: {
101 _id : _this.data.invhist_transfer_id,
102 _roo_office : _this.data._roo_office
106 _this.grid.ds.removeAll();
107 _this.form.setValues({
108 invhist_transfer_transdate :
109 typeof(_this.data.invhist_transfer_transdate) == 'undefined' ?
110 (new Date()).format('Y-m-d') :
111 _this.data.invhist_transfer_transdate
113 invhist_transfer_number : 'AUTOMATIC',
114 _roo_office : _this.data._roo_office
117 if(_this.data._createReverse){
120 url : baseURL + '/Roo/invhist_transfer_item',
\r
123 invhist_transfer_item_invhist_transfer_id : _this.data._createReverse,
\r
124 'query[at_location]' : _this.data.invhist_transfer_from,
127 sort : 'invhist_transfer_item_line',
130 success : function (res)
\r
134 _this.grid.ds.loadData(res,false);
\r
141 invhist_transfer_salesrep_id : Pman.Login.authUser.salesrep.salesrep_id,
142 invhist_transfer_salesrep_id_salesrep_name : Pman.Login.authUser.salesrep.salesrep_name
146 if (typeof(_this.data._ns_autofill) != 'undefined') {
147 Roo.log("autofill: " + _this.data._ns_autofill);
150 var locid = _this.data._ns_autofill === 1 ?_this.data.invhist_transfer_to : _this.data.invhist_transfer_from;
151 // clear it so it's not done again..
153 Roo.log("locid: " + locid);
156 var addRow = function(r) {
158 var nsQty = r.netsuite_qty*1;
159 nsQty = nsQty < 1 ? 0 : nsQty;
161 var ourQty = r.itemsite_qty *1;
163 if (_this.data._ns_autofill === 1) {
164 // then we are trying to transfer from somewhere to her, to increase the qty to match
165 // so if ourQty < nsQty
166 if (ourQty < nsQty) {
167 addQty = nsQty - ourQty;
171 // we are trying to transfer out to get rid of stock to match..
172 if (nsQty < ourQty) {
173 addQty = ourQty - nsQty;
177 if (addQty * 1 < 1) {
182 var nr = _this.grid.ds.reader.newRow({
183 invhist_transfer_item_line : rn + 1,
184 item_id : r.itemsite_item_id,
185 invhist_transfer_item_itemsite_id : r.itemsite_id,
186 item_number : r.itemsite_item_id_item_number,
187 item_descrip1 : r.itemsite_item_id_item_descrip1,
188 invhist_transfer_item_qty : addQty,
190 // invhist_transfer_item_transfer_id : tid << we do not know this?!?
192 _this.grid.ds.insert(rn++, nr);
201 url : baseURL + '/Roo/itemsite',
202 mask: "Fetching Stock Quantities",
207 _as_of : _this.data.invhist_transfer_transdate,
208 _with_stock_and_value : 1,
209 _with_ns_all_stock : 1,
210 'sort' : 'itemsite_item_id_item_number',
213 success : function(res) {
215 Roo.each(res.data, addRow);
216 _this.data._ns_autofill = undefined;
223 if (action.type == 'load') {
226 this.findField('_roo_office').setValue( _this.data._roo_office );
228 _this.data = action.result.data;
230 _this.toLocation._is_internalcompany = true;
231 if(!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length){
232 _this.toLocation._is_internalcompany = false;
235 if(_this.data.invhist_transfer_void){
236 _this.saveBtn.hide();
238 var dt = Date.parseDate(_this.data.invhist_transfer_transdate.split(' ')[0], "Y-m-d");
239 _this.form.findField('invhist_transfer_transdate').setValue(dt);
240 var dt = Date.parseDate(_this.data.invhist_transfer_arrivaldate.split(' ')[0],"Y-m-d");
241 _this.form.findField('invhist_transfer_arrivaldate').setValue(dt);
242 _this.grid.ds.load({});
246 if (action.type =='submit') {
251 if (_this.callback) {
252 _this.callback.call(_this, _this.form.getValues());
258 rendered : function (form)
264 style : 'margin:10px;',
265 url : baseURL + '/Xtuple/Roo/invhist_transfer.php',
275 legend : "Transfer Details",
276 style : 'width: 380px;height:220px;',
284 name : 'invhist_transfer_transdate',
291 fieldLabel : 'Arrival date',
293 name : 'invhist_transfer_arrivaldate',
299 fieldLabel : 'Reference #',
300 name : 'invhist_transfer_number',
308 displayField : 'salesrep_name',
310 emptyText : "Select salesrep",
311 fieldLabel : 'Sales Rep',
312 forceSelection : true,
313 hiddenName : 'invhist_transfer_salesrep_id',
315 loadingText : "Searching...",
317 name : 'invhist_transfer_salesrep_id_salesrep_name',
319 qtip : "Select salesrep",
320 queryParam : 'query[salesrep_name]',
321 selectOnFocus : true,
322 tpl : '<div class="x-grid-cell-text x-btn button"><b>{salesrep_name}</b> </div>',
323 triggerAction : 'all',
325 valueField : 'salesrep_id',
331 beforeload : function (_self, o){
332 o.params = o.params || {};
337 sortInfo : { direction : 'ASC', field: 'salesrep_name' },
342 url : baseURL + '/Roo/salesrep.php'
349 totalProperty : 'total',
350 fields : [{"name":"salesrep_id","type":"int"},"salesrep_name"]
358 render : function (_self)
360 _this.fromLocation = _self;
364 displayField : 'location_descrip',
366 emptyText : "Select location",
367 fieldLabel : 'From Location',
368 forceSelection : true,
369 hiddenName : 'invhist_transfer_from',
371 loadingText : "Searching...",
373 name : 'invhist_transfer_from_location_descrip',
375 qtip : "Select location",
376 queryParam : 'query[location_name]',
377 selectOnFocus : true,
378 tpl : '<div class="x-grid-cell-text x-btn button"><b>{location_name}</b> - {location_descrip} </div>',
379 triggerAction : 'all',
380 valueField : 'location_id',
386 beforeload : function (_self, o){
387 o.params = o.params || {};
390 o.params._notinternalcompany = 1;
395 sortInfo : { direction : 'ASC', field: 'location_name' },
400 url : baseURL + '/Roo/location.php'
407 totalProperty : 'total',
408 fields : [{"name":"id","type":"int"},{"name":"location_name","type":"string"}]
416 select : function (combo, record, index)
418 combo._is_internalcompany = false;
420 if(record.data.cust_to_internalcompany.length){
421 combo._is_internalcompany = true;
424 _this.grid.setColumns();
426 render : function (_self)
428 _this.toLocation = _self;
432 displayField : 'location_descrip',
434 emptyText : "Select location",
435 fieldLabel : 'To Location',
436 forceSelection : true,
437 hiddenName : 'invhist_transfer_to',
439 loadingText : "Searching...",
441 name : 'invhist_transfer_to_location_descrip',
443 qtip : "Select location",
444 queryParam : 'query[location_name]',
445 selectOnFocus : true,
446 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>',
447 triggerAction : 'all',
448 valueField : 'location_id',
454 beforeload : function (_self, o){
455 o.params = o.params || {};
456 o.params.location_restrict = 0;
457 o.params._with_internalcompany = 1;
462 sortInfo : { direction : 'ASC', field: 'location_name' },
467 url : baseURL + '/Roo/location.php'
474 totalProperty : 'total',
475 fields : [{"name":"id","type":"int"},{"name":"location_name","type":"string"}]
486 style : 'margin-left: 10px; float: left;',
493 legend : "Transfer Delivery Note Reference",
494 style : 'width: 260px',
499 fieldLabel : 'invhist_transfer_delivery_note',
500 name : 'invhist_transfer_delivery_note',
509 legend : "Transfer Description",
510 style : 'width: 260px',
515 fieldLabel : 'invhist_transfer_descrip',
516 name : 'invhist_transfer_descrip',
528 actionMode : 'fieldEl',
530 displayField : 'desc',
532 fieldLabel : 'Transfer Price',
533 hiddenName : 'invhist_transfer_price',
536 name : 'invhist_transfer_price_desc',
537 triggerAction : 'all',
542 xtype: 'SimpleStore',
545 [ 'PRICELIST', "At Transfer Price"],
546 [ 'LASTPLUS' , "Last Purchase +10% + 15% or stdcost +15%"],
547 [ 'STDCOST' , "stdcost - for old transfers only%"]
550 fields : [ 'code', 'desc']
560 name : 'transfer_items'
570 name : 'invhist_transfer_id'
580 activate : function() {
583 _this.grid.ds.load({});
590 tableName : 'invhist_transfer_item',
591 title : "invhist_transfer_item",
599 //_this.dialog = Pman.Dialog.FILL_IN
600 if (_this.panel.active) {
604 rowdblclick : function (_self, rowIndex, e)
606 if (!_this.dialog) return;
607 _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {
608 _this.grid.footer.onClick('first');
611 beforeedit : function (e)
613 if(_this.data.invhist_transfer_posted){
614 Roo.MessageBox.alert('Error', 'This transfer has been posted');
617 if(_this.data.invhist_transfer_void){
618 Roo.MessageBox.alert('Error', 'This transfer has been voided');
622 if(e.field == 'invhist_transfer_item_unit_price' && (!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length) && !_this.toLocation._is_internalcompany){
623 Roo.MessageBox.alert('Error', 'Not a inter-comany transfer');
631 autoExpandColumn : 'item_descrip1',
634 setColumns : function() {
635 var cm = _this.grid.getColumnModel();
638 return cm.getIndexByDataIndex(str);
641 if((!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length) && !_this.toLocation._is_internalcompany){
642 cm.setHidden(cid('invhist_transfer_item_unit_price'), true);
643 cm.setHidden(cid('invhist_transfer_item_unit_price_default'), true);
644 _this.form.findField('invhist_transfer_price').hide();
648 cm.setHidden(cid('invhist_transfer_item_unit_price'), false);
649 cm.setHidden(cid('invhist_transfer_item_unit_price_default'), false);
650 _this.form.findField('invhist_transfer_price').show();
653 xtype: 'CellSelectionModel',
656 tabend : function (_self)
658 _this.addItemBtn.fireEvent('click', _this.addItemBtn);
666 beforeload : function (_self, o)
669 o.params = o.params || {};
674 o.params.invhist_transfer_item_invhist_transfer_id = _this.form.findField('invhist_transfer_id').getValue() * 1;
676 if ( !o.params.invhist_transfer_item_invhist_transfer_id) {
677 _this.grid.ds.removeAll();
681 o.params['query[at_location]'] = _this.form.findField('invhist_transfer_from').getValue();
682 o.params.limit = 999;
683 o.params._roo_office = _this.form.findField('_roo_office').getValue();
685 _this.grid.setColumns();
687 if(!_this.data.cust_to_internalcompany || !_this.data.cust_to_internalcompany.length){
691 o.params._inter_transfer = 1;
698 sortInfo : { field : 'invhist_transfer_item_line', direction: 'ASC' },
704 url : baseURL + '/Xtuple/Roo/invhist_transfer_item.php'
711 totalProperty : 'total',
714 'name': 'invhist_transfer_item_id',
718 'name': 'invhist_transfer_item_invhist_transfer_id',
722 'name': 'invhist_transfer_item_itemsite_id',
726 'name': 'invhist_transfer_item_qty',
730 'name': 'invhist_transfer_item_line',
734 'name': 'invhist_transfer_invhist_id',
757 if (_this.data.invhist_transfer_posted) {
758 Roo.MessageBox.alert("Error", "Transfer has been posted, void it first");
763 var grid = _this.grid;
766 _this.grid.ds.each(function(r) {
767 last = r.data.invhist_transfer_item_line;
772 var nr = _this.grid.ds.reader.newRow({
773 invhist_transfer_item_line : last,
776 invhist_transfer_item_qty : 0,
778 invhist_transfer_item_transfer_id : _this.form.findField('invhist_transfer_id').getValue()
782 grid.ds.insert(grid.ds.getCount(), nr);
783 grid.startEditing(grid.ds.getCount()-1, 1); // type..
785 render : function (_self)
787 _this.addItemBtn = _self;
790 cls : 'x-btn-text-icon',
792 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
797 cls : 'x-btn-text-icon',
798 text : "Fill based on Stock",
799 icon : Roo.rootURL + 'images/default/dd/drop-add.gif',
810 var rn = _this.grid.ds.getCount();
811 var tid = 1 * _this.form.findField('invhist_transfer_id').getValue();
812 var addRow = function(r) {
814 if (r.itemsite_qty * 1 < 1) {
818 var nr = _this.grid.ds.reader.newRow({
819 invhist_transfer_item_line : rn + 1,
820 item_id : r.itemsite_item_id,
821 invhist_transfer_item_itemsite_id : r.itemsite_id,
822 item_number : r.itemsite_item_id_item_number,
823 item_descrip1 : r.itemsite_item_id_item_descrip1,
824 invhist_transfer_item_qty : r.itemsite_qty,
826 invhist_transfer_item_transfer_id : tid
828 _this.grid.ds.insert(rn++, nr);
832 var loc = _this.form.findField('invhist_transfer_from').getValue()*1;
833 var dt = _this.form.findField('invhist_transfer_transdate').getValue().format('Y-m-d');
835 _this.grid.stopEditing();
838 url : baseURL + '/Roo/itemsite',
839 mask : 'Fetching stock',
842 limit : 2000, // alot!
843 _with_stock_and_value : 1,
847 'sort' : 'itemsite_item_id_item_number',
850 success : function(r) {
852 Roo.each(r.data, addRow);
866 render : function (_self)
868 _this.addItemBtn = _self;
871 cls : 'x-btn-text-icon',
872 text : "Transfer all from Location",
873 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
881 var rn = _this.grid.ds.getCount();
882 var tid = 1 * _this.form.findField('invhist_transfer_id').getValue();
885 var addRow = function(r) {
887 if (r.itemsite_qty * 1 > -1) {
891 var nr = _this.grid.ds.reader.newRow({
892 invhist_transfer_item_line : rn + 1,
893 item_id : r.itemsite_item_id,
894 invhist_transfer_item_itemsite_id : r.itemsite_id,
895 item_number : r.itemsite_item_id_item_number,
896 item_descrip1 : r.itemsite_item_id_item_descrip1,
897 invhist_transfer_item_qty : Math.abs(r.itemsite_qty),
899 invhist_transfer_item_transfer_id : tid
901 _this.grid.ds.insert(rn++, nr);
905 var loc = _this.form.findField('invhist_transfer_to').getValue()*1;
906 var dt = _this.form.findField('invhist_transfer_transdate').getValue().format('Y-m-d');
908 _this.grid.stopEditing();
911 url : baseURL + '/Roo/itemsite',
912 mask : 'Fetching stock',
915 limit : 2000, // alot!
916 _with_stock_and_value : 1,
920 'sort' : 'itemsite_item_id_item_number',
923 success : function(r) {
925 Roo.each(r.data, addRow);
939 render : function (_self)
941 _this.addItemBtn = _self;
944 cls : 'x-btn-text-icon',
945 text : "Fill negative at Target",
946 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
961 _this.grid.stopEditing();
963 if (_this.data.invhist_transfer_posted) {
964 Roo.MessageBox.alert("Error", "Transfer has been posted, void it first");
968 var rc= _this.grid.selModel.getSelectedCell();
970 Roo.MessageBox.alert("Error", "Select a item to delete");
974 var rec = _this.grid.ds.getAt(rc[0]);
975 _this.grid.ds.remove(rec);
978 rec = _this.grid.ds.getAt(rc[0]);
980 _this.grid.selModel.select(rc[0], 2);
986 } // nothing left to select..
987 _this.grid.selModel.select(rc[0]-1, 2);
994 cls : 'x-btn-text-icon',
996 icon : rootURL + '/Pman/templates/images/trash.gif'
1002 xtype: 'ColumnModel',
1004 dataIndex : 'invhist_transfer_item_line',
1007 renderer : function(v) { return String.format('{0}', v); }
1010 xtype: 'ColumnModel',
1012 dataIndex : 'item_id',
1013 header : 'Item Code',
1015 renderer : function(v,x,r) {
1016 return String.format('{0}', r.data.item_number);
1019 xtype: 'GridEditor',
1025 beforeselect : function (combo, record, index)
1027 // set _this.data values ..
1028 var ar = _this.grid.activeEditor.record;
1029 //Roo.log('beforeselect');
1031 // Roo.log('beforeselect-cb');
1032 ar.set('item_descrip1', record.data.itemsite_item_id_item_descrip1);
1033 // ar.set('coitem_price', record.data.item_listprice);
1034 // ar.set('coitem_custprice', record.data.item_price);
1035 ar.set('invhist_transfer_item_itemsite_id', record.data.itemsite_id);
1036 ar.set('item_number', record.data.itemsite_item_id_item_number);
1037 ar.set('avail_at_location', record.data.avail_at_location);
1044 displayField : 'itemsite_item_id_item_number',
1046 emptyText : "Select item",
1047 forceSelection : true,
1048 hiddenName : 'itemsite_item_id_item_number',
1050 loadingText : "Searching...",
1052 name : 'item_number',
1054 qtip : "Select item",
1055 queryParam : 'query[number]',
1056 selectOnFocus : true,
1057 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>',
1058 triggerAction : 'all',
1059 valueField : 'item_number',
1064 beforeload : function (_self, o){
1065 o.params = o.params || {};
1067 o.params['query[at_location]'] = _this.form.findField('invhist_transfer_from').getValue();
1072 sortInfo : { direction : 'ASC', field: 'itemsite_item_id_item_number' },
1077 url : baseURL + '/Roo/itemsite.php'
1080 xtype: 'JsonReader',
1084 totalProperty : 'total',
1085 fields : [{"name":"item_id","type":"int"},"item_number"]
1092 xtype: 'ColumnModel',
1094 dataIndex : 'item_descrip1',
1095 header : 'Description',
1097 renderer : function(v,x,r) { return String.format('{0}', v); }
1100 xtype: 'ColumnModel',
1103 dataIndex : 'avail_at_location',
1104 header : 'Cur. Avail',
1106 renderer : function(v,x,r) { return String.format('{0}', v); }
1109 xtype: 'ColumnModel',
1112 dataIndex : 'invhist_transfer_item_qty',
1115 renderer : function(v,x,r) {
1116 var vv = parseInt(v);
1117 //var aq = parseInt(r.data.avail_qty);
1118 //aq = isNaN(aq) ? 0 : aq;
1123 return String.format('{0}', vv.toFixed(0));
1127 xtype: 'GridEditor',
1130 xtype: 'NumberField',
1132 allowDecimals : false,
1133 decimalPrecision : 0,
1135 style : 'text-align:right'
1140 xtype: 'ColumnModel',
1143 dataIndex : 'invhist_transfer_item_unit_price',
1144 header : 'Unit Price',
1147 renderer : function(v,x,r)
1152 var color = '#666'; // orignal color
1154 if(r.data.invhist_transfer_item_unit_price_default != v){
1158 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));
1161 xtype: 'GridEditor',
1164 xtype: 'NumberField',
1167 allowDecimals : true,
1168 decimalPrecision : 2,
1169 style : 'text-align:right'
1174 xtype: 'ColumnModel',
1177 dataIndex : 'invhist_transfer_item_unit_price_default',
1178 header : 'Default Price',
1181 renderer : function(v,x,r)
1186 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));
1194 xtype: 'LayoutRegion',
1199 xtype: 'LayoutRegion',
1208 activate : function() {
1209 _this.ipanel = this;
1211 _this.igrid.footer.onClick('first');
1216 fitContainer : true,
1219 tableName : 'Images',
1220 title : "Reference Files",
1225 render : function() {
1227 //_this.dialog = Pman.Dialog.FILL_IN
1228 //if (_this.panel.active) {
1229 // this.footer.onClick('first');
1232 rowdblclick : function (_self, rowIndex, e)
1235 var s = _self.getDataSource().getAt(rowIndex);
1237 url : baseURL + '/Images/' + s.data.id
1243 autoExpandColumn : 'id',
1249 beforeload : function (_self, o)
1251 //o.params.ontable = 'Companies';
1253 // o.params.imgtype = 'PressRelease';
1255 o.params = o.params || {};
1256 o.params.onid = _this.form.findField('invhist_transfer_id').getValue();
1257 o.params.ontable = 'invhist_transfer';
1261 load : function (_self, records, options)
1263 _this.panel.el.unmask();
1267 sortInfo : { field: 'created' , direction: 'DESC' },
1269 xtype: 'JsonReader',
1273 totalProperty : 'total',
1308 'name': 'displayorder',
1316 'name': 'parent_image_id',
1322 'dateFormat' : 'Y-m-d H:i:s'
1346 url : baseURL + '/Roo/Images.php'
1350 xtype: 'PagingToolbar',
1354 displayMsg : "Displaying Images {0} - {1} of {2}",
1355 emptyMsg : "No Images found"
1368 //var sel = Pman.Tab.PressReleaseCompanies ? Pman.Tab.PressReleaseCompanies.grid.getSelectionModel().getSelected() : false
1370 Pman.Dialog.Image.show({
1372 ontable: 'invhist_transfer',
1373 onid: _this.form.findField('invhist_transfer_id').getValue(),
1376 if (!data) { return; }
1377 _this.igrid.footer.onClick('first');
1382 cls : 'x-btn-text-icon',
1384 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
1392 Pman.genericDelete(_this, 'Images');
1395 cls : 'x-btn-text-icon',
1397 icon : rootURL + '/Pman/templates/images/trash.gif'
1403 xtype: 'ColumnModel',
1405 dataIndex : 'created',
1409 renderer : function(v,x,r) {
1410 return String.format('{0}<br/><i>{1}</i><br/>{2}<br/><i>{3}x{4}</i>',
1411 v.format('d/M/Y'), r.data.mimetype, r.data.filename,
1412 r.data.width, r.data.height
1417 xtype: 'ColumnModel',
1422 renderer : function(v,x,r) { return String.format('<img src="{0}/Images/Thumb/100/{1}/{2}" height="100">', baseURL, v, r.data.filename); }
1431 activate : function() {
1432 _this.hpanel = this;
1434 _this.hgrid.footer.onClick('first');
1439 fitContainer : true,
1442 tableName : 'events',
1451 if (_this.hpanel.active) {
1452 this.footer.onClick('first');
1456 autoExpandColumn : 'remarks',
1462 beforeload : function (_self, options)
1464 options.params = options.params || {};
1466 options.params.on_table = 'invhist_transfer';
1467 options.params.on_id = _this.form.findField('invhist_transfer_id').getValue();
1471 sortInfo : { field : 'event_when', direction: 'DESC' },
1476 url : baseURL + '/Roo/events.php'
1479 xtype: 'JsonReader',
1483 totalProperty : 'total',
1486 'name': 'event_when',
1498 'name': 'person_id_name',
1509 xtype: 'PagingToolbar',
1512 displayMsg : "Displaying events{0} - {1} of {2}",
1513 emptyMsg : "No Events found",
1518 xtype: 'ColumnModel',
1520 dataIndex : 'event_when',
1523 renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y H:i:s') : ''); }
1526 xtype: 'ColumnModel',
1528 dataIndex : 'action',
1531 renderer : function(v,x,r) { return String.format('{0} - {1}', v, r.data.on_table); }
1534 xtype: 'ColumnModel',
1536 dataIndex : 'ipaddr',
1537 header : 'IP Address',
1539 renderer : function(v) { return String.format('{0}', v); }
1542 xtype: 'ColumnModel',
1544 dataIndex : 'person_id_name',
1547 renderer : function(v) { return String.format('{0}', v); }
1550 xtype: 'ColumnModel',
1552 dataIndex : 'remarks',
1555 renderer : function(v) { return String.format('{0}', v); }
1564 activate : function() {
1565 _this.tpanel = this;
1567 _this.tgrid.ds.load({});
1572 fitContainer : true,
1575 tableName : 'invhist_transfer_item',
1576 title : "Transfered",
1584 if (_this.tpanel.active) {
1589 autoExpandColumn : 'item_number',
1601 var id = _this.form.findField('invhist_transfer_id').getValue();
1609 _this.tgrid.ds.each(function (r) {
1610 if (_this.data.invhist_transfer_void && r.data.transfered_qty * 1 == 0 && r.data.expected_qty * 1 == 0) {
1613 if(!_this.data.invhist_transfer_void && r.data.transfered_qty * 1 - r.data.expected_qty * 1 == 0){
1621 Roo.MessageBox.alert("Notice", "Nothing Wrong!");
1626 url : baseURL + '/Roo/invhist_transfer',
1629 timeout : 1200000, //20 minutes...! - big xfer should be 10mins.
1631 invhist_transfer_id : id,
1634 success : function ()
1636 _this.tgrid.ds.load({});
1644 cls : 'x-btn-text-icon',
1645 text : "Fix Transfer",
1646 icon : Roo.rootURL + 'images/default/tree/leaf.gif'
1654 beforeload : function (_self, options)
1656 options.params = options.params || {};
1657 options.params.limit = 9999;
1658 if(_this.data.cust_to_internalcompany.length){
1663 var id = _this.form.findField('invhist_transfer_id').getValue();
1670 options.params.invhist_transfer_item_invhist_transfer_id = id;
1672 options.params._with_expected = 1;
1677 sortInfo : { field : 'invhist_transfer_item_line', direction: 'ASC' },
1682 url : baseURL + '/Roo/invhist_transfer_item.php'
1685 xtype: 'JsonReader',
1687 id : 'invhist_transfer_item_id',
1689 totalProperty : 'total',
1692 'name': 'invhist_transfer_item_id',
1696 'name': 'invhist_transfer_item_qty',
1700 'name': 'invhist_transfer_item_line',
1708 xtype: 'ColumnModel',
1710 dataIndex : 'item_number',
1713 renderer : function(v) { return String.format('{0}', v ? v : ''); }
1716 xtype: 'ColumnModel',
1718 dataIndex : 'transfered_qty',
1719 header : 'Transfered',
1721 renderer : function(v,x,r)
1723 if(v && r.data.transfered_qty * 1 != r.data.expected_qty * 1){
1724 return String.format('<span style="color:red">{0}</span>', v);
1726 return String.format('{0}', v ? v : 0);
1730 xtype: 'ColumnModel',
1732 dataIndex : 'expected_qty',
1733 header : 'Expected',
1735 renderer : function(v,x,r)
1738 if(v && r.data.transfered_qty * 1 != r.data.expected_qty * 1){
1739 return String.format('<span style="color:red">{0}</span>', v);
1741 return String.format('{0}', v ? v : 0);
1749 xtype: 'LayoutRegion',
1758 click : function (_self, e)
1761 var rn = _this.grid.ds.getCount();
1762 var tid = 1 * _this.form.findField('invhist_transfer_id').getValue();
1763 var addRow = function(r) {
1764 if (r.itemsite_qty * 1 < 1) {
1768 var nr = _this.grid.ds.reader.newRow({
1769 invhist_transfer_item_line : rn + 1,
1770 item_id : r.itemsite_item_id,
1771 invhist_transfer_item_itemsite_id : r.itemsite_id,
1772 item_number : r.itemsite_item_id_item_number,
1773 item_descrip1 : r.itemsite_item_id_item_descrip1,
1774 invhist_transfer_item_qty : r.itemsite_qty,
1776 avail_at_location : '',
1777 invhist_transfer_item_transfer_id : tid,
1778 invhist_transfer_item_unit_price : r.unit_price,
1779 invhist_transfer_item_unit_price_default : r.unit_price,
1781 _this.grid.ds.insert(rn++, nr);
1785 Pman.Dialog.Image.show(
1787 _url : baseURL + '/Xtuple/Import/Transfer'
1792 Roo.each(r.items, addRow);
1794 if (typeof(r.Date) !='undefined') {
1795 _this.form.findField('invhist_transfer_transdate').setValue( Date.parseDate((r.Date) ? r.Date : (new Date()).format('Y-m-d'), "Y-m-d"));
1797 if (typeof(r.ArrivalDate) !='undefined') {
1798 _this.form.findField('invhist_transfer_arrivaldate').setValue(Date.parseDate((r.ArrivalDate) ? r.ArrivalDate : (new Date()).format('Y-m-d'), "Y-m-d"));
1800 if(r.invhist_transfer_from){
1801 _this.fromLocation.setValue(r.invhist_transfer_from);
1802 _this.fromLocation.el.dom.value = r.invhist_transfer_from_location_name;
1804 if(r.invhist_transfer_to){
1805 _this.toLocation.setValue(r.invhist_transfer_to);
1806 _this.toLocation.el.dom.value = r.invhist_transfer_to_location_name;
1810 _this.toLocation._is_internalcompany = true;
1812 _this.grid.setColumns();
\r
1816 render : function (_self)
1818 _this.uploadBtn = _self;
1821 text : "Upload (Excel)"
1827 click : function (_self, e)
1831 url : baseURL + '/Xtuple/Roo/invhist_transfer',
1835 _roo_office : _this.form.findField('_roo_office').getValue(),
1836 _download : _this.data.invhist_transfer_id
1845 text : "Download (Excel)"
1851 click : function (_self, e)
1853 _this.grid.stopEditing();
1854 if (_this.data.invhist_transfer_posted || _this.data.invhist_transfer_void) {
1855 _this.dialog.hide();
1859 if (_this.data.createFromRev) {
1860 Roo.MessageBox.alert("Warning", "A draft item reciept has been created - please void it if it is not needed");
1861 _this.dialog.hide();
1867 Roo.MessageBox.confirm("Confirm", "Are you sure want to cancel, all changes will be lost", function(r) {
1872 _this.dialog.hide();
1886 click : function (_self, e)
1889 _this.grid.stopEditing();
1892 _this.grid.ds.each(function (r) {
1893 var missingqty = r.data.invhist_transfer_item_qty < 1;
1894 var missingsku = r.data.invhist_transfer_item_itemsite_id < 1;
1895 if (missingsku && missingqty) {
1901 err = "Missing Quantity on line : " + r.data.invhist_transfer_item_line;
1904 err = "Missing SKU on line : " + r.data.invhist_transfer_item_line;
1907 id: r.data.invhist_transfer_item_id,
1908 itemsite_id : r.data.invhist_transfer_item_itemsite_id,
1909 line: r.data.invhist_transfer_item_line,
1910 qty: r.data.invhist_transfer_item_qty,
1911 price : r.data.invhist_transfer_item_unit_price
1916 Roo.MessageBox.alert("Error", err);
1920 Roo.MessageBox.alert("Error", "Nothing listed to transfer");
1923 _this.form.findField('transfer_items').setValue( Roo.encode(ar));
1925 var arrivaldate = _this.form.findField('invhist_transfer_arrivaldate').getValue();
1926 var transferprice = _this.form.findField('invhist_transfer_price').getValue();
1928 if(_this.toLocation._is_internalcompany && !arrivaldate){
1929 Roo.MessageBox.alert("Error", "Arrival date must be filled in");
1932 if(_this.toLocation._is_internalcompany && !transferprice.length){
1933 Roo.MessageBox.alert("Error", "For inter company transfer a price must be set");
1937 _this.form.findField('invhist_transfer_arrivaldate').setValue(_this.form.findField('invhist_transfer_transdate').getValue());
1939 _this.form.doAction("submit");
1945 render : function (_self)
1947 _this.saveBtn = _self;