Fix #7123 - getting abra ready to test
[Pman.Xtuple] / Pman.Dialog.XtupleAdjustmentGroup.js
1 //<script type="text/javascript">
2
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
4
5 Pman.Dialog.XtupleAdjustmentGroup = {
6
7     dialog : false,
8     callback:  false,
9
10     show : function(data, cb)
11     {
12         if (!this.dialog) {
13             this.create();
14         }
15
16         this.callback = cb;
17         this.data = data;
18         this.dialog.show(this.data._el);
19         if (this.form) {
20            this.form.reset();
21            this.form.setValues(data);
22            this.form.fireEvent('actioncomplete', this.form,  { type: 'setdata', data: data });
23         }
24
25     },
26
27     create : function()
28     {
29         var _this = this;
30         this.dialog = Roo.factory({
31             xtype: 'LayoutDialog',
32             xns: Roo,
33             closable : false,
34             collapsible : false,
35             height : 500,
36             modal : true,
37             resizable : false,
38             title : "Edit / Create Inventory Adjustment Group",
39             width : 600,
40             items : [
41                 {
42                     xtype: 'NestedLayoutPanel',
43                     xns: Roo,
44                     region : 'center',
45                     layout : {
46                         xtype: 'BorderLayout',
47                         xns: Roo,
48                         items : [
49                             {
50                                 xtype: 'ContentPanel',
51                                 xns: Roo,
52                                 region : 'north',
53                                 items : [
54                                     {
55                                         xtype: 'Form',
56                                         xns: Roo.form,
57                                         listeners : {
58                                             actioncomplete : function(_self,action)
59                                             {
60                                                 if (action.type == 'setdata') {
61                                                     _this.grid.ds.removeAll();
62                                                     _this.saveBtn.show();
63                                                     if(_this.data.invadjgrp_id){
64                                                    
65                                                         this.load({ method: 'GET', params: { '_id' : _this.data.invadjgrp_id }});
66                                                     }
67                                                    return;
68                                                 }
69                                                 if (action.type == 'load') {
70                                                     _this.data = action.result.data;
71                                                     if(_this.data.invadjgrp_posted){
72                                                         _this.saveBtn.hide();
73                                                     }
74                                             
75                                                     _this.grid.ds.load({});
76                                                     return;
77                                                 }
78                                                 if (action.type =='submit') {
79                                                     
80                                                 
81                                                     if (!_this.grid.ds.getCount()  && this.findField('invadjgrp_id').getValue()*1 < 1) {
82                                                     
83                                                     
84                                                     
85                                                         this.load({ method: 'GET', params: { '_id' : action.result.data.invadjgrp_id }});
86                                                         return;
87                                                     
88                                                     }
89                                             
90                                                     _this.dialog.hide();
91                                                 
92                                                      if (_this.callback) {
93                                                         _this.callback.call(_this, _this.form.getValues());
94                                                      }
95                                                      _this.form.reset();
96                                                      return;
97                                                 }
98                                             },
99                                             rendered : function (form)
100                                             {
101                                                 _this.form= form;
102                                             }
103                                         },
104                                         method : 'POST',
105                                         style : 'margin:10px;',
106                                         url : baseURL + '/Roo/Invadjgrp.php',
107                                         items : [
108                                             {
109                                                 xtype: 'FieldSet',
110                                                 xns: Roo.form,
111                                                 legend : "Inventory Adjustment Group Detail",
112                                                 style : 'width:520px',
113                                                 items : [
114                                                     {
115                                                         xtype: 'TextField',
116                                                         xns: Roo.form,
117                                                         allowBlank : false,
118                                                         fieldLabel : 'Name',
119                                                         name : 'invadjgrp_name',
120                                                         width : 200
121                                                     },
122                                                     {
123                                                         xtype: 'DateField',
124                                                         xns: Roo.form,
125                                                         allowBlank : false,
126                                                         fieldLabel : 'Date',
127                                                         format : 'Y-m-d',
128                                                         name : 'invadjgrp_transdate',
129                                                         useIso : true,
130                                                         width : 200
131                                                     },
132                                                     {
133                                                         xtype: 'ComboBox',
134                                                         xns: Roo.form,
135                                                         allowBlank : false,
136                                                         displayField : 'location_name',
137                                                         editable : false,
138                                                         emptyText : "Select Location",
139                                                         fieldLabel : 'Location',
140                                                         forceSelection : true,
141                                                         hiddenName : 'invadjgrp_location_id',
142                                                         listWidth : 400,
143                                                         loadingText : "Searching...",
144                                                         minChars : 2,
145                                                         name : 'invadjgrp_location_id_location_name',
146                                                         pageSize : 20,
147                                                         qtip : "Select Location",
148                                                         queryParam : 'query[location_name]',
149                                                         selectOnFocus : true,
150                                                         tpl : '<div class="x-grid-cell-text x-btn button"><b>{location_name}</b> {location_descrip} </div>',
151                                                         triggerAction : 'all',
152                                                         typeAhead : true,
153                                                         valueField : 'location_id',
154                                                         width : 200,
155                                                         store : {
156                                                             xtype: 'Store',
157                                                             xns: Roo.data,
158                                                             listeners : {
159                                                                 beforeload : function (_self, o){
160                                                                     
161                                                                     o.params = o.params || {};
162                                                                     o.params.location_netable = 1;
163                                                                     o.params._notinternalcompany = 1;
164                                                                     o.params.location_restrict = 0;
165                                                                 }
166                                                             },
167                                                             remoteSort : true,
168                                                             sortInfo : { direction : 'ASC', field: 'curr_id' },
169                                                             proxy : {
170                                                                 xtype: 'HttpProxy',
171                                                                 xns: Roo.data,
172                                                                 method : 'GET',
173                                                                 url : baseURL + '/Roo/location.php'
174                                                             },
175                                                             reader : {
176                                                                 xtype: 'JsonReader',
177                                                                 xns: Roo.data,
178                                                                 id : 'location_id',
179                                                                 root : 'data',
180                                                                 totalProperty : 'total',
181                                                                 fields : [
182                                                                     {"name":"location_id","type":"int"},
183                                                                     {"name":"location_name","type":"string"}
184                                                                 ]
185                                                             }
186                                                         }
187                                                     },
188                                                     {
189                                                         xtype: 'TextField',
190                                                         xns: Roo.form,
191                                                         allowBlank : true,
192                                                         fieldLabel : 'Comments',
193                                                         name : 'invadjgrp_comments',
194                                                         width : 400
195                                                     }
196                                                 ]
197                                             },
198                                             {
199                                                 xtype: 'Hidden',
200                                                 xns: Roo.form,
201                                                 name : 'invadjgrp_id'
202                                             },
203                                             {
204                                                 xtype: 'Hidden',
205                                                 xns: Roo.form,
206                                                 name : 'adjustments'
207                                             }
208                                         ]
209                                     }
210                                 ]
211                             },
212                             {
213                                 xtype: 'GridPanel',
214                                 xns: Roo,
215                                 listeners : {
216                                     activate : function() {
217                                         _this.panel = this;
218                                         if (_this.grid) {
219                                             _this.grid.ds.load({});
220                                         }
221                                     }
222                                 },
223                                 background : false,
224                                 fitContainer : true,
225                                 fitToframe : true,
226                                 region : 'center',
227                                 tableName : 'invadj',
228                                 title : "Invadj",
229                                 grid : {
230                                     xtype: 'EditorGrid',
231                                     xns: Roo.grid,
232                                     listeners : {
233                                         render : function() 
234                                         {
235                                             _this.grid = this; 
236                                             //_this.dialog = Pman.Dialog.FILL_IN
237                                             if (_this.panel.active) {
238                                                this.ds.load({});
239                                             }
240                                         },
241                                         beforeedit : function (e)
242                                         {
243                                             if(_this.data.invadjgrp_posted){
244                                                 Roo.MessageBox.alert('Error', 'This group has been posted');
245                                                 return false;
246                                             }
247                                             
248                                             if(e.record.data.invadj_posted){
249                                                 Roo.MessageBox.alert('Error', 'Can not update the posted adjustment');
250                                                 return false;
251                                             }
252                                             
253                                             if(e.field != 'invadj_itemsite_id_item_number'){
254                                                 var itemsite_id = e.record.data.invadj_itemsite_id * 1;
255                                                 if(isNaN(itemsite_id) || itemsite_id < 1){
256                                                     Roo.MessageBox.alert('Error', 'Please select a item first');
257                                                     return false;
258                                                 }
259                                             }
260                                         },
261                                         afteredit : function (e)
262                                         {
263                                             if (e.originalValue == e.value) {
264                                                 return;
265                                             }
266                                             
267                                             switch(e.field) {
268                                                 case 'invadj_qty_by' :
269                                                     e.record.set('invadj_qty_after', parseInt(e.record.data.invadj_qty_before * 1 + e.value * 1));
270                                                     break;
271                                                 
272                                                 case 'invadj_qty_after' :
273                                                     e.record.set('invadj_qty_by', parseInt(e.value * 1 - e.record.data.invadj_qty_before * 1));
274                                                     break;
275                                                 
276                                                 case 'invadj_itemsite_id_item_number' :
277                                                     e.record.set('invadj_qty_after', parseInt(e.record.data.invadj_qty_before * 1 + e.record.data.invadj_qty_by * 1));
278                                                     break;
279                                             
280                                             }
281                                         }
282                                     },
283                                     autoExpandColumn : 'invadj_itemsite_id_item_number',
284                                     clicksToEdit : 1,
285                                     loadMask : true,
286                                     sm : {
287                                         xtype: 'CellSelectionModel',
288                                         xns: Roo.grid,
289                                         listeners : {
290                                             tabend : function (_self)
291                                             {
292                                                 _this.addItemBtn.fireEvent('click', _this.addItemBtn);
293                                             }
294                                         }
295                                     },
296                                     toolbar : {
297                                         xtype: 'Toolbar',
298                                         xns: Roo,
299                                         items : [
300                                             {
301                                                 xtype: 'Button',
302                                                 xns: Roo.Toolbar,
303                                                 listeners : {
304                                                     click : function()
305                                                     {
306                                                         var group = _this.form.findField('invadjgrp_id').getValue() * 1;
307                                                         
308                                                         if(!group || group < 1){
309                                                             Roo.MessageBox.alert('Error', 'Please save the group first!');
310                                                             return;
311                                                         }
312                                                         
313                                                         if(_this.data.invadjgrp_posted){
314                                                             Roo.MessageBox.alert('Error', 'This group has been posted');
315                                                             return;
316                                                         }
317                                                         
318                                                         var nr = _this.grid.ds.reader.newRow({
319                                                             invadj_itemsite_id_item_number : '',
320                                                             invadj_itemsite_id : 0,
321                                                             invadj_qty_before : 0,
322                                                             invadj_qty_by : 0,
323                                                             invadj_qty_after : 0
324                                                             
325                                                        });
326                                                     
327                                                         _this.grid.stopEditing();
328                                                         _this.grid.ds.insert(_this.grid.ds.getCount(), nr); 
329                                                         _this.grid.startEditing(_this.grid.ds.getCount()-1, 0); // type..
330                                                        
331                                                     },
332                                                     render : function (_self)
333                                                     {
334                                                         _this.addItemBtn = _self;
335                                                     }
336                                                 },
337                                                 cls : 'x-btn-text-icon',
338                                                 text : "Add",
339                                                 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
340                                             },
341                                             {
342                                                 xtype: 'Button',
343                                                 xns: Roo.Toolbar,
344                                                 listeners : {
345                                                     click : function ()
346                                                     {
347                                                         _this.grid.stopEditing();
348                                                         
349                                                         if(_this.data.invadjgrp_posted){
350                                                             Roo.MessageBox.alert('Error', 'This group has been posted');
351                                                             return;
352                                                         }
353                                                         
354                                                         var s = _this.grid.getSelectionModel().getSelectedCell();
355                                                         
356                                                         if(!s){
357                                                             Roo.MessageBox.alert('Error', 'Please select a adjustment to delete');
358                                                             return;
359                                                         }
360                                                         
361                                                         var i = _this.grid.ds.getAt(s[0]);
362                                                         
363                                                         if(i.data.invadj_posted){
364                                                             Roo.MessageBox.alert('Error', 'Can not delete the posted adjustment');
365                                                             return;
366                                                         }
367                                                         
368                                                          _this.grid.ds.remove(i);
369                                                          
370                                                     
371                                                         i = _this.grid.ds.getAt(s[0]);
372                                                         if (i) {
373                                                             _this.grid.selModel.select(s[0], s[1]);
374                                                             return;
375                                                         }
376                                                         var ln = s[0]-1;
377                                                         if (ln < 0) {
378                                                           return;
379                                                         } // nothing left to select..
380                                                         _this.grid.selModel.select(s[0]-1, s[1]);
381                                                         
382                                                         
383                                                        
384                                                     }
385                                                 },
386                                                 cls : 'x-btn-text-icon',
387                                                 text : "Delete",
388                                                 icon : rootURL + '/Pman/templates/images/trash.gif'
389                                             },
390                                             {
391                                                 xtype: 'Fill',
392                                                 xns: Roo.Toolbar
393                                             },
394                                             {
395                                                 xtype: 'Button',
396                                                 xns: Roo.Toolbar,
397                                                 cls : 'x-btn-text-icon',
398                                                 text : "Upload",
399                                                 icon : Roo.rootURL + 'images/default/dd/drop-add.gif',
400                                                 menu : {
401                                                     xtype: 'Menu',
402                                                     xns: Roo.menu,
403                                                     items : [
404                                                         {
405                                                             xtype: 'Item',
406                                                             xns: Roo.menu,
407                                                             listeners : {
408                                                                 click : function (_self, e)
409                                                                 {
410                                                                     var group = _this.form.findField('invadjgrp_id').getValue() * 1;
411                                                                     
412                                                                     if(!group || group < 1){
413                                                                         Roo.MessageBox.alert('Error', 'Please save the group first!');
414                                                                         return;
415                                                                     }
416                                                                     if(_this.data.invadjgrp_posted){
417                                                                         Roo.MessageBox.alert('Error', 'This group has been posted');
418                                                                         return;
419                                                                     }
420                                                                     
421                                                                     var rn = _this.grid.ds.getCount();
422                                                                     
423                                                                     var addRow = function(r) {
424                                                                         if(r.invadj_itemsite_id * 1 < 1 || r.qty * 1 == 0){
425                                                                             return;
426                                                                         }
427                                                                         
428                                                                         var nr = _this.grid.ds.reader.newRow({
429                                                                             invadj_itemsite_id_item_number : r.item_number,
430                                                                             invadj_itemsite_id : r.itemsite_id,
431                                                                             invadj_qty_before : r.balance * 1,
432                                                                             invadj_qty_by : r.qty * 1,
433                                                                             invadj_qty_after : r.balance * 1 + r.qty * 1
434                                                                             
435                                                                        });
436                                                                         _this.grid.ds.insert(rn++, nr); 
437                                                                     
438                                                                     
439                                                                     }
440                                                                     
441                                                                     Pman.Dialog.Image.show(
442                                                                        {
443                                                                             timeout : 90000,
444                                                                             _url : baseURL+'/Xtuple/Import/InvAdjustment?' + Roo.urlEncode({'invadjgrp_id' : group})
445                                                                         
446                                                                        },
447                                                                        function (r) {
448                                                                 
449                                                                             Roo.each(r, addRow);
450                                                                             
451                                                                             Roo.MessageBox.alert("Notice", 'UPLOADED');
452                                                                        }
453                                                                     );
454                                                                 }
455                                                             },
456                                                             cls : 'x-btn-text-icon',
457                                                             text : "Upload Inventory Adjustments (eg. increases or decreases)",
458                                                             icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
459                                                         },
460                                                         {
461                                                             xtype: 'Item',
462                                                             xns: Roo.menu,
463                                                             listeners : {
464                                                                 click : function (_self, e)
465                                                                 {
466                                                                     var group = _this.form.findField('invadjgrp_id').getValue() * 1;
467                                                                     
468                                                                     if(!group || group < 1){
469                                                                         Roo.MessageBox.alert('Error', 'Please save the group first!');
470                                                                         return;
471                                                                     }
472                                                                     if(_this.data.invadjgrp_posted){
473                                                                         Roo.MessageBox.alert('Error', 'This group has been posted');
474                                                                         return;
475                                                                     }
476                                                                     
477                                                                     var rn = _this.grid.ds.getCount();
478                                                                     
479                                                                     var addRow = function(r) {
480                                                                         if(r.invadj_itemsite_id * 1 < 1 || (r.qty * 1 - r.balance * 1) == 0){
481                                                                             return;
482                                                                         }
483                                                                         
484                                                                         var nr = _this.grid.ds.reader.newRow({
485                                                                             invadj_itemsite_id_item_number : r.item_number,
486                                                                             invadj_itemsite_id : r.itemsite_id,
487                                                                             invadj_qty_before : r.balance * 1,
488                                                                             invadj_qty_by : r.qty * 1 - r.balance * 1,
489                                                                             invadj_qty_after : r.qty * 1
490                                                                             
491                                                                        });
492                                                                         _this.grid.ds.insert(rn++, nr); 
493                                                                     
494                                                                     
495                                                                     }
496                                                                     
497                                                                     Pman.Dialog.Image.show(
498                                                                        {
499                                                                             timeout : 90000,
500                                                                             _url : baseURL+'/Xtuple/Import/InvAdjustment?' + Roo.urlEncode({'invadjgrp_id' : group})
501                                                                         
502                                                                        },
503                                                                        function (r) {
504                                                                 
505                                                                             Roo.each(r, addRow);
506                                                                             
507                                                                             Roo.MessageBox.alert("Notice", 'UPLOADED');
508                                                                        }
509                                                                     );
510                                                                 }
511                                                             },
512                                                             cls : 'x-btn-text-icon',
513                                                             text : "Upload Inventory Stock take Results",
514                                                             icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
515                                                         }
516                                                     ]
517                                                 }
518                                             },
519                                             {
520                                                 xtype: 'Button',
521                                                 xns: Roo.Toolbar,
522                                                 listeners : {
523                                                     click : function ()
524                                                     {
525                                                         new Pman.Download({
526                                                             grid : _this.grid
527                                                         });
528                                                         Roo.MessageBox.alert("Downloading", "File is downloading");
529                                                     }
530                                                 },
531                                                 cls : 'x-btn-text-icon',
532                                                 text : "Download",
533                                                 icon : rootURL + '/Pman/templates/images/spreadsheet.gif'
534                                             }
535                                         ]
536                                     },
537                                     dataSource : {
538                                         xtype: 'Store',
539                                         xns: Roo.data,
540                                         listeners : {
541                                             beforeload : function (_self, o){
542                                                 
543                                                 o.params = o.params || {};
544                                                 var group = _this.form.findField('invadjgrp_id').getValue() * 1;
545                                             
546                                                 if(!group || group < 1){
547                                                     _this.grid.ds.removeAll();
548                                                     return false;
549                                                 }
550                                                 o.params.invadj_invadjgrp_id = group;
551                                             
552                                                 o.params._with_detail = 1;    
553                                                 o.params.limit = 99999;
554                                             }
555                                         },
556                                         remoteSort : true,
557                                         sortInfo : { field : 'invadj_itemsite_id_item_number', direction: 'ASC' },
558                                         proxy : {
559                                             xtype: 'HttpProxy',
560                                             xns: Roo.data,
561                                             method : 'GET',
562                                             timeout : 90000,
563                                             url : baseURL + '/Roo/Invadj.php'
564                                         },
565                                         reader : {
566                                             xtype: 'JsonReader',
567                                             xns: Roo.data,
568                                             id : 'invadj_id',
569                                             root : 'data',
570                                             totalProperty : 'total',
571                                             fields : [
572                                                 {
573                                                     'name': 'invadj_id',
574                                                     'type': 'int'
575                                                 },
576                                                 {
577                                                     'name': 'invadj_qty_by',
578                                                     'type': 'int'
579                                                 }
580                                             ]
581                                         }
582                                     },
583                                     colModel : [
584                                         {
585                                             xtype: 'ColumnModel',
586                                             xns: Roo.grid,
587                                             align : 'right',
588                                             dataIndex : 'invadj_id',
589                                             header : 'Ref#',
590                                             hidden : true,
591                                             width : 75,
592                                             renderer : function(v) { return String.format('{0}', parseInt(v).toFixed(0)); }
593                                         },
594                                         {
595                                             xtype: 'ColumnModel',
596                                             xns: Roo.grid,
597                                             dataIndex : 'invadj_itemsite_id_item_number',
598                                             header : 'Code',
599                                             width : 200,
600                                             renderer : function(v) { return String.format('{0}', v); },
601                                             editor : {
602                                                 xtype: 'GridEditor',
603                                                 xns: Roo.grid,
604                                                 field : {
605                                                     xtype: 'ComboBox',
606                                                     xns: Roo.form,
607                                                     listeners : {
608                                                         beforeselect : function (combo, record, index)
609                                                         {
610                                                             var ar = _this.grid.activeEditor.record;
611                                                         
612                                                             ar.set('invadj_itemsite_id_item_number', record.data.itemsite_item_id_item_number);
613                                                             ar.set('invadj_itemsite_id', record.data.itemsite_id);
614                                                             ar.set('invadj_qty_before', record.data.balance_atdate);
615                                                         
616                                                           
617                                                         }
618                                                     },
619                                                     allowBlank : false,
620                                                     displayField : 'itemsite_item_id_item_number',
621                                                     editable : true,
622                                                     emptyText : "Select item",
623                                                     forceSelection : true,
624                                                     hiddenName : 'invadj_itemsite_id',
625                                                     listWidth : 400,
626                                                     loadingText : "Searching...",
627                                                     minChars : 2,
628                                                     name : 'invadj_itemsite_id_item_number',
629                                                     pageSize : 20,
630                                                     qtip : "Select item",
631                                                     queryParam : 'query[number]',
632                                                     selectOnFocus : true,
633                                                     tpl : '<div class="x-grid-cell-text x-btn button"><b>{itemsite_item_id_item_number}</b>  {itemsite_item_id_item_descrip1} ({balance_atdate})</div>',
634                                                     triggerAction : 'all',
635                                                     valueField : 'itemsite_id',
636                                                     store : {
637                                                         xtype: 'Store',
638                                                         xns: Roo.data,
639                                                         listeners : {
640                                                             beforeload : function (_self, o){
641                                                                 o.params = o.params || {};
642                                                                 
643                                                                 o.params._location = _this.form.findField('invadjgrp_location_id').getValue();
644                                                                 
645                                                                 var dt = _this.form.findField('invadjgrp_transdate').getValue();
646                                                                 
647                                                                 o.params._atdate = (typeof(dt) == 'string') ? dt : dt.format('Y-m-d');
648                                                             }
649                                                         },
650                                                         remoteSort : true,
651                                                         sortInfo : { direction : 'ASC', field: 'itemsite_item_id_item_number' },
652                                                         proxy : {
653                                                             xtype: 'HttpProxy',
654                                                             xns: Roo.data,
655                                                             method : 'GET',
656                                                             url : baseURL + '/Roo/itemsite.php'
657                                                         },
658                                                         reader : {
659                                                             xtype: 'JsonReader',
660                                                             xns: Roo.data,
661                                                             id : 'item_id',
662                                                             root : 'data',
663                                                             totalProperty : 'total',
664                                                             fields : [{"name":"item_id","type":"int"},"item_number"]
665                                                         }
666                                                     }
667                                                 }
668                                             }
669                                         },
670                                         {
671                                             xtype: 'ColumnModel',
672                                             xns: Roo.grid,
673                                             align : 'right',
674                                             dataIndex : 'invadj_qty_before',
675                                             header : 'Qty Before',
676                                             width : 75,
677                                             renderer : function(v) { return String.format('{0}', parseInt(v).toFixed(0)); }
678                                         },
679                                         {
680                                             xtype: 'ColumnModel',
681                                             xns: Roo.grid,
682                                             align : 'right',
683                                             dataIndex : 'invadj_qty_by',
684                                             header : 'Qty',
685                                             width : 75,
686                                             renderer : function(v) { return String.format('{0}', parseInt(v).toFixed(0)); },
687                                             editor : {
688                                                 xtype: 'GridEditor',
689                                                 xns: Roo.grid,
690                                                 field : {
691                                                     xtype: 'NumberField',
692                                                     xns: Roo.form,
693                                                     allowDecimals : false,
694                                                     decimalPrecision : 0,
695                                                     style : 'text-align:right'
696                                                 }
697                                             }
698                                         },
699                                         {
700                                             xtype: 'ColumnModel',
701                                             xns: Roo.grid,
702                                             align : 'right',
703                                             dataIndex : 'invadj_qty_after',
704                                             header : 'Qty After',
705                                             width : 75,
706                                             renderer : function(v) { return String.format('{0}', parseInt(v).toFixed(0)); },
707                                             editor : {
708                                                 xtype: 'GridEditor',
709                                                 xns: Roo.grid,
710                                                 field : {
711                                                     xtype: 'NumberField',
712                                                     xns: Roo.form,
713                                                     allowDecimals : false,
714                                                     decimalPrecision : 0,
715                                                     style : 'text-align:right'
716                                                 }
717                                             }
718                                         }
719                                     ]
720                                 }
721                             }
722                         ],
723                         north : {
724                             xtype: 'LayoutRegion',
725                             xns: Roo,
726                             height : 150,
727                             split : true
728                         },
729                         center : {
730                             xtype: 'LayoutRegion',
731                             xns: Roo
732                         }
733                     }
734                 }
735             ],
736             center : {
737                 xtype: 'LayoutRegion',
738                 xns: Roo,
739                 tabPosition : 'top'
740             },
741             buttons : [
742                 {
743                     xtype: 'Button',
744                     xns: Roo,
745                     listeners : {
746                         click : function (_self, e)
747                         {
748                             _this.dialog.hide();
749                         }
750                     },
751                     text : "Cancel"
752                 },
753                 {
754                     xtype: 'Button',
755                     xns: Roo,
756                     listeners : {
757                         click : function (_self, e)
758                         {
759                             var items = [];
760                             var ar = [];
761                             var err = [];
762                             
763                            _this.grid.ds.each(function (r) {
764                                 if(r.data.invadj_qty_by * 1 == 0){
765                                     return;
766                                 }
767                                 if(items.indexOf(r.data.invadj_itemsite_id * 1) != -1){
768                                     err.push(r.data.invadj_itemsite_id_item_number);
769                                     return;
770                                 }
771                                 
772                                 items.push(r.data.invadj_itemsite_id * 1);
773                                 
774                                 ar.push({
775                                     invadj_id : r.data.invadj_id * 1,
776                                     invadj_itemsite_id : r.data.invadj_itemsite_id * 1,
777                                     invadj_qty_by : r.data.invadj_qty_by * 1
778                                 })
779                            });
780                            
781                            if(err.length){
782                                 Roo.MessageBox.alert("Error", "Duplicate Item found : <br/>" + err.join("<br/>"));
783                                 return;
784                            }
785                            
786                            _this.form.findField('adjustments').setValue(Roo.encode(ar));
787                            _this.form.doAction("submit");
788                         
789                         },
790                         render : function (_self)
791                         {
792                             _this.saveBtn = _self;
793                         }
794                     },
795                     text : "Save"
796                 }
797             ]
798         });
799     }
800 };