latest updates
[namibia] / public / templates / page / stockauctionreport.js
1 var template_stockauctionreport = function( static )
2 {
3     this.static   = static;
4     this.elements = {
5         dateFrom : new App.TemplateElement.FieldComponent('dateFrom'),
6         dateTo : new App.TemplateElement.FieldComponent('dateTo'),
7         group : new App.TemplateElement.FieldComponent('group'),
8         groupDivision : new App.TemplateElement.FieldComponent('groupDivision'),
9         company : new App.TemplateElement.FieldComponent('company')
10     };
11     this.ti = null;
12     this.init = function( ti ) {
13
14         this.ti = ti;
15         var isFirstLoad=true;
16
17         //console.log('App.companyData.group',App.companyData.group);
18         //console.log('App.Sudo',App.Sudo);
19         //console.log('App.companyData',App.companyData);
20
21         if(null != App.companyData.group)
22         {
23             if(!jQuery.isEmptyObject(App.Sudo.GroupId))
24             {
25                 App.DataStore.loadSelectListData(
26                     'groups', false, 'Company', 'Group.StockAuctionSelectList',
27                     null, {Filter: {id: false == App.permissions.suGroupFull
28                         ? App.companyData.group.id
29                         : (App.Sudo && App.Sudo.GroupId ? App.Sudo.GroupId : '')}}
30                 );
31
32                 App.DataStore.loadSelectListData(
33                     'divisions', false, 'Company', 'GroupDivision.SelectList',
34                     null, {Filter:{id:false == App.permissions.suGroupFull && false == App.permissions.suDivisionFull
35                         ? (null != App.companyData.groupDivision ? App.companyData.groupDivision.id : null)
36                         : (App.Sudo && App.Sudo.DivisionId ? App.Sudo.DivisionId : '')}}
37                 );
38
39                 App.DataStore.loadSelectListData(
40                     'companies', false, 'Company', 'Company.SelectList',
41                     null, {Filter: {id: false == App.permissions.suGroupFull
42                     && false == App.permissions.suDivisionFull
43                     && false == App.permissions.suCompanyFull
44                         ? App.companyData.id
45                         : (App.Sudo && App.Sudo.CompanyId ? App.Sudo.CompanyId : '')}}
46                 );
47
48                 var groupValue = false == App.permissions.suGroupFull
49                     ? App.companyData.group.id
50                     : (App.Sudo && App.Sudo.GroupId ? App.Sudo.GroupId : '');
51
52                 var groupDivisionValue = false == App.permissions.suGroupFull && false == App.permissions.suDivisionFull
53                     ? (null != App.companyData.groupDivision ? App.companyData.groupDivision.id : null)
54                     : (App.Sudo && App.Sudo.DivisionId ? App.Sudo.DivisionId : '');
55
56                 var companyValue = false == App.permissions.suGroupFull
57                 && false == App.permissions.suDivisionFull
58                 && false == App.permissions.suCompanyFull
59                     ? App.companyData.id
60                     : (App.Sudo && App.Sudo.CompanyId ? App.Sudo.CompanyId : '');
61             }
62             else
63             {
64                 var groupValue = App.companyData.group.id;
65
66                 var groupDivisionValue = App.companyData.groupDivision.id;
67
68                 var companyValue = App.companyData.id;
69
70                 App.DataStore.loadSelectListData(
71                     'groups', false, 'Company', 'Group.StockAuctionSelectList',
72                     null, {Filter: {id: App.companyData.group.id}}
73                 );
74
75                 App.DataStore.loadSelectListData(
76                     'divisions', false, 'Company', 'GroupDivision.SelectList',
77                     null, {Filter:{id:App.companyData.groupDivision.id}}
78                 );
79
80                 App.DataStore.loadSelectListData(
81                     'companies', false, 'Company', 'Company.SelectList',
82                     null, {Filter: {id: App.companyData.id}}
83                 );
84
85
86             }
87
88
89
90         }
91         else
92         {
93             $("#sa_group").hide();
94             var groupValue = '';
95
96             if(null != App.companyData.groupDivision)
97             {
98                 if(!jQuery.isEmptyObject(App.Sudo.DivisionId))
99                 {
100                     var groupDivisionValue = false == App.permissions.suGroupFull && false == App.permissions.suDivisionFull
101                         ? (null != App.companyData.groupDivision ? App.companyData.groupDivision.id : null)
102                         : (App.Sudo && App.Sudo.DivisionId ? App.Sudo.DivisionId : '');
103
104                     var companyValue = false == App.permissions.suGroupFull
105                     && false == App.permissions.suDivisionFull
106                     && false == App.permissions.suCompanyFull
107                         ? App.companyData.id
108                         : (App.Sudo && App.Sudo.CompanyId ? App.Sudo.CompanyId : '');
109
110                     App.DataStore.loadSelectListData(
111                         'divisions', false, 'Company', 'GroupDivision.SelectList',
112                         null, {Filter:{id:false == App.permissions.suGroupFull && false == App.permissions.suDivisionFull
113                             ? (null != App.companyData.groupDivision ? App.companyData.groupDivision.id : null)
114                             : (App.Sudo && App.Sudo.DivisionId ? App.Sudo.DivisionId : '')}}
115                     );
116
117                     App.DataStore.loadSelectListData(
118                         'companies', false, 'Company', 'Company.SelectList',
119                         null, {Filter: {id: false == App.permissions.suGroupFull
120                         && false == App.permissions.suDivisionFull
121                         && false == App.permissions.suCompanyFull
122                             ? App.companyData.id
123                             : (App.Sudo && App.Sudo.CompanyId ? App.Sudo.CompanyId : '')}}
124                     );
125                 }
126                 else
127                 {
128                     var groupDivisionValue = App.companyData.groupDivision.id;
129
130                     var companyValue = App.companyData.id;
131
132                     App.DataStore.loadSelectListData(
133                         'divisions', false, 'Company', 'GroupDivision.SelectList',
134                         null, {Filter:{id:groupDivisionValue}}
135                     );
136
137                     App.DataStore.loadSelectListData(
138                         'companies', false, 'Company', 'Company.SelectList',
139                         null, {Filter: {id: companyValue}}
140                     );
141                 }
142
143
144             }
145             else
146             {
147                 $("#sa_division").hide();
148                 var groupDivisionValue = '';
149
150
151                 if(!jQuery.isEmptyObject(App.Sudo.DivisionId))
152                 {
153                     var companyValue = false == App.permissions.suGroupFull
154                     && false == App.permissions.suDivisionFull
155                     && false == App.permissions.suCompanyFull
156                         ? App.companyData.id
157                         : (App.Sudo && App.Sudo.CompanyId ? App.Sudo.CompanyId : '');
158
159                     App.DataStore.loadSelectListData(
160                         'divisions', false, 'Company', 'GroupDivision.SelectList',
161                         null, {Filter:{id:false == App.permissions.suGroupFull && false == App.permissions.suDivisionFull
162                             ? (null != App.companyData.groupDivision ? App.companyData.groupDivision.id : null)
163                             : (App.Sudo && App.Sudo.DivisionId ? App.Sudo.DivisionId : '')}}
164                     );
165                 }
166                 else
167                 {
168                     var companyValue = App.companyData.id;
169
170                     App.DataStore.loadSelectListData(
171                         'companies', false, 'Company', 'Company.SelectList',
172                         null, {Filter: {id: companyValue}}
173                     );
174
175                 }
176
177             }
178
179         }
180
181
182         App.DataStore.setData('divisions', []);
183         App.DataStore.setData('companies', []);
184
185
186         App.API.getTask(
187             'stockReportAuction', 'Report', 'Report.StockAuction',
188             null, {}, function(){}, _w.taskContractError
189         );
190         this.ti.hydrate({
191             'dateFrom' : {
192                 type  : 'date',
193                 id    : 'dateFrom',
194                 title : 'Date from',
195                 style : 'datepicker',
196                 value : ''
197             },
198             'dateTo' : {
199                 type  : 'date',
200                 id    : 'dateTp',
201                 title : 'Date to',
202                 style : 'datepicker',
203                 value : ''
204             },
205             'group' : {
206                 type        : 'select',
207                 id          : 'groups',
208                 dataStoreId : 'groups',
209                 title : 'Group Member',
210                 value       : groupValue,
211                 onChange    : function () {
212
213                     //console.log('isFirstLoad groups',isFirstLoad);
214
215                     if(!isFirstLoad)
216                     {
217                         if ('' != $('#groups').val())
218                         {
219                             App.DataStore.loadSelectListData(
220                                 'divisions', false, 'Company', 'GroupDivision.SelectList',
221                                 null, {Filter: {group: $('#groups').val()}}
222                             );
223                         }
224                         else
225                         {
226                             if ('' == $('#groups').val())
227                             {
228                                 App.DataStore.loadSelectListData(
229                                     'divisions', false,
230                                     'Company', 'GroupDivision.SelectList',
231                                     null, {}, {}
232                                 );
233                             }
234
235                         }
236                     }
237
238
239                 }
240             },
241             'groupDivision' : {
242                 type        : 'select',
243                 id          : 'division',
244                 title : 'Group Division',
245                 value : '',
246                 dataStoreId : 'divisions',
247                 value       : groupDivisionValue,
248                 onChange    : function () {
249
250                     //console.log('isFirstLoad divisions',isFirstLoad);
251
252                     if(!isFirstLoad)
253                     {
254                         if ('' != $('#division').val())
255                         {
256                             App.DataStore.loadSelectListData(
257                                 'companies', false, 'Company', 'Company.SelectList',
258                                 null, {Filter: {group: $('#groups').val(),groupDivision: $('#division').val()}}
259                             );
260                         }
261                         else
262                         {
263                             if ('' == $('#division').val())
264                             {
265                                 App.DataStore.loadSelectListData(
266                                     'companies', false,
267                                     'Company', 'Company.SelectList',
268                                     null, {}, {}
269                                 );
270                             }
271                         }
272                     }
273
274                     isFirstLoad = false;
275                 }
276             },
277             'company' : {
278                 type        : 'select',
279                 id          : 'company',
280                 title : 'Company',
281                 value : '',
282                 dataStoreId : 'companies',
283                 value       : companyValue
284             }
285         });
286     };
287     this.construct = function() {
288
289         $('#frmStockAuctionReport').validate({
290             rules: {
291                 dateFrom: {required: false, dateISO: true},
292                 dateTo: {required: false, dateISO: true}
293             },
294             messages: {
295                 dateFrom: {
296                     dateISO: "Must be a valid date."
297                 },
298                 dateTo: {
299                     dateISO: "Must be a valid date."
300                 }
301             },
302             submitHandler: function( form ) {
303                 var data = {Report: _t['stockauctionreport'].harvest()};
304                 App.API.execTask(
305                     'stockReportAuction', data, {},
306                     function () {}, _w.taskExecError,
307                     'EXPORT', true
308                 );
309             }
310         });
311         $('#btnReport').prop('disabled', false);
312     };
313     this.destruct = function() {};
314 };