Pman.Tab.XtupleAdjustment.bjs
[Pman.Xtuple] / Pman.Tab.XtupleAdjustment.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.Tab.XtupleAdjustment = new Roo.XComponent({
6     part     :  ["Xtuple","Adjustment"],
7     order    : '100-Pman.Tab.XtupleAdjustment',
8     region   : 'center',
9     parent   : 'Pman.Tab.XtupleAdjustmentTab',
10     name     : "Pman.Tab.XtupleAdjustment",
11     disabled : false, 
12     permname : '', 
13     _tree : function()
14     {
15         var _this = this;
16         var MODULE = this;
17         return {
18             xtype: 'GridPanel',
19             xns: Roo,
20             listeners : {
21                 activate : function() {
22                     _this.panel = this;
23                     if (_this.grid) {
24                         _this.grid.footer.onClick('first');
25                     }
26                 }
27             },
28             background : true,
29             fitContainer : true,
30             fitToframe : true,
31             region : 'center',
32             tableName : 'invadj',
33             title : "Inventory Adjustments",
34             grid : {
35                 xtype: 'EditorGrid',
36                 xns: Roo.grid,
37                 listeners : {
38                     render : function() 
39                     {
40                         _this.grid = this; 
41                         //_this.dialog = Pman.Dialog.FILL_IN
42                         if (_this.panel.active) {
43                            this.footer.onClick('first');
44                         }
45                     },
46                     afteredit : function (e)
47                     {
48                        if (e.record.data.invadj_posted) {
49                          return;
50                        }
51                        var req = [ 'invadj_transdate', 'invadj_location_id', 'invadj_itemsite_id',  
52                             'invadj_qty_by', 'invadj_comments' ];
53                        var valid = true;
54                         Roo.each(req, function(c) {
55                             var val = '' + e.record.get(c);
56                             if (!val.length) {
57                                 valid = false;
58                             }
59                         });
60                         if (!valid) {
61                             return;
62                         }
63                         e.record.commit();
64                             
65                        
66                        
67                     },
68                     validateedit : function (e)
69                     {
70                         switch(e.field) {
71                             case 'invadj_transdate':
72                                // e.record.setValue('invadj_transdate', Date.parseDate(e.value, 'Y-m-d'));
73                                 e.value = Date.parseDate(e.value, 'Y-m-d');
74                                 break;
75                         }
76                     },
77                     beforeedit : function (e)
78                     {
79                         Roo.log(e.record);
80                         if (e.record.data.invadj_posted) {
81                      
82                             e.cancel = true;
83                             return false;
84                         }
85                     },
86                     cellclick : function (_self, rowIndex, columnIndex, e)
87                     {
88                         var c = _this.grid.colModel.config[columnIndex];
89                         var di = c.dataIndex;
90                         if (di != 'invadj_posted') {
91                             return;
92                         }
93                         
94                         var r = _this.grid.ds.getAt(rowIndex);
95                         if (r.data.invadj_posted || !r.data.invadj_id) {
96                             return;
97                         }
98                         // attempting to post..
99                         // validation - done at other end..
100                         new Pman.Request({
101                             url : baseURL + '/Roo/Invadj',
102                             method  : 'POST',
103                             mask : 'Posting',
104                             params : {
105                                 invadj_id : r.data.invadj_id,
106                                 _post : 1
107                             },
108                             success : function(res) {
109                                 r.set('invadj_posted', true);
110                                 if (r.data.invadj_voids_id > 0) {
111                                     _this.grid.ds.each(function(rr) {
112                                         if (rr.data.invadj_id == r.data.invadj_voids_id) {
113                                             rr.set('invadj_voided_by_id', r.data.invadj_id);
114                                             rr.set('invadj_comments', rr.data.invadj_comments);
115                                         }
116                                     });
117                                 
118                                 
119                                 }
120                                 
121                                 
122                                 
123                             },
124                             failure : function (res) {
125                                 Roo.log(res);
126                                 Roo.MessageBox.alert("Error",res.errorMsg);
127                                 if (res.errors.trandate) {
128                                     r.set('invadj_transdate', Date.parseDate(res.errors.trandate,'Y-m-d'));
129                                     r.commit();
130                                 }
131                             
132                             }
133                         });
134                         
135                         
136                         
137                         
138                     }
139                 },
140                 autoExpandColumn : 'invadj_comments',
141                 clicksToEdit : 1,
142                 loadMask : true,
143                 sm : {
144                     xtype: 'CellSelectionModel',
145                     xns: Roo.grid,
146                     listeners : {
147                         tabend : function (eventdata)
148                         {
149                             _this.addBtn.fireEvent('click', this); 
150                         
151                         }
152                     }
153                 },
154                 dataSource : {
155                     xtype: 'Store',
156                     xns: Roo.data,
157                     listeners : {
158                         beforeload : function (_self, options)
159                         {
160                             options.params.invadj_location_id = _this.locationCombo.getValue();
161                             options.params.invadj_itemsite_id = _this.itemCombo.getValue();   
162                             switch(_this.status.getValue()) {
163                                 case 'ALL':
164                                 
165                                     break;
166                                case 'ALL-WITHVOID':
167                                    options.params._show_void = 2;        
168                                     break; 
169                                          
170                                case 'VOID':
171                                    options.params._show_void = 1;
172                                 
173                                     break;
174                                     
175                                 case 'POSTED':
176                         
177                                     options.params.invadj_posted = 1;
178                                     break;
179                                     
180                                 case 'UNPOSTED':
181                                     options.params.invadj_posted = 0;
182                                     break;    
183                         
184                                 case 'ALL-NOGROUP':
185                                    options.params._hide_group = 1;        
186                                     break;
187                         
188                                case 'ALL-NOGROUP-WITHVOID':
189                                    options.params._show_void = 2;        
190                                     break; 
191                                     
192                                case 'VOID-NOGROUP':
193                                    options.params._show_void = 1;       
194                                     options.params._hide_group = 1;                     
195                                     break;
196                                     
197                                 case 'POSTED-NOGROUP':
198                                     options.params.invadj_posted = 1;
199                                     options.params._hide_group = 1;                     
200                                     break;
201                                     
202                                 case 'UNPOSTED-NOGROUP':
203                                     options.params._hide_group = 1;                     
204                                     options.params.invadj_posted = 0;
205                                     break;    
206                                     
207                                     
208                             }
209                             options.params['query[comment]'] = _this.search.getValue();
210                         },
211                         update : function (_self, record, operation)
212                         {
213                             
214                             Roo.log(operation);
215                             if (operation != 'commit' || _this.incom) {
216                                 return;
217                             }
218                         
219                             
220                             var    p = Roo.apply({}, record.data);
221                             
222                             if (p.invadj_posted) {
223                                 return;
224                             }
225                             p.invadj_transdate = record.data.invadj_transdate.format('Y-m-d');
226                              p.invadj_posted = 0; 
227                         
228                             _this.incom = true;    
229                             new Pman.Request( {
230                                 url : baseURL + '/Roo/Invadj',
231                                 mask : 'Saving',
232                                 method : 'POST',
233                                 params : p,
234                                 success : function(res) {
235                                     record.set('invadj_id', res.data.invadj_id);
236                                     _this.incom = false;
237                                 },
238                                 failure : function()
239                                 {
240                                     Roo.MessageBox.alert("Error", "Saving failed");
241                                     _this.incom = false;            
242                                 }
243                             
244                             });
245                             
246                             
247                             
248                         }
249                     },
250                     remoteSort : true,
251                     sortInfo : { field : 'invadj_id', direction: 'DESC' },
252                     proxy : {
253                         xtype: 'HttpProxy',
254                         xns: Roo.data,
255                         method : 'GET',
256                         url : baseURL + '/Roo/invadj.php'
257                     },
258                     reader : {
259                         xtype: 'JsonReader',
260                         xns: Roo.data,
261                         totalProperty : 'total',
262                         root : 'data',
263                         id : 'id',
264                         fields : [
265                             {
266                                 'name': 'invadj_id',
267                                 'type': 'int'
268                             },
269                             {
270                                 'name': 'invadj_transdate',
271                                 'type': 'date',
272                                 'dateFormat': 'Y-m-d'
273                             },
274                             {
275                                 'name': 'invadj_location_id',
276                                 'type': 'int'
277                             },
278                             {
279                                 'name': 'invadj_itemsite_id',
280                                 'type': 'int'
281                             },
282                             {
283                                 'name': 'invadj_qty_by',
284                                 'type': 'int'
285                             },
286                             {
287                                 'name': 'invadj_posted',
288                                 'type': 'int'
289                             }
290                         ]
291                     }
292                 },
293                 footer : {
294                     xtype: 'PagingToolbar',
295                     xns: Roo,
296                     pageSize : 25,
297                     displayInfo : true,
298                     displayMsg : "Displaying invadj{0} - {1} of {2}",
299                     emptyMsg : "No invadj found"
300                 },
301                 toolbar : {
302                     xtype: 'Toolbar',
303                     xns: Roo,
304                     items : [
305                         {
306                             xtype: 'ComboBox',
307                             xns: Roo.form,
308                             listeners : {
309                                 render : function (_self)
310                                 {
311                                     _this.locationCombo = _self;
312                                 },
313                                 select : function (combo, record, index)
314                                 {
315                                     Roo.log('select');
316                                     _this.grid.footer.onClick('first');
317                                 }
318                             },
319                             allowBlank : true,
320                             displayField : 'location_name',
321                             editable : true,
322                             emptyText : "Select location",
323                             fieldLabel : 'location',
324                             forceSelection : true,
325                             hiddenName : 'invadj_location_id',
326                             listWidth : 400,
327                             loadingText : "Searching...",
328                             minChars : 2,
329                             name : 'invadj_location_id_location_name',
330                             pageSize : 100,
331                             qtip : "Select location",
332                             queryParam : 'query[location_name]',
333                             selectOnFocus : true,
334                             tpl : '<div class="x-grid-cell-text x-btn button"><b>{location_name}</b> </div>',
335                             triggerAction : 'all',
336                             typeAhead : false,
337                             valueField : 'location_id',
338                             width : 150,
339                             store : {
340                                 xtype: 'Store',
341                                 xns: Roo.data,
342                                 listeners : {
343                                     beforeload : function (_self, o){
344                                         o.params = o.params || {};
345                                         // set more here
346                                     }
347                                 },
348                                 remoteSort : true,
349                                 sortInfo : { direction : 'ASC', field: 'location_name' },
350                                 proxy : {
351                                     xtype: 'HttpProxy',
352                                     xns: Roo.data,
353                                     method : 'GET',
354                                     url : baseURL + '/Roo/location.php'
355                                 },
356                                 reader : {
357                                     xtype: 'JsonReader',
358                                     xns: Roo.data,
359                                     id : 'id',
360                                     root : 'data',
361                                     totalProperty : 'total',
362                                     fields : [{"name":"id","type":"int"},{"name":"location_name","type":"string"}]
363                                 }
364                             }
365                         },
366                         {
367                             xtype: 'ComboBox',
368                             xns: Roo.form,
369                             listeners : {
370                                 render : function (_self)
371                                 {
372                                     _this.itemCombo = _self;
373                                 },
374                                 select : function (combo, record, index)
375                                 {
376                                     Roo.log('select');
377                                     _this.grid.footer.onClick('first');
378                                 }
379                             },
380                             allowBlank : true,
381                             displayField : 'itemsite_item_id_item_number',
382                             editable : true,
383                             emptyText : "Select itemsite",
384                             fieldLabel : 'itemsite',
385                             forceSelection : true,
386                             hiddenName : 'invadj_itemsite_id',
387                             listWidth : 400,
388                             loadingText : "Searching...",
389                             minChars : 2,
390                             name : 'invadj_itemsite_id_item_number',
391                             pageSize : 20,
392                             qtip : "Select itemsite",
393                             queryParam : 'query[number]',
394                             selectOnFocus : true,
395                             tpl : '<div class="x-grid-cell-text x-btn button"><b>{itemsite_item_id_item_number}</b> </div>',
396                             triggerAction : 'all',
397                             typeAhead : false,
398                             valueField : 'itemsite_id',
399                             width : 150,
400                             store : {
401                                 xtype: 'Store',
402                                 xns: Roo.data,
403                                 listeners : {
404                                     beforeload : function (_self, o){
405                                         o.params = o.params || {};
406                                         // set more here
407                                     }
408                                 },
409                                 remoteSort : true,
410                                 sortInfo : { direction : 'ASC', field: 'itemsite_item_id_item_number' },
411                                 proxy : {
412                                     xtype: 'HttpProxy',
413                                     xns: Roo.data,
414                                     method : 'GET',
415                                     url : baseURL + '/Roo/itemsite.php'
416                                 },
417                                 reader : {
418                                     xtype: 'JsonReader',
419                                     xns: Roo.data,
420                                     id : 'id',
421                                     root : 'data',
422                                     totalProperty : 'total',
423                                     fields : [{"name":"id","type":"int"},{"name":"itemsite_abcclass","type":"string"}]
424                                 }
425                             }
426                         },
427                         {
428                             xtype: 'ComboBox',
429                             xns: Roo.form,
430                             listeners : {
431                                 render : function (_self)
432                                 {
433                                   _this.status = _self;
434                                 },
435                                 select : function (combo, record, index)
436                                 {
437                                     Roo.log('select');
438                                     _this.grid.footer.onClick('first');
439                                 }
440                             },
441                             allowBlank : false,
442                             displayField : 'fname',
443                             editable : false,
444                             fieldLabel : 'Status',
445                             hiddenName : 'cm_status',
446                             listWidth : 200,
447                             mode : 'local',
448                             name : 'cm_status_name',
449                             triggerAction : 'all',
450                             value : "ALL-NOGROUP",
451                             valueField : 'ftype',
452                             width : 150,
453                             store : {
454                                 xtype: 'SimpleStore',
455                                 xns: Roo.data,
456                                 data : [ 
457                                     [ 'ALL-NOGROUP', "All (not in Group)"],
458                                     [ 'ALL-NOGROUP WITHVOID', "All (not in Group) (with Void)"],     
459                                     [ 'UNPOSTED-NOGROUP', "Unposted only (not in Group)"] ,
460                                     [ 'POSTED-NOGROUP', "Posted only (not in Group)"] ,
461                                     [ 'VOID-NOGROUP' ,"Void (not in Group)"],
462                                     [ 'ALL', "All"],
463                                     [ 'ALL-WITHVOID', "All (with Void)"],    
464                                     [ 'UNPOSTED', "Unposted only"] ,
465                                     [ 'POSTED', "Posted only"] ,
466                                     [ 'VOID', "Void only"]  
467                                     
468                                 ],
469                                 fields : [  'ftype', 'fname']
470                             }
471                         },
472                         {
473                             xtype: 'TextField',
474                             xns: Roo.form,
475                             listeners : {
476                                 specialkey : function (_self, e)
477                                 {
478                                     _this.grid.footer.onClick('first');
479                                 },
480                                 render : function (_self)
481                                 {
482                                     _this.search = _self;
483                                 }
484                             },
485                             width : 100
486                         },
487                         {
488                             xtype: 'Button',
489                             xns: Roo.Toolbar,
490                             listeners : {
491                                 click : function (_self, e)
492                                 {
493                                 _this.grid.footer.onClick('first');
494                                 }
495                             },
496                             cls : 'x-btn-icon',
497                             icon : rootURL + '/Pman/templates/images/search.gif'
498                         },
499                         {
500                             xtype: 'Button',
501                             xns: Roo.Toolbar,
502                             listeners : {
503                                 click : function (_self, e)
504                                 {
505                                     _this.locationCombo.reset();
506                                     _this.itemCombo.reset();
507                                     
508                                     _this.grid.footer.onClick('first');
509                                 }
510                             },
511                             cls : 'x-btn-icon',
512                             icon : rootURL + '/Pman/templates/images/edit-clear.gif'
513                         },
514                         {
515                             xtype: 'Fill',
516                             xns: Roo.Toolbar
517                         },
518                         {
519                             xtype: 'Button',
520                             xns: Roo.Toolbar,
521                             listeners : {
522                                 click : function ()
523                                 {   
524                                     new Pman.Download({
525                                         grid : _this.grid
526                                     });
527                                    
528                                 }
529                             },
530                             cls : 'x-btn-text-icon',
531                             text : "Download Excel",
532                             icon : rootURL + '/Pman/templates/images/spreadsheet.gif'
533                         },
534                         {
535                             xtype: 'Button',
536                             xns: Roo.Toolbar,
537                             listeners : {
538                                 click : function()
539                                 {
540                                    
541                                     Roo.log("add presed");
542                                      
543                                     // work out last 
544                                     var grid = _this.grid;
545                                      
546                                     // uses form defaults or last row value.
547                                     var nr = _this.grid.ds.reader.newRow({
548                                         invadj_id : 0,
549                                         invadj_transdate : (new Date()),
550                                         invadj_location_id :  0,
551                                         invadj_location_id_location_name : '',        
552                                         invadj_itemsite_id : 0,                
553                                         invadj_itemsite_id_item_number : '',        
554                                         invadj_qty_by : '',  
555                                         invadj_comments: '',      
556                                         invadj_posted: false
557                                                 
558                                     });
559                                     grid.stopEditing();
560                                     grid.ds.insert(0, nr); 
561                                     grid.startEditing(0, 1); // type..
562                                 
563                                 },
564                                 render : function (_self)
565                                 {
566                                     _this.addBtn = _self;
567                                 }
568                             },
569                             cls : 'x-btn-text-icon',
570                             text : "Add",
571                             icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
572                         },
573                         {
574                             xtype: 'Button',
575                             xns: Roo.Toolbar,
576                             listeners : {
577                                 click : function()
578                                 {
579                                    
580                                     Roo.log("add presed");
581                                     
582                                     var grid = _this.grid;
583                                     var r = grid.selModel.getSelectedCell();
584                                     
585                                     
586                                     if (!r) {
587                                         Roo.MessageBox.alert("Error", "Select an adjustment");
588                                         return;
589                                     }    
590                                     var rec = grid.ds.getAt(r[0]);
591                                     
592                                     var nrec = Roo.apply({}, rec.data);
593                                     nrec.invadj_qty_by *= -1;
594                                     nrec.invadj_comments = (rec.data.invadj_voids_id * 1 > 1) ? 'Restore of Adjustment #' + rec.data.invadj_voids_id : 'Void of Adjustment #' + rec.data.invadj_id;
595                                     nrec.invadj_posted = 0;
596                                     nrec.invadj_id = 0;    
597                                     nrec.invadj_invdetail_id  = '';
598                                     nrec.invadj_voids_id   =  rec.data.invadj_id;
599                                     //nrec.invadj_transdate = rec.data.invadj_transdate.format('Y-m-d');
600                                     
601                                     var nr = _this.grid.ds.reader.newRow(nrec);
602                                     grid.stopEditing();
603                                     grid.ds.insert(r[0], nr); 
604                                     (function() { 
605                                         grid.ds.getAt(r[0]).commit();
606                                     }).defer(100);
607                                     
608                                 }
609                             },
610                             cls : 'x-btn-text-icon',
611                             text : "Void",
612                             icon : rootURL + '/Pman/templates/images/trash.gif'
613                         },
614                         {
615                             xtype: 'Button',
616                             xns: Roo.Toolbar,
617                             listeners : {
618                                 click : function()
619                                 {
620                                    
621                                    var g = _this.grid;
622                                    var s = g.selModel.getSelectedCell();
623                                    if (!s) {
624                                         Roo.MessageBox.alert("Error", "Select Adjustment");
625                                         return;
626                                     }
627                                     var r = g.ds.getAt(s[0]);
628                                     if (r.data.invadj_posted) {
629                                         Roo.MessageBox.alert("Error", "You can not delete posted adjustments - try voiding them");
630                                         return;
631                                     }
632                                     new Pman.Request({
633                                         url : baseURL + '/Roo/Invadj',
634                                         method : 'POST',
635                                         params  : { _delete : r.data.invadj_id },
636                                         mask : 'Deleteing',
637                                         success : function(res) {
638                                             g.ds.remove(r);
639                                         }
640                                     
641                                     });
642                                    
643                                    
644                                 }
645                             },
646                             cls : 'x-btn-text-icon',
647                             text : "Delete",
648                             icon : rootURL + '/Pman/templates/images/trash.gif'
649                         }
650                     ]
651                 },
652                 colModel : [
653                     {
654                         xtype: 'ColumnModel',
655                         xns: Roo.grid,
656                         dataIndex : 'invadj_id',
657                         header : 'Ref#',
658                         sortable : true,
659                         width : 50,
660                         renderer : function(v) { return String.format('{0}', v); }
661                     },
662                     {
663                         xtype: 'ColumnModel',
664                         xns: Roo.grid,
665                         dataIndex : 'invadj_transdate',
666                         header : 'Date',
667                         sortable : true,
668                         width : 75,
669                         renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); },
670                         editor : {
671                             xtype: 'GridEditor',
672                             xns: Roo.grid,
673                             field : {
674                                 xtype: 'DateField',
675                                 xns: Roo.form,
676                                 format : 'Y-m-d',
677                                 useIso : true
678                             }
679                         }
680                     },
681                     {
682                         xtype: 'ColumnModel',
683                         xns: Roo.grid,
684                         dataIndex : 'invadj_location_id',
685                         header : 'Location',
686                         width : 150,
687                         renderer : function(v,x,r) { 
688                         
689                             return String.format('{0}', 
690                                 r.data.invadj_location_id_location_name
691                              ); 
692                          },
693                         editor : {
694                             xtype: 'GridEditor',
695                             xns: Roo.grid,
696                             field : {
697                                 xtype: 'ComboBox',
698                                 xns: Roo.form,
699                                 allowBlank : false,
700                                 displayField : 'location_name',
701                                 editable : true,
702                                 emptyText : "Select location",
703                                 fieldLabel : 'location',
704                                 forceSelection : true,
705                                 hiddenName : 'invadj_location_id',
706                                 listWidth : 400,
707                                 loadingText : "Searching...",
708                                 minChars : 2,
709                                 name : 'invadj_location_id_location_name',
710                                 pageSize : 200,
711                                 qtip : "Select location",
712                                 queryParam : 'query[location_name]',
713                                 selectOnFocus : true,
714                                 tpl : '<div class="x-grid-cell-text x-btn button"><b>{location_name}</b> </div>',
715                                 triggerAction : 'all',
716                                 typeAhead : false,
717                                 valueField : 'location_id',
718                                 width : 300,
719                                 store : {
720                                     xtype: 'Store',
721                                     xns: Roo.data,
722                                     listeners : {
723                                         beforeload : function (_self, o){
724                                             o.params = o.params || {};
725                                             // set more here
726                                         }
727                                     },
728                                     remoteSort : true,
729                                     sortInfo : { direction : 'ASC', field: 'location_name' },
730                                     proxy : {
731                                         xtype: 'HttpProxy',
732                                         xns: Roo.data,
733                                         method : 'GET',
734                                         url : baseURL + '/Roo/location.php'
735                                     },
736                                     reader : {
737                                         xtype: 'JsonReader',
738                                         xns: Roo.data,
739                                         id : 'id',
740                                         root : 'data',
741                                         totalProperty : 'total',
742                                         fields : [{"name":"id","type":"int"},{"name":"location_name","type":"string"}]
743                                     }
744                                 }
745                             }
746                         }
747                     },
748                     {
749                         xtype: 'ColumnModel',
750                         xns: Roo.grid,
751                         dataIndex : 'invadj_itemsite_id_item_number',
752                         header : 'Item Number',
753                         hidden : true,
754                         sortable : true,
755                         width : 50,
756                         renderer : function(v) { return String.format('{0}', v); }
757                     },
758                     {
759                         xtype: 'ColumnModel',
760                         xns: Roo.grid,
761                         dataIndex : 'invadj_itemsite_id',
762                         header : 'Item',
763                         width : 100,
764                         renderer : function(v,x,r) { return String.format('{0}', r.data.invadj_itemsite_id_item_number); },
765                         editor : {
766                             xtype: 'GridEditor',
767                             xns: Roo.grid,
768                             field : {
769                                 xtype: 'ComboBox',
770                                 xns: Roo.form,
771                                 allowBlank : false,
772                                 displayField : 'itemsite_item_id_item_number',
773                                 editable : true,
774                                 emptyText : "Select itemsite",
775                                 fieldLabel : 'itemsite',
776                                 forceSelection : true,
777                                 hiddenName : 'invadj_itemsite_id',
778                                 listWidth : 400,
779                                 loadingText : "Searching...",
780                                 minChars : 2,
781                                 name : 'invadj_itemsite_id_item_number',
782                                 pageSize : 20,
783                                 qtip : "Select itemsite",
784                                 queryParam : 'query[number]',
785                                 selectOnFocus : true,
786                                 tpl : '<div class="x-grid-cell-text x-btn button"><b>{itemsite_item_id_item_number}</b> </div>',
787                                 triggerAction : 'all',
788                                 typeAhead : false,
789                                 valueField : 'itemsite_id',
790                                 width : 300,
791                                 store : {
792                                     xtype: 'Store',
793                                     xns: Roo.data,
794                                     listeners : {
795                                         beforeload : function (_self, o){
796                                             o.params = o.params || {};
797                                             // set more here
798                                         }
799                                     },
800                                     remoteSort : true,
801                                     sortInfo : { direction : 'ASC', field: 'itemsite_item_id_item_number' },
802                                     proxy : {
803                                         xtype: 'HttpProxy',
804                                         xns: Roo.data,
805                                         method : 'GET',
806                                         url : baseURL + '/Roo/itemsite.php'
807                                     },
808                                     reader : {
809                                         xtype: 'JsonReader',
810                                         xns: Roo.data,
811                                         id : 'id',
812                                         root : 'data',
813                                         totalProperty : 'total',
814                                         fields : [{"name":"id","type":"int"},{"name":"itemsite_abcclass","type":"string"}]
815                                     }
816                                 }
817                             }
818                         }
819                     },
820                     {
821                         xtype: 'ColumnModel',
822                         xns: Roo.grid,
823                         align : 'right',
824                         dataIndex : 'invadj_qty_by',
825                         header : 'Adjust By #',
826                         width : 75,
827                         renderer : function(v) { return String.format('{0}', v); },
828                         editor : {
829                             xtype: 'GridEditor',
830                             xns: Roo.grid,
831                             field : {
832                                 xtype: 'NumberField',
833                                 xns: Roo.form,
834                                 allowDecimals : false,
835                                 cls : 'align-right'
836                             }
837                         }
838                     },
839                     {
840                         xtype: 'ColumnModel',
841                         xns: Roo.grid,
842                         dataIndex : 'invadj_comments',
843                         header : 'Comments',
844                         width : 75,
845                         renderer : function(v,x,r) {
846                            return String.format(r.data.invfifo_void * 1 > 0 ? '<s style="color:#ccc">{0}</s>' : '{0}', v); 
847                          },
848                         editor : {
849                             xtype: 'GridEditor',
850                             xns: Roo.grid,
851                             field : {
852                                 xtype: 'TextField',
853                                 xns: Roo.form
854                             }
855                         }
856                     },
857                     {
858                         xtype: 'ColumnModel',
859                         xns: Roo.grid,
860                         dataIndex : 'invadj_posted',
861                         header : 'Posted',
862                         width : 75,
863                         renderer : function(v) {  
864                             var state = v * 1 > 0 ?  '-checked' : '';
865                         
866                             return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
867                                         
868                          }
869                     }
870                 ]
871             }
872         };
873     }
874 });