distinteBancaCtrl.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857
  1. app.controller('distinteBancaCtrl',
  2. function ($scope,$http,$cookies,$window, $location,$timeout, $mdDialog, $q, $routeParams, $mdBottomSheet, $mdMenu, utilsSvc, userService,
  3. DistinteBanca, ProvenienzaDisposizioni, UserManager) {
  4. var vm=this;
  5. vm.filteredView = (typeof $routeParams.filter!="undefined");
  6. $location.search('filter', null);
  7. vm.provenienza=['Findomest'];
  8. vm.maxItems = 0;
  9. vm.itemsPerPage = 100;
  10. vm.selectedIndex=-1;
  11. vm.records=[];
  12. vm.esitiRid=[];
  13. vm.appVariables={};
  14. vm.ricercaInCorso = false;
  15. vm.filteredView=false;
  16. vm.topIndex = 0;
  17. vm.selectedIndex = -1;
  18. vm.filter={
  19. provenienza: '',
  20. vistaGenerale: false,
  21. sdd: false,
  22. sdd_esteri: false,
  23. seda: false,
  24. sct: false,
  25. dom: false,
  26. sct_int: false,
  27. sct_inps:false,
  28. sct_esteri:false,
  29. assegni: false,
  30. orderField:null,
  31. flagAbilitaDaDataCreazione: false,
  32. flagAbilitaADataCreazione: false,
  33. daDataCreazione:null,
  34. aDataCreazione: null,
  35. flagAbilitaDaDataValuta: false,
  36. flagAbilitaADataValuta: false,
  37. daDataValuta:null,
  38. aDataValuta: null,
  39. daImporto:null,
  40. aImporto:null,
  41. daDistinta:null,
  42. aDistinta:null,
  43. nomeSupportoCBI:'',
  44. contoOrdinante:''
  45. };
  46. vm.tipologieSelezionate=[];
  47. vm.filtriTipologie=[
  48. {id:'sdd', label:"SDD"},
  49. {id:'sdd_esteri', label:"SDD_ESTERI"},
  50. {id:'seda', label:"SEDA"},
  51. {id:'sct', label:"SCT"},
  52. {id:'dom', label:"DOM"},
  53. {id:'sct_int', label:"SCT INT"},
  54. {id:'sct_inps', label:"SCT INPS"},
  55. {id:'sct_esteri', label:"SCT Esteri"},
  56. {id:'intesa', label:"Assegni Intesa"}
  57. ]
  58. if (localStorage.getItem("filterDistinte")) {
  59. vm.filter = $scope.$eval(localStorage.getItem("filterDistinte"));
  60. vm.filteredView = $scope.$eval(localStorage.getItem("filterDistinteAttivo"));
  61. vm.selectedIndex = $scope.$eval(localStorage.getItem("filterDistinteSelectedIndex"));
  62. }
  63. vm.defaultFilter=angular.copy(vm.filter);
  64. vm.aggiornaFiltro=function(){
  65. vm.filter.sdd=vm.tipologieSelezionate.indexOf('sdd')>=0;
  66. vm.filter.sdd_esteri=vm.tipologieSelezionate.indexOf('sdd_esteri')>=0;
  67. vm.filter.seda=vm.tipologieSelezionate.indexOf('seda')>=0;
  68. vm.filter.sct=vm.tipologieSelezionate.indexOf('sct')>=0;
  69. vm.filter.dom=vm.tipologieSelezionate.indexOf('dom')>=0;
  70. vm.filter.sct_int=vm.tipologieSelezionate.indexOf('sct_int')>=0;
  71. vm.filter.sct_inps=vm.tipologieSelezionate.indexOf('sct_inps')>=0;
  72. vm.filter.sct_esteri=vm.tipologieSelezionate.indexOf('sct_esteri')>=0;
  73. vm.filter.assegni=vm.tipologieSelezionate.indexOf('intesa')>=0;
  74. }
  75. vm.setSelected=function(idx) {
  76. vm.selectedIndex = idx;
  77. }
  78. $timeout(function() {
  79. var evt = $window.document.createEvent('UIEvents');
  80. evt.initUIEvent('resize', true, false, $window, 0);
  81. $window.dispatchEvent(evt);
  82. });
  83. UserManager.AppVariables().$promise.then(function(data) {
  84. vm.appVariables = data;
  85. });
  86. if (utilsSvc.largeScreen())
  87. vm.columnWidths=[
  88. 70, // 0
  89. 100, // 1
  90. 90, // 2
  91. 90, // 3
  92. 150, // 4
  93. 140, // 5
  94. 150, // 6
  95. 90, // 7
  96. 70, // 8
  97. 120, // 9
  98. 140, // 10
  99. 120, // 11
  100. 120, // 12
  101. 200, // 13
  102. 320 // 14
  103. ];
  104. else
  105. vm.columnWidths=[
  106. 100, // 0
  107. 100, // 1
  108. 90, // 2
  109. 90, // 3
  110. 150, // 4
  111. 140, // 5
  112. 100, // 6
  113. 100, // 7
  114. 100, // 8
  115. 90, // 9
  116. 140, // 10
  117. 120, // 11
  118. 120, // 12
  119. 200, // 13
  120. 320 // 14
  121. ];
  122. vm.largeScreen =function(){
  123. return utilsSvc.largeScreen();
  124. }
  125. vm.veryLargeScreen =function(){
  126. return utilsSvc.veryLargeScreen();
  127. }
  128. vm.getListHeight = function() {
  129. containerHeight = ($window.innerHeight - $('#container').position().top - $('#view').position().top);
  130. return {'height': containerHeight + 'px'};
  131. };
  132. vm.getGridItemHeight = function() {
  133. return utilsSvc.getGridHeight();
  134. }
  135. $window.addEventListener('resize', onResize);
  136. function onResize() {
  137. $scope.$digest();
  138. }
  139. $scope.$on('$destroy', function() {
  140. $window.removeEventListener('resize', onResize);
  141. });
  142. vm.largeScreen =function(){
  143. return utilsSvc.largeScreen();
  144. }
  145. vm.openMenu = function($mdMenu, ev) {
  146. originatorEv = ev;
  147. $mdMenu.open(ev);
  148. };
  149. vm.getColumnWidth = // }
  150. // this.lastStartIdx = index;
  151. function(idx) {
  152. return {
  153. 'width': vm.columnWidths[idx] + 'px',
  154. 'min-width':vm.columnWidths[idx] + 'px',
  155. // 'padding-left':'6px',
  156. // 'padding-right':'6px',
  157. 'margin-left':'8px',
  158. 'margin-right':'8px'
  159. };
  160. }
  161. vm.getMaxListWidth = function() {
  162. var res=0;
  163. for (var i=0;i<vm.columnWidths.length;i++)
  164. res += vm.columnWidths[i]+6+8+10;
  165. $('#container').css('width',($('#header').width()+10)+'px');
  166. return {'width': res+ 'px!important;'}
  167. }
  168. vm.setOrderField = function(field) {
  169. if (vm.filter.orderField!=field) {
  170. vm.filter.orderField = field;
  171. vm.defaultFilter.orderField = field;
  172. } else {
  173. vm.filter.orderField = "-" +field;
  174. vm.defaultFilter.orderField = "-" + field;
  175. }
  176. vm.getDistinte();
  177. }
  178. vm.visualizzaFiltro=function(ev){
  179. $mdDialog.show({
  180. templateUrl: 'templates/filtroDistinte.html',
  181. controller: 'filtroDistinteCtrl',
  182. targetEvent: ev,
  183. locals: {filter:vm.filter}
  184. })
  185. .then(function(args){
  186. vm.filter = args;
  187. if (vm.filteredView)
  188. vm.getDistinte();
  189. // vm.filteredView = false;
  190. },
  191. function(){
  192. }
  193. );
  194. }
  195. vm.eseguiRicerca = function(ev) {
  196. // if (!vm.filteredView) {
  197. // vm.filter=vm.defaultFilter;
  198. // }
  199. if (vm.filteredView)
  200. $mdDialog.show({
  201. templateUrl: 'templates/filtroDistinte.html',
  202. controller: 'filtroDistinteCtrl',
  203. targetEvent: ev,
  204. locals: {filter:vm.filter}
  205. })
  206. .then(function(args){
  207. // vm.filteredView = false;
  208. vm.filter = args;
  209. vm.getDistinte();
  210. },
  211. function(){
  212. }
  213. );
  214. else
  215. vm.getDistinte();
  216. }
  217. // fab toolbar functions
  218. vm.isNotDelegatoFirma = function() {
  219. return (vm.appVariables.profiloLocale!="DF");
  220. }
  221. vm.espandiDistinta = function(data) {
  222. $location.path('/estrattore');
  223. }
  224. vm.stampaDistinta = function(data) {
  225. utilsSvc.showForever('Generazione in corso...');
  226. DistinteBanca.Print({},vm.filter).$promise.then(function(data){
  227. utilsSvc.downloadFile('application/pdf',data.response,'DistinteBanca.pdf');
  228. utilsSvc.cancelMessage();
  229. }).catch(function(err){
  230. if (err.status==404) {
  231. utilsSvc.cancelMessage();
  232. utilsSvc.showMessage('Nessuna distinta estratta');
  233. } else
  234. utilsSvc.handleHttpError(err);
  235. });
  236. }
  237. vm.apriDistinta = function(distinta) {
  238. localStorage.setItem("filterDistinte",JSON.stringify(vm.filter));
  239. localStorage.setItem("filterDistinteAttivo",JSON.stringify(vm.filteredView));
  240. localStorage.setItem("filterDistinteSelectedIndex", JSON.stringify(vm.selectedIndex));
  241. if (distinta.tipologia=='RID') {
  242. var filtro = userService.clearFiltroIncassiSDD();
  243. filtro.idDistintaBanca = distinta.iddistintaBanca;
  244. filtro.tipoChiamata = 'DistinteBanca';
  245. filtro.inErrore = false;
  246. filtro.importoDistinta = distinta.importoDisposizioniDecimal;
  247. filtro.userIdFirmatario1 = distinta.userIdfirmatario1;
  248. userService.setFiltroIncassiSDD(filtro);
  249. if (distinta.tipologiaDbgrid=='SDD_ESTERI')
  250. $location.path('/incassiSDDEsteri');
  251. else
  252. $location.path('/incassiSDD');
  253. } else if (distinta.tipologia=='AEA') {
  254. var filtro = userService.clearFiltroIncassiSDD();
  255. filtro.idDistintaBanca = distinta.iddistintaBanca;
  256. filtro.tipoChiamata = 'DistinteBanca';
  257. filtro.inErrore = false;
  258. filtro.importoDistinta = distinta.importoDisposizioniDecimal;
  259. filtro.userIdFirmatario1 = distinta.userIdfirmatario1;
  260. userService.setFiltroIncassiSDD(filtro);
  261. $location.path('/allineamentoSEDA');
  262. } else if (distinta.tipologia=='BONIFICI' && (distinta.tipologiaDbgrid=='SCT' || distinta.tipologiaDbgrid=='SCT_INT')) {
  263. var filtro = userService.clearFiltroIncassiSDD();
  264. filtro.idDistintaBanca = distinta.iddistintaBanca;
  265. filtro.tipoChiamata = 'DistinteBanca';
  266. filtro.inErrore = false;
  267. filtro.importoDistinta = distinta.importoDisposizioniDecimal;
  268. filtro.userIdFirmatario1 = distinta.userIdfirmatario1;
  269. userService.setFiltroIncassiSDD(filtro);
  270. $location.path('/pagamentiSCT');
  271. } else if (distinta.tipologia=='BONIFICI' && distinta.tipologiaDbgrid=='SCT_ESTERI') {
  272. var filtro = userService.clearFiltroIncassiSDD();
  273. filtro.idDistintaBanca = distinta.iddistintaBanca;
  274. filtro.tipoChiamata = 'DistinteBanca';
  275. filtro.inErrore = false;
  276. filtro.importoDistinta = distinta.importoDisposizioniDecimal;
  277. filtro.userIdFirmatario1 = distinta.userIdfirmatario1;
  278. userService.setFiltroIncassiSDD(filtro);
  279. $location.path('/pagamentiSCT_ESTERI');
  280. } else if (distinta.tipologia=='BONIFICI' && distinta.tipologiaDbgrid=='ASSEGNI_INTESA') {
  281. var filtro = userService.clearFiltroIncassiSDD();
  282. filtro.idDistintaBanca = distinta.iddistintaBanca;
  283. filtro.tipoChiamata = 'DistinteBanca';
  284. filtro.inErrore = false;
  285. filtro.importoDistinta = distinta.importoDisposizioniDecimal;
  286. filtro.userIdFirmatario1 = distinta.userIdfirmatario1;
  287. userService.setFiltroIncassiSDD(filtro);
  288. $location.path('/AssegniIntesa');
  289. } else if (distinta.tipologia=='BONIFICI' && distinta.tipologiaDbgrid=='SCT_INPS') {
  290. var filtro = userService.clearFiltroIncassiSDD();
  291. filtro.idDistintaBanca = distinta.iddistintaBanca;
  292. filtro.tipoChiamata = 'DistinteBanca';
  293. filtro.inErrore = false;
  294. filtro.importoDistinta = distinta.importoDisposizioniDecimal;
  295. filtro.userIdFirmatario1 = distinta.userIdfirmatario1;
  296. userService.setFiltroIncassiSDD(filtro);
  297. $location.path('/pagamentiSCTInps');
  298. } else if (distinta.tipologia=='BONIFICI' && distinta.tipologiaDbgrid=='DOM') {
  299. var filtro = userService.clearFiltroIncassiSDD();
  300. filtro.idDistintaBanca = distinta.iddistintaBanca;
  301. filtro.tipoChiamata = 'DistinteBanca';
  302. filtro.inErrore = false;
  303. filtro.importoDistinta = distinta.importoDisposizioniDecimal;
  304. filtro.userIdFirmatario1 = distinta.userIdfirmatario1;
  305. userService.setFiltroIncassiSDD(filtro);
  306. $location.path('/pagamentiDOM');
  307. } else if (distinta.tipologia=='BONIFICI' && distinta.tipologiaDbgrid=='SCT_INPS') {
  308. var filtro = userService.clearFiltroIncassiSDD();
  309. filtro.idDistintaBanca = distinta.iddistintaBanca;
  310. filtro.tipoChiamata = 'DistinteBanca';
  311. filtro.inErrore = false;
  312. filtro.importoDistinta = distinta.importoDisposizioniDecimal;
  313. filtro.userIdFirmatario1 = distinta.userIdfirmatario1;
  314. userService.setFiltroIncassiSDD(filtro);
  315. $location.path('/pagamentiDOM');
  316. }
  317. }
  318. vm.annullaDistinta = function(distinta,event) {
  319. utilsSvc.showConfirm('Conferma',"Confermi l'annullamento della distinta?",event)
  320. .then(function(data){
  321. DistinteBanca.AnnullaDistinta({
  322. id: distinta.id,
  323. idDistintaBanca: distinta.iddistintaBanca,
  324. tipologia: distinta.tipologia,
  325. flagDanni: distinta.flagDanni,
  326. lastSaved: distinta.lastSaved
  327. }).$promise.then(
  328. function (data) {
  329. vm.selectedIndex = -1;
  330. utilsSvc.showMessage('Annullamento distinta effettuato');
  331. vm.getDistinte();
  332. },
  333. function(error) {
  334. utilsSvc.handleHttpError(error);
  335. }
  336. );
  337. }, function(res){
  338. }
  339. );
  340. }
  341. vm.logStatiDistinta = function(distinta,event) {
  342. DistinteBanca.LogStati({id: distinta.iddistintaBanca})
  343. .$promise.then(function(data){
  344. if (data.length==0) {
  345. utilsSvc.showMessage("Nessuno stato presente");
  346. } else {
  347. vm.showLog(data, "Log stati distinta " +distinta.iddistintaBanca, event);
  348. }
  349. })
  350. }
  351. vm.showLog = function(log, title, event) {
  352. $mdDialog.show({
  353. templateUrl: 'templates/logStati.html',
  354. controller: 'logStatiCtrl',
  355. targetEvent: event,
  356. locals: {log:log, dialogTitle: title},
  357. multiple: true
  358. })
  359. }
  360. vm.modificaContoOrdinante = function(distinta,event) {
  361. if (distinta.tipologia!='BONIFICI' && distinta.tipologia!='RID')
  362. utilsSvc.showMessage('Modifica conto non abilitata');
  363. else {
  364. var options={};
  365. options.inFunzioneOrdinante = "TUTTICONTI";
  366. options.inBancaAllineamento = false;
  367. options.inEstrattoreDistinteBanca = false;
  368. options.inOnlyContiCassa = false;
  369. options.inOnlyContiBancoPosta = false;
  370. $mdDialog.show({
  371. targetEvent:event,
  372. templateUrl: 'templates/ricercaConti.html',
  373. controller: 'ricercaContiCtrl',
  374. locals: options,
  375. multiple: true
  376. }).then(function(conto){
  377. utilsSvc.showConfirm('Conferma','Confermi la modifica del conto di ' +(distinta.tipologia=='BONIFICI'?'addebito':'accredito') + ' per tutte le disposizioni della distinta?')
  378. .then(function(){
  379. DistinteBanca.ModificaContoDistinta({
  380. idDistintaBanca: distinta.iddistintaBanca,
  381. idContoOrdinante: conto.id,
  382. tipologia: distinta.tipologia,
  383. lastSaved: distinta.lastSaved
  384. }).$promise.then(
  385. function (data) {
  386. utilsSvc.showMessage('Modifica conto effettuata');
  387. vm.getDistinte();
  388. },
  389. function(error,status) {
  390. utilsSvc.handleHttpError(error);
  391. }
  392. );
  393. });
  394. })
  395. }
  396. }
  397. vm.modificaValutaBeneficiario = function(distinta,event) {
  398. $mdDialog.show({
  399. targetEvent:event,
  400. templateUrl: 'templates/selezioneData.html',
  401. controller: 'selezioneDataCtrl',
  402. locals: {
  403. dialogTitle:'Modifica valuta',
  404. prompt: 'Data da utilizzare',
  405. dataIniziale: new Date(distinta.dataValutaDestinatario)
  406. },
  407. multiple: true
  408. }).then(function(dataSelezionata){
  409. utilsSvc.showConfirm('Conferma','Confermi la modifica della valuta beneficiario di tutte le disposizioni della disinta con la data ' + dataSelezionata.toLocaleDateString() +'?')
  410. .then(function(){
  411. DistinteBanca.ModificaDataValuta({
  412. idDistintaBanca: distinta.iddistintaBanca,
  413. data: dataSelezionata,
  414. tipologia: distinta.tipologia,
  415. lastSaved: distinta.lastSaved
  416. }).$promise.then(
  417. function (data) {
  418. utilsSvc.showMessage('Modifica data valuta effettuata');
  419. vm.getDistinte();
  420. },
  421. function(error,status) {
  422. utilsSvc.handleHttpError(error);
  423. }
  424. );
  425. });
  426. });
  427. }
  428. vm.modificaDataEsecuzione = function(distinta,event) {
  429. $mdDialog.show({
  430. targetEvent:event,
  431. templateUrl: 'templates/selezioneData.html',
  432. controller: 'selezioneDataCtrl',
  433. locals: {
  434. dialogTitle:'Modifica data esecuzione',
  435. prompt: 'Data da utilizzare',
  436. dataIniziale: new Date()
  437. },
  438. multiple: true
  439. }).then(function(dataSelezionata){
  440. utilsSvc.showConfirm('Conferma','Confermi la modifica della data esecuzione di tutte le disposizioni della disinta con la data ' + dataSelezionata.toLocaleDateString() +'?')
  441. .then(function(){
  442. DistinteBanca.ModificaDataEsecuzione({
  443. idDistintaBanca: distinta.iddistintaBanca,
  444. data: dataSelezionata,
  445. tipologia: distinta.tipologia,
  446. lastSaved: distinta.lastSaved
  447. }).$promise.then(
  448. function (data) {
  449. utilsSvc.showMessage('Modifica data esecuzione effettuata');
  450. vm.getDistinte();
  451. },
  452. function(error,status) {
  453. utilsSvc.handleHttpError(error);
  454. }
  455. );
  456. });
  457. });
  458. }
  459. vm.validaEGeneraFlusso = function(distinta,event) {
  460. utilsSvc.showConfirm('Conferma',"Confermi la validazione e la generazione del flusso per la distinta " + distinta.iddistintaBanca+ "?",event)
  461. .then(function(data){
  462. utilsSvc.showConfirm('Conferma',"Procedere all'invio del file alla banca?", event)
  463. .then(function(data){
  464. DistinteBanca.ValidaEGeneraFlusso({id: distinta.id})
  465. .$promise.then(function(data){
  466. utilsSvc.showMessage(data.value);
  467. vm.getDistinte();
  468. },
  469. function(error) {
  470. utilsSvc.handleHttpError(error);
  471. }
  472. )
  473. })
  474. }, function(res){
  475. });
  476. }
  477. vm.forzaturaInviata = function(distinta,event){
  478. utilsSvc.showConfirm('Conferma',"Confermi la forzatura dello stato in 'Inviata'?").then(function(res){
  479. DistinteBanca.ForzaturaInviata({id: distinta.iddistintaBanca}).$promise.then(function(res){
  480. if (res.value==0)
  481. utilsSvc.showMessage('Forzatura stato completata');
  482. else
  483. utilsSvc.showMessage('Si è verificato un errore durante il cambio stato.(' + res.value +')');
  484. vm.getDistinte();
  485. })
  486. });
  487. }
  488. vm.generaFlusso = function(distinta,event) {
  489. utilsSvc.showConfirm('Conferma',"Confermi la generazione del flusso per la distinta " + distinta.iddistintaBanca+ "?",event)
  490. .then(function(data){
  491. DistinteBanca.GeneraFlusso({id: distinta.id})
  492. .$promise.then(function(data){
  493. utilsSvc.showMessage(data.value);
  494. vm.getDistinte();
  495. },
  496. function(error) {
  497. utilsSvc.handleHttpError(error);
  498. }
  499. )
  500. });
  501. }
  502. vm.exportDistinte = function(distinta, event) {
  503. utilsSvc.showConfirm('Conferma',"Confermi l'esportazione dell'elenco distinte verso TASC?",event)
  504. .then(function(data){
  505. // var a = document.createElement('a');
  506. // a.href = 'rest/distinte/esportaTASC';
  507. // a.target = '_blank';
  508. //
  509. // document.body.appendChild(a);
  510. // a.click();
  511. // document.body.removeChild(a);
  512. DistinteBanca.EsportaTASC({},vm.filter)
  513. .$promise.then(function(data){
  514. vm.getDistinte();
  515. utilsSvc.showMessage("Esportazione terminata.");
  516. },
  517. function(error) {
  518. if (error.status==404)
  519. utilsSvc.showMessage("Non ci sono distinte da esportare.");
  520. else
  521. utilsSvc.showMessage("Si è verificato un errore durante l'esportazione, verificare il percorso configurato.");
  522. }
  523. )
  524. });
  525. }
  526. vm.abilitaExport = function(distinta, event) {
  527. if (!distinta.flagChiusuraPartitaSep) {
  528. utilsSvc.showMessage('La distinta non è ancora stata esportata verso TASC');
  529. return;
  530. }
  531. utilsSvc.showConfirm('Conferma',"Confermi la riabilitazione dell'esportazione distinta verso TASC?",event)
  532. .then(function(data){
  533. distinta.flagChiusuraPartitaSep = false;
  534. DistinteBanca.save(distinta).$promise.then(function(data){
  535. if (data[0]=="0")
  536. utilsSvc.showMessage("Riabilitazione esportazione distinta -> TASC effettuata");
  537. else
  538. utilsSvc.showMessage("Si è verificato un errore; codice: " + data);
  539. vm.getDistinte();
  540. });
  541. });
  542. }
  543. vm.showCommands = function(distinta,index,$event) {
  544. vm.selectedIndex = index;
  545. $mdBottomSheet.show({
  546. templateUrl: 'templates/bottom-sheet-template.html',
  547. controller: 'comandiDistintaCtrl',
  548. distinta: distinta,
  549. idx: index,
  550. appVariables: vm.appVariables,
  551. targetEvent: $event
  552. }).then(function(selectedCommand) {
  553. vm.executeCommand(selectedCommand.cmdIndex, selectedCommand.recordIdx, $event);
  554. },
  555. function(){}
  556. );
  557. }
  558. vm.executeCommand = function(id,idx, $event) {
  559. vm.selectedIndex = idx;
  560. switch(id) {
  561. case 0: vm.espandiDistinta(vm.records[idx],$event);break;
  562. case 1: vm.apriDistinta(vm.records[idx],$event);break;
  563. case 2: vm.stampaDistinta(vm.records[idx],$event);break;
  564. case 3: vm.annullaDistinta(vm.records[idx],$event);break;
  565. case 4: vm.logStatiDistinta(vm.records[idx],$event);break;
  566. case 5: vm.modificaContoOrdinante(vm.records[idx],$event);break;
  567. case 6: vm.modificaValutaBeneficiario(vm.records[idx],$event);break;
  568. case 7: vm.modificaDataEsecuzione(vm.records[idx],$event);break;
  569. case 8: vm.validaEGeneraFlusso(vm.records[idx],$event);break;
  570. case 9: vm.generaFlusso(vm.records[idx],$event);break;
  571. case 10: vm.exportDistinte(vm.records[idx],$event);break;
  572. case 11: vm.abilitaExport(vm.records[idx],$event);break;
  573. case 12: vm.forzaturaInviata(vm.records[idx],$event);break;
  574. }
  575. }
  576. vm.infiniteItems = {
  577. numLoaded_: 0,
  578. toLoad_: 0,
  579. loading_:false,
  580. lastStartIdx:-1,
  581. listPromise:null,
  582. canceler: $q.defer(),
  583. // Required.
  584. getItemAtIndex: function(index) {
  585. if (vm.maxItems==0 || index>vm.maxItems)
  586. return null;
  587. if (!vm.infiniteItems.loading_)
  588. if (index > vm.records.length) {
  589. this.fetchMoreItems_(index);
  590. return null;
  591. }
  592. return vm.records [index];
  593. },
  594. // Required.
  595. // For infinite scroll behavior, we always return a slightly
  596. // higher
  597. // number than the previously loaded items.
  598. getLength: function() {
  599. return vm.maxItems;
  600. },
  601. fetchMoreItems_: function(index) {
  602. if (this.toLoad_ < index) {
  603. this.toLoad_ += vm.itemsPerPage;
  604. utilsSvc.showWaitMessage('Ricerca in corso...');
  605. vm.infiniteItems.loading_ = true;
  606. if ((vm.records.length+vm.itemsPerPage)<vm.selectedIndex)
  607. vm.itemsPerPage=vm.selectedIndex-vm.records.length;
  608. this.listPromise = DistinteBanca.List({start: vm.records.length,size:vm.itemsPerPage},(vm.filteredView? vm.filter: vm.defaultFilter)).$promise;
  609. var mod=this;
  610. this.listPromise.then(
  611. function(data){
  612. vm.infiniteItems.loading_ = false;
  613. vm.infiniteItems.toLoad_=0;
  614. vm.ricercaInCorso=false;
  615. utilsSvc.cancelWaitMessage();
  616. vm.records = vm.records.concat(data);
  617. mod.numLoaded_ = vm.records.length;
  618. mod.lastStartIdx = vm.records.length;
  619. vm.topIndex = vm.selectedIndex;
  620. },
  621. function(error) {
  622. vm.infiniteItems.loading_ = false;
  623. vm.infiniteItems.toLoad_=0;
  624. vm.ricercaInCorso=false;
  625. utilsSvc.handleHttpError(error);
  626. }
  627. )
  628. }
  629. }
  630. }
  631. vm.getDistinte = function(){
  632. if (vm.ricercaInCorso)
  633. return;
  634. vm.ricercaInCorso = true;
  635. vm.defaultFilter.vistaGenerale = vm.filter.vistaGenerale;
  636. DistinteBanca.Count({},vm.filteredView? vm.filter: vm.defaultFilter).$promise.then(
  637. function(data){
  638. vm.ricercaInCorso = false;
  639. vm.records=[];
  640. vm.maxItems = data.value;
  641. vm.infiniteItems.numLoaded_ = 0;
  642. vm.infiniteItems.toLoad_ = 0;
  643. }
  644. ,function(){
  645. vm.ricercaInCorso = false;
  646. }
  647. );
  648. }
  649. vm.decodeCircuitoSDD = function(cod){
  650. return utilsSvc.decodeCircuitoSDD(cod);
  651. }
  652. vm.getEsitoIcon = function(esito) {
  653. if (esito==='1')
  654. return "fa-clear";
  655. else if (esito==='2')
  656. return 'fa-times';
  657. }
  658. vm.init = function() {
  659. vm.getDistinte();
  660. }
  661. vm.init();
  662. }
  663. )
  664. .controller('comandiDistintaCtrl', function($scope, $mdBottomSheet, distinta, idx, appVariables) {
  665. $scope.title = 'Comandi distinta';
  666. $scope.items = [
  667. { id:0, name: "Estrai distinta", icon: 'fa-arrows-alt', visible: false },
  668. { id:1, name: "Apri distinta", icon: 'fa-folder-open',visible: true },
  669. { id:2, name: "Stampa distinta", icon: 'fa-print', visible: false },
  670. { id:3, name: "Annulla distinta", icon: 'fa-exclamation-triangle', visible: true },
  671. { id:4, name: "Log stati distinta", icon: 'fa-file-text-o', visible: true },
  672. { id:5, name: "Conto ordinante", icon: 'fa-bank', visible: true },
  673. { id:6, name: "Valuta beneficiario", icon: 'fa-eur', visible: true },
  674. { id:7, name: "Data esecuzione", icon: 'fa-calendar', visible: true },
  675. { id:8, name: "Valida e genera", icon: 'fa-floppy-o', visible: false},
  676. { id:9, name: "Genera flusso", icon: 'fa-floppy-o', visible: false },
  677. { id:10, name: "Export dist. TASC", icon: 'fa-file-excel-o', visible: false },
  678. { id:11, name: "Riabilita exp. TASC", icon: 'fa-refresh', visible: true },
  679. { id:12, name: "Forza stato Inviata", icon: 'fa-paper-plane', visible: true }
  680. ];
  681. if (distinta.statoDistinta=='Autorizzata') {
  682. $scope.items[8].visible = true;
  683. } else if (distinta.statoDistinta=='Validata') {
  684. $scope.items[6].visible = false;
  685. $scope.items[7].visible = false;
  686. if (!distinta.requiresFirmatario)
  687. $scope.items[9].visible = true;
  688. if (appVariables.profiloLocale == 'DF') {
  689. $scope.items[0].visible = false;
  690. $scope.items[5].visible = false;
  691. $scope.items[3].visible = false;
  692. $scope.items[9].visible = false;
  693. }
  694. } else if (distinta.statoDistinta=='Emessa') {
  695. $scope.items[5].visible = false;
  696. $scope.items[6].visible = false;
  697. $scope.items[7].visible = false;
  698. } else if (distinta.statoDistinta=='Disposta') {
  699. $scope.items[5].visible = false;
  700. $scope.items[6].visible = false;
  701. $scope.items[7].visible = false;
  702. } else if (distinta.statoDistinta=='Annullata') {
  703. $scope.items[5].visible = false;
  704. $scope.items[6].visible = false;
  705. $scope.items[7].visible = false;
  706. } else if (distinta.statoDistinta=='In Generazione') {
  707. $scope.items[5].visible = false;
  708. $scope.items[6].visible = false;
  709. $scope.items[7].visible = false;
  710. }
  711. if (distinta.tipologia!='BONIFICI' && distinta.tipologia!='RID')
  712. $scope.items[5].visible = false;
  713. if (distinta.statoDistinta=='Disposta' || distinta.statoDistinta=='Annullata' || distinta.statoDistinta=='In Generazione')
  714. $scope.items[3].visible = false;
  715. // Le distinte in stato "Annullata" e non convertite da flusso non hanno
  716. // disposizioni collegate
  717. if (distinta.statoDistinta=='Annullata' && !distinta.flagDanni)
  718. $scope.items[1].visible = false;
  719. if (distinta.statoDistinta=='In Generazione')
  720. $scope.items[1].visible = false;
  721. // La modifica della valuta beneficiario è possibile solo per le
  722. // distinte di BONIFICI e RID
  723. if (distinta.tipologia!='BONIFICI' && distinta.tipologia!='RID')
  724. $scope.items[6].visible = false;
  725. // La modifica della data esecuzione è possibile solo per le distinte di
  726. // bonifici
  727. if (distinta.tipologia!='BONIFICI')
  728. $scope.items[7].visible = false;
  729. // La riattivazione dell'export distinte -> TASC è possibile solo se la
  730. // distinte non risulta già esportata
  731. $scope.items[11].visible = distinta.flagChiusuraPartitaSep;
  732. $scope.items[12].visible = distinta.statoDistinta=='Disposta';
  733. if (appVariables.profiloLocale == 'VI') {
  734. $scope.items[0].visible = false;
  735. $scope.items[3].visible = false;
  736. $scope.items[5].visible = false;
  737. $scope.items[6].visible = false;
  738. $scope.items[7].visible = false;
  739. $scope.items[8].visible = false;
  740. $scope.items[9].visible = false;
  741. }
  742. $scope.listItemClick = function($index, $event) {
  743. var clickedItem = $scope.items[$index];
  744. var result = {cmdIndex: $index, recordIdx: idx, event:$event}
  745. $mdBottomSheet.hide(result);
  746. };
  747. $scope.dismissBottomSheet = function() {
  748. $mdBottomSheet.cancel();
  749. }
  750. })
  751. ;