commit
[Pman.Xtuple] / Pman.Tab.XtupleGeneralLedger.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.XtupleGeneralLedger = new Roo.XComponent({
6     part     :  ["Xtuple","GeneralLedger"],
7     order    : '005-Pman.Tab.XtupleGeneralLedger',
8     region   : 'center',
9     parent   : 'Pman.Tab.XtupleAccountsTab',
10     name     : "unnamed module",
11     disabled : false, 
12     permname : '', 
13     _tree : function()
14     {
15         var _this = this;
16         var MODULE = this;
17         return {
18             xtype: 'NestedLayoutPanel',
19             xns: Roo,
20             background : true,
21             fitContainer : true,
22             fitToFrame : true,
23             region : 'center',
24             title : "General Ledger",
25             layout : {
26                 xtype: 'BorderLayout',
27                 xns: Roo,
28                 items : [
29                     {
30                         xtype: 'GridPanel',
31                         xns: Roo,
32                         listeners : {
33                             activate : function() {
34                                 _this.wpanel = this;
35                                 if (_this.wgrid) {
36                                     _this.wgrid.ds.load({});
37                                 }
38                             }
39                         },
40                         background : false,
41                         fitContainer : true,
42                         fitToframe : true,
43                         region : 'west',
44                         tableName : 'accnt',
45                         title : "Account",
46                         grid : {
47                             xtype: 'Grid',
48                             xns: Roo.grid,
49                             listeners : {
50                                 render : function() 
51                                 {
52                                     _this.wgrid = this; 
53                                     _this.active = 1;
54                                     //_this.dialog = Pman.Dialog.FILL_IN
55                                     if (_this.wpanel.active) {
56                                        this.ds.load({});
57                                     }
58                                 },
59                                 rowclick : function (_self, rowIndex, e)
60                                 {
61                                     var s = _this.wgrid.ds.getAt(rowIndex);
62                                     
63                                     if(s.data.accnt_id * 1 < 1){
64                                         return;
65                                     }
66                                     
67                                     _this.grid.footer.onClick('first');
68                                     
69                                     
70                                 },
71                                 rowdblclick : function (_self, rowIndex, e)
72                                 {
73                                     var ret = _this.wgrid.ds.getAt(rowIndex).data;
74                                     if(ret.accnt_id * 1 < 1){
75                                         Roo.MessageBox.alert("Error", "Error occur on getting the account id!");
76                                         return;
77                                     }
78                                     Pman.Dialog.XtupleGLAccountNameEdit.show( {accnt_id : ret.accnt_id}, function() {
79                                         _this.wgrid.ds.load({});
80                                     }); 
81                                 }
82                             },
83                             autoExpandColumn : 'accnt_descrip',
84                             loadMask : true,
85                             toolbar : {
86                                 xtype: 'Toolbar',
87                                 xns: Roo,
88                                 items : [
89                                     {
90                                         xtype: 'TextField',
91                                         xns: Roo.form,
92                                         listeners : {
93                                             specialkey : function (_self, e)
94                                             {
95                                               _this.wgrid.ds.load({});
96                                             },
97                                             render : function (_self)
98                                             {
99                                                 _this.searchBox = _self;
100                                             }
101                                         },
102                                         width : 100
103                                     },
104                                     {
105                                         xtype: 'Button',
106                                         xns: Roo.Toolbar,
107                                         listeners : {
108                                             click : function (_self, e)
109                                             {
110                                                 _this.wgrid.ds.load({});
111                                             }
112                                         },
113                                         cls : 'x-btn-icon',
114                                         icon : rootURL + '/Pman/templates/images/search.gif'
115                                     },
116                                     {
117                                         xtype: 'Button',
118                                         xns: Roo.Toolbar,
119                                         listeners : {
120                                             click : function (_self, e)
121                                             {
122                                                 _this.searchBox.setValue('');\r
123                                                 _this.wgrid.ds.load({});\r
124                                             }
125                                         },
126                                         cls : 'x-btn-icon',
127                                         icon : rootURL + '/Pman/templates/images/edit-clear.gif'
128                                     },
129                                     {
130                                         xtype: 'DateField',
131                                         xns: Roo.form,
132                                         listeners : {
133                                             render : function (_self)\r
134                                             {\r
135                                                 _this.dateSel = _self;\r
136                                                _self.setValue(  new Date() );\r
137                                             },
138                                             select : function (combo, date)
139                                             {
140                                                 _this.wgrid.ds.load({});
141                                             }
142                                         },
143                                         allowBlank : false,
144                                         format : 'd/M/Y',
145                                         width : 100
146                                     },
147                                     {
148                                         xtype: 'Fill',
149                                         xns: Roo.Toolbar
150                                     },
151                                     {
152                                         xtype: 'TextField',
153                                         xns: Roo.form,
154                                         listeners : {
155                                             render : function (_self)
156                                             {
157                                                 _this.orderBox = _self;
158                                             }
159                                         },
160                                         width : 80
161                                     },
162                                     {
163                                         xtype: 'Button',
164                                         xns: Roo.Toolbar,
165                                         text : "Download / Upload",
166                                         menu : {
167                                             xtype: 'Menu',
168                                             xns: Roo.menu,
169                                             items : [
170                                                 {
171                                                     xtype: 'Item',
172                                                     xns: Roo.menu,
173                                                     listeners : {
174                                                         click : function (_self, e)
175                                                         {
176                                                             _this.active = (_this.active) ? 0 : 1;
177                                                             this.setText(_this.active ? "Show Inactive" : "Hide Inactive");
178                                                             _this.wgrid.ds.load({});
179                                                         }
180                                                     },
181                                                     text : "Show Inactive"
182                                                 },
183                                                 {
184                                                     xtype: 'Separator',
185                                                     xns: Roo.menu
186                                                 },
187                                                 {
188                                                     xtype: 'Item',
189                                                     xns: Roo.menu,
190                                                     listeners : {
191                                                         click : function (_self, e)
192                                                         {
193                                                             
194                                                             new Pman.download({
195                                                                 url : baseURL + '/Roo/accnt.php',
196                                                                 method : 'GET',
197                                                                 params : {
198                                                                     'start' : 0,
199                                                                     'limit' : 9999,
200                                                                     _with_xt_balances : 1,
201                                                                     'csvTitles[0]' : 'Name', 'csvCols[0]' : 'accnt_name',
202                                                                     'csvTitles[1]' : 'Description', 'csvCols[1]' : 'accnt_descrip',
203                                                                     'csvTitles[2]' : 'Alternative Code', 'csvCols[2]' : 'accnt_code_alt',
204                                                                     'csvTitles[3]' : 'Alternative Description', 'csvCols[3]' : 'accnt_code_descrip',
205                                                                     'csvTitles[4]' : 'ADJUST', 'csvCols[4]' : 'balance_base'
206                                                                 }
207                                                                 
208                                                             });
209                                                         }
210                                                     },
211                                                     text : "Download Balances"
212                                                 },
213                                                 {
214                                                     xtype: 'Item',
215                                                     xns: Roo.menu,
216                                                     listeners : {
217                                                         click : function (_self, e)
218                                                         {
219                                                            Pman.Dialog.XtupleUploadBalances.show( {} , function(res) {
220                                                                 Pman.Dialog.Image.show({
221                                                                     _url : baseURL + '/Xtuple/Import/JournalEntry?' + Roo.urlEncode(res)
222                                                                 }, function(data) {
223                                                                      _this.wgrid.ds.load({});
224                                                                 });
225                                                            }); 
226                                                         }
227                                                     },
228                                                     text : "Upload JE adjustment"
229                                                 },
230                                                 {
231                                                     xtype: 'Separator',
232                                                     xns: Roo.menu
233                                                 },
234                                                 {
235                                                     xtype: 'Item',
236                                                     xns: Roo.menu,
237                                                     listeners : {
238                                                         click : function (_self, e)
239                                                         {
240                                                             
241                                                           new Pman.Download({
242                                                                 url : baseURL + '/Roo/Metasql',
243                                                                 method : 'GET',
244                                                                 timeout: 60000,
245                                                                 newWindow : true,
246                                                                 params : {
247                                                                     _group : 'apopen',
248                                                                     _name : 'bydate',
249                                                                     csvCols : '*',
250                                                                     csvTitles : '*', 
251                                                                     limit : 9999         
252                                                                     
253                                                                 }
254                                                             });;
255                                                             Roo.MessageBox.alert("Notice", "This may take some time to calculate");
256                                                         }
257                                                     },
258                                                     text : "Download AP - Day by Day Comparison"
259                                                 },
260                                                 {
261                                                     xtype: 'Item',
262                                                     xns: Roo.menu,
263                                                     listeners : {
264                                                         click : function (_self, e)
265                                                         {
266                                                             
267                                                           new Pman.Download({
268                                                                 url : baseURL + '/Roo/Metasql',
269                                                                 method : 'GET',
270                                                                 timeout: 90000,
271                                                                 params : {
272                                                                     _group : 'apopen',
273                                                                     _name : 'bydatesummary',
274                                                                     csvCols : '*',
275                                                                     csvTitles : '*', 
276                                                                     limit : 9999         
277                                                                     
278                                                                 }
279                                                             });;
280                                                             Roo.MessageBox.alert("Notice", "This may take some time to calculate");
281                                                         }
282                                                     },
283                                                     text : "Download AP open vs GL - summary of bad days"
284                                                 },
285                                                 {
286                                                     xtype: 'Item',
287                                                     xns: Roo.menu,
288                                                     listeners : {
289                                                         click : function (_self, e)
290                                                         {
291                                                             
292                                                           new Pman.Download({
293                                                                 url : baseURL + '/Roo/Metasql',
294                                                                 method : 'GET',
295                                                                 timeout: 90000,
296                                                                 params : {
297                                                                      'startDate:text' : _this.dateSel.getValue().format('Y-m-d'),
298                                                                     'endDate:text' :  _this.dateSel.getValue().add(Date.DAY,1).format('Y-m-d'),
299                                                                 
300                                                                     _group : 'apopen',
301                                                                     _name : 'all',
302                                                                     csvCols : '*',
303                                                                     csvTitles : '*', 
304                                                                     limit : 9999         
305                                                                     
306                                                                 }
307                                                             });;
308                                                             Roo.MessageBox.alert("Notice", "This may take some time to calculate");
309                                                         }
310                                                     },
311                                                     text : "Download AP - Transactions on a single day"
312                                                 },
313                                                 {
314                                                     xtype: 'Item',
315                                                     xns: Roo.menu,
316                                                     listeners : {
317                                                         click : function (_self, e)
318                                                         {
319                                                             
320                                                           new Pman.Download({
321                                                                 url : baseURL + '/Roo/Metasql',
322                                                                 method : 'GET',
323                                                                 timeout: 90000,
324                                                                 params : {
325                                                                      'relDate:text' : _this.dateSel.getValue().format('Y-m-d'),
326                                                                     'useDocDate:text' :  'FALSE',
327                                                                 
328                                                                     _group : 'apAging',
329                                                                     _name : 'bydate',
330                                                                     csvCols : '*',
331                                                                     csvTitles : '*', 
332                                                                     limit : 9999         
333                                                                     
334                                                                 }
335                                                             });;
336                                                             Roo.MessageBox.alert("Notice", "This may take some time to calculate");
337                                                         }
338                                                     },
339                                                     text : "Download AP Aging at this date"
340                                                 },
341                                                 {
342                                                     xtype: 'Item',
343                                                     xns: Roo.menu,
344                                                     listeners : {
345                                                         click : function (_self, e)
346                                                         {
347                                                             
348                                                           new Pman.Download({
349                                                                 url : baseURL + '/Roo/Metasql',
350                                                                 method : 'GET',
351                                                                 timeout: 90000,
352                                                                 params : {
353                                                                      
354                                                                     _group : 'apopen',
355                                                                     _name : 'history',
356                                                                     csvCols : '*',
357                                                                     csvTitles : '*', 
358                                                                     limit : 9999         
359                                                                     
360                                                                 }
361                                                             });
362                                                             Roo.MessageBox.alert("Notice", "This may take some time to calculate");
363                                                         }
364                                                     },
365                                                     text : "Download AP Aging History"
366                                                 },
367                                                 {
368                                                     xtype: 'Separator',
369                                                     xns: Roo.menu
370                                                 },
371                                                 {
372                                                     xtype: 'Item',
373                                                     xns: Roo.menu,
374                                                     listeners : {
375                                                         click : function (_self, e)
376                                                         {
377                                                             
378                                                              new Pman.Download({
379                                                                 url : baseURL + '/Roo/Metasql',
380                                                                 method : 'GET',
381                                                                 params : {
382                                                                     _group : 'aropen',
383                                                                     _name : 'all',
384                                                                     'startDate:text' : _this.dateSel.getValue().format('Y-m-d'),
385                                                                     'endDate:text' :  _this.dateSel.getValue().add(Date.DAY,1).format('Y-m-d'),
386                                                                     csvCols : '*',
387                                                                     csvTitles : '*', 
388                                                                     limit : 9999        
389                                                                     
390                                                                 }
391                                                             });;
392                                                         }
393                                                     },
394                                                     text : "Download AR - Transactions on a day"
395                                                 },
396                                                 {
397                                                     xtype: 'Item',
398                                                     xns: Roo.menu,
399                                                     listeners : {
400                                                         click : function (_self, e)
401                                                         {
402                                                             
403                                                              new Pman.Download({
404                                                                 url : baseURL + '/Roo/Metasql',
405                                                                 method : 'GET',
406                                                                 params : {
407                                                                     _group : 'aropen',
408                                                                     _name : 'bydate',
409                                                                     csvCols : '*',
410                                                                     csvTitles : '*', 
411                                                                     limit : 9999         
412                                                                     
413                                                                 }
414                                                             });;
415                                                         }
416                                                     },
417                                                     text : "Download AR - Day by Day Comparison"
418                                                 },
419                                                 {
420                                                     xtype: 'Separator',
421                                                     xns: Roo.menu
422                                                 },
423                                                 {
424                                                     xtype: 'Item',
425                                                     xns: Roo.menu,
426                                                     text : "Gltrans vs Stock (COHEAD)",
427                                                     menu : {
428                                                         xtype: 'Menu',
429                                                         xns: Roo.menu,
430                                                         items : [
431                                                             {
432                                                                 xtype: 'Item',
433                                                                 xns: Roo.menu,
434                                                                 listeners : {
435                                                                     click : function (_self, e)
436                                                                     {
437                                                                         
438                                                                          new Pman.Download({
439                                                                             url : baseURL + '/Roo/Metasql',
440                                                                             method : 'GET',
441                                                                             params : {
442                                                                                 _group : 'gltrans_stock',
443                                                                                 _name : 'bydate',
444                                                                                 csvCols : '*',
445                                                                                 csvTitles : '*', 
446                                                                                 limit : 9999       
447                                                                             }
448                                                                         });
449                                                                     }
450                                                                 },
451                                                                 text : "Download Gltrans vs Stock By Date"
452                                                             },
453                                                             {
454                                                                 xtype: 'Item',
455                                                                 xns: Roo.menu,
456                                                                 listeners : {
457                                                                     click : function (_self, e)
458                                                                     {
459                                                                         var dt = _this.dateSel.getValue();
460                                                                          new Pman.Download({
461                                                                             url : baseURL + '/Roo/Metasql',
462                                                                             method : 'GET',
463                                                                             params : {
464                                                                                 _group : 'gltrans_stock',
465                                                                                 _name : 'gltrans',
466                                                                                 '_as_of:text' : typeof(dt) == 'string' ? dt : dt.format('Y-m-d'),
467                                                                                 csvCols : '*',
468                                                                                 csvTitles : '*', 
469                                                                                 limit : 9999       
470                                                                             }
471                                                                         });
472                                                                     }
473                                                                 },
474                                                                 text : "Download Gltrans"
475                                                             },
476                                                             {
477                                                                 xtype: 'Item',
478                                                                 xns: Roo.menu,
479                                                                 listeners : {
480                                                                     click : function (_self, e)
481                                                                     {
482                                                                         var dt = _this.dateSel.getValue();
483                                                                          new Pman.Download({
484                                                                             url : baseURL + '/Roo/Metasql',
485                                                                             method : 'GET',
486                                                                             params : {
487                                                                                 _group : 'gltrans_stock',
488                                                                                 _name : 'stock',
489                                                                                 '_as_of:text' : typeof(dt) == 'string' ? dt : dt.format('Y-m-d'),
490                                                                                 csvCols : '*',
491                                                                                 csvTitles : '*', 
492                                                                                 limit : 9999       
493                                                                             }
494                                                                         });
495                                                                     }
496                                                                 },
497                                                                 text : "Download Stock"
498                                                             }
499                                                         ]
500                                                     }
501                                                 },
502                                                 {
503                                                     xtype: 'Separator',
504                                                     xns: Roo.menu
505                                                 },
506                                                 {
507                                                     xtype: 'Item',
508                                                     xns: Roo.menu,
509                                                     text : "Gltrans vs Stock (PO)",
510                                                     menu : {
511                                                         xtype: 'Menu',
512                                                         xns: Roo.menu,
513                                                         items : [
514                                                             {
515                                                                 xtype: 'Item',
516                                                                 xns: Roo.menu,
517                                                                 listeners : {
518                                                                     click : function (_self, e)
519                                                                     {
520                                                                         
521                                                                          new Pman.Download({
522                                                                             url : baseURL + '/Roo/Metasql',
523                                                                             method : 'GET',
524                                                                             timeout: 600000,
525                                                                             params : {
526                                                                                 _group : 'gltrans_stock',
527                                                                                 _name : 'byorder',
528                                                                                 csvCols : '*',
529                                                                                 csvTitles : '*', 
530                                                                                 limit : 9999       
531                                                                             }
532                                                                         });
533                                                                     }
534                                                                 },
535                                                                 text : "Download Gltrans vs Stock By PO"
536                                                             },
537                                                             {
538                                                                 xtype: 'Item',
539                                                                 xns: Roo.menu,
540                                                                 listeners : {
541                                                                     click : function (_self, e)
542                                                                     {
543                                                                         var ord = _this.orderBox.getValue();
544                                                                         
545                                                                         if(!ord.length){
546                                                                             Roo.MessageBox.alert('Error','Please enter a PO number');
547                                                                             return;
548                                                                         }
549                                                                         
550                                                                         
551                                                                          new Pman.Download({
552                                                                             url : baseURL + '/Roo/Metasql',
553                                                                             method : 'GET',
554                                                                             params : {
555                                                                                 _group : 'gltrans_stock',
556                                                                                 _name : 'byordergltrans',
557                                                                                 'docnumber:text' : ord,
558                                                                                 csvCols : '*',
559                                                                                 csvTitles : '*', 
560                                                                                 limit : 9999       
561                                                                             }
562                                                                         });
563                                                                     }
564                                                                 },
565                                                                 text : "Download Gltrans"
566                                                             },
567                                                             {
568                                                                 xtype: 'Item',
569                                                                 xns: Roo.menu,
570                                                                 listeners : {
571                                                                     click : function (_self, e)
572                                                                     {
573                                                                         var ord = _this.orderBox.getValue();
574                                                                         
575                                                                         if(!ord.length){
576                                                                             Roo.MessageBox.alert('Error','Please enter a PO number');
577                                                                             return;
578                                                                         }
579                                                                         
580                                                                         
581                                                                          new Pman.Download({
582                                                                             url : baseURL + '/Roo/Metasql',
583                                                                             method : 'GET',
584                                                                             params : {
585                                                                                 _group : 'gltrans_stock',
586                                                                                 _name : 'byorderstock',
587                                                                                 'docnumber:text' : ord,
588                                                                                 csvCols : '*',
589                                                                                 csvTitles : '*', 
590                                                                                 limit : 9999      
591                                                                             }
592                                                                         });
593                                                                     }
594                                                                 },
595                                                                 text : "Download Stock"
596                                                             }
597                                                         ]
598                                                     }
599                                                 },
600                                                 {
601                                                     xtype: 'Separator',
602                                                     xns: Roo.menu
603                                                 },
604                                                 {
605                                                     xtype: 'Item',
606                                                     xns: Roo.menu,
607                                                     text : "Kingdee",
608                                                     menu : {
609                                                         xtype: 'Menu',
610                                                         xns: Roo.menu,
611                                                         items : [
612                                                             {
613                                                                 xtype: 'Item',
614                                                                 xns: Roo.menu,
615                                                                 listeners : {
616                                                                     click : function (_self, e)
617                                                                     {
618                                                                         
619                                                                          new Pman.Download({
620                                                                             url : baseURL+'/Xtuple/Kingdee/Currency',
621                                                                             method : 'GET',
622                                                                             timeout: 600000
623                                                                         });
624                                                                         Roo.MessageBox.alert("Notice", "Report will download shortly");
625                                                                     }
626                                                                 },
627                                                                 text : "Currency"
628                                                             },
629                                                             {
630                                                                 xtype: 'Item',
631                                                                 xns: Roo.menu,
632                                                                 listeners : {
633                                                                     click : function (_self, e)
634                                                                     {
635                                                                         
636                                                                          new Pman.Download({
637                                                                             url : baseURL+'/Xtuple/Kingdee/Rate',
638                                                                             method : 'GET',
639                                                                             timeout: 600000
640                                                                         });
641                                                                         Roo.MessageBox.alert("Notice", "Report will download shortly");
642                                                                     }
643                                                                 },
644                                                                 text : "Exchange Rate"
645                                                             },
646                                                             {
647                                                                 xtype: 'Item',
648                                                                 xns: Roo.menu,
649                                                                 listeners : {
650                                                                     click : function (_self, e)
651                                                                     {
652                                                                         
653                                                                          new Pman.Download({
654                                                                             url : baseURL+'/Xtuple/Kingdee/Account',
655                                                                             method : 'GET',
656                                                                             timeout: 600000
657                                                                         });
658                                                                         Roo.MessageBox.alert("Notice", "Report will download shortly");
659                                                                     }
660                                                                 },
661                                                                 text : "Accounts"
662                                                             },
663                                                             {
664                                                                 xtype: 'Item',
665                                                                 xns: Roo.menu,
666                                                                 listeners : {
667                                                                     click : function (_self, e)
668                                                                     {
669                                                                         new Pman.Download({
670                                                                             url : baseURL+'/Xtuple/Kingdee/VoucherGroup',
671                                                                             method : 'GET',
672                                                                             timeout: 600000
673                                                                         });
674                                                                         Roo.MessageBox.alert("Notice", "Report will download shortly");
675                                                                     }
676                                                                 },
677                                                                 text : "Voucher Category"
678                                                             },
679                                                             {
680                                                                 xtype: 'Item',
681                                                                 xns: Roo.menu,
682                                                                 listeners : {
683                                                                     click : function (_self, e)
684                                                                     {
685                                                                         var dt = _this.dateSel.getValue();
686                                                                         new Pman.Download({
687                                                                             url : baseURL+'/Xtuple/Kingdee/Voucher',
688                                                                             method : 'GET',
689                                                                             timeout: 600000,
690                                                                             params : {
691                                                                                 _as_of : (typeof(dt) == 'string') ? dt : dt.format('Y-m-d')
692                                                                             }
693                                                                         });
694                                                                         Roo.MessageBox.alert("Notice", "Report will download shortly - If you wanna import again, please delete all the exist!");
695                                                                     }
696                                                                 },
697                                                                 text : "Transactions"
698                                                             }
699                                                         ]
700                                                     }
701                                                 }
702                                             ]
703                                         }
704                                     }
705                                 ]
706                             },
707                             dataSource : {
708                                 xtype: 'Store',
709                                 xns: Roo.data,
710                                 listeners : {
711                                     beforeload : function (_self, options)
712                                     {
713                                         options.params = options.params || {};
714                                         
715                                         options.params.limit = 9999;
716                                         
717                                         options.params._general_ledger = 1;
718                                         
719                                         options.params['search[name]'] = _this.searchBox.getValue();
720                                         
721                                         if (_this.active) {\r
722                                             options.params.accnt_active = 1;\r
723                                         }
724                                         
725                                         options.params._with_balances = 1;
726                                         \r    var dt = _this.dateSel.getValue();\r
727                                         options.params._as_of = typeof(dt) == 'string' ? dt : dt.format('Y-m-d');
728                                         
729                                     
730                                     }
731                                 },
732                                 remoteSort : true,
733                                 sortInfo : { field : 'accnt_name', direction: 'ASC' },
734                                 proxy : {
735                                     xtype: 'HttpProxy',
736                                     xns: Roo.data,
737                                     listeners : {
738                                         loadexception : function (This, o, arg, e)
739                                         {
740                                         
741                                         }
742                                     },
743                                     method : 'GET',
744                                     url : baseURL + '/Roo/accnt.php'
745                                 },
746                                 reader : {
747                                     xtype: 'JsonReader',
748                                     xns: Roo.data,
749                                     id : 'accnt_id',
750                                     root : 'data',
751                                     totalProperty : 'total',
752                                     fields : [
753                                         {
754                                             'name': 'accnt_id',
755                                             'type': 'int'
756                                         },
757                                         {
758                                             'name': 'accnt_name',
759                                             'type': 'string'
760                                         },
761                                         {
762                                             'name': 'accnt_descrip',
763                                             'type': 'string'
764                                         },
765                                         {
766                                             'name': 'accnt_type',
767                                             'type': 'string'
768                                         },
769                                         {
770                                             'name': 'accnt_subaccnttype_code',
771                                             'type': 'string'
772                                         },
773                                         {
774                                             'name': 'accnt_curr_id_curr_name',
775                                             'type': 'string'
776                                         },
777                                         {
778                                             'name': 'accnt_curr_id_curr_id',
779                                             'type': 'int'
780                                         }
781                                     ]
782                                 }
783                             },
784                             colModel : [
785                                 {
786                                     xtype: 'ColumnModel',
787                                     xns: Roo.grid,
788                                     dataIndex : 'accnt_name',
789                                     header : 'Name',
790                                     sortable : true,
791                                     width : 100,
792                                     renderer : function(v) { return String.format('{0}', v); }
793                                 },
794                                 {
795                                     xtype: 'ColumnModel',
796                                     xns: Roo.grid,
797                                     dataIndex : 'accnt_code_alt',
798                                     header : 'Alternative Code',
799                                     hidden : true,
800                                     sortable : true,
801                                     width : 50,
802                                     renderer : function(v) { return String.format('{0}', v); }
803                                 },
804                                 {
805                                     xtype: 'ColumnModel',
806                                     xns: Roo.grid,
807                                     dataIndex : 'accnt_descrip_alt',
808                                     header : 'Alternative Description',
809                                     hidden : true,
810                                     sortable : true,
811                                     width : 50,
812                                     renderer : function(v) { return String.format('{0}', v); }
813                                 },
814                                 {
815                                     xtype: 'ColumnModel',
816                                     xns: Roo.grid,
817                                     dataIndex : 'accnt_type',
818                                     header : 'Type',
819                                     sortable : true,
820                                     width : 50,
821                                     renderer : function(v,x,r) {
822                                          return String.format('{0}-{1}', v,r.data.accnt_subaccnttype_code); 
823                                      }
824                                 },
825                                 {
826                                     xtype: 'ColumnModel',
827                                     xns: Roo.grid,
828                                     dataIndex : 'accnt_descrip',
829                                     header : 'Description',
830                                     sortable : true,
831                                     width : 200,
832                                     renderer : function(v,x,r) 
833                                     { 
834                                         if(r.data.accnt_descrip_alt){
835                                             return String.format('{0} ({1})', v, r.data.accnt_descrip_alt);     
836                                         }
837                                         
838                                         return String.format('{0}', v); 
839                                     }
840                                 },
841                                 {
842                                     xtype: 'ColumnModel',
843                                     xns: Roo.grid,
844                                     align : 'right',
845                                     dataIndex : 'accnt_curr_id_curr_name',
846                                     header : 'Currency',
847                                     sortable : true,
848                                     width : 50,
849                                     renderer : function(v) { 
850                                         var base = baseURL.match(/sg\.php$/) ? 'SGD' : 'HKD';
851                                         if (v != base) {
852                                             return String.format('<span style="color:green">{0}</span>', v);     
853                                         }
854                                     
855                                         return String.format('{0}', v); 
856                                     }
857                                 },
858                                 {
859                                     xtype: 'ColumnModel',
860                                     xns: Roo.grid,
861                                     dataIndex : 'balance',
862                                     header : 'Balance',
863                                     sortable : true,
864                                     width : 100,
865                                     renderer : function(v) { \r
866                                        return String.format('<span style="color:blue;text-decoration:underline;">{0}</span>',\r
867                                                 Roo.util.Format.usMoney(v) ); 
868                                     }
869                                 }
870                             ]
871                         }
872                     },
873                     {
874                         xtype: 'GridPanel',
875                         xns: Roo,
876                         listeners : {
877                             activate : function() {
878                                 _this.panel = this;
879                              /*   if (_this.grid) {
880                                     _this.grid.ds.load({});
881                                 } */
882                             }
883                         },
884                         background : false,
885                         fitContainer : true,
886                         fitToframe : true,
887                         region : 'center',
888                         tableName : 'gltrans',
889                         title : "Transactions",
890                         grid : {
891                             xtype: 'EditorGrid',
892                             xns: Roo.grid,
893                             listeners : {
894                                 render : function() 
895                                 {
896                                     _this.grid = this; 
897                                     //_this.dialog = Pman.Dialog.FILL_IN
898                                    /* if (_this.panel.active) {
899                                        this.ds.load({});
900                                     } */
901                                 },
902                                 afteredit : function (e)
903                                 {   
904                                     var r = _this.grid.ds.getAt(e.row);
905                                     
906                                     if(e.value == e.originalValue || !r){
907                                         return;
908                                     }
909                                 
910                                     new Pman.Request({
911                                         url : baseURL + '/Roo/Gltrans.php',
912                                         method :'POST',
913                                         params : {
914                                             gltrans_id : r.data.gltrans_id,
915                                             gltrans_notes : e.value,
916                                             _update_notes : 1
917                                             
918                                         },
919                                         success : function() {
920                                            
921                                             _this.grid.footer.onClick('refresh');
922                                             
923                                         }
924                                     });
925                                     
926                                 },
927                                 rowclass : function (gridview, rowcfg)
928                                 {
929                                   rowcfg.rowClass = 'dragon-gl-fixedheight';
930                                 },
931                                 celldblclick : function (_self, rowIndex, columnIndex, e)
932                                 {
933                                     var cm = this.colModel.config[columnIndex].dataIndex;
934                                     var r = this.ds.getAt(rowIndex);
935                                     if (cm != 'gltrans_date') {
936                                         return;
937                                     }
938                                     new Pman.Download({
939                                         url : baseURL+ '/Roo/Metasql',
940                                         method : 'GET',
941                                         params : {
942                                             _group : 'gltrans',
943                                             _name : 'sequence',
944                                             'gltrans_sequence:number' : r.data.gltrans_sequence,
945                                             limit : 9999,
946                                         }
947                                     });
948                                     
949                                 }
950                             },
951                             autoExpandColumn : 'gltrans_notes',
952                             clicksToEdit : 2,
953                             loadMask : true,
954                             toolbar : {
955                                 xtype: 'Toolbar',
956                                 xns: Roo,
957                                 items : [
958                                     {
959                                         xtype: 'TextField',
960                                         xns: Roo.form,
961                                         listeners : {
962                                             specialkey : function (_self, e)
963                                             {
964                                               _this.grid.footer.onClick('first');
965                                             },
966                                             render : function (_self)
967                                             {
968                                                 _this.gltransBox = _self;
969                                             }
970                                         }
971                                     },
972                                     {
973                                         xtype: 'Button',
974                                         xns: Roo.Toolbar,
975                                         listeners : {
976                                             click : function (_self, e)
977                                             {
978                                                 _this.grid.footer.onClick('first');
979                                             }
980                                         },
981                                         cls : 'x-btn-icon',
982                                         icon : rootURL + '/Pman/templates/images/search.gif'
983                                     },
984                                     {
985                                         xtype: 'Button',
986                                         xns: Roo.Toolbar,
987                                         listeners : {
988                                             click : function (_self, e)
989                                             {
990                                                 _this.gltransBox.setValue('');\r
991                                                 _this.grid.footer.onClick('first');\r
992                                             }
993                                         },
994                                         cls : 'x-btn-icon',
995                                         icon : rootURL + '/Pman/templates/images/edit-clear.gif'
996                                     },
997                                     {
998                                         xtype: 'Fill',
999                                         xns: Roo.Toolbar
1000                                     },
1001                                     {
1002                                         xtype: 'Button',
1003                                         xns: Roo.Toolbar,
1004                                         cls : 'x-btn-text-icon',
1005                                         text : "Download",
1006                                         icon : rootURL + '/Pman/templates/images/spreadsheet.gif',
1007                                         menu : {
1008                                             xtype: 'Menu',
1009                                             xns: Roo.menu,
1010                                             items : [
1011                                                 {
1012                                                     xtype: 'Item',
1013                                                     xns: Roo.menu,
1014                                                     listeners : {
1015                                                         click : function (_self, e)
1016                                                         {
1017                                                             var s = _this.wgrid.getSelectionModel().getSelected();
1018                                                             
1019                                                             if(!s){
1020                                                                 Roo.MessageBox.alert("Error", "Please select a account"); 
1021                                                                 return false;
1022                                                             }
1023                                                             
1024                                                             var dt = _this.dateSel.getValue();
1025                                                             
1026                                                             if(!dt){
1027                                                                 Roo.MessageBox.alert("Error", "Please select a date on the right"); 
1028                                                                 return false;
1029                                                             }  
1030                                                             
1031                                                             var g = _this.gltransBox.getValue();
1032                                                             
1033                                                             var params = {
1034                                                                 '_group' : 'account',
1035                                                                 '_name' : 'summary',
1036                                                                 'limit' : 99999,
1037                                                                 'accnt_id:number' : s.data.accnt_id,
1038                                                                 'endDate:text' : typeof(dt) == 'string' ? dt : dt.format('Y-m-d'),
1039                                                                 'csvTitles' : '*',
1040                                                                 'csvCols' : '*'
1041                                                             };
1042                                                             
1043                                                             if(g.length){
1044                                                                 params['search:text'] = g;
1045                                                             }
1046                                                             
1047                                                             new Pman.Download({
1048                                                               url : baseURL + '/Roo/Metasql',
1049                                                               params :   params,
1050                                                               method : 'GET'
1051                                                             });
1052                                                             
1053                                                             Roo.MessageBox.alert("Notice", "All Transactions Report for " + s.data.accnt_descrip + " will download shortly");
1054                                                         }
1055                                                     },
1056                                                     text : "Download All Transactions"
1057                                                 },
1058                                                 {
1059                                                     xtype: 'Item',
1060                                                     xns: Roo.menu,
1061                                                     listeners : {
1062                                                         click : function (_self, e)
1063                                                         {
1064                                                             var s = _this.wgrid.getSelectionModel().getSelected();
1065                                                             
1066                                                             if(!s){
1067                                                                 Roo.MessageBox.alert("Error", "Please select a account"); 
1068                                                                 return false;
1069                                                             }
1070                                                             
1071                                                             var dt = _this.dateSel.getValue();
1072                                                             
1073                                                             if(!dt){
1074                                                                 Roo.MessageBox.alert("Error", "Please select a date on the right"); 
1075                                                                 return false;
1076                                                             }  
1077                                                             
1078                                                             new Pman.Download({
1079                                                                 url : baseURL + '/Roo/Gltrans.php',
1080                                                                 method :'GET',
1081                                                                 params : {
1082                                                                     gltrans_accnt_id : s.data.accnt_id,
1083                                                                     _as_of : typeof(dt) == 'string' ? dt : dt.format('Y-m-d'),
1084                                                                     _download : 1
1085                                                                 }
1086                                                             });
1087                                                             
1088                                                             Roo.MessageBox.alert("Notice", "Financial Year Report for " + s.data.accnt_descrip + " will download shortly");
1089                                                         }
1090                                                     },
1091                                                     text : "Download All Transactions (Selected Financial Year)"
1092                                                 },
1093                                                 {
1094                                                     xtype: 'Item',
1095                                                     xns: Roo.menu,
1096                                                     listeners : {
1097                                                         click : function (_self, e)
1098                                                         {   
1099                                                             var dt = _this.dateSel.getValue();
1100                                                             
1101                                                             if(!dt){
1102                                                                 Roo.MessageBox.alert("Error", "Please select a date on the right"); 
1103                                                                 return false;
1104                                                             }   
1105                                                                
1106                                                             new Pman.Download({
1107                                                                 url : baseURL + '/Roo/Gltrans.php',
1108                                                                 method :'GET',
1109                                                                 timeout : 900000,
1110                                                                 params : {
1111                                                                     _as_of : typeof(dt) == 'string' ? dt : dt.format('Y-m-d'),
1112                                                                     _download : 1
1113                                                                 }
1114                                                             });
1115                                                             
1116                                                             Roo.MessageBox.alert("Notice", "Financial Year Report for all accounts will download shortly! it might take several minutes");
1117                                                         }
1118                                                     },
1119                                                     text : "Download All Transactions  / All Accounts (Selected Financial Year)"
1120                                                 }
1121                                             ]
1122                                         }
1123                                     }
1124                                 ]
1125                             },
1126                             dataSource : {
1127                                 xtype: 'Store',
1128                                 xns: Roo.data,
1129                                 listeners : {
1130                                     beforeload : function (_self, options)
1131                                     {
1132                                         options.params = options.params || {};
1133                                         
1134                                         var s = _this.wgrid.getSelectionModel().getSelected();
1135                                         
1136                                         if(!s){
1137                                             return;
1138                                         }
1139                                         
1140                                         var dt = _this.dateSel.getValue();
1141                                         var g = _this.gltransBox.getValue();
1142                                         
1143                                         var params = {
1144                                             _group : 'account',
1145                                             _name : 'summary',
1146                                             'accnt_id:number' : s.data.accnt_id,
1147                                             'endDate:text' : typeof(dt) == 'string' ? dt : dt.format('Y-m-d')
1148                                         };
1149                                         
1150                                         if(g.length){
1151                                             params['search:text'] = g;
1152                                         }
1153                                         
1154                                         Roo.apply(options.params,params);
1155                                         
1156                                         var cm = _this.grid.getColumnModel();
1157                                         var hide = (g.length) ? true : false;
1158                                         
1159                                         cm.setHidden(cm.getIndexByDataIndex('gltrans_balance'), hide);
1160                                         
1161                                         
1162                                     }
1163                                 },
1164                                 remoteSort : true,
1165                                 proxy : {
1166                                     xtype: 'HttpProxy',
1167                                     xns: Roo.data,
1168                                     method : 'GET',
1169                                     timeout : 600000,
1170                                     url : baseURL + '/Roo/Metasql.php'
1171                                 },
1172                                 reader : {
1173                                     xtype: 'JsonReader',
1174                                     xns: Roo.data,
1175                                     id : 'gltrans_id',
1176                                     root : 'data',
1177                                     totalProperty : 'total',
1178                                     fields : [
1179                                         {
1180                                             'name': 'gltrans_id',
1181                                             'type': 'int'
1182                                         },
1183                                         {
1184                                             'name': 'gltrans_accnt_id',
1185                                             'type': 'int'
1186                                         },
1187                                         {
1188                                             'name': 'gltrans_source',
1189                                             'type': 'string'
1190                                         },
1191                                         {
1192                                             'name': 'gltrans_amount',
1193                                             'type': 'int'
1194                                         },
1195                                         {
1196                                             'name': 'gltrans_notes',
1197                                             'type': 'string'
1198                                         }
1199                                     ]
1200                                 }
1201                             },
1202                             footer : {
1203                                 xtype: 'PagingToolbar',
1204                                 xns: Roo,
1205                                 pageSize : 100,
1206                                 items : [
1207                                     {
1208                                         xtype: 'TextItem',
1209                                         xns: Roo.Toolbar,
1210                                         text : "Double Click To Edit"
1211                                     }
1212                                 ]
1213                             },
1214                             colModel : [
1215                                 {
1216                                     xtype: 'ColumnModel',
1217                                     xns: Roo.grid,
1218                                     dataIndex : 'gltrans_date',
1219                                     header : 'Date',
1220                                     sortable : true,
1221                                     width : 100,
1222                                     renderer : function(v,x,r) { 
1223                                         return String.format('{0}<br/><i style="color:#ccc;">{1}</i>',
1224                                              v ? v : '', r.data.gltrans_sequence
1225                                          ); 
1226                                     }
1227                                 },
1228                                 {
1229                                     xtype: 'ColumnModel',
1230                                     xns: Roo.grid,
1231                                     dataIndex : 'gltrans_source',
1232                                     header : 'Source / Who',
1233                                     sortable : true,
1234                                     width : 100,
1235                                     renderer : function(v,x,r) { 
1236                                         return String.format('{0} - {1}<br/>{2}', v,r.data.gltrans_doctype, r.data.gltrans_username);
1237                                      }
1238                                 },
1239                                 {
1240                                     xtype: 'ColumnModel',
1241                                     xns: Roo.grid,
1242                                     dataIndex : 'gltrans_docnumber',
1243                                     header : 'Doc Number',
1244                                     hidden : true,
1245                                     sortable : true,
1246                                     width : 100
1247                                 },
1248                                 {
1249                                     xtype: 'ColumnModel',
1250                                     xns: Roo.grid,
1251                                     dataIndex : 'gltrans_notes',
1252                                     header : 'Notes',
1253                                     width : 200,
1254                                     renderer : function(v,x,r) 
1255                                     { 
1256                                         return String.format(
1257                                                 '<span qtip="{2}"><b>{0}</b>' + "\n" + '{1}', 
1258                                                 r.data.gltrans_docnumber, v, 
1259                                                 v.split('\n').join('<br/>') 
1260                                             ).split('\n').join('<br/>');
1261                                         
1262                                     },
1263                                     editor : {
1264                                         xtype: 'GridEditor',
1265                                         xns: Roo.grid,
1266                                         field : {
1267                                             xtype: 'TextArea',
1268                                             xns: Roo.form
1269                                         }
1270                                     }
1271                                 },
1272                                 {
1273                                     xtype: 'ColumnModel',
1274                                     xns: Roo.grid,
1275                                     align : 'right',
1276                                     dataIndex : 'gltrans_base_curr',
1277                                     header : 'Currency',
1278                                     sortable : true,
1279                                     width : 75,
1280                                     renderer : function(v) { 
1281                                         return String.format('{0}', v); 
1282                                     }
1283                                 },
1284                                 {
1285                                     xtype: 'ColumnModel',
1286                                     xns: Roo.grid,
1287                                     align : 'right',
1288                                     dataIndex : 'gltrans_credit_amount',
1289                                     header : 'Credit',
1290                                     sortable : true,
1291                                     width : 100,
1292                                     renderer : function(v,x,r) { 
1293                                         return String.format('{0}', v ? Roo.util.Format.number(v*1,2)  : ''  );
1294                                     }
1295                                 },
1296                                 {
1297                                     xtype: 'ColumnModel',
1298                                     xns: Roo.grid,
1299                                     align : 'right',
1300                                     dataIndex : 'gltrans_debit_amount',
1301                                     header : 'Debit',
1302                                     sortable : true,
1303                                     width : 100,
1304                                     renderer : function(v,x,r) { 
1305                                         return String.format('{0}', v ? Roo.util.Format.number(v*1,2)  : ''  );
1306                                     }
1307                                 },
1308                                 {
1309                                     xtype: 'ColumnModel',
1310                                     xns: Roo.grid,
1311                                     align : 'right',
1312                                     dataIndex : 'gltrans_balance',
1313                                     header : 'Amount',
1314                                     sortable : true,
1315                                     width : 100,
1316                                     renderer : function(v) { 
1317                                         var c =v >= 0.0 ? 'black' :  'red';
1318                                     \r
1319                                        return String.format('<span style="color:' + c + ';">{0}</span>',\r
1320                                                 Roo.util.Format.number(v,2) ); 
1321                                     }
1322                                 }
1323                             ]
1324                         }
1325                     }
1326                 ],
1327                 center : {
1328                     xtype: 'LayoutRegion',
1329                     xns: Roo,
1330                     tabPosition : 'top'
1331                 },
1332                 west : {
1333                     xtype: 'LayoutRegion',
1334                     xns: Roo,
1335                     split : true,
1336                     tabPosition : 'top',
1337                     width : 600
1338                 }
1339             }
1340         };
1341     }
1342 });