Fix #7123 - getting abra ready to test
[Pman.Xtuple] / Pman.Tab.XtupleExpenses.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.XtupleExpenses = new Roo.XComponent({
6     part     :  ["Xtuple","Expenses"],
7     order    : '800-Pman.Tab.XtupleExpenses',
8     region   : 'center',
9     parent   : 'Pman.Tab.XtupleSales',
10     name     : "Pman.Tab.XtupleExpenses",
11     disabled : false, 
12     permname : '', 
13     _tree : function()
14     {
15         var _this = this;
16         var MODULE = this;
17         return {
18             xtype: 'GridPanel',
19             xns: Roo,
20             listeners : {
21                 activate : function() {
22                     _this.panel = this;
23                     if (_this.grid) {
24                         _this.grid.footer.onClick('first');
25                     }
26                 }
27             },
28             background : true,
29             fitContainer : true,
30             fitToframe : true,
31             region : 'center',
32             tableName : 'expense',
33             title : "Expenses",
34             grid : {
35                 xtype: 'Grid',
36                 xns: Roo.grid,
37                 listeners : {
38                     render : function() 
39                     {
40                         _this.grid = this; 
41                         _this.dialog = Pman.Dialog.XtupleExpenses;
42                         if (_this.panel.active) {
43                            this.footer.onClick('first');
44                         }
45                     },
46                     rowdblclick : function (_self, rowIndex, e)
47                     {
48                         if (!_this.dialog) return;
49                         _this.dialog.show( this.getDataSource().getAt(rowIndex).data, function() {
50                             _this.grid.footer.onClick('first');
51                         }); 
52                     }
53                 },
54                 autoExpandColumn : 'expense_memo',
55                 loadMask : true,
56                 dataSource : {
57                     xtype: 'Store',
58                     xns: Roo.data,
59                     listeners : {
60                         beforeload : function (_self, options)
61                         {
62                             options.params._applyPerms = 1;
63                         }
64                     },
65                     remoteSort : true,
66                     sortInfo : { field : 'expense_id', direction: 'DESC' },
67                     proxy : {
68                         xtype: 'HttpProxy',
69                         xns: Roo.data,
70                         method : 'GET',
71                         url : baseURL + '/Roo/expense.php'
72                     },
73                     reader : {
74                         xtype: 'JsonReader',
75                         xns: Roo.data,
76                         totalProperty : 'total',
77                         root : 'data',
78                         id : 'id',
79                         fields : [
80                             {
81                                 'name': 'expense_id',
82                                 'type': 'int'
83                             },
84                             {
85                                 'name': 'expense_accnt_id',
86                                 'type': 'int'
87                             },
88                             {
89                                 'name': 'expense_emp_id',
90                                 'type': 'int'
91                             },
92                             {
93                                 'name': 'expense_number',
94                                 'type': 'string'
95                             },
96                             {
97                                 'name': 'expense_trandate',
98                                 'type': 'date',
99                                 'dateFormat': 'Y-m-d'
100                             },
101                             {
102                                 'name': 'expense_created',
103                                 'type': 'date',
104                                 'dateFormat': 'Y-m-d'
105                             },
106                             {
107                                 'name': 'expense_modified',
108                                 'type': 'date',
109                                 'dateFormat': 'Y-m-d'
110                             },
111                             {
112                                 'name': 'expense_duedate',
113                                 'type': 'date',
114                                 'dateFormat': 'Y-m-d'
115                             },
116                             {
117                                 'name': 'expense_memo',
118                                 'type': 'string'
119                             },
120                             {
121                                 'name': 'expense_status',
122                                 'type': 'string'
123                             },
124                             {
125                                 'name': 'expense_advance',
126                                 'type': 'float'
127                             },
128                             {
129                                 'name': 'expense_amount',
130                                 'type': 'float'
131                             },
132                             {
133                                 'name': 'expense_tax',
134                                 'type': 'float'
135                             },
136                             {
137                                 'name': 'expense_total',
138                                 'type': 'float'
139                             }
140                         ]
141                     }
142                 },
143                 footer : {
144                     xtype: 'PagingToolbar',
145                     xns: Roo,
146                     pageSize : 25,
147                     displayInfo : true,
148                     displayMsg : "Displaying expense{0} - {1} of {2}",
149                     emptyMsg : "No expense found"
150                 },
151                 toolbar : {
152                     xtype: 'Toolbar',
153                     xns: Roo,
154                     items : [
155                         {
156                             xtype: 'Button',
157                             xns: Roo.Toolbar,
158                             listeners : {
159                                 click : function()
160                                 {
161                                     if (!_this.dialog) return;
162                                     _this.dialog.show( { 
163                                         expense_id : 0,
164                                         expense_emp_id_emp_name : Pman.Login.authUser.name
165                                      } , function() {
166                                         _this.grid.footer.onClick('first');
167                                    }); 
168                                 }
169                             },
170                             cls : 'x-btn-text-icon',
171                             text : "Add",
172                             icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
173                         },
174                         {
175                             xtype: 'Fill',
176                             xns: Roo.Toolbar
177                         },
178                         {
179                             xtype: 'Button',
180                             xns: Roo.Toolbar,
181                             listeners : {
182                                 click : function()
183                                 {
184                                     var rec =  _this.grid.selModel.getSelected();
185                                     if (!rec) {
186                                         Roo.MessageBox.alert("Error", "Select a line to delete");
187                                         return;
188                                     }
189                                     if (['Draft', ''].indexOf(rec.data.expense_status) < 0) {
190                                         Roo.MessageBox.alert("Error", "You can only delete draft entries");
191                                         return;
192                                     }
193                                     
194                                     Roo.MessageBox.confirm("Confirm", "Are you sure you want to delete that?", function(r) {
195                                         if (r!='yes') {
196                                             return;
197                                         }
198                                         
199                                     
200                                         new Pman.Request({
201                                             mask : 'Deleting',
202                                             url : baseURL + '/Roo/expense',
203                                             method : 'POST',
204                                             params : {
205                                                 _delete : rec.data.expense_id
206                                             },
207                                             success : function()
208                                             {
209                                                 _this.grid.ds.remove(rec);            
210                                             }
211                                         });
212                                    });
213                                    
214                                 }
215                             },
216                             cls : 'x-btn-text-icon',
217                             text : "Delete",
218                             icon : rootURL + '/Pman/templates/images/trash.gif'
219                         }
220                     ]
221                 },
222                 colModel : [
223                     {
224                         xtype: 'ColumnModel',
225                         xns: Roo.grid,
226                         dataIndex : 'expense_emp_id_emp_name',
227                         header : 'Employee',
228                         width : 75,
229                         renderer : function(v) { return String.format('{0}', v); }
230                     },
231                     {
232                         xtype: 'ColumnModel',
233                         xns: Roo.grid,
234                         dataIndex : 'expense_number',
235                         header : 'no#',
236                         width : 70,
237                         renderer : function(v) { return String.format('{0}', v); }
238                     },
239                     {
240                         xtype: 'ColumnModel',
241                         xns: Roo.grid,
242                         dataIndex : 'expense_trandate',
243                         header : 'Post Date',
244                         width : 75,
245                         renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }
246                     },
247                     {
248                         xtype: 'ColumnModel',
249                         xns: Roo.grid,
250                         dataIndex : 'expense_duedate',
251                         header : 'Due Date',
252                         width : 75,
253                         renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }
254                     },
255                     {
256                         xtype: 'ColumnModel',
257                         xns: Roo.grid,
258                         dataIndex : 'expense_memo',
259                         header : 'Desc',
260                         width : 200,
261                         renderer : function(v) { return String.format('{0}', v); }
262                     },
263                     {
264                         xtype: 'ColumnModel',
265                         xns: Roo.grid,
266                         dataIndex : 'expense_status',
267                         header : 'Status',
268                         width : 100,
269                         renderer : function(v) { return String.format('{0}', v); }
270                     },
271                     {
272                         xtype: 'ColumnModel',
273                         xns: Roo.grid,
274                         align : 'right',
275                         dataIndex : 'expense_advance',
276                         header : 'Advance',
277                         width : 75,
278                         renderer : function(v) { return String.format('{0}', (1*v).toFixed(2)); }
279                     },
280                     {
281                         xtype: 'ColumnModel',
282                         xns: Roo.grid,
283                         align : 'right',
284                         dataIndex : 'expense_amount',
285                         header : 'Amount',
286                         width : 75,
287                         renderer : function(v) { return String.format('{0}', (1*v).toFixed(2)); }
288                     },
289                     {
290                         xtype: 'ColumnModel',
291                         xns: Roo.grid,
292                         align : 'right',
293                         dataIndex : 'expense_tax',
294                         header : 'Tax',
295                         width : 75,
296                         renderer : function(v) { return String.format('{0}', (1*v).toFixed(2)); }
297                     },
298                     {
299                         xtype: 'ColumnModel',
300                         xns: Roo.grid,
301                         align : 'right',
302                         dataIndex : 'expense_total',
303                         header : 'Total',
304                         width : 75,
305                         renderer : function(v) { return String.format('{0}', (1*v).toFixed(2)); }
306                     }
307                 ]
308             }
309         };
310     }
311 });