{"version":3,"sources":["app.js","appHome.js","config.exceptionHandler.js","config.js","config.route.js","justgageCtrl.js","attach/attach.js","autorizzazione/autorizzazioni.js","avanzamentoCommessa/avanzamentoCommesse.js","attivitaControllo/attivitaControllo.js","azienda/aziende.js","cambioPassword/cambioPassword.js","aziendaPartner/aziendePartner.js","cliente/clienti.js","commessa/commesse.js","common/common.js","common/logger.js","common/spinner.js","costiBase/costiBase.js","curriculum/curricula.js","curriculum_personale/curricula_personale.js","dashboard/dashboard_CapoSezione.js","dashboard/dashboard_Personale.js","dashboard/dashboard_Super.js","dashboard/dashboard_Utente.js","dipendente/dipendenti.js","giustificativi/giustificativi.js","dipendente_super/dipendenti.js","home/home.js","layout/shell.js","layout/sidebar.js","logPush/logPush.js","offerta/offerte.js","parametri/parametri.js","profiloOre/profiloOre.js","report/report.js","reportOre/reportOre.js","report_super/report_super.js","richiestaFerie/richiestaFerie.js","services/datacontext.js","services/directives.js","tAttach/tAttach.js","sezioni/sezioni.js","team/team.js","timeSheet/timeSheet.js","timeSheetMensile/timeSheetMensile.js","user/users.js","validaTimeSheet/validaTimeSheet.js","validazioneFerie/validazioneFerie.js","attach/modal/attachAdd.js","attach/modal/attachAdd2.js","attach/modal/attachAddFirma.js","autorizzazione/modal/autorizzazioneAddEdit.js","azienda/modal/aziendaAdd.js","aziendaPartner/modal/aziendaPartnerAdd.js","cliente/modal/clienteAdd.js","commessa/modal/attivitaAddEdit.js","commessa/modal/budgetAdd.js","commessa/modal/commessaAdd.js","commessa/modal/commessaMembroSelect.js","commessa/modal/commessaSezioneAdd.js","commessa/modal/commessaSezioneEdit.js","common/bootstrap/bootstrap.dialog.js","costiBase/modal/costiBaseAdd.js","curriculum/modal/anagraficaDipendenteEdit.js","curriculum/modal/avvisoFirma.js","curriculum/modal/competenzaDigitaleAddEdit.js","curriculum/modal/competenzaTecnicaAddEdit.js","curriculum/modal/dettaglioProgettoAddEdit.js","curriculum/modal/esperienzaLavorativaAddEdit.js","curriculum/modal/formazioneAddEdit.js","curriculum/modal/istruzioneAddEdit.js","curriculum/modal/linguaAddEdit.js","curriculum/modal/stampaCV.js","curriculum/modal/tipologiaSelect.js","dashboard/modal/avvisoCurriculum.js","dipendente/modal/commessaDipendenteAdd.js","dipendente/modal/costoAddEdit.js","dipendente/modal/dipendenteAdd.js","dipendente/modal/dipendenteSelect.js","dipendente/modal/dipendenteSelectSuper.js","dipendente/modal/profiloOrarioAddEdit.js","dipendente/modal/sezioneDipendenteAdd.js","dipendente/modal/teamAdd.js","dipendente/modal/userDipendenteAdd.js","giustificativi/modal/giustificativoAddEdit.js","offerta/modal/offertaAdd.js","parametri/modal/parametriAddEdit.js","profiloOre/modal/profiloOreAdd.js","richiestaFerie/modal/eliminaFerie.js","richiestaFerie/modal/inoltraFerie.js","richiestaFerie/modal/richiestaFerieAddEdit.js","tAttach/modal/tAttachAdd.js","tAttach/modal/tAttachRoleAdd.js","tAttach/modal/tAttachTipologiaAdd.js","sezioni/modal/sezioneAddEdit.js","team/modal/teamAddEdit.js","team/modal/teamMembroSelect.js","user/modal/userAdd.js","user/modal/userRoleAdd.js","validazioneFerie/modal/validazioneAccettaRifiuta.js"],"names":["app","angular","module","factory","$window","_","run","$route","$location","$rootScope","datacontext","amMoment","filterKeydown","event","vm","keyCode","cerca","exportAll","sTableName","sType","sEscape","sFontSize","sSheetName","ua","window","navigator","userAgent","trident","indexOf","table","$","strCopy","html","clone","clipboardData","setData","objExcel","ActiveXObject","visible","Workbooks","Add","Worksheets","Paste","tableExport","type","pdfFontSize","escape","sheetName","changeLocale","detectIE","msie","parseInt","substring","rv","edge","service","section","setSection","area","getSection","isSectionActive","getClassIfActive","stile","appHome","config","$translateProvider","useStaticFilesLoader","prefix","suffix","registerAvailableLanguageKeys","en_*","it_*","*","determinePreferredLanguage","fallbackLanguage","useLocalStorage","$translate","$timeout","timeInMs","then","currentLanguage","proposedLanguage","use","cookie","link","instant","addClass","show","click","expires","path","hide","extendExceptionHandler","$delegate","logger","appErrorPrefix","logError","getLogFn","exception","cause","message","errorData","msg","$provide","decorator","toastr","options","timeOut","positionClass","docTitle","events","controllerActivateSuccess","spinnerToggle","remoteServiceName","version","value","$logProvider","debugEnabled","cfg","controllerActivateSuccessEvent","spinnerToggleEvent","preferredLanguage","tmhDynamicLocaleProvider","localeLocationPattern","constant","url","title","templateUrl","$routeProvider","routes","forEach","r","when","otherwise","redirectTo","controller","$scope","$filter","self","this","getOptionValueOverrides","customsectors","fromJson","levelcolors","textrenderer","originalFunction","isFunction","getOptionValue","name","replace","overrideFunction","getOptionName","optionName","getOptionsNames","exclude","optionsNames","isDefined","isArray","el","key","push","getDefinedOptions","optionNames","controllerId","common","bDialog","$routeParams","modal","sectionMenu","filterFilter","setView","view","countByFilter","attach_countAll","filter","tSourceId","record","Id","tAttachId","data","countRecords","getAllByFilter","loading","records","length","attach_getAll","pageSize","page","ordine","constructor","Array","item","getAll","getAuthorization","addDisabled","authorization_get","objName","authorization","bInsert","getRecord","id","index","attach_get","addRecord","getTSource","tSource_getAllList","tSource","getTAttach","fTSourceId","tAttach_getAllList","tAttach","logSuccess","showObjPanel","custom","exportDisabled","list","selectOrdine","fTAttachId","bAttivo","codiceProgetto","activated","loadMore","loadAll","goNext","getByFilter","goPrev","get","add","open","backdrop","keyboard","resolve","tSourceCode","source","sourceId","attach","result","returnItem","update","attach_update","delete","Name","TSource","Source","deleteDialog","attach_delete","splice","promises","activateController","ClasseId","activate","$uibModal","userId","fUserId","roleId","fRoleId","areaId","fAreaId","authorization_countByFilter","authorization_getAllByFilter","showCosti","iTags","showProfiliOrari","showTeam","console","info","getUsers","user_getAllList","user","getRuoli","role_getAllList","ruoli","dashview","super","isAuthorized","modalAutorizzazione","autorizzazione","users","roles","edit","copy","authorization_delete","stato","fStato","ricerca","fRicerca","cliente","fCliente","commessa_countAllForTimeSheet","commessa_getAllForTimeSheet","apply","getListClienti","cliente_getAllList","clienti","readonly","personale","capoSezione","utente","setOrdine","attivita","commesseSezioni","getListAttivita","commessa","attivita_getAll","showDetail","getListCommesseSezioni","commessaSezione_getAll","sezioni","tableHeight","attivitaControllo_countAll","attivitaControllo_getAllByFilter","trim","azienda_countAll","azienda_getAll","azienda_get","DataAttivazione","Date","confirmRoute","newUrl","attempt","recordForm","editForm","$dirty","confirmationDialog","$valid","$event","onRouteChangeOff","hash","btn","change","routeChange","oldUrl","preventDefault","anagrafica","changed","modalAzenda","azienda","azienda_update","$setPristine","RagioneSociale","azienda_delete","stopPropagation","opened","dateOptions","formatYear","startingDay","format","AzendaId","$on","account_get","save","account_changePassword","status","pwdOld","pwdNew","pwdConfirm","Message","Message_en","on","e","find","val","end","prop","aziendaPartner_countAll","aziendaPartner_getAll","gestore","getProvince","aziendaPartner_get","SedeLegaleProvinciaId","getComuniSedeLegale","SedeOperativaProvinciaId","getComuniSedeOperativa","getDipendenti","province","arrProvincie","idprov","istat_comune_getAllList","comuniSedeLegale","comuniSedeOperativa","dipendente_getAllByAziendaPartner","dipendenti","modalAziendaPartner","aziendaPartner","comuni","aziendaPartner_update","aziendaPartner_delete","AziendaPartnerId","cliente_countAll","cliente_getAll","cliente_get","modalCliente","cliente_update","cliente_delete","ClienteId","commessa_countAll","commessa_getAllByFilter","budget","commessa_get","DataApertura","DataChiusura","DataAggiornamento","DataScadenza","DataRev","Stato","Budget","o","obj","Data","TassegnazioneName","dict_selected_assegnazione","split","TprestazioneName","dict_selected_prestazione","checkTeamLeaderCommessa","bSezioni","getListDipendenti","commessa_checkTeamLeader","getListTipoAssegnazione","tipoAssegnazione_getAllList","tipoAssegnazione","i","Object","keys","ennesimo","dict_tassegnazione","getListTipoPrestazione","tipoPrestazione_getAllList","tipoPrestazione","dict_tprestazione","commessaId","calcolaOrePreviste","calcolaTotaleSpese","OrePreviste","parseFloat","toFixed","temp","dipendentiCommessa_getAll","dipendentiAttivi","attivo","getAllListDipendenti","dipendente_getAllList","dipendentiList","enabledPrint","modalCommessa","Codice","commessa_delete","join","commessa_update","DataRevisione","chiudiCommessa","Titolo","commessa_chiudiCommessa","riapriCommessa","commessa_riapriCommessa","aggiornaStatoCommessa","conferma","commessa_aggiornaStato","addAttivita","modalAttivita","CommessaId","editAttivita","deleteAttivita","Descrizione","attivita_delete","addBudget","modalBudget","deleteBudget","findIndex","budgetCommessa_delete","selezionaDipendente","windowClass","deleteDipendenteCommessa","ruolo","dipendente","dipendentiCommessa_delete","addCommessaSezione","editCommessaSezione","modalSezione","sezione","deleteCommessaSezione","commessaSezione_delete","report","estensione","report_Commessa","a","document","createElement","setAttribute","body","appendChild","href","download","file","removeChild","opened2","opened3","opened4","opened5","opened6","open2","open3","open4","open5","open6","CostoOrarioMedio","TotaleSpesaPrevista","OreSpese","TotaleSpesaEffettiva","commonModule","provider","$get","$q","$http","commonConfig","$broadcast","arguments","throttles","all","eventArgs","createSearchThrottle","viewmodel","filteredList","delay","toUpperCase","substr","toLowerCase","filterFn","filterInputTimeout","searchNow","cancel","debouncedThrottle","callback","immediate","undefined","isNumber","test","textContains","text","searchText","dateToString","dt","dd","getDate","mm","getMonth","yyyy","getFullYear","stringToDate","strData","numbers","setMonth","setFullYear","setDate","ord","element","strMese","language","retVal","$log","logIt","showToast","toastType","error","log","warning","success","moduleId","fnName","logFn","logWarning","spinnerHide","spinnerShow","costiBase_countAll","costiBase_getAll","costiBase_get","DataFine","clear","fData","modalCostiBase","costiBase","costiBase_update","costiBase_delete","profili","dipendente_get","ProvinciaId","getComuni","getEsperienzeLavorative","getDettaglioProgetti","getIstruzioni","getFormazioni","getCompetenzeDigitali","getCompetenzeTecniche","getLingue","getFasi","fasi","showInfo","Completed","showIstruzioni","showFormazioni","showCompetenzePersonali","showCompetenzeLinguistiche","showEsperienzeLavorative","showDettaglioProgetti","cvValido","FirmaId","dipendenteId","esperienzaLavorativa_getAll","esperienzeLavorative","changeSequenceEsperienzaLavorativa","orderList","esperienzaLavorativa_changeSequence","updateSequenceEsperienzaLavorativa","sequence","Sequence","dettaglioProgetto_getAll","progetti","changeSequenceDettaglioProgetti","dettaglioProgetto_changeSequence","updateSequenceDettaglioProgetti","istruzione_getAll","istruzioni","changeSequenceIstruzioni","istruzione_changeSequence","updateSequenceIstruzioni","formazione_getAll","formazioni","changeSequenceFormazioni","formazione_changeSequence","updateSequenceFormazioni","competenzaDigitale_getAll","competenzeDigitali","competenzaTecnica_getAll","competenzeTecniche","lingua_getAll","lingue","faseCurriculum_getAll","statoCV","code","tSource_getByCode","bApriTutti","profiloOre","fStatoCV","fSezione","editAnagraficaDipendente","modalAnagrafica","anagraficaDipendente","addEsperienzaLavorativa","modalEsperienzaLavorativa","DipendenteId","esperienzaLavorativa","deleteEsperienzaLavorativa","TipoMansione","esperienzaLavorativa_delete","editEsperienzaLavorativa","addProgetto","modalProgetto","progetto","deleteProgetto","dettaglioProgetto_delete","editProgetto","addIstruzione","modalIstruzione","istruzione","deleteIstruzione","Qualifica","istruzione_delete","editIstruzione","addFormazione","modalFormazione","formazione","deleteFormazione","Oggetto","formazione_delete","editFormazione","addCompetenzaTecnica","modalCompentezaTecnica","competenza","deleteCompetenzaTecnica","Competenza","competenzaTecnica_delete","editCompetenzaTecnica","addCompetenzaDigitale","modalCompentezaDigitale","deleteCompetenzaDigitale","competenzaDigitale_delete","editCompetenzaDigitale","addLingua","modalLingua","lingua","deleteLingua","Nome","lingua_delete","editLingua","stampaCV","dipendente_stampaCurriculum","Attach","Signature","DataStampa","Logo","Address","BusinessPhone","MobilePhone","Rev","apriTutti","opened1","open1","fAttach","filterAttach","setfAttach","checkfAttach","TAttachId","tSourceCode_def","addAttach","recTSource","recSource","Nominativo","Code","deleteAttach","addFirma","sortingLogEsperienzaLavorativa","sortableOptionsEsperienzaLavorativa","handle","ui","logEntry","map","stop","sortingLogDettaglioProgetti","sortableOptionsDettaglioProgetti","sortingLogIstruzioni","sortableOptionsIstruzioni","sortingLogFormazioni","sortableOptionsFormazioni","dettaglioDipendente_countAll","dettaglioDipendente_getAll","getProfiloOre","profiloOre_getAllList","tmhDynamicLocale","getDashboard","dashboard_get","dashboard","getPerformance","maxValue","graficoPerformance","legend","position","colors","vAxis","titleTextStyle","color","minValue","hAxis","textPosition","gridlines","count","pointSize","formatters","number","columnNum","decimalSymbol","fractionDigits","groupingSymbol","cols","label","rows","reportOre_getSum","fAnno","fMese","sortedPerformance","sortBy","primaData","first","Giorno","Mese","Anno","ultimaData","last","c","tmpMaxValue","desc","SommaOre","v","ordinarioG","straordinarioG","viaggioG","giustificativiG","trasfertaG","totaleG","ordinarioS","straordinarioS","viaggioS","giustificativiS","trasfertaS","totaleS","ordinarioM","straordinarioM","viaggioM","giustificativiM","trasfertaM","totaleM","set","today","moment","month","year","avvisoCV","getWhoAmI","fAziendaPartner","fRuolo","dipendenteConRuolo_countAll","dipendenteConRuolo_getAll","DataNascita","DataInizio","Costi","CostoOra","getAccount","accountForm","editFormAccount","updateAccount","getListAziendePartner","aziendaPartner_getAllList","aziendePartner","user_getByDipendenteId","account","Password","confPassword","Roles","DtAttivazione","role_getAll","getTeam","team","dipendentiTeam_getAll","teamId","numMembri","getCommessa","commesse","getSezione","dipendenteSezione_getAll","dtInizio_open","dtInizio_opened","dtFine_opened","dtNascita_opened","dtFine_open","dtNascita_open","dipendente_update","dipendente_delete","addCosto","costiBase_getDefault","modalCosto","Tipo","Valore","CostoOraStruttura","costo","editCosto","deleteCosto","costoDipendente_delete","addProfilo","modalProfilo","profiliOre","profilo","editProfilo","deleteProfilo","profiloOreTipo","profiloDipendenti_delete","user_update","updatePassword","resetPassword","Username","user_resetPassword","Email","invioCredenziali","user_invioCredenziali","newAccount","nominativo","addTeam","dipendentiTeam_add","deleteTeam","dipendentiTeam_delete","addCommessa","dipendentiCommessa_add","deleteCommessa","addSezione","deleteSezione","dipendenteSezione_delete","giustificativo_countAll","giustificativo_getAll","giustificativo_get","modalGiustificativo","giustificativo","Sigla","giustificativo_delete","giustificativoId","dipendente_countAll","dipendente_getAll","provincie","getProvincie","DataAssunzione","DataLicenziamento","getSezioni","sezione_getAllList","nonAttivi","modalDipendente","getNonAttivi","matricola","dipendente_getAllNonAttivi","selezionaProfilo","profiloDipendenti_add","changeLanguage","setLanguage","getUrl","n","lastIndexOf","toggleSpinner","isBusy","WhoAmI","userRoles","Ruoli","role","username","email","StatoCV","Azienda","aziendaId","AziendaId","logo","logoReport","LogoReport","parametriId","ParametriId","filtroCommesse","FiltroCommesse","AvvisoCV","filtroSezioni","FiltroSezioni","basePath","BasePath","ferie","Ferie","Lingua","busyMessage","spinnerOptions","radius","lines","width","speed","corners","trail","oggi","absUrl","next","current","getNavRoutes","navRoutes","settings","nav","sort","r1","r2","isCurrent","route","menuName","getLog","logGetAll","getNotifiche","pushGetAll","notifiche","getlog","logDelete","pushDelete","commessa_countAllForOfferte","commessa_getAllForOfferte","modalOfferta","offerta","dettaglio","settings_countAll","settings_getAll","settings_get","settings_update","location","reload","settings_delete","modalEdit","modalParametri","parametri","profiloOre_countAll","profiloOre_getAll","profiloOre_get","modalProfiloOre","profiloOre_update","profiloOre_delete","setFilter","anno","mese","settimana","fSettimana","giorno","fGiorno","fCommessa","cdc","fCdc","fDipendenteId","dataInizio","fDataInizio","dataFine","fDataFine","getListAnni","anni","String","getListMesi","mesi","meseChanged","getListSettimane","settimane","getListGiorni","giorni","getListCentriCosto","centroCosto_getAllList","setttimane","fDipendente","commessaChanged","strDipendente","annullaDipendente","reportMensile","bPDF","report_getTimeSheetMensile","reportPresenze","report_getPresenze","reportCosti","report_getCosti","reportCommesse","report_getCommesse","oreDaiTimeSheet","reportOre_getAll","excel","rowCount","Dipendente","Commessa","CommessaDesc","Cliente","Attivita","OreLavoro","StatusOre","Note","Settimana","excelFile","base64data","base64","encode","byteCharacters","atob","byteNumbers","charCodeAt","byteArray","Uint8Array","blob","Blob","downloadUrl","URL","webkitURL","createObjectURL","reportMensileDipendenti","report_getTimeSheetMensileDipendenti","reportVerificaTimeSheet","report_getVerificaTimeSheet","reportTotaliCommSez","report_getTotaliCommSez","reportTotaliSezDip","report_getTotaliSezDip","reportTotaliSezioni","report_getTotaliSezioni","d","causale","fCausale","reportOre_countAll","somma","reportOre_getTotale","getListCommesse","commessa_getAllListForTimeSheet","getListSezioni","causali","fAzienda","getListAziende","azienda_getAllList","aziende","reportDipendenti","report_getDipendenti","dtInizio","fDtInizio","dtFine","fDtFine","richiestaFerie_countAll","richiestaFerie_getAllByFilter","getTimeSheet","gSett","colFestivo","colSabati","colDomeniche","righeC","rigaTot","Totale","TotaleApprovate","TotaleDaValidare","date","check","holidays","colTitle","descrizione","pop","richiestaFerie_getReportFerie","ordinario","chain","groupBy","Matricola","iArr","allInfo","listaNominativi","k","Ore","ore","rigaC","oreC","getHolidays","festivita_getAll","colFerie","righeG","richiesta","richiestaFerie_delete","inoltra","showNote","note","temp_date","prev","vai","timeSheet_getDate","fiAnno","fiMese","fiGiorno","attivita_get","getById","urlAPI","response","catch","getAllList","getAllNoParam","actionName","getAllByParam","paramName","paramValue","getAllByParams","paramArray","numParams","addObj","objValue","post","updateObj","put","deleteObj","_pageSize","_arrProvincie","getImage","imagePath","attivita_getAllList","sezioneId","params","attivita_add","attivita_update","order","azienda_add","aziendaPartner_add","cliente_add","itemId","centroCosto_getAll","centroCosto_get","item_getAllList","item_getAll","item_get","budgetCommessa_get","budgetCommessa_add","budgetCommessa_update","commessa_getAllList","clienteId","commessa_getAllListForOfferte","commessa_getMaxCodiceCommessa","commessa_add","commessaSezione_getAllForTimeSheet","commessaSezione_add","commessaSezione_addList","commessaSezione_update","syncOreLog_getAllList","syncOreLog_getAllByFilter","syncOreLog_countAll","syncOreLog_editSync","oreId","valore","costoDipendente_get","costoDipendente_add","costoDipendente_update","profiloDipendenti_get","profiloDipendenti_getByDipendenteId","profiloOreId","profiloDipendenti_update","aziendaPartnerId","dipendente_getAllForCommessa","dipendente_countAllForCommessa","dipendente_add","withAttach","withSignature","dataStampa","withLogo","withAddress","withBusinessPhone","withMobilePhone","rev","dataRev","dipendente_getAllByDB","db","ruoloId","dipendenteSezione_add","dipendenteSezione_addList","dettaglioDipendente_getAllList","dettaglioDipendente_get","istruzione_add","istruzione_addList","istruzione_update","istruzione_get","formazione_add","formazione_update","formazione_get","dettaglioProgetto_add","dettaglioProgetto_update","dettaglioProgetto_get","esperienzaLavorativa_add","esperienzaLavorativa_update","esperienzaLavorativa_get","faseCurriculum_get","fase","software_getAll","generico","software_add","software_addList","software","software_update","software_delete","software_get","competenzaDigitale_add","competenzaDigitale_update","competenzaDigitale_get","competenzaTecnica_add","competenzaTecnica_update","competenzaTecnica_get","lingua_add","lingua_update","lingua_get","linguaggioProgrammazione_getAll","linguaggioProgrammazione_add","linguaggioProgrammazione_addList","linguaggi","linguaggioProgrammazione_update","linguaggioProgrammazione_delete","linguaggioProgrammazione_get","norma_getAll","norma_add","norma_addList","norme","norma_update","norma_delete","norma_get","standard_getAll","standard_add","standard_addList","standard","standard_update","standard_delete","standard_get","areaTecnica_getAllList","areaTecnica_get","tipoAttivita_getAllList","tipoAttivita_getAllByAreaTecnicaId","areaTecnicaId","tipoAttivita_getAll","tipoAttivita_countAll","tipoAttivita_add","classeObj","tipoAttivita_delete","tipoAttivita_get","tipoAttivita_update","tipoLinguaggio_getAllList","tipoLinguaggio_getAll","tipoLinguaggio_countAll","tipoLinguaggio_add","tipoLinguaggio_delete","tipoLinguaggio_get","tipoLinguaggio_update","tipoMansione_getAllList","tipoMansione_getAllByAreaTecnicaId","tipoMansione_getAll","tipoMansione_countAll","tipoMansione_add","tipoMansione_delete","tipoMansione_get","tipoMansione_update","tipoNorma_getAllList","tipoNorma_getAll","tipoNorma_countAll","tipoNorma_add","tipoNorma_delete","tipoNorma_get","tipoNorma_update","tipoServizioEn_getAll","tipoSoftware_getAllList","tipoSoftware_getAllByAreaTecnicaId","tipoSoftware_getAll","generici","tipoSoftware_countAll","tipoSoftware_add","tipoSoftware_delete","tipoSoftware_get","tipoSoftware_update","tipoStandard_getAllList","tipoStandard_getAll","tipoStandard_countAll","tipoStandard_add","tipoStandard_delete","tipoStandard_get","tipoStandard_update","team_countAll","team_getAll","team_update","team_add","team_get","team_delete","dipendentiCommessa_addList","costiBase_add","giustificativo_getAllList","richiesteFerie","giustificativo_add","giustificativo_update","pushNotification_add","profiloOre_add","report_getTimeSheet","report_getFerie","richiestaFerie_getAllList","richiestaFerie_getValidFerie","richiestaFerie_get","richiestaFerie_addMultiplo","items","richiestaFerie_add","richiestaFerie_update","richiestaFerie_inoltra","validazioneRichiestaFerie_getAllValid","validazioneRichiestaFerie_countValid","validazioneRichiestaFerie_accetta","validazioneRichiestaFerie_rifiuta","timeSheet_getAll","timeSheet_getById","timeSheet_get","timeSheet_getMensile","timeSheet_save","timeSheet_delete","timeSheet_getRiepilogo","timeSheet_getRiepilogoSettimanale","timeSheet_getWeek","timeSheet_getWeekByDate","timeSheet_getDatesOfWeek","settings_add","sezione_getAll","sezione_countAll","sezione_getAllListForTimeSheet","sezione_getAllForTimeSheet","sezione_get","sezione_add","sezione_update","sezione_delete","validazioneTimeSheet_getAll","convalidato","dataI","validazioneTimeSheet_countAll","validazioneTimeSheet_convalida","id_rik","validazioneTimeSheet_notificaTutti","gruppoId","istat_comune_get","user_getAll","user_getAllUsernames","user_countAll","user_get","user_getByUsername","user_add","user_activate","user_deactivate","user_delete","user_suggestUserame","nome","cognome","user_suggestPassword","super_user_getAll","bAttivato","super_user_countAll","role_get","userRole_getAll","userRole_add","risorsaId","userRole_delete","attivitaControllo_get","authorization_add","authorization_update","attach_getAllList","attach_add","attach_setCompleted","attach_unsetCompleted","attach_download","tirocinioId","tirocinanteId","classeId","misura","attach_extract","upload_getURL","onlyMissing","tAttach_getAllModal","tAttach_getAll","testuale","tAttach_countAll","tAttach_get","tAttach_add","tAttach_update","tAttach_delete","tAttachVisibility_getAuth","tAttachVisibility_getAll","tAttachVisibility_add","tAttachVisibility_update","tAttachVisibility_delete","tAttachFileType_getAll","extension","tAttachFileType_add","tAttachFileType_update","tAttachFileType_delete","tSource_getAll","tSource_get","conversions","ss","identity","hh","padding","zeroes","pad","unit","isPadded","totalSeconds","Math","floor","day","sDay","sMonth","sYear","getDay","directive","restrict","transclude","require","scope","elm","attrs","ctrl","$watch","$modelValue","isValid","$setValidity","imageSettings","imageBasePath","unknownImage","unknownPersonImageSource","$observe","$set","$sidebarInner","$dropdownElement","dropClass","hasClass","removeClass","slideUp","slideDown","parent","template","$wcontent","iElement","children","is","toggle","$win","scroll","scrollTop","animate","spinner","ccSpinner","Spinner","spin","subtitle","rightText","allowCollapse","titlefontcolor","valuefontcolor","height","relativegaugesize","min","max","valueminfontsize","titleminfontsize","labelminfontsize","minlabelminfontsize","maxlabelminfontsize","hidevalue","hideminmax","hideinnershadow","gaugewidthscale","gaugecolor","showinnershadow","shadowopacity","shadowsize","shadowverticaloffset","nogradient","labelfontcolor","startanimationtTime","startanimationtype","refreshanimationtime","refreshanimationtype","donut","donutstartangle","counter","decimals","symbol","formatnumber","humanfriendly","humanfriendlydecimal","justgageCtrl","justgage","watchers","bindValue","newValue","oldValue","refresh","bindOtherOptions","otherOptionsNames","init","justgageOptions","parentNode","extend","canvasDom","canvas","watcher","JustGage","valuecurrent","valuemax","$element","listener","fileread","attributes","bind","changeEvent","reader","FileReader","onload","loadEvent","$apply","target","readAsDataURL","files","trigger","array","f","groups","group","JSON","stringify","tipologie","AreaTecnicaId","res","arr","AreaTecnica","TestoAltro","fTestuale","deleteChildren","deleteChildrenOfRoleIdOrUserId","deletedChildren","getListRuoli","getRoles","lstRoles","getListTipologie","change_CarattVariable","variable","labelImporto1","labelValore1","labelBit1","labelTesto1","deleteRuolo","Role_Etichetta","addRole","TSourceId","tAttachRole","isNumeric","addTipologia","deleteTipologia","Title","change_iImporto1","change_iValore1","change_iBit1","change_iTesto1","sezioniId","getDipendente","dipAttiviClick","modalTeam","editTeam","titolo","deleteDipendenteTeam","TeamId","Profilo","ProfiloOreId","ProfiloOreDescrizione","Ore1","Ore2","Ore3","Ore4","Ore5","Ore6","Ore7","bAlert","getListGiustificativi","giustificativi","addRigaC","riga","commessa_id","cod_att","Giustificativo","ora","n_giorno","ore_lavoro","addRigaG","CBlur","totaliC","totaliCS","totaliV","totaliTR","AggiornaTotali","GBlur","totaliG","x","totali","dbTM","getRiepilogo","inizio","fine","status_sync","righe","straordinario","j","validato","azzeraTimeSheet","timeSheet","tipo_ore","opConvalida","OpConvalida","id_dipendente","bSelDipendente","bConvalida","bLock","OreSpeseSezione","sezioneChanged","clearCommessa","attivitaChanged","giustChanged","g","getCommesse","delRigaC","delRigaG","defaultRigaC","timeSheetPrevious","saveTimeSheet","break","breakGiust","checkDuplicato","rigaVuota","eq","ind","obj2","isEqual","concat","dir","deleteTimeSheet","printTimeSheet","convalidaTimeSheet","week","currentWeek","rigaTotOrdinario","TotaleOrdinario","rigaTotStraordinario","TotaleStraordinario","rigaTotViaggio","TotaleViaggio","rigaTotTrasferta","TotaleTrasferta","rigaTotGiustificativi","TotaleGiustificativi","tipoGiustificativo","rigaG","oreG","Ordinario","Straordinario","Viaggio","Trasferta","Giustificativi","updateItem","getAziende","DB","dip","addModalRole","risorse","risorsa","gruppoAmm","gruppoDid","Etichetta","addRuolo","fBAttivo","fUsername","fEmail","deactivate","UserId","fConvalidato","valida","prevDay","nextDay","notifica","notificaTutti","addTitle","statoAccettato","button","statoRifiutato","stato_modal","DipId","RichiestaId","scaricaReport","$uibModalInstance","FileUploader","setTAttachParams","myTAttach","setMaxKB","MaxKB","setListFileTypes","FileType","fileTypes","str","arrExt","msgFilesExt","Extension","strExt","uniq","parse","acceptFileTypes","maxKB","maxKB_Def","MaxDim","getListAttach","lista","addItem","action","removeFile","listTA","item_TAV","myrec","bRead","bUpdate","bDelete","getListSource","source_getAllList","bTitleChanged","upload_URL","uploaded","selectTitle","popupTitle","jQuery","TSourceName","SourceId","tAttachName","checkBit1_click","checkBit1","Bit1","ok","close","TSourceChanged","SourceChanged","changeTAttach","iBit1","TitleChanged","Path","KB","uploader","removeAfterUpload","filters","fn","queue","onWhenAddingFileFailed","onAfterAddingFile","fileItem","onAfterAddingAll","addedFileItems","onBeforeUploadItem","onProgressItem","progress","onProgressAll","onSuccessItem","headers","PathServer","NameOrig","Length","onErrorItem","onCancelItem","onCompleteItem","onCompleteAll","dismiss","firma","showImage","image","isEmpty","editItem","Value","calcolaTag","costiCheck","profiliOrariCheck","teamCheck","DtInizio","DtFine","disableSave","codice","isPersonale","fTesto","each","toggleAll","isAllSelected","checked","$templateCache","okText","cancelText","modalOptions","ModalInstance","itemName","otherCostumer","disableField","changeCostumer","otherLanguage","livelli","clearRev","getTipologia","getTipoSoftware","getTipoLinguaggi","getTipoNorme","getTipoStandard","getTipoAttivita","areeTecniche","arrayChecked","enable","checkTipo","NomeArea","selected","resultItem","costoBase","suggest","Cognome","password","RuoloId","accountChange","accountEnabled","Ruolo","profiloOreDescrizione","select","Attivato","CambioPwd","oraInizio","oraFine","OraInizio","OraFine","Domanda","richieste_list","TipoRichiesta","openDtInizio","openDtFine","logError$translate","setTimeout","RichiestaFerieId","obj_list","check_empty","check_full","richiestaFerie_Dettaglio_delete","GiustificativoId","MinValue","RoleId","getTSourceId","item_TA","setRead","tAttachTipologia","userRole","domanda","rifiuta"],"mappings":"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","file":"app.min.js","sourcesContent":["(function () {\r\n 'use strict';\r\n\r\n var app = angular.module('app', [\r\n // Angular modules \r\n 'ngAnimate', // animations\r\n 'ngRoute', // routing\r\n 'ngSanitize', // sanitizes html bindings (ex: sidebar.js)\r\n 'ngMessages', // Validation Messages\r\n 'ngFileUpload',\t\t\t // Upload di Files\r\n 'angularFileUpload', // Upload di Files https://github.com/nervgh/angular-file-upload/wiki/Module-API\r\n\t\t'angularMoment', // work with date\r\n\t\t'imageCropper',\t\t\t\t// Image Cropper (angular-image-cropper.js)\r\n 'ngFileUpload', // ng-file-upload\r\n\r\n // Custom modules \r\n 'common', // common functions, logger, spinner\r\n 'common.bootstrap', // bootstrap dialog wrapper functions\r\n\r\n // 3rd Party Modules\r\n 'ui.bootstrap', // ui-bootstrap (ex: carousel, pagination, dialog)\r\n\t\t'ui.sortable',\t\t\t // sort item\r\n\t\t//'dialogs',\t // finestre di Dialogo (dialogs.min.js)\r\n 'infinite-scroll', // infinite scroll\r\n 'googlechart', // Google charts\r\n 'pascalprecht.translate', //angular translate\r\n 'tmh.dynamicLocale', //angular-dynamic-locale\r\n 'localytics.directives' //angular-chosen\r\n ]);\r\n\r\n // Lodash library\r\n app.factory('_', ['$window',\r\n function ($window) {\r\n // place lodash include before angular\r\n return $window._;\r\n }\r\n ]);\r\n \r\n // Handle routing errors and success events\r\n app.run(['$route', '$location', '$rootScope', 'datacontext', 'amMoment', function ($route, $location, $rootScope, datacontext, amMoment) {\r\n // Include $route to kick start the router. \r\n\r\n $rootScope.filterKeydown = function(event, vm) {\r\n if(event.keyCode==13) vm.cerca(); \r\n }\r\n\r\n $rootScope.exportAll = function(sTableName, sType, sEscape, sFontSize, sSheetName) {\r\n var ua = window.navigator.userAgent;\r\n var trident = ua.indexOf(\"Trident\");\r\n var msie = ua.indexOf(\"MSIE \");\r\n\r\n if (msie > 0 || trident > 0) {\r\n var table = $(sTableName);\r\n var strCopy = $('
').html(table.clone()).html(); window.clipboardData.setData(\"Text\", strCopy);\r\n\r\n var objExcel = new ActiveXObject(\"Excel.Application\");\r\n objExcel.visible = false;\r\n var objWorkbook = objExcel.Workbooks.Add;\r\n var objWorksheet = objWorkbook.Worksheets(1);\r\n objWorksheet.Paste;\r\n objExcel.visible = true;\r\n }\r\n else {\r\n if (sType == 'pdf')\r\n $(sTableName).tableExport({ type: sType, pdfFontSize: sFontSize, escape: sEscape, sheetName: sSheetName });\r\n else\r\n $(sTableName).tableExport({ type: sType, escape: sEscape });\r\n }\r\n\r\n amMoment.changeLocale('it');\r\n }\r\n\r\n $rootScope.detectIE = function () {\r\n var ua = window.navigator.userAgent;\r\n\r\n var msie = ua.indexOf('MSIE ');\r\n if (msie > 0) {\r\n // IE 10 or older => return version number\r\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n var trident = ua.indexOf('Trident/');\r\n if (trident > 0) {\r\n // IE 11 => return version number\r\n var rv = ua.indexOf('rv:');\r\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n var edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n // IE 12 => return version number\r\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n // other browser\r\n return false;\r\n }\r\n }]);\r\n\r\n app.service('sectionMenu', function ($rootScope) {\r\n \tvar section = '';\r\n\r\n \tvar setSection = function (area) {\r\n \t\treturn section = area;\r\n \t};\r\n\r\n \tvar getSection = function () {\r\n \t\treturn section;\r\n \t};\r\n\r\n \tvar isSectionActive = function (area) {\r\n \t\treturn section == area;\r\n \t};\r\n\r\n var getClassIfActive = function (area) {\r\n return (section == area) ? 'activated ' + $rootScope.stile : ''; //area == vm.title, dell'area in questione\r\n \t}; \t\r\n\r\n \treturn {\r\n \t\tsetSection: setSection,\r\n \t\tgetSection: getSection,\r\n \t\tisSectionActive: isSectionActive,\r\n \t\tgetClassIfActive: getClassIfActive\r\n \t}\r\n });\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n var appHome = angular.module('appHome', [\r\n // Angular modules \r\n // Custom modules \r\n 'common', // common functions, logger, spinner\r\n 'ngCookies',\r\n 'pascalprecht.translate' //angular translate\r\n //'tmh.dynamicLocale' //angular-dynamic-locale\r\n\r\n ]);\r\n\r\n //#region translate\r\n appHome.config(['$translateProvider', function ($translateProvider) {\r\n $translateProvider.useStaticFilesLoader({\r\n prefix: '/app/translations/translation_',\r\n suffix: '.json?version=30'\r\n })\r\n .registerAvailableLanguageKeys(['en', 'it'], {\r\n 'en_*': 'en',\r\n 'it_*': 'it',\r\n '*': 'en'\r\n })\r\n\r\n .determinePreferredLanguage()\r\n //.preferredLanguage('en')\r\n //.useLocalStorage()\r\n .fallbackLanguage('en');\r\n $translateProvider.useLocalStorage();\r\n }]);\r\n //#endregion\r\n\r\n //appHome.config(function (tmhDynamicLocaleProvider) {\r\n // tmhDynamicLocaleProvider.localeLocationPattern('/node_modules/angular-i18n/angular-locale_{{locale}}.js');\r\n //});\r\n\r\n // Handle routing errors and success events\r\n appHome.run(['$rootScope', '$translate', '$timeout', function ($rootScope, $translate, $timeout) {\r\n $rootScope.timeInMs = false;\r\n var time = function () {\r\n $rootScope.timeInMs = true;\r\n }\r\n\r\n $timeout(time, 1000).then(function () {\r\n var currentLanguage = $translate.proposedLanguage() || $translate.use();\r\n //inizio cookie\r\n var cookieName = 'user_accepts_cookies';\r\n var valore = $.cookie(cookieName) || null;\r\n if (valore == null) {\r\n var link = \"/informativa-cookie_\" + currentLanguage + \".htm\";\r\n $(\"#uecookielaw\").html(\"

\" + $translate.instant('Utilizziamo i') + \" \" + $translate.instant('cookie') + \" \" + $translate.instant('Migliore esperienza') + \"
\" + $translate.instant('Quando utilizzi il nostro sito') + \"
\" + $translate.instant('Ulteriori informazioni') + \"

\" + $translate.instant('Accetto') + \"
\");\r\n $(\"#uecookielaw\").addClass(\"cookielaw\");\r\n $(\"#uecookielaw\").show();\r\n }\r\n $(\"#uecookielawclose\").click(function () {\r\n $.cookie(cookieName, \"Normativa letta\", { expires: 30, path: '/' });\r\n $(\"#uecookielaw\").hide();\r\n });\r\n\r\n //fine cookie\r\n });\r\n }]);\r\n})();\r\n","(function () {\r\n\t'use strict';\r\n\r\n\tvar app = angular.module('app');\r\n\r\n\t// Configure by setting an optional string value for appErrorPrefix.\r\n\t// Accessible via config.appErrorPrefix (via config value).\r\n\r\n\tapp.config(['$provide', function ($provide) {\r\n\t\t$provide.decorator('$exceptionHandler',\r\n ['$delegate', 'config', 'logger', extendExceptionHandler]);\r\n\t}]);\r\n\r\n\t// Extend the $exceptionHandler service to also display a toast.\r\n\tfunction extendExceptionHandler($delegate, config, logger) {\r\n\t\tvar appErrorPrefix = config.appErrorPrefix;\r\n\t\tvar logError = logger.getLogFn('app', 'error');\r\n\t\treturn function (exception, cause) {\r\n\t\t\t$delegate(exception, cause);\r\n\t\t\tif (appErrorPrefix && exception.message.indexOf(appErrorPrefix) === 0) { return; }\r\n\r\n\t\t\tvar errorData = { exception: exception, cause: cause };\r\n\t\t\tvar msg = appErrorPrefix + exception.message;\r\n\t\t\tlogError(msg, errorData, true);\r\n\t\t};\r\n\t}\r\n})();","(function () {\r\n 'use strict';\r\n\r\n var app = angular.module('app');\r\n\r\n // Configure Toastr\r\n toastr.options.timeOut = 4000;\r\n toastr.options.positionClass = 'toast-bottom-right';\r\n\r\n // For use with the HotTowel-Angular-Breeze add-on that uses Breeze\r\n var remoteServiceName = 'breeze/Breeze';\r\n\r\n var events = {\r\n controllerActivateSuccess: 'controller.activateSuccess',\r\n spinnerToggle: 'spinner.toggle'\r\n };\r\n\r\n var config = {\r\n appErrorPrefix: '[Timesheet] ', //Configure the exceptionHandler decorator\r\n docTitle: 'Timesheet: ',\r\n events: events,\r\n remoteServiceName: remoteServiceName,\r\n version: '2.1.0'\r\n };\r\n\r\n app.value('config', config);\r\n\r\n app.config(['$logProvider', function ($logProvider) {\r\n // turn debugging off/on (no info or warn)\r\n if ($logProvider.debugEnabled) {\r\n $logProvider.debugEnabled(true);\r\n }\r\n }]);\r\n\r\n //#region Configure the common services via commonConfig\r\n app.config(['commonConfigProvider', function (cfg) {\r\n cfg.config.controllerActivateSuccessEvent = config.events.controllerActivateSuccess;\r\n cfg.config.spinnerToggleEvent = config.events.spinnerToggle;\r\n }]);\r\n //#endregion\r\n\r\n //#region translate\r\n app.config(['$translateProvider', function ($translateProvider) {\r\n $translateProvider.useStaticFilesLoader({\r\n prefix: '/app/translations/translation_',\r\n suffix: '.json?version=30'\r\n })\r\n\r\n .registerAvailableLanguageKeys(['en', 'it'], {\r\n 'en_*': 'en',\r\n 'it_*': 'it',\r\n '*': 'it'\r\n })\r\n //.determinePreferredLanguage()\r\n .preferredLanguage('en')\r\n .fallbackLanguage('en');\r\n }]);\r\n //#endregion\r\n\r\n app.config(function (tmhDynamicLocaleProvider) {\r\n tmhDynamicLocaleProvider.localeLocationPattern('/scripts/angular-locale_{{locale}}.js');\r\n });\r\n})();","(function () {\r\n 'use strict';\r\n\r\n var app = angular.module('app');\r\n\r\n // Collect the routes\r\n app.constant('routes', getRoutes());\r\n\r\n // Configure the routes and route resolvers\r\n app.config(['$routeProvider', 'routes', routeConfigurator]);\r\n function routeConfigurator($routeProvider, routes) {\r\n\r\n routes.forEach(function (r) {\r\n $routeProvider.when(r.url, r.config);\r\n });\r\n $routeProvider.otherwise({ redirectTo: '/' });\r\n }\r\n\r\n // Define the routes \r\n function getRoutes() {\r\n return [\r\n {\r\n url: '/',\r\n config: {\r\n title: 'dashboard',\r\n templateUrl: '/app/dashboard/dashboard_error.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/dashboard_Super',\r\n config: {\r\n title: 'dashboard',\r\n templateUrl: '/app/dashboard/dashboard_Super.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/dashboard_Utente',\r\n config: {\r\n title: 'dashboard',\r\n templateUrl: '/app/dashboard/dashboard_Utente.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/dashboard_Personale',\r\n config: {\r\n title: 'dashboard',\r\n templateUrl: '/app/dashboard/dashboard_Personale.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/dashboard_CapoSezione',\r\n config: {\r\n title: 'dashboard',\r\n templateUrl: '/app/dashboard/dashboard_CapoSezione.html?version=30'\r\n }\r\n },\r\n // CURRICULUM\r\n {\r\n url: '/curriculum',\r\n config: {\r\n title: 'curriculum',\r\n templateUrl: '/app/curriculum/curricula.html?version=30'\r\n }\r\n },\r\n // CURRICULUM PERSONALE\r\n {\r\n url: '/curriculum_personale',\r\n config: {\r\n title: 'curriculum_personale',\r\n templateUrl: '/app/curriculum_personale/curricula_personale.html?version=30'\r\n }\r\n },\r\n // CURRICULUM\r\n {\r\n url: '/curriculum_personale/:DipendenteId',\r\n config: {\r\n title: 'curriculum_personaleDetail',\r\n templateUrl: '/app/curriculum_personale/curricula_personale.html?version=30'\r\n }\r\n },\r\n // DIPENDENTI\r\n {\r\n url: '/dipendente',\r\n config: {\r\n title: 'dipendente',\r\n templateUrl: '/app/dipendente/dipendenti.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/dipendente/:DipendenteId',\r\n config: {\r\n title: 'dipendenteDetail',\r\n templateUrl: '/app/dipendente/dipendenti.html?version=30'\r\n }\r\n },\r\n //DIPENDENTI SUPER\r\n {\r\n url: '/dipendente_super',\r\n config: {\r\n title: 'dipendente',\r\n templateUrl: '/app/dipendente_super/dipendenti.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/dipendente_super/:DipendenteId',\r\n config: {\r\n title: 'dipendenteDetail',\r\n templateUrl: '/app/dipendente_super/dipendenti.html?version=30'\r\n }\r\n },\r\n // AZIENDEPARTNER\r\n {\r\n url: '/aziendaPartner',\r\n config: {\r\n title: 'aziendaPartner',\r\n templateUrl: '/app/aziendaPartner/aziendePartner.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/aziendaPartner/:AziendaPartnerId',\r\n config: {\r\n title: 'aziendaPartner',\r\n templateUrl: '/app/aziendaPartner/aziendePartner.html?version=30'\r\n }\r\n },\r\n // AZIENDE\r\n {\r\n url: '/azienda',\r\n config: {\r\n title: 'azienda',\r\n templateUrl: '/app/azienda/aziende.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/azienda/:AziendaId',\r\n config: {\r\n title: 'azienda',\r\n templateUrl: '/app/azienda/aziende.html?version=30'\r\n }\r\n },\r\n // CLIENTI\r\n {\r\n url: '/cliente',\r\n config: {\r\n title: 'cliente',\r\n templateUrl: '/app/cliente/clienti.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/cliente/:ClienteId',\r\n config: {\r\n title: 'cliente',\r\n templateUrl: '/app/cliente/clienti.html?version=30'\r\n }\r\n },\r\n // REPORT ORE\r\n {\r\n url: '/reportOre',\r\n config: {\r\n title: 'reportOre',\r\n templateUrl: '/app/reportOre/reportOre.html?version=30'\r\n }\r\n },\r\n // TIMESHEET\r\n {\r\n url: '/timeSheet',\r\n config: {\r\n title: 'timeSheet',\r\n templateUrl: '/app/timeSheet/timeSheet.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/timeSheet/:DipendenteId/:Data',\r\n config: {\r\n title: 'timeSheet',\r\n templateUrl: '/app/timeSheet/timeSheet.html?version=30'\r\n }\r\n },\r\n // TIMESHEET MENSILE\r\n {\r\n url: '/timeSheetMensile',\r\n config: {\r\n title: 'timeSheetMensile',\r\n templateUrl: '/app/timeSheetMensile/timeSheetMensile.html?version=30'\r\n }\r\n },\r\n // REPORT \r\n {\r\n url: '/report',\r\n config: {\r\n title: 'report',\r\n templateUrl: '/app/report/report.html?version=30'\r\n }\r\n },\r\n // REPORT SUPER\r\n {\r\n url: '/report_super',\r\n config: {\r\n title: 'report_super',\r\n templateUrl: '/app/report_super/report_super.html?version=30'\r\n }\r\n },\r\n // COMMESSE\r\n {\r\n url: '/commesse',\r\n config: {\r\n title: 'commesse',\r\n templateUrl: '/app/commessa/commesse.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/commesse/:CommessaId',\r\n config: {\r\n title: 'commesse',\r\n templateUrl: '/app/commessa/commesse.html?version=30'\r\n }\r\n },\r\n // OFFERTE\r\n {\r\n url: '/offerte',\r\n config: {\r\n title: 'offerte',\r\n templateUrl: '/app/offerta/offerte.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/offerte/:CommessaId',\r\n config: {\r\n title: 'offerte',\r\n templateUrl: '/app/offerta/offerte.html?version=30'\r\n }\r\n },\r\n //SEZIONI\r\n {\r\n url: '/sezioni',\r\n config: {\r\n title: 'sezione',\r\n templateUrl: '/app/sezioni/sezioni.html?version=30'\r\n }\r\n },\r\n // AVANZAMENTI COMMESSE\r\n {\r\n url: '/avanzamentiCommesse',\r\n config: {\r\n title: 'avanzamentiCommesse',\r\n templateUrl: '/app/avanzamentoCommessa/avanzamentoCommesse.html?version=30'\r\n }\r\n },\r\n //VERIFICA\r\n {\r\n url: '/validaTimeSheet',\r\n config: {\r\n title: 'validaTimeSheet',\r\n templateUrl: '/app/validaTimeSheet/validaTimeSheet.html?version=30'\r\n }\r\n },\r\n // USER\r\n {\r\n url: '/user',\r\n config: {\r\n title: 'users',\r\n templateUrl: '/app/user/users.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/user/:UserId',\r\n config: {\r\n title: 'userDetail',\r\n templateUrl: '/app/user/users.html?version=30'\r\n }\r\n },\r\n // LOGS \r\n {\r\n url: '/logs',\r\n config: {\r\n title: 'logs',\r\n templateUrl: '/app/logPush/logPush.html?version=30'\r\n }\r\n },\r\n // ATTIVITA' \r\n {\r\n url: '/attivita',\r\n config: {\r\n title: 'attivita',\r\n templateUrl: '/app/attivita/attivita.html?version=30'\r\n }\r\n },\r\n // GIUSTIFICATIVI \r\n {\r\n url: '/giustificativi',\r\n config: {\r\n title: 'giustificativi',\r\n templateUrl: '/app/giustificativi/giustificativi.html?version=30'\r\n }\r\n },\r\n // PARAMETRI \r\n {\r\n url: '/parametri',\r\n config: {\r\n title: 'parametri',\r\n templateUrl: '/app/parametri/parametri.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/parametri/:parametriId',\r\n config: {\r\n title: 'parametri',\r\n templateUrl: '/app/parametri/parametri.html?version=30'\r\n }\r\n },\r\n // TEAM\r\n {\r\n url: '/team',\r\n config: {\r\n title: 'team',\r\n templateUrl: '/app/team/team.html?version=30'\r\n }\r\n },\r\n // COSTI BASE\r\n {\r\n url: '/costiBase',\r\n config: {\r\n title: 'costiBase',\r\n templateUrl: '/app/costiBase/costiBase.html?version=30'\r\n }\r\n },\r\n // PROFILO ORARIO\r\n {\r\n url: '/profiloOre',\r\n config: {\r\n title: 'profiloOre',\r\n templateUrl: '/app/profiloOre/profiloOre.html?version=30'\r\n }\r\n },\r\n // ATTIVITA' CONTROLLO\r\n {\r\n url: '/attivitaControllo',\r\n config: {\r\n title: 'attivitaControllo',\r\n templateUrl: '/app/attivitaControllo/attivitaControllo.html?version=30'\r\n }\r\n },\r\n // AUTORIZZAZIONE\r\n {\r\n url: '/autorizzazione',\r\n config: {\r\n title: 'autorizzazione',\r\n templateUrl: '/app/autorizzazione/autorizzazioni.html?version=30'\r\n }\r\n },\r\n //T_ATTACH\r\n {\r\n url: '/tAttach',\r\n config: {\r\n title: 'tAttach',\r\n templateUrl: '/app/tAttach/tAttach.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/tAttach/:TAttachId',\r\n config: {\r\n title: 'tAttach',\r\n templateUrl: '/app/tAttach/tAttach.html?version=30'\r\n }\r\n },\r\n //RICHIESTEFERIE\r\n {\r\n url: '/richiestaFerie',\r\n config: {\r\n title: 'richiestaFerie',\r\n templateUrl: '/app/richiestaFerie/richiestaFerie.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/richiestaFerie/:RichiestaFerieId',\r\n config: {\r\n title: 'richiestaFerie',\r\n templateUrl: '/app/richiestaFerie/richiestaFerie.html?version=30'\r\n }\r\n },\r\n //VALIDAZIONEFERIE\r\n {\r\n url: '/validazioneFerie',\r\n config: {\r\n title: 'validazioneFerie',\r\n templateUrl: '/app/validazioneFerie/validazioneFerie.html?version=30'\r\n }\r\n },\r\n {\r\n url: '/richiestaFerie/:ValidazioneFerieId',\r\n config: {\r\n title: 'validazioneFerie',\r\n templateUrl: '/app/validazioneFerie/validazioneFerie.html?version=30'\r\n }\r\n }\r\n ];\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n var controllerId = 'justgageCtrl';\r\n\r\n angular.module('app').controller(controllerId, ['$scope', '$filter', justgageCtrl]);\r\n\r\n\r\n function justgageCtrl($scope, $filter) {\r\n var self = this;\r\n\r\n /*\r\n * Collection of functions to override the default transformation of JustGage parameter options.\r\n * Each function should return a value acceptable as a JustGage parameter.\r\n */\r\n self.getOptionValueOverrides = { \r\n customsectors: angular.fromJson,\r\n levelcolors: angular.fromJson,\r\n textrenderer: function (originalFunction) {\r\n if (!originalFunction) {\r\n return undefined;\r\n }\r\n if (angular.isFunction(originalFunction)) {\r\n return originalFunction();\r\n }\r\n return originalFunction;\r\n }\r\n };\r\n\r\n /**\r\n * Transform the string-like option value into a real option that can be passed to JustGage.\r\n * The option name is used to check if there is any override transform function that can be used instead\r\n * of this function's default implementation.\r\n * @param {object} name - The name of the option to transform.\r\n * @param {object} value - The value to transform.\r\n * @returns {object} - The transformed value.\r\n */\r\n self.getOptionValue = function (name, value) {\r\n if (name == 'levelcolors') \r\n value = value.replace(/'/g, '\"'); \r\n \r\n var overrideFunction = self.getOptionValueOverrides[name];\r\n if (overrideFunction) {\r\n return overrideFunction(value);\r\n }\r\n if (value === '') {\r\n return undefined;\r\n }\r\n if (value === 'true') {\r\n return true;\r\n }\r\n if (value === 'false') {\r\n return false;\r\n }\r\n\r\n return value;\r\n };\r\n\r\n //Traduzione dal nome proveniente dalla direttiva al nome richiesto dalla libreria \r\n self.getOptionName = function (optionName) {\r\n if (optionName === \"titlefontcolor\") optionName = \"titleFontColor\";\r\n if (optionName === \"valuefontcolor\") optionName = \"valueFontColor\";\r\n if (optionName === \"relativegaugesize\") optionName = \"relativeGaugeSize\";\r\n if (optionName === \"valueminfontsize\") optionName = \"valueMinFontSize\";\r\n if (optionName === \"titleminfontsize\") optionName = \"titleMinFontSize\";\r\n if (optionName === \"labelminfontsize\") optionName = \"labelMinFontSize\";\r\n if (optionName === \"labelminfontsize\") optionName = \"minLabelMinFontSize\";\r\n if (optionName === \"maxlabelminfontsize\") optionName = \"maxLabelMinFontSize\";\r\n if (optionName === \"hidevalue\") optionName = \"hideValue\";\r\n if (optionName === \"hideminmax\") optionName = \"hideMinMax\";\r\n if (optionName === \"hideinnershadow\") optionName = \"hideInnerShadow\";\r\n if (optionName === \"gaugewidthscale\") optionName = \"gaugeWidthScale\";\r\n if (optionName === \"gaugecolor\") optionName = \"gaugeColor\";\r\n if (optionName === \"showinnershadow\") optionName = \"showInnerShadow\";\r\n if (optionName === \"shadowopacity\") optionName = \"shadowOpacity\";\r\n if (optionName === \"shadowsize\") optionName = \"shadowSize\";\r\n if (optionName === \"shadowverticaloffset\") optionName = \"shadowVerticalOffset\";\r\n if (optionName === \"levelcolors\") optionName = \"levelColors\";\r\n if (optionName === \"customsectors\") optionName = \"customSectors\";\r\n if (optionName === \"nogradient\") optionName = \"noGradient\";\r\n if (optionName === \"labelfontcolor\") optionName = \"labelFontColor\";\r\n if (optionName === \"startanimationtTime\") optionName = \"startAnimationTime\";\r\n if (optionName === \"startanimationtype\") optionName = \"startAnimationType\";\r\n if (optionName === \"refreshanimationtime\") optionName = \"refreshAnimationTime\";\r\n if (optionName === \"refreshanimationtype\") optionName = \"refreshAnimationType\";\r\n if (optionName === \"donutstartangle\") optionName = \"donutStartAngle\";\r\n if (optionName === \"formatnumber\") optionName = \"formatNumber\";\r\n if (optionName === \"humanfriendly\") optionName = \"humanFriendly\";\r\n if (optionName === \"humanfriendlydecimal\") optionName = \"humanFriendlyDecimal\";\r\n if (optionName === \"textrenderer\") optionName = \"textRenderer\";\r\n\r\n return optionName;\r\n };\r\n\r\n /**\r\n * Get all option names from the scope, excluding the ones in the given array.\r\n * @param {Array|string} exclude - String or Array of strings containing the names to exclude from the result.\r\n * @returns {Array} - Strings of the valid option names.\r\n */\r\n self.getOptionsNames = function (exclude) {\r\n var optionsNames = [];\r\n var exclusionArray = exclude || [];\r\n // Transform the basic object into an array\r\n if (angular.isDefined(exclude) && !angular.isArray(exclude)) {\r\n exclusionArray = [exclude];\r\n }\r\n // Add the name to the returning array iif it's not 'this', it doesn't start with a '$' and it is not excluded\r\n angular.forEach($scope, function (el, key) {\r\n if (key !== 'this' && key.substring(0, 1) !== '$') {\r\n optionsNames.push(key);\r\n }\r\n });\r\n\r\n return optionsNames;\r\n };\r\n\r\n /**\r\n * Get all options which have a defined value.\r\n * @returns {object} - Object of valid options.\r\n */\r\n self.getDefinedOptions = function () {\r\n var options = {};\r\n var optionNames = self.getOptionsNames();\r\n angular.forEach(optionNames, function (el) {\r\n if (el !== 'this' && el.substring(0, 1) !== '$' && $scope[el]) {\r\n\r\n options[self.getOptionName(el)] = self.getOptionValue(el, $scope[el]);\r\n }\r\n });\r\n\r\n return options;\r\n };\r\n }\r\n})();\r\n","// app/studente/classi.js\r\n\r\n(function () {\r\n\t'use strict';\r\n\tvar controllerId = 'attach';\r\n\tangular.module('app').controller(controllerId, ['common', 'bootstrap.dialog', '$routeParams', '$uibModal', 'datacontext', 'sectionMenu', 'filterFilter', attach]);\r\n\r\n\tfunction attach(common, bDialog, $routeParams, modal, datacontext, sectionMenu, filterFilter) {\r\n\t\tvar getLogFn = common.logger.getLogFn;\r\n\t\tvar log = getLogFn(controllerId);\r\n\t\tvar logError = getLogFn(controllerId, 'logError');\r\n\t\tvar logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n\t\tvar vm = this;\r\n\t\tvm.title = 'Allegati';\r\n\t\tvm.view = 'list'; //Opzione list or detail\r\n\t\tvm.setView = setView;\r\n\t\tvm.sectionMenu = sectionMenu.setSection(vm.title);\r\n\r\n\t\tvm.objName = \"attach\"; //Utilizzato per pannello authorization\r\n\t\tvm.authorization = {};\r\n\t\tvm.showObjPanel = false;\r\n\t\tvm.record = {};\r\n\t\tvm.records = [];\r\n\t\tvm.countRecords = 0;\r\n\t\tvm.index = 0;\r\n\t\tvm.custom = false;\r\n\r\n\t\tvm.addDisabled = false;\r\n\t\tvm.exportDisabled = false;\r\n\t\tvm.pageSize = 30;\r\n\t\tvm.page = 1;\r\n\t\tvm.loading = false;\r\n\r\n\t\t//Elenco per Ordinamento\r\n\t\tvm.list = {};\r\n\t\tvm.list.ordine = ['Riferimento', 'Tipo Documento'];\r\n\t\tvm.ordine = vm.list.ordine[0];\r\n\t\tvm.selectOrdine = function (item) {\r\n\t\t\tvm.ordine = item;\r\n\t\t};\r\n\r\n\t\tvm.getRecord = getRecord;\r\n\r\n\r\n\r\n\t\t//Filtro\r\n\t\tvm.filter = {};\r\n\t\tvm.fTAttachId = 0;\r\n\t\tvm.fTSourceId = 0;\r\n\t\tvm.filter.bAttivo = 1;\r\n\t\tvm.filter.codiceProgetto = 0;\r\n\t\tvm.filter.tAttachId = vm.fTAttachId;\r\n\t\tvm.filter.tSourceId = vm.fTSourceId;\r\n\t\t\r\n\r\n\r\n\t\t//Elenchi per filtri e finestra modale di Create\r\n\t\tvm.tAttach = [];\r\n\t\tvm.tSource = [];\r\n\r\n\t\t//Metodi su interfaccia\r\n\t\tvm.cerca = cerca;\r\n\t\tvm.activated = false;\r\n\t\tvm.loadMore = getAllByFilter;\r\n\t\tvm.loadAll = getAll;\r\n\r\n\t\tvm.goNext = goNext;\r\n\t\tvm.goPrev = goPrev;\r\n\r\n\r\n\t\tvm.get = getRecord;\r\n\t\tvm.add = addModal;\r\n\t\tvm.update = updateItem;\r\n\t\tvm.delete = deleteItem;\r\n\t\tvm.getTAttach = getTAttach;\r\n\r\n\t\t// ---- ACTIVATE -------\r\n\t\tactivate();\r\n\r\n\t\tfunction activate() {\r\n\t\t\tvar promises = [getTSource(), getTAttach(), getAuthorization()];\r\n\t\t\tcommon.activateController(promises, controllerId)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\r\n\t\t\t\t\t\t\t\tif ($routeParams.ClasseId != null) {\r\n\t\t\t\t\t\t\t\t\tsetView('detail');\r\n\t\t\t\t\t\t\t\t\tgetRecord($routeParams.ClasseId, 0);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t//****************************************************\r\n\t\t// METODI \r\n\t\t//****************************************************\r\n\t\tfunction setView(view) {\r\n\t\t\treturn vm.view = view;\r\n\t\t}\r\n\r\n\t\tfunction cerca() {\r\n\t\t vm.activated = true;\r\n\t\t\tvm.records = [];\r\n\t\t\tvm.countRecords = 0;\r\n\t\t\tvm.page = 1;\r\n\t\t\tvm.filter.tSourceId = vm.fTSourceId == null ? 0 : vm.fTSourceId;\r\n\t\t\tvm.filter.tAttachId = vm.fTAttachId == null ? 0 : vm.fTAttachId;\r\n\r\n\r\n\t\t\tvm.loading = false;\r\n\t\t\tcountByFilter();\r\n\t\t\treturn getAllByFilter();\r\n\t\t}\r\n\r\n\t\tfunction countByFilter() {\r\n\t\t\treturn datacontext.attach_countAll('', vm.filter.tSourceId, vm.record.Id, vm.filter.tAttachId)\r\n\t\t\t\t\t\t.then(function (data) {\r\n\t\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t\tvm.countRecords = data;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAllByFilter() {\r\n\t\t\tif (vm.loading === true) return;\r\n\r\n\t\t\tif (vm.countRecords == 0) countByFilter();\r\n\t\t\telse if (vm.countRecords <= vm.records.length) return;\r\n\r\n\t\t\tvm.loading = true;\r\n\t\t\treturn datacontext.attach_getAll(vm.pageSize, vm.page, '', vm.filter.tSourceId, vm.record.Id, vm.filter.tAttachId, vm.ordine)\r\n\t\t\t\t\t.then(function (data) {\r\n\t\t\t\t\t\tif (data.constructor === Array) {\r\n\t\t\t\t\t\t\tvm.page++;\r\n\t\t\t\t\t\t\tdata.forEach(function (item) {\r\n\t\t\t\t\t\t\t\tvm.records.push(item);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.loading = false;\r\n\t\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAll() {\r\n\t\t\tif (vm.records.length < vm.countRecords) {\r\n\t\t\t\tgetAllByFilter().then(function () { getAll(); });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getAuthorization() {\r\n vm.addDisabled = true;\r\n \r\n\t\t\treturn datacontext.authorization_get(vm.objName)\r\n\t\t\t\t\t.then(function (data) {\r\n\t\t\t\t\t\tvm.authorization = data;\r\n\t\t\t\t\t\tvm.addDisabled = !vm.authorization.bInsert;\r\n\t\t\t\t\t});\r\n }\r\n\r\n\t\tfunction getRecord(id, index) {\r\n\t\t\treturn datacontext.attach_get(id).then(function (data) {\r\n\t\t\t\tvm.index = index;\r\n\t\t\t\tvm.record = data;\r\n\r\n\t\t\t\tsetView('detail');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction goNext() {\r\n\t\t\tif (vm.index + 1 >= vm.countRecords) return;\r\n\t\t\tif (vm.index + 1 >= vm.records.length && vm.index + 1 < vm.countRecords) {\r\n\t\t\t\tgetByFilter();\r\n\t\t\t}\r\n\t\t\tif (!vm.records) return;\r\n\r\n\t\t\tvm.index++;\r\n\t\t\treturn getRecord(vm.records[vm.index].Id, vm.index);\r\n\t\t}\r\n\r\n\t\tfunction goPrev() {\r\n\t\t\tif (vm.index == 0) return;\r\n\t\t\tif (!vm.records) return;\r\n\r\n\t\t\tvm.index--;\r\n\r\n\t\t\treturn getRecord(vm.records[vm.index].Id, vm.index);\r\n\t\t}\r\n\r\n\r\n\t\tfunction addRecord(id) {\r\n\t\t\treturn datacontext.attach_get(id).then(function (data) {\r\n\t\t\t\tvm.records.push(data);\r\n\t\t\t\tvm.countRecords++;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction updateItem() {\r\n\t\t\treturn datacontext.attach_update(vm.record).then(function (data) {\r\n\r\n\t\t\t\tif (data == \"400\") return logError('Errore cancellazione dati [' + data + ']');\r\n\r\n\t\t\t\tvm.records[vm.index] = data;\r\n\t\t\t\tlogSuccess('Record Salvato ');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction deleteItem(item) {\r\n\t\t\tvar msg = ' Allegato: ' + item.Name + ' (' + item.TSource + ' - ' + item.Source + ')';\r\n\t\t\tbDialog.deleteDialog(msg).then(function () {\r\n\t\t\t\treturn datacontext.attach_delete(item.Id).then(function (data) {\r\n\t\t\t\t\tif (data != \"204\") return logError('Errore cancellazione dati [' + data + ']');\r\n\r\n\t\t\t\t\tvar index = vm.records.indexOf(item)\r\n\t\t\t\t\tvm.records.splice(index, 1);\r\n\t\t\t\t\tvm.countRecords--;\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\t\t\r\n\r\n\t\t//Elenchi Parametri\r\n\t\tfunction getTSource() {\r\n\t\t\treturn datacontext.tSource_getAllList().then(function (data) {\r\n\t\t\t\treturn vm.tSource = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getTAttach() {\r\n\t\t\tvar tSourceId = vm.fTSourceId;\r\n\t\t\treturn datacontext.tAttach_getAllList('', vm.fTSourceId, 0, 0).then(function (data) {\r\n\t\t\t\treturn vm.tAttach = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//****************************************************\r\n\t\t// OPEN MODAL DIALOG\r\n\t\t//****************************************************\r\n function addModal(item) {\r\n\t\t\tvar modalInstance = modal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/attach/modal/attachAdd.html?version=30',\r\n\t\t\t\tcontroller: 'attachAdd',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\ttSource: function () {\r\n\t\t\t\t\t\treturn vm.tSource;\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttSourceId: function () {\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttSourceCode: function () {\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsource: function () {\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsourceId: function () {\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttAttach: function () {\r\n\t\t\t\t\t\treturn vm.tAttach;\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttAttachId: function () {\r\n\t\t\t\t\t\treturn null;\r\n },\r\n attach: function () {\r\n return item;\r\n }\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (!returnItem) return logError('errore di creazione! ');\r\n\r\n\t\t\t\tlogSuccess('Dato salvato con successo! ');\r\n\t\t\t\taddRecord(returnItem.Id);\r\n\t\t\t}, function () {\r\n\t\t\t\t//log('Modal dismissed at: ' + new Date());\r\n\t\t\t});\r\n };\r\n\r\n //******************** Metodi per Attach2\r\n /*\r\n function getListAttach(id) {\r\n if (!id) return;\r\n return datacontext.attach_getAllCND(0, 0, 'vm.cndProgetto.UID', 'vm.record.UID', 'TSourceCode', 0, id, vm.fAttach.TAttachId, '').then(function (data) {\r\n vm.list.b_attach = true;\r\n if (!$.isNumeric(data)) vm.list.attach = data;\r\n\r\n return datacontext.tAttach_getAll(0, 0, 'TSourceCode', 0, '', 0, '').then(function (data) {\r\n\r\n vm.tAttach_Needed = data;\r\n vm.tAttach_Needed.forEach(function (item_TA) {\r\n\r\n var myrec = _.find(vm.list.attach, { 'TAttachId': item_TA.Id });\r\n\r\n if (typeof (myrec) == 'undefined') {\r\n if (typeof (vm.list.attach) == 'undefined') vm.list.attach = [];\r\n var att = {};\r\n att.TAttachId = item_TA.Id;\r\n att.TAttach = item_TA.Name;\r\n vm.list.attach.push(att);\r\n }\r\n\r\n });\r\n });\r\n\r\n return vm.list.attach;\r\n });\r\n }\r\n\r\n function getTAttachNeeded(code) {\r\n if (!code) return;\r\n return datacontext.tAttach_getAll(0, 0, code, 0, '', 0, '').then(function (data) {\r\n\r\n return vm.tAttach_Needed = data;\r\n });\r\n }\r\n\r\n\r\n // ATTACH2\r\n function addAttach2(tAttachId, item) {\r\n var recTSource = { Id: vm.tSource.Id, Name: vm.tSource.Name }\r\n var recSource = { Id: vm.record.Id, Name: vm.record.RagioneSociale }\r\n\r\n var modalInstance = modal.open({\r\n templateUrl: '/app/attach/modal/attachAdd2.html?version=30',\r\n controller: 'attachAdd2',\r\n resolve: {\r\n tSource: function () {\r\n return [recTSource];\r\n },\r\n tSourceCode: function () {\r\n return vm.tSource.Code;\r\n },\r\n tSourceId: function () {\r\n return vm.tSource.Id;\r\n },\r\n source: function () {\r\n return [recSource];\r\n },\r\n sourceId: function () {\r\n return recSource.Id;\r\n },\r\n tAttach: function () {\r\n return vm.tAttach_Needed;\r\n },\r\n tAttachId: function () {\r\n return tAttachId;\r\n },\r\n attach: function () {\r\n return item;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"406\") return logError('Errore: tipologia di allegato non permessa! ');\r\n if (returnItem == \"400\") return logError('Errore registrazione dati [' + returnItem + ']');\r\n\r\n logSuccess('Dato salvato con successo! ');\r\n getListAttach(vm.record.Id);\r\n //vm.record.stat_numAttach = vm.record.stat_numAttach + 1;\r\n }, function () {\r\n //log('Modal dismissed at: ' + new Date());\r\n });\r\n };\r\n */\r\n\r\n\r\n\r\n\r\n\t}\r\n})();\r\n","// app/giustificativi/giustificativo.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'autorizzazione';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', autorizzazioneFn]);\r\n\r\n function autorizzazioneFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = 'Autorizzazioni';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection(vm.title); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = false;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER'); \r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ruoli = [];\r\n vm.list.user = [];\r\n vm.list.ordine = ['utente','ruolo'];\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n };\r\n\r\n //Elenchi dettaglio \r\n \r\n //Filtro\r\n vm.filter = {};\r\n\r\n vm.fUserId = 0;\r\n vm.fRoleId = 0;\r\n vm.fAreaId = -1;\r\n vm.filter.userId = vm.fUserId;\r\n vm.filter.roleId = vm.fRoleId;\r\n vm.filter.areaId = vm.fAreaId;\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n\r\n //Gestione giustificativo \r\n vm.add = addAutorizzazione;\r\n vm.edit = editAutorizzazione;\r\n vm.delete = deleteAutorizzazione;\r\n \r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getUsers(), getRuoli()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n\r\n vm.filter.userId = vm.fUserId == null ? 0 : vm.fUserId;\r\n vm.filter.roleId = vm.fRoleId == null ? 0 : vm.fRoleId;\r\n vm.filter.areaId = vm.fAreaId == null ? -1 : vm.fAreaId;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.authorization_countByFilter(vm.filter.userId, vm.filter.roleId).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.authorization_getAllByFilter(vm.pageSize, vm.page, vm.filter.userId, vm.filter.roleId, vm.ordine).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n data.forEach(function (item) {\r\n item.showCosti = (item && ((item.iTags & 2) == 2));\r\n item.showProfiliOrari = (item && ((item.iTags & 4) == 4));\r\n item.showTeam = (item && ((item.iTags & 8) == 8));\r\n vm.records.push(item);\r\n });\r\n //vm.records.push.apply(vm.records, data); \r\n }\r\n console.info('autorizzazioni', vm.records);\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getUsers() {\r\n return datacontext.user_getAllList().then(function (data) {\r\n return vm.list.user = data;\r\n });\r\n }\r\n\r\n function getRuoli() {\r\n return datacontext.role_getAllList().then(function (data) {\r\n return vm.list.ruoli = data;\r\n });\r\n }\r\n\r\n function addAutorizzazione() {\r\n var modalAutorizzazione = {};\r\n modalAutorizzazione.Id = 0; // devo aggiungere un nuovo record e sappiamo che ogni nuovo record è identificato da un Id pari a 0\r\n \r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/autorizzazione/modal/autorizzazioneAddEdit.html?version=30', // utilizzo la stessa modale sia per aggiungere che per modificare \r\n controller: 'autorizzazioneAddEdit',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n autorizzazione: function () { // in questo caso passiamo un solo oggetto che si chiama 'giustificativo' che ha come valore modalIncontro\r\n return modalAutorizzazione;\r\n },\r\n users: function () {\r\n return vm.list.user;\r\n },\r\n roles: function () {\r\n return vm.list.ruoli;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError('Errore durante l\\'inserimento del dato '); // analizza l'oggetto tornato 'returnItem' = 'giustificativoAddEdit.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n logSuccess('Autorizzazione aggiunta con successo');\r\n cerca(); //Aggiorno i dati in visualizzazione\r\n });\r\n }\r\n\r\n function editAutorizzazione(item, index) {\r\n var modalAutorizzazione = {};\r\n angular.copy(item, modalAutorizzazione);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/autorizzazione/modal/autorizzazioneAddEdit.html?version=30', // utilizzo la stessa modale sia per aggiungere che per modificare \r\n controller: 'autorizzazioneAddEdit',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n autorizzazione: function () { // in questo caso passiamo un solo oggetto che si chiama 'giustificativo' che ha come valore modalIncontro\r\n return modalAutorizzazione;\r\n },\r\n users: function () {\r\n return vm.list.user;\r\n },\r\n roles: function () {\r\n return vm.list.ruoli;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError('Errore durante la modifica del dato '); // analizza l'oggetto tornato 'returnItem' = 'giustificativoAddEdit.result'\r\n logSuccess('Dati salvati con successo');\r\n cerca(); //Aggiorno i dati in visualizzazione\r\n });\r\n }\r\n\r\n function deleteAutorizzazione(item) {\r\n var msg = \"l'autorizzazione \" + item.Id;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.authorization_delete(item.Id).then(function (data) {\r\n if (!data) return logError('Errore durante la rimozione del dato');\r\n logSuccess('Autorizzazione eliminata con successo');\r\n var index = vm.records.indexOf(item)\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n });\r\n });\r\n }\r\n }\r\n})();\r\n","// app/avanzamentoCommessa/avanzamentoCommesse.js\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'avanzamentoCommessa';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$routeParams', '$filter', '$location', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', avanzamentoCommessaFn]);\r\n\r\n function avanzamentoCommessaFn($rootScope, $scope, $routeParams, $filter, $location, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = $translate.instant('AvanzamentiCommesse');\r\n vm.sectionMenu = sectionMenu.setSection('Avanzamenti Commesse'); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0; \r\n vm.exportDisabled = true;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.readonly = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.personale = $rootScope.isAuthorized('PERSONALE');\r\n vm.capoSezione = $rootScope.isAuthorized('CAPOSEZIONE');\r\n vm.utente = $rootScope.isAuthorized('USER');\r\n vm.addDisabled = true;\r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Codice', 'Titolo', 'Stato', 'Data aggiornamento'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[3];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n vm.item = {};\r\n\r\n vm.list.attivita = [];\r\n vm.list.commesseSezioni = [];\r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.stato = vm.fStato = -2;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n vm.filter.cliente = vm.fCliente = 0;\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n\r\n //attivita\r\n vm.getListAttivita = getListAttivita;\r\n\r\n //commesseSezioni\r\n vm.getListCommesseSezioni = getListCommesseSezioni;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getListClienti()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n cerca();\r\n });\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.stato = vm.fStato == null ? 0 : vm.fStato;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n vm.filter.cliente = vm.fCliente == null ? 0 : vm.fCliente;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.commessa_countAllForTimeSheet(vm.filter.ricerca, vm.filter.cliente, vm.filter.stato).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.commessa_getAllForTimeSheet(vm.pageSize, vm.page, vm.filter.ricerca, vm.filter.cliente, vm.filter.stato, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data);\r\n }\r\n vm.loading = false;\r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n //Clienti\r\n function getListClienti() {\r\n return datacontext.cliente_getAllList().then(function (data) {\r\n return vm.list.clienti = data;\r\n });\r\n }\r\n\r\n //Attivita\r\n function getListAttivita(commessa) {\r\n return datacontext.attivita_getAll(commessa.Id).then(function (data) {\r\n commessa.showDetail = !commessa.showDetail;\r\n return commessa.attivita = data;\r\n });\r\n }\r\n\r\n //Commesse sezioni\r\n function getListCommesseSezioni(commessa) { \r\n return datacontext.commessaSezione_getAll(commessa.Id, 0).then(function (data) {\r\n commessa.showDetail = !commessa.showDetail;\r\n return commessa.sezioni = data;\r\n });\r\n }\r\n }\r\n})();\r\n","// app/attivitaControllo/attivitaControllo.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'attivitaControllo';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', attivitaControlloFn]);\r\n\r\n function attivitaControlloFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = 'Attività';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection('AttivitaControllo'); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = true;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n vm.tableHeight = 0;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.personale = $rootScope.isAuthorized('PERSONALE');\r\n //vm.sync = true;\r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Sezione', '% Ore Spese Sezione'];\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n \r\n //Filtro\r\n vm.filter = {}; \r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n \r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n if (vm.fRicerca.trim().length < 3) {\r\n logError('Digita almeno 3 caratteri nella casella di ricerca');\r\n return;\r\n } \r\n\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1; \r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n vm.tableHeight = 0;\r\n return datacontext.attivitaControllo_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n\r\n if (vm.countRecords < 10)\r\n vm.tableHeight = vm.countRecords * 56;\r\n else\r\n vm.tableHeight = 540;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return; \r\n\r\n vm.loading = true;\r\n return datacontext.attivitaControllo_getAllByFilter(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false;\r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n } \r\n \r\n }\r\n})();\r\n","// app/azienda/clienti.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'azienda';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$location', '$routeParams', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', aziendaFn]);\r\n\r\n function aziendaFn($rootScope, $scope, $location, $routeParams, common, bDialog, $uibModal, datacontext, sectionMenu) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this, onRouteChangeOff;\r\n vm.title = 'Aziende';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection(vm.title);\r\n vm.record = {};\r\n vm.records = [];\r\n vm.anagrafica = {};\r\n vm.countRecords = 0;\r\n vm.index = 0; \r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n\r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Ragione sociale'];\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n vm.item = {};\r\n vm.changed = false;\r\n vm.change = 0;\r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n\r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll;\r\n vm.getRecord = getRecord;\r\n vm.get = getRecord;\r\n vm.add = addAzienda;\r\n\r\n vm.confirmRoute = confirmRoute;\r\n\r\n vm.update = updateAzienda;\r\n vm.delete = deleteAzienda;\r\n\r\n //datapicker\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n };\r\n \r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.AzendaId != null) {\r\n setView('detail');\r\n getRecord($routeParams.AzendaId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n if (view == 'list')\r\n cerca();\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.azienda_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.azienda_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data);\r\n }\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) {\r\n return datacontext.azienda_get(id).then(function (data) {\r\n vm.index = index;\r\n vm.record = data;\r\n\r\n if (vm.record.DataAttivazione)\r\n vm.record.DataAttivazione = new Date(vm.record.DataAttivazione);\r\n \r\n setView('detail');\r\n });\r\n }\r\n\r\n function addAzienda() {\r\n var modalAzenda = {};\r\n modalAzenda.Id = 0;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/azienda/modal/aziendaAdd.html?version=30',\r\n controller: 'aziendaAdd',\r\n resolve: {\r\n azienda: function () {\r\n return modalAzenda;\r\n } \r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la creazione del dato ');\r\n\r\n logSuccess('Record creato con successo ');\r\n vm.records.push(returnItem);\r\n vm.countRecords++;\r\n });\r\n }\r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog('Modifiche non salvate', 'Sono presenti modifiche non salvate. Vuoi salvare le modifiche?', 'Salva modifiche e procedi', 'Annulla modifiche e procedi').then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.update(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n vm.setView('list');\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError('Compilare i campi obbligatori');\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n vm.setView('list');\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n vm.setView('list');\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n function updateAzienda() {\r\n return datacontext.azienda_update(vm.record).then(function (data) {\r\n if (data) {\r\n if (vm.recordForm)\r\n vm.recordForm.$setPristine();\r\n logSuccess('Dato salvato');\r\n }\r\n else {\r\n logError('Impossibile salvare il dato');\r\n }\r\n });\r\n } \r\n\r\n function deleteAzienda(item) {\r\n var msg = \"l\\'azienda \" + item.RagioneSociale;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.azienda_delete(item.Id).then(function (data) {\r\n if (!data) return logError('Errore durante la rimozione del dato');\r\n logSuccess('Azenda eliminata con successo ');\r\n var index = vm.records.indexOf(item);\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n });\r\n });\r\n }\r\n\r\n }\r\n})();\r\n","// app/cambioPassword/cambioPassword.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'cambioPassword';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', cambioPasswordFn]);\r\n\r\n function cambioPasswordFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.record = account_get();\r\n vm.save = account_save;\r\n\r\n\r\n \r\n\r\n function account_get() {\r\n datacontext.account_get().then(function (data) {\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n if (vm.super)\r\n $translate.use('it'); \r\n return vm.record = data;\r\n });\r\n }\r\n\r\n function account_save() {\r\n datacontext.account_changePassword(vm.record).then(function (result) {\r\n vm.currentLanguage = $translate.proposedLanguage() || $translate.use(); \r\n if (result.status == 200) {\r\n vm.record.pwdOld = '';\r\n vm.record.pwdNew = '';\r\n vm.record.pwdConfirm = '';\r\n $('#changePassword').modal('hide');\r\n logSuccess($translate.instant('Operazione effettuata con successo'));\r\n } else {\r\n switch (vm.currentLanguage) {\r\n case 'it': logError(result.data.Message);\r\n break;\r\n case 'en': logError(result.data.Message_en);\r\n break;\r\n default: logError(result.data.Message_en);\r\n break;\r\n }\r\n \r\n }\r\n });\r\n }\r\n\r\n $('#changePassword').on('hidden.bs.modal', function (e) {\r\n $(this)\r\n .find(\"input,textarea,select\")\r\n .val('')\r\n .end()\r\n .find(\"input[type=checkbox], input[type=radio]\")\r\n .prop(\"checked\", \"\")\r\n .end();\r\n\r\n vm.record = account_get();\r\n });\r\n\r\n\r\n }\r\n})();\r\n","// app/aziendaPartner/aziendePartner.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'aziendaPartner';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$location', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', aziendaPartnerFn]);\r\n\r\n function aziendaPartnerFn($rootScope, $scope, $location, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n \r\n var vm = this, onRouteChangeOff;\r\n vm.title = 'Partner';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection('AziendaPartner'); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.anagrafica = {};\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = $rootScope.isAuthorized('USER');\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.gestore = $rootScope.isAuthorized('PERSONALE');\r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Ragione Sociale', 'Partita IVA'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n vm.item = {};\r\n vm.changed = false;\r\n vm.change = 0;\r\n\r\n //Elenchi dettaglio\r\n vm.list.province = [];\r\n vm.list.comuniSedeLegale = [];\r\n vm.list.comuniSedeOperativa = [];\r\n vm.list.dipendenti = [];\r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n vm.add = addAziendaPartner;\r\n\r\n vm.confirmRoute = confirmRoute;\r\n\r\n vm.getComuniSedeLegale = getComuniSedeLegale;\r\n vm.getComuniSedeOperativa = getComuniSedeOperativa;\r\n vm.update = updateAziendaPartner;\r\n vm.delete = deleteAziendaPartner;\r\n\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getProvince()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.AziendaPartnerId != null) {\r\n setView('detail');\r\n getRecord($routeParams.AziendaPartnerId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n if (view == 'list')\r\n cerca();\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.aziendaPartner_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.aziendaPartner_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n\r\n if (vm.gestore || vm.super) getProvince();\r\n\r\n return datacontext.aziendaPartner_get(id).then(function (data) { \r\n vm.index = index;\r\n vm.record = data;\r\n\r\n if (vm.record.SedeLegaleProvinciaId > 0)\r\n getComuniSedeLegale(vm.record.SedeLegaleProvinciaId);\r\n if (vm.record.SedeOperativaProvinciaId > 0)\r\n getComuniSedeOperativa(vm.record.SedeOperativaProvinciaId);\r\n\r\n getDipendenti(id);\r\n \r\n setView('detail');\r\n });\r\n } \r\n\r\n function addAziendaPartner() {\r\n var modalAziendaPartner = {};\r\n modalAziendaPartner.Id = 0; \r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/aziendaPartner/modal/aziendaPartnerAdd.html?version=30',\r\n controller: 'aziendaPartnerAdd',\r\n resolve: {\r\n aziendaPartner: function () {\r\n return modalAziendaPartner;\r\n },\r\n province: function () {\r\n return vm.list.province;\r\n },\r\n comuni: function () {\r\n return vm.list.comuniSedeLegale;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la creazione del dato'));\r\n\r\n logSuccess($translate.instant('Record creato con successo'));\r\n vm.records.push(returnItem);\r\n vm.countRecords++;\r\n });\r\n }\r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog($translate.instant('Modifiche non salvate'), $translate.instant('Sono presenti modifiche non salvate'), $translate.instant('Salva modifiche e procedi'), $translate.instant('Annulla modifiche e procedi')).then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.update(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/aziendaPartner\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError($translate.instant('Compilare i campi obbligatori'));\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/aziendaPartner\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n $location.url(\"/aziendaPartner\");\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n //Get list\r\n function updateAziendaPartner() {\r\n return datacontext.aziendaPartner_update(vm.record).then(function (data) {\r\n if (data) {\r\n if (vm.recordForm)\r\n vm.recordForm.$setPristine();\r\n logSuccess($translate.instant('Dato salvato'));\r\n }\r\n else {\r\n logError($translate.instant('Impossibile salvare il dato'));\r\n } \r\n });\r\n }\r\n\r\n function getProvince() {\r\n if (vm.list.province.length > 0) return;\r\n\r\n datacontext.arrProvincie().then(function (data) {\r\n vm.list.province = data;\r\n });\r\n }\r\n\r\n function getComuniSedeLegale(idprov) {\r\n if (!idprov || idprov == 0) return vm.list.comuniSedeLegale = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return vm.list.comuniSedeLegale = data;\r\n });\r\n }\r\n\r\n function getComuniSedeOperativa(idprov) {\r\n if (!idprov || idprov == 0) return vm.list.comuniSedeOperativa = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return vm.list.comuniSedeOperativa = data;\r\n });\r\n }\r\n\r\n function getDipendenti(id) {\r\n return datacontext.dipendente_getAllByAziendaPartner(id).then(function (data) {\r\n return vm.list.dipendenti = data;\r\n });\r\n }\r\n\r\n function deleteAziendaPartner(item) {\r\n var msg = \" \" + $translate.instant('aziendaPartner') + \" \" + item.RagioneSociale;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.aziendaPartner_delete(item.Id).then(function (data) {\r\n if (!data) return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('AziendaPartner eliminata con successo'));\r\n var index = vm.records.indexOf(item);\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n });\r\n });\r\n }\r\n\r\n }\r\n})();\r\n","// app/cliente/clienti.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'cliente';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$location', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', clienteFn]);\r\n\r\n function clienteFn($rootScope, $scope, $location, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this, onRouteChangeOff;\r\n vm.title = $translate.instant('Clienti');\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection('Clienti');\r\n vm.record = {};\r\n vm.records = [];\r\n vm.anagrafica = {};\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = $rootScope.isAuthorized('USER');\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.gestore = $rootScope.isAuthorized('PERSONALE');\r\n\r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Ragione Sociale', 'Partita IVA'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n vm.item = {};\r\n vm.changed = false;\r\n vm.change = 0;\r\n\r\n //Elenchi dettaglio\r\n vm.list.province = [];\r\n vm.list.comuniSedeLegale = [];\r\n vm.list.comuniSedeOperativa = [];\r\n\r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n\r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll;\r\n vm.getRecord = getRecord;\r\n vm.get = getRecord;\r\n vm.add = addCliente;\r\n\r\n vm.confirmRoute = confirmRoute;\r\n\r\n vm.getComuniSedeLegale = getComuniSedeLegale;\r\n vm.getComuniSedeOperativa = getComuniSedeOperativa;\r\n vm.update = updateCliente;\r\n vm.delete = deleteCliente;\r\n\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getProvince()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.ClienteId != null) {\r\n setView('detail');\r\n getRecord($routeParams.ClienteId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n if (view == 'list')\r\n cerca();\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.cliente_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.cliente_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data);\r\n }\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) {\r\n\r\n if (vm.gestore || vm.super) getProvince();\r\n\r\n return datacontext.cliente_get(id).then(function (data) {\r\n vm.index = index;\r\n vm.record = data;\r\n\r\n if (vm.record.SedeLegaleProvinciaId > 0)\r\n getComuniSedeLegale(vm.record.SedeLegaleProvinciaId);\r\n if (vm.record.SedeOperativaProvinciaId > 0)\r\n getComuniSedeOperativa(vm.record.SedeOperativaProvinciaId);\r\n\r\n setView('detail');\r\n });\r\n }\r\n\r\n function addCliente() {\r\n var modalCliente = {};\r\n modalCliente.Id = 0;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/cliente/modal/clienteAdd.html?version=30',\r\n controller: 'clienteAdd',\r\n resolve: {\r\n cliente: function () {\r\n return modalCliente;\r\n },\r\n province: function () {\r\n return vm.list.province;\r\n },\r\n comuni: function () {\r\n return vm.list.comuniSedeLegale;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la creazione del dato'));\r\n\r\n logSuccess($translate.instant('Record creato con successo'));\r\n vm.records.push(returnItem);\r\n vm.countRecords++;\r\n });\r\n }\r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog($translate.instant('Modifiche non salvate'), $translate.instant('Sono presenti modifiche non salvate'), $translate.instant('Salva modifiche e procedi'), $translate.instant('Annulla modifiche e procedi')).then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.update(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/cliente\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError($translate.instant('Compilare i campi obbligatori'));\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/cliente\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n $location.url(\"/cliente\");\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n //Get list\r\n function updateCliente() {\r\n return datacontext.cliente_update(vm.record).then(function (data) {\r\n if (data) {\r\n if (vm.recordForm)\r\n vm.recordForm.$setPristine();\r\n logSuccess($translate.instant('Dato salvato'));\r\n }\r\n else {\r\n logError($translate.instant('Impossibile salvare il dato'));\r\n }\r\n });\r\n }\r\n\r\n function getProvince() {\r\n if (vm.list.province.length > 0) return;\r\n\r\n datacontext.arrProvincie().then(function (data) {\r\n vm.list.province = data;\r\n });\r\n }\r\n\r\n function getComuniSedeLegale(idprov) {\r\n if (!idprov || idprov == 0) return vm.list.comuniSedeLegale = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return vm.list.comuniSedeLegale = data;\r\n });\r\n }\r\n\r\n function getComuniSedeOperativa(idprov) {\r\n if (!idprov || idprov == 0) return vm.list.comuniSedeOperativa = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return vm.list.comuniSedeOperativa = data;\r\n });\r\n }\r\n\r\n function deleteCliente(item) {\r\n var msg = \" \" + $translate.instant('il cliente') + \" \" + item.RagioneSociale;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.cliente_delete(item.Id).then(function (data) {\r\n if (!data) return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Cliente eliminato con successo'));\r\n var index = vm.records.indexOf(item);\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n });\r\n });\r\n }\r\n\r\n }\r\n})();\r\n","// app/commessa/commesse.js\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'commessa';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$routeParams', '$filter', '$location', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', commessaFn]);\r\n\r\n function commessaFn($rootScope, $scope, $routeParams, $filter, $location, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this, onRouteChangeOff;\r\n vm.title = $translate.instant('Commesse');\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection('Commesse'); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0; \r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n vm.enabledPrint = false;\r\n vm.readonly = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.personale = $rootScope.isAuthorized('PERSONALE');\r\n vm.capoSezione = $rootScope.isAuthorized('CAPOSEZIONE');\r\n vm.utente = $rootScope.isAuthorized('USER');\r\n vm.addDisabled = vm.utente;\r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Codice', 'Titolo', 'Stato', 'Data aggiornamento'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[3];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n vm.item = {};\r\n\r\n vm.list.attivita = [];\r\n vm.list.clienti = [];\r\n vm.list.tipoAssegnazione = [];\r\n vm.list.tipoPrestazione = [];\r\n vm.list.budget = [];\r\n vm.list.dipendenti = [];\r\n vm.list.commesseSezioni = [];\r\n vm.list.dipendentiList = [];\r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.stato = vm.fStato = -2;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n vm.filter.cliente = vm.fCliente = 0;\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord;\r\n vm.add = addCommessa;\r\n vm.delete = deleteItem;\r\n vm.update = updateItem;\r\n vm.chiudiCommessa = chiudiCommessa;\r\n vm.riapriCommessa = riapriCommessa;\r\n vm.aggiornaStatoCommessa = aggiornaStatoCommessa;\r\n\r\n vm.confirmRoute = confirmRoute;\r\n\r\n //attivita\r\n vm.getListAttivita = getListAttivita;\r\n vm.addAttivita = addAttivita;\r\n vm.editAttivita = editAttivita;\r\n vm.deleteAttivita = deleteAttivita;\r\n\r\n //budget\r\n vm.addBudget = addBudget;\r\n vm.deleteBudget = deleteBudget;\r\n\r\n //dipendentiCommessa\r\n vm.getListDipendenti = getListDipendenti;\r\n vm.selezionaDipendente = selezionaDipendente;\r\n vm.deleteDipendenteCommessa = deleteDipendenteCommessa;\r\n\r\n //commesseSezioni\r\n vm.getListCommesseSezioni = getListCommesseSezioni;\r\n vm.addCommessaSezione = addCommessaSezione;\r\n vm.editCommessaSezione = editCommessaSezione;\r\n vm.deleteCommessaSezione = deleteCommessaSezione;\r\n\r\n vm.dict_selected_assegnazione = [];\r\n vm.dict_tassegnazione = {};\r\n vm.dict_selected_prestazione = [];\r\n vm.dict_tprestazione = {};\r\n\r\n //report\r\n vm.report = report;\r\n\r\n //datapicker\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n vm.opened2 = vm.opened3 = vm.opened4 = vm.opened5 = vm.opened6 = false;\r\n };\r\n\r\n vm.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened2 = !vm.opened2;\r\n vm.opened = vm.opened3 = vm.opened4 = vm.opened5 = vm.opened6 = false;\r\n };\r\n\r\n vm.open3 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened3 = !vm.opened3;\r\n vm.opened2 = vm.opened = vm.opened4 = vm.opened5 = vm.opened6 = false;\r\n };\r\n\r\n vm.open4 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened4 = !vm.opened4;\r\n vm.opened2 = vm.opened3 = vm.opened = vm.opened5 = vm.opened6 = false;\r\n };\r\n\r\n vm.open5 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened5 = !vm.opened5;\r\n vm.opened2 = vm.opened3 = vm.opened = vm.opened4 = vm.opened6 = false;\r\n };\r\n\r\n vm.open6 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened6 = !vm.opened6;\r\n vm.opened2 = vm.opened3 = vm.opened = vm.opened4 = vm.opened5 = false;\r\n };\r\n\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getListClienti(), getListTipoAssegnazione(), getListTipoPrestazione(), getAllListDipendenti()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.CommessaId != null) {\r\n setView('detail');\r\n getRecord($routeParams.CommessaId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n if (view == 'list')\r\n cerca();\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.stato = vm.fStato == null ? 0 : vm.fStato;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n vm.filter.cliente = vm.fCliente == null ? 0 : vm.fCliente;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.commessa_countAll(vm.filter.ricerca, vm.filter.cliente, vm.filter.stato).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.commessa_getAllByFilter(vm.pageSize, vm.page, vm.filter.ricerca, vm.filter.cliente, vm.filter.stato, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) {\r\n vm.list.attivita = [];\r\n vm.list.budget = [];\r\n return datacontext.commessa_get(id).then(function (data) {\r\n vm.index = index;\r\n\r\n if (data.DataApertura)\r\n data.DataApertura = new Date(data.DataApertura);\r\n if (data.DataChiusura)\r\n data.DataChiusura = new Date(data.DataChiusura);\r\n if (data.DataAggiornamento)\r\n data.DataAggiornamento = new Date(data.DataAggiornamento);\r\n if (data.DataScadenza)\r\n data.DataScadenza = new Date(data.DataScadenza);\r\n if (data.DataRev)\r\n data.DataRev = new Date(data.DataRev);\r\n\r\n if (data.Stato == 2) //commessa chiusa\r\n vm.readonly = true;\r\n else\r\n vm.readonly = false;\r\n\r\n if (data.Budget.length > 0) {\r\n data.Budget.forEach(function (o) {\r\n var obj = { Id: o.Id, Name: o.Budget + ' (' + $filter('date')(o.Data, 'dd/MM/yyyy') + ')' };\r\n vm.list.budget.push(obj);\r\n });\r\n }\r\n\r\n if (data.TassegnazioneName!=null)\r\n //popolo le selezioni di tipo assegnazione\r\n vm.dict_selected_assegnazione = data.TassegnazioneName.split(',');\r\n //popolo le selezioni di tipo prestazione\r\n if (data.TprestazioneName != null)\r\n vm.dict_selected_prestazione = data.TprestazioneName.split(',');\r\n\r\n vm.record = data;\r\n\r\n if (vm.utente)\r\n checkTeamLeaderCommessa(id);\r\n\r\n if (!$rootScope.bSezioni)\r\n getListAttivita(id);\r\n else\r\n getListCommesseSezioni(id);\r\n getListDipendenti(id);\r\n\r\n setView('detail');\r\n });\r\n }\r\n\r\n function addCommessa() {\r\n var modalCommessa = {};\r\n modalCommessa.Id = 0;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/commessaAdd.html?version=30',\r\n controller: 'commessaAdd',\r\n resolve: {\r\n commessa: function () {\r\n return modalCommessa;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante inserimento del dato'));\r\n\r\n logSuccess($translate.instant('Commessa aggiunta con successo'));\r\n $location.url('/commesse/' + returnItem.Id);\r\n });\r\n }\r\n\r\n function updateItem() {\r\n vm.record.TassegnazioneName = vm.dict_selected_assegnazione.join();\r\n vm.record.TprestazioneName = vm.dict_selected_prestazione.join();\r\n\r\n return datacontext.commessa_update(vm.record).then(function (data) {\r\n if (data) {\r\n if (vm.record.DataApertura)\r\n vm.record.DataApertura = new Date(data.DataApertura);\r\n if (vm.record.DataChiusura)\r\n vm.record.DataChiusura = new Date(data.DataChiusura);\r\n if (vm.record.DataAggiornamento)\r\n vm.record.DataAggiornamento = new Date(data.DataAggiornamento);\r\n if (vm.record.DataScadenza)\r\n vm.record.DataScadenza = new Date(data.DataScadenza);\r\n if (data.DataRevisione)\r\n data.DataRevisione = new Date(data.DataRevisione);\r\n\r\n if (vm.recordForm)\r\n vm.recordForm.$setPristine();\r\n\r\n logSuccess($translate.instant('Dati salvati'));\r\n } else {\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n }\r\n });\r\n }\r\n\r\n function deleteItem(item) {\r\n var msg = \" \" + $translate.instant('la commessa') + \" \" + item.Codice;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.commessa_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Impossibile eliminare la commessa') + \" \" + item.Codice);\r\n logSuccess($translate.instant('Commessa eliminata con successo'));\r\n cerca();\r\n });\r\n });\r\n }\r\n\r\n function report(estensione) {\r\n if (vm.loading == true)\r\n return;\r\n\r\n vm.loading = estensione;\r\n datacontext.report_Commessa(vm.record.Id, estensione).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n //if (bPDF)\r\n // var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function checkTeamLeaderCommessa(id) {\r\n return datacontext.commessa_checkTeamLeader(id).then(function (data) {\r\n if (data) {\r\n vm.capoSezione = true;\r\n } else\r\n vm.readonly = true;\r\n \r\n });\r\n }\r\n\r\n function aggiornaStatoCommessa(stato) {\r\n var title = '';\r\n var msg = '';\r\n var conferma = '';\r\n\r\n switch (stato) {\r\n case 0: title = $translate.instant('Commessa in offerta');\r\n msg = $translate.instant('Sei sicuro di voler mettere in offerta la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Commessa in offerta');\r\n break;\r\n case 1:\r\n if (vm.record.Stato == 0 || vm.record.Stato == 3) {\r\n title = $translate.instant('Apri commessa');\r\n msg = $translate.instant('Sei sicuro di voler aprire la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Commessa Aperta');\r\n } else if (vm.record.Stato == 2 || vm.record.Stato == 4) {\r\n title = $translate.instant('Riapri commessa');\r\n msg = $translate.instant('Sei sicuro di voler riaprire la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Commessa Aperta');\r\n }\r\n break;\r\n case 2:\r\n title = $translate.instant('Chiudi commessa');\r\n msg = $translate.instant('Sei sicuro di voler chiudere la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Commessa Chiusa');\r\n break;\r\n case 3:\r\n title = $translate.instant('Sospendi commessa');\r\n msg = $translate.instant('Sei sicuro di voler sospendere la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Commessa Sospesa');\r\n break;\r\n case 4:\r\n title = $translate.instant('Annulla commessa');\r\n msg = $translate.instant('Sei sicuro di voler annullare la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Commessa Annullata');\r\n break;\r\n default: break;\r\n }\r\n\r\n bDialog.confirmationDialog(title, msg, 'OK', $translate.instant('Annulla')).then(function () { //YES\r\n return datacontext.commessa_aggiornaStato(vm.record.Id, stato).then(function (data) {\r\n logSuccess(conferma);\r\n getRecord(vm.record.Id);\r\n });\r\n }, function (btn) { // NO\r\n });\r\n }\r\n\r\n function chiudiCommessa() {\r\n bDialog.confirmationDialog($translate.instant('Chiudi commessa'), $translate.instant('Sei sicuro di voler chiudere la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?', 'OK', $translate.instant('Annulla')).then(function () { //YES\r\n return datacontext.commessa_chiudiCommessa(vm.record).then(function (data) {\r\n logSuccess($translate.instant('Commessa Chiusa'));\r\n getRecord(vm.record.Id);\r\n });\r\n }, function (btn) { // NO\r\n vm.readonly = false;\r\n });\r\n }\r\n\r\n function riapriCommessa() {\r\n bDialog.confirmationDialog($translate.instant('Riapri commessa'), $translate.instant('Sei sicuro di voler riaprire la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?', 'OK', $translate.instant('Annulla')).then(function () { //YES\r\n return datacontext.commessa_riapriCommessa(vm.record).then(function (data) {\r\n logSuccess($translate.instant('Commessa Aperta'));\r\n getRecord(vm.record.Id);\r\n });\r\n }, function (btn) { //NO\r\n vm.readonly = true;\r\n });\r\n }\r\n \r\n\r\n vm.calcolaTotaleSpese = function () {\r\n if (vm.record.CostoOrarioMedio && vm.record.OrePreviste) {\r\n vm.record.TotaleSpesaPrevista = vm.record.CostoOrarioMedio * vm.record.OrePreviste;\r\n vm.record.TotaleSpesaPrevista = parseFloat(vm.record.TotaleSpesaPrevista.toFixed(2));\r\n }\r\n if (vm.record.CostoOrarioMedio && vm.record.OreSpese) {\r\n vm.record.TotaleSpesaEffettiva = vm.record.CostoOrarioMedio * vm.record.OreSpese;\r\n vm.record.TotaleSpesaEffettiva = parseFloat(vm.record.TotaleSpesaEffettiva.toFixed(2));\r\n }\r\n };\r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog($translate.instant('Modifiche non salvate'), $translate.instant('Sono presenti modifiche non salvate'), $translate.instant('Salva modifiche e procedi'), $translate.instant('Annulla modifiche e procedi')).then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.update(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/commesse\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError($translate.instant('Compilare i campi obbligatori'));\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/commesse\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n $location.url(\"/commesse\");\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n function getListClienti() {\r\n return datacontext.cliente_getAllList().then(function (data) {\r\n return vm.list.clienti = data;\r\n });\r\n }\r\n\r\n function getListTipoAssegnazione() {\r\n return datacontext.tipoAssegnazione_getAllList().then(function (data) {\r\n vm.list.tipoAssegnazione = data;\r\n for (var i = 0; i < Object.keys(vm.list.tipoAssegnazione).length; i++) {\r\n var ennesimo = vm.list.tipoAssegnazione[i].Name;\r\n vm.dict_tassegnazione[ennesimo] = vm.list.tipoAssegnazione[i].Name;\r\n }\r\n\r\n return vm.list.tipoAssegnazione;\r\n });\r\n }\r\n function getListTipoPrestazione() {\r\n return datacontext.tipoPrestazione_getAllList().then(function (data) {\r\n vm.list.tipoPrestazione = data;\r\n for (var i = 0; i < Object.keys(vm.list.tipoPrestazione).length; i++) {\r\n var ennesimo = vm.list.tipoPrestazione[i].Name;\r\n vm.dict_tprestazione[ennesimo] = vm.list.tipoPrestazione[i].Name;\r\n }\r\n return vm.list.tipoPrestazione = data;\r\n });\r\n }\r\n //Gestione attivita\r\n function getListAttivita(commessaId) {\r\n return datacontext.attivita_getAll(commessaId).then(function (data) {\r\n vm.list.attivita = data;\r\n calcolaOrePreviste();\r\n vm.calcolaTotaleSpese();\r\n });\r\n }\r\n\r\n function calcolaOrePreviste() {\r\n vm.record.OrePreviste = 0;\r\n vm.list.attivita.forEach(function (o) {\r\n vm.record.OrePreviste += o.OrePreviste;\r\n vm.record.OrePreviste = parseFloat(vm.record.OrePreviste.toFixed(2));\r\n });\r\n }\r\n\r\n function addAttivita() {\r\n var modalAttivita = {};\r\n modalAttivita.Id = 0;\r\n modalAttivita.CommessaId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/attivitaAddEdit.html?version=30',\r\n controller: 'attivitaAddEdit',\r\n resolve: {\r\n attivita: function () {\r\n return modalAttivita;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante inserimento del dato'));\r\n\r\n logSuccess($translate.instant('Attivita aggiunta con successo'));\r\n getListAttivita(vm.record.Id);\r\n });\r\n }\r\n\r\n function editAttivita(item) {\r\n var modalAttivita = {};\r\n angular.copy(item, modalAttivita);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/attivitaAddEdit.html?version=30',\r\n controller: 'attivitaAddEdit',\r\n resolve: {\r\n attivita: function () {\r\n return modalAttivita;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Attivita modificata con successo'));\r\n getListAttivita(vm.record.Id);\r\n });\r\n }\r\n\r\n function deleteAttivita(item) {\r\n var msg = $translate.instant('Lattivita ') + item.Codice + ' - ' + item.Descrizione;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.attivita_delete(item.Id).then(function (data) {\r\n if (!data) return logError($translate.instant('Errore durante la rimozione del dato'));\r\n getListAttivita(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n //Gestione budget\r\n function addBudget() {\r\n var modalBudget = {};\r\n modalBudget.Id = 0;\r\n modalBudget.CommessaId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/budgetAdd.html?version=30',\r\n controller: 'budgetAdd',\r\n resolve: {\r\n budget: function () {\r\n return modalBudget;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante inserimento del dato'));\r\n\r\n logSuccess($translate.instant('Budget aggiunto con successo'));\r\n getRecord(vm.record.Id);\r\n });\r\n }\r\n\r\n\r\n function deleteBudget(id) {\r\n var index = _.findIndex(vm.record.Budget, function (o) {\r\n return o.Id === id;\r\n });\r\n\r\n var item = {};\r\n if (index != -1)\r\n item = vm.record.Budget[index];\r\n\r\n var msg = $translate.instant('il') + \" \" + \"bugdet \" + item.Budget + \" \" + $translate.instant('del') + \" \" + $filter('date')(item.Data, 'dd/MM/yyyy');\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.budgetCommessa_delete(id).then(function (data) {\r\n if (!data) return logError($translate.instant('Errore durante la rimozione del dato'));\r\n getRecord(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n\r\n //Gestione membri team\r\n //getListDipendenti (popolare i dipendenti per la commessa)\r\n function getListDipendenti(id) {\r\n if (!id) return [];\r\n var temp = [];\r\n //Questo metodo serve nella schermata dettaglio team \r\n return datacontext.dipendentiCommessa_getAll(id, 0).then(function (data) {\r\n if (vm.dipendentiAttivi == true) {\r\n data.forEach(function (item) {\r\n if (item.attivo == true) {\r\n temp.push(item);\r\n }\r\n });\r\n\r\n return vm.list.dipendenti = temp;\r\n }\r\n else\r\n return vm.list.dipendenti = data;\r\n });\r\n }\r\n\r\n function getAllListDipendenti() {\r\n return datacontext.dipendente_getAllList().then(function (data) {\r\n return vm.list.dipendentiList = data;\r\n });\r\n }\r\n\r\n //getDipendenti (popolare la modale dei dipendenti)\r\n function getDipendente(id) {\r\n if ($rootScope.isAuthorized('USER') || !id)\r\n id = $rootScope.id ? $rootScope.id : 0;\r\n\r\n return datacontext.dipendente_get(id).then(function (data) {\r\n vm.dipendente = data;\r\n });\r\n }\r\n\r\n // Selezione dipendente\r\n function selezionaDipendente() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/commessaMembroSelect.html?version=30',\r\n controller: 'commessaMembroSelect',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n commessaId: function () {\r\n return vm.record.Id;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"409\")\r\n return logError($translate.instant('Dipendente gia presente'));\r\n else if (returnItem == \"300\")\r\n return logError($translate.instant('Leader gia presente'));\r\n else if (returnItem == \"400\" || returnItem == \"404\")\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n else {\r\n logSuccess($translate.instant('Dati salvati'));\r\n return getListDipendenti(vm.record.Id);\r\n }\r\n });\r\n }\r\n\r\n function deleteDipendenteCommessa(item) {\r\n if (vm.capoSezione) {\r\n if (item.ruolo == \"L\") {\r\n logError($translate.instant('Non e possibile eliminare il leader'));\r\n return;\r\n }\r\n }\r\n\r\n var msg = $translate.instant('il dipendente') + \" \" + item.dipendente + \" \" + $translate.instant('dalla commessa') + \" \" + vm.record.Codice + \" - \" + vm.record.Titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dipendentiCommessa_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Dipendente eliminato con successo'));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n getListDipendenti(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n //Gestione commesse sezioni\r\n function getListCommesseSezioni(id) {\r\n if (!id) return []; \r\n return datacontext.commessaSezione_getAll(id, 0).then(function (data) {\r\n return vm.list.commesseSezioni = data;\r\n });\r\n }\r\n\r\n function addCommessaSezione() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/commessaSezioneAdd.html?version=30',\r\n controller: 'commessaSezioneAdd',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n commessaId: function () {\r\n return vm.record.Id;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"409\")\r\n return logError($translate.instant('Centro di costo gia presente'));\r\n else if (returnItem == \"400\" || returnItem == \"404\")\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n else {\r\n logSuccess($translate.instant('Dati salvati'));\r\n return getListCommesseSezioni(vm.record.Id);\r\n }\r\n });\r\n }\r\n\r\n function editCommessaSezione(item) {\r\n var modalSezione = {};\r\n angular.copy(item, modalSezione);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/commessaSezioneEdit.html?version=30',\r\n controller: 'commessaSezioneEdit',\r\n resolve: {\r\n sezione: function () {\r\n return modalSezione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Centro di costo modificato con successo'));\r\n getListCommesseSezioni(vm.record.Id);\r\n });\r\n }\r\n\r\n function deleteCommessaSezione(item) {\r\n var msg = $translate.instant('il') + \" \" + $translate.instant('CentroDiCosto') + \" \" + item.sezione + \" \" + $translate.instant('dalla commessa') + \" \" + vm.record.Codice + \" - \" + vm.record.Titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.commessaSezione_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Dipendente eliminato con successo'));\r\n getListCommesseSezioni(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n // Define the common module \r\n // Contains services:\r\n // - common\r\n // - logger\r\n // - spinner\r\n var commonModule = angular.module('common', []);\r\n\r\n // Must configure the common service and set its \r\n // events via the commonConfigProvider\r\n commonModule.provider('commonConfig', function () {\r\n this.config = {\r\n // These are the properties we need to set\r\n //controllerActivateSuccessEvent: '',\r\n //spinnerToggleEvent: ''\r\n };\r\n\r\n this.$get = function () {\r\n return {\r\n config: this.config\r\n };\r\n };\r\n });\r\n\r\n commonModule.factory('common',\r\n ['$q', '$http', '$location', '$rootScope', '$timeout', 'commonConfig', 'logger', '$translate', common]);\r\n\r\n function common($q, $http, $location, $rootScope, $timeout, commonConfig, logger, $translate) {\r\n var throttles = {};\r\n\r\n var service = {\r\n // common angular dependencies\r\n $broadcast: $broadcast,\r\n $q: $q,\r\n $http: $http,\r\n $location: $location,\r\n $timeout: $timeout,\r\n $rootScope: $rootScope, \r\n // generic\r\n activateController: activateController,\r\n createSearchThrottle: createSearchThrottle,\r\n debouncedThrottle: debouncedThrottle,\r\n isNumber: isNumber,\r\n logger: logger, // for accessibility\r\n textContains: textContains,\r\n dateToString: dateToString,\r\n stringToDate: stringToDate, \r\n setOrdine: setOrdine,\r\n strMese: strMese\r\n };\r\n\r\n return service;\r\n\r\n function activateController(promises, controllerId) {\r\n return $q.all(promises).then(function (eventArgs) {\r\n var data = { controllerId: controllerId };\r\n $broadcast(commonConfig.config.controllerActivateSuccessEvent, data);\r\n });\r\n }\r\n\r\n function $broadcast() {\r\n return $rootScope.$broadcast.apply($rootScope, arguments);\r\n }\r\n\r\n function createSearchThrottle(viewmodel, list, filteredList, filter, delay) {\r\n // After a delay, search a viewmodel's list using \r\n // a filter function, and return a filteredList.\r\n\r\n // custom delay or use default\r\n delay = +delay || 300;\r\n // if only vm and list parameters were passed, set others by naming convention \r\n if (!filteredList) {\r\n // assuming list is named sessions, filteredList is filteredSessions\r\n filteredList = 'filtered' + list[0].toUpperCase() + list.substr(1).toLowerCase(); // string\r\n // filter function is named sessionFilter\r\n filter = list + 'Filter'; // function in string form\r\n }\r\n\r\n // create the filtering function we will call from here\r\n var filterFn = function () {\r\n // translates to ...\r\n // vm.filteredSessions \r\n // = vm.sessions.filter(function(item( { returns vm.sessionFilter (item) } );\r\n viewmodel[filteredList] = viewmodel[list].filter(function (item) {\r\n return viewmodel[filter](item);\r\n });\r\n };\r\n\r\n return (function () {\r\n // Wrapped in outer IFFE so we can use closure \r\n // over filterInputTimeout which references the timeout\r\n var filterInputTimeout;\r\n\r\n // return what becomes the 'applyFilter' function in the controller\r\n return function (searchNow) {\r\n if (filterInputTimeout) {\r\n $timeout.cancel(filterInputTimeout);\r\n filterInputTimeout = null;\r\n }\r\n if (searchNow || !delay) {\r\n filterFn();\r\n } else {\r\n filterInputTimeout = $timeout(filterFn, delay);\r\n }\r\n };\r\n })();\r\n }\r\n\r\n function debouncedThrottle(key, callback, delay, immediate) {\r\n // Perform some action (callback) after a delay. \r\n // Track the callback by key, so if the same callback \r\n // is issued again, restart the delay.\r\n\r\n var defaultDelay = 1000;\r\n delay = delay || defaultDelay;\r\n if (throttles[key]) {\r\n $timeout.cancel(throttles[key]);\r\n throttles[key] = undefined;\r\n }\r\n if (immediate) {\r\n callback();\r\n } else {\r\n throttles[key] = $timeout(callback, delay);\r\n }\r\n }\r\n\r\n function isNumber(val) {\r\n // negative or positive\r\n return /^[-]?\\d+$/.test(val);\r\n }\r\n\r\n function textContains(text, searchText) {\r\n return text && -1 !== text.toLowerCase().indexOf(searchText.toLowerCase());\r\n } \r\n\r\n function dateToString(data) {\r\n var dt = new Date(data);\r\n var dd = dt.getDate();\r\n var mm = dt.getMonth() + 1; //January is 0!\r\n var yyyy = dt.getFullYear();\r\n\r\n if (dd < 10) {\r\n dd = '0' + dd;\r\n }\r\n if (mm < 10) {\r\n mm = '0' + mm;\r\n }\r\n\r\n return dd + '/' + mm + '/' + yyyy;\r\n }\r\n\r\n function stringToDate(strData) {\r\n var numbers = strData.split('/');\r\n var data = new Date();\r\n\r\n data.setMonth = parseInt(numbers[1]);\r\n data.setFullYear = parseInt(numbers[2]);\r\n data.setDate = parseInt(numbers[0]);\r\n\r\n data = new Date(data.getFullYear(), data.getMonth(), data.getDate(), 0, 0, 0, 0);\r\n return data;\r\n }\r\n\r\n //funzione per ordinamento multilingua\r\n function setOrdine(ord) {\r\n var ordine = [];\r\n ord.forEach(function (element) {\r\n var val = element.replace(/\\s/g, '');\r\n var obj = {\r\n value: element,\r\n text: $translate.instant(val)\r\n };\r\n ordine.push(obj);\r\n });\r\n\r\n return ordine;\r\n }\r\n\r\n function strMese(value, language) {\r\n var retVal = '';\r\n\r\n $translate.use(language);\r\n\r\n switch (value) {\r\n case 1:\r\n retVal = $translate.instant('Gennaio');\r\n break;\r\n case 2:\r\n retVal = $translate.instant('Febbraio');\r\n break;\r\n case 3:\r\n retVal = $translate.instant('Marzo');\r\n break;\r\n case 4:\r\n retVal = $translate.instant('Aprile');\r\n break;\r\n case 5:\r\n retVal = $translate.instant('Maggio');\r\n break;\r\n case 6:\r\n retVal = $translate.instant('Giugno');\r\n break;\r\n case 7:\r\n retVal = $translate.instant('Luglio');\r\n break;\r\n case 8:\r\n retVal = $translate.instant('Agosto');\r\n break;\r\n case 9:\r\n retVal = $translate.instant('Settembre');\r\n break;\r\n case 10:\r\n retVal = $translate.instant('Ottobre');\r\n break;\r\n case 11:\r\n retVal = $translate.instant('Novembre');\r\n break;\r\n case 12:\r\n retVal = $translate.instant('Dicembre');\r\n break; \r\n }\r\n return retVal;\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n angular.module('common').factory('logger', ['$log', logger]);\r\n\r\n function logger($log) {\r\n var service = {\r\n getLogFn: getLogFn,\r\n log: log,\r\n logError: logError,\r\n logSuccess: logSuccess,\r\n logWarning: logWarning\r\n };\r\n\r\n return service;\r\n\r\n function getLogFn(moduleId, fnName) {\r\n fnName = fnName || 'log';\r\n switch (fnName.toLowerCase()) { // convert aliases\r\n case 'success':\r\n fnName = 'logSuccess'; break;\r\n case 'error':\r\n fnName = 'logError'; break;\r\n case 'warn':\r\n fnName = 'logWarning'; break;\r\n case 'warning':\r\n fnName = 'logWarning'; break;\r\n }\r\n\r\n var logFn = service[fnName] || service.log;\r\n return function (msg, data, showToast) {\r\n logFn(msg, data, moduleId, (showToast === undefined) ? true : showToast);\r\n };\r\n }\r\n\r\n function log(message, data, source, showToast) {\r\n logIt(message, data, source, showToast, 'info');\r\n }\r\n\r\n function logWarning(message, data, source, showToast) {\r\n logIt(message, data, source, showToast, 'warning');\r\n }\r\n\r\n function logSuccess(message, data, source, showToast) {\r\n logIt(message, data, source, showToast, 'success');\r\n }\r\n\r\n function logError(message, data, source, showToast) {\r\n logIt(message, data, source, showToast, 'error');\r\n }\r\n\r\n function logIt(message, data, source, showToast, toastType) {\r\n var write = (toastType === 'error') ? $log.error : $log.log;\r\n source = source ? '[' + source + '] ' : '';\r\n write(source, message, data);\r\n if (showToast) {\r\n if (toastType === 'error') {\r\n toastr.error(message);\r\n } else if (toastType === 'warning') {\r\n toastr.warning(message);\r\n } else if (toastType === 'success') {\r\n toastr.success(message);\r\n } else {\r\n toastr.info(message);\r\n }\r\n }\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n // Must configure the common service and set its \r\n // events via the commonConfigProvider\r\n\r\n angular.module('common')\r\n .factory('spinner', ['common', 'commonConfig', spinner]);\r\n\r\n function spinner(common, commonConfig) {\r\n var service = {\r\n spinnerHide: spinnerHide,\r\n spinnerShow: spinnerShow\r\n };\r\n\r\n return service;\r\n\r\n function spinnerHide() { spinnerToggle(false); }\r\n\r\n function spinnerShow() { spinnerToggle(true); }\r\n\r\n function spinnerToggle(show) {\r\n common.$broadcast(commonConfig.config.spinnerToggleEvent, { show: show });\r\n }\r\n }\r\n})();","// app/costiBase/costiBase.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'costiBase';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', costiBaseFn]);\r\n\r\n function costiBaseFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = $translate.instant('CostiBase');\r\n vm.sectionMenu = sectionMenu.setSection('CostiBase');\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n //vm.sectionMenu = sectionMenu.setSection(vm.title); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = false;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n //data\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n }; \r\n\r\n vm.clear = function ($event) {\r\n vm.fData = '';\r\n vm.changed = true;\r\n };\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.format = 'dd/MM/yyyy'; \r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Titolo', 'Tipo'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n }; \r\n \r\n //Filtro\r\n vm.filter = {}; \r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n\r\n //Gestione CostiBase \r\n vm.add = addCostiBase;\r\n vm.update = updateItem;\r\n vm.edit = edit;\r\n vm.delete = deleteCostiBase; \r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [];\r\n common.activateController(promises, controllerId)\r\n .then(function () { \r\n //if ($routeParams.TeamId != null) {\r\n // setView('detail');\r\n // getRecord($routeParams.TeamId, 0);\r\n //}\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n //console.info('data', vm.record);\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1; \r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.costiBase_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.costiBase_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n return datacontext.costiBase_get(id).then(function (data) {\r\n vm.index = index;\r\n vm.record = data; \r\n \r\n //Azzera liste \r\n if (vm.record.DataFine != null) vm.record.DataFine = new Date(vm.record.DataFine);\r\n setView('detail');\r\n });\r\n } \r\n\r\n //Gestione CostiBase\r\n // implementazione del metodo addCostiBase (definito sopra) che si scatena quando clicco sul bottone \"Aggiungi\" \r\n function addCostiBase() {\r\n var modalCostiBase = {};\r\n modalCostiBase.Id = 0; // devo aggiungere un nuovo record e sappiamo che ogni nuovo record è identificato da un Id pari a 0\r\n \r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/costiBase/modal/costiBaseAdd.html?version=30', \r\n controller: 'costiBaseAdd',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n costiBase: function () { // in questo caso passiamo un solo oggetto che si chiama 'costiBase' che ha come valore modalCostiBase\r\n return modalCostiBase;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato')); // analizza l'oggetto tornato 'returnItem' = 'costiBaseAdd.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n \r\n logSuccess($translate.instant('Costo base aggiunto con successo'));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n //addRecord(returnItem.Id);\r\n cerca();\r\n });\r\n }\r\n\r\n function updateItem() { \r\n return datacontext.costiBase_update(vm.record).then(function (data) {\r\n if (data) {\r\n vm.records[vm.index] = data;\r\n logSuccess($translate.instant('Dati salvati'));\r\n }\r\n else\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n });\r\n }\r\n\r\n //non viene utilizzata la modale perchè utilizzo il detail\r\n function edit(item) {\r\n var modalCostiBase = {};\r\n angular.copy(item, modalCostiBase);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/costiBase/modal/costiBaseAdd.html?version=30', \r\n controller: 'costiBaseAdd',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n costiBase: function () { // in questo caso passiamo un solo oggetto che si chiama 'costo' che ha come valore modalCostiBase\r\n return modalCostiBase;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato')); // analizza l'oggetto tornato 'returnItem' = 'costiBaseAdd.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n\r\n logSuccess($translate.instant('Costo base modificato con successo'));\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione \r\n //cerca();\r\n });\r\n }\r\n\r\n function deleteCostiBase(item) {\r\n var msg = \" \" + $translate.instant('il costo base') + \" \" + item.Titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.costiBase_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Costo base eliminato con successo'));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n //var index = vm.records.indexOf(item)\r\n //vm.records.splice(index, 1);\r\n //vm.countRecords--;\r\n cerca();\r\n }); \r\n });\r\n } \r\n }\r\n})();\r\n","// app/dipendente/dipendenti.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'curriculum';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', curriculumFn]);\r\n\r\n function curriculumFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n \r\n var vm = this;\r\n vm.title = 'Curricula';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.sectionMenu = sectionMenu.setSection(vm.title); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = true;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.personale = $rootScope.isAuthorized('PERSONALE');\r\n vm.showInfo = true;\r\n vm.showIstruzioni = true;\r\n vm.showFormazioni = true;\r\n vm.showCompetenzePersonali = true;\r\n vm.showCompetenzeLinguistiche = true;\r\n vm.showEsperienzeLavorative = true;\r\n vm.showDettaglioProgetti = true;\r\n vm.cvValido = true;\r\n vm.bApriTutti = false;\r\n\r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Nominativo', 'Matricola', 'Stato Curriculum', 'Data Aggiornamento'];\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n //Elenchi dettaglio\r\n vm.list.sezioni = []; \r\n vm.list.profili = []; //Profili orari del dipendente\r\n vm.list.profiloOre = []; //Elenco profili orari generale\r\n vm.list.province = [];\r\n vm.list.comuni = [];\r\n\r\n vm.list.istruzioni = [];\r\n vm.list.formazioni = [];\r\n vm.list.competenzeTecniche = [];\r\n vm.list.competenzeDigitali = [];\r\n vm.list.lingue = [];\r\n vm.list.esperienzeLavorative = [];\r\n vm.list.progetti = [];\r\n vm.list.fasi = [];\r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.stato = vm.fStato = 0;\r\n vm.filter.statoCV = vm.fStatoCV = -1;\r\n vm.filter.sezione = vm.fSezione = 0;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n\r\n vm.getComuni = getComuni;\r\n\r\n vm.editAnagraficaDipendente = editAnagraficaDipendente;\r\n\r\n //Gestione esperienze lavorative\r\n vm.addEsperienzaLavorativa = addEsperienzaLavorativa;\r\n vm.deleteEsperienzaLavorativa = deleteEsperienzaLavorativa;\r\n vm.editEsperienzaLavorativa = editEsperienzaLavorativa;\r\n\r\n //Gestione dettaglio progetti\r\n vm.addProgetto = addProgetto;\r\n vm.deleteProgetto = deleteProgetto;\r\n vm.editProgetto = editProgetto;\r\n\r\n //Gestione istruzioni\r\n vm.addIstruzione = addIstruzione;\r\n vm.deleteIstruzione = deleteIstruzione;\r\n vm.editIstruzione = editIstruzione;\r\n\r\n //Gestione formazioni\r\n vm.addFormazione = addFormazione;\r\n vm.deleteFormazione = deleteFormazione;\r\n vm.editFormazione = editFormazione;\r\n\r\n //Gestione competenza tecnica\r\n vm.addCompetenzaTecnica = addCompetenzaTecnica;\r\n vm.deleteCompetenzaTecnica = deleteCompetenzaTecnica;\r\n vm.editCompetenzaTecnica = editCompetenzaTecnica;\r\n\r\n //Gestione competenza tecnica\r\n vm.addCompetenzaDigitale = addCompetenzaDigitale;\r\n vm.deleteCompetenzaDigitale = deleteCompetenzaDigitale;\r\n vm.editCompetenzaDigitale = editCompetenzaDigitale;\r\n\r\n //Gestione lingue\r\n vm.addLingua = addLingua;\r\n vm.deleteLingua = deleteLingua;\r\n vm.editLingua = editLingua;\r\n\r\n vm.stampaCV = stampaCV;\r\n vm.apriTutti = apriTutti;\r\n\r\n //Configurazione calendario\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n vm.opened1 = vm.opened2 = false;\r\n };\r\n\r\n vm.open1 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened1 = !vm.opened1;\r\n vm.opened = vm.opened2 = false;\r\n };\r\n\r\n vm.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened2 = !vm.opened2;\r\n vm.opened = vm.opened1 = false;\r\n };\r\n\r\n //Gestione Attach\r\n vm.fAttach = {};\r\n vm.filterAttach = '';\r\n vm.setfAttach = setfAttach;\r\n vm.list.attach = [];\r\n //vm.getListAttach = getListAttach;\r\n vm.tSourceCode_def = 'CUR';\r\n vm.addAttach = addAttach;\r\n vm.deleteAttach = deleteAttach;\r\n vm.addFirma = addFirma;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getTSource(vm.tSourceCode_def), getTAttach(vm.tSourceCode_def)];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n getRecord($rootScope.id, 0);\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n\r\n function getRecord(id, index) { \r\n vm.list.profili = [];\r\n\r\n if (!id)\r\n id = $rootScope.id ? $rootScope.id : 0;\r\n\r\n return datacontext.dipendente_get(id).then(function (data) { \r\n vm.index = index;\r\n if (data && data != 400) {\r\n if (data.ProvinciaId)\r\n getComuni(data.ProvinciaId);\r\n\r\n getEsperienzeLavorative(data.Id);\r\n getDettaglioProgetti(data.Id);\r\n getIstruzioni(data.Id);\r\n getFormazioni(data.Id);\r\n getCompetenzeDigitali(data.Id);\r\n getCompetenzeTecniche(data.Id);\r\n getLingue(data.Id);\r\n getFasi(data.Id).then(function (fasi) {\r\n vm.showInfo = !fasi[0].Completed;\r\n vm.showIstruzioni = !fasi[3].Completed;\r\n vm.showFormazioni = !fasi[4].Completed;\r\n vm.showCompetenzePersonali = !fasi[5].Completed;\r\n vm.showCompetenzeLinguistiche = !fasi[6].Completed;\r\n vm.showEsperienzeLavorative = !fasi[1].Completed;\r\n vm.showDettaglioProgetti = !fasi[2].Completed;\r\n });\r\n\r\n vm.cvValido = true;\r\n vm.record = data;\r\n\r\n if (vm.record.FirmaId == 0) {\r\n $uibModal.open({\r\n templateUrl: '/app/curriculum/modal/avvisoFirma.html?version=30',\r\n controller: 'avvisoFirma'\r\n });\r\n }\r\n }\r\n else {\r\n vm.cvValido = false;\r\n logError($translate.instant('Errore nel caricamento del CV'));\r\n } \r\n\r\n \r\n });\r\n } \r\n\r\n function editAnagraficaDipendente() {\r\n var modalAnagrafica = {};\r\n angular.copy(vm.record, modalAnagrafica);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/anagraficaDipendenteEdit.html?version=30',\r\n controller: 'anagraficaDipendenteEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n anagraficaDipendente: function () {\r\n return modalAnagrafica;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n getRecord(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione esperienze lavorative\r\n function getEsperienzeLavorative(dipendenteId) {\r\n return datacontext.esperienzaLavorativa_getAll(dipendenteId).then(function (data) {\r\n return vm.list.esperienzeLavorative = data;\r\n });\r\n }\r\n\r\n function deleteEsperienzaLavorativa(item) {\r\n var msg = \" \" + $translate.instant('esperienza lavorativa') + \" \" + item.TipoMansione;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.esperienzaLavorativa_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n var index = vm.list.esperienzeLavorative.indexOf(item);\r\n var sequence = item.sequence;\r\n vm.list.esperienzeLavorative.splice(index, 1);\r\n vm.list.esperienzeLavorative.forEach(function (obj) {\r\n if (obj.Sequence > sequence)\r\n obj.Sequence--;\r\n });\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function changeSequenceEsperienzaLavorativa(orderList) {\r\n datacontext.esperienzaLavorativa_changeSequence(orderList).then(function (data) {\r\n if (data) {\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n } else\r\n logSuccess($translate.instant('Ordinamento effettuato con successo'));\r\n });\r\n }\r\n\r\n function updateSequenceEsperienzaLavorativa() {\r\n var orderList = [];\r\n var sequence = 1;\r\n\r\n vm.list.esperienzeLavorative.forEach(function (item) {\r\n item.Sequence = sequence++;\r\n orderList.push(item.Id);\r\n });\r\n\r\n changeSequenceEsperienzaLavorativa(orderList);\r\n }\r\n\r\n vm.sortingLogEsperienzaLavorativa = [];\r\n\r\n vm.sortableOptionsEsperienzaLavorativa = {\r\n handle: \"> .myHandle\",\r\n update: function (e, ui) {\r\n var logEntry = vm.list.esperienzeLavorative.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogEsperienzaLavorativa.push(\"Update: \" + logEntry);\r\n },\r\n stop: function (e, ui) {\r\n // this callback has the changed model\r\n var logEntry = vm.list.esperienzeLavorative.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogEsperienzaLavorativa.push(\"Stop: \" + logEntry);\r\n updateSequenceEsperienzaLavorativa();\r\n }\r\n };\r\n\r\n function addEsperienzaLavorativa() {\r\n var modalEsperienzaLavorativa = {};\r\n modalEsperienzaLavorativa.Id = 0;\r\n modalEsperienzaLavorativa.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/esperienzaLavorativaAddEdit.html?version=30',\r\n controller: 'esperienzaLavorativaAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n esperienzaLavorativa: function () {\r\n return modalEsperienzaLavorativa;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Esperienza lavorativa aggiunta con successo'));\r\n getEsperienzeLavorative(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editEsperienzaLavorativa(item) {\r\n var modalEsperienzaLavorativa = {};\r\n angular.copy(item, modalEsperienzaLavorativa);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/esperienzaLavorativaAddEdit.html?version=30',\r\n controller: 'esperienzaLavorativaAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n esperienzaLavorativa: function () {\r\n return modalEsperienzaLavorativa;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Esperienza lavorativa modificata con successo'));\r\n getEsperienzeLavorative(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione dettaglio progetti\r\n function getDettaglioProgetti(dipendenteId) {\r\n return datacontext.dettaglioProgetto_getAll(dipendenteId).then(function (data) { \r\n return vm.list.progetti = data;\r\n });\r\n }\r\n\r\n function deleteProgetto(item) {\r\n var msg = \" \" + $translate.instant('il dettaglio relativo al progetto') + \" \" + item.Titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dettaglioProgetto_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n var index = vm.list.progetti.indexOf(item);\r\n var sequence = item.sequence;\r\n vm.list.progetti.splice(index, 1);\r\n vm.list.progetti.forEach(function (obj) {\r\n if (obj.Sequence > sequence)\r\n obj.Sequence--;\r\n });\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function changeSequenceDettaglioProgetti(orderList) {\r\n datacontext.dettaglioProgetto_changeSequence(orderList).then(function (data) {\r\n if (data) {\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n } else\r\n logSuccess($translate.instant('Ordinamento effettuato con successo'));\r\n });\r\n }\r\n\r\n function updateSequenceDettaglioProgetti() {\r\n var orderList = [];\r\n var sequence = 1;\r\n\r\n vm.list.progetti.forEach(function (item) {\r\n item.Sequence = sequence++;\r\n orderList.push(item.Id);\r\n });\r\n\r\n changeSequenceDettaglioProgetti(orderList);\r\n }\r\n\r\n vm.sortingLogDettaglioProgetti = [];\r\n\r\n vm.sortableOptionsDettaglioProgetti = {\r\n handle: \"> .myHandle\",\r\n update: function (e, ui) {\r\n var logEntry = vm.list.progetti.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogDettaglioProgetti.push(\"Update: \" + logEntry);\r\n },\r\n stop: function (e, ui) {\r\n // this callback has the changed model\r\n var logEntry = vm.list.progetti.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogDettaglioProgetti.push(\"Stop: \" + logEntry);\r\n updateSequenceDettaglioProgetti();\r\n }\r\n };\r\n\r\n function addProgetto() {\r\n var modalProgetto = {};\r\n modalProgetto.Id = 0;\r\n modalProgetto.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/dettaglioProgettoAddEdit.html?version=30',\r\n controller: 'dettaglioProgettoAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n progetto: function () {\r\n return modalProgetto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Progetto aggiunto con successo'));\r\n getDettaglioProgetti(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editProgetto(item) {\r\n var modalProgetto = {};\r\n angular.copy(item, modalProgetto);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/dettaglioProgettoAddEdit.html?version=30',\r\n controller: 'dettaglioProgettoAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n progetto: function () {\r\n return modalProgetto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Progetto modificato con successo'));\r\n getDettaglioProgetti(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione istruzioni\r\n function getIstruzioni(dipendenteId) {\r\n return datacontext.istruzione_getAll(dipendenteId).then(function (data) {\r\n return vm.list.istruzioni = data;\r\n });\r\n }\r\n\r\n function deleteIstruzione(item) {\r\n var msg = \" \" + $translate.instant('istruzione con qualifica') + \" \" + item.Qualifica;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.istruzione_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n var index = vm.list.istruzioni.indexOf(item);\r\n var sequence = item.sequence;\r\n vm.list.istruzioni.splice(index, 1);\r\n vm.list.istruzioni.forEach(function (obj) {\r\n if (obj.Sequence > sequence)\r\n obj.Sequence--;\r\n });\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function changeSequenceIstruzioni(orderList) {\r\n datacontext.istruzione_changeSequence(orderList).then(function (data) {\r\n if (data) {\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n } else\r\n logSuccess($translate.instant('Ordinamento effettuato con successo'));\r\n });\r\n }\r\n\r\n function updateSequenceIstruzioni() {\r\n var orderList = [];\r\n var sequence = 1;\r\n\r\n vm.list.istruzioni.forEach(function (item) {\r\n item.Sequence = sequence++;\r\n orderList.push(item.Id);\r\n });\r\n\r\n changeSequenceIstruzioni(orderList);\r\n }\r\n\r\n vm.sortingLogIstruzioni = [];\r\n\r\n vm.sortableOptionsIstruzioni = {\r\n handle: \"> .myHandle\",\r\n update: function (e, ui) {\r\n var logEntry = vm.list.istruzioni.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogIstruzioni.push(\"Update: \" + logEntry);\r\n },\r\n stop: function (e, ui) {\r\n // this callback has the changed model\r\n var logEntry = vm.list.istruzioni.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogIstruzioni.push(\"Stop: \" + logEntry);\r\n updateSequenceIstruzioni();\r\n }\r\n };\r\n\r\n function addIstruzione() {\r\n var modalIstruzione = {};\r\n modalIstruzione.Id = 0;\r\n modalIstruzione.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/istruzioneAddEdit.html?version=30',\r\n controller: 'istruzioneAddEdit',\r\n resolve: {\r\n istruzione: function () {\r\n return modalIstruzione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Istruzione aggiunta con successo'));\r\n getIstruzioni(vm.record.Id); \r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editIstruzione(item) {\r\n var modalIstruzione = {};\r\n angular.copy(item, modalIstruzione);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/istruzioneAddEdit.html?version=30',\r\n controller: 'istruzioneAddEdit',\r\n resolve: {\r\n istruzione: function () {\r\n return modalIstruzione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la modifica del dato ');\r\n\r\n logSuccess($translate.instant('Istruzione modificata con successo'));\r\n getIstruzioni(vm.record.Id); \r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione formazioni\r\n function getFormazioni(dipendenteId) {\r\n return datacontext.formazione_getAll(dipendenteId).then(function (data) {\r\n return vm.list.formazioni = data;\r\n });\r\n }\r\n\r\n function deleteFormazione(item) {\r\n var msg = \" \" + $translate.instant('la formazione con qualifica') + \" \" + item.Oggetto;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.formazione_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n var index = vm.list.formazioni.indexOf(item);\r\n var sequence = item.sequence;\r\n vm.list.formazioni.splice(index, 1);\r\n vm.list.formazioni.forEach(function (obj) {\r\n if (obj.Sequence > sequence)\r\n obj.Sequence--;\r\n });\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function changeSequenceFormazioni(orderList) {\r\n datacontext.formazione_changeSequence(orderList).then(function (data) {\r\n if (data) {\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n } else\r\n logSuccess($translate.instant('Ordinamento effettuato con successo'));\r\n });\r\n }\r\n\r\n function updateSequenceFormazioni() {\r\n var orderList = [];\r\n var sequence = 1;\r\n\r\n vm.list.formazioni.forEach(function (item) {\r\n item.Sequence = sequence++;\r\n orderList.push(item.Id);\r\n });\r\n\r\n changeSequenceFormazioni(orderList);\r\n }\r\n\r\n vm.sortingLogFormazioni = [];\r\n\r\n vm.sortableOptionsFormazioni = {\r\n handle: \"> .myHandle\",\r\n update: function (e, ui) {\r\n var logEntry = vm.list.formazioni.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogFormazioni.push(\"Update: \" + logEntry);\r\n },\r\n stop: function (e, ui) {\r\n // this callback has the changed model\r\n var logEntry = vm.list.formazioni.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogFormazioni.push(\"Stop: \" + logEntry);\r\n updateSequenceFormazioni();\r\n }\r\n };\r\n\r\n function addFormazione() {\r\n var modalFormazione = {};\r\n modalFormazione.Id = 0;\r\n modalFormazione.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/formazioneAddEdit.html?version=30',\r\n controller: 'formazioneAddEdit',\r\n resolve: {\r\n formazione: function () {\r\n return modalFormazione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Formazione aggiunta con successo'));\r\n getFormazioni(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editFormazione(item) {\r\n var modalFormazione = {};\r\n angular.copy(item, modalFormazione);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/formazioneAddEdit.html?version=30',\r\n controller: 'formazioneAddEdit',\r\n resolve: {\r\n formazione: function () {\r\n return modalFormazione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Formazione modificata con successo'));\r\n getFormazioni(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione competenze digitali\r\n function getCompetenzeDigitali(dipendenteId) {\r\n return datacontext.competenzaDigitale_getAll(dipendenteId).then(function (data) {\r\n return vm.list.competenzeDigitali = data;\r\n });\r\n }\r\n\r\n function deleteCompetenzaDigitale(item, index) {\r\n var msg = \" \" + $translate.instant('la competenza digitale') + \" \" + item.Competenza;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.competenzaDigitale_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n vm.list.competenzeDigitali.splice(index, 1);\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function addCompetenzaDigitale() {\r\n var modalCompentezaDigitale = {};\r\n modalCompentezaDigitale.Id = 0;\r\n modalCompentezaDigitale.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/competenzaDigitaleAddEdit.html?version=30',\r\n controller: 'competenzaDigitaleAddEdit',\r\n resolve: {\r\n competenza: function () {\r\n return modalCompentezaDigitale;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError($translate.instant('Errore durante la creazione del dato'));\r\n\r\n logSuccess($translate.instant('Competenza digitale aggiunta con successo'));\r\n getCompetenzeDigitali(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editCompetenzaDigitale(item) {\r\n var modalCompentezaDigitale = {};\r\n angular.copy(item, modalCompentezaDigitale);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/competenzaDigitaleAddEdit.html?version=30',\r\n controller: 'competenzaDigitaleAddEdit',\r\n resolve: {\r\n competenza: function () {\r\n return modalCompentezaDigitale;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError('Errore durante la modifica del dato ');\r\n\r\n logSuccess($translate.instant('Competenza digitale modificata con successo'));\r\n getCompetenzeDigitali(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione competenze tecniche\r\n function getCompetenzeTecniche(dipendenteId) {\r\n return datacontext.competenzaTecnica_getAll(dipendenteId).then(function (data) {\r\n return vm.list.competenzeTecniche = data;\r\n });\r\n }\r\n\r\n function deleteCompetenzaTecnica(item, index) {\r\n var msg = \" \" + $translate.instant('la competenza tecnica') + \" \" + item.Competenza;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.competenzaTecnica_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n vm.list.competenzeTecniche.splice(index, 1);\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function addCompetenzaTecnica() {\r\n var modalCompentezaTecnica = {};\r\n modalCompentezaTecnica.Id = 0;\r\n modalCompentezaTecnica.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/competenzaTecnicaAddEdit.html?version=30',\r\n controller: 'competenzaTecnicaAddEdit',\r\n resolve: {\r\n competenza: function () {\r\n return modalCompentezaTecnica;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError($translate.instant('Errore durante la creazione del dato'));\r\n\r\n logSuccess($translate.instant('Competenza tecnica aggiunta con successo'));\r\n getCompetenzeTecniche(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editCompetenzaTecnica(item) {\r\n var modalCompentezaTecnica = {};\r\n angular.copy(item, modalCompentezaTecnica);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/competenzaTecnicaAddEdit.html?version=30',\r\n controller: 'competenzaTecnicaAddEdit',\r\n resolve: {\r\n competenza: function () {\r\n return modalCompentezaTecnica;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError('Errore durante la modifica del dato ');\r\n\r\n logSuccess($translate.instant('Competenza digitale modificata con successo'));\r\n getCompetenzeTecniche(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione lingue\r\n function getLingue(dipendenteId) {\r\n return datacontext.lingua_getAll(dipendenteId).then(function (data) {\r\n return vm.list.lingue = data;\r\n });\r\n }\r\n\r\n function deleteLingua(item, index) {\r\n var msg = ' la lingua ' + item.Nome;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.lingua_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n vm.list.lingue.splice(index, 1);\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function addLingua() {\r\n var modalLingua = {};\r\n modalLingua.Id = 0;\r\n modalLingua.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/linguaAddEdit.html?version=30',\r\n controller: 'linguaAddEdit',\r\n resolve: {\r\n lingua: function () {\r\n return modalLingua;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError($translate.instant('Errore durante la creazione del dato'));\r\n\r\n logSuccess($translate.instant('Lingua aggiunta con successo'));\r\n getLingue(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editLingua(item) {\r\n var modalLingua = {};\r\n angular.copy(item, modalLingua);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/linguaAddEdit.html?version=30',\r\n controller: 'linguaAddEdit',\r\n resolve: {\r\n lingua: function () {\r\n return modalLingua;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Lingua modificata con successo'));\r\n getLingue(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n //Fasi \r\n function getFasi(dipendenteId) {\r\n return datacontext.faseCurriculum_getAll(dipendenteId).then(function (data) {\r\n if (data.length > 0) {\r\n var stato = 0;\r\n data.forEach(function (item) {\r\n stato += item.Completed;\r\n });\r\n $rootScope.statoCV = stato;\r\n }\r\n\r\n return vm.list.fasi = data;\r\n });\r\n }\r\n\r\n function stampaCV() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/stampaCV.html?version=30',\r\n controller: 'stampaCV',\r\n resolve: {\r\n dipendente: function () {\r\n return vm.record;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n vm.loading = true;\r\n datacontext.dipendente_stampaCurriculum(vm.record.Id, returnItem.Attach, returnItem.Signature, returnItem.DataStampa, returnItem.Logo, returnItem.Address, returnItem.BusinessPhone, returnItem.MobilePhone, returnItem.Rev, returnItem.DataRev).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n //var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n\r\n vm.loading = false;\r\n getRecord(vm.record.Id);\r\n }\r\n else {\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n vm.loading = false;\r\n }\r\n });\r\n });\r\n }\r\n\r\n // List province e comuni\r\n function getProvince() {\r\n if (vm.list.province.length > 0) return;\r\n\r\n datacontext.arrProvincie().then(function (data) {\r\n vm.list.province = data;\r\n });\r\n }\r\n\r\n function getComuni(idprov) {\r\n if (!idprov || idprov == 0) return vm.list.comuni = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return vm.list.comuni = data;\r\n });\r\n }\r\n\r\n function apriTutti(value) {\r\n vm.showInfo = value;\r\n vm.showEsperienzeLavorative = value;\r\n vm.showDettaglioProgetti = value;\r\n vm.showIstruzioni = value;\r\n vm.showFormazioni = value;\r\n vm.showCompetenzePersonali = value;\r\n vm.showCompetenzeLinguistiche = value;\r\n vm.bApriTutti = !vm.bApriTutti;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //Gestione Attach\r\n function setfAttach() {\r\n if (vm.checkfAttach == false) {\r\n vm.fAttach.TAttachId = '';\r\n }\r\n }\r\n\r\n function getTSource(code) {\r\n if (!code) return;\r\n\r\n return datacontext.tSource_getByCode(code).then(function (data) {\r\n return vm.tSource = data;\r\n });\r\n }\r\n\r\n function getTAttach(code) {\r\n if (!code) return;\r\n\r\n return datacontext.tAttach_getAllList(code, 0, 0, 0).then(function (data) {\r\n return vm.tAttach = data;\r\n });\r\n }\r\n\r\n function getListAttach(id) {\r\n if (!id) return;\r\n\r\n return datacontext.attach_getAll(0, 0, vm.tSourceCode_def, 0, id, vm.fAttach.TAttachId, '').then(function (data) {\r\n vm.list.b_attach = true;\r\n return vm.list.attach = data;\r\n });\r\n }\r\n\r\n function addAttach(item) {\r\n var recTSource = { Id: vm.tSource.Id, Name: vm.tSource.Name };\r\n var recSource = { Id: vm.record.Id, Name: vm.record.Nominativo };\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/attach/modal/attachAdd.html?version=30',\r\n controller: 'attachAdd',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n tSource: function () {\r\n return [recTSource];\r\n },\r\n tSourceCode: function () {\r\n return vm.tSource.Code;\r\n },\r\n tSourceId: function () {\r\n return vm.tSource.Id;\r\n },\r\n source: function () {\r\n return [recSource];\r\n },\r\n sourceId: function () {\r\n return recSource.Id;\r\n },\r\n tAttach: function () {\r\n //return null;\r\n return vm.tAttach[0];\r\n },\r\n tAttachId: function () {\r\n //return null;\r\n return vm.tAttach[0].Id;\r\n },\r\n attach: function () {\r\n return item;\r\n },\r\n //lista: function () {\r\n // return vm.list.attach;\r\n //}\r\n dipendenteId: function () {\r\n return vm.record.Id;\r\n },\r\n tSourceCode_def: function () {\r\n return vm.tSourceCode_def;\r\n }\r\n //tSourceCode_def: function () {\r\n // return vm.fAttach.TAttachId;\r\n //}\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"406\") return logError($translate.instant('Errore: formato allegato non corretto'));\r\n if (returnItem == \"400\") return logError($translate.instant('Errore registrazione dati') + \" \" + [' + returnItem + ']);\r\n \r\n\r\n //logSuccess('ciaoooo');\r\n //getListAttach(vm.anagrafica.Id);\r\n datacontext.dipendente_get(vm.record.Id).then(function (data) {\r\n return vm.record = data;\r\n });\r\n \r\n //vm.record.stat_numAttach = vm.record.stat_numAttach + 1;\r\n }, function () {\r\n //log('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n function deleteAttach(item) {\r\n var msg = \" \" + $translate.instant('Allegato') + \" \" + item.Name;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.attach_delete(item.Id).then(function (data) {\r\n if (data == \"400\") return logError($translate.instant('Attenzione: allegato non cancellabile'));\r\n\r\n var index = vm.list.attach.indexOf(item);\r\n vm.list.attach.splice(index, 1);\r\n //vm.record.stat_numAttach = vm.record.stat_numAttach - 1;\r\n });\r\n });\r\n }\r\n\r\n function addFirma(item) {\r\n var recTSource = { Id: vm.tSource.Id, Name: vm.tSource.Name };\r\n var recSource = { Id: vm.record.Id, Name: vm.record.Nominativo };\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/attach/modal/attachAddFirma.html?version=30',\r\n controller: 'attachAddFirma',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n tSource: function () {\r\n return [recTSource];\r\n },\r\n tSourceCode: function () {\r\n return vm.tSource.Code;\r\n },\r\n tSourceId: function () {\r\n return vm.tSource.Id;\r\n },\r\n source: function () {\r\n return [recSource];\r\n },\r\n sourceId: function () {\r\n return recSource.Id;\r\n },\r\n tAttach: function () {\r\n //return null;\r\n return vm.tAttach[1];\r\n },\r\n tAttachId: function () {\r\n //return null;\r\n return vm.tAttach[1].Id;\r\n },\r\n attach: function () {\r\n return item;\r\n },\r\n tSourceCode_def: function () {\r\n return vm.tSourceCode_def;\r\n },\r\n dipendenteId: function () {\r\n return vm.record.Id;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"406\") return logError($translate.instant('Errore: formato allegato non corretto'));\r\n if (returnItem == \"400\") return logError($translate.instant('Errore registrazione dati') + \" \" + [' + returnItem + ']);\r\n\r\n\r\n getRecord(vm.record.Id);\r\n }, function () {\r\n });\r\n }\r\n\r\n }\r\n})();\r\n","// app/dipendente/dipendenti.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'curriculum_personale';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', '$location', 'datacontext', 'sectionMenu', '$translate', curriculumPersonaleFn]);\r\n\r\n function curriculumPersonaleFn($rootScope, $scope, $routeParams, $filter, common, bDialog, $uibModal, $location, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n \r\n var vm = this, onRouteChangeOff;\r\n vm.title = 'Curricula';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection(vm.title); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = true;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.personale = $rootScope.isAuthorized('PERSONALE'); \r\n vm.showInfo = true;\r\n vm.showIstruzioni = true;\r\n vm.showFormazioni = true;\r\n vm.showCompetenzePersonali = true;\r\n vm.showCompetenzeLinguistiche = true;\r\n vm.showEsperienzeLavorative = true;\r\n vm.showDettaglioProgetti = true;\r\n vm.cvValido = true;\r\n vm.bApriTutti = false;\r\n\r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Nominativo', 'Matricola', 'Stato Curriculum', 'Data aggiornamento'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n vm.item = {};\r\n\r\n //Elenchi dettaglio \r\n vm.list.profili = []; //Profili orari del dipendente\r\n vm.list.profiloOre = []; //Elenco profili orari generale\r\n vm.list.province = [];\r\n vm.list.comuni = [];\r\n\r\n vm.list.istruzioni = [];\r\n vm.list.formazioni = [];\r\n vm.list.competenzeTecniche = [];\r\n vm.list.competenzeDigitali = [];\r\n vm.list.lingue = [];\r\n vm.list.esperienzeLavorative = [];\r\n vm.list.progetti = [];\r\n vm.list.fasi = [];\r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.stato = vm.fStato = 0;\r\n vm.filter.statoCV = vm.fStatoCV = -1;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n\r\n vm.getComuni = getComuni;\r\n\r\n vm.editAnagraficaDipendente = editAnagraficaDipendente;\r\n\r\n //Gestione esperienze lavorative\r\n vm.addEsperienzaLavorativa = addEsperienzaLavorativa;\r\n vm.deleteEsperienzaLavorativa = deleteEsperienzaLavorativa;\r\n vm.editEsperienzaLavorativa = editEsperienzaLavorativa;\r\n\r\n //Gestione dettaglio progetti\r\n vm.addProgetto = addProgetto;\r\n vm.deleteProgetto = deleteProgetto;\r\n vm.editProgetto = editProgetto;\r\n\r\n //Gestione istruzioni\r\n vm.addIstruzione = addIstruzione;\r\n vm.deleteIstruzione = deleteIstruzione;\r\n vm.editIstruzione = editIstruzione;\r\n\r\n //Gestione formazioni\r\n vm.addFormazione = addFormazione;\r\n vm.deleteFormazione = deleteFormazione;\r\n vm.editFormazione = editFormazione;\r\n\r\n //Gestione lingue\r\n vm.addLingua = addLingua;\r\n vm.deleteLingua = deleteLingua;\r\n vm.editLingua = editLingua;\r\n\r\n //Gestione competenza tecnica\r\n vm.addCompetenzaTecnica = addCompetenzaTecnica;\r\n vm.deleteCompetenzaTecnica = deleteCompetenzaTecnica;\r\n vm.editCompetenzaTecnica = editCompetenzaTecnica;\r\n\r\n //Gestione competenza tecnica\r\n vm.addCompetenzaDigitale = addCompetenzaDigitale;\r\n vm.deleteCompetenzaDigitale = deleteCompetenzaDigitale;\r\n vm.editCompetenzaDigitale = editCompetenzaDigitale;\r\n\r\n vm.stampaCV = stampaCV;\r\n vm.apriTutti = apriTutti;\r\n\r\n vm.confirmRoute = confirmRoute;\r\n\r\n //Configurazione calendario\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n vm.opened1 = vm.opened2 = false;\r\n };\r\n\r\n vm.open1 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened1 = !vm.opened1;\r\n vm.opened = vm.opened2 = false;\r\n };\r\n\r\n vm.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened2 = !vm.opened2;\r\n vm.opened = vm.opened1 = false;\r\n };\r\n\r\n //Gestione Attach\r\n vm.fAttach = {};\r\n vm.filterAttach = '';\r\n vm.setfAttach = setfAttach;\r\n vm.list.attach = [];\r\n //vm.getListAttach = getListAttach;\r\n vm.tSourceCode_def = 'CUR';\r\n vm.addAttach = addAttach;\r\n vm.deleteAttach = deleteAttach;\r\n vm.addFirma = addFirma;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getProfiloOre(), getTSource(vm.tSourceCode_def), getTAttach(vm.tSourceCode_def)];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n\r\n if ($routeParams.DipendenteId != null) {\r\n setView('detail');\r\n getRecord($routeParams.DipendenteId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.stato = vm.fStato == null ? 0 : vm.fStato;\r\n vm.filter.statoCV = vm.fStatoCV == null ? 0 : vm.fStatoCV;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.dettaglioDipendente_countAll(vm.filter.stato, vm.filter.statoCV, vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.dettaglioDipendente_getAll(vm.pageSize, vm.page, vm.filter.stato, vm.filter.statoCV, vm.filter.ricerca, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n vm.list.profili = [];\r\n\r\n if (vm.personale) getProvince();\r\n\r\n return datacontext.dipendente_get(id).then(function (data) { \r\n vm.index = index;\r\n\r\n if (data && data != 400) {\r\n if (data.ProvinciaId)\r\n getComuni(data.ProvinciaId);\r\n\r\n getEsperienzeLavorative(data.Id);\r\n getDettaglioProgetti(data.Id);\r\n getIstruzioni(data.Id);\r\n getFormazioni(data.Id);\r\n getCompetenzeDigitali(data.Id);\r\n getCompetenzeTecniche(data.Id);\r\n getLingue(data.Id);\r\n getFasi(data.Id).then(function (fasi) {\r\n vm.showInfo = !fasi[0].Completed;\r\n vm.showIstruzioni = !fasi[3].Completed;\r\n vm.showFormazioni = !fasi[4].Completed;\r\n vm.showCompetenzePersonali = !fasi[5].Completed;\r\n vm.showCompetenzeLinguistiche = !fasi[6].Completed;\r\n vm.showEsperienzeLavorative = !fasi[1].Completed;\r\n vm.showDettaglioProgetti = !fasi[2].Completed;\r\n });\r\n\r\n vm.cvValido = true;\r\n vm.record = data;\r\n setView('detail');\r\n }\r\n else {\r\n vm.cvValido = false;\r\n logError($translate.instant('Errore nel caricamento del CV'));\r\n } \r\n\r\n \r\n });\r\n } \r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog($translate.instant('Modifiche non salvate'), $translate.instant('Sono presenti modifiche non salvate'), $translate.instant('Salva modifiche e procedi'), $translate.instant('Annulla modifiche e procedi')).then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.update(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/curriculum_personale\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError($translate.instant('Compilare i campi obbligatori'));\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/curriculum_personale\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n $location.url(\"/curriculum_personale\");\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n //Get list\r\n function getProfiloOre() {\r\n return datacontext.profiloOre_getAllList().then(function (data) {\r\n return vm.list.profiloOre = data;\r\n });\r\n }\r\n\r\n function stampaCV() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/stampaCV.html?version=30',\r\n controller: 'stampaCV',\r\n resolve: {\r\n dipendente: function () {\r\n return vm.record;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n vm.loading = true;\r\n datacontext.dipendente_stampaCurriculum(vm.record.Id, returnItem.Attach, returnItem.Signature, returnItem.DataStampa, returnItem.Logo, returnItem.Address, returnItem.BusinessPhone, returnItem.MobilePhone, returnItem.Rev, returnItem.DataRev).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n //var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n\r\n vm.loading = false;\r\n getRecord(vm.record.Id);\r\n }\r\n else {\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n vm.loading = false;\r\n }\r\n });\r\n });\r\n }\r\n\r\n function editAnagraficaDipendente() {\r\n var modalAnagrafica = {};\r\n angular.copy(vm.record, modalAnagrafica);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/anagraficaDipendenteEdit.html?version=30',\r\n controller: 'anagraficaDipendenteEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n anagraficaDipendente: function () {\r\n return modalAnagrafica;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n getRecord(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione esperienze lavorative\r\n function getEsperienzeLavorative(dipendenteId) {\r\n return datacontext.esperienzaLavorativa_getAll(dipendenteId).then(function (data) {\r\n return vm.list.esperienzeLavorative = data;\r\n });\r\n }\r\n\r\n function deleteEsperienzaLavorativa(item) {\r\n var msg = \" \" + $translate.instant('esperienza lavorativa')+ \" \" + item.TipoMansione;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.esperienzaLavorativa_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n var index = vm.list.esperienzeLavorative.indexOf(item);\r\n var sequence = item.sequence;\r\n vm.list.esperienzeLavorative.splice(index, 1);\r\n vm.list.esperienzeLavorative.forEach(function (obj) {\r\n if (obj.Sequence > sequence)\r\n obj.Sequence--;\r\n });\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function changeSequenceEsperienzaLavorativa(orderList) {\r\n datacontext.esperienzaLavorativa_changeSequence(orderList).then(function (data) {\r\n if (data) {\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n } else\r\n logSuccess($translate.instant('Ordinamento effettuato con successo'));\r\n });\r\n }\r\n\r\n function updateSequenceEsperienzaLavorativa() {\r\n var orderList = [];\r\n var sequence = 1;\r\n\r\n vm.list.esperienzeLavorative.forEach(function (item) {\r\n item.Sequence = sequence++;\r\n orderList.push(item.Id);\r\n });\r\n\r\n changeSequenceEsperienzaLavorativa(orderList);\r\n }\r\n\r\n vm.sortingLogEsperienzaLavorativa = [];\r\n\r\n vm.sortableOptionsEsperienzaLavorativa = {\r\n handle: \"> .myHandle\",\r\n update: function (e, ui) {\r\n var logEntry = vm.list.esperienzeLavorative.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogEsperienzaLavorativa.push(\"Update: \" + logEntry);\r\n },\r\n stop: function (e, ui) {\r\n // this callback has the changed model\r\n var logEntry = vm.list.esperienzeLavorative.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogEsperienzaLavorativa.push(\"Stop: \" + logEntry);\r\n updateSequenceEsperienzaLavorativa();\r\n }\r\n };\r\n\r\n function addEsperienzaLavorativa() {\r\n var modalEsperienzaLavorativa = {};\r\n modalEsperienzaLavorativa.Id = 0;\r\n modalEsperienzaLavorativa.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/esperienzaLavorativaAddEdit.html?version=30',\r\n controller: 'esperienzaLavorativaAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n esperienzaLavorativa: function () {\r\n return modalEsperienzaLavorativa;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Esperienza lavorativa aggiunta con successo'));\r\n getEsperienzeLavorative(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editEsperienzaLavorativa(item) {\r\n var modalEsperienzaLavorativa = {};\r\n angular.copy(item, modalEsperienzaLavorativa);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/esperienzaLavorativaAddEdit.html?version=30',\r\n controller: 'esperienzaLavorativaAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n esperienzaLavorativa: function () {\r\n return modalEsperienzaLavorativa;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Esperienza lavorativa modificata con successo'));\r\n getEsperienzeLavorative(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione dettaglio progetti\r\n function getDettaglioProgetti(dipendenteId) {\r\n return datacontext.dettaglioProgetto_getAll(dipendenteId).then(function (data) {\r\n return vm.list.progetti = data;\r\n });\r\n }\r\n\r\n function deleteProgetto(item) {\r\n var msg = \" \" + $translate.instant('il dettaglio relativo al progetto')+ \" \" + item.Titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dettaglioProgetto_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n var index = vm.list.progetti.indexOf(item);\r\n var sequence = item.sequence;\r\n vm.list.progetti.splice(index, 1);\r\n vm.list.progetti.forEach(function (obj) {\r\n if (obj.Sequence > sequence)\r\n obj.Sequence--;\r\n });\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function changeSequenceDettaglioProgetti(orderList) {\r\n datacontext.dettaglioProgetto_changeSequence(orderList).then(function (data) {\r\n if (data) {\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n } else\r\n logSuccess($translate.instant('Ordinamento effettuato con successo'));\r\n });\r\n }\r\n\r\n function updateSequenceDettaglioProgetti() {\r\n var orderList = [];\r\n var sequence = 1;\r\n\r\n vm.list.progetti.forEach(function (item) {\r\n item.Sequence = sequence++;\r\n orderList.push(item.Id);\r\n });\r\n\r\n changeSequenceDettaglioProgetti(orderList);\r\n }\r\n\r\n vm.sortingLogDettaglioProgetti = [];\r\n\r\n vm.sortableOptionsDettaglioProgetti = {\r\n handle: \"> .myHandle\",\r\n update: function (e, ui) {\r\n var logEntry = vm.list.progetti.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogDettaglioProgetti.push(\"Update: \" + logEntry);\r\n },\r\n stop: function (e, ui) {\r\n // this callback has the changed model\r\n var logEntry = vm.list.progetti.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogDettaglioProgetti.push(\"Stop: \" + logEntry);\r\n updateSequenceDettaglioProgetti();\r\n }\r\n };\r\n\r\n function addProgetto() {\r\n var modalProgetto = {};\r\n modalProgetto.Id = 0;\r\n modalProgetto.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/dettaglioProgettoAddEdit.html?version=30',\r\n controller: 'dettaglioProgettoAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n progetto: function () {\r\n return modalProgetto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Progetto aggiunto con successo'));\r\n getDettaglioProgetti(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editProgetto(item) {\r\n var modalProgetto = {};\r\n angular.copy(item, modalProgetto);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/dettaglioProgettoAddEdit.html?version=30',\r\n controller: 'dettaglioProgettoAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n progetto: function () {\r\n return modalProgetto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Progetto modificato con successo'));\r\n getDettaglioProgetti(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione istruzioni\r\n function getIstruzioni(dipendenteId) {\r\n return datacontext.istruzione_getAll(dipendenteId).then(function (data) {\r\n return vm.list.istruzioni = data;\r\n });\r\n }\r\n\r\n function deleteIstruzione(item) {\r\n var msg = \" \" + $translate.instant('istruzione con qualifica') + \" \" + item.Qualifica;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.istruzione_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n var index = vm.list.istruzioni.indexOf(item);\r\n var sequence = item.sequence;\r\n vm.list.istruzioni.splice(index, 1);\r\n vm.list.istruzioni.forEach(function (obj) {\r\n if (obj.Sequence > sequence)\r\n obj.Sequence--;\r\n });\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function changeSequenceIstruzioni(orderList) {\r\n datacontext.istruzione_changeSequence(orderList).then(function (data) {\r\n if (data) {\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n } else\r\n logSuccess($translate.instant('Ordinamento effettuato con successo'));\r\n });\r\n }\r\n\r\n function updateSequenceIstruzioni() {\r\n var orderList = [];\r\n var sequence = 1;\r\n\r\n vm.list.istruzioni.forEach(function (item) {\r\n item.Sequence = sequence++;\r\n orderList.push(item.Id);\r\n });\r\n\r\n changeSequenceIstruzioni(orderList);\r\n }\r\n\r\n vm.sortingLogIstruzioni = [];\r\n\r\n vm.sortableOptionsIstruzioni = {\r\n handle: \"> .myHandle\",\r\n update: function (e, ui) {\r\n var logEntry = vm.list.istruzioni.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogIstruzioni.push(\"Update: \" + logEntry);\r\n },\r\n stop: function (e, ui) {\r\n // this callback has the changed model\r\n var logEntry = vm.list.istruzioni.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogIstruzioni.push(\"Stop: \" + logEntry);\r\n updateSequenceIstruzioni();\r\n }\r\n };\r\n\r\n function addIstruzione() {\r\n var modalIstruzione = {};\r\n modalIstruzione.Id = 0;\r\n modalIstruzione.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/istruzioneAddEdit.html?version=30',\r\n controller: 'istruzioneAddEdit',\r\n resolve: {\r\n istruzione: function () {\r\n return modalIstruzione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Istruzione aggiunta con successo'));\r\n getIstruzioni(vm.record.Id); \r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editIstruzione(item) {\r\n var modalIstruzione = {};\r\n angular.copy(item, modalIstruzione);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/istruzioneAddEdit.html?version=30',\r\n controller: 'istruzioneAddEdit',\r\n resolve: {\r\n istruzione: function () {\r\n return modalIstruzione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la modifica del dato');\r\n\r\n logSuccess($translate.instant('Istruzione modificata con successo'));\r\n getIstruzioni(vm.record.Id); \r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione formazioni\r\n function getFormazioni(dipendenteId) {\r\n return datacontext.formazione_getAll(dipendenteId).then(function (data) {\r\n return vm.list.formazioni = data;\r\n });\r\n }\r\n\r\n function deleteFormazione(item) {\r\n var msg = \" \" + $translate.instant('la formazione con qualifica') + \" \" + item.Oggetto;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.formazione_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n var index = vm.list.formazioni.indexOf(item);\r\n var sequence = item.sequence;\r\n vm.list.formazioni.splice(index, 1);\r\n vm.list.formazioni.forEach(function (obj) {\r\n if (obj.Sequence > sequence)\r\n obj.Sequence--;\r\n });\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function changeSequenceFormazioni(orderList) {\r\n datacontext.formazione_changeSequence(orderList).then(function (data) {\r\n if (data) {\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n } else\r\n logSuccess($translate.instant('Ordinamento effettuato con successo'));\r\n });\r\n }\r\n\r\n function updateSequenceFormazioni() {\r\n var orderList = [];\r\n var sequence = 1;\r\n\r\n vm.list.formazioni.forEach(function (item) {\r\n item.Sequence = sequence++;\r\n orderList.push(item.Id);\r\n });\r\n\r\n changeSequenceFormazioni(orderList);\r\n }\r\n\r\n vm.sortingLogFormazioni = [];\r\n\r\n vm.sortableOptionsFormazioni = {\r\n handle: \"> .myHandle\",\r\n update: function (e, ui) {\r\n var logEntry = vm.list.formazioni.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogFormazioni.push(\"Update: \" + logEntry);\r\n },\r\n stop: function (e, ui) {\r\n // this callback has the changed model\r\n var logEntry = vm.list.formazioni.map(function (i) {\r\n return i.value;\r\n }).join(\", \");\r\n vm.sortingLogFormazioni.push(\"Stop: \" + logEntry);\r\n updateSequenceFormazioni();\r\n }\r\n };\r\n\r\n function addFormazione() {\r\n var modalFormazione = {};\r\n modalFormazione.Id = 0;\r\n modalFormazione.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/formazioneAddEdit.html?version=30',\r\n controller: 'formazioneAddEdit',\r\n resolve: {\r\n formazione: function () {\r\n return modalFormazione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Formazione aggiunta con successo'));\r\n getFormazioni(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editFormazione(item) {\r\n var modalFormazione = {};\r\n angular.copy(item, modalFormazione);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/formazioneAddEdit.html?version=30',\r\n controller: 'formazioneAddEdit',\r\n resolve: {\r\n formazione: function () {\r\n return modalFormazione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la modifica del dato');\r\n\r\n logSuccess($translate.instant('Formazione modificata con successo'));\r\n getFormazioni(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione competenze digitali\r\n function getCompetenzeDigitali(dipendenteId) {\r\n return datacontext.competenzaDigitale_getAll(dipendenteId).then(function (data) {\r\n return vm.list.competenzeDigitali = data;\r\n });\r\n }\r\n\r\n function deleteCompetenzaDigitale(item, index) {\r\n var msg = \" \" + $translate.instant('la competenza digitale') + \" \" + item.Competenza;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.competenzaDigitale_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n vm.list.competenzeDigitali.splice(index, 1);\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function addCompetenzaDigitale() {\r\n var modalCompentezaDigitale = {};\r\n modalCompentezaDigitale.Id = 0;\r\n modalCompentezaDigitale.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/competenzaDigitaleAddEdit.html?version=30',\r\n controller: 'competenzaDigitaleAddEdit',\r\n resolve: {\r\n competenza: function () {\r\n return modalCompentezaDigitale;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError('Errore durante la creazione del dato');\r\n\r\n logSuccess($translate.instant('Competenza digitale aggiunta con successo'));\r\n getCompetenzeDigitali(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editCompetenzaDigitale(item) {\r\n var modalCompentezaDigitale = {};\r\n angular.copy(item, modalCompentezaDigitale);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/competenzaDigitaleAddEdit.html?version=30',\r\n controller: 'competenzaDigitaleAddEdit',\r\n resolve: {\r\n competenza: function () {\r\n return modalCompentezaDigitale;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Competenza digitale modificata con successo'));\r\n getCompetenzeDigitali(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione competenze tecniche\r\n function getCompetenzeTecniche(dipendenteId) {\r\n return datacontext.competenzaTecnica_getAll(dipendenteId).then(function (data) {\r\n return vm.list.competenzeTecniche = data;\r\n });\r\n }\r\n\r\n function deleteCompetenzaTecnica(item, index) {\r\n var msg = \" \" + $translate.instant('la competenza tecnica') + \" \" + item.Competenza;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.competenzaTecnica_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n vm.list.competenzeTecniche.splice(index, 1);\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function addCompetenzaTecnica() {\r\n var modalCompentezaTecnica = {};\r\n modalCompentezaTecnica.Id = 0;\r\n modalCompentezaTecnica.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/competenzaTecnicaAddEdit.html?version=30',\r\n controller: 'competenzaTecnicaAddEdit',\r\n resolve: {\r\n competenza: function () {\r\n return modalCompentezaTecnica;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError('Errore durante la creazione del dato ');\r\n\r\n logSuccess($translate.instant('Competenza tecnica aggiunta con successo'));\r\n getCompetenzeTecniche(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editCompetenzaTecnica(item) {\r\n var modalCompentezaTecnica = {};\r\n angular.copy(item, modalCompentezaTecnica);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/competenzaTecnicaAddEdit.html?version=30',\r\n controller: 'competenzaTecnicaAddEdit',\r\n resolve: {\r\n competenza: function () {\r\n return modalCompentezaTecnica;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError('Errore durante la modifica del dato ');\r\n\r\n logSuccess($translate.instant('Competenza digitale modificata con successo'));\r\n getCompetenzeTecniche(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n // Gestione lingue\r\n function getLingue(dipendenteId) {\r\n return datacontext.lingua_getAll(dipendenteId).then(function (data) {\r\n return vm.list.lingue = data;\r\n });\r\n }\r\n\r\n function deleteLingua(item, index) {\r\n var msg = \" \" + $translate.instant('la lingua') + \" \" + item.Nome;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.lingua_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n\r\n vm.list.lingue.splice(index, 1);\r\n getFasi(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n function addLingua() {\r\n var modalLingua = {};\r\n modalLingua.Id = 0;\r\n modalLingua.DipendenteId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/linguaAddEdit.html?version=30',\r\n controller: 'linguaAddEdit',\r\n resolve: {\r\n lingua: function () {\r\n return modalLingua;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError($translate.instant('Errore durante la creazione del dato'));\r\n\r\n logSuccess($translate.instant('Lingua aggiunta con successo'));\r\n getLingue(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n function editLingua(item) {\r\n var modalLingua = {};\r\n angular.copy(item, modalLingua);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/curriculum/modal/linguaAddEdit.html?version=30',\r\n controller: 'linguaAddEdit',\r\n resolve: {\r\n lingua: function () {\r\n return modalLingua;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem || returnItem == \"500\") return logError('Errore durante la modifica del dato ');\r\n\r\n logSuccess($translate.instant('Lingua modificata con successo'));\r\n getLingue(vm.record.Id);\r\n getFasi(vm.record.Id);\r\n });\r\n }\r\n\r\n //Fasi \r\n function getFasi(dipendenteId) {\r\n return datacontext.faseCurriculum_getAll(dipendenteId).then(function (data) {\r\n if (data.length > 0) {\r\n var stato = 0;\r\n data.forEach(function (item) {\r\n stato += item.Completed;\r\n });\r\n $rootScope.statoCV = stato;\r\n }\r\n\r\n return vm.list.fasi = data;\r\n });\r\n }\r\n\r\n // List province e comuni\r\n function getProvince() {\r\n if (vm.list.province.length > 0) return;\r\n\r\n datacontext.arrProvincie().then(function (data) {\r\n vm.list.province = data;\r\n });\r\n }\r\n\r\n function getComuni(idprov) {\r\n if (!idprov || idprov == 0) return vm.list.comuni = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return vm.list.comuni = data;\r\n });\r\n }\r\n\r\n function apriTutti(value) {\r\n vm.showInfo = value;\r\n vm.showEsperienzeLavorative = value;\r\n vm.showDettaglioProgetti = value;\r\n vm.showIstruzioni = value;\r\n vm.showFormazioni = value;\r\n vm.showCompetenzePersonali = value;\r\n vm.showCompetenzeLinguistiche = value;\r\n vm.bApriTutti = !vm.bApriTutti;\r\n }\r\n\r\n //Gestione Attach\r\n function setfAttach() {\r\n if (vm.checkfAttach == false) {\r\n vm.fAttach.TAttachId = '';\r\n }\r\n }\r\n\r\n function getTSource(code) {\r\n if (!code) return;\r\n\r\n return datacontext.tSource_getByCode(code).then(function (data) {\r\n return vm.tSource = data;\r\n });\r\n }\r\n\r\n function getTAttach(code) {\r\n if (!code) return;\r\n\r\n return datacontext.tAttach_getAllList(code, 0, 0, 0).then(function (data) {\r\n return vm.tAttach = data;\r\n });\r\n }\r\n\r\n function getListAttach(id) {\r\n if (!id) return;\r\n\r\n return datacontext.attach_getAll(0, 0, vm.tSourceCode_def, 0, id, vm.fAttach.TAttachId, '').then(function (data) {\r\n vm.list.b_attach = true;\r\n return vm.list.attach = data;\r\n });\r\n }\r\n\r\n function addAttach(item) {\r\n var recTSource = { Id: vm.tSource.Id, Name: vm.tSource.Name };\r\n var recSource = { Id: vm.record.Id, Name: vm.record.Nominativo };\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/attach/modal/attachAdd.html?version=30',\r\n controller: 'attachAdd',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n tSource: function () {\r\n return [recTSource];\r\n },\r\n tSourceCode: function () {\r\n return vm.tSource.Code;\r\n },\r\n tSourceId: function () {\r\n return vm.tSource.Id;\r\n },\r\n source: function () {\r\n return [recSource];\r\n },\r\n sourceId: function () {\r\n return recSource.Id;\r\n },\r\n tAttach: function () {\r\n //return null;\r\n return vm.tAttach[0];\r\n },\r\n tAttachId: function () {\r\n //return null;\r\n return vm.tAttach[0].Id;\r\n },\r\n attach: function () {\r\n return item;\r\n },\r\n //lista: function () {\r\n // return vm.list.attach;\r\n //}\r\n dipendenteId: function () {\r\n return vm.record.Id;\r\n },\r\n tSourceCode_def: function () {\r\n return vm.tSourceCode_def;\r\n }\r\n //tSourceCode_def: function () {\r\n // return vm.fAttach.TAttachId;\r\n //}\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"406\") return logError($translate.instant('Errore: formato allegato non corretto'));\r\n if (returnItem == \"400\") return logError($translate.instant('Errore registrazione dati') + \" \" + [' + returnItem + ']);\r\n\r\n\r\n //logSuccess('ciaoooo');\r\n //getListAttach(vm.anagrafica.Id);\r\n datacontext.dipendente_get(vm.record.Id).then(function (data) {\r\n return vm.record = data;\r\n });\r\n\r\n //vm.record.stat_numAttach = vm.record.stat_numAttach + 1;\r\n }, function () {\r\n //log('Modal dismissed at: ' + new Date());\r\n });\r\n }\r\n\r\n function deleteAttach(item) {\r\n var msg = \" \" + $translate.instant('Allegato') + \" \" + item.Name;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.attach_delete(item.Id).then(function (data) {\r\n if (data == \"400\") return logError($translate.instant('Attenzione: allegato non cancellabile'));\r\n\r\n var index = vm.list.attach.indexOf(item);\r\n vm.list.attach.splice(index, 1);\r\n //vm.record.stat_numAttach = vm.record.stat_numAttach - 1;\r\n });\r\n });\r\n }\r\n\r\n function addFirma(item) {\r\n var recTSource = { Id: vm.tSource.Id, Name: vm.tSource.Name };\r\n var recSource = { Id: vm.record.Id, Name: vm.record.Nominativo };\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/attach/modal/attachAddFirma.html?version=30',\r\n controller: 'attachAddFirma',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n tSource: function () {\r\n return [recTSource];\r\n },\r\n tSourceCode: function () {\r\n return vm.tSource.Code;\r\n },\r\n tSourceId: function () {\r\n return vm.tSource.Id;\r\n },\r\n source: function () {\r\n return [recSource];\r\n },\r\n sourceId: function () {\r\n return recSource.Id;\r\n },\r\n tAttach: function () {\r\n //return null;\r\n return vm.tAttach[1];\r\n },\r\n tAttachId: function () {\r\n //return null;\r\n return vm.tAttach[1].Id;\r\n },\r\n attach: function () {\r\n return item;\r\n },\r\n tSourceCode_def: function () {\r\n return vm.tSourceCode_def;\r\n },\r\n dipendenteId: function () {\r\n return vm.record.Id;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"406\") return logError($translate.instant('Errore: formato allegato non corretto'));\r\n if (returnItem == \"400\") return logError($translate.instant('Errore registrazione dati') + \" \" + [' + returnItem + ']);\r\n\r\n\r\n getRecord(vm.record.Id);\r\n }, function () {\r\n });\r\n }\r\n }\r\n})();\r\n","// app/dashboard/dashboard_Personale.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'dashboard_CapoSezione';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$filter', '_', 'common', 'datacontext', 'sectionMenu', '$uibModal', '$translate', 'amMoment', 'tmhDynamicLocale', dashboard_CapoSezioneFn]);\r\n\r\n function dashboard_CapoSezioneFn($rootScope, $scope, $filter, _, common, datacontext, sectionMenu, $uibModal, $translate, amMoment, tmhDynamicLocale) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \" dashview\";\r\n var vm = this;\r\n vm.title = 'Project Manager';\r\n vm.sectionMenu = sectionMenu.setSection('');\r\n vm.getAll = getDashboard;\r\n vm.dipendente = {};\r\n vm.dashboard = {};\r\n vm.dashboard.ordinarioG = 0;\r\n vm.dashboard.straordinarioG = 0;\r\n vm.dashboard.viaggioG = 0;\r\n vm.dashboard.giustificativiG = 0;\r\n vm.dashboard.trasfertaG = 0;\r\n vm.dashboard.totaleG = 0;\r\n vm.dashboard.ordinarioS = 0;\r\n vm.dashboard.straordinarioS = 0;\r\n vm.dashboard.viaggioS = 0;\r\n vm.dashboard.giustificativiS = 0;\r\n vm.dashboard.trasfertaS = 0;\r\n vm.dashboard.totaleS = 0;\r\n vm.dashboard.ordinarioM = 0;\r\n vm.dashboard.straordinarioM = 0;\r\n vm.dashboard.viaggioM = 0;\r\n vm.dashboard.giustificativiM = 0;\r\n vm.dashboard.trasfertaM = 0;\r\n vm.dashboard.totaleM = 0;\r\n\r\n vm.currentLanguage = $translate.proposedLanguage() || $translate.use(); //Forzatura della lingua\r\n amMoment.changeLocale(vm.currentLanguage); //Forzatura della lingua\r\n tmhDynamicLocale.set(vm.currentLanguage); //Forzatura della lingua\r\n\r\n vm.strMese = '';\r\n var today = moment();\r\n vm.fMese = today.month() + 1;\r\n vm.fAnno = today.year();\r\n vm.strMese = common.strMese(vm.fMese, vm.currentLanguage);\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getDashboard(), getPerformance()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($rootScope.avvisoCV && $rootScope.statoCV < 7) {\r\n $uibModal.open({\r\n templateUrl: '/app/dashboard/modal/avvisoCurriculum.html?version=30',\r\n controller: 'avvisoCurriculum'\r\n });\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //**************************************************** \r\n function getDashboard() {\r\n datacontext.dashboard_get().then(function (data) {\r\n vm.dashboard = data;\r\n });\r\n }\r\n\r\n function getPerformance() {\r\n //Inizializzo la scala del grafico\r\n vm.maxValue = 10;\r\n vm.loading = true;\r\n $scope.graficoPerformance = {\r\n 'type': 'AreaChart',\r\n 'options': {\r\n 'legend': { 'position': 'none' },\r\n 'colors': ['#002854'],\r\n 'vAxis': {\r\n 'title': $translate.instant('OreLavoro'),\r\n 'titleTextStyle': { color: '#333' },\r\n 'minValue': 0,\r\n 'maxValue': parseInt(vm.maxValue)\r\n },\r\n 'hAxis': {\r\n 'textPosition': 'none',\r\n 'gridlines': { 'count': 10 }\r\n },\r\n 'pointSize': 8\r\n },\r\n 'formatters': {\r\n 'number': [\r\n {\r\n 'columnNum': 1,\r\n 'decimalSymbol': ',',\r\n 'fractionDigits': 2,\r\n 'groupingSymbol': '.'\r\n }\r\n ]\r\n }\r\n };\r\n\r\n //Inizializzo il grafico\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n datacontext.reportOre_getSum(vm.fAnno, vm.fMese, 0, 0, -1, -1, '', -1, 0).then(function (data) {\r\n if (data == null || data == \"500\" || data.length == 0) {\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n vm.loading = false;\r\n return;\r\n }\r\n\r\n var sortedPerformance = _.sortBy(data, 'Giorno');\r\n vm.primaData = $filter('dateFromValues')(_.first(sortedPerformance).Giorno, _.first(sortedPerformance).Mese, _.first(sortedPerformance).Anno);\r\n vm.ultimaData = $filter('dateFromValues')(_.last(sortedPerformance).Giorno, _.last(sortedPerformance).Mese, _.last(sortedPerformance).Anno);\r\n\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n sortedPerformance.forEach(function (obj) {\r\n var item = {};\r\n item.c = [];\r\n var tmpMaxValue = vm.maxValue;\r\n\r\n var desc = $filter('dateFromValues')(obj.Giorno, obj.Mese, obj.Anno);\r\n\r\n if (obj.SommaOre > tmpMaxValue)\r\n tmpMaxValue = obj.SommaOre + 10;\r\n\r\n item.c.push({ v: desc });\r\n item.c.push({ v: obj.SommaOre });\r\n\r\n $scope.graficoPerformance.data.rows.push(item);\r\n\r\n if (tmpMaxValue > vm.maxValue)\r\n vm.maxValue = tmpMaxValue;\r\n });\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n }\r\n})();","// app/dashboard/dashboard_Personale.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'dashboard_Personale';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$filter', '_', 'common', 'datacontext', 'sectionMenu', '$uibModal', '$translate', 'amMoment', 'tmhDynamicLocale', dashboard_PersonaleFn]);\r\n\r\n function dashboard_PersonaleFn($rootScope, $scope, $filter, _, common, datacontext, sectionMenu, $uibModal, $translate, amMoment, tmhDynamicLocale) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \" dashview\";\r\n var vm = this;\r\n vm.title = $translate.instant('Gestore');\r\n vm.sectionMenu = sectionMenu.setSection('');\r\n vm.getAll = getDashboard;\r\n vm.dipendente = {};\r\n vm.dashboard = {};\r\n vm.dashboard.ordinarioG = 0;\r\n vm.dashboard.straordinarioG = 0;\r\n vm.dashboard.viaggioG = 0;\r\n vm.dashboard.giustificativiG = 0;\r\n vm.dashboard.trasfertaG = 0;\r\n vm.dashboard.totaleG = 0;\r\n vm.dashboard.ordinarioS = 0;\r\n vm.dashboard.straordinarioS = 0;\r\n vm.dashboard.viaggioS = 0;\r\n vm.dashboard.giustificativiS = 0;\r\n vm.dashboard.trasfertaS = 0;\r\n vm.dashboard.totaleS = 0;\r\n vm.dashboard.ordinarioM = 0;\r\n vm.dashboard.straordinarioM = 0;\r\n vm.dashboard.viaggioM = 0;\r\n vm.dashboard.giustificativiM = 0;\r\n vm.dashboard.trasfertaM = 0;\r\n vm.dashboard.totaleM = 0;\r\n\r\n vm.currentLanguage = $translate.proposedLanguage() || $translate.use(); //Forzatura della lingua\r\n amMoment.changeLocale(vm.currentLanguage); //Forzatura della lingua\r\n tmhDynamicLocale.set(vm.currentLanguage); //Forzatura della lingua\r\n\r\n vm.strMese = '';\r\n var today = moment();\r\n vm.fMese = today.month() + 1;\r\n vm.fAnno = today.year();\r\n vm.strMese = common.strMese(vm.fMese, vm.currentLanguage);\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [$rootScope.getWhoAmI()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n getDashboard();\r\n getPerformance();\r\n \r\n if ($rootScope.avvisoCV && $rootScope.statoCV < 7) {\r\n $uibModal.open({\r\n templateUrl: '/app/dashboard/modal/avvisoCurriculum.html?version=30',\r\n controller: 'avvisoCurriculum'\r\n });\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //**************************************************** \r\n function getDashboard() {\r\n datacontext.dashboard_get().then(function (data) {\r\n vm.dashboard = data;\r\n });\r\n }\r\n\r\n function getPerformance() {\r\n //Inizializzo la scala del grafico\r\n vm.maxValue = 10;\r\n vm.loading = true;\r\n $scope.graficoPerformance = {\r\n 'type': 'AreaChart',\r\n 'options': {\r\n 'legend': { 'position': 'none' },\r\n 'colors': ['#002854'],\r\n 'vAxis': {\r\n 'title': $translate.instant('OreLavoro'),\r\n 'titleTextStyle': { color: '#333' },\r\n 'minValue': 0,\r\n 'maxValue': parseInt(vm.maxValue)\r\n },\r\n 'hAxis': {\r\n 'textPosition': 'none',\r\n 'gridlines': { 'count': 10 }\r\n },\r\n 'pointSize': 8\r\n },\r\n 'formatters': {\r\n 'number': [\r\n {\r\n 'columnNum': 1,\r\n 'decimalSymbol': ',',\r\n 'fractionDigits': 2,\r\n 'groupingSymbol': '.'\r\n }\r\n ]\r\n }\r\n };\r\n\r\n //Inizializzo il grafico\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n datacontext.reportOre_getSum(vm.fAnno, vm.fMese, 0, 0, -1, -1, '', -1, 0).then(function (data) {\r\n if (data == null || data == \"500\" || data.length == 0) {\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n vm.loading = false;\r\n return;\r\n }\r\n\r\n var sortedPerformance = _.sortBy(data, 'Giorno');\r\n vm.primaData = $filter('dateFromValues')(_.first(sortedPerformance).Giorno, _.first(sortedPerformance).Mese, _.first(sortedPerformance).Anno);\r\n vm.ultimaData = $filter('dateFromValues')(_.last(sortedPerformance).Giorno, _.last(sortedPerformance).Mese, _.last(sortedPerformance).Anno);\r\n\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n sortedPerformance.forEach(function (obj) {\r\n var item = {};\r\n item.c = [];\r\n var tmpMaxValue = vm.maxValue;\r\n\r\n var desc = $filter('dateFromValues')(obj.Giorno, obj.Mese, obj.Anno);\r\n\r\n if (obj.SommaOre > tmpMaxValue)\r\n tmpMaxValue = obj.SommaOre + 10;\r\n\r\n item.c.push({ v: desc });\r\n item.c.push({ v: obj.SommaOre });\r\n\r\n $scope.graficoPerformance.data.rows.push(item);\r\n\r\n if (tmpMaxValue > vm.maxValue)\r\n vm.maxValue = tmpMaxValue;\r\n });\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n }\r\n})();\r\n","// app/dashboard/dashboard_Super.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'dashboard_Super';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', 'common', 'datacontext', 'sectionMenu', dashboard_SuperFn]);\r\n\r\n function dashboard_SuperFn($rootScope, $scope, common, datacontext, sectionMenu) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \" dashview\";\r\n var vm = this;\r\n vm.title = 'Superuser';\r\n vm.sectionMenu = sectionMenu.setSection(''); \r\n vm.getAll = getDashboard();\r\n vm.dashboard = {};\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getDashboard()];\r\n common.activateController(promises, controllerId)\r\n .then(function () { });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function getDashboard() {\r\n /*datacontext.dashboard_get().then(function (data) {\r\n vm.dashboard = data;\r\n });*/\r\n }\r\n }\r\n})();","// app/dashboard/dashboard_Utente.js\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'dashboard_Utente';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$filter', '_', 'common', 'datacontext', 'sectionMenu', '$uibModal', '$translate', 'amMoment', 'tmhDynamicLocale', dashboard_UtenteFn]);\r\n\r\n function dashboard_UtenteFn($rootScope, $scope, $filter, _, common, datacontext, sectionMenu, $uibModal, $translate, amMoment, tmhDynamicLocale) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \" dashview\";\r\n var vm = this;\r\n vm.title = $translate.instant('Utente');\r\n vm.sectionMenu = sectionMenu.setSection(''); \r\n vm.getAll = getDashboard;\r\n vm.dashboard = {};\r\n vm.dashboard.ordinarioG = 0;\r\n vm.dashboard.straordinarioG = 0;\r\n vm.dashboard.viaggioG = 0;\r\n vm.dashboard.giustificativiG = 0;\r\n vm.dashboard.trasfertaG = 0;\r\n vm.dashboard.totaleG = 0;\r\n vm.dashboard.ordinarioS = 0;\r\n vm.dashboard.straordinarioS = 0;\r\n vm.dashboard.viaggioS = 0;\r\n vm.dashboard.giustificativiS = 0;\r\n vm.dashboard.trasfertaS = 0;\r\n vm.dashboard.totaleS = 0;\r\n vm.dashboard.ordinarioM = 0;\r\n vm.dashboard.straordinarioM = 0;\r\n vm.dashboard.viaggioM = 0;\r\n vm.dashboard.giustificativiM = 0;\r\n vm.dashboard.trasfertaM = 0;\r\n vm.dashboard.totaleM = 0;\r\n\r\n vm.currentLanguage = $translate.proposedLanguage() || $translate.use(); //Forzatura della lingua\r\n amMoment.changeLocale(vm.currentLanguage); //Forzatura della lingua\r\n tmhDynamicLocale.set(vm.currentLanguage); //Forzatura della lingua\r\n\r\n vm.strMese = '';\r\n var today = moment();\r\n vm.fMese = today.month() + 1;\r\n vm.fAnno = today.year();\r\n vm.strMese = common.strMese(vm.fMese, vm.currentLanguage);\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getDashboard(), getPerformance()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($rootScope.avvisoCV && $rootScope.statoCV < 7) {\r\n $uibModal.open({\r\n templateUrl: '/app/dashboard/modal/avvisoCurriculum.html?version=30',\r\n controller: 'avvisoCurriculum'\r\n });\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //**************************************************** \r\n function getDashboard() {\r\n datacontext.dashboard_get().then(function (data) { \r\n vm.dashboard = data;\r\n });\r\n }\r\n\r\n function getPerformance() {\r\n //Inizializzo la scala del grafico\r\n vm.maxValue = 10;\r\n vm.loading = true;\r\n $scope.graficoPerformance = {\r\n 'type': 'AreaChart',\r\n 'options': {\r\n 'legend': { 'position': 'none' },\r\n 'colors': ['#002854'],\r\n 'vAxis': {\r\n 'title': $translate.instant('OreLavoro'),\r\n 'titleTextStyle': { color: '#333' },\r\n 'minValue': 0,\r\n 'maxValue': parseInt(vm.maxValue)\r\n },\r\n 'hAxis': {\r\n 'textPosition': 'none',\r\n 'gridlines': { 'count': 10 }\r\n },\r\n 'pointSize': 8\r\n },\r\n 'formatters': {\r\n 'number': [\r\n {\r\n 'columnNum': 1,\r\n 'decimalSymbol': ',',\r\n 'fractionDigits': 2,\r\n 'groupingSymbol': '.'\r\n }\r\n ]\r\n }\r\n };\r\n\r\n //Inizializzo il grafico\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n datacontext.reportOre_getSum(vm.fAnno, vm.fMese, 0, 0, -1, -1, '', -1, 0).then(function (data) {\r\n if (data == null || data == \"500\" || data.length == 0) {\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n vm.loading = false;\r\n return;\r\n }\r\n\r\n var sortedPerformance = _.sortBy(data, 'Giorno');\r\n vm.primaData = $filter('dateFromValues')(_.first(sortedPerformance).Giorno, _.first(sortedPerformance).Mese, _.first(sortedPerformance).Anno);\r\n vm.ultimaData = $filter('dateFromValues')(_.last(sortedPerformance).Giorno, _.last(sortedPerformance).Mese, _.last(sortedPerformance).Anno);\r\n\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n sortedPerformance.forEach(function (obj) {\r\n var item = {};\r\n item.c = [];\r\n var tmpMaxValue = vm.maxValue;\r\n\r\n var desc = $filter('dateFromValues')(obj.Giorno, obj.Mese, obj.Anno);\r\n\r\n if (obj.SommaOre > tmpMaxValue)\r\n tmpMaxValue = obj.SommaOre + 10;\r\n\r\n item.c.push({ v: desc });\r\n item.c.push({ v: obj.SommaOre });\r\n\r\n $scope.graficoPerformance.data.rows.push(item);\r\n\r\n if (tmpMaxValue > vm.maxValue)\r\n vm.maxValue = tmpMaxValue;\r\n });\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n }\r\n})();","//app/dipendente/dipendenti.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'dipendente';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$routeParams', '$filter', 'common', '$location', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', dipendenteFn]);\r\n\r\n function dipendenteFn($rootScope, $scope, $routeParams, $filter, common, $location, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this, onRouteChangeOff;\r\n //vm.title = 'Dipendenti';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection('Dipendenti'); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0; \r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.personale = $rootScope.isAuthorized('PERSONALE');\r\n vm.capoSezione = $rootScope.isAuthorized('CAPOSEZIONE');\r\n vm.addDisabled = !vm.super && !vm.personale;\r\n\r\n vm.item = {};\r\n\r\n //datapicker\r\n vm.dtInizio_open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.dtInizio_opened = !vm.dtInizio_opened;\r\n vm.dtFine_opened = vm.dtNascita_opened = false;\r\n };\r\n vm.dtFine_open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.dtFine_opened = !vm.dtFine_opened;\r\n vm.dtInizio_opened = vm.dtNascita_opened = false;\r\n };\r\n vm.dtNascita_open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.dtNascita_opened = !vm.dtNascita_opened;\r\n vm.dtInizio_opened = vm.dtFine_opened = false;\r\n };\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.format = 'dd/MM/yyyy';\r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Nominativo', 'Matricola'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n //Elenchi dettaglio \r\n vm.list.profili = []; //Profili orari del dipendente\r\n vm.list.profiloOre = []; //Elenco profili orari generale\r\n vm.list.aziendePartner = [];\r\n vm.list.province = [];\r\n vm.list.comuni = [];\r\n vm.list.ruoli = [];\r\n vm.list.aziendePartner = [];\r\n vm.list.sezioni = [];\r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.stato = vm.fStato = 0;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n vm.filter.aziendaPartner = vm.fAziendaPartner = 0;\r\n vm.filter.ruolo = vm.fRuolo = 0;\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n vm.update = updateItem;\r\n vm.add = addDipendente;\r\n vm.delete = deleteItem;\r\n\r\n vm.getComuni = getComuni;\r\n\r\n //Gestione costi \r\n vm.addCosto = addCosto;\r\n vm.editCosto = editCosto;\r\n vm.deleteCosto = deleteCosto;\r\n\r\n //Gestione profilo orario \r\n vm.addProfilo = addProfilo;\r\n vm.editProfilo = editProfilo;\r\n vm.deleteProfilo = deleteProfilo;\r\n\r\n //Gestione account\r\n vm.getAccount = getAccount;\r\n vm.updateAccount = updateAccount;\r\n vm.updatePassword = updatePassword;\r\n vm.resetPassword = resetPassword;\r\n vm.invioCredenziali = invioCredenziali;\r\n vm.newAccount = newAccount;\r\n\r\n //Gestione team\r\n vm.getTeam = getTeam;\r\n vm.addTeam = addTeam;\r\n vm.deleteTeam = deleteTeam;\r\n\r\n //Gestione commessa\r\n vm.getCommessa = getCommessa;\r\n vm.addCommessa = addCommessa;\r\n vm.deleteCommessa = deleteCommessa;\r\n\r\n //Gestione sezione\r\n vm.getSezione = getSezione;\r\n vm.addSezione = addSezione;\r\n vm.deleteSezione = deleteSezione;\r\n\r\n vm.confirmRoute = confirmRoute;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getProfiloOre(), getListAziendePartner(), getRuoli(), getProvince()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.DipendenteId != null) {\r\n setView('detail');\r\n getRecord($routeParams.DipendenteId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n vm.item.editFormAccount = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n if (view == 'list')\r\n cerca();\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.stato = vm.fStato == null ? 0 : vm.fStato;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n vm.filter.aziendaPartner = vm.fAziendaPartner == null ? 0 : vm.fAziendaPartner;\r\n vm.filter.ruolo = vm.fRuolo == null ? 0 : vm.fRuolo;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.dipendenteConRuolo_countAll(vm.filter.stato, vm.filter.ricerca, vm.filter.aziendaPartner, vm.filter.ruolo).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.dipendenteConRuolo_getAll(vm.pageSize, vm.page, vm.filter.stato, vm.filter.ricerca, vm.filter.aziendaPartner, vm.filter.ruolo, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n vm.list.profili = []; \r\n\r\n return datacontext.dipendente_get(id).then(function (data) { \r\n vm.index = index;\r\n\r\n if(data.ProvinciaId)\r\n getComuni(data.ProvinciaId); \r\n\r\n if (data.DataNascita) data.DataNascita = new Date(data.DataNascita);\r\n if (data.DataInizio) data.DataInizio = new Date(data.DataInizio);\r\n if (data.DataFine) data.DataFine = new Date(data.DataFine);\r\n\r\n vm.record = data;\r\n getRuoli();\r\n\r\n if (vm.record.Costi.length > 0)\r\n vm.record.CostoOra = vm.record.Costi[0].CostoOra;\r\n\r\n if (vm.super || vm.personale)\r\n getAccount();\r\n \r\n setView('detail');\r\n });\r\n } \r\n\r\n function addDipendente() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/dipendenteAdd.html?version=30',\r\n controller: 'dipendenteAdd'\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la creazione del dato'));\r\n\r\n logSuccess($translate.instant('Record creato con successo'));\r\n vm.records.push(returnItem);\r\n vm.countRecords++;\r\n });\r\n }\r\n\r\n function updateItem() {\r\n return datacontext.dipendente_update(vm.record).then(function (data) {\r\n if (!data) {\r\n if (vm.recordForm)\r\n vm.recordForm.$setPristine();\r\n\r\n getRecord(vm.record.Id);\r\n logSuccess($translate.instant('Dato salvato'));\r\n }\r\n else {\r\n if (data == 409)\r\n logError($translate.instant('Sigla Protocollo esistente, dato non salvato'));\r\n else\r\n logError($translate.instant('Impossibile salvare il dato'));\r\n }\r\n });\r\n }\r\n\r\n function deleteItem(item) {\r\n var msg = \" \" + $translate.instant('il dipendente') + \" \" + item.Nominativo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dipendente_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Impossibile eliminare il dipendente')+ \" \" + item.Nominativo);\r\n logSuccess($translate.instant('Dipendente eliminato con successo'));\r\n cerca();\r\n });\r\n });\r\n }\r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.accountForm)\r\n vm.item.editFormAccount = vm.accountForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog($translate.instant('Modifiche non salvate'), $translate.instant('Sono presenti modifiche non salvate'), $translate.instant('Salva modifiche e procedi'), $translate.instant('Annulla modifiche e procedi')).then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.update(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/dipendente\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError($translate.instant('Compilare i campi obbligatori'));\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/dipendente\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n } else if (vm.item.editFormAccount) {\r\n bDialog.confirmationDialog($translate.instant('Modifiche non salvate'), $translate.instant('Sono presenti modifiche non salvate'), $translate.instant('Salva modifiche e procedi'), $translate.instant('Annulla modifiche e procedi')).then(function () { //YES\r\n if (vm.accountForm.$valid) {\r\n vm.updateAccount(vm.accountForm.$event);\r\n\r\n vm.item.editFormAccount = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/dipendente\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError($translate.instant('Compilare i campi obbligatori'));\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editFormAccount = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/dipendente\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n vm.item.editFormAccount = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n $location.url(\"/dipendente\");\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n //Get list\r\n function getListAziendePartner() {\r\n return datacontext.aziendaPartner_getAllList().then(function (data) { \r\n return vm.list.aziendePartner = data;\r\n });\r\n }\r\n\r\n function getProfiloOre() {\r\n return datacontext.profiloOre_getAllList().then(function (data) {\r\n return vm.list.profiloOre = data;\r\n });\r\n }\r\n \r\n function getProvince() {\r\n if (vm.list.province.length > 0) return;\r\n\r\n datacontext.arrProvincie().then(function (data) {\r\n vm.list.province = data;\r\n });\r\n }\r\n\r\n function getComuni(idprov) {\r\n if (!idprov || idprov == 0) return vm.list.comuni = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return vm.list.comuni = data;\r\n });\r\n }\r\n\r\n //Gestione costi \r\n function addCosto() {\r\n datacontext.costiBase_getDefault().then(function (data) {\r\n if (data.constructor === Array) {\r\n var modalCosto = {};\r\n modalCosto.Id = 0;\r\n modalCosto.DipendenteId = vm.record.Id;\r\n modalCosto.CostoOra = _.find(data, function (o) { return o.Tipo == \"Base\"; }).Valore;\r\n modalCosto.CostoOraStruttura = _.find(data, function (o) { return o.Tipo == \"Struttura\"; }).Valore;\r\n modalCosto.Anno = (new Date()).getFullYear();\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/costoAddEdit.html?version=30',\r\n controller: 'costoAddEdit',\r\n resolve: {\r\n costo: function () {\r\n return modalCosto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Costi aggiunti con successo '));\r\n vm.record = getRecord(vm.record.Id, vm.index);\r\n });\r\n }\r\n else\r\n logError($translate.instant('Configurare Costi Base'));\r\n });\r\n }\r\n\r\n function editCosto(item) {\r\n var modalCosto = {};\r\n angular.copy(item, modalCosto);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/costoAddEdit.html?version=30', // utilizzo la stessa modale sia per aggiungere che per modificare \r\n controller: 'costoAddEdit',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n costo: function () { // in questo caso passiamo un solo oggetto che si chiama 'costo' che ha come valore modalIncontro\r\n return modalCosto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato')); // analizza l'oggetto tornato 'returnItem' = 'costoAddEdit.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n\r\n logSuccess($translate.instant('Costi modificati con successo'));\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n });\r\n }\r\n\r\n function deleteCosto(item) {\r\n var msg = \" \" + $translate.instant('i costi per lanno') + \" \" + item.Anno;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.costoDipendente_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n });\r\n });\r\n }\r\n\r\n //Gestione Profilo orario\r\n function addProfilo() {\r\n var modalProfilo = {};\r\n modalProfilo.Id = 0;\r\n modalProfilo.dipendenteId = vm.record.Id; \r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/profiloOrarioAddEdit.html?version=30',\r\n controller: 'profiloOrarioAddEdit',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n profiliOre: function () {\r\n return vm.list.profiloOre;\r\n },\r\n profilo: function () {\r\n return modalProfilo;\r\n },\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n logSuccess($translate.instant('Profilo orario aggiunto con successo'));\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione \r\n });\r\n }\r\n \r\n function editProfilo(item) {\r\n var modalProfilo = {};\r\n angular.copy(item, modalProfilo);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/profiloOrarioAddEdit.html?version=30',\r\n controller: 'profiloOrarioAddEdit',\r\n resolve: { \r\n profiliOre: function () {\r\n return vm.list.profiloOre;\r\n },\r\n profilo: function () { \r\n return modalProfilo;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n \r\n logSuccess($translate.instant('Profilo orario modificato con successo'));\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n });\r\n }\r\n\r\n function deleteProfilo(item) {\r\n var msg = \" \" + $translate.instant('il profilo orario') + \" \" + item.profiloOreTipo + \" \" + $translate.instant('dal Dipendente') + \" \" + vm.record.Nominativo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.profiloDipendenti_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Profilo eliminato con successo'));\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n });\r\n });\r\n }\r\n\r\n\r\n //Gestione account\r\n function getAccount() { \r\n datacontext.user_getByDipendenteId(vm.record.Id).then(function (data) { \r\n vm.account = data;\r\n if (vm.account.Id > 0) {\r\n vm.account.Password = '';\r\n vm.confPassword = '';\r\n vm.account.ruolo = vm.account.Roles[0].Id;\r\n vm.account.DtAttivazione = new Date(vm.account.DtAttivazione);\r\n }\r\n });\r\n }\r\n\r\n function updateAccount() {\r\n vm.account.Roles[0] = { 'Id': vm.account.ruolo };\r\n vm.account.DtAttivazione = new Date(vm.account.DtAttivazione);\r\n return datacontext.user_update(vm.account).then(function (data) {\r\n if (!data) {\r\n if (vm.accountForm)\r\n vm.accountForm.$setPristine();\r\n logSuccess($translate.instant('Dato salvato'));\r\n }\r\n else\r\n logError($translate.instant('Impossibile salvare il dato'));\r\n });\r\n }\r\n\r\n function updatePassword() {\r\n if (vm.account.Password != vm.confPassword) {\r\n logError($translate.instant('Le due password devono coincidere'));\r\n return;\r\n }\r\n\r\n vm.account.DtAttivazione = new Date(vm.account.DtAttivazione);\r\n return datacontext.user_update(vm.account).then(function (data) {\r\n if (!data) {\r\n logSuccess($translate.instant('Dato salvato'));\r\n }\r\n else\r\n logError($translate.instant('Impossibile salvare il dato'));\r\n });\r\n }\r\n\r\n //Manda una email all'utente con un link di accesso al Reset Password\r\n //dove l'utente può inserire una nuova password per il suo account\r\n function resetPassword() {\r\n var msg = \" \" + $translate.instant('Sara inviata una email all utente') + \" \" + vm.account.Username + \" \" + $translate.instant('contenente le istruzioni per eseguire il reset');\r\n bDialog.confirmationDialog('Reset Password', msg, 'OK').then(function () {\r\n return datacontext.user_resetPassword(vm.account.Email).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Impossibile eseguire operazione'));\r\n\r\n logSuccess($translate.instant('Operazione effettuata con successo'));\r\n });\r\n });\r\n }\r\n\r\n function invioCredenziali() {\r\n var msg = \" \" + $translate.instant('Sara inviata una email all utente') + \" \" + vm.account.Username + \" \" + $translate.instant('contenente le credenziali per accesso alla piattaforma');\r\n bDialog.confirmationDialog($translate.instant('Invio Credenziali'), msg, 'OK').then(function () {\r\n return datacontext.user_invioCredenziali(vm.account.Email).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Impossibile eseguire operazione'));\r\n logSuccess($translate.instant('Operazione effettuata con successo'));\r\n });\r\n });\r\n }\r\n\r\n function getRuoli() {\r\n if ($rootScope.isAuthorized('SUPER') ||\r\n $rootScope.isAuthorized('PERSONALE') || vm.capoSezione) {\r\n return datacontext.role_getAll().then(function (data) {\r\n var roles = [];\r\n data.forEach(function (item) {\r\n if (item.Name != \"SUPER\")\r\n roles.push(item);\r\n });\r\n return vm.list.ruoli = roles;\r\n });\r\n }\r\n else\r\n return vm.list.ruoli = [];\r\n }\r\n\r\n function newAccount() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/userDipendenteAdd.html?version=30',\r\n controller: 'userDipendenteAdd',\r\n resolve: {\r\n ruoli: function () {\r\n return vm.list.ruoli;\r\n },\r\n dipendenteId: function () {\r\n return vm.record.Id;\r\n },\r\n nominativo: function () {\r\n return vm.record.Nominativo;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la creazione del dato'));\r\n\r\n logSuccess($translate.instant('Record creato con successo'));\r\n getAccount();\r\n });\r\n };\r\n\r\n //Gestione Team\r\n function getTeam() {\r\n vm.team = [];\r\n datacontext.dipendentiTeam_getAll(0, vm.record.Id).then(function (data) {\r\n if (data.constructor === Array) {\r\n data.forEach(function (item) {\r\n vm.team.push(\r\n {\r\n Id: item.Id,\r\n ruolo: item.ruolo,\r\n team: item.team,\r\n teamId: item.teamId,\r\n numMembri: item.numMembri\r\n }\r\n );\r\n });\r\n }\r\n });\r\n }\r\n \r\n function addTeam() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/teamAdd.html?version=30',\r\n controller: 'teamAdd',\r\n windowClass: 'modal-wide',\r\n resolve: { \r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n var ruolo = returnItem.ruolo;\r\n return datacontext.dipendentiTeam_add(returnItem.id, vm.record.Id, ruolo).then(function (data) {\r\n if (data == \"409\")\r\n return logError($translate.instant('Dipendente gia presente'));\r\n else if (data) {\r\n //vm.records[vm.index] = data;\r\n logSuccess('Dati salvati');\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione \r\n getTeam();\r\n }\r\n else\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n });\r\n });\r\n\r\n }\r\n function deleteTeam(item) { \r\n var msg = \" \" + $translate.instant('il dipendente') + \" \" + vm.record.Nominativo + \" \" + $translate.instant('dal Team')+ \" \" + item.team;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dipendentiTeam_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Team eliminato con successo'));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione \r\n getTeam();\r\n });\r\n });\r\n }\r\n\r\n //Gestione Commessa\r\n function getCommessa() {\r\n vm.commesse = [];\r\n datacontext.dipendentiCommessa_getAll(0, vm.record.Id).then(function (data) {\r\n if (data.constructor === Array) {\r\n data.forEach(function (item) {\r\n vm.commesse.push(\r\n {\r\n Id: item.Id,\r\n ruolo: item.ruolo,\r\n commessa: item.commessa,\r\n commessaId: item.commessaId,\r\n numMembri: item.numMembri\r\n }\r\n );\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n function addCommessa() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/commessaDipendenteAdd.html?version=30',\r\n controller: 'commessaDipendenteAdd',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n var ruolo = returnItem.ruolo;\r\n return datacontext.dipendentiCommessa_add(returnItem.id, vm.record.Id, ruolo).then(function (data) {\r\n if (data == \"409\")\r\n return logError($translate.instant('Commessa gia presente'));\r\n else if (data == \"300\")\r\n return logError($translate.instant('Leader gia presente'));\r\n else if (data == \"400\" || data == \"404\")\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n else {\r\n logSuccess($translate.instant('Dati salvati'));\r\n getCommessa();\r\n }\r\n });\r\n });\r\n\r\n }\r\n function deleteCommessa(item) {\r\n var msg = \" \" + $translate.instant('il dipendente') + \" \" + vm.record.Nominativo + \" \" + $translate.instant('dalla commessa') + \" \"+ item.commessa;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dipendentiCommessa_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Commessa eliminata con successo'));\r\n getCommessa();\r\n });\r\n });\r\n }\r\n\r\n //Gestione Sezione\r\n function getSezione() {\r\n vm.list.sezioni = [];\r\n datacontext.dipendenteSezione_getAll(0, vm.record.Id).then(function (data) {\r\n vm.list.sezioni = data;\r\n });\r\n }\r\n\r\n function addSezione() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/sezioneDipendenteAdd.html?version=30',\r\n controller: 'sezioneDipendenteAdd',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n dipendenteId: function () {\r\n return vm.record.Id;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"409\")\r\n return logError($translate.instant('Centro di costo gia presente'));\r\n else if (returnItem == \"400\" || returnItem == \"404\")\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n else {\r\n logSuccess($translate.instant('Dati salvati'));\r\n getSezione();\r\n }\r\n });\r\n }\r\n\r\n function deleteSezione(item) {\r\n var msg = \" \" + $translate.instant('il dipendente') + \" \" + vm.record.Nominativo + \" \" + $translate.instant('dal centro di costo') + \" \" + item.sezione;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dipendenteSezione_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Centro di costo eliminato con successo'));\r\n getSezione();\r\n });\r\n });\r\n }\r\n }\r\n})();\r\n","// app/giustificativi/giustificativo.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'giustificativo';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', giustificativoFn]);\r\n\r\n function giustificativoFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = $translate.instant('Giustificativi'); \r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection('Giustificativi'); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = false;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER'); \r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Ordine', 'Sigla', 'Giustificativo'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n //Elenchi dettaglio \r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n\r\n //Gestione giustificativo \r\n vm.add = addGiustificativo;\r\n vm.edit = editGiustificativo;\r\n vm.delete = deleteGiustificativo;\r\n \r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.giustificativoId != null) {\r\n setView('detail');\r\n getRecord($routeParams.giustificativoId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.giustificativo_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.giustificativo_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine.value).then(function (data) {\r\n\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n return datacontext.giustificativo_get(id).then(function (data) { \r\n vm.index = index;\r\n vm.record = data; \r\n \r\n\r\n setView('detail');\r\n });\r\n } \r\n\r\n //Gestione costi\r\n // implementazione del metodo addGiustificativo (definito sopra) che si scatena quando clicco sul bottone \"Aggiungi\" (nel tab Costi)\r\n function addGiustificativo() {\r\n var modalGiustificativo = {};\r\n modalGiustificativo.Id = 0; // devo aggiungere un nuovo record e sappiamo che ogni nuovo record è identificato da un Id pari a 0\r\n \r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/giustificativi/modal/giustificativoAddEdit.html?version=30', // utilizzo la stessa modale sia per aggiungere che per modificare \r\n controller: 'giustificativoAddEdit',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n giustificativo: function () { // in questo caso passiamo un solo oggetto che si chiama 'giustificativo' che ha come valore modalIncontro\r\n return modalGiustificativo;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato ')); // analizza l'oggetto tornato 'returnItem' = 'giustificativoAddEdit.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n\r\n logSuccess($translate.instant('Giustificativi aggiunti con successo'));\r\n vm.records.push(returnItem); //Aggiorno i dati in visualizzazione\r\n });\r\n }\r\n\r\n function editGiustificativo(item, index) {\r\n var modalGiustificativo = {};\r\n angular.copy(item, modalGiustificativo);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/giustificativi/modal/giustificativoAddEdit.html?version=30', // utilizzo la stessa modale sia per aggiungere che per modificare \r\n controller: 'giustificativoAddEdit',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n giustificativo: function () { // in questo caso passiamo un solo oggetto che si chiama 'giustificativo' che ha come valore modalIncontro\r\n return modalGiustificativo;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato ')); // analizza l'oggetto tornato 'returnItem' = 'giustificativoAddEdit.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n\r\n logSuccess($translate.instant('Giustificativi modificati con successo '));\r\n vm.records[index] = returnItem; //Aggiorno i dati in visualizzazione\r\n });\r\n }\r\n\r\n function deleteGiustificativo(item) {\r\n var msg = \" \" + $translate.instant(('il giustificativo'))+ \" \" + item.Sigla;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.giustificativo_delete(item.Id).then(function (data) {\r\n if (!data) return logError($translate.instant('Errore durante la rimozione del dato'));\r\n var index = vm.records.indexOf(item)\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n });\r\n });\r\n }\r\n }\r\n})();\r\n","// app/dipendente/dipendenti.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'dipendente_super';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', dipendente_superFn]);\r\n\r\n function dipendente_superFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = 'Dipendenti';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection(vm.title); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = false;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER'); \r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['nominativo', 'matricola', 'sezione'];\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n //Elenchi dettaglio\r\n vm.list.sezioni = [];\r\n vm.list.profili = []; //Profili orari del dipendente\r\n vm.list.profiloOre = []; //Elenco profili orari generale\r\n vm.list.nonAttivi = [];\r\n\r\n vm.provincie = [];\r\n vm.comuni = [];\r\n vm.getComuni = getComuni;\r\n //data\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n };\r\n\r\n vm.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened2 = !vm.opened2;\r\n };\r\n\r\n vm.open3 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened3 = !vm.opened3;\r\n };\r\n\r\n vm.clear = function ($event) {\r\n vm.fData = '';\r\n vm.changed = true;\r\n };\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.stato = vm.fStato = 0;\r\n vm.filter.sezione = vm.fSezione = 0;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord;\r\n vm.add = addDipendente;\r\n vm.update = updateItem;\r\n vm.delete = deleteItem;\r\n vm.getNonAttivi = getNonAttivi;\r\n\r\n //Gestione costi \r\n vm.addCosto = addCosto;\r\n vm.editCosto = editCosto;\r\n vm.deleteCosto = deleteCosto; \r\n\r\n //Gestione profilo orario \r\n vm.selezionaProfilo = selezionaProfilo\r\n vm.profilo = {};\r\n vm.deleteProfilo = deleteProfilo;\r\n\r\n //Gestione account\r\n vm.getAccount = getAccount;\r\n vm.updateAccount = updateAccount;\r\n vm.resetPassword = resetPassword;\r\n vm.invioCredenziali = invioCredenziali;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getSezioni(), getProfiloOre()/*, getProfilo()*/];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.DipendenteId != null) {\r\n setView('detail');\r\n getRecord($routeParams.DipendenteId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.stato = vm.fStato == null ? 0 : vm.fStato;\r\n vm.filter.sezione = vm.fSezione == null ? 0 : vm.fSezione;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.dipendente_countAll(vm.filter.stato, vm.filter.sezione, vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.dipendente_getAll(vm.pageSize, vm.page, vm.filter.stato, vm.filter.sezione, vm.filter.ricerca, vm.ordine).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n vm.list.profili = []; \r\n if (vm.provincie.length == 0) getProvincie();\r\n\r\n return datacontext.dipendente_get(id).then(function (data) { \r\n vm.index = index;\r\n vm.record = data;\r\n //console.info(\"vmrecord\", vm.record);\r\n\r\n //Azzera liste\r\n getComuni(vm.record.ProvinciaId);\r\n\r\n if (vm.record.DataAssunzione != null) vm.record.DataAssunzione = new Date(vm.record.DataAssunzione);\r\n if (vm.record.DataLicenziamento != null) vm.record.DataLicenziamento = new Date(vm.record.DataLicenziamento);\r\n if (vm.record.DataNascita != null) vm.record.DataNascita = new Date(vm.record.DataNascita);\r\n \r\n if (vm.super)\r\n getAccount();\r\n \r\n setView('detail');\r\n });\r\n }\r\n\r\n function addRecord(id) {\r\n return datacontext.dipendente_get(id).then(function (data) {\r\n vm.records.push(data);\r\n vm.countRecords++;\r\n });\r\n }\r\n\r\n function getProvincie() {\r\n if (vm.provincie.length > 0) return;\r\n\r\n datacontext.arrProvincie().then(function (data) {\r\n vm.provincie = data;\r\n });\r\n }\r\n\r\n function getComuni(idprov) {\r\n if (!idprov || idprov == 0) return vm.comuni = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return vm.comuni = data;\r\n });\r\n }\r\n //Get list\r\n function getSezioni() {\r\n return datacontext.sezione_getAllList().then(function (data) { \r\n return vm.list.sezioni = data;\r\n });\r\n }\r\n\r\n //Get list\r\n function getProfiloOre() {\r\n return datacontext.profiloOre_getAllList().then(function (data) {\r\n return vm.list.profiloOre = data;\r\n });\r\n }\r\n \r\n //add\r\n function addDipendente() {\r\n var modalDipendente = {};\r\n modalDipendente.Id = 0; \r\n \r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/dipendenteAdd.html?version=30', \r\n controller: 'dipendenteAdd',\r\n resolve: {\r\n dipendente: function() {\r\n return modalDipendente;\r\n },\r\n sezioni: function() {\r\n return vm.list.sezioni;\r\n },\r\n profiliOre: function () {\r\n return vm.list.profiloOre;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la modifica del dato ');\r\n logSuccess('Dipendente aggiunto con successo ');\r\n addRecord(returnItem.Id);\r\n\r\n //cerca();\r\n });\r\n }\r\n\r\n //update\r\n function updateItem() {\r\n return datacontext.dipendente_update(vm.record).then(function (data) {\r\n if (data)\r\n logSuccess('Dato salvato');\r\n else\r\n logError('Impossibile salvare il dato');\r\n });\r\n }\r\n\r\n //delete\r\n function deleteItem(item) { \r\n var msg = ' il dipendente ' + item.Nominativo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dipendente_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError('Errore durante la rimozione del dato');\r\n logSuccess('Dipendente eliminato con successo ');\r\n var index = vm.records.indexOf(item)\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n });\r\n });\r\n }\r\n\r\n //Gestione costi \r\n function addCosto() {\r\n var modalCosto = {};\r\n modalCosto.Id = 0;\r\n modalCosto.DipendenteId = vm.record.Id;\r\n modalCosto.CostoOra = vm.record.CostoOra;\r\n modalCosto.Anno = (new Date()).getFullYear();\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/costoAddEdit.html?version=30',\r\n controller: 'costoAddEdit',\r\n resolve: {\r\n costo: function () {\r\n return modalCosto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la modifica del dato ');\r\n\r\n logSuccess('Costi aggiunti con successo ');\r\n vm.record = getRecord(vm.record.Id, vm.index);\r\n });\r\n }\r\n\r\n function editCosto(item) {\r\n var modalCosto = {};\r\n angular.copy(item, modalCosto);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/costoAddEdit.html?version=30',\r\n controller: 'costoAddEdit',\r\n resolve: {\r\n costo: function () {\r\n return modalCosto;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la modifica del dato '); \r\n\r\n logSuccess('Costi modificati con successo ');\r\n vm.record = getRecord(vm.record.Id, vm.index);\r\n });\r\n }\r\n\r\n function deleteCosto(item) {\r\n var msg = \"i costi per la data fine \" + item.DataFine;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.costoDipendente_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError('Errore durante la rimozione del dato');\r\n vm.record = getRecord(vm.record.Id, vm.index);\r\n });\r\n });\r\n }\r\n\r\n //Gestione Profilo orario\r\n\r\n function selezionaProfilo() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/profiloOrarioSelect.html?version=30',\r\n controller: 'profiloOrarioSelect',\r\n windowClass: 'modal-wide',\r\n resolve: { \r\n profiliOre: function () {\r\n return vm.list.profiloOre;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n returnItem.DipendenteId = vm.record.Id; \r\n \r\n return datacontext.profiloDipendenti_add(returnItem).then(function (data) { \r\n if (data && data.Id && data.Id > 0) {\r\n vm.record = getRecord(vm.record.Id, vm.index);\r\n logSuccess('Dati salvati'); \r\n }\r\n else\r\n return logError('Impossibile salvare i dati');\r\n });\r\n }); \r\n }\r\n\r\n function deleteProfilo(item) {\r\n var msg = \"il profilo orario \" + item.profiloOreTipo + \" dal Dipendente \" + vm.record.Nominativo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.profiloDipendenti_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError('Errore durante la rimozione del dato');\r\n logSuccess('Profilo eliminato con successo ');\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n //console.info(\"vmrecord\", vm.record); \r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n //Gestione account\r\n function getAccount() { \r\n datacontext.user_getByDipendenteId(vm.record.Id).then(function (data) { \r\n vm.account = data;\r\n vm.account.DtAttivazione = $filter('date')(data.DtAttivazione, 'dd/MM/yyyy');\r\n });\r\n }\r\n\r\n function updateAccount() {\r\n vm.account.DtAttivazione = common.stringToDate(vm.account.DtAttivazione);\r\n return datacontext.user_update(vm.account).then(function (data) {\r\n if (!data) {\r\n logSuccess('Dato salvato');\r\n }\r\n else\r\n logError('Impossibile salvare il dato');\r\n });\r\n }\r\n\r\n //Manda una email all'utente con un link di accesso al Reset Password\r\n //dove l'utente può inserire una nuova password per il suo account\r\n function resetPassword() {\r\n var msg = 'Sara\\' inviata una email all\\'utente ' + vm.account.Username + ' contenente le istruzioni per eseguire il reset della password. Continuare?';\r\n bDialog.confirmationDialog('Reset Password', msg, 'OK').then(function () {\r\n return datacontext.user_resetPassword(vm.account.Email).then(function (data) {\r\n if (data != \"204\") return logError('Impossibile eseguire l\\'operazione');\r\n\r\n logSuccess('Operazione effettuata con successo ');\r\n });\r\n });\r\n }\r\n\r\n function invioCredenziali() {\r\n var msg = 'Sara\\' inviata una email all\\'utente ' + vm.account.Username + ' contenente le credenziali per l\\'accesso alla piattaforma. Continuare?';\r\n bDialog.confirmationDialog('Invio Credenziali', msg, 'OK').then(function () {\r\n return datacontext.user_invioCredenziali(vm.account.Email).then(function (data) {\r\n if (data != \"204\") return logError('Impossibile eseguire l\\'operazione');\r\n logSuccess('Operazione effettuata con successo ');\r\n });\r\n });\r\n }\r\n\r\n function getNonAttivi(matricola) {\r\n datacontext.dipendente_getAllNonAttivi(matricola).then(function (data) { \r\n return vm.list.nonAttivi = data;\r\n });\r\n }\r\n }\r\n})();\r\n","\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'home';\r\n angular.module('appHome').controller(controllerId, ['$rootScope', '$translate', home]);\r\n\r\n function home($rootScope, $translate) {\r\n\r\n var vm = this;\r\n vm.currentLanguage = $translate.use() || $translate.proposedLanguage();\r\n\r\n $translate.use(vm.lingua);\r\n\r\n if (vm.lingua == 'undefined' || !vm.lingua) {\r\n vm.lingua = vm.currentLanguage;\r\n }\r\n\r\n //console.info('lingua2', vm.currentLanguage);\r\n\r\n vm.changeLanguage = changeLanguage;\r\n vm.setLanguage = setLanguage;\r\n\r\n function changeLanguage() {\r\n $translate.use(vm.lingua);\r\n cookie();\r\n }\r\n\r\n function setLanguage(language) {\r\n vm.lingua = language;\r\n $translate.use(vm.lingua);\r\n cookie();\r\n }\r\n\r\n function getLanguage() { \r\n return $translate.use(); \r\n }\r\n\r\n function cookie() {\r\n $(\"#uecookielaw\").html(''); \r\n \r\n //inizio cookie\r\n var cookieName = 'user_accepts_cookies';\r\n var valore = $.cookie(cookieName) || null;\r\n if (valore == null) {\r\n var link = \"/informativa-cookie_\" + vm.lingua + \".htm\";\r\n if (vm.lingua == 'it') {\r\n $(\"#uecookielaw\").html(\"

Utilizziamo i cookie per migliorare la tua esperienza sul nostro sito.
Quando utilizzi il nostro sito web, accetti che vengano trasmessi cookie sul tuo dispositivo.
Ulteriori informazioni

Accetto
\");\r\n }\r\n else {\r\n $(\"#uecookielaw\").html(\"

We use cookies to improve your experience on our site.
When you use our website, you agree to be sent cookies to your device.
More info

Accept
\");\r\n } \r\n $(\"#uecookielaw\").addClass(\"cookielaw\");\r\n $(\"#uecookielaw\").show();\r\n }\r\n $(\"#uecookielawclose\").click(function () {\r\n $.cookie(cookieName, \"Normativa letta\", { expires: 30, path: '/' });\r\n $(\"#uecookielaw\").hide();\r\n });\r\n\r\n //fine cookie */ \r\n }\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n var controllerId = 'shell';\r\n angular.module('app').controller(controllerId,\r\n ['$rootScope', 'common', 'config', 'datacontext', 'sectionMenu', '$translate', 'tmhDynamicLocale', shell]);\r\n\r\n function shell($rootScope, common, config, datacontext, sectionMenu, $translate, tmhDynamicLocale) {\r\n var $location = common.$location;\r\n\r\n var vm = this;\r\n var logSuccess = common.logger.getLogFn(controllerId, 'success');\r\n var events = config.events;\r\n vm.busyMessage = 'Please wait ...';\r\n vm.isBusy = true;\r\n vm.spinnerOptions = {\r\n radius: 40,\r\n lines: 7,\r\n length: 0,\r\n width: 30,\r\n speed: 1.7,\r\n corners: 1.0,\r\n trail: 100,\r\n color: '#F58A00'\r\n };\r\n vm.oggi = new Date();\r\n vm.currentLanguage = $translate.proposedLanguage() || $translate.use();\r\n tmhDynamicLocale.set(vm.currentLanguage);\r\n\r\n vm.getSection = sectionMenu.getSection;\r\n vm.isSectionActive = sectionMenu.isSectionActive;\r\n vm.getClassIfActive = sectionMenu.getClassIfActive;\r\n\r\n function getUrl(url)\r\n {\r\n var n = url.indexOf(\"#\");\r\n if(n != -1)\r\n {\r\n url = url.substring(0, n);\r\n }\r\n \r\n var n = url.lastIndexOf(\"/\");\r\n if (n != -1) {\r\n url = url.substring(n);\r\n }\r\n\r\n return url;\r\n }\r\n\r\n activate();\r\n\r\n function activate() { \r\n var promises = [WhoAmI()];\r\n common.activateController(promises, controllerId)\r\n .then(function () { \r\n var url = $location.absUrl();\r\n url = getUrl(url);\r\n if (url == \"/Ruolo_Super\") {\r\n $translate.use('it');\r\n tmhDynamicLocale.set('it');\r\n $location.url(\"/dashboard_Super\");\r\n }\r\n else if (url == \"/Ruolo_Utente\") {\r\n $location.url(\"/dashboard_Utente\");\r\n } \r\n else if (url == \"/Ruolo_Personale\") {\r\n $location.url(\"/dashboard_Personale\");\r\n }\r\n else if (url == \"/Ruolo_CapoSezione\") {\r\n $location.url(\"/dashboard_CapoSezione\");\r\n }\r\n });\r\n }\r\n\r\n function toggleSpinner(on) { vm.isBusy = on; }\r\n\r\n $rootScope.$on('$routeChangeStart',\r\n function (event, next, current) { toggleSpinner(true); }\r\n )\r\n\r\n $rootScope.$on(events.controllerActivateSuccess,\r\n function (event, data) { toggleSpinner(false); }\r\n )\r\n\r\n $rootScope.$on(events.spinnerToggle,\r\n function (event, data) { toggleSpinner(data.show); }\r\n )\r\n\r\n function WhoAmI() {\r\n return datacontext.getWhoAmI().then(function (data) { \r\n $rootScope.userRoles = new Array();\r\n data.Ruoli.forEach(function (role) {\r\n $rootScope.userRoles.push(role.Name);\r\n });\r\n $rootScope.id = data.Id;\r\n $rootScope.name = data.Nominativo;\r\n $rootScope.username = data.Username;\r\n $rootScope.email = data.Email;\r\n $rootScope.statoCV = data.StatoCV;\r\n $rootScope.azienda = data.Azienda;\r\n $rootScope.aziendaId = data.AziendaId;\r\n $rootScope.logo = data.Logo;\r\n $rootScope.logoReport = data.LogoReport;\r\n $rootScope.parametriId = data.ParametriId;\r\n $rootScope.filtroCommesse = data.FiltroCommesse;\r\n $rootScope.avvisoCV = data.AvvisoCV;\r\n $rootScope.bSezioni = data.bSezioni;\r\n $rootScope.filtroSezioni = data.FiltroSezioni;\r\n $rootScope.basePath = data.BasePath;\r\n $rootScope.ferie = data.Ferie;\r\n\r\n if (data.Lingua == 'undefined' || !data.Lingua) {\r\n $rootScope.lingua = vm.currentLanguage;\r\n } else {\r\n $rootScope.lingua = data.Lingua;\r\n $translate.use($rootScope.lingua);\r\n vm.currentLanguage = $rootScope.lingua;\r\n tmhDynamicLocale.set(vm.currentLanguage);\r\n }\r\n\r\n //console.info('lingua shell', $rootScope.lingua, data.Lingua);\r\n\r\n return vm.user = data;\r\n });\r\n };\r\n\r\n $rootScope.isAuthorized = function (role) { \r\n return $rootScope.userRoles != undefined && $rootScope.userRoles != null && $rootScope.userRoles.indexOf(role) !== -1;\r\n };\r\n\r\n $rootScope.getWhoAmI = WhoAmI;\r\n };\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n var controllerId = 'sidebar';\r\n angular.module('app').controller(controllerId,\r\n ['$route', 'config', 'routes', sidebar]);\r\n\r\n function sidebar($route, config, routes) {\r\n var vm = this;\r\n\r\n vm.isCurrent = isCurrent;\r\n\r\n activate();\r\n\r\n function activate() { getNavRoutes(); }\r\n\r\n function getNavRoutes() {\r\n vm.navRoutes = routes.filter(function (r) {\r\n return r.config.settings && r.config.settings.nav;\r\n }).sort(function (r1, r2) {\r\n return r1.config.settings.nav - r2.config.settings.nav;\r\n });\r\n }\r\n\r\n function isCurrent(route) {\r\n if (!route.config.title || !$route.current || !$route.current.title) {\r\n return '';\r\n }\r\n var menuName = route.config.title;\r\n return $route.current.title.substr(0, menuName.length) === menuName ? 'current' : '';\r\n }\r\n };\r\n})();\r\n","// app/logPush/logPush.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'logPush';\r\n angular.module('app').controller(controllerId, ['$rootScope', 'common', 'datacontext', 'sectionMenu', logPushFn]);\r\n\r\n function logPushFn($rootScope, common, datacontext, sectionMenu) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard\r\n var vm = this;\r\n vm.title = 'Logs';\r\n vm.sectionMenu = sectionMenu.setSection(vm.title);\r\n vm.log = [];\r\n vm.notifiche = [];\r\n vm.getlog = getLog;\r\n vm.getNotifiche = getNotifiche;\r\n vm.logDelete = logDelete;\r\n vm.pushDelete = pushDelete;\r\n\r\n getLog();\r\n\r\n function getLog() {\r\n return datacontext.logGetAll().then(function (data) {\r\n return vm.log = data;\r\n });\r\n }\r\n\r\n function getNotifiche() {\r\n return datacontext.pushGetAll().then(function (data) { \r\n return vm.notifiche = data;\r\n });\r\n }\r\n\r\n function logDelete(item) {\r\n return datacontext.logDelete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError('Errore durante la rimozione del dato');\r\n\r\n logSuccess('Dato cancellato')\r\n getLog();\r\n });\r\n }\r\n\r\n function pushDelete(item) {\r\n return datacontext.pushDelete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError('Errore durante la rimozione del dato');\r\n\r\n logSuccess('Dato cancellato')\r\n getNotifiche();\r\n });\r\n }\r\n }\r\n})();","// app/offerta/offerte.js\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'offerta';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$routeParams', '$filter', '$location', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', offertaFn]);\r\n\r\n function offertaFn($rootScope, $scope, $routeParams, $filter, $location, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this, onRouteChangeOff;\r\n vm.title = $translate.instant('Offerte');\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection('Offerte'); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0; \r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n vm.enabledPrint = false;\r\n vm.readonly = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.personale = $rootScope.isAuthorized('PERSONALE');\r\n vm.capoSezione = $rootScope.isAuthorized('CAPOSEZIONE');\r\n vm.utente = $rootScope.isAuthorized('USER');\r\n vm.addDisabled = vm.utente;\r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Codice', 'Titolo', 'Stato', 'Data aggiornamento'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[3];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n vm.item = {};\r\n\r\n vm.list.attivita = [];\r\n vm.list.clienti = [];\r\n vm.list.tipoAssegnazione = [];\r\n vm.list.tipoPrestazione = [];\r\n vm.list.budget = [];\r\n vm.list.dipendenti = [];\r\n vm.list.commesseSezioni = [];\r\n vm.list.dipendentiList = [];\r\n \r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.stato = vm.fStato = -1;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n vm.filter.cliente = vm.fCliente = 0;\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord;\r\n vm.add = addOfferta;\r\n vm.delete = deleteItem;\r\n vm.dettaglio = dettaglio;\r\n vm.update = updateItem;\r\n vm.chiudiCommessa = chiudiCommessa;\r\n vm.riapriCommessa = riapriCommessa;\r\n vm.aggiornaStatoCommessa = aggiornaStatoCommessa;\r\n\r\n vm.confirmRoute = confirmRoute;\r\n\r\n //attivita\r\n vm.getListAttivita = getListAttivita;\r\n vm.addAttivita = addAttivita;\r\n vm.editAttivita = editAttivita;\r\n vm.deleteAttivita = deleteAttivita;\r\n\r\n //budget\r\n vm.addBudget = addBudget;\r\n vm.deleteBudget = deleteBudget;\r\n\r\n //dipendentiCommessa\r\n vm.getListDipendenti = getListDipendenti;\r\n vm.selezionaDipendente = selezionaDipendente;\r\n vm.deleteDipendenteCommessa = deleteDipendenteCommessa;\r\n\r\n //commesseSezioni\r\n vm.getListCommesseSezioni = getListCommesseSezioni;\r\n vm.addCommessaSezione = addCommessaSezione;\r\n vm.editCommessaSezione = editCommessaSezione;\r\n vm.deleteCommessaSezione = deleteCommessaSezione;\r\n\r\n vm.dict_selected_assegnazione = [];\r\n vm.dict_tassegnazione = {};\r\n vm.dict_selected_prestazione = [];\r\n vm.dict_tprestazione = {};\r\n\r\n //datapicker\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n vm.opened2 = vm.opened3 = vm.opened4 = vm.opened5 = vm.opened6 = false;\r\n };\r\n\r\n vm.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened2 = !vm.opened2;\r\n vm.opened = vm.opened3 = vm.opened4 = vm.opened5 = vm.opened6 = false;\r\n };\r\n\r\n vm.open3 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened3 = !vm.opened3;\r\n vm.opened2 = vm.opened = vm.opened4 = vm.opened5 = vm.opened6 = false;\r\n };\r\n\r\n vm.open4 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened4 = !vm.opened4;\r\n vm.opened2 = vm.opened3 = vm.opened = vm.opened5 = vm.opened6 = false;\r\n };\r\n\r\n vm.open5 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened5 = !vm.opened5;\r\n vm.opened2 = vm.opened3 = vm.opened = vm.opened4 = vm.opened6 = false;\r\n };\r\n\r\n vm.open6 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened6 = !vm.opened6;\r\n vm.opened2 = vm.opened3 = vm.opened = vm.opened4 = vm.opened5 = false;\r\n };\r\n\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getListClienti(), getListTipoAssegnazione(), getListTipoPrestazione(), getAllListDipendenti()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.CommessaId != null) {\r\n setView('detail');\r\n \r\n getRecord($routeParams.CommessaId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n if (view == 'list')\r\n cerca();\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.stato = 0; //vm.fStato == null ? 0 : vm.fStato;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n vm.filter.cliente = vm.fCliente == null ? 0 : vm.fCliente;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.commessa_countAllForOfferte(vm.filter.ricerca, vm.filter.cliente, vm.fStato).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.commessa_getAllForOfferte(vm.pageSize, vm.page, vm.filter.ricerca, vm.filter.cliente, vm.fStato, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) {\r\n vm.list.attivita = [];\r\n vm.list.budget = [];\r\n\r\n return datacontext.commessa_get(id).then(function (data) {\r\n data.Stato = 0; \r\n vm.index = index;\r\n\r\n if (data.DataApertura)\r\n data.DataApertura = new Date(data.DataApertura);\r\n if (data.DataChiusura)\r\n data.DataChiusura = new Date(data.DataChiusura);\r\n if (data.DataAggiornamento)\r\n data.DataAggiornamento = new Date(data.DataAggiornamento);\r\n if (data.DataScadenza)\r\n data.DataScadenza = new Date(data.DataScadenza);\r\n if (data.DataRev)\r\n data.DataRev = new Date(data.DataRev);\r\n\r\n if (data.Stato == 2) //commessa chiusa\r\n vm.readonly = true;\r\n else\r\n vm.readonly = false;\r\n\r\n if (data.Budget.length > 0) {\r\n data.Budget.forEach(function (o) {\r\n var obj = { Id: o.Id, Name: o.Budget + ' (' + $filter('date')(o.Data, 'dd/MM/yyyy') + ')' };\r\n vm.list.budget.push(obj);\r\n });\r\n }\r\n\r\n if (data.TassegnazioneName != null)\r\n //popolo le selezioni di tipo assegnazione\r\n vm.dict_selected_assegnazione = data.TassegnazioneName.split(',');\r\n //popolo le selezioni di tipo prestazione\r\n if (data.TprestazioneName != null)\r\n vm.dict_selected_prestazione = data.TprestazioneName.split(',');\r\n\r\n vm.record = data;\r\n\r\n if (vm.utente)\r\n checkTeamLeaderCommessa(id);\r\n\r\n if (!$rootScope.bSezioni)\r\n getListAttivita(id);\r\n else\r\n getListCommesseSezioni(id);\r\n getListDipendenti(id);\r\n\r\n setView('detail');\r\n });\r\n }\r\n\r\n function addOfferta() {\r\n var modalOfferta = {};\r\n modalOfferta.Id = 0;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/offerta/modal/offertaAdd.html?version=30',\r\n controller: 'offertaAdd',\r\n resolve: {\r\n offerta: function () {\r\n return modalOfferta;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante inserimento del dato'));\r\n\r\n logSuccess($translate.instant('Offerta aggiunta con successo'));\r\n $location.url('/offerte/' + returnItem.Id);\r\n });\r\n }\r\n\r\n function updateItem() {\r\n vm.record.TassegnazioneName = vm.dict_selected_assegnazione.join();\r\n vm.record.TprestazioneName = vm.dict_selected_prestazione.join();\r\n\r\n return datacontext.commessa_update(vm.record).then(function (data) {\r\n if (data) {\r\n if (vm.record.DataApertura)\r\n vm.record.DataApertura = new Date(data.DataApertura);\r\n if (vm.record.DataChiusura)\r\n vm.record.DataChiusura = new Date(data.DataChiusura);\r\n if (vm.record.DataAggiornamento)\r\n vm.record.DataAggiornamento = new Date(data.DataAggiornamento);\r\n if (vm.record.DataScadenza)\r\n vm.record.DataScadenza = new Date(data.DataScadenza);\r\n if (data.DataRevisione)\r\n data.DataRevisione = new Date(data.DataRevisione);\r\n\r\n if (vm.recordForm)\r\n vm.recordForm.$setPristine();\r\n\r\n logSuccess($translate.instant('Dati salvati'));\r\n } else {\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n }\r\n });\r\n }\r\n\r\n function deleteItem(item) {\r\n var msg = \" \" + $translate.instant('la commessa') + \" \" + item.Codice;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.commessa_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Impossibile eliminare la commessa') + \" \" + item.Codice);\r\n logSuccess($translate.instant('Commessa eliminata con successo'));\r\n cerca();\r\n });\r\n });\r\n }\r\n\r\n function dettaglio(id) {\r\n $scope.commessa;\r\n }\r\n\r\n function checkTeamLeaderCommessa(id) {\r\n return datacontext.commessa_checkTeamLeader(id).then(function (data) {\r\n if (data) {\r\n vm.capoSezione = true;\r\n } else\r\n vm.readonly = true;\r\n \r\n });\r\n }\r\n\r\n function aggiornaStatoCommessa(stato) {\r\n var title = '';\r\n var msg = '';\r\n var conferma = '';\r\n\r\n switch (stato) {\r\n case 0: title = $translate.instant('Commessa in offerta');\r\n msg = $translate.instant('Sei sicuro di voler mettere in offerta la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Commessa in offerta');\r\n break;\r\n case 1:\r\n title = $translate.instant('Apri offerta');\r\n msg = $translate.instant('Sei sicuro di voler aprire l\\'offerta') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Offerta Aperta');\r\n break;\r\n case 4:\r\n title = $translate.instant('Annulla offerta');\r\n msg = $translate.instant('Sei sicuro di voler annullare l\\'offerta') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?';\r\n conferma = $translate.instant('Offerta Annullata');\r\n break;\r\n default: break;\r\n }\r\n\r\n bDialog.confirmationDialog(title, msg, 'OK', $translate.instant('Annulla')).then(function () { //YES\r\n return datacontext.commessa_aggiornaStato(vm.record.Id, stato).then(function (data) {\r\n logSuccess(conferma);\r\n getRecord(vm.record.Id);\r\n });\r\n }, function (btn) { // NO\r\n });\r\n }\r\n\r\n function chiudiCommessa() {\r\n bDialog.confirmationDialog($translate.instant('Chiudi commessa'), $translate.instant('Sei sicuro di voler chiudere la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?', 'OK', $translate.instant('Annulla')).then(function () { //YES\r\n return datacontext.commessa_chiudiCommessa(vm.record).then(function (data) {\r\n logSuccess($translate.instant('Commessa Chiusa'));\r\n getRecord(vm.record.Id);\r\n });\r\n }, function (btn) { // NO\r\n vm.readonly = false;\r\n });\r\n }\r\n\r\n function riapriCommessa() {\r\n bDialog.confirmationDialog($translate.instant('Riapri commessa'), $translate.instant('Sei sicuro di voler riaprire la commessa') + \" \" + vm.record.Codice + ' - ' + vm.record.Titolo + '?', 'OK', $translate.instant('Annulla')).then(function () { //YES\r\n return datacontext.commessa_riapriCommessa(vm.record).then(function (data) {\r\n logSuccess($translate.instant('Commessa Aperta'));\r\n getRecord(vm.record.Id);\r\n });\r\n }, function (btn) { //NO\r\n vm.readonly = true;\r\n });\r\n }\r\n \r\n\r\n vm.calcolaTotaleSpese = function () {\r\n if (vm.record.CostoOrarioMedio && vm.record.OrePreviste) {\r\n vm.record.TotaleSpesaPrevista = vm.record.CostoOrarioMedio * vm.record.OrePreviste;\r\n vm.record.TotaleSpesaPrevista = parseFloat(vm.record.TotaleSpesaPrevista.toFixed(2));\r\n }\r\n if (vm.record.CostoOrarioMedio && vm.record.OreSpese) {\r\n vm.record.TotaleSpesaEffettiva = vm.record.CostoOrarioMedio * vm.record.OreSpese;\r\n vm.record.TotaleSpesaEffettiva = parseFloat(vm.record.TotaleSpesaEffettiva.toFixed(2));\r\n }\r\n };\r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog($translate.instant('Modifiche non salvate'), $translate.instant('Sono presenti modifiche non salvate'), $translate.instant('Salva modifiche e procedi'), $translate.instant('Annulla modifiche e procedi')).then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.update(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/offerte\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError($translate.instant('Compilare i campi obbligatori'));\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/offerte\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n $location.url(\"/offerte\");\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n function getListClienti() {\r\n return datacontext.cliente_getAllList().then(function (data) {\r\n return vm.list.clienti = data;\r\n });\r\n }\r\n\r\n function getListTipoAssegnazione() {\r\n return datacontext.tipoAssegnazione_getAllList().then(function (data) {\r\n vm.list.tipoAssegnazione = data;\r\n for (var i = 0; i < Object.keys(vm.list.tipoAssegnazione).length; i++) {\r\n var ennesimo = vm.list.tipoAssegnazione[i].Name;\r\n vm.dict_tassegnazione[ennesimo] = vm.list.tipoAssegnazione[i].Name;\r\n }\r\n\r\n return vm.list.tipoAssegnazione;\r\n });\r\n }\r\n function getListTipoPrestazione() {\r\n return datacontext.tipoPrestazione_getAllList().then(function (data) {\r\n vm.list.tipoPrestazione = data;\r\n for (var i = 0; i < Object.keys(vm.list.tipoPrestazione).length; i++) {\r\n var ennesimo = vm.list.tipoPrestazione[i].Name;\r\n vm.dict_tprestazione[ennesimo] = vm.list.tipoPrestazione[i].Name;\r\n }\r\n return vm.list.tipoPrestazione = data;\r\n });\r\n }\r\n\r\n //Gestione attivita\r\n function getListAttivita(commessaId) {\r\n return datacontext.attivita_getAll(commessaId).then(function (data) {\r\n vm.list.attivita = data;\r\n calcolaOrePreviste();\r\n vm.calcolaTotaleSpese();\r\n });\r\n }\r\n\r\n function calcolaOrePreviste() {\r\n vm.record.OrePreviste = 0;\r\n vm.list.attivita.forEach(function (o) {\r\n vm.record.OrePreviste += o.OrePreviste;\r\n vm.record.OrePreviste = parseFloat(vm.record.OrePreviste.toFixed(2));\r\n });\r\n }\r\n\r\n function addAttivita() {\r\n var modalAttivita = {};\r\n modalAttivita.Id = 0;\r\n modalAttivita.CommessaId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/attivitaAddEdit.html?version=30',\r\n controller: 'attivitaAddEdit',\r\n resolve: {\r\n attivita: function () {\r\n return modalAttivita;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante inserimento del dato'));\r\n\r\n logSuccess($translate.instant('Attivita aggiunta con successo'));\r\n getListAttivita(vm.record.Id);\r\n });\r\n }\r\n\r\n function editAttivita(item) {\r\n var modalAttivita = {};\r\n angular.copy(item, modalAttivita);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/attivitaAddEdit.html?version=30',\r\n controller: 'attivitaAddEdit',\r\n resolve: {\r\n attivita: function () {\r\n return modalAttivita;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Attivita modificata con successo'));\r\n getListAttivita(vm.record.Id);\r\n });\r\n }\r\n\r\n function deleteAttivita(item) {\r\n var msg = \"l\\'attività \" + item.Codice + ' - ' + item.Descrizione;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.attivita_delete(item.Id).then(function (data) {\r\n if (!data) return logError($translate.instant('Errore durante la rimozione del dato'));\r\n getListAttivita(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n //Gestione budget\r\n function addBudget() {\r\n var modalBudget = {};\r\n modalBudget.Id = 0;\r\n modalBudget.CommessaId = vm.record.Id;\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/budgetAdd.html?version=30',\r\n controller: 'budgetAdd',\r\n resolve: {\r\n budget: function () {\r\n return modalBudget;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante inserimento del dato'));\r\n\r\n logSuccess($translate.instant('Budget aggiunto con successo'));\r\n getRecord(vm.record.Id);\r\n });\r\n }\r\n\r\n\r\n function deleteBudget(id) {\r\n var index = _.findIndex(vm.record.Budget, function (o) {\r\n return o.Id === id;\r\n });\r\n\r\n var item = {};\r\n if (index != -1)\r\n item = vm.record.Budget[index];\r\n\r\n var msg = $translate.instant('il') + \" \" + \"bugdet \" + item.Budget + \" \" + $translate.instant('del') + \" \" + $filter('date')(item.Data, 'dd/MM/yyyy');\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.budgetCommessa_delete(id).then(function (data) {\r\n if (!data) return logError($translate.instant('Errore durante la rimozione del dato'));\r\n getRecord(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n\r\n //Gestione membri team\r\n //getListDipendenti (popolare i dipendenti per la commessa)\r\n function getListDipendenti(id) {\r\n if (!id) return [];\r\n var temp = [];\r\n //Questo metodo serve nella schermata dettaglio team \r\n return datacontext.dipendentiCommessa_getAll(id, 0).then(function (data) {\r\n if (vm.dipendentiAttivi == true) {\r\n data.forEach(function (item) {\r\n if (item.attivo == true) {\r\n temp.push(item);\r\n }\r\n });\r\n\r\n return vm.list.dipendenti = temp;\r\n }\r\n else\r\n return vm.list.dipendenti = data;\r\n });\r\n }\r\n\r\n function getAllListDipendenti() {\r\n return datacontext.dipendente_getAllList().then(function (data) {\r\n return vm.list.dipendentiList = data;\r\n });\r\n }\r\n\r\n //getDipendenti (popolare la modale dei dipendenti)\r\n function getDipendente(id) {\r\n if ($rootScope.isAuthorized('USER') || !id)\r\n id = $rootScope.id ? $rootScope.id : 0;\r\n\r\n return datacontext.dipendente_get(id).then(function (data) {\r\n vm.dipendente = data;\r\n });\r\n }\r\n\r\n // Selezione dipendente\r\n function selezionaDipendente() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/commessaMembroSelect.html?version=30',\r\n controller: 'commessaMembroSelect',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n commessaId: function () {\r\n return vm.record.Id;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"409\")\r\n return logError($translate.instant('Dipendente gia presente'));\r\n else if (returnItem == \"300\")\r\n return logError($translate.instant('Leader gia presente'));\r\n else if (returnItem == \"400\" || returnItem == \"404\")\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n else {\r\n logSuccess($translate.instant('Dati salvati'));\r\n return getListDipendenti(vm.record.Id);\r\n }\r\n });\r\n }\r\n\r\n function deleteDipendenteCommessa(item) {\r\n if (vm.capoSezione) {\r\n if (item.ruolo == \"L\") {\r\n logError($translate.instant('Non e possibile eliminare il leader'));\r\n return;\r\n }\r\n }\r\n\r\n var msg = $translate.instant('il dipendente') + \" \" + item.dipendente + \" \" + $translate.instant('dalla commessa') + \" \" + vm.record.Codice + \" - \" + vm.record.Titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dipendentiCommessa_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Dipendente eliminato con successo'));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n getListDipendenti(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n //Gestione commesse sezioni\r\n function getListCommesseSezioni(id) {\r\n if (!id) return []; \r\n return datacontext.commessaSezione_getAll(id, 0).then(function (data) {\r\n return vm.list.commesseSezioni = data;\r\n });\r\n }\r\n\r\n function addCommessaSezione() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/commessaSezioneAdd.html?version=30',\r\n controller: 'commessaSezioneAdd',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n commessaId: function () {\r\n return vm.record.Id;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"409\")\r\n return logError($translate.instant('Centro di costo gia presente'));\r\n else if (returnItem == \"400\" || returnItem == \"404\")\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n else {\r\n logSuccess($translate.instant('Dati salvati'));\r\n return getListCommesseSezioni(vm.record.Id);\r\n }\r\n });\r\n }\r\n\r\n function editCommessaSezione(item) {\r\n var modalSezione = {};\r\n angular.copy(item, modalSezione);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/commessa/modal/commessaSezioneEdit.html?version=30',\r\n controller: 'commessaSezioneEdit',\r\n resolve: {\r\n sezione: function () {\r\n return modalSezione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Centro di costo modificato con successo'));\r\n getListCommesseSezioni(vm.record.Id);\r\n });\r\n }\r\n\r\n function deleteCommessaSezione(item) {\r\n var msg = $translate.instant('il') + \" \" + $translate.instant('CentroDiCosto') + \" \" + item.sezione + \" \" + $translate.instant('dalla commessa') + \" \" + vm.record.Codice + \" - \" + vm.record.Titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.commessaSezione_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Dipendente eliminato con successo'));\r\n getListCommesseSezioni(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n }\r\n})();\r\n","// app/parametri/parametri.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'parametri';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$routeParams', '$location', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', 'tmhDynamicLocale', 'amMoment', parametriFn]);\r\n\r\n function parametriFn($rootScope, $scope, $routeParams, $location, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate, tmhDynamicLocale, amMoment) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this, onRouteChangeOff;\r\n vm.title = 'Parametri';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection(vm.title); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = true;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER'); \r\n vm.lingua = [{ name: $translate.instant('Italiano'), value: 'it' }, { name: $translate.instant('Inglese'), value: 'en' }];\r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['azienda'];\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n };\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n\r\n //Gestione parametri \r\n vm.edit = editParametri;\r\n vm.delete = deleteParametri;\r\n\r\n vm.item = {};\r\n vm.changed = false;\r\n vm.change = 0;\r\n vm.confirmRoute = confirmRoute;\r\n \r\n vm.modalEdit = modalEdit;\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.parametriId != null) {\r\n setView('detail');\r\n getRecord($routeParams.parametriId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n if (view == 'list')\r\n cerca();\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.settings_countAll().then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.settings_getAll(vm.pageSize, vm.page, vm.ordine).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n return datacontext.settings_get(id).then(function (data) { \r\n vm.index = index;\r\n vm.record = data; \r\n\r\n setView('detail');\r\n });\r\n } \r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog($translate.instant('Modifiche non salvate'), $translate.instant('Sono presenti modifiche non salvate'), $translate.instant('Salva modifiche e procedi'), $translate.instant('Annulla modifiche e procedi')).then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.edit(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n if(vm.super)\r\n $location.url(\"/parametri\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError($translate.instant('Compilare i campi obbligatori'));\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n if (vm.super)\r\n $location.url(\"/parametri\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n if (vm.super)\r\n $location.url(\"/parametri\");\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n function editParametri() {\r\n if (vm.record.bSezioni)\r\n vm.record.FiltroCommesse = false;\r\n\r\n return datacontext.settings_update(vm.record).then(function (data) {\r\n if (data != 400 && data != 404) {\r\n if (vm.recordForm)\r\n vm.recordForm.$setPristine();\r\n logSuccess($translate.instant('Dato salvato'));\r\n\r\n amMoment.changeLocale(data.Lingua);\r\n tmhDynamicLocale.set(data.Lingua);\r\n\r\n window.location.reload();\r\n }\r\n else {\r\n logError($translate.instant('Impossibile salvare il dato'));\r\n }\r\n });\r\n }\r\n\r\n function modalEdit(item, index) {\r\n var modalParametri = {};\r\n angular.copy(item, modalParametri);\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/parametri/modal/parametriAddEdit.html?version=30',\r\n controller: 'parametriAddEdit',\r\n resolve: {\r\n parametri: function () {\r\n return modalParametri;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la modifica del dato ');\r\n\r\n logSuccess($translate.instant('Parametri aggiunti con successo'));\r\n vm.cerca();\r\n });\r\n }\r\n\r\n function deleteParametri(item) {\r\n var msg = \" \" + $translate.instant('i parametri') + \" \"\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.settings_delete(item.Id).then(function (data) {\r\n if (!data) return logError($translate.instant('Errore durante la rimozione del dato'));\r\n var index = vm.records.indexOf(item)\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n });\r\n });\r\n }\r\n }\r\n})();\r\n","// app/costiBase/costiBase.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'profiloOre';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', profiloOreFn]);\r\n\r\n function profiloOreFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = $translate.instant('ProfiloOrario');\r\n vm.sectionMenu = sectionMenu.setSection('ProfiloOre');\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n //vm.sectionMenu = sectionMenu.setSection(vm.title); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = false;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n //data\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n }; \r\n\r\n vm.clear = function ($event) {\r\n vm.fData = '';\r\n vm.changed = true;\r\n };\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n vm.format = 'dd/MM/yyyy'; \r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Tipo', 'Descrizione'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n }; \r\n \r\n //Filtro\r\n vm.filter = {}; \r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n\r\n //Gestione Profili Ore \r\n vm.add = addProfiloOre;\r\n vm.update = updateItem;\r\n vm.edit = edit;\r\n vm.delete = deleteProfiloOre;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [];\r\n common.activateController(promises, controllerId)\r\n .then(function () { \r\n //if ($routeParams.TeamId != null) {\r\n // setView('detail');\r\n // getRecord($routeParams.TeamId, 0);\r\n //}\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n //console.info('data', vm.record);\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1; \r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.profiloOre_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.profiloOre_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n return datacontext.profiloOre_get(id).then(function (data) {\r\n vm.index = index;\r\n vm.record = data; \r\n \r\n //Azzera liste \r\n if (vm.record.DataFine != null) vm.record.DataFine = new Date(vm.record.DataFine);\r\n setView('detail');\r\n });\r\n } \r\n\r\n //Gestione CostiBase\r\n // implementazione del metodo addCostiBase (definito sopra) che si scatena quando clicco sul bottone \"Aggiungi\" \r\n function addProfiloOre() {\r\n var modalProfiloOre = {};\r\n modalProfiloOre.Id = 0; // devo aggiungere un nuovo record e sappiamo che ogni nuovo record è identificato da un Id pari a 0\r\n \r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/profiloOre/modal/profiloOreAdd.html?version=30',\r\n controller: 'profiloOreAdd',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n profiloOre: function () { // in questo caso passiamo un solo oggetto che si chiama 'costiBase' che ha come valore modalCostiBase\r\n return modalProfiloOre;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato')); // analizza l'oggetto tornato 'returnItem' = 'costiBaseAdd.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n \r\n logSuccess($translate.instant('Profilo Orario aggiunto con successo'));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n //addRecord(returnItem.Id);\r\n cerca();\r\n });\r\n }\r\n\r\n function updateItem() { \r\n return datacontext.profiloOre_update(vm.record).then(function (data) {\r\n if (data) {\r\n vm.records[vm.index] = data;\r\n logSuccess($translate.instant('Dati salvati'));\r\n }\r\n else\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n });\r\n }\r\n\r\n //non viene utilizzata la modale perchè utilizzo il detail\r\n function edit(item) {\r\n var modalProfiloOre = {};\r\n angular.copy(item, modalProfiloOre);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/profiloOre/modal/profiloOreAdd.html?version=30',\r\n controller: 'profiloOreAdd',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n profiloOre: function () { // in questo caso passiamo un solo oggetto che si chiama 'costo' che ha come valore modalCostiBase\r\n return modalProfiloOre;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato')); // analizza l'oggetto tornato 'returnItem' = 'costiBaseAdd.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n\r\n logSuccess($translate.instant('Profilo Orario modificato con successo'));\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione \r\n //cerca();\r\n });\r\n }\r\n\r\n function deleteProfiloOre(item) {\r\n var msg = \" \" + $translate.instant('il profilo orario') + \" \" + item.Tipo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.profiloOre_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Profilo Orario eliminato con successo'));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n //var index = vm.records.indexOf(item)\r\n //vm.records.splice(index, 1);\r\n //vm.countRecords--;\r\n cerca();\r\n }); \r\n });\r\n } \r\n }\r\n})();\r\n","// app/report/report.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'report';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$filter', 'datacontext', 'common', 'sectionMenu', '_', 'moment', 'bootstrap.dialog', '$uibModal', '$translate', 'amMoment', 'tmhDynamicLocale', reportFn]);\r\n\r\n function reportFn($rootScope, $filter, datacontext, common, sectionMenu, _, moment, bDialog, $uibModal, $translate, amMoment, tmhDynamicLocale) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n var detectIE = $rootScope.detectIE;\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = $translate.instant('EsportaDati');\r\n vm.sectionMenu = sectionMenu.setSection('Report');\r\n vm.loading == false;\r\n\r\n vm.capoSezione = $rootScope.isAuthorized('CAPOSEZIONE');\r\n\r\n vm.currentLanguage = $translate.proposedLanguage() || $translate.use(); //Forzatura della lingua\r\n amMoment.changeLocale(vm.currentLanguage); //Forzatura della lingua\r\n tmhDynamicLocale.set(vm.currentLanguage); //Forzatura della lingua\r\n\r\n //Liste\r\n vm.list = {};\r\n vm.list.anni = [];\r\n vm.list.mesi = [];\r\n vm.list.giorni = [];\r\n vm.list.setttimane = [];\r\n vm.list.aziendePartner = [];\r\n\r\n // Filtro\r\n vm.filter = {};\r\n vm.filter.anno = vm.fAnno = 0;\r\n vm.filter.mese = vm.fMese = 0;\r\n vm.filter.giorno = vm.fGiorno = 0;\r\n vm.filter.settimana = vm.fSettimana = 0;\r\n vm.filter.dipendente = vm.fDipendente = -1; \r\n vm.filter.dataInizio = vm.fDataInizio = '';\r\n vm.filter.dataFine = vm.fDataFine = '';\r\n vm.filter.commessa = vm.fCommessa = '';\r\n vm.filter.aziendaPartner = vm.fAziendaPartner = 0;\r\n\r\n //Metodi su interfaccia\r\n vm.commessaChanged = commessaChanged;\r\n vm.selezionaDipendente = selezionaDipendente;\r\n vm.annullaDipendente = annullaDipendente;\r\n vm.reportMensile = reportMensile;\r\n vm.reportPresenze = reportPresenze;\r\n vm.reportCosti = reportCosti;\r\n vm.reportCommesse = reportCommesse;\r\n vm.oreDaiTimeSheet = oreDaiTimeSheet;\r\n vm.reportMensileDipendenti = reportMensileDipendenti;\r\n vm.reportVerificaTimeSheet = reportVerificaTimeSheet;\r\n vm.reportTotaliCommSez = reportTotaliCommSez;\r\n vm.reportTotaliSezDip = reportTotaliSezDip;\r\n vm.reportTotaliSezioni = reportTotaliSezioni;\r\n\r\n //Configurazione calendario\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n vm.opened1 = false;\r\n };\r\n\r\n vm.open1 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened1 = !vm.opened1;\r\n vm.opened = false;\r\n };\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n vm.loading = true;\r\n var promises = [getListAnni(), getListMesi(), getListSettimane(), getListGiorni(), getListAziendePartner()];\r\n common.activateController(promises, controllerId).then(function () {\r\n var d = new Date();\r\n vm.fAnno = d.getFullYear();\r\n vm.fMese = d.getMonth() + 1; \r\n vm.loading = false;\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //**************************************************** \r\n function setFilter() { \r\n vm.filter.anno = vm.fAnno == null ? 0 : vm.fAnno;\r\n vm.filter.mese = vm.fMese == null ? 0 : vm.fMese;\r\n vm.filter.settimana = vm.fSettimana == null ? 0 : vm.fSettimana;\r\n vm.filter.giorno = vm.fGiorno == null ? 0 : vm.fGiorno;\r\n vm.filter.commessa = vm.fCommessa == null ? -1 : vm.fCommessa;\r\n vm.filter.cdc = vm.fCdc == null ? 0 : vm.fCdc;\r\n vm.filter.dipendente = vm.fDipendenteId == null ? -1 : vm.fDipendenteId; \r\n vm.filter.dataInizio = vm.fDataInizio == null ? '' : $filter('date')(vm.fDataInizio, 'dd/MM/yyyy');\r\n vm.filter.dataFine = vm.fDataFine == null ? '' : $filter('date')(vm.fDataFine, 'dd/MM/yyyy');\r\n vm.filter.commessa = vm.fCommessa == null ? '' : vm.fCommessa;\r\n vm.filter.aziendaPartner = vm.fAziendaPartner == null ? 0 : vm.fAziendaPartner;\r\n }\r\n\r\n function reportMensile(bPDF) {\r\n setFilter();\r\n\r\n if (vm.loading == true)\r\n return;\r\n\r\n if (!vm.filter.anno || !vm.filter.mese) {\r\n logError($translate.instant('Indicare anno e mese'));\r\n return;\r\n } \r\n\r\n if (vm.filter.dipendente == -1) {\r\n logError($translate.instant('SelezionaUnDipendente'));\r\n return;\r\n }\r\n\r\n vm.loading = true;\r\n datacontext.report_getTimeSheetMensile(bPDF, vm.filter.dipendente, vm.filter.anno, vm.filter.mese).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n //var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF) \r\n //var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function reportMensileDipendenti(bPDF) {\r\n setFilter();\r\n\r\n if (vm.loading == true)\r\n return;\r\n\r\n if (!vm.filter.anno || !vm.filter.mese) {\r\n logError($translate.instant('Indicare anno e mese'));\r\n return;\r\n } \r\n\r\n vm.loading = true;\r\n datacontext.report_getTimeSheetMensileDipendenti(bPDF, -1, vm.filter.anno, vm.filter.mese, vm.filter.aziendaPartner).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF) \r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function reportPresenze(bPDF) {\r\n setFilter(); \r\n if (vm.loading == true)\r\n return; \r\n\r\n if (!vm.filter.anno || !vm.filter.mese) {\r\n logError($translate.instant('Indicare anno e mese'));\r\n return;\r\n } \r\n\r\n vm.loading = true;\r\n datacontext.report_getPresenze(bPDF, vm.filter.anno, vm.filter.mese, vm.filter.aziendaPartner).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF)\r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function reportCosti(bPDF) {\r\n setFilter();\r\n if (vm.loading == true)\r\n return;\r\n //Stampa l'errore (\"Indicare anno e mese o data inizio e data fine\")\r\n if ((!vm.filter.anno || !vm.filter.mese) && (!vm.filter.dataInizio && !vm.filter.dataFine)) {\r\n logError($translate.instant('Indicare anno e mese'),$translate.instant('o'), $translate.instant('DataInizio'), $translate.instant('e'), $translate.instant('DataFine')); \r\n return;\r\n } \r\n\r\n vm.loading = true;\r\n datacontext.report_getCosti(bPDF, vm.filter.anno, vm.filter.mese, vm.filter.dataInizio, vm.filter.dataFine, vm.filter.aziendaPartner).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF)\r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function reportCommesse(bPDF) {\r\n setFilter();\r\n if (vm.loading == true)\r\n return;\r\n \r\n if (!vm.filter.anno && !vm.filter.commessa && vm.filter.dipendente == -1) {\r\n logError($translate.instant('IndicareLaCommessaAnnoOIlDipendente'));\r\n return;\r\n }\r\n\r\n vm.loading = true;\r\n datacontext.report_getCommesse(bPDF, vm.filter.commessa, vm.filter.anno, vm.filter.mese, vm.filter.dataInizio, vm.filter.dataFine, vm.filter.dipendente, vm.filter.aziendaPartner).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF)\r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function reportVerificaTimeSheet(bPDF) {\r\n setFilter();\r\n if (vm.loading == true)\r\n return;\r\n\r\n if (!vm.filter.anno || !vm.filter.mese) {\r\n logError($translate.instant('Indicare anno e mese'));\r\n return;\r\n }\r\n\r\n vm.loading = true;\r\n datacontext.report_getVerificaTimeSheet(bPDF, vm.filter.anno, vm.filter.mese).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF)\r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function reportTotaliCommSez(bPDF) {\r\n setFilter();\r\n if (vm.loading == true)\r\n return;\r\n\r\n vm.loading = true;\r\n datacontext.report_getTotaliCommSez(bPDF, vm.filter.anno, vm.filter.mese, vm.filter.dataInizio, vm.filter.dataFine).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF)\r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function reportTotaliSezDip(bPDF) {\r\n setFilter();\r\n if (vm.loading == true)\r\n return;\r\n\r\n vm.loading = true;\r\n datacontext.report_getTotaliSezDip(bPDF, vm.filter.anno, vm.filter.mese, vm.filter.dataInizio, vm.filter.dataFine).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF)\r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function reportTotaliSezioni(bPDF) {\r\n setFilter();\r\n if (vm.loading == true)\r\n return;\r\n\r\n /*if ((!vm.filter.anno || !vm.filter.mese) && (!vm.filter.dataInizio && !vm.filter.dataFine)) {\r\n logError('Indicare anno e mese o data inizio e data fine');\r\n return;\r\n }*/\r\n\r\n vm.loading = true;\r\n datacontext.report_getTotaliSezioni(bPDF, vm.filter.anno, vm.filter.mese, vm.filter.dataInizio, vm.filter.dataFine).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF)\r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n // Selezione dipendente\r\n function selezionaDipendente() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/dipendenteSelect.html?version=30',\r\n controller: 'dipendenteSelect',\r\n windowClass: 'modal-wide',\r\n resolve: {}\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n vm.fDipendenteId = returnItem.id;\r\n vm.strDipendente = returnItem.nominativo;\r\n });\r\n }\r\n\r\n function annullaDipendente() {\r\n vm.fDipendenteId = -1;\r\n vm.strDipendente = '';\r\n }\r\n\r\n\r\n function getListAnni() {\r\n vm.list.anni = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': $translate.instant('--Tutti--')\r\n };\r\n vm.list.anni.push(item);\r\n\r\n for (var i = 0; i < 90; i++) {\r\n var item = {\r\n 'Id': 2010 + i,\r\n 'Name': String(2010 + i)\r\n };\r\n vm.list.anni.push(item);\r\n }\r\n\r\n vm.filter.anno = vm.fAnno = new Date().getFullYear();\r\n }\r\n\r\n function getListMesi() {\r\n vm.list.mesi = [\r\n { 'Id': 0, 'Name': $translate.instant('--Tutti--') },\r\n { 'Id': 1, 'Name': $translate.instant('Gennaio') },\r\n { 'Id': 2, 'Name': $translate.instant('Febbraio') },\r\n { 'Id': 3, 'Name': $translate.instant('Marzo') },\r\n { 'Id': 4, 'Name': $translate.instant('Aprile') },\r\n { 'Id': 5, 'Name': $translate.instant('Maggio') },\r\n { 'Id': 6, 'Name': $translate.instant('Giugno') },\r\n { 'Id': 7, 'Name': $translate.instant('Luglio') },\r\n { 'Id': 8, 'Name': $translate.instant('Agosto') },\r\n { 'Id': 9, 'Name': $translate.instant('Settembre') },\r\n { 'Id': 10, 'Name': $translate.instant('Ottobre') },\r\n { 'Id': 11, 'Name': $translate.instant('Novembre') },\r\n { 'Id': 12, 'Name': $translate.instant('Dicembre') }\r\n ];\r\n\r\n vm.filter.mese = vm.fMese = new Date().getMonth() + 1; \r\n meseChanged();\r\n }\r\n\r\n function getListSettimane() {\r\n vm.list.settimane = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': $translate.instant('--Tutte--')\r\n };\r\n vm.list.settimane.push(item);\r\n\r\n for (var i = 1; i < 55; i++) {\r\n var item = {\r\n 'Id': i,\r\n 'Name': String(i)\r\n };\r\n vm.list.settimane.push(item);\r\n }\r\n }\r\n\r\n function getListGiorni() {\r\n vm.list.giorni = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': $translate.instant('--Tutti--')\r\n };\r\n vm.list.giorni.push(item);\r\n\r\n for (var i = 1; i < 32; i++) {\r\n var item = {\r\n 'Id': i,\r\n 'Name': String(i)\r\n };\r\n vm.list.giorni.push(item);\r\n }\r\n }\r\n\r\n function getListSettimane() {\r\n vm.list.settimane = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': $translate.instant('--Tutte--')\r\n };\r\n vm.list.settimane.push(item);\r\n\r\n for (var i = 1; i < 55; i++) {\r\n var item = {\r\n 'Id': i,\r\n 'Name': String(i)\r\n };\r\n vm.list.settimane.push(item);\r\n }\r\n }\r\n\r\n function getListCommesse() {\r\n vm.list.commesse = [];\r\n var commessaZero = {\r\n 'AreaId': 0,\r\n 'Cliente': '',\r\n 'Descrizione': 'Costi indiretti',\r\n 'Id': 0\r\n }\r\n\r\n vm.list.commesse = [];\r\n vm.list.commesse.push(commessaZero);\r\n\r\n return datacontext.commessa_getAllByFilter(0, 0, '', -1, -1, '').then(function (data) {\r\n if (Array.isArray(data) && data.length > 0)\r\n data.forEach(function (item) { vm.list.commesse.push(item); });\r\n\r\n return vm.list.commesse;\r\n });\r\n }\r\n\r\n function commessaChanged(id) {\r\n vm.fCdc = 0;\r\n if (id == null) {\r\n vm.list.cdc = getListCentriCosto(-1);\r\n }\r\n else {\r\n var commessa = _.find(vm.list.commesse, { 'Id': id });\r\n vm.list.cdc = getListCentriCosto(commessa.Id);\r\n }\r\n }\r\n\r\n function meseChanged() {\r\n switch (vm.fMese) {\r\n case 1:\r\n vm.strMese = 'Gennaio';\r\n break;\r\n case 2:\r\n vm.strMese = 'Febbraio';\r\n break;\r\n case 3:\r\n vm.strMese = 'Marzo';\r\n break;\r\n case 4:\r\n vm.strMese = 'Aprile';\r\n break;\r\n case 5:\r\n vm.strMese = 'Maggio';\r\n break;\r\n case 6:\r\n vm.strMese = 'Giugno';\r\n break;\r\n case 7:\r\n vm.strMese = 'Luglio';\r\n break;\r\n case 8:\r\n vm.strMese = 'Agosto';\r\n break;\r\n case 9:\r\n vm.strMese = 'Settembre';\r\n break;\r\n case 10:\r\n vm.strMese = 'Ottobre';\r\n break;\r\n case 11:\r\n vm.strMese = 'Novembre';\r\n break;\r\n case 12:\r\n vm.strMese = 'Dicembre';\r\n break;\r\n }\r\n }\r\n\r\n function getListCentriCosto(commessaId) {\r\n vm.list.cdc = [];\r\n return datacontext.centroCosto_getAllList(commessaId, -1).then(function (data) {\r\n return vm.list.cdc = data;\r\n });\r\n }\r\n\r\n function getListAziendePartner() {\r\n return datacontext.aziendaPartner_getAllList().then(function (data) {\r\n return vm.list.aziendePartner = data;\r\n });\r\n }\r\n\r\n function oreDaiTimeSheet() {\r\n setFilter(); \r\n if (vm.loading == true)\r\n return;\r\n\r\n if (vm.filter.settimana > 0) {\r\n vm.filter.mese = vm.filter.giorno = 0;\r\n vm.fMese = vm.fGiorno = 0;\r\n }\r\n\r\n if (!vm.filter.anno || !vm.filter.settimana) {\r\n logError($translate.instant('IndicareAnnoESettimana'));\r\n return;\r\n } \r\n\r\n vm.loading = true;\r\n datacontext.reportOre_getAll(0, 0, vm.filter.anno, vm.filter.mese, vm.filter.settimana, vm.filter.giorno, vm.filter.commessa, vm.filter.ricerca, vm.filter.aziendaPartner, vm.ordine).then(function (data) {\r\n // Header\r\n var excel = \"\";\r\n excel += \"\";\r\n excel += \"\";\r\n\r\n // Row Vs Column\r\n var rowCount = 1;\r\n data.forEach(function (item) {\r\n excel += \"\";\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n excel += (\"\").replace('null', '');\r\n rowCount++;\r\n excel += '';\r\n });\r\n excel += '
DipendenteCommessaCommessa DescClienteAttivita'DataGiornoMeseAnnoOre LavoroStatus OreNoteSettimana
\" + String(item.Dipendente) + \"\" + String(item.Commessa) + \"\" + String(item.CommessaDesc) + \"\" + item.Cliente + \"\" + item.Attivita + \"\" + $filter('dateFromValues')(item.Giorno, item.Mese, item.Anno) + \"\" + item.Giorno + \"\" + item.Mese + \"\" + item.Anno + \"\" + $filter('floatToString')(item.OreLavoro) + \"\" + item.StatusOre + \"\" + item.Note + \"\" + item.Settimana + \"
'\r\n\r\n var excelFile = \"\";\r\n excelFile += \"\";\r\n excelFile += \"\";\r\n excelFile += \"\";\r\n excelFile += \"\";\r\n excelFile += excel.replace(\"null\", \"\");\r\n excelFile += \"\";\r\n excelFile += \"\";\r\n var base64data = \"base64,\" + $.base64.encode(excelFile);\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n document.body.appendChild(a);\r\n var byteCharacters = atob(base64data.replace(\"base64,\", \"\"));\r\n var byteNumbers = new Array(byteCharacters.length);\r\n for (var i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n var byteArray = new Uint8Array(byteNumbers);\r\n var blob = new Blob([byteArray], { type: 'application/vnd.ms-excel' });\r\n var URL = window.URL || window.webkitURL;\r\n var downloadUrl = URL.createObjectURL(blob);\r\n a.href = downloadUrl;\r\n a.download = vm.fSettimana > 0 ? vm.strMese + \" \" + vm.fAnno + \" Sett \" + vm.fSettimana : vm.strMese + \" \" + vm.fAnno + '.xls';\r\n a.click();\r\n document.body.removeChild(a);\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n }\r\n})();\r\n","// app/reportOre/reportOre.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'reportOre';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$filter', 'datacontext', 'common', 'sectionMenu', '_', '$translate', reportOreFn]);\r\n\r\n function reportOreFn($rootScope, $scope, $filter, datacontext, common, sectionMenu, _, $translate) {\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = $translate.instant('ReportOreLavorate');\r\n vm.sectionMenu = sectionMenu.setSection('ReportOre');\r\n vm.addDisabled = true;\r\n vm.exportDisabled = false;\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.list = {};\r\n //Ordinamento\r\n vm.list.ordine = ['Dipendente', 'Commessa', 'Sezione'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n cerca();\r\n };\r\n\r\n //Liste\r\n vm.list.anni = [];\r\n vm.list.mesi = [];\r\n vm.list.giorni = [];\r\n vm.list.setttimane = [];\r\n vm.list.commesse = [];\r\n vm.list.cdc = [];\r\n vm.list.aziendePartner = [];\r\n vm.causali = [{ Name: $translate.instant('Ordinario'), Id: 1 }, { Name: $translate.instant('Straordinario'), Id: 3 }, { Name: $translate.instant('Trasferta'), Id: 4 }, { Name: 'Smart working', Id: 5 }, { Name: $translate.instant('OreDiViaggio'), Id: 2 }];\r\n\r\n //Somma\r\n vm.somma = 0;\r\n\r\n // Filtro\r\n vm.filter = {};\r\n vm.filter.anno = vm.fAnno = 0;\r\n vm.filter.mese = vm.fMese = 0;\r\n vm.filter.giorno = vm.fGiorno = 0;\r\n vm.filter.settimana = vm.fSettimana = 0; \r\n vm.filter.commessa = vm.fCommessa = -1;\r\n vm.filter.cdc = vm.fCdc = -1;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n vm.filter.causale = vm.fCausale = -1;\r\n vm.filter.aziendaPartner = vm.fAziendaPartner = 0;\r\n\r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll;\r\n vm.getPerformance = getPerformance;\r\n vm.strMese = '';\r\n vm.meseChanged = meseChanged; \r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() { \r\n var promises = [getListAnni(), getListMesi(), getListSettimane(), getListGiorni(), getListCommesse(), getListAziendePartner(), getListSezioni()];\r\n common.activateController(promises, controllerId).then(function () { \r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //**************************************************** \r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.anno = vm.fAnno == null ? 0 : vm.fAnno;\r\n vm.filter.mese = vm.fMese == null ? 0 : vm.fMese;\r\n vm.filter.settimana = vm.fSettimana == null ? 0 : vm.fSettimana;\r\n vm.filter.giorno = vm.fGiorno == null ? 0 : vm.fGiorno;\r\n vm.filter.commessa = vm.fCommessa == null ? -1 : vm.fCommessa;\r\n vm.filter.cdc = vm.fCdc == null ? -1 : vm.fCdc;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n vm.filter.causale = vm.fCausale == null ? -1 : vm.fCausale;\r\n vm.filter.aziendaPartner = vm.fAziendaPartner == null ? 0 : vm.fAziendaPartner;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n getPerformance();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.reportOre_countAll(vm.filter.anno, vm.filter.mese, vm.filter.settimana, vm.filter.giorno, vm.filter.commessa, vm.filter.cdc, vm.filter.ricerca, vm.filter.causale, vm.filter.aziendaPartner).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n\r\n vm.somma = 0;\r\n datacontext.reportOre_getTotale(vm.filter.anno, vm.filter.mese, vm.filter.settimana, vm.filter.giorno, vm.filter.commessa, vm.filter.cdc, vm.filter.ricerca, vm.filter.causale, vm.filter.aziendaPartner).then(function (data) {\r\n if (data)\r\n vm.somma = data;\r\n });\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() { \r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.reportOre_getAll(vm.pageSize, vm.page, vm.filter.anno, vm.filter.mese, vm.filter.settimana, vm.filter.giorno, vm.filter.commessa, vm.filter.cdc, vm.filter.ricerca, vm.filter.causale, vm.filter.aziendaPartner, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++; \r\n vm.records.push.apply(vm.records, data);\r\n }\r\n vm.loading = false; \r\n });\r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getListAnni() {\r\n vm.list.anni = []; \r\n var item = {\r\n 'Id': 0,\r\n 'Name': '-- Tutti --'\r\n };\r\n vm.list.anni.push(item);\r\n\r\n for (var i = 0; i < 90; i++) {\r\n var item = {\r\n 'Id': 2010 + i,\r\n 'Name': String(2010 + i)\r\n };\r\n vm.list.anni.push(item);\r\n } \r\n\r\n vm.filter.anno = vm.fAnno = new Date().getFullYear();\r\n }\r\n\r\n function getListMesi() {\r\n vm.list.mesi = [\r\n { 'Id': 0, 'Name': '-- Tutti --' },\r\n { 'Id': 1, 'Name': $translate.instant('Gennaio') },\r\n { 'Id': 2, 'Name': $translate.instant('Febbraio') },\r\n { 'Id': 3, 'Name': $translate.instant('Marzo') },\r\n { 'Id': 4, 'Name': $translate.instant('Aprile') },\r\n { 'Id': 5, 'Name': $translate.instant('Maggio') },\r\n { 'Id': 6, 'Name': $translate.instant('Giugno') },\r\n { 'Id': 7, 'Name': $translate.instant('Luglio') },\r\n { 'Id': 8, 'Name': $translate.instant('Agosto') },\r\n { 'Id': 9, 'Name': $translate.instant('Settembre') },\r\n { 'Id': 10, 'Name': $translate.instant('Ottobre') },\r\n { 'Id': 11, 'Name': $translate.instant('Novembre') },\r\n { 'Id': 12, 'Name': $translate.instant('Dicembre') }\r\n ];\r\n\r\n vm.filter.mese = vm.fMese = new Date().getMonth() + 1;\r\n\r\n meseChanged();\r\n }\r\n\r\n function getListSettimane() {\r\n vm.list.settimane = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': $translate.instant('--Tutte--')\r\n };\r\n vm.list.settimane.push(item);\r\n\r\n for (var i = 1; i < 55; i++) {\r\n var item = {\r\n 'Id': i,\r\n 'Name': String(i)\r\n };\r\n vm.list.settimane.push(item);\r\n } \r\n }\r\n\r\n function getListGiorni() {\r\n vm.list.giorni = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': $translate.instant('--Tutti--')\r\n };\r\n vm.list.giorni.push(item);\r\n\r\n for (var i = 1; i < 32; i++) {\r\n var item = {\r\n 'Id': i,\r\n 'Name': String(i)\r\n };\r\n vm.list.giorni.push(item);\r\n }\r\n }\r\n\r\n function getListCommesse() {\r\n vm.list.commesse = [];\r\n return datacontext.commessa_getAllListForTimeSheet().then(function (data) {\r\n if (Array.isArray(data) && data.length > 0)\r\n data.forEach(function (item) { vm.list.commesse.push(item); });\r\n\r\n return vm.list.commesse;\r\n });\r\n }\r\n\r\n function getListSezioni() {\r\n vm.list.cdc = [];\r\n return datacontext.sezione_getAllList().then(function (data) {\r\n return vm.list.cdc = data;\r\n });\r\n }\r\n \r\n function meseChanged() {\r\n switch (vm.fMese) {\r\n case 1:\r\n vm.strMese = $translate.instant('Gennaio');\r\n break;\r\n case 2:\r\n vm.strMese = $translate.instant('Febbraio');\r\n break;\r\n case 3:\r\n vm.strMese = $translate.instant('Marzo');\r\n break;\r\n case 4:\r\n vm.strMese = $translate.instant('Aprile');\r\n break;\r\n case 5:\r\n vm.strMese = $translate.instant('Maggio');\r\n break;\r\n case 6:\r\n vm.strMese = $translate.instant('Giugno');\r\n break;\r\n case 7:\r\n vm.strMese = $translate.instant('Luglio');\r\n break;\r\n case 8:\r\n vm.strMese = $translate.instant('Agosto');\r\n break;\r\n case 9:\r\n vm.strMese = $translate.instant('Settembre');\r\n break;\r\n case 10:\r\n vm.strMese = $translate.instant('Ottobre');\r\n break;\r\n case 11:\r\n vm.strMese = $translate.instant('Novembre');\r\n break;\r\n case 12:\r\n vm.strMese = $translate.instant('Dicembre');\r\n break;\r\n }\r\n }\r\n\r\n function getListAziendePartner() {\r\n return datacontext.aziendaPartner_getAllList().then(function (data) {\r\n return vm.list.aziendePartner = data;\r\n });\r\n }\r\n\r\n function getPerformance() {\r\n //Inizializzo la scala del grafico\r\n vm.maxValue = 10;\r\n //vm.loading = true;\r\n\r\n $scope.graficoPerformance = {\r\n 'type': 'AreaChart',\r\n 'options': {\r\n 'legend': { 'position': 'none' },\r\n 'colors': ['#002854'],\r\n 'vAxis': {\r\n 'title': $translate.instant('OreLavoro'),\r\n 'titleTextStyle': { color: '#333' },\r\n 'minValue': 0,\r\n 'maxValue': parseInt(vm.maxValue)\r\n },\r\n 'hAxis': {\r\n 'textPosition': 'none',\r\n 'gridlines': { 'count': 10 }\r\n },\r\n 'pointSize': 8\r\n },\r\n 'formatters': {\r\n 'number': [\r\n {\r\n 'columnNum': 1,\r\n 'decimalSymbol': ',',\r\n 'fractionDigits': 2,\r\n 'groupingSymbol': '.'\r\n }\r\n ]\r\n }\r\n };\r\n\r\n //Inizializzo il grafico\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n }; \r\n\r\n datacontext.reportOre_getSum(vm.filter.anno, vm.filter.mese, vm.filter.settimana, vm.filter.giorno, vm.filter.commessa, vm.filter.cdc, vm.filter.ricerca, vm.filter.causale, vm.filter.aziendaPartner).then(function (data) { \r\n if (data == null || data == \"500\" || data.length == 0) {\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n return;\r\n }\r\n\r\n var sortedPerformance = data;\r\n vm.primaData = $filter('dateFromValues')(_.first(sortedPerformance).Giorno, _.first(sortedPerformance).Mese, _.first(sortedPerformance).Anno);\r\n vm.ultimaData = $filter('dateFromValues')(_.last(sortedPerformance).Giorno, _.last(sortedPerformance).Mese, _.last(sortedPerformance).Anno);\r\n\r\n $scope.graficoPerformance.data = {\r\n \"cols\": [\r\n { id: \"description\", label: \"Data\", type: \"string\" },\r\n { id: \"ore\", label: $translate.instant('OreLavoro'), type: \"number\" }\r\n ],\r\n \"rows\": []\r\n };\r\n\r\n sortedPerformance.forEach(function (obj) {\r\n var item = {};\r\n item.c = [];\r\n var tmpMaxValue = vm.maxValue;\r\n\r\n var desc = $filter('dateFromValues')(obj.Giorno, obj.Mese, obj.Anno);\r\n\r\n if (obj.SommaOre > tmpMaxValue)\r\n tmpMaxValue = obj.SommaOre + 10;\r\n\r\n item.c.push({ v: desc });\r\n item.c.push({ v: obj.SommaOre });\r\n\r\n $scope.graficoPerformance.data.rows.push(item);\r\n\r\n if (tmpMaxValue > vm.maxValue)\r\n vm.maxValue = tmpMaxValue;\r\n });\r\n }); \r\n } \r\n }\r\n})();","// app/report/report.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'reportSuper';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$filter', 'datacontext', 'common', 'sectionMenu', '_', 'moment', 'bootstrap.dialog', '$uibModal', reportSuperFn]);\r\n\r\n function reportSuperFn($rootScope, $filter, datacontext, common, sectionMenu, _, moment, bDialog, $uibModal) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n var detectIE = $rootScope.detectIE;\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = 'Esporta dati'\r\n vm.sectionMenu = sectionMenu.setSection('Report');\r\n vm.loading == false;\r\n\r\n //Liste\r\n vm.list = {};\r\n vm.list.anni = [];\r\n //vm.list.mesi = [];\r\n //vm.list.giorni = [];\r\n //vm.list.setttimane = [];\r\n vm.list.aziende = [];\r\n\r\n // Filtro\r\n vm.filter = {};\r\n vm.filter.anno = vm.fAnno = 0;\r\n //vm.filter.mese = vm.fMese = 0;\r\n //vm.filter.giorno = vm.fGiorno = 0;\r\n //vm.filter.settimana = vm.fSettimana = 0;\r\n //vm.filter.dipendente = vm.fDipendente = -1; \r\n //vm.filter.dataInizio = vm.fDataInizio = '';\r\n //vm.filter.dataFine = vm.fDataFine = '';\r\n //vm.filter.commessa = vm.fCommessa = '';\r\n vm.filter.azienda = vm.fAzienda = '';\r\n\r\n //Metodi su interfaccia\r\n vm.reportDipendenti = reportDipendenti;\r\n\r\n //Configurazione calendario\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n vm.opened1 = false;\r\n };\r\n\r\n vm.open1 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened1 = !vm.opened1;\r\n vm.opened = false;\r\n };\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n vm.loading = true;\r\n var promises = [getListAnni(), getListAziende()];\r\n common.activateController(promises, controllerId).then(function () {\r\n var d = new Date();\r\n vm.fAnno = d.getFullYear(); \r\n vm.loading = false;\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //**************************************************** \r\n function setFilter() { \r\n vm.filter.anno = vm.fAnno == null ? 0 : vm.fAnno;\r\n vm.filter.azienda = vm.fAzienda == null ? '' : vm.fAzienda;\r\n }\r\n\r\n function reportDipendenti(bPDF) {\r\n setFilter();\r\n\r\n if (vm.loading == true)\r\n return;\r\n\r\n if (!vm.filter.anno) {\r\n logError('Indicare anno');\r\n return;\r\n }\r\n\r\n vm.loading = true;\r\n datacontext.report_getDipendenti(bPDF, vm.filter.anno, vm.filter.azienda).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n var data_type = 'data:application/vnd.ms-excel,';\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n if (bPDF) \r\n var data_type = 'data:application/pdf';\r\n\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.download = data.file;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError('Impossibile scaricare il file');\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n\r\n function getListAnni() {\r\n vm.list.anni = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': '--Tutti--'\r\n };\r\n vm.list.anni.push(item);\r\n\r\n for (var i = 0; i < 90; i++) {\r\n var item = {\r\n 'Id': 2010 + i,\r\n 'Name': String(2010 + i)\r\n };\r\n vm.list.anni.push(item);\r\n }\r\n\r\n vm.filter.anno = vm.fAnno = new Date().getFullYear();\r\n }\r\n\r\n function getListMesi() {\r\n vm.list.mesi = [\r\n { 'Id': 0, 'Name': '--Tutti--' },\r\n { 'Id': 1, 'Name': 'Gennaio' },\r\n { 'Id': 2, 'Name': 'Febbraio' },\r\n { 'Id': 3, 'Name': 'Marzo' },\r\n { 'Id': 4, 'Name': 'Aprile' },\r\n { 'Id': 5, 'Name': 'Maggio' },\r\n { 'Id': 6, 'Name': 'Giugno' },\r\n { 'Id': 7, 'Name': 'Luglio' },\r\n { 'Id': 8, 'Name': 'Agosto' },\r\n { 'Id': 9, 'Name': 'Settembre' },\r\n { 'Id': 10, 'Name': 'Ottobre' },\r\n { 'Id': 11, 'Name': 'Novembre' },\r\n { 'Id': 12, 'Name': 'Dicembre' }\r\n ];\r\n\r\n vm.filter.mese = vm.fMese = new Date().getMonth() + 1; \r\n meseChanged();\r\n }\r\n\r\n function getListSettimane() {\r\n vm.list.settimane = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': '--Tutte--'\r\n };\r\n vm.list.settimane.push(item);\r\n\r\n for (var i = 1; i < 55; i++) {\r\n var item = {\r\n 'Id': i,\r\n 'Name': String(i)\r\n };\r\n vm.list.settimane.push(item);\r\n }\r\n }\r\n\r\n function getListGiorni() {\r\n vm.list.giorni = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': '--Tutti--'\r\n };\r\n vm.list.giorni.push(item);\r\n\r\n for (var i = 1; i < 32; i++) {\r\n var item = {\r\n 'Id': i,\r\n 'Name': String(i)\r\n };\r\n vm.list.giorni.push(item);\r\n }\r\n }\r\n\r\n function getListSettimane() {\r\n vm.list.settimane = [];\r\n var item = {\r\n 'Id': 0,\r\n 'Name': '--Tutte--'\r\n };\r\n vm.list.settimane.push(item);\r\n\r\n for (var i = 1; i < 55; i++) {\r\n var item = {\r\n 'Id': i,\r\n 'Name': String(i)\r\n };\r\n vm.list.settimane.push(item);\r\n }\r\n }\r\n\r\n function meseChanged() {\r\n switch (vm.fMese) {\r\n case 1:\r\n vm.strMese = 'Gennaio';\r\n break;\r\n case 2:\r\n vm.strMese = 'Febbraio';\r\n break;\r\n case 3:\r\n vm.strMese = 'Marzo';\r\n break;\r\n case 4:\r\n vm.strMese = 'Aprile';\r\n break;\r\n case 5:\r\n vm.strMese = 'Maggio';\r\n break;\r\n case 6:\r\n vm.strMese = 'Giugno';\r\n break;\r\n case 7:\r\n vm.strMese = 'Luglio';\r\n break;\r\n case 8:\r\n vm.strMese = 'Agosto';\r\n break;\r\n case 9:\r\n vm.strMese = 'Settembre';\r\n break;\r\n case 10:\r\n vm.strMese = 'Ottobre';\r\n break;\r\n case 11:\r\n vm.strMese = 'Novembre';\r\n break;\r\n case 12:\r\n vm.strMese = 'Dicembre';\r\n break;\r\n }\r\n }\r\n\r\n\r\n function getListAziende() {\r\n return datacontext.azienda_getAllList().then(function (data) {\r\n return vm.list.aziende = data;\r\n });\r\n }\r\n\r\n }\r\n})();","//app/richiestaFerie/richiestaFerie.js\r\n\r\n(function () {\r\n\t'use strict';\r\n\tvar controllerId = 'richiestaFeriePermessi';\r\n\tangular.module('app').controller(controllerId, ['$rootScope', '$scope', '$routeParams', '$filter', '$location', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', 'moment', richiestaFeriePermessiFn]);\r\n\r\n\tfunction richiestaFeriePermessiFn($rootScope, $scope, $routeParams, $filter, $location, common, bDialog, $uibModal, datacontext, sectionMenu, $translate, moment) {\r\n\t\tvar getLogFn = common.logger.getLogFn;\r\n\t\tvar log = getLogFn(controllerId);\r\n\t\tvar logError = getLogFn(controllerId, 'logError');\r\n\t\tvar logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\t\t$rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n\t\tvar vm = this;\r\n\t\tvm.view = 'list'; //Opzione list or detail\r\n\t\tvm.setView = setView;\r\n\t\tvm.sectionMenu = sectionMenu.setSection('RichiestaFeriePermessi');\r\n\t\tvm.record = {};\r\n\t\tvm.records = [];\r\n\t\tvm.date = []; //Questo contiene le date da inserire nella tabella ore\r\n\t\tvm.colSabati = [];\r\n\t\tvm.colDomeniche = [];\r\n\t\tvm.colFestivo = [];\r\n\t\tvm.colFerie = []; //1 - da validare, 2 - approvata \r\n\t\tvm.colTitle = [];\r\n\t\tvm.righeC = [];\r\n\t\tvm.righeG = [];\r\n\t\tvm.listaNominativi = [];\r\n\t\tvm.countRecords = 0;\r\n\t\tvm.index = 0;\r\n\t\tvm.exportDisabled = false;\r\n\t\tvm.addDisabled = false;\r\n\t\tvm.pageSize = 30;\r\n\t\tvm.page = 1;\r\n\t\tvm.loading = false;\r\n\t\tvm.super = $rootScope.isAuthorized('SUPER');\r\n\t\tvm.personale = $rootScope.isAuthorized('PERSONALE');\r\n\t\tvm.capoSezione = $rootScope.isAuthorized('CAPOSEZIONE');\r\n\t\tvm.utente = $rootScope.isAuthorized('USER');\r\n\r\n\t\t//Elenco per Ordinamento\r\n\t\tvm.list = {};\r\n\t\tvm.list.ordine = ['Data', 'Stato'];\r\n\t\tvm.list.ordine = common.setOrdine(vm.list.ordine);\r\n\t\tvm.ordine = vm.list.ordine[0];\r\n\t\tvm.selectOrdine = function (item) {\r\n\t\t\tvm.ordine = item;\r\n\t\t\tvm.cerca();\r\n\t\t};\r\n\r\n\t\t//Filtro\r\n\t\tvm.filter = {};\r\n\t\tvm.filter.stato = vm.fStato = -1;\r\n\t\tvm.filter.ricerca = vm.fRicerca = '';\r\n\t\tvm.filter.dtInizio = vm.fDtInizio == null ? '' : $filter('date')(vm.fDtInizio, 'dd/MM/yyyy');\r\n\t\tvm.filter.dtFine = vm.fDtFine == null ? '' : $filter('date')(vm.fDtFine, 'dd/MM/yyyy');\r\n\r\n\t\t//Metodi su interfaccia\r\n\t\tvm.cerca = cerca;\r\n\t\tvm.loadMore = getAllByFilter;\r\n\t\tvm.loadAll = getAll;\r\n\t\tvm.delete = deleteItem;\r\n\t\tvm.add = addRichiestaFeriePermessi;\r\n\t\tvm.edit = editRichiestaFeriePermessi;\r\n\t\tvm.inoltra = inoltraItem;\r\n\t\tvm.showNote = showNote;\r\n\t\tvm.getTimeSheet = getTimeSheet;\r\n\t\tvm.next = next;\r\n\t\tvm.prev = prev;\r\n\t\tvm.vai = vai;\r\n\r\n\t\t//datapicker\r\n\t\tvm.open = function ($event) {\r\n\t\t\t$event.preventDefault();\r\n\t\t\t$event.stopPropagation();\r\n\r\n\t\t\tvm.opened = !vm.opened;\r\n\t\t\tvm.opened2 = false;\r\n\t\t};\r\n\r\n\t\tvm.open2 = function ($event) {\r\n\t\t\t$event.preventDefault();\r\n\t\t\t$event.stopPropagation();\r\n\r\n\t\t\tvm.opened2 = !vm.opened2;\r\n\t\t\tvm.opened = false;\r\n\t\t};\r\n\r\n\t\tvm.dateOptions = {\r\n\t\t\tformatYear: 'yy',\r\n\t\t\tstartingDay: 1\r\n\t\t};\r\n\r\n\t\tvm.format = 'dd/MM/yyyy';\r\n\r\n\t\t// ---- ACTIVATE -------\r\n\t\tactivate();\r\n\r\n\t\tfunction activate() {\r\n\t\t\tvar promises = [getHolidays()];\r\n\t\t\tcommon.activateController(promises, controllerId).then(function () {\r\n\t\t\t\tdatacontext.timeSheet_getDate().then(function (data) {\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tdata = new Date(data);\r\n\t\t\t\t\t\tvm.fAnno = data.getFullYear();\r\n\t\t\t\t\t\tvm.fMese = data.getMonth() + 1;\r\n\t\t\t\t\t\tvm.fGiorno = 0;\r\n\t\t\t\t\t\tvm.fiAnno = data.getFullYear();\r\n\t\t\t\t\t\tvm.fiMese = data.getMonth();\r\n\t\t\t\t\t\tvm.fiGiorno = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//****************************************************\r\n\t\t// METODI \r\n\t\t//****************************************************\r\n\t\tfunction setView(view) {\r\n\t\t\tif (view == 'list')\r\n\t\t\t\tcerca();\r\n\t\t\treturn vm.view = view;\r\n\t\t}\r\n\r\n\t\tfunction cerca() {\r\n\t\t\tvm.records = [];\r\n\t\t\tvm.countRecords = 0;\r\n\t\t\tvm.page = 1;\r\n\t\t\tvm.filter.stato = vm.fStato == null ? 0 : vm.fStato;\r\n\t\t\tvm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\t\t\tvm.filter.dtInizio = vm.fDtInizio == null ? '' : $filter('date')(vm.fDtInizio, 'dd/MM/yyyy');\r\n\t\t\tvm.filter.dtFine = vm.fDtFine == null ? '' : $filter('date')(vm.fDtFine, 'dd/MM/yyyy');\r\n\r\n\t\t\tvm.loading = false;\r\n\t\t\tcountByFilter();\r\n\t\t\treturn getAllByFilter();\r\n\t\t}\r\n\r\n\t\tfunction countByFilter() {\r\n\t\t\treturn datacontext.richiestaFerie_countAll(vm.filter.dtInizio, vm.filter.dtFine, vm.filter.stato).then(function (data) {\r\n\t\t\t\tif (data) {\r\n\t\t\t\t\tvm.countRecords = data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAllByFilter() {\r\n\t\t\tif (vm.loading === true) return;\r\n\r\n\t\t\tif (vm.countRecords == 0) countByFilter();\r\n\t\t\telse if (vm.countRecords <= vm.records.length) return;\r\n\r\n\t\t\tvm.loading = true;\r\n\t\t\treturn datacontext.richiestaFerie_getAllByFilter(vm.pageSize, vm.page, vm.filter.dtInizio, vm.filter.dtFine, vm.filter.stato, vm.ordine.value).then(function (data) {\r\n\t\t\t\tif (data.constructor === Array) {\r\n\t\t\t\t\tvm.page++;\r\n\t\t\t\t\tvm.records.push.apply(vm.records, data);\r\n\t\t\t\t}\r\n\t\t\t\tvm.loading = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAll() {\r\n\t\t\tif (vm.records.length < vm.countRecords) {\r\n\t\t\t\tgetAllByFilter().then(function () { getAll(); });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction addRichiestaFeriePermessi() {\r\n\t\t\tvar richiesta = { Id: 0 };\r\n\t\t\tvar modalInstance = $uibModal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/richiestaFerie/modal/richiestaFerieAddEdit.html?version=30',\r\n\t\t\t\tcontroller: 'richiestaFeriePermessiAddEdit',\r\n\t\t\t\twindowClass: 'modal-wide',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\trichiesta: function () {\r\n\t\t\t\t\t\treturn richiesta;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (!returnItem) return logError($translate.instant('Errore durante inserimento del dato'));\r\n\r\n\t\t\t\tif (returnItem != 'chiusoManualmente') {\r\n\t\t\t\t\tlogSuccess($translate.instant('Richiesta aggiunta con successo'));\r\n\t\t\t\t\tvm.cerca();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction editRichiestaFeriePermessi(item) {\r\n\t\t\tvar modalInstance = $uibModal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/richiestaFerie/modal/richiestaFerieAddEdit.html?version=30',\r\n\t\t\t\tcontroller: 'richiestaFeriePermessiAddEdit',\r\n\t\t\t\twindowClass: 'modal-wide',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\trichiesta: function () {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (!returnItem) return logError($translate.instant('Errore durante inserimento del dato'));\r\n\r\n\t\t\t\tif (returnItem != 'chiusoManualmente') {\r\n\t\t\t\t\tlogSuccess($translate.instant('Richiesta modificata con successo'));\r\n\t\t\t\t\tvm.cerca();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction inoltraItem(item) {\r\n\t\t\tvar modalInstance = $uibModal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/richiestaFerie/modal/inoltraFerie.html?version=30',\r\n\t\t\t\tcontroller: 'inoltraFerie',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\trichiesta: function () {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (returnItem != null) {\r\n\t\t\t\t\tif (returnItem.Id) {\r\n\t\t\t\t\t\tlogSuccess($translate.instant('Richiesta Inoltrata'));\r\n\t\t\t\t\t\tcerca();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tlogError($translate.instant('Impossibile inoltrare la Richiesta'));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction deleteItem(item) {\r\n\t\t\tvar modalInstance = $uibModal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/richiestaFerie/modal/eliminaFerie.html?version=30',\r\n\t\t\t\tcontroller: 'eliminaFerie',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\trichiesta: function () {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (returnItem == 'ok') {\r\n\t\t\t\t\treturn datacontext.richiestaFerie_delete(item.Id).then(function (data) {\r\n\t\t\t\t\t\tif (data != \"204\") return logError($translate.instant('Impossibile eliminare la richiesta'));\r\n\t\t\t\t\t\tlogSuccess($translate.instant('Richiesta eliminata con successo'));\r\n\t\t\t\t\t\tvm.cerca();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction showNote(note) {\r\n\t\t\tbDialog.confirmationDialog('Note ' + $translate.instant('richiesta'), note).then(function () { });\r\n\t\t}\r\n\r\n\r\n\t\tfunction next() {\r\n\t\t\tvar x = parseInt(vm.fMese) + 1;\r\n\t\t\tif (x > 12) {\r\n\t\t\t\tvm.fMese = 1;\r\n\t\t\t\tvm.fAnno++;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tvm.fMese++;\r\n\r\n\t\t\tvm.filter.dtInizio = '01/' + vm.fMese + '/' + vm.fAnno;\r\n\t\t\tvar temp_date = new Date(vm.fAnno, vm.fMese, 0);\r\n\t\t\tvm.filter.dtFine = temp_date.getDate() + '/' + vm.fMese + '/' + vm.fAnno;\r\n\r\n\t\t\tgetTimeSheet();\r\n\t\t}\r\n\r\n\t\tfunction prev() {\r\n\t\t\tvar x = vm.fMese - 1;\r\n\r\n\t\t\tif (x <= 0) {\r\n\t\t\t\tvm.fMese = 12;\r\n\t\t\t\tvm.fAnno--;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tvm.fMese--;\r\n\r\n\t\t\tvm.filter.dtInizio = '01/' + vm.fMese + '/' + vm.fAnno;\r\n\t\t\tvar temp_date = new Date(vm.fAnno, vm.fMese, 0);\r\n\t\t\tvm.filter.dtFine = temp_date.getDate() + '/' + vm.fMese + '/' + vm.fAnno;\r\n\r\n\t\t\tgetTimeSheet();\r\n\t\t}\r\n\r\n\t\tfunction vai() {\r\n\t\t\tvm.filter.dtInizio = '01/' + vm.fMese + '/' + vm.fAnno;\r\n\t\t\tvar temp_date = new Date(vm.fAnno, vm.fMese, 0);\r\n\t\t\tvm.filter.dtFine = temp_date.getDate() + '/' + vm.fMese + '/' + vm.fAnno;\r\n\t\t\tgetTimeSheet();\r\n\t\t}\r\n\r\n\t\tfunction getTimeSheet() {\r\n\t\t\tvm.loading = true;\r\n\t\t\tif (vm.fAnno < 0)\r\n\t\t\t\tvm.fAnno = new Date().getFullYear();\r\n\t\t\tif (vm.fMese < 1 || vm.fMese > 12)\r\n\t\t\t\tvm.fMese = 1;\r\n\r\n\t\t\tvar dataFine = new Date(vm.fAnno, vm.fMese, 0);\r\n\r\n\t\t\tvm.giorni = [];\r\n\t\t\tvm.gSett = [];\r\n\t\t\tvm.colFestivo = [];\r\n\t\t\tvm.colSabati = [];\r\n\t\t\tvm.colDomeniche = [];\r\n\t\t\tvm.righeC = [];\r\n\t\t\tvm.rigaTot = [];\r\n\t\t\tvm.Totale = 0;\r\n\t\t\tvm.TotaleApprovate = [];\r\n\t\t\tvm.TotaleDaValidare = [];\r\n\r\n\t\t\tfor (var i = 0; i < dataFine.getDate(); i++) {\r\n\t\t\t\tvm.rigaTot.push({ \"id\": i, \"value\": 0 });\r\n\t\t\t\tvm.date[i] = moment().year(vm.fAnno).month(vm.fMese - 1).date(i + 1);\r\n\r\n\t\t\t\tvm.giorni[i] = String(vm.date[i].format('L')).substring(0, 5);\r\n\t\t\t\tvm.gSett[i] = String(vm.date[i].format('dddd')).substring(0, 3);\r\n\r\n\t\t\t\tif (vm.gSett[i] == 'Sab' || vm.gSett[i] == 'Sat')\r\n\t\t\t\t\tvm.colSabati[i] = true;\r\n\t\t\t\telse\r\n\t\t\t\t\tvm.colSabati[i] = false;\r\n\t\t\t\tif (vm.gSett[i] == 'Dom' || vm.gSett[i] == 'Sun')\r\n\t\t\t\t\tvm.colDomeniche[i] = true;\r\n\t\t\t\telse\r\n\t\t\t\t\tvm.colDomeniche[i] = false;\r\n\r\n\t\t\t\tvm.colFestivo[i] = false;\r\n\r\n\t\t\t\tvar giorno = vm.date[i].date();\r\n\t\t\t\tvar mese = vm.date[i].month();\r\n\t\t\t\tvar anno = vm.date[i].year();\r\n\t\t\t\tvar check = null;\r\n\t\t\t\tcheck = _.find(vm.holidays, function (o) {\r\n\t\t\t\t\treturn (o.giorno == giorno && o.mese - 1 == mese && (o.anno == 0 || o.anno == anno))\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (check != null) {\r\n\t\t\t\t\tvm.colFestivo[i] = true;\r\n\t\t\t\t\tvm.colTitle[i] = check.descrizione;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.colFestivo[i] = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//eliminazione ultimo elemento array in caso di mese inferiore a 31 giorni\r\n\t\t\tif (dataFine.getDate() < 31 && vm.date.length == 31) {\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t}\r\n\t\t\tif (dataFine.getDate() < 31 && vm.date.length == 31 && dataFine.getMonth() == 1) {\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t}\r\n\t\t\tif (dataFine.getDate() < 30 && vm.date.length == 30 && dataFine.getMonth() == 1) {\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t}\r\n\r\n\t\t\t//Da qui inizia la parte per le righe\r\n\t\t\tdatacontext.richiestaFerie_getReportFerie(vm.filter.dtInizio, vm.filter.dtFine).then(function (data) {\r\n\t\t\t\tvar ordinario = _.chain(data).groupBy(function (value) { return [value.Nominativo, value.Matricola]; }).map(function (v, i) {\r\n\t\t\t\t\tvar iArr = i.split(',');\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tNominativo: iArr[0],\r\n\t\t\t\t\t\tMatricola: iArr[1],\r\n\t\t\t\t\t\tallInfo: v\r\n\t\t\t\t\t}\r\n\t\t\t\t}).value();\r\n\t\t\t\tvm.listaNominativi = ordinario;\r\n\t\t\t\tfor (var k = 0; k < vm.listaNominativi.length; k++) {\r\n\t\t\t\t\tvm.TotaleApprovate[k] = 0;\r\n\t\t\t\t\tvm.TotaleDaValidare[k] = 0;\r\n\t\t\t\t\tfor (var i = 0; i < dataFine.getDate(); i++) {\r\n\r\n\t\t\t\t\t\tif (vm.listaNominativi[k].allInfo[i].Stato == 2) { //Caso giorno di ferie ACCETTATO\r\n\t\t\t\t\t\t\tvm.TotaleApprovate[k] += vm.listaNominativi[k].allInfo[i].Ore;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (vm.listaNominativi[k].allInfo[i].Stato == 1) { //Caso giorno di ferie INOLTRATO\r\n\t\t\t\t\t\t\tvm.TotaleDaValidare[k] += vm.listaNominativi[k].allInfo[i].Ore;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar ferie = _.chain(_.filter(data, { 'Stato': 1, 'Stato': 2 })).groupBy(function (value) { return [value.Nominativo]; }).map(function (v, i) {\r\n\t\t\t\t\tvar iArr = i.split(',');\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tnominativo: iArr,\r\n\t\t\t\t\t\tore: v\r\n\t\t\t\t\t}\r\n\t\t\t\t}).value();\r\n\r\n\t\t\t\tif (ferie && ferie.length > 0) {\r\n\t\t\t\t\tvm.righeC = ferie;\r\n\t\t\t\t\t//Segno le ore \r\n\t\t\t\t\tvm.righeC.forEach(function (rigaC) {\r\n\t\t\t\t\t\tvar somma = 0;\r\n\t\t\t\t\t\trigaC.oreC = [];\r\n\t\t\t\t\t\tfor (var k = dataFine.getDate(); k < dataFine.getDate(); k++) {\r\n\r\n\t\t\t\t\t\t\trigaC.Totale = somma; //Somma per riga\r\n\t\t\t\t\t\t\trigaC.Totale = parseFloat(rigaC.Totale.toFixed(2));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvm.loading = false;\r\n\t\t}\r\n\r\n\t\tfunction getHolidays() {\r\n\t\t\treturn vm.holidays = datacontext.festivita_getAll().then(function (data) {\r\n\t\t\t\treturn vm.holidays = data;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n var serviceId = 'datacontext';\r\n angular.module('app').factory(serviceId, ['common', '_', datacontext]);\r\n\r\n function datacontext(common, _) {\r\n var $q = common.$q;\r\n var $http = common.$http;\r\n var urlAPI = '/api';\r\n var numRecordsTaHead = 15; // Variabile generale di numero record per elenchi async-TypeAHead\r\n var _pageSize = 30;\r\n\r\n //Array condivisi su app - caricati su avvio app\r\n // Utilizzati esclusivamente su tag SELECT\r\n var _arrProvincie = [];\r\n\r\n var service = {\r\n\r\n arrProvincie: arrProvincie,\r\n getImage: getImage,\r\n\r\n account_get: account_get,\r\n account_changePassword: account_changePassword,\r\n\r\n //-- ATTIVITA'\r\n attivita_getAllList: attivita_getAllList,\r\n attivita_getAll: attivita_getAll,\r\n attivita_get: attivita_get,\r\n attivita_add: attivita_add,\r\n attivita_update: attivita_update,\r\n attivita_delete: attivita_delete,\r\n\r\n //-- AZIENDA\r\n azienda_getAllList: azienda_getAllList,\r\n azienda_getAll: azienda_getAll,\r\n azienda_countAll: azienda_countAll,\r\n azienda_get: azienda_get,\r\n azienda_add: azienda_add,\r\n azienda_update: azienda_update,\r\n azienda_delete: azienda_delete,\r\n\r\n //-- AZIENDAPARTNER\r\n aziendaPartner_getAllList: aziendaPartner_getAllList,\r\n aziendaPartner_getAll: aziendaPartner_getAll,\r\n aziendaPartner_countAll: aziendaPartner_countAll,\r\n aziendaPartner_get: aziendaPartner_get,\r\n aziendaPartner_add: aziendaPartner_add,\r\n aziendaPartner_update: aziendaPartner_update,\r\n aziendaPartner_delete: aziendaPartner_delete,\r\n\r\n //-- CLIENTE\r\n cliente_getAllList: cliente_getAllList,\r\n cliente_getAll: cliente_getAll,\r\n cliente_countAll: cliente_countAll,\r\n cliente_get: cliente_get,\r\n cliente_add: cliente_add,\r\n cliente_update: cliente_update,\r\n cliente_delete: cliente_delete,\r\n\r\n //-- CENTRO COSTO\r\n centroCosto_getAllList: centroCosto_getAllList,\r\n centroCosto_getAll: centroCosto_getAll,\r\n centroCosto_get: centroCosto_get,\r\n\r\n //-- ITEM\r\n item_getAllList: item_getAllList,\r\n item_getAll: item_getAll,\r\n item_get: item_get,\r\n\r\n //-- BUDGET COMMESSA\r\n budgetCommessa_get: budgetCommessa_get,\r\n budgetCommessa_add: budgetCommessa_add,\r\n budgetCommessa_update: budgetCommessa_update,\r\n budgetCommessa_delete: budgetCommessa_delete,\r\n\r\n //-- COMMESSA\r\n commessa_getAllList: commessa_getAllList,\r\n commessa_getAllByFilter: commessa_getAllByFilter,\r\n commessa_countAll: commessa_countAll,\r\n commessa_getAllListForOfferte: commessa_getAllListForOfferte,\r\n commessa_getAllForOfferte: commessa_getAllForOfferte,\r\n commessa_countAllForOfferte: commessa_countAllForOfferte,\r\n commessa_getAllListForTimeSheet: commessa_getAllListForTimeSheet,\r\n commessa_getAllForTimeSheet: commessa_getAllForTimeSheet,\r\n commessa_countAllForTimeSheet: commessa_countAllForTimeSheet,\r\n commessa_get: commessa_get,\r\n commessa_getMaxCodiceCommessa: commessa_getMaxCodiceCommessa,\r\n commessa_add: commessa_add,\r\n commessa_update: commessa_update,\r\n commessa_delete: commessa_delete,\r\n commessa_aggiornaStato: commessa_aggiornaStato,\r\n commessa_riapriCommessa: commessa_riapriCommessa,\r\n commessa_chiudiCommessa: commessa_chiudiCommessa,\r\n commessa_checkTeamLeader: commessa_checkTeamLeader,\r\n\r\n //COMMESSA SEZIONE\r\n commessaSezione_getAll: commessaSezione_getAll,\r\n commessaSezione_getAllForTimeSheet: commessaSezione_getAllForTimeSheet,\r\n commessaSezione_add: commessaSezione_add,\r\n commessaSezione_addList: commessaSezione_addList,\r\n commessaSezione_update: commessaSezione_update,\r\n commessaSezione_delete: commessaSezione_delete,\r\n\r\n //-- SYNCORELOG\r\n syncOreLog_getAllList: syncOreLog_getAllList,\r\n syncOreLog_getAllByFilter: syncOreLog_getAllByFilter,\r\n syncOreLog_countAll: syncOreLog_countAll,\r\n syncOreLog_editSync: syncOreLog_editSync,\r\n\r\n //-- COSTO DIPENDENTE\r\n costoDipendente_get: costoDipendente_get,\r\n costoDipendente_add: costoDipendente_add,\r\n costoDipendente_update: costoDipendente_update,\r\n costoDipendente_delete: costoDipendente_delete,\r\n\r\n //-- Profilo DIPENDENTi\r\n profiloDipendenti_get: profiloDipendenti_get,\r\n profiloDipendenti_getByDipendenteId: profiloDipendenti_getByDipendenteId,\r\n profiloDipendenti_add: profiloDipendenti_add,\r\n profiloDipendenti_update: profiloDipendenti_update,\r\n profiloDipendenti_delete: profiloDipendenti_delete,\r\n\r\n //-- DASHBOARD \r\n dashboard_get: dashboard_get,\r\n\r\n //-- DIPENDENTE\r\n dipendente_getAllList: dipendente_getAllList,\r\n dipendente_getAll: dipendente_getAll,\r\n dipendente_getAllNonAttivi: dipendente_getAllNonAttivi,\r\n dipendente_countAll: dipendente_countAll,\r\n dipendente_getAllForCommessa: dipendente_getAllForCommessa,\r\n dipendente_countAllForCommessa: dipendente_countAllForCommessa,\r\n dipendente_getAllByAziendaPartner: dipendente_getAllByAziendaPartner,\r\n dipendente_get: dipendente_get,\r\n dipendente_add: dipendente_add,\r\n dipendente_update: dipendente_update,\r\n dipendente_delete: dipendente_delete, \r\n dipendente_stampaCurriculum: dipendente_stampaCurriculum,\r\n dipendente_getAllByDB: dipendente_getAllByDB,\r\n\r\n //-- DIPENDENTE CON RUOLO\r\n dipendenteConRuolo_getAll: dipendenteConRuolo_getAll,\r\n dipendenteConRuolo_countAll: dipendenteConRuolo_countAll,\r\n\r\n //DIPENDENTE SEZIONE\r\n dipendenteSezione_getAll: dipendenteSezione_getAll,\r\n dipendenteSezione_add: dipendenteSezione_add,\r\n dipendenteSezione_addList: dipendenteSezione_addList,\r\n dipendenteSezione_delete: dipendenteSezione_delete,\r\n\r\n //-- DETTAGLIO DIPENDENTE\r\n dettaglioDipendente_getAllList: dettaglioDipendente_getAllList,\r\n dettaglioDipendente_getAll: dettaglioDipendente_getAll,\r\n dettaglioDipendente_countAll: dettaglioDipendente_countAll,\r\n dettaglioDipendente_get: dettaglioDipendente_get,\r\n\r\n //-- ISTRUZIONE\r\n istruzione_getAll: istruzione_getAll,\r\n istruzione_add: istruzione_add,\r\n istruzione_addList: istruzione_addList,\r\n istruzione_update: istruzione_update,\r\n istruzione_changeSequence: istruzione_changeSequence,\r\n istruzione_delete: istruzione_delete,\r\n istruzione_get: istruzione_get,\r\n\r\n //-- FORMAZIONE\r\n formazione_getAll: formazione_getAll,\r\n formazione_add: formazione_add,\r\n formazione_update: formazione_update,\r\n formazione_changeSequence: formazione_changeSequence,\r\n formazione_delete: formazione_delete,\r\n formazione_get: formazione_get,\r\n\r\n //-- DETTAGLIO PROGETTO\r\n dettaglioProgetto_getAll: dettaglioProgetto_getAll,\r\n dettaglioProgetto_add: dettaglioProgetto_add,\r\n dettaglioProgetto_update: dettaglioProgetto_update,\r\n dettaglioProgetto_changeSequence: dettaglioProgetto_changeSequence,\r\n dettaglioProgetto_delete: dettaglioProgetto_delete,\r\n dettaglioProgetto_get: dettaglioProgetto_get,\r\n\r\n //-- ESPERIENZA LAVORATIVA\r\n esperienzaLavorativa_getAll: esperienzaLavorativa_getAll,\r\n esperienzaLavorativa_add: esperienzaLavorativa_add,\r\n esperienzaLavorativa_update: esperienzaLavorativa_update,\r\n esperienzaLavorativa_changeSequence: esperienzaLavorativa_changeSequence,\r\n esperienzaLavorativa_delete: esperienzaLavorativa_delete,\r\n esperienzaLavorativa_get: esperienzaLavorativa_get,\r\n\r\n //-- FASE CURRICULUM\r\n faseCurriculum_getAll: faseCurriculum_getAll,\r\n faseCurriculum_get: faseCurriculum_get,\r\n\r\n //-- SOFTWARE\r\n software_getAll: software_getAll,\r\n software_add: software_add,\r\n software_addList: software_addList,\r\n software_update: software_update,\r\n software_delete: software_delete,\r\n software_get: software_get,\r\n\r\n //-- COMPETENZA DIGITALE\r\n competenzaDigitale_getAll: competenzaDigitale_getAll,\r\n competenzaDigitale_add: competenzaDigitale_add,\r\n competenzaDigitale_update: competenzaDigitale_update,\r\n competenzaDigitale_delete: competenzaDigitale_delete,\r\n competenzaDigitale_get: competenzaDigitale_get,\r\n\r\n //-- COMPETENZA TECNICA\r\n competenzaTecnica_getAll: competenzaTecnica_getAll,\r\n competenzaTecnica_add: competenzaTecnica_add,\r\n competenzaTecnica_update: competenzaTecnica_update,\r\n competenzaTecnica_delete: competenzaTecnica_delete,\r\n competenzaTecnica_get: competenzaTecnica_get,\r\n\r\n //-- LINGUA\r\n lingua_getAll: lingua_getAll,\r\n lingua_add: lingua_add,\r\n lingua_update: lingua_update,\r\n lingua_delete: lingua_delete,\r\n lingua_get: lingua_get,\r\n\r\n //-- LINGUAGGIO PROGRAMMAZIONE\r\n linguaggioProgrammazione_getAll: linguaggioProgrammazione_getAll,\r\n linguaggioProgrammazione_add: linguaggioProgrammazione_add,\r\n linguaggioProgrammazione_addList: linguaggioProgrammazione_addList,\r\n linguaggioProgrammazione_update: linguaggioProgrammazione_update,\r\n linguaggioProgrammazione_delete: linguaggioProgrammazione_delete,\r\n linguaggioProgrammazione_get: linguaggioProgrammazione_get,\r\n\r\n //-- NORMA\r\n norma_getAll: norma_getAll,\r\n norma_add: norma_add,\r\n norma_addList: norma_addList,\r\n norma_update: norma_update,\r\n norma_delete: norma_delete,\r\n norma_get: norma_get,\r\n\r\n //-- STANDARD\r\n standard_getAll: standard_getAll,\r\n standard_add: standard_add,\r\n standard_addList: standard_addList,\r\n standard_update: standard_update,\r\n standard_delete: standard_delete,\r\n standard_get: standard_get,\r\n\r\n //-- AREA TECNICA\r\n areaTecnica_getAllList: areaTecnica_getAllList,\r\n areaTecnica_get: areaTecnica_get,\r\n\r\n //-- TIPO ATTIVITA\r\n tipoAttivita_getAllList: tipoAttivita_getAllList,\r\n tipoAttivita_getAllByAreaTecnicaId: tipoAttivita_getAllByAreaTecnicaId,\r\n tipoAttivita_getAll: tipoAttivita_getAll,\r\n tipoAttivita_countAll: tipoAttivita_countAll,\r\n tipoAttivita_add: tipoAttivita_add,\r\n tipoAttivita_delete: tipoAttivita_delete,\r\n tipoAttivita_get: tipoAttivita_get,\r\n tipoAttivita_update: tipoAttivita_update,\r\n\r\n //-- TIPO ASSEGNAZIONE\r\n tipoAssegnazione_getAllList: tipoAssegnazione_getAllList,\r\n\r\n //-- TIPO PRESTAZIONE\r\n tipoPrestazione_getAllList: tipoPrestazione_getAllList,\r\n\r\n //-- TIPO LINGUAGGIO\r\n tipoLinguaggio_getAllList: tipoLinguaggio_getAllList,\r\n tipoLinguaggio_getAll: tipoLinguaggio_getAll,\r\n tipoLinguaggio_countAll: tipoLinguaggio_countAll,\r\n tipoLinguaggio_add: tipoLinguaggio_add,\r\n tipoLinguaggio_delete: tipoLinguaggio_delete,\r\n tipoLinguaggio_get: tipoLinguaggio_get,\r\n tipoLinguaggio_update: tipoLinguaggio_update,\r\n\r\n //-- TIPO MANSIONE\r\n tipoMansione_getAllList: tipoMansione_getAllList,\r\n tipoMansione_getAllByAreaTecnicaId: tipoMansione_getAllByAreaTecnicaId,\r\n tipoMansione_getAll: tipoMansione_getAll,\r\n tipoMansione_countAll: tipoMansione_countAll,\r\n tipoMansione_add: tipoMansione_add,\r\n tipoMansione_delete: tipoMansione_delete,\r\n tipoMansione_get: tipoMansione_get,\r\n tipoMansione_update: tipoMansione_update,\r\n\r\n //-- TIPO NORMA\r\n tipoNorma_getAllList: tipoNorma_getAllList,\r\n tipoNorma_getAll: tipoNorma_getAll,\r\n tipoNorma_countAll: tipoNorma_countAll,\r\n tipoNorma_add: tipoNorma_add,\r\n tipoNorma_delete: tipoNorma_delete,\r\n tipoNorma_get: tipoNorma_get,\r\n tipoNorma_update: tipoNorma_update,\r\n\r\n //-- TIPO SERVIZIO EN\r\n tipoServizioEn_getAll: tipoServizioEn_getAll,\r\n\r\n //-- TIPO SOFTWARE\r\n tipoSoftware_getAllList: tipoSoftware_getAllList,\r\n tipoSoftware_getAllByAreaTecnicaId: tipoSoftware_getAllByAreaTecnicaId,\r\n tipoSoftware_getAll: tipoSoftware_getAll,\r\n tipoSoftware_countAll: tipoSoftware_countAll,\r\n tipoSoftware_add: tipoSoftware_add,\r\n tipoSoftware_delete: tipoSoftware_delete,\r\n tipoSoftware_get: tipoSoftware_get,\r\n tipoSoftware_update: tipoSoftware_update,\r\n\r\n //-- TIPO STANDARD\r\n tipoStandard_getAllList: tipoStandard_getAllList,\r\n tipoStandard_getAll: tipoStandard_getAll,\r\n tipoStandard_countAll: tipoStandard_countAll,\r\n tipoStandard_add: tipoStandard_add,\r\n tipoStandard_delete: tipoStandard_delete,\r\n tipoStandard_get: tipoStandard_get,\r\n tipoStandard_update: tipoStandard_update,\r\n\r\n //TEAM\r\n team_countAll: team_countAll,\r\n team_getAll: team_getAll,\r\n team_update: team_update,\r\n team_add: team_add,\r\n team_get: team_get,\r\n team_delete: team_delete,\r\n\r\n //DIPENDENTITEAM\r\n dipendentiTeam_getAll: dipendentiTeam_getAll,\r\n dipendentiTeam_add: dipendentiTeam_add,\r\n dipendentiTeam_delete: dipendentiTeam_delete,\r\n\r\n //DIPENDENTICOMMESSA\r\n dipendentiCommessa_getAll: dipendentiCommessa_getAll,\r\n dipendentiCommessa_add: dipendentiCommessa_add,\r\n dipendentiCommessa_addList: dipendentiCommessa_addList,\r\n dipendentiCommessa_delete: dipendentiCommessa_delete,\r\n\r\n //COSTI BASE\r\n costiBase_countAll: costiBase_countAll,\r\n costiBase_getAll: costiBase_getAll,\r\n costiBase_update: costiBase_update,\r\n costiBase_add: costiBase_add,\r\n costiBase_get: costiBase_get,\r\n costiBase_getDefault: costiBase_getDefault,\r\n costiBase_delete: costiBase_delete,\r\n\r\n //-- GIUSTIFICATIVO\r\n giustificativo_getAllList: giustificativo_getAllList,\r\n giustificativo_getAll: giustificativo_getAll,\r\n giustificativo_countAll: giustificativo_countAll,\r\n giustificativo_get: giustificativo_get,\r\n giustificativo_add: giustificativo_add,\r\n giustificativo_update: giustificativo_update,\r\n giustificativo_delete: giustificativo_delete,\r\n\r\n //-- PUSH NOTIFICATION\r\n pushNotification_add: pushNotification_add,\r\n\r\n //-- PROFILO ORE\r\n profiloOre_get: profiloOre_get,\r\n profiloOre_getAllList: profiloOre_getAllList,\r\n\r\n profiloOre_countAll: profiloOre_countAll,\r\n profiloOre_getAll: profiloOre_getAll,\r\n profiloOre_update: profiloOre_update,\r\n profiloOre_add: profiloOre_add,\r\n //profiloOre_get: profiloOre_get,\r\n profiloOre_delete: profiloOre_delete,\r\n\r\n\r\n //-- REPORT\r\n report_getPresenze: report_getPresenze,\r\n report_getTimeSheetMensile: report_getTimeSheetMensile,\r\n report_getTimeSheetMensileDipendenti: report_getTimeSheetMensileDipendenti,\r\n report_getTimeSheet: report_getTimeSheet,\r\n report_getCosti: report_getCosti,\r\n report_getCommesse: report_getCommesse,\r\n report_getVerificaTimeSheet: report_getVerificaTimeSheet,\r\n report_getTotaliCommSez: report_getTotaliCommSez,\r\n report_getTotaliSezDip: report_getTotaliSezDip,\r\n report_getTotaliSezioni: report_getTotaliSezioni,\r\n report_getDipendenti: report_getDipendenti,\r\n report_Commessa: report_Commessa,\r\n report_getFerie: report_getFerie,\r\n\r\n //-- REPORT ORE\r\n reportOre_getAll: reportOre_getAll,\r\n reportOre_countAll: reportOre_countAll,\r\n reportOre_getSum: reportOre_getSum,\r\n reportOre_getTotale: reportOre_getTotale,\r\n\r\n //-- RichiestaFerie\r\n richiestaFerie_getAllList: richiestaFerie_getAllList,\r\n richiestaFerie_getAllByFilter: richiestaFerie_getAllByFilter,\r\n richiestaFerie_countAll: richiestaFerie_countAll,\r\n richiestaFerie_getReportFerie: richiestaFerie_getReportFerie,\r\n richiestaFerie_getValidFerie: richiestaFerie_getValidFerie,\r\n richiestaFerie_get: richiestaFerie_get,\r\n richiestaFerie_addMultiplo: richiestaFerie_addMultiplo,\r\n richiestaFerie_add: richiestaFerie_add,\r\n richiestaFerie_update: richiestaFerie_update,\r\n richiestaFerie_inoltra: richiestaFerie_inoltra,\r\n richiestaFerie_delete: richiestaFerie_delete,\r\n\r\n //-- ValidazioneRichiestaFerie\r\n validazioneRichiestaFerie_getAllValid: validazioneRichiestaFerie_getAllValid,\r\n validazioneRichiestaFerie_countValid: validazioneRichiestaFerie_countValid,\r\n validazioneRichiestaFerie_accetta: validazioneRichiestaFerie_accetta,\r\n validazioneRichiestaFerie_rifiuta: validazioneRichiestaFerie_rifiuta,\r\n\r\n //-- TIMESHEET\r\n timeSheet_getAll: timeSheet_getAll,\r\n timeSheet_getById: timeSheet_getById,\r\n timeSheet_get: timeSheet_get,\r\n timeSheet_getMensile: timeSheet_getMensile,\r\n timeSheet_save: timeSheet_save,\r\n timeSheet_delete: timeSheet_delete,\r\n timeSheet_getRiepilogo: timeSheet_getRiepilogo,\r\n timeSheet_getRiepilogoSettimanale: timeSheet_getRiepilogoSettimanale,\r\n timeSheet_getWeek: timeSheet_getWeek,\r\n timeSheet_getWeekByDate: timeSheet_getWeekByDate,\r\n timeSheet_getDate: timeSheet_getDate,\r\n timeSheet_getDatesOfWeek: timeSheet_getDatesOfWeek,\r\n\r\n //-- SETTINGS\r\n settings_getAll: settings_getAll,\r\n settings_countAll: settings_countAll,\r\n settings_get: settings_get,\r\n settings_add: settings_add,\r\n settings_update: settings_update,\r\n settings_delete: settings_delete,\r\n\r\n //-- SEZIONI\r\n sezione_getAllList: sezione_getAllList,\r\n sezione_getAll: sezione_getAll,\r\n sezione_countAll: sezione_countAll,\r\n sezione_getAllListForTimeSheet: sezione_getAllListForTimeSheet,\r\n sezione_getAllForTimeSheet: sezione_getAllForTimeSheet,\r\n sezione_get: sezione_get,\r\n sezione_add: sezione_add,\r\n sezione_update: sezione_update,\r\n sezione_delete: sezione_delete,\r\n\r\n //-- VALIDAZIONE TIMESHEET\r\n validazioneTimeSheet_getAll: validazioneTimeSheet_getAll,\r\n validazioneTimeSheet_countAll: validazioneTimeSheet_countAll,\r\n validazioneTimeSheet_convalida: validazioneTimeSheet_convalida,\r\n validazioneTimeSheet_notificaTutti: validazioneTimeSheet_notificaTutti,\r\n\r\n //-- ISTAT\r\n istat_comune_getAllList: istat_comune_getAllList,\r\n istat_comune_get: istat_comune_get,\r\n\r\n //-- USER\r\n user_getAll: user_getAll,\r\n user_getAllList: user_getAllList,\r\n user_getAllUsernames: user_getAllUsernames,\r\n user_countAll: user_countAll,\r\n user_get: user_get,\r\n user_getByUsername: user_getByUsername,\r\n user_getByDipendenteId: user_getByDipendenteId,\r\n user_add: user_add,\r\n user_update: user_update,\r\n user_activate: user_activate,\r\n user_deactivate: user_deactivate,\r\n user_resetPassword: user_resetPassword,\r\n user_invioCredenziali: user_invioCredenziali,\r\n user_delete: user_delete,\r\n user_suggestUserame: user_suggestUserame,\r\n user_suggestPassword: user_suggestPassword,\r\n\r\n //-- SUPER_USER\r\n super_user_getAll: super_user_getAll,\r\n super_user_countAll: super_user_countAll,\r\n\r\n //-- ROLE\r\n role_getAll: role_getAll,\r\n role_get: role_get,\r\n role_getAllList: role_getAllList,\r\n\r\n //-- ROLE USER\r\n userRole_getAll: userRole_getAll,\r\n userRole_add: userRole_add,\r\n userRole_delete: userRole_delete,\r\n\r\n //SYSTEM METHOD\r\n getWhoAmI: getWhoAmI,\r\n logGetAll: logGetAll,\r\n logDelete: logDelete,\r\n pushGetAll: pushGetAll,\r\n pushDelete: pushDelete,\r\n festivita_getAll: festivita_getAll,\r\n\r\n //-- ATTIVITA' CONTROLLO\r\n //attivitaControllo_getAllList: attivita_getAllList,\r\n //attivitaControllo_getAll: attivita_getAll,\r\n\r\n\r\n attivitaControllo_countAll: attivitaControllo_countAll,\r\n attivitaControllo_getAllByFilter: attivitaControllo_getAllByFilter,\r\n attivitaControllo_get: attivita_get,\r\n /*\r\n commessa_getAllList: commessa_getAllList,\r\n commessa_getAllByFilter: commessa_getAllByFilter,\r\n commessa_countAll: commessa_countAll,\r\n syncCommessa_countAll: syncCommessa_countAll,\r\n syncCommessa_getAllByFilter: syncCommessa_getAllByFilter,\r\n commessa_sync: commessa_sync,\r\n commessa_get: commessa_get,\r\n */\r\n\r\n //AUTHORIZATION\r\n authorization_get: authorization_get,\r\n authorization_getAllByFilter: authorization_getAllByFilter,\r\n authorization_countByFilter: authorization_countByFilter,\r\n authorization_add: authorization_add,\r\n authorization_update: authorization_update,\r\n authorization_delete: authorization_delete,\r\n\r\n //-- ATTACH - Nuovi Metodi\r\n attach_getAllList: attach_getAllList,\r\n attach_getAll: attach_getAll,\r\n attach_countAll: attach_countAll,\r\n attach_get: attach_get,\r\n attach_add: attach_add,\r\n attach_update: attach_update,\r\n attach_delete: attach_delete,\r\n attach_setCompleted: attach_setCompleted,\r\n attach_unsetCompleted: attach_unsetCompleted,\r\n\r\n //Estrazione documentazione dalla piattaforma\r\n attach_download: attach_download,\r\n attach_extract: attach_extract,\r\n upload_getURL: upload_getURL,\r\n\r\n //-- TATTACH \r\n tAttach_getAllList: tAttach_getAllList,\r\n tAttach_getAllModal: tAttach_getAllModal,\r\n tAttach_getAll: tAttach_getAll,\r\n tAttach_countAll: tAttach_countAll,\r\n tAttach_get: tAttach_get,\r\n tAttach_add: tAttach_add,\r\n tAttach_update: tAttach_update,\r\n tAttach_delete: tAttach_delete,\r\n\r\n //-- TATTACHVISIBILITY\r\n tAttachVisibility_getAuth: tAttachVisibility_getAuth,\r\n tAttachVisibility_getAll: tAttachVisibility_getAll,\r\n tAttachVisibility_add: tAttachVisibility_add,\r\n tAttachVisibility_update: tAttachVisibility_update,\r\n tAttachVisibility_delete: tAttachVisibility_delete,\r\n\r\n //-- TATTACHFILETYPE\r\n tAttachFileType_getAll: tAttachFileType_getAll,\r\n tAttachFileType_add: tAttachFileType_add,\r\n tAttachFileType_update: tAttachFileType_update,\r\n tAttachFileType_delete: tAttachFileType_delete,\r\n\r\n //-- TSOURCE \r\n tSource_getAllList: tSource_getAllList,\r\n tSource_getAll: tSource_getAll,\r\n tSource_get: tSource_get,\r\n tSource_getByCode: tSource_getByCode\r\n };\r\n return service;\r\n\r\n // ***************************************************\r\n // ***************************************************\r\n // Funzioni Pubbliche - esposte su interfaccia Service\r\n // ***************************************************\r\n // ***************************************************\r\n // Metodi init per array condivisi\r\n function arrProvincie() {\r\n if (_arrProvincie.length == 0) {\r\n return getAll('provincia').then(function (data) {\r\n _arrProvincie = data;\r\n return _arrProvincie;\r\n });\r\n }\r\n return $q.when(_arrProvincie);\r\n }\r\n\r\n function getImage(imagePath) {\r\n return $http.get(imagePath)\r\n .then(function (response) {\r\n return response;\r\n })\r\n .catch(function (response) {\r\n return null;\r\n });\r\n }\r\n\r\n // ******************************\r\n // ACCOUNT\r\n function account_get() {\r\n return $http.get(urlAPI + '/account/get').then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (response) {\r\n console.log('XHR Failed account_get: %s', response); return null;\r\n });\r\n }\r\n\r\n\r\n function account_changePassword(item) {\r\n return $http.post(urlAPI + '/account/ChangePassword', item)\r\n .then(function (response) {\r\n return response;\r\n })\r\n .catch(function (response) {\r\n console.log('XHR Failed account_changePassword: %s', response);\r\n return response;\r\n });\r\n }\r\n\r\n // ******************************\r\n // ATTIVITA'\r\n function attivita_getAllList(commessaId) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = sezioneId; }\r\n\r\n var params = [];\r\n params.push({ name: 'sezioneId', value: sezioneId });\r\n\r\n var data = getAllByParams('Attivita', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n function attivita_getAll(commessaId) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n\r\n var data = getAllByParams('Attivita', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function attivita_get(id) {\r\n var data = getById('Attivita', id);\r\n return $q.when(data);\r\n }\r\n\r\n function attivita_add(item) {\r\n var data = addObj('Attivita', item);\r\n return $q.when(data);\r\n }\r\n\r\n function attivita_update(item) {\r\n var data = updateObj('Attivita', item);\r\n return $q.when(data);\r\n }\r\n\r\n function attivita_delete(id) {\r\n var data = deleteObj('Attivita', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // AZIENDAPARTNER\r\n function aziendaPartner_getAllList() {\r\n var data = getAllNoParam('AziendaPartner', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function aziendaPartner_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('AziendaPartner', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function aziendaPartner_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('AziendaPartner', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function aziendaPartner_get(id) {\r\n var data = getById('AziendaPartner', id);\r\n return $q.when(data);\r\n }\r\n\r\n function aziendaPartner_add(item) {\r\n var data = addObj('AziendaPartner', item);\r\n return $q.when(data);\r\n }\r\n\r\n function aziendaPartner_update(item) {\r\n var data = updateObj('AziendaPartner', item);\r\n return $q.when(data);\r\n }\r\n\r\n function aziendaPartner_delete(id) {\r\n var data = deleteObj('AziendaPartner', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // AZIENDA\r\n function azienda_getAllList() {\r\n var data = getAllNoParam('Azienda', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function azienda_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Azienda', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function azienda_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('Azienda', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function azienda_get(id) {\r\n var data = getById('Azienda', id);\r\n return $q.when(data);\r\n }\r\n\r\n function azienda_add(item) {\r\n var data = addObj('Azienda', item);\r\n return $q.when(data);\r\n }\r\n\r\n function azienda_update(item) {\r\n var data = updateObj('Azienda', item);\r\n return $q.when(data);\r\n }\r\n\r\n function azienda_delete(id) {\r\n var data = deleteObj('Azienda', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // CLIENTE\r\n function cliente_getAllList() {\r\n var data = getAllNoParam('Cliente', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function cliente_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Cliente', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function cliente_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('Cliente', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function cliente_get(id) {\r\n var data = getById('Cliente', id);\r\n return $q.when(data);\r\n }\r\n\r\n function cliente_add(item) {\r\n var data = addObj('Cliente', item);\r\n return $q.when(data);\r\n }\r\n\r\n function cliente_update(item) {\r\n var data = updateObj('Cliente', item);\r\n return $q.when(data);\r\n }\r\n\r\n function cliente_delete(id) {\r\n var data = deleteObj('Cliente', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // BUDGET COMMESSA\r\n function budgetCommessa_get(id) {\r\n var data = getById('BudgetCommessa', id);\r\n return $q.when(data);\r\n }\r\n\r\n function budgetCommessa_add(item) {\r\n var data = addObj('BudgetCommessa', item);\r\n return $q.when(data);\r\n }\r\n\r\n function budgetCommessa_update(item) {\r\n var data = updateObj('BudgetCommessa', item);\r\n return $q.when(data);\r\n }\r\n\r\n function budgetCommessa_delete(item) {\r\n var data = deleteObj('BudgetCommessa', item);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n // ******************************\r\n // COMMESSA\r\n function commessa_getAllList() {\r\n\r\n var data = getAllNoParam('Commessa', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_getAllByFilter(pageSize, page, ricerca, clienteId, stato, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = -1; }\r\n if (typeof (clienteId) == 'undefined') { clienteId = 0; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'clienteId', value: clienteId });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Commessa', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_countAll(ricerca, clienteId, stato) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (clienteId) == 'undefined') { clienteId = 0; }\r\n if (typeof (stato) == 'undefined') { stato = -1; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'clienteId', value: clienteId });\r\n params.push({ name: 'stato', value: stato });\r\n\r\n var data = getAllByParams('Commessa', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_getAllListForOfferte() {\r\n\r\n var data = getAllNoParam('Offerta', 'GetAllListForOfferte');\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_getAllForOfferte(pageSize, page, ricerca, clienteId, stato, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = -1; }\r\n if (typeof (clienteId) == 'undefined') { clienteId = 0; }\r\n if (typeof (stato) == 'undefined') { stato = -1; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'clienteId', value: clienteId });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'order', value: order });\r\n var data = getAllByParams('Offerta', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n\r\n }\r\n\r\n function commessa_countAllForOfferte(ricerca, clienteId, stato) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (clienteId) == 'undefined') { clienteId = 0; }\r\n if (typeof (stato) == 'undefined') { stato = -1; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'clienteId', value: clienteId });\r\n params.push({ name: 'stato', value: stato });\r\n var data = getAllByParams('Offerta', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_getAllListForTimeSheet() {\r\n\r\n var data = getAllNoParam('Commessa', 'GetAllListForTimeSheet');\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_getAllForTimeSheet(pageSize, page, ricerca, clienteId, stato, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = -1; }\r\n if (typeof (clienteId) == 'undefined') { clienteId = 0; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'clienteId', value: clienteId });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Commessa', 'GetAllForTimeSheet', params);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_countAllForTimeSheet(ricerca, clienteId, stato) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (clienteId) == 'undefined') { clienteId = 0; }\r\n if (typeof (stato) == 'undefined') { stato = -1; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'clienteId', value: clienteId });\r\n params.push({ name: 'stato', value: stato });\r\n\r\n var data = getAllByParams('Commessa', 'CountForTimeSheet', params);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_get(id) {\r\n var data = getById('Commessa', id);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_getMaxCodiceCommessa() {\r\n var data = getAllNoParam('Commessa', 'GetMaxCodiceCommessa');\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_add(item) {\r\n var data = addObj('Commessa', item);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_update(item) {\r\n var data = updateObj('Commessa', item);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_delete(id) {\r\n var data = deleteObj('Commessa', id);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_checkTeamLeader(id) {\r\n if (typeof (id) == 'undefined') { id = 0; }\r\n\r\n var data = getAllByParam('Commessa', 'CheckTeamLeaderCommessa', 'id', id);\r\n return $q.when(data);\r\n }\r\n\r\n function commessa_aggiornaStato(commessaId, stato) {\r\n var objName = 'Commessa';\r\n var method = 'AggiornaStatoCommessa';\r\n\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n CommessaId: commessaId,\r\n Stato: stato\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function commessa_chiudiCommessa(item) {\r\n var objName = 'Commessa';\r\n var method = 'ChiudiCommessa';\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n return $http.put(url, item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed commessa_chiudiCommessa for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function commessa_riapriCommessa(item) {\r\n var objName = 'Commessa';\r\n var method = 'RiapriCommessa';\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n return $http.put(url, item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed commessa_riapriCommessa for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n // ******************************\r\n //Dipendente Sezione\r\n function commessaSezione_getAll(commessaId, sezioneId) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (sezioneId) == 'undefined') { sezioneId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'sezioneId', value: sezioneId });\r\n\r\n var data = getAllByParams('CommessaSezione', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function commessaSezione_getAllForTimeSheet(commessaId) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n\r\n var data = getAllByParams('CommessaSezione', 'GetAllForTimeSheet', params);\r\n return $q.when(data);\r\n }\r\n\r\n function commessaSezione_add(commessaId, sezioneId) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (sezioneId) == 'undefined') { sezioneId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'sezioneId', value: sezioneId });\r\n\r\n\r\n var objName = 'CommessaSezione';\r\n var actionName = 'AddCommessaSezione';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n var numParams = params.length;\r\n if (numParams > 0) {\r\n url += '?'\r\n }\r\n\r\n for (var i = 0; i < numParams; i++) {\r\n if (i > 0) url += '&';\r\n url += params[i].name + '=' + params[i].value;\r\n\r\n }\r\n\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed addObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function commessaSezione_addList(commessaId, sezioni) {\r\n var objName = 'CommessaSezione';\r\n var method = 'AddList';\r\n\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (sezioni) == 'undefined') { sezioni = []; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n commessaId: commessaId,\r\n sezioni: sezioni\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function commessaSezione_update(item) {\r\n var data = updateObj('CommessaSezione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function commessaSezione_delete(item) {\r\n var data = deleteObj('CommessaSezione', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // SYNCORELOG\r\n\r\n function syncOreLog_getAllList(commessaId) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n\r\n var data = getAllByParams('SyncOreLog', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n function syncOreLog_getAllByFilter(commessaId, ricerca, stato, data) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (data) == 'undefined') { data = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'data', value: data });\r\n\r\n var data = getAllByParams('SyncOreLog', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function syncOreLog_countAll(commessaId, ricerca, stato, data) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (data) == 'undefined') { data = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'data', value: data });\r\n\r\n var data = getAllByParams('SyncOreLog', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function syncOreLog_editSync(oreId, valore) {\r\n if (typeof (oreId) == 'undefined') { oreId = 0; }\r\n if (typeof (valore) == 'undefined') { valore = 0; }\r\n\r\n return $http.put(urlAPI + '/SyncOreLog/EditSync?oreId=' + oreId + '&valore=' + valore)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed syncOreLog_editSync: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n // ******************************\r\n // CENTRO COSTO\r\n function centroCosto_getAllList(itemId, stato) {\r\n if (typeof (itemId) == 'undefined') { itemId = -1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'itemId', value: itemId });\r\n params.push({ name: 'stato', value: stato });\r\n\r\n var data = getAllByParams('CentroCosto', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n function centroCosto_getAll(itemId, stato) {\r\n if (typeof (itemId) == 'undefined') { itemId = -1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'itemId', value: itemId });\r\n params.push({ name: 'stato', value: stato });\r\n\r\n var data = getAllByParams('CentroCosto', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function centroCosto_get(id) {\r\n var data = getById('CentroCosto', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // ITEM\r\n function item_getAllList(commessaId, stato) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = -1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'stato', value: stato });\r\n\r\n //var data = getAllByParam('Item', 'GetAllList', 'commessaId', commessaId);\r\n var data = getAllByParams('Item', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n function item_getAll(commessaId, stato) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = -1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'stato', value: stato });\r\n\r\n //var data = getAllByParam('Item', 'GetAll', 'commessaId', commessaId);\r\n var data = getAllByParams('Item', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function item_get(id) {\r\n var data = getById('Item', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // COSTO DIPENDENTE\r\n function costoDipendente_get(id) {\r\n var data = getById('CostoDipendente', id);\r\n return $q.when(data);\r\n }\r\n\r\n function costoDipendente_add(item) {\r\n var data = addObj('CostoDipendente', item);\r\n return $q.when(data);\r\n }\r\n\r\n function costoDipendente_update(item) {\r\n var data = updateObj('CostoDipendente', item);\r\n return $q.when(data);\r\n }\r\n\r\n function costoDipendente_delete(item) {\r\n var data = deleteObj('CostoDipendente', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n\r\n\r\n // ******************************\r\n // DASHBOARD \r\n function dashboard_get() {\r\n var data = getAllNoParam('Dashboard', 'Get');\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // DIPENDENTE\r\n function dipendente_getAllList(stato, aziendaPartnerId) {\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('Dipendente', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_getAll(pageSize, page, stato, ricerca, aziendaPartnerId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Dipendente', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_getAllNonAttivi(matricola) {\r\n if (typeof (matricola) == 'undefined') { matricola = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'matricola', value: matricola });\r\n\r\n var data = getAllByParams('Dipendente', 'GetAllNonAttivi', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_countAll(stato, ricerca, aziendaPartnerId) {\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('Dipendente', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_getAllForCommessa(pageSize, page, stato, ricerca, aziendaPartnerId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Dipendente', 'GetAllForCommessa', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_countAllForCommessa(stato, ricerca, aziendaPartnerId) {\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('Dipendente', 'CountAllForCommessa', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_getAllByAziendaPartner(aziendaPartnerId) {\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('Dipendente', 'GetAllByAziendaPartner', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_get(id) {\r\n var data = getById('Dipendente', id);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_add(item) {\r\n var data = addObj('Dipendente', item);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_update(item) {\r\n var data = updateObj('Dipendente', item);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_delete(id) {\r\n var data = deleteObj('Dipendente', id);\r\n return $q.when(data);\r\n } \r\n\r\n function dipendente_stampaCurriculum(dipendenteId, withAttach, withSignature, dataStampa, withLogo, withAddress, withBusinessPhone, withMobilePhone, rev, dataRev) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (withAttach) == 'undefined') { withAttach = false; }\r\n if (typeof (withSignature) == 'undefined') { withSignature = true; }\r\n if (typeof (dataStampa) == 'undefined') { dataStampa = '' }\r\n if (typeof (withLogo) == 'undefined') { withLogo = true; }\r\n if (typeof (withAddress) == 'undefined') { withAddress = true; }\r\n if (typeof (withBusinessPhone) == 'undefined') { withBusinessPhone = true; }\r\n if (typeof (withMobilePhone) == 'undefined') { withMobilePhone = true; }\r\n if (typeof (rev) == 'undefined') { rev = -1; }\r\n if (typeof (dataRev) == 'undefined') { dataRev = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'withAttach', value: withAttach });\r\n params.push({ name: 'withSignature', value: withSignature });\r\n params.push({ name: 'dataStampa', value: dataStampa });\r\n params.push({ name: 'withLogo', value: withLogo });\r\n params.push({ name: 'withAddress', value: withAddress });\r\n params.push({ name: 'withBusinessPhone', value: withBusinessPhone });\r\n params.push({ name: 'withMobilePhone', value: withMobilePhone });\r\n params.push({ name: 'rev', value: rev });\r\n params.push({ name: 'dataRev', value: dataRev });\r\n\r\n var data = getAllByParams('Dipendente', 'StampaCurriculum', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendente_getAllByDB(db) {\r\n if (typeof (db) == 'undefined') { pageSize = db; }\r\n var params = [];\r\n params.push({ name: 'db', value: db });\r\n\r\n var data = getAllByParams('Dipendente', 'GetAllDipendentiByDB', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // DIPENDENTE CON RUOLO\r\n function dipendenteConRuolo_getAll(pageSize, page, stato, ricerca, aziendaPartnerId, ruoloId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n if (typeof (ruoloId) == 'undefined') { ruoloId = 0; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n params.push({ name: 'ruoloId', value: ruoloId });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('DipendenteConRuolo', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendenteConRuolo_countAll(stato, ricerca, aziendaPartnerId, ruoloId) {\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n if (typeof (ruoloId) == 'undefined') { ruoloId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n params.push({ name: 'ruoloId', value: ruoloId });\r\n\r\n var data = getAllByParams('DipendenteConRuolo', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n //Dipendente Sezione\r\n function dipendenteSezione_getAll(sezioneId, dipendenteId) {\r\n if (typeof (sezioneId) == 'undefined') { sezioneId = 0; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'sezioneId', value: sezioneId });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('DipendenteSezione', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendenteSezione_add(sezioneId, dipendenteId) {\r\n if (typeof (sezioneId) == 'undefined') { sezioneId = 0; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'sezioneId', value: sezioneId });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n\r\n var objName = 'DipendenteSezione';\r\n var actionName = 'AddDipendenteSezione';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n var numParams = params.length;\r\n if (numParams > 0) {\r\n url += '?'\r\n }\r\n\r\n for (var i = 0; i < numParams; i++) {\r\n if (i > 0) url += '&';\r\n url += params[i].name + '=' + params[i].value;\r\n\r\n }\r\n\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed addObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function dipendenteSezione_addList(dipendenteId, sezioni) {\r\n var objName = 'DipendenteSezione';\r\n var method = 'AddList';\r\n\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (sezioni) == 'undefined') { sezioni = []; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n dipendenteId: dipendenteId,\r\n sezioni: sezioni\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function dipendenteSezione_delete(item) {\r\n var data = deleteObj('DipendenteSezione', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // DETTAGLIO DIPENDENTE\r\n function dettaglioDipendente_getAllList(stato) {\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n\r\n var data = getAllByParam('DettaglioDipendente', 'GetAllList', 'stato', stato);\r\n return $q.when(data);\r\n }\r\n\r\n function dettaglioDipendente_getAll(pageSize, page, stato, statoCV, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (statoCV) == 'undefined') { statoCV = -1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'statoCV', value: statoCV });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('DettaglioDipendente', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dettaglioDipendente_countAll(stato, statoCV, ricerca) {\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (statoCV) == 'undefined') { statoCV = -1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'statoCV', value: statoCV });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('DettaglioDipendente', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dettaglioDipendente_get(id) {\r\n var data = getById('DettaglioDipendente', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // ISTRUZIONE\r\n function istruzione_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('Istruzione', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function istruzione_add(item) {\r\n var data = addObj('Istruzione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function istruzione_addList(istruzioni) {\r\n var objName = 'Istruzione';\r\n var method = 'AddList';\r\n\r\n if (typeof (istruzioni) == 'undefined') { istruzioni = []; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n istruzioni: istruzioni\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function istruzione_update(item) {\r\n var data = updateObj('Istruzione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function istruzione_changeSequence(orderList) {\r\n var objName = 'Istruzione';\r\n if (typeof (orderList) == 'undefined') { orderList = []; }\r\n\r\n var obj = {\r\n orderList: orderList\r\n };\r\n\r\n var url = urlAPI + '/' + objName + '/ChangeSequence';\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ChangeSequence for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function istruzione_delete(id) {\r\n var data = deleteObj('Istruzione', id);\r\n return $q.when(data);\r\n }\r\n\r\n function istruzione_get(id) {\r\n var data = getById('Istruzione', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // FORMAZIONE\r\n function formazione_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('Formazione', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function formazione_add(item) {\r\n var data = addObj('Formazione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function formazione_update(item) {\r\n var data = updateObj('Formazione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function formazione_changeSequence(orderList) {\r\n var objName = 'Formazione';\r\n if (typeof (orderList) == 'undefined') { orderList = []; }\r\n\r\n var obj = {\r\n orderList: orderList\r\n };\r\n\r\n var url = urlAPI + '/' + objName + '/ChangeSequence';\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ChangeSequence for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function formazione_delete(id) {\r\n var data = deleteObj('Formazione', id);\r\n return $q.when(data);\r\n }\r\n\r\n function formazione_get(id) {\r\n var data = getById('Formazione', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // FASE CURRICULUM\r\n function faseCurriculum_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('FaseCurriculum', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function faseCurriculum_get(dipendenteId, fase) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n if (typeof (fase) == 'undefined') { fase = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'fase', value: fase });\r\n\r\n var data = getAllByParams('FaseCurriculum', 'Get', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // SOFTWARE\r\n function software_getAll(dipendenteId, generico) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n if (typeof (generico) == 'undefined') { generico = 1 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'generico', value: generico });\r\n\r\n var data = getAllByParams('Software', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function software_add(item) {\r\n var data = addObj('Software', item);\r\n return $q.when(data);\r\n }\r\n\r\n function software_addList(dipendenteId, generico, software) {\r\n var objName = 'Software';\r\n var method = 'AddList';\r\n\r\n if (typeof (software) == 'undefined') { software = []; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = []; }\r\n if (typeof (generico) == 'undefined') { generico = []; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n dipendenteId: dipendenteId,\r\n generico: generico,\r\n software: software\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function software_update(item) {\r\n var data = updateObj('Software', item);\r\n return $q.when(data);\r\n }\r\n\r\n function software_delete(id) {\r\n var data = deleteObj('Software', id);\r\n return $q.when(data);\r\n }\r\n\r\n function software_get(id) {\r\n var data = getById('Software', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // COMPETENZA DIGITALE\r\n function competenzaDigitale_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('CompetenzaDigitale', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function competenzaDigitale_add(item) {\r\n var data = addObj('CompetenzaDigitale', item);\r\n return $q.when(data);\r\n }\r\n\r\n function competenzaDigitale_update(item) {\r\n var data = updateObj('CompetenzaDigitale', item);\r\n return $q.when(data);\r\n }\r\n\r\n function competenzaDigitale_delete(id) {\r\n var data = deleteObj('CompetenzaDigitale', id);\r\n return $q.when(data);\r\n }\r\n\r\n function competenzaDigitale_get(id) {\r\n var data = getById('CompetenzaDigitale', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // COMPETENZA TECNICA\r\n function competenzaTecnica_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('CompetenzaTecnica', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function competenzaTecnica_add(item) {\r\n var data = addObj('CompetenzaTecnica', item);\r\n return $q.when(data);\r\n }\r\n\r\n function competenzaTecnica_update(item) {\r\n var data = updateObj('CompetenzaTecnica', item);\r\n return $q.when(data);\r\n }\r\n\r\n function competenzaTecnica_delete(id) {\r\n var data = deleteObj('CompetenzaTecnica', id);\r\n return $q.when(data);\r\n }\r\n\r\n function competenzaTecnica_get(id) {\r\n var data = getById('CompetenzaTecnica', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // DETTAGLIO PROGETTO\r\n function dettaglioProgetto_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('DettaglioProgetto', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dettaglioProgetto_add(item) {\r\n var data = addObj('DettaglioProgetto', item);\r\n return $q.when(data);\r\n }\r\n\r\n function dettaglioProgetto_update(item) {\r\n var data = updateObj('DettaglioProgetto', item);\r\n return $q.when(data);\r\n }\r\n\r\n function dettaglioProgetto_changeSequence(orderList) {\r\n var objName = 'DettaglioProgetto';\r\n if (typeof (orderList) == 'undefined') { orderList = []; }\r\n\r\n var obj = {\r\n orderList: orderList\r\n };\r\n\r\n var url = urlAPI + '/' + objName + '/ChangeSequence';\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ChangeSequence for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function dettaglioProgetto_delete(id) {\r\n var data = deleteObj('DettaglioProgetto', id);\r\n return $q.when(data);\r\n }\r\n\r\n function dettaglioProgetto_get(id) {\r\n var data = getById('DettaglioProgetto', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // ESPERIENZA LAVORATIVA\r\n function esperienzaLavorativa_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('EsperienzaLavorativa', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function esperienzaLavorativa_add(item) {\r\n var data = addObj('EsperienzaLavorativa', item);\r\n return $q.when(data);\r\n }\r\n\r\n function esperienzaLavorativa_update(item) {\r\n var data = updateObj('EsperienzaLavorativa', item);\r\n return $q.when(data);\r\n }\r\n\r\n function esperienzaLavorativa_changeSequence(orderList) {\r\n var objName = 'EsperienzaLavorativa';\r\n if (typeof (orderList) == 'undefined') { orderList = []; }\r\n\r\n var obj = {\r\n orderList: orderList\r\n };\r\n\r\n var url = urlAPI + '/' + objName + '/ChangeSequence';\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ChangeSequence for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function esperienzaLavorativa_delete(id) {\r\n var data = deleteObj('EsperienzaLavorativa', id);\r\n return $q.when(data);\r\n }\r\n\r\n function esperienzaLavorativa_get(id) {\r\n var data = getById('EsperienzaLavorativa', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // LINGUA\r\n function lingua_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('Lingua', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function lingua_add(item) {\r\n var data = addObj('Lingua', item);\r\n return $q.when(data);\r\n }\r\n\r\n function lingua_update(item) {\r\n var data = updateObj('Lingua', item);\r\n return $q.when(data);\r\n }\r\n\r\n function lingua_delete(id) {\r\n var data = deleteObj('Lingua', id);\r\n return $q.when(data);\r\n }\r\n\r\n function lingua_get(id) {\r\n var data = getById('Lingua', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // LINGUAGGIO PROGRAMMAZIONE\r\n function linguaggioProgrammazione_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('LinguaggioProgrammazione', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function linguaggioProgrammazione_add(item) {\r\n var data = addObj('LinguaggioProgrammazione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function linguaggioProgrammazione_addList(dipendenteId, linguaggi) {\r\n var objName = 'LinguaggioProgrammazione';\r\n var method = 'AddList';\r\n\r\n if (typeof (linguaggi) == 'undefined') { linguaggi = []; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n dipendenteId: dipendenteId,\r\n linguaggi: linguaggi\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function linguaggioProgrammazione_update(item) {\r\n var data = updateObj('LinguaggioProgrammazione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function linguaggioProgrammazione_delete(id) {\r\n var data = deleteObj('LinguaggioProgrammazione', id);\r\n return $q.when(data);\r\n }\r\n\r\n function linguaggioProgrammazione_get(id) {\r\n var data = getById('LinguaggioProgrammazione', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // NORMA\r\n function norma_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('Norma', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function norma_add(item) {\r\n var data = addObj('Norma', item);\r\n return $q.when(data);\r\n }\r\n\r\n function norma_addList(dipendenteId, norme) {\r\n var objName = 'Norma';\r\n var method = 'AddList';\r\n\r\n if (typeof (norme) == 'undefined') { norme = []; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n DipendenteId: dipendenteId,\r\n norme: norme\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function norma_update(item) {\r\n var data = updateObj('Norma', item);\r\n return $q.when(data);\r\n }\r\n\r\n function norma_delete(id) {\r\n var data = deleteObj('Norma', id);\r\n return $q.when(data);\r\n }\r\n\r\n function norma_get(id) {\r\n var data = getById('Norma', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // STANDARD\r\n function standard_getAll(dipendenteId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0 }\r\n\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('Standard', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function standard_add(item) {\r\n var data = addObj('Standard', item);\r\n return $q.when(data);\r\n }\r\n\r\n function standard_addList(dipendenteId, standard) {\r\n var objName = 'Standard';\r\n var method = 'AddList';\r\n\r\n if (typeof (standard) == 'undefined') { standard = []; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n dipendenteId: dipendenteId,\r\n standard: standard\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function standard_update(item) {\r\n var data = updateObj('Standard', item);\r\n return $q.when(data);\r\n }\r\n\r\n function standard_delete(id) {\r\n var data = deleteObj('Standard', id);\r\n return $q.when(data);\r\n }\r\n\r\n function standard_get(id) {\r\n var data = getById('Standard', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // AREA TECNICA\r\n function areaTecnica_getAllList() {\r\n var data = getAllNoParam('AreaTecnica', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function areaTecnica_get(id) {\r\n var data = getById('AreaTecnica', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // TIPO ATTIVITA\r\n function tipoAttivita_getAllList() {\r\n var data = getAllNoParam('tipoAttivita', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function tipoAttivita_getAllByAreaTecnicaId(areaTecnicaId) {\r\n var data = getAllByParam('tipoAttivita', 'GetAllByAreaTecnicaId', 'areaTecnicaId', areaTecnicaId);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoAttivita_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('tipoAttivita', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoAttivita_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('tipoAttivita', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoAttivita_add(classeObj) {\r\n var data = addObj('tipoAttivita', classeObj);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoAttivita_delete(id) {\r\n var data = deleteObj('tipoAttivita', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoAttivita_get(id) {\r\n var data = getById('tipoAttivita', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoAttivita_update(item) {\r\n var data = updateObj('tipoAttivita', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n\r\n // TIPO ASSEGNAZIONE\r\n function tipoAssegnazione_getAllList() {\r\n var params = [];\r\n\r\n var data = getAllByParams('TipoAssegnazione', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n\r\n // TIPO PRESTAZIONE\r\n function tipoPrestazione_getAllList() {\r\n var params = [];\r\n\r\n var data = getAllByParams('TipoPrestazione', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // TIPO LINGUAGGIO\r\n function tipoLinguaggio_getAllList() {\r\n var data = getAllNoParam('tipoLinguaggio', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function tipoLinguaggio_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('tipoLinguaggio', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoLinguaggio_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('tipoLinguaggio', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoLinguaggio_add(classeObj) {\r\n var data = addObj('tipoLinguaggio', classeObj);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoLinguaggio_delete(id) {\r\n var data = deleteObj('tipoLinguaggio', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoLinguaggio_get(id) {\r\n var data = getById('tipoLinguaggio', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoLinguaggio_update(item) {\r\n var data = updateObj('tipoLinguaggio', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // TIPO MANSIONE\r\n function tipoMansione_getAllList() {\r\n var data = getAllNoParam('tipoMansione', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function tipoMansione_getAllByAreaTecnicaId(areaTecnicaId) {\r\n var data = getAllByParam('tipoMansione', 'GetAllByAreaTecnicaId', 'areaTecnicaId', areaTecnicaId);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoMansione_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('tipoMansione', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoMansione_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('tipoMansione', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoMansione_add(classeObj) {\r\n var data = addObj('tipoMansione', classeObj);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoMansione_delete(id) {\r\n var data = deleteObj('tipoMansione', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoMansione_get(id) {\r\n var data = getById('tipoMansione', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoMansione_update(item) {\r\n var data = updateObj('tipoMansione', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // TIPO NORMA\r\n function tipoNorma_getAllList() {\r\n var data = getAllNoParam('tipoNorma', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function tipoNorma_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('tipoNorma', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoNorma_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('tipoNorma', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoNorma_add(classeObj) {\r\n var data = addObj('tipoNorma', classeObj);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoNorma_delete(id) {\r\n var data = deleteObj('tipoNorma', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoNorma_get(id) {\r\n var data = getById('tipoNorma', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoNorma_update(item) {\r\n var data = updateObj('tipoNorma', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // TIPO SERVIZIO EN\r\n function tipoServizioEn_getAll() {\r\n var data = getAllNoParam('TipoServizioEn', 'GetAll');\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // TIPO SOFTWARE\r\n function tipoSoftware_getAllList() {\r\n var data = getAllNoParam('tipoSoftware', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function tipoSoftware_getAllByAreaTecnicaId(areaTecnicaId) {\r\n var data = getAllByParam('tipoSoftware', 'GetAllByAreaTecnicaId', 'areaTecnicaId', areaTecnicaId);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoSoftware_getAll(pageSize, page, ricerca, order, generici) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n if (typeof (generici) == 'undefined') { generici = false; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n params.push({ name: 'generici', value: generici });\r\n\r\n var data = getAllByParams('tipoSoftware', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoSoftware_countAll(ricerca, generici) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (generici) == 'undefined') { generici = false; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'generici', value: generici });\r\n\r\n var data = getAllByParams('tipoSoftware', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoSoftware_add(classeObj) {\r\n var data = addObj('tipoSoftware', classeObj);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoSoftware_delete(id) {\r\n var data = deleteObj('tipoSoftware', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoSoftware_get(id) {\r\n var data = getById('tipoSoftware', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoSoftware_update(item) {\r\n var data = updateObj('tipoSoftware', item);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n // ******************************\r\n // TIPO STANDARD\r\n function tipoStandard_getAllList() {\r\n var data = getAllNoParam('tipoStandard', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function tipoStandard_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('tipoStandard', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoStandard_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('tipoStandard', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoStandard_add(classeObj) {\r\n var data = addObj('tipoStandard', classeObj);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoStandard_delete(id) {\r\n var data = deleteObj('tipoStandard', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoStandard_get(id) {\r\n var data = getById('tipoStandard', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tipoStandard_update(item) {\r\n var data = updateObj('tipoStandard', item);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n // ******************************\r\n //TEAM\r\n function team_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Team', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function team_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('Team', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function team_add(item) {\r\n var data = addObj('Team', item);\r\n return $q.when(data);\r\n }\r\n\r\n function team_update(item) {\r\n var data = updateObj('Team', item);\r\n return $q.when(data);\r\n }\r\n\r\n function team_get(id) {\r\n var data = getById('Team', id);\r\n return $q.when(data);\r\n }\r\n\r\n function team_delete(item) {\r\n var data = deleteObj('Team', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n //Attività Controllo\r\n function attivitaControllo_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('AttivitaControllo', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function attivitaControllo_getAllByFilter(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = -1; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('AttivitaControllo', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function attivitaControllo_get(id) {\r\n var data = getById('AttivitaControllo', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n //DipendentiTeam\r\n function dipendentiTeam_getAll(teamId, dipendenteId) {\r\n if (typeof (teamId) == 'undefined') { teamId = 0; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'teamId', value: teamId });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('DipendentiTeam', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendentiTeam_add(teamId, dipendenteId, ruolo) {\r\n if (typeof (teamId) == 'undefined') { teamId = 0; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (ruolo) == 'undefined') { ruolo = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'teamId', value: teamId });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'ruolo', value: ruolo });\r\n\r\n\r\n var objName = 'DipendentiTeam';\r\n var actionName = 'AddDipendentiTeam';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n var numParams = params.length;\r\n if (numParams > 0) {\r\n url += '?'\r\n }\r\n\r\n for (var i = 0; i < numParams; i++) {\r\n if (i > 0) url += '&';\r\n url += params[i].name + '=' + params[i].value;\r\n\r\n }\r\n\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed addObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function dipendentiTeam_delete(item) {\r\n var data = deleteObj('DipendentiTeam', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n //DipendentiCommessa\r\n function dipendentiCommessa_getAll(commessaId, dipendenteId) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n\r\n var data = getAllByParams('DipendentiCommessa', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function dipendentiCommessa_add(commessaId, dipendenteId, ruolo) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (ruolo) == 'undefined') { ruolo = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'ruolo', value: ruolo });\r\n\r\n\r\n var objName = 'DipendentiCommessa';\r\n var actionName = 'AddDipendentiCommessa';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n var numParams = params.length;\r\n if (numParams > 0) {\r\n url += '?'\r\n }\r\n\r\n for (var i = 0; i < numParams; i++) {\r\n if (i > 0) url += '&';\r\n url += params[i].name + '=' + params[i].value;\r\n\r\n }\r\n\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed addObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function dipendentiCommessa_addList(commessaId, dipendenti, ruolo) {\r\n var objName = 'DipendentiCommessa';\r\n var method = 'AddList';\r\n\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (dipendenti) == 'undefined') { dipendenti = []; }\r\n if (typeof (ruolo) == 'undefined') { ruolo = ''; }\r\n\r\n var url = urlAPI + '/' + objName + '/' + method;\r\n\r\n var obj = {\r\n commessaId: commessaId,\r\n dipendenti: dipendenti,\r\n ruolo: ruolo\r\n };\r\n\r\n return $http.put(url, obj)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed ImportList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function dipendentiCommessa_delete(item) {\r\n var data = deleteObj('DipendentiCommessa', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n //COSTI BASE\r\n function costiBase_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('CostiBase', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function costiBase_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('CostiBase', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function costiBase_add(item) {\r\n var data = addObj('CostiBase', item);\r\n return $q.when(data);\r\n }\r\n\r\n function costiBase_update(item) {\r\n var data = updateObj('CostiBase', item);\r\n return $q.when(data);\r\n }\r\n\r\n function costiBase_get(id) {\r\n var data = getById('CostiBase', id);\r\n return $q.when(data);\r\n }\r\n\r\n function costiBase_delete(item) {\r\n var data = deleteObj('CostiBase', item);\r\n return $q.when(data);\r\n }\r\n\r\n function costiBase_getDefault() {\r\n return $http.get(urlAPI + '/CostiBase/GetDefault')\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed costiBase_getDefault: %s', message);\r\n return message.status;\r\n });\r\n\t\t}\r\n\r\n // ******************************\r\n // RICHIESTAFERIE\r\n function richiestaFerie_getAllList() {\r\n\r\n var data = getAllNoParam('RichiestaFerie', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function richiestaFerie_getAllByFilter(pageSize, page, dtInizio, dtFine, stato, order) {\r\n\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (dtInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dtFine) == 'undefined') { dataFine = ''; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'dtInizio', value: dtInizio });\r\n params.push({ name: 'dtFine', value: dtFine });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'order', value: order });\r\n\r\n\r\n var data = getAllByParams('RichiestaFerie', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function richiestaFerie_countAll(dtInizio, dtFine, stato) {\r\n if (typeof (dtInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dtFine) == 'undefined') { dataFine = ''; }\r\n if (typeof (stato) == 'undefined') { stato = -1; }\r\n\r\n var params = [];\r\n params.push({ name: 'dtInizio', value: dtInizio });\r\n params.push({ name: 'dtFine', value: dtFine });\r\n params.push({ name: 'stato', value: stato });\r\n\r\n var data = getAllByParams('RichiestaFerie', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function richiestaFerie_getValidFerie(dtInizio, dtFine) {\r\n if (typeof (dtInizio) == 'undefined') { dtInizio = ''; }\r\n if (typeof (dtFine) == 'undefined') { dtFine = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'dtInizio', value: dtInizio });\r\n params.push({ name: 'dtFine', value: dtFine });\r\n\r\n var data = getAllByParams('RichiestaFerie', 'GetValidFerie', params);\r\n return $q.when(data);\r\n }\r\n\r\n function richiestaFerie_getReportFerie(dtInizio, dtFine) {\r\n if (typeof (dtInizio) == 'undefined') { dtInizio = ''; }\r\n if (typeof (dtFine) == 'undefined') { dtFine = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'dtInizio', value: dtInizio });\r\n params.push({ name: 'dtFine', value: dtFine });\r\n\r\n var data = getAllByParams('RichiestaFerie', 'GetReportFerie', params);\r\n return $q.when(data);\r\n }\r\n\r\n function richiestaFerie_get(id) {\r\n var data = getById('RichiestaFerie', id);\r\n return $q.when(data);\r\n }\r\n\r\n function richiestaFerie_add(item) {\r\n\r\n var data = addObj('RichiestaFerie', item);\r\n return $q.when(data);\r\n }\r\n\r\n function richiestaFerie_addMultiplo(items) {\r\n var objName = 'RichiestaFerie';\r\n var method = 'AddMultiplo';\r\n\r\n return $http.post(urlAPI + '/' + objName + '/' + method, items)\r\n .then(function (response) {\r\n return response;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed richiestaFerie_addMultiplo: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function richiestaFerie_update(item) {\r\n var data = updateObj('RichiestaFerie', item);\r\n return $q.when(data);\r\n }\r\n\r\n function richiestaFerie_inoltra(item) {\r\n return $http.put(urlAPI + '/RichiestaFerie/Inoltra', item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed richiestaFerie_inoltra: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function richiestaFerie_delete(id) {\r\n var data = deleteObj('RichiestaFerie', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // VALIDAZIONERICHIESTAFERIE\r\n function validazioneRichiestaFerie_getAllValid(pageSize, page, dtInizio, dtFine, stato, ricerca, order) {\r\n\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (dtInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dtFine) == 'undefined') { dataFine = ''; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n\t\t\tif (typeof (order) == 'undefined') { order = 'id'; }\r\n\t\t\tif (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'dtInizio', value: dtInizio });\r\n params.push({ name: 'dtFine', value: dtFine });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'order', value: order });\r\n\t\t\tparams.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('ValidazioneRichiestaFerie', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function validazioneRichiestaFerie_countValid(dtInizio, dtFine, stato, ricerca) {\r\n if (typeof (dtInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dtFine) == 'undefined') { dataFine = ''; }\r\n if (typeof (stato) == 'undefined') { stato = -1; }\r\n\t\t\tif (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'dtInizio', value: dtInizio });\r\n params.push({ name: 'dtFine', value: dtFine });\r\n params.push({ name: 'stato', value: stato });\r\n\t\t\tparams.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('ValidazioneRichiestaFerie', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function validazioneRichiestaFerie_accetta(item) {\r\n return $http.put(urlAPI + '/ValidazioneRichiestaFerie/Accetta', item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed Accetta for ValidazioneRichiestaFerie: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function validazioneRichiestaFerie_rifiuta(item) {\r\n return $http.put(urlAPI + '/ValidazioneRichiestaFerie/Rifiuta', item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed Rifiuta for ValidazioneRichiestaFerie: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n // ******************************\r\n // PROFILO DIPENDENTI\r\n function profiloDipendenti_get(id) {\r\n var data = getById('ProfiloDipendenti', id);\r\n return $q.when(data);\r\n }\r\n\r\n //function profiloDipendenti_update(item) {\r\n // var data = updateObj('ProfiloDipendenti', item);\r\n // return $q.when(data);\r\n //}\r\n\r\n\r\n function profiloDipendenti_getByDipendenteId(dipendenteId, profiloOreId) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (profiloOreId) == 'undefined') { profiloOreId = 0; }\r\n\r\n return $http.get(urlAPI + '/ProfiloDipendenti/Get/?dipendenteId=' + dipendenteId + '&profiloOreId=' + profiloOreId)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed profiloDipendenti_getByDipendenteId: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function profiloDipendenti_add(item) {\r\n var data = addObj('ProfiloDipendenti', item);\r\n return $q.when(data);\r\n }\r\n\r\n function profiloDipendenti_update(item) {\r\n var data = updateObj('ProfiloDipendenti', item);\r\n return $q.when(data);\r\n }\r\n\r\n function profiloDipendenti_delete(item) {\r\n var data = deleteObj('ProfiloDipendenti', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // GIUSTIFICATIVO\r\n function giustificativo_getAllList(richiesteFerie) {\r\n if (typeof (richiesteFerie) == 'undefined')\r\n var data = getAllNoParam('Giustificativo', 'GetAllList');\r\n else {\r\n var params = [];\r\n params.push({ name: 'richiesteFerie', value: richiesteFerie });\r\n var data = getAllByParams('Giustificativo', 'GetAllListByParams', params);\r\n }\r\n\r\n return $q.when(data);\r\n }\r\n\r\n function giustificativo_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Giustificativo', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function giustificativo_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('Giustificativo', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function giustificativo_get(id) {\r\n var data = getById('Giustificativo', id);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n function giustificativo_add(item) {\r\n var data = addObj('Giustificativo', item);\r\n return $q.when(data);\r\n }\r\n\r\n function giustificativo_update(item) {\r\n var data = updateObj('Giustificativo', item);\r\n return $q.when(data);\r\n }\r\n\r\n function giustificativo_delete(id) {\r\n var data = deleteObj('Giustificativo', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // SETTINGS\r\n function settings_getAll(pageSize, page, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Settings', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function settings_countAll() {\r\n var data = getAllNoParam('Settings', 'CountAll');\r\n return $q.when(data);\r\n }\r\n\r\n function settings_get(id) {\r\n var data = getById('Settings', id);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n function settings_add(item) {\r\n var data = addObj('Settings', item);\r\n return $q.when(data);\r\n }\r\n\r\n function settings_update(item) {\r\n var data = updateObj('Settings', item);\r\n return $q.when(data);\r\n }\r\n\r\n function settings_delete(id) {\r\n var data = deleteObj('Settings', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // PUSH NOTIFICATION\r\n function pushNotification_add(dipendenteId, message) {\r\n return $http.post(urlAPI + '/PushNotification/Send?dipendenteId=' + dipendenteId + '&message=' + message)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed pushNotification_add: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n // ******************************\r\n // PROFILO ORE\r\n function profiloOre_get(id) {\r\n var data = getById('ProfiloOre', id); //profiloOre\r\n return $q.when(data);\r\n }\r\n\r\n function profiloOre_getAllList() {\r\n var data = getAllNoParam('ProfiloOre', 'GetAllList'); //profiloOre\r\n return $q.when(data);\r\n }\r\n\r\n function profiloOre_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('ProfiloOre', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function profiloOre_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('ProfiloOre', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function profiloOre_add(item) {\r\n var data = addObj('ProfiloOre', item);\r\n return $q.when(data);\r\n }\r\n\r\n function profiloOre_update(item) {\r\n var data = updateObj('ProfiloOre', item);\r\n return $q.when(data);\r\n }\r\n\r\n //function profiloOre_get(id) {\r\n // var data = getById('ProfiloOre', id);\r\n // return $q.when(data);\r\n //}\r\n\r\n function profiloOre_delete(item) {\r\n var data = deleteObj('ProfiloOre', item);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n\r\n\r\n // ******************************\r\n // REPORT \r\n\r\n function report_getPresenze(bPDF, anno, mese, aziendaPartnerId) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('Report', 'GetPresenze', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getTimeSheetMensile(bPDF, dipendenteId, anno, mese) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n\r\n var data = getAllByParams('Report', 'GetMensile', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getTimeSheetMensileDipendenti(bPDF, dipendenteId, anno, mese, aziendaPartnerId) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = -1; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('Report', 'GetMensileDipendenti', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getTimeSheet(bPDF, dipendenteId, anno, settimana) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (settimana) == 'undefined') { settimana = 0; }\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'settimana', value: settimana });\r\n\r\n var data = getAllByParams('Report', 'GetSettimanale', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getCosti(bPDF, anno, mese, dataInizio, dataFine, aziendaPartnerId) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (dataInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dataFine) == 'undefined') { dataFine = ''; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'dataInizio', value: dataInizio });\r\n params.push({ name: 'dataFine', value: dataFine });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('Report', 'GetReportCosti', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getCommesse(bPDF, commessa, anno, mese, dataInizio, dataFine, dipendenteId, aziendaPartnerId) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (commessa) == 'undefined') { commessa = ''; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (dataInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dataFine) == 'undefined') { dataFine = ''; }\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'commessa', value: commessa });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'dataInizio', value: dataInizio });\r\n params.push({ name: 'dataFine', value: dataFine });\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('Report', 'GetReportCommesse', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getFerie(bPDF, dataInizio, dataFine) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (dataInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dataFine) == 'undefined') { dataFine = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'dataInizio', value: dataInizio });\r\n params.push({ name: 'dataFine', value: dataFine });\r\n\r\n var data = getAllByParams('Report', 'GetReportFerie', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_Commessa(Id, bPDF) {\r\n if (typeof (Id) == 'undefined') { Id = 0; }\r\n if (typeof (bPDF) == 'undefined') { bPDF = true; }\r\n\r\n var params = [];\r\n params.push({ name: 'Id', value: Id });\r\n params.push({ name: 'bPDF', value: bPDF });\r\n\r\n var data = getAllByParams('Report', 'GetReportCommessa', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getVerificaTimeSheet(bPDF, anno, mese) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n\r\n var data = getAllByParams('Report', 'GetVerificaTimeSheet', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getTotaliCommSez(bPDF, anno, mese, dataInizio, dataFine) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (dataInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dataFine) == 'undefined') { dataFine = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'dataInizio', value: dataInizio });\r\n params.push({ name: 'dataFine', value: dataFine });\r\n\r\n var data = getAllByParams('Report', 'GetReportTotaliCommSez', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getTotaliSezDip(bPDF, anno, mese, dataInizio, dataFine) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (dataInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dataFine) == 'undefined') { dataFine = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'dataInizio', value: dataInizio });\r\n params.push({ name: 'dataFine', value: dataFine });\r\n\r\n var data = getAllByParams('Report', 'GetReportTotaliSezDip', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getTotaliSezioni(bPDF, anno, mese, dataInizio, dataFine) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (dataInizio) == 'undefined') { dataInizio = ''; }\r\n if (typeof (dataFine) == 'undefined') { dataFine = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'dataInizio', value: dataInizio });\r\n params.push({ name: 'dataFine', value: dataFine });\r\n\r\n var data = getAllByParams('Report', 'GetReportTotaliSezioni', params);\r\n return $q.when(data);\r\n }\r\n\r\n function report_getDipendenti(bPDF, anno, azienda) {\r\n if (typeof (bPDF) == 'undefined') { bPDF = false; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (azienda) == 'undefined') { azienda = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'bPDF', value: bPDF });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'azienda', value: azienda });\r\n\r\n var data = getAllByParams('Report', 'GetReportDipendenti', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // REPORT ORE\r\n function reportOre_getAll(pageSize, page, anno, mese, settimana, giorno, commessa, cdc, ricerca, causale, aziendaPartnerId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (settimana) == 'undefined') { settimana = 0; }\r\n if (typeof (giorno) == 'undefined') { giorno = 0; }\r\n if (typeof (commessa) == 'undefined') { commessa = -1; }\r\n if (typeof (cdc) == 'undefined') { cdc = -1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (causale) == 'undefined') { order = -1; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'settimana', value: settimana });\r\n params.push({ name: 'giorno', value: giorno });\r\n params.push({ name: 'commessa', value: commessa });\r\n params.push({ name: 'cdc', value: cdc });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n params.push({ name: 'causale', value: causale });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('ReportOra', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function reportOre_countAll(anno, mese, settimana, giorno, commessa, cdc, ricerca, causale, aziendaPartnerId) {\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (settimana) == 'undefined') { settimana = 0; }\r\n if (typeof (giorno) == 'undefined') { giorno = 0; }\r\n if (typeof (commessa) == 'undefined') { commessa = -1; }\r\n if (typeof (cdc) == 'undefined') { cdc = -1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (causale) == 'undefined') { order = -1; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'settimana', value: settimana });\r\n params.push({ name: 'giorno', value: giorno });\r\n params.push({ name: 'commessa', value: commessa });\r\n params.push({ name: 'cdc', value: cdc });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'causale', value: causale });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('ReportOra', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function reportOre_getSum(anno, mese, settimana, giorno, commessa, cdc, ricerca, causale, aziendaPartnerId) {\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (settimana) == 'undefined') { settimana = 0; }\r\n if (typeof (giorno) == 'undefined') { giorno = 0; }\r\n if (typeof (commessa) == 'undefined') { commessa = -1; }\r\n if (typeof (cdc) == 'undefined') { cdc = -1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (causale) == 'undefined') { order = -1; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'settimana', value: settimana });\r\n params.push({ name: 'giorno', value: giorno });\r\n params.push({ name: 'commessa', value: commessa });\r\n params.push({ name: 'cdc', value: cdc });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'causale', value: causale });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('ReportOra', 'GetSum', params);\r\n return $q.when(data);\r\n }\r\n\r\n function reportOre_getTotale(anno, mese, settimana, giorno, commessa, cdc, ricerca, causale, aziendaPartnerId) {\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n if (typeof (settimana) == 'undefined') { settimana = 0; }\r\n if (typeof (giorno) == 'undefined') { giorno = 0; }\r\n if (typeof (commessa) == 'undefined') { commessa = -1; }\r\n if (typeof (cdc) == 'undefined') { cdc = -1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (causale) == 'undefined') { order = -1; }\r\n if (typeof (aziendaPartnerId) == 'undefined') { aziendaPartnerId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n params.push({ name: 'settimana', value: settimana });\r\n params.push({ name: 'giorno', value: giorno });\r\n params.push({ name: 'commessa', value: commessa });\r\n params.push({ name: 'cdc', value: cdc });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'causale', value: causale });\r\n params.push({ name: 'aziendaPartnerId', value: aziendaPartnerId });\r\n\r\n var data = getAllByParams('ReportOra', 'GetTotale', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // SEZIONE\r\n function sezione_getAllList() {\r\n var data = getAllNoParam('Sezione', 'GetAllList');\r\n return $q.when(data);\r\n }\r\n\r\n function sezione_getAll(pageSize, page, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Sezione', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function sezione_countAll(ricerca) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('Sezione', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function sezione_getAllListForTimeSheet(commessaId) {\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'commessaId', value: commessaId });\r\n\r\n var data = getAllByParams('Sezione', 'GetAllListForTimeSheet', params);\r\n return $q.when(data);\r\n }\r\n\r\n function sezione_getAllForTimeSheet(pageSize, page, ricerca, commessaId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (commessaId) == 'undefined') { commessaId = 0; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'commessaId', value: commessaId });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Sezione', 'GetAllForTimeSheet', params);\r\n return $q.when(data);\r\n }\r\n\r\n function sezione_get(id) {\r\n var data = getById('Sezione', id);\r\n return $q.when(data);\r\n }\r\n\r\n function sezione_add(item) {\r\n var data = addObj('Sezione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function sezione_update(item) {\r\n var data = updateObj('Sezione', item);\r\n return $q.when(data);\r\n }\r\n\r\n function sezione_delete(id) {\r\n var data = deleteObj('Sezione', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // TIMESHEET\r\n function timeSheet_getAll(dipendenteId) {\r\n var data = getAllByParam('TimeSheet', 'GetAllByFilter', 'dipendenteId', dipendenteId);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_getById(id) {\r\n var data = getById('TimeSheet', id);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_get(dipendenteId, anno, settimana) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (settimana) == 'undefined') { settimana = 0; }\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'settimana', value: settimana });\r\n\r\n var data = getAllByParams('TimeSheet', 'Get', params);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_getMensile(dipendenteId, anno, mese) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n\r\n var data = getAllByParams('TimeSheet', 'GetMensile', params);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_save(item) {\r\n return $http.post(urlAPI + '/TimeSheet/save', item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed timeSheet_save %s:', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function timeSheet_delete(id) {\r\n var data = deleteObj('TimeSheet', id);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_getRiepilogo(dipendenteId, anno, mese) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (mese) == 'undefined') { mese = 0; }\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'mese', value: mese });\r\n\r\n var data = getAllByParams('TimeSheet', 'GetRiepilogoDipendenti', params);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_getRiepilogoSettimanale(dipendenteId, dtInizio, dtFine) {\r\n if (typeof (dipendenteId) == 'undefined') { dipendenteId = 0; }\r\n if (typeof (dtInizio) == 'undefined') { dtInizio = null; }\r\n if (typeof (dtFine) == 'undefined') { dtFine = null; }\r\n var params = [];\r\n params.push({ name: 'dipendenteId', value: dipendenteId });\r\n params.push({ name: 'dtInizio', value: dtInizio });\r\n params.push({ name: 'dtFine', value: dtFine });\r\n\r\n var data = getAllByParams('TimeSheet', 'GetRiepilogoDipendentiSettimanale', params);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_getWeek(data) {\r\n if (typeof (data) == 'undefined') { data = ''; }\r\n var data = getAllByParam('TimeSheet', 'GetWeek', 'Data', data);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_getWeekByDate(data) {\r\n if (typeof (data) == 'undefined') { data = ''; }\r\n var data = getAllByParam('TimeSheet', 'GetWeekByDate', 'data', data);\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_getDate() {\r\n var data = getAllNoParam('TimeSheet', 'GetDate');\r\n return $q.when(data);\r\n }\r\n\r\n function timeSheet_getDatesOfWeek(anno, settimana) {\r\n if (typeof (anno) == 'undefined') { anno = 0; }\r\n if (typeof (settimana) == 'undefined') { settimana = 0; }\r\n var params = [];\r\n params.push({ name: 'anno', value: anno });\r\n params.push({ name: 'settimana', value: settimana });\r\n\r\n var data = getAllByParams('TimeSheet', 'GetDatesOfWeek', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // VALIDAZIONE TIMESHEET\r\n function validazioneTimeSheet_getAll(pageSize, page, convalidato, stato, sezioneId, dataI, ricerca, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 0; }\r\n if (typeof (convalidato) == 'undefined') { stato = 1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (sezioneId) == 'undefined') { sezioneId = 0; }\r\n if (typeof (dataI) == 'undefined') { dataI = ''; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'convalidato', value: convalidato });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'sezioneId', value: sezioneId });\r\n params.push({ name: 'data', value: dataI });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('ValidazioneTimeSheet', 'GetAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function validazioneTimeSheet_countAll(convalidato, stato, sezioneId, dataI, ricerca) {\r\n if (typeof (convalidato) == 'undefined') { stato = 1; }\r\n if (typeof (stato) == 'undefined') { stato = 0; }\r\n if (typeof (sezioneId) == 'undefined') { sezioneId = 0; }\r\n if (typeof (dataI) == 'undefined') { dataI = ''; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'convalidato', value: convalidato });\r\n params.push({ name: 'stato', value: stato });\r\n params.push({ name: 'sezioneId', value: sezioneId });\r\n params.push({ name: 'data', value: dataI });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n\r\n var data = getAllByParams('ValidazioneTimeSheet', 'CountAll', params);\r\n return $q.when(data);\r\n }\r\n\r\n function validazioneTimeSheet_convalida(id_rik, valore) {\r\n if (typeof (id_rik) == 'undefined') { id_rik = 0; }\r\n if (typeof (valore) == 'undefined') { valore = 0; }\r\n\r\n return $http.put(urlAPI + '/ValidazioneTimeSheet/Convalida?id_rik=' + id_rik + '&valore=' + valore)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed validazioneTimeSheet_convalida: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function validazioneTimeSheet_notificaTutti(gruppoId, data, ricerca, message) {\r\n if (typeof (gruppoId) == 'undefined') { gruppoId = 0; }\r\n if (typeof (data) == 'undefined') { data = ''; }\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (message) == 'undefined') { message = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'gruppoId', value: gruppoId });\r\n params.push({ name: 'data', value: data });\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'message', value: message });\r\n\r\n var data = getAllByParams('ValidazioneTimeSheet', 'NotificaTutti', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // AUTHORIZATION\r\n function authorization_get() {\r\n\r\n var objName = 'user';\r\n var actionName = 'GetAuthorization';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed authorization_get for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function authorization_getAllByFilter(pageSize, page, userId, roleId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (userId) == 'undefined') { userId = 0; }\r\n if (typeof (roleId) == 'undefined') { roleId = 0; }\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'userId', value: userId });\r\n params.push({ name: 'roleId', value: roleId });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('Authorization', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function authorization_countByFilter(userId, roleId) {\r\n if (typeof (userId) == 'undefined') { userId = 0; }\r\n if (typeof (roleId) == 'undefined') { roleId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'userId', value: userId });\r\n params.push({ name: 'roleId', value: roleId });\r\n\r\n var data = getAllByParams('Authorization', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function authorization_add(item) {\r\n var data = addObj('Authorization', item);\r\n return $q.when(data);\r\n }\r\n\r\n function authorization_update(item) {\r\n var data = updateObj('Authorization', item);\r\n return $q.when(data);\r\n }\r\n\r\n function authorization_delete(item) {\r\n var data = deleteObj('Authorization', item);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // ISTAT\r\n function istat_comune_getAllList(idprov) {\r\n var data = getAllByParam('comune', 'GetAllByIdProv', 'id', idprov);\r\n return $q.when(data);\r\n }\r\n\r\n function istat_comune_get(id) {\r\n var data = getById('comune', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // USER\r\n function user_getAll(pageSize, page, bAttivo, username, email, ruolo, order) {\r\n if (typeof (bAttivo) == 'undefined') { bAttivo = 1; }\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (username) == 'undefined') { username = ''; }\r\n if (typeof (email) == 'undefined') { email = ''; }\r\n if (typeof (ruolo) == 'undefined') { ruolo = ''; }\r\n if (typeof (order) == 'undefined') { order = 'alfabetico'; }\r\n var params = [];\r\n params.push({ name: 'bAttivo', value: bAttivo });\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'username', value: username });\r\n params.push({ name: 'email', value: email });\r\n params.push({ name: 'ruolo', value: ruolo });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('user', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function user_getAllList() {\r\n var objName = 'user';\r\n var actionName = 'GetAllList';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAllList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function user_countAll(bAttivo, username, email, ruolo) {\r\n if (typeof (bAttivo) == 'undefined') { bAttivo = 1; }\r\n if (typeof (username) == 'undefined') { username = ''; }\r\n if (typeof (email) == 'undefined') { email = 0; }\r\n if (typeof (ruolo) == 'undefined') { ruolo = ''; }\r\n var params = [];\r\n params.push({ name: 'bAttivo', value: bAttivo });\r\n params.push({ name: 'username', value: username });\r\n params.push({ name: 'email', value: email });\r\n params.push({ name: 'ruolo', value: ruolo });\r\n\r\n var data = getAllByParams('user', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n //metodo per il recupero della lista di Username per allievi e docenti\r\n function user_getAllUsernames() {\r\n var data = getAllNoParam('user', 'GetAllUsernames');\r\n return $q.when(data);\r\n }\r\n\r\n function user_get(id) {\r\n var data = getById('user', id);\r\n return $q.when(data);\r\n }\r\n\r\n function user_getByUsername(username) {\r\n var data = getAllByParam('user', 'GetByUsername', 'username', username);\r\n return $q.when(data);\r\n }\r\n\r\n function user_getByDipendenteId(id) {\r\n var data = getAllByParam('user', 'GetByDipendenteId', 'id', id);\r\n return $q.when(data);\r\n }\r\n\r\n function user_add(item) {\r\n var data = addObj('user', item);\r\n return $q.when(data);\r\n }\r\n\r\n function user_update(item) {\r\n var data = updateObj('user', item);\r\n return $q.when(data);\r\n }\r\n\r\n function user_activate(id) {\r\n var url = urlAPI + '/user/activate?id=' + id;\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed activate for user: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function user_deactivate(id) {\r\n var url = urlAPI + '/user/deactivate?id=' + id;\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed deactivate for user: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function user_resetPassword(email) {\r\n var url = urlAPI + '/user/resetpassword?email=' + email;\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed Reset Password for user: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function user_invioCredenziali(email) {\r\n var url = urlAPI + '/user/invioCredenziali?email=' + email;\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed Reset Password for user: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function user_delete(id) {\r\n var data = deleteObj('user', id);\r\n return $q.when(data);\r\n }\r\n\r\n function user_suggestUserame(nome, cognome) {\r\n if (typeof (nome) == 'undefined') { nome = \"\"; }\r\n if (typeof (cognome) == 'undefined') { cognome = \"\" }\r\n var params = [];\r\n params.push({ name: 'nome', value: nome });\r\n params.push({ name: 'cognome', value: cognome });\r\n\r\n var data = getAllByParams('user', 'SuggestUsername', params);\r\n return $q.when(data);\r\n }\r\n\r\n function user_suggestPassword(nome) {\r\n if (typeof (nome) == 'undefined') { nome = \"\"; }\r\n var params = [];\r\n params.push({ name: 'nome', value: nome });\r\n\r\n var data = getAllByParams('user', 'SuggestPassword', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // SUPER_USER\r\n function super_user_getAll(pageSize, page, ricerca, bAttivato, aziendaId, ruoloId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (bAttivato) == 'undefined') { bAttivato = -1; }\r\n if (typeof (aziendaId) == 'undefined') { aziendaId = 0; }\r\n if (typeof (ruoloId) == 'undefined') { ruoloId = 0; }\r\n\r\n if (typeof (order) == 'undefined') { order = 'id'; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'bAttivato', value: bAttivato });\r\n params.push({ name: 'aziendaId', value: aziendaId });\r\n params.push({ name: 'ruoloId', value: ruoloId });\r\n\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('user', 'Super_GetUsers', params);\r\n return $q.when(data);\r\n }\r\n\r\n function super_user_countAll(ricerca, bAttivato, aziendaId, ruoloId) {\r\n if (typeof (ricerca) == 'undefined') { ricerca = ''; }\r\n if (typeof (bAttivato) == 'undefined') { bAttivato = -1; }\r\n if (typeof (aziendaId) == 'undefined') { aziendaId = 0; }\r\n if (typeof (ruoloId) == 'undefined') { ruoloId = 0; }\r\n\r\n var params = [];\r\n\r\n params.push({ name: 'ricerca', value: ricerca });\r\n params.push({ name: 'bAttivato', value: bAttivato });\r\n params.push({ name: 'aziendaId', value: aziendaId });\r\n params.push({ name: 'ruoloId', value: ruoloId });\r\n\r\n var data = getAllByParams('user', 'Super_CountUsers', params);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // ROLE \r\n function role_getAll() {\r\n var objName = 'user';\r\n var actionName = 'GetAllRoles';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAll for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function role_getAllList() {\r\n var objName = 'user';\r\n var actionName = 'GetAllListRoles';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAllListRoles for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function role_get(id) {\r\n var objName = 'user';\r\n var actionName = 'GetRole';\r\n var url = urlAPI + '/' + objName + '/' + actionName + '/' + id;\r\n\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAll for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n // ******************************\r\n // USER ROLE \r\n function userRole_getAll(id) {\r\n var objName = 'user';\r\n var actionName = 'GetUserRoles';\r\n var url = urlAPI + '/' + objName + '/' + actionName + '/' + id;\r\n\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAll for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function userRole_add(risorsaId, roleId) {\r\n if (typeof (risorsaId) == 'undefined') { risorsaId = 0; }\r\n if (typeof (roleId) == 'undefined') { roleId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'risorsaId', value: risorsaId });\r\n params.push({ name: 'roleId', value: roleId });\r\n\r\n var objName = 'user';\r\n var actionName = 'AddUserRole';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n var numParams = params.length;\r\n if (numParams > 0) {\r\n url += '?'\r\n }\r\n\r\n for (var i = 0; i < numParams; i++) {\r\n if (i > 0) url += '&';\r\n url += params[i].name + '=' + params[i].value;\r\n\r\n }\r\n return $http.post(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed addObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function userRole_delete(risorsaId, roleId) {\r\n if (typeof (risorsaId) == 'undefined') { risorsaId = 0; }\r\n if (typeof (roleId) == 'undefined') { roleId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'risorsaId', value: risorsaId });\r\n params.push({ name: 'roleId', value: roleId });\r\n\r\n var objName = 'user';\r\n var actionName = 'DeleteUserRole';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n var numParams = params.length;\r\n if (numParams > 0) {\r\n url += '?'\r\n }\r\n\r\n for (var i = 0; i < numParams; i++) {\r\n if (i > 0) url += '&';\r\n url += params[i].name + '=' + params[i].value;\r\n }\r\n\r\n return $http.delete(url)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed deleteObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n //SYSTEM\r\n function getWhoAmI() {\r\n return $http.get(urlAPI + '/system/whoami')\r\n .then(getWhoAmIComplete)\r\n .catch(function (message) {\r\n console.log('XHR Failed for whoami: %s', message);\r\n });\r\n\r\n function getWhoAmIComplete(response) {\r\n return response.data;\r\n }\r\n }\r\n\r\n function getYearsList() {\r\n var listAnno = [];\r\n for (var i = 0; i <= 19; i++) {\r\n var item = {};\r\n item.value = 2016 - i;\r\n item.text = (2016 - i).toString();\r\n listAnno.push(item);\r\n }\r\n for (var i = 0; i <= 19; i++) {\r\n var item = {};\r\n item.value = 2017 + i;\r\n item.text = (2017 + i).toString();\r\n listAnno.push(item);\r\n }\r\n return _.sortBy(listAnno, function (o) { return o.value; });\r\n }\r\n\r\n function logGetAll() {\r\n var data = getAllNoParam('System', 'Log_GetAll');\r\n return $q.when(data);\r\n }\r\n\r\n function logDelete(id) {\r\n var objName = 'System';\r\n return $http.delete(urlAPI + '/' + objName + '/Log_Delete/' + id)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed logDelete for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function pushGetAll() {\r\n var data = getAllNoParam('System', 'Push_GetAll');\r\n return $q.when(data);\r\n }\r\n\r\n function pushDelete(id) {\r\n var objName = 'System';\r\n return $http.delete(urlAPI + '/' + objName + '/Push_Delete/' + id)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed pushDelete for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function festivita_getAll() {\r\n var data = getAllNoParam('System', 'Festivita_GetAll');\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // ATTACH - NUOVI METODI\r\n function attach_getAllList(tSourceCode, tSourceId, sourceId, tAttachId) {\r\n if (typeof (tSourceCode) == 'undefined') { tSourceCode = ''; }\r\n if (typeof (tSourceId) == 'undefined') { tSourceId = 0; }\r\n if (typeof (sourceId) == 'undefined') { sourceId = 0; }\r\n if (typeof (tAttachId) == 'undefined') { tAttachId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'tSourceId', value: tSourceId });\r\n params.push({ name: 'tSourceCode', value: tSourceCode });\r\n params.push({ name: 'sourceId', value: sourceId });\r\n params.push({ name: 'tAttachId', value: tAttachId });\r\n\r\n var data = getAllByParams('attach', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n function attach_getAll(pageSize, page, tSourceCode, tSourceId, sourceId, tAttachId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = _pageSize; }\r\n if (typeof (page) == 'undefined') { page = 1; }\r\n if (typeof (tSourceCode) == 'undefined') { tSourceCode = ''; }\r\n if (typeof (tSourceId) == 'undefined') { tSourceId = 0; }\r\n if (typeof (sourceId) == 'undefined') { sourceId = 0; }\r\n if (typeof (tAttachId) == 'undefined') { tAttachId = 0; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'tSourceId', value: tSourceId });\r\n params.push({ name: 'tSourceCode', value: tSourceCode });\r\n params.push({ name: 'sourceId', value: sourceId });\r\n params.push({ name: 'tAttachId', value: tAttachId });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('attach', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n function attach_countAll(tSourceCode, tSourceId, sourceId, tAttachId) {\r\n if (typeof (tSourceCode) == 'undefined') { tSourceCode = ''; }\r\n if (typeof (tSourceId) == 'undefined') { tSourceId = 0; }\r\n if (typeof (sourceId) == 'undefined') { sourceId = 0; }\r\n if (typeof (tAttachId) == 'undefined') { tAttachId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'tSourceId', value: tSourceId });\r\n params.push({ name: 'tSourceCode', value: tSourceCode });\r\n params.push({ name: 'sourceId', value: sourceId });\r\n params.push({ name: 'tAttachId', value: tAttachId });\r\n\r\n var data = getAllByParams('attach', 'CountByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function attach_get(id) {\r\n var data = getById('attach', id);\r\n return $q.when(data);\r\n }\r\n\r\n function attach_add(item) {\r\n var data = addObj('attach', item);\r\n return $q.when(data);\r\n }\r\n\r\n function attach_update(item) {\r\n var data = updateObj('attach', item);\r\n return $q.when(data);\r\n }\r\n\r\n function attach_delete(id) {\r\n var data = deleteObj('attach', id);\r\n return $q.when(data);\r\n }\r\n\r\n function attach_setCompleted(id) {\r\n var objName = 'attach';\r\n\r\n return $http.put(urlAPI + '/' + objName + '/SetCompleted/' + id)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed att_SetCompleted for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function attach_unsetCompleted(id) {\r\n var objName = 'attach';\r\n\r\n return $http.put(urlAPI + '/' + objName + '/UnsetCompleted/' + id)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed att_UnsetCompleted for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function attach_download(tirocinioId, tirocinanteId, classeId, misura) {\r\n if (typeof (tirocinioId) == 'undefined') { tirocinioId = 0; }\r\n if (typeof (tirocinanteId) == 'undefined') { tirocinanteId = 0; }\r\n if (typeof (classeId) == 'undefined') { classeId = 0; }\r\n if (typeof (misura) == 'undefined') { misura = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'tirocinioId', value: tirocinioId });\r\n params.push({ name: 'tirocinanteId', value: tirocinanteId });\r\n params.push({ name: 'classeId', value: classeId });\r\n params.push({ name: 'misura', value: misura });\r\n\r\n var objName = 'attach';\r\n var actionName = 'Download';\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n var numParams = params.length;\r\n if (numParams > 0) {\r\n url += '?'\r\n }\r\n\r\n for (var i = 0; i < numParams; i++) {\r\n if (i > 0) url += '&';\r\n url += params[i].name + '=' + params[i].value;\r\n }\r\n\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed Download for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function attach_extract(id) {\r\n return $http.get(urlAPI + '/Attach/Extract/' + id)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed getById for Extract: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function upload_getURL() {\r\n var controller = 'Attach';\r\n var action = 'Upload';\r\n\r\n return urlAPI + '/' + controller + '/' + action + '/';\r\n }\r\n\r\n\r\n // ******************************\r\n // TATTACH - NUOVI METODI\r\n function tAttach_getAllList(tSourceCode, tSourceId, sourceId, onlyMissing, tAttachId) {\r\n /*\r\n onlyMissing:\r\n 1: solo mancanti\r\n 0: tutte\r\n -1: sono presenti\r\n */\r\n if (typeof (tSourceCode) == 'undefined') { tSourceCode = ''; }\r\n if (typeof (tSourceId) == 'undefined') { tSourceId = 0; }\r\n if (typeof (sourceId) == 'undefined') { sourceId = 0; }\r\n if (typeof (onlyMissing) == 'undefined') { onlyMissing = 0; }\r\n if (typeof (tAttachId) == 'undefined') { tAttachId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'tSourceCode', value: tSourceCode });\r\n params.push({ name: 'tSourceId', value: tSourceId });\r\n params.push({ name: 'sourceId', value: sourceId });\r\n params.push({ name: 'onlyMissing', value: onlyMissing });\r\n params.push({ name: 'tAttachId', value: tAttachId });\r\n\r\n var data = getAllByParams('tAttach', 'GetAllList', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tAttach_getAllModal(tSourceCode, tSourceId, sourceId, onlyMissing, order) {\r\n if (typeof (tSourceCode) == 'undefined') { tSourceCode = ''; }\r\n if (typeof (tSourceId) == 'undefined') { tSourceId = 0; }\r\n if (typeof (sourceId) == 'undefined') { sourceId = 0; }\r\n if (typeof (onlyMissing) == 'undefined') { onlyMissing = 0; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'tSourceCode', value: tSourceCode });\r\n params.push({ name: 'tSourceId', value: tSourceId });\r\n params.push({ name: 'sourceId', value: sourceId });\r\n params.push({ name: 'onlyMissing', value: onlyMissing });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('tAttach', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n function tAttach_getAll(pageSize, page, tSourceCode, tSourceId, testuale, roleId, order) {\r\n if (typeof (pageSize) == 'undefined') { pageSize = 0; }\r\n if (typeof (page) == 'undefined') { page = 0; }\r\n if (typeof (tSourceCode) == 'undefined') { tSourceCode = ''; }\r\n if (typeof (tSourceId) == 'undefined') { tSourceId = 0; }\r\n if (typeof (testuale) == 'undefined') { testuale = ''; }\r\n if (typeof (roleId) == 'undefined') { roleId = 0; }\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: pageSize });\r\n params.push({ name: 'page', value: page });\r\n params.push({ name: 'tSourceCode', value: tSourceCode });\r\n params.push({ name: 'tSourceId', value: tSourceId });\r\n params.push({ name: 'testuale', value: testuale });\r\n params.push({ name: 'roleId', value: roleId });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('tAttach', 'GetAllWithoutVisibility', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tAttach_countAll(tSourceCode, tSourceId, testuale, roleId) {\r\n if (typeof (tSourceCode) == 'undefined') { tSourceCode = ''; }\r\n if (typeof (tSourceId) == 'undefined') { tSourceId = 0; }\r\n if (typeof (testuale) == 'undefined') { testuale = 0; }\r\n if (typeof (roleId) == 'undefined') { roleId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'tSourceCode', value: tSourceCode });\r\n params.push({ name: 'tSourceId', value: tSourceId });\r\n params.push({ name: 'testuale', value: testuale });\r\n params.push({ name: 'roleId', value: roleId });\r\n\r\n var data = getAllByParams('tAttach', 'CountWithoutVisibility', params);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n function tAttach_get(id) {\r\n var data = getById('tAttach', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tAttach_add(item) {\r\n var data = addObj('tAttach', item);\r\n return $q.when(data);\r\n }\r\n\r\n function tAttach_update(item) {\r\n var data = updateObj('tAttach', item);\r\n return $q.when(data);\r\n }\r\n\r\n function tAttach_delete(id) {\r\n var data = deleteObj('tAttach', id);\r\n return $q.when(data);\r\n }\r\n\r\n // ******************************\r\n // TATTACHVISIBILITY - NUOVI METODI\r\n\r\n function tAttachVisibility_getAuth(tSourceCode) {\r\n if (typeof (tSourceCode) == 'undefined') { tSourceCode = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'tSourceCode', value: tSourceCode });\r\n\r\n var data = getAllByParams('TAttach', 'TAttachVisibility_GetAuth', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tAttachVisibility_getAll(tAttachId, roleId) {\r\n if (typeof (tAttachId) == 'undefined') { tAttachId = 0; }\r\n if (typeof (roleId) == 'undefined') { roleId = 0; }\r\n\r\n var params = [];\r\n params.push({ name: 'tAttachId', value: tAttachId });\r\n params.push({ name: 'roleId', value: roleId });\r\n\r\n var data = getAllByParams('TAttach', 'TAttachVisibility_GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tAttachVisibility_add(item) {\r\n return $http.post(urlAPI + '/TAttach/TAttachVisibility_Add', item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed tAttachVisibility_add for TAttach: %s', message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function tAttachVisibility_update(item) {\r\n return $http.put(urlAPI + '/TAttach/TAttachVisibility_Update', item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed tAttachVisibility_update for TAttach: %s', message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function tAttachVisibility_delete(id) {\r\n return $http.delete(urlAPI + '/TAttach/TAttachVisibility_Delete/' + id)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed deleteObj for TAttach: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n // ******************************\r\n // TATTACHFILETYPE - NUOVI METODI\r\n\r\n function tAttachFileType_getAll(tAttachId, title, extension) {\r\n if (typeof (tAttachId) == 'undefined') { tAttachId = 0; }\r\n if (typeof (title) == 'undefined') { title = ''; }\r\n if (typeof (extension) == 'undefined') { extension = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'tAttachId', value: tAttachId });\r\n params.push({ name: 'title', value: title });\r\n params.push({ name: 'extension', value: extension });\r\n\r\n var data = getAllByParams('TAttach', 'TAttachFileType_GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tAttachFileType_add(item) {\r\n return $http.post(urlAPI + '/TAttach/TAttachFileType_Add', item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed TAttachFileType_Add for TAttach: %s', message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function tAttachFileType_update(item) {\r\n return $http.put(urlAPI + '/TAttach/TAttachFileType_Update_Update', item)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed TAttachFileType_Update for TAttach: %s', message);\r\n return message.status;\r\n });\r\n\r\n }\r\n\r\n function tAttachFileType_delete(id) {\r\n return $http.delete(urlAPI + '/TAttach/TAttachFileType_Delete/' + id)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.info('XHR Failed deleteObj for TAttachFileType: %s', message);\r\n return message.status;\r\n });\r\n }\r\n\r\n\r\n // ******************************\r\n // TSOURCE - NUOVI METODI\r\n function tSource_getAllList() {\r\n\r\n var data = getAllList('tSource');\r\n return $q.when(data);\r\n }\r\n\r\n function tSource_getAll(order) {\r\n if (typeof (order) == 'undefined') { order = ''; }\r\n\r\n var params = [];\r\n params.push({ name: 'pageSize', value: 0 });\r\n params.push({ name: 'page', value: 0 });\r\n params.push({ name: 'order', value: order });\r\n\r\n var data = getAllByParams('tSource', 'GetAllByFilter', params);\r\n return $q.when(data);\r\n }\r\n\r\n function tSource_get(id) {\r\n var data = getById('tSource', id);\r\n return $q.when(data);\r\n }\r\n\r\n function tSource_getByCode(code) {\r\n var data = getAllByParam('tSource', 'GetByCode', 'code', code);\r\n return $q.when(data);\r\n }\r\n\r\n\r\n\r\n // ******************************\r\n // Funzioni Generiche\r\n function getAll(objName) {\r\n return $http.get(urlAPI + '/' + objName + '/GetAll')\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAll for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function getAllList(objName) {\r\n return $http.get(urlAPI + '/' + objName + '/GetAllList')\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAllList for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function getAllNoParam(objName, actionName) {\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAll NO Param for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function getAllByParam(objName, actionName, paramName, paramValue) {\r\n var url = urlAPI + '/' + objName + '/' + actionName + '?' + paramName + '=' + paramValue;\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAll for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function getAllByParams(objName, actionName, paramArray) {\r\n var url = urlAPI + '/' + objName + '/' + actionName;\r\n\r\n var numParams = paramArray.length;\r\n if (numParams > 0) {\r\n url += '?'\r\n }\r\n\r\n for (var i = 0; i < numParams; i++) {\r\n if (i > 0) url += '&';\r\n url += paramArray[i].name + '=' + paramArray[i].value;\r\n }\r\n return $http.get(url)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getAllByParams for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function getById(objName, id) {\r\n return $http.get(urlAPI + '/' + objName + '/Get/' + id)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getById for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function getBaseById(objName, id) {\r\n return $http.get(urlAPI + '/' + objName + '/GetBase/' + id)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed getBaseById for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function addObj(objName, objValue) {\r\n return $http.post(urlAPI + '/' + objName + '/Post', objValue)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed addObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function updateObj(objName, objValue) {\r\n return $http.put(urlAPI + '/' + objName + '/Put', objValue)\r\n .then(function (response) {\r\n return response.data;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed updateObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n\r\n function deleteObj(objName, id) {\r\n return $http.delete(urlAPI + '/' + objName + '/Delete/' + id)\r\n .then(function (response) {\r\n return response.status;\r\n })\r\n .catch(function (message) {\r\n console.log('XHR Failed deleteObj for %s: %s', objName, message);\r\n return message.status;\r\n });\r\n }\r\n // END - Funzioni Generiche\r\n // ******************************\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n\r\n var app = angular.module('app');\r\n\r\n app.filter('time', function () {\r\n\r\n var conversions = {\r\n 'ss': angular.identity,\r\n 'mm': function (value) { return value * 60; },\r\n 'hh': function (value) { return value * 3600; }\r\n };\r\n\r\n var padding = function (value, length) {\r\n var zeroes = length - ('' + (value)).length,\r\n pad = '';\r\n while (zeroes-- > 0) pad += '0';\r\n return pad + value;\r\n };\r\n\r\n return function (value, unit, format, isPadded) {\r\n var totalSeconds = conversions[unit || 'ss'](value),\r\n hh = Math.floor(totalSeconds / 3600),\r\n mm = Math.floor((totalSeconds % 3600) / 60),\r\n ss = totalSeconds % 60;\r\n\r\n format = format || 'hh:mm';\r\n isPadded = angular.isDefined(isPadded) ? isPadded : true;\r\n hh = isPadded ? padding(hh, 2) : hh;\r\n mm = isPadded ? padding(mm, 2) : mm;\r\n\r\n return format.replace(/hh/, hh).replace(/mm/, mm);\r\n };\r\n });\r\n\r\n app.filter('floatToString', function () {\r\n return function (value) {\r\n if (!value)\r\n return '';\r\n\r\n var s = String(value).replace('.', ',');\r\n return s;\r\n };\r\n });\r\n\r\n app.filter('dateFromValues', function () {\r\n return function (day, month, year) {\r\n if (!day || !month || !year)\r\n return '';\r\n\r\n var sDay = String(day), sMonth = String(month), sYear = String(year);\r\n var pad = \"00\"\r\n sDay = pad.substring(0, pad.length - sDay.length) + sDay;\r\n sMonth = pad.substring(0, pad.length - sMonth.length) + sMonth;\r\n sYear = pad.substring(0, pad.length - sYear.length) + sYear;\r\n\r\n return sDay + '/' + sMonth + '/' + sYear;\r\n };\r\n });\r\n\r\n app.filter('dayOfWeek', function () {\r\n return function (value) { \r\n if (!value || value == undefined)\r\n return \"\";\r\n\r\n var retVal = \"\";\r\n\r\n switch (value) {\r\n case 0:\r\n retVal = \"Lunedì\";\r\n break;\r\n case 1:\r\n retVal = \"Martedì\";\r\n break;\r\n case 2:\r\n retVal = \"Mercoledì\";\r\n break;\r\n case 3:\r\n retVal = \"Giovedì\";\r\n break;\r\n case 4:\r\n retVal = \"Venerdì\";\r\n break;\r\n case 5:\r\n retVal = \"Sabato\";\r\n break;\r\n case 6:\r\n retVal = \"Domenica\";\r\n break;\r\n default:\r\n retVal = \"\";\r\n break;\r\n }\r\n\r\n return retVal;\r\n };\r\n });\r\n\r\n app.filter('dateToMyFormat', function ($filter) {\r\n return function (value) {\r\n if (!value || value.length === 0)\r\n return \"\";\r\n\r\n var retVal = \"\";\r\n var date = new Date(value);\r\n var day = value.getDay();\r\n value = $filter('date')(value, 'dd/MM/yyyy');\r\n\r\n switch (day) {\r\n case 0:\r\n retVal = \"Lun \" + value;\r\n break;\r\n case 1:\r\n retVal = \"Mar \" + value;\r\n break;\r\n case 2:\r\n retVal = \"Mer \" + value;\r\n break;\r\n case 3:\r\n retVal = \"Gio \" + value;\r\n break;\r\n case 4:\r\n retVal = \"Ven \" + value;\r\n break;\r\n case 5:\r\n retVal = \"Sab \" + value;\r\n break;\r\n case 6:\r\n retVal = \"Dom \" + value;\r\n break;\r\n default:\r\n retVal = \"\";\r\n break;\r\n }\r\n\r\n return retVal;\r\n };\r\n });\r\n\r\n app.filter('teamRole', function () {\r\n return function (value) {\r\n if (!value || value == '')\r\n return '';\r\n\r\n if (value.toUpperCase().trim() == 'L')\r\n return ' Leader';\r\n\r\n if (value.toUpperCase().trim() == 'M')\r\n return ' Membro';\r\n\r\n return '';\r\n }\r\n });\r\n\r\n app.filter('dipAttivo', function () {\r\n return function (value) {\r\n if (value == undefined)\r\n return '';\r\n \r\n if (value == true)\r\n return ' attivo';\r\n else if(value == false) \r\n return 'non attivo';\r\n\r\n return '';\r\n }\r\n });\r\n\r\n //*************************************************************\r\n /* Direttive create per verifica del funzionamento e dell'inclusione */\r\n //************************************************************* \r\n app.directive('ccImageLoader', function () {\r\n var directive = {};\r\n\r\n directive.restrict = 'E'; /* restrict this directive to elements */\r\n directive.transclude = true;\r\n directive.templateUrl = \"/app/html-templates/loader.html\";\r\n\r\n return directive;\r\n });\r\n //*************************************************************\r\n\r\n app.directive('typeaheadCheckId', function () {\r\n //Usage:\r\n //Controlla che l'oggetto abbia una prorpietà Id\r\n var directive = {\r\n require: 'ngModel',\r\n link: link\r\n }\r\n return directive;\r\n\r\n function link(scope, elm, attrs, ctrl) {\r\n\r\n function validate(value) {\r\n var isValid = false;\r\n\r\n if (value == null) {\r\n return false;\r\n }\r\n\r\n if (value.Id) {\r\n isValid = true;\r\n }\r\n\r\n ctrl.$setValidity('typeaheadCheckId', isValid);\r\n return isValid;\r\n }\r\n\r\n scope.$watch(function () {\r\n return ctrl.$modelValue;\r\n }, validate);\r\n }\r\n });\r\n\r\n app.directive('ccImgPerson', ['config', function (config) {\r\n //Usage:\r\n //\r\n var basePath = config.imageSettings.imageBasePath;\r\n var unknownImage = config.imageSettings.unknownPersonImageSource;\r\n var directive = {\r\n link: link,\r\n restrict: 'A'\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs) {\r\n attrs.$observe('ccImgPerson', function (value) {\r\n value = basePath + (value || unknownImage);\r\n attrs.$set('src', value);\r\n });\r\n }\r\n }]);\r\n\r\n app.directive('ccSidebar', function () {\r\n // Opens and clsoes the sidebar menu.\r\n // Usage:\r\n //
\r\n // Creates:\r\n //
\r\n var directive = {\r\n link: link,\r\n restrict: 'A'\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs) {\r\n var $sidebarInner = element.find('.sidebar-inner');\r\n var $dropdownElement = element.find('.sidebar-dropdown a');\r\n element.addClass('sidebar');\r\n $dropdownElement.click(dropdown);\r\n\r\n function dropdown(e) {\r\n var dropClass = 'dropy';\r\n e.preventDefault();\r\n if (!$dropdownElement.hasClass(dropClass)) {\r\n hideAllSidebars();\r\n $sidebarInner.slideDown(350);\r\n $dropdownElement.addClass(dropClass);\r\n } else if ($dropdownElement.hasClass(dropClass)) {\r\n $dropdownElement.removeClass(dropClass);\r\n $sidebarInner.slideUp(350);\r\n }\r\n\r\n function hideAllSidebars() {\r\n $sidebarInner.slideUp(350);\r\n $('.sidebar-dropdown a').removeClass(dropClass);\r\n }\r\n }\r\n }\r\n });\r\n\r\n app.directive('ccWidgetClose', function () {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n // \r\n // \r\n var directive = {\r\n link: link,\r\n template: '',\r\n restrict: 'A'\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs) {\r\n attrs.$set('href', '#');\r\n attrs.$set('wclose');\r\n element.click(close);\r\n\r\n function close(e) {\r\n e.preventDefault();\r\n element.parent().parent().parent().hide(100);\r\n }\r\n }\r\n });\r\n\r\n app.directive('ccWidgetMinimize', function () {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n var directive = {\r\n link: link,\r\n template: '',\r\n restrict: 'A'\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs) {\r\n //$('body').on('click', '.widget .wminimize', minimize);\r\n attrs.$set('href', '#');\r\n attrs.$set('wminimize');\r\n element.click(minimize);\r\n\r\n function minimize(e) {\r\n e.preventDefault();\r\n var $wcontent = element.parent().parent().next('.widget-content');\r\n var iElement = element.children('i');\r\n if ($wcontent.is(':visible')) {\r\n iElement.removeClass('fa fa-chevron-up');\r\n iElement.addClass('fa fa-chevron-down');\r\n } else {\r\n iElement.removeClass('fa fa-chevron-down');\r\n iElement.addClass('fa fa-chevron-up');\r\n }\r\n $wcontent.toggle(500);\r\n }\r\n }\r\n });\r\n\r\n app.directive('ccScrollToTop', ['$window', function ($window) {\r\n // Usage:\r\n // \r\n // Creates:\r\n // \r\n // \r\n // \r\n var directive = {\r\n link: link,\r\n template: '',\r\n restrict: 'A'\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs) {\r\n var $win = $($window);\r\n element.addClass('totop');\r\n $win.scroll(toggleIcon);\r\n\r\n element.find('a').click(function (e) {\r\n e.preventDefault();\r\n // Learning Point: $anchorScroll works, but no animation\r\n //$anchorScroll();\r\n $('body').animate({ scrollTop: 0 }, 500);\r\n });\r\n\r\n function toggleIcon() {\r\n $win.scrollTop() > 300 ? element.slideDown() : element.slideUp();\r\n }\r\n }\r\n }]);\r\n\r\n app.directive('ccSpinner', ['$window', function ($window) {\r\n // Description:\r\n // Creates a new Spinner and sets its options\r\n // Usage:\r\n //
\r\n var directive = {\r\n link: link,\r\n restrict: 'A'\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs) {\r\n scope.spinner = null;\r\n scope.$watch(attrs.ccSpinner, function (options) {\r\n if (scope.spinner) {\r\n scope.spinner.stop();\r\n }\r\n scope.spinner = new $window.Spinner(options);\r\n scope.spinner.spin(element[0]);\r\n }, true);\r\n }\r\n }]);\r\n\r\n app.directive('ccWidgetHeader', function () {\r\n //Usage:\r\n //
\r\n var directive = {\r\n link: link,\r\n scope: {\r\n 'title': '@',\r\n 'subtitle': '@',\r\n 'rightText': '@',\r\n 'allowCollapse': '@'\r\n },\r\n templateUrl: '/app/layout/widgetheader.html',\r\n restrict: 'A',\r\n };\r\n return directive;\r\n\r\n function link(scope, element, attrs) {\r\n attrs.$set('class', 'widget-head');\r\n }\r\n });\r\n\r\n //*************************************************************\r\n /* Direttiva per just gage */\r\n /* I nomi devono essere in minuscolo */\r\n //*************************************************************\r\n app.directive('justgage',\r\n function () {\r\n return {\r\n restrict: 'EAC',\r\n scope: {\r\n title: '@', // gauge title text\r\n titlefontcolor: '@', // title text color\r\n\r\n value: '@', // value to show\r\n valuefontcolor: '@', // color of value text\r\n\r\n width: '@', // gauge width\r\n height: '@', // gauge height\r\n relativegaugesize: '@', // true if the gauge has to grow with the container\r\n\r\n min: '@', // minimum value\r\n max: '@', // maximum value\r\n\r\n valueminfontsize: '@', // absolute minimum font size for the value\r\n titleminfontsize: '@', // absolute minimum font size for the title\r\n labelminfontsize: '@', // absolute minimum font size for the label\r\n minlabelminfontsize: '@', // absolute minimum font size for the minimum label\r\n maxlabelminfontsize: '@', // absolute minimum font size for the maximum label\r\n\r\n hidevalue: '@', // hide value text\r\n hideminmax: '@', // hide min and max values\r\n hideinnershadow: '@', // hide inner shadow\r\n\r\n gaugewidthscale: '@', // width of the gauge element\r\n gaugecolor: '@', // background color of gauge element\r\n\r\n showinnershadow: '@', // true to display inner shadow\r\n shadowopacity: '@', // shadow opacity, values 0 ~ 1\r\n shadowsize: '@', // inner shadow size\r\n shadowverticaloffset: '@', // how much is shadow offset from top\r\n\r\n levelcolors: '@', // array of strings, colors of indicator, from lower to upper, in hex format\r\n customsectors: '@', // Array of objects with color, hi, lo attributes\r\n nogradient: '@', // true to use sector-based color change, false to use gradual color change\r\n\r\n label: '@', // text to show below value\r\n labelfontcolor: '@', // color of label under the value\r\n\r\n startanimationtTime: '@', // length of initial load animation\r\n startanimationtype: '@', // type of initial animation (linear, >, <, <>, bounce)\r\n refreshanimationtime: '@', // length of refresh animation\r\n refreshanimationtype: '@', // type of refresh animation (linear, >, <, <>, bounce)\r\n\r\n donut: '@', // Turn the gauge into a full circle donut\r\n donutstartangle: '@', // angle to start from when in donut mode\r\n\r\n counter: '@', // Increase numbers one by one\r\n decimals: '@', // Quantity of decimal numbers to show\r\n symbol: '@', // Unit of measure that will be appended to value\r\n formatnumber: '@', // Whether to format numbers\r\n humanfriendly: '@', // true to show shorthand big numbers (300K instead of 300XXX)\r\n humanfriendlydecimal: '@', // number of decimal places for our human friendly number to contain\r\n\r\n textrenderer: '&' // function applied before rendering text\r\n },\r\n controller: 'justgageCtrl',\r\n link: function (scope, element, attrs, justgageCtrl) {\r\n var justgage,\r\n watchers = [];\r\n\r\n /**\r\n * Bind the `value` property on the scope in order to refresh the JustGage when it changes.\r\n */\r\n var bindValue = function () {\r\n watchers.push(scope.$watch('value', function (newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n justgage.refresh(newValue, scope.max);\r\n }\r\n }));\r\n watchers.push(scope.$watch('max', function (newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n justgage.refresh(scope.value, newValue);\r\n }\r\n }));\r\n };\r\n\r\n /**\r\n * Bind all scope paramenters other than `value` and `textRenderer` and re-creates the JustGage whenever\r\n * one of them changes.\r\n */\r\n var bindOtherOptions = function () {\r\n var otherOptionsNames = justgageCtrl.getOptionsNames(['value', 'max']);\r\n // TODO: move to angularjs 1.3 and replace with $watchGroup\r\n angular.forEach(otherOptionsNames, function (name) {\r\n watchers.push(scope.$watch(name, function (newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n init();\r\n }\r\n }));\r\n });\r\n };\r\n\r\n /**\r\n * Initialize the JustGage element with the given non-undefined options on the scope.\r\n * It also binds the scope values to appropriate changes\r\n */\r\n var init = function () {\r\n var justgageOptions = {\r\n parentNode: element[0]\r\n };\r\n angular.extend(justgageOptions, justgageCtrl.getDefinedOptions());\r\n\r\n // Remove existing canvas from DOM (if any)\r\n if (justgage) {\r\n var canvasDom = justgage.canvas.canvas;\r\n canvasDom.parentNode.removeChild(canvasDom);\r\n }\r\n\r\n // Clear existing watcher (see http://stackoverflow.com/a/17306971 why while & pop)\r\n while (watchers.length > 0) {\r\n var watcher = watchers.pop();\r\n watcher();\r\n }\r\n\r\n // rebuild the gage\r\n //console.dir(justgageOptions);\r\n justgage = new JustGage(justgageOptions);\r\n\r\n // Bind scope changes to element methods\r\n bindValue();\r\n bindOtherOptions();\r\n };\r\n\r\n // Initialize everything on the next $digest cycle\r\n init();\r\n }\r\n };\r\n });\r\n\r\n //*************************************************************\r\n /* Direttive Progress Bar */\r\n //*************************************************************\r\n app.directive('progressbar', function () {\r\n return {\r\n restrict: 'C',\r\n scope: {\r\n valuecurrent: '@',\r\n valuemax: '@',\r\n },\r\n link: function (scope, element, attrs) {\r\n scope.warning = parseInt(scope.valuecurrent) > parseInt(scope.valuemax);\r\n },\r\n templateUrl: '/app/html-templates/progress.html'\r\n }\r\n });\r\n app.directive('progressbarperc', function () {\r\n return {\r\n restrict: 'C',\r\n scope: {\r\n valuecurrent: '@',\r\n valuemax: '@',\r\n },\r\n link: function (scope, element, attrs) {\r\n scope.warning = parseInt(scope.valuecurrent) > parseInt(scope.valuemax);\r\n },\r\n templateUrl: '/app/html-templates/progressPerc.html'\r\n }\r\n });\r\n\r\n //*************************************************************\r\n /* Direttive create per gestire il messaggio di conferma \"salvataggio dati\" prima della navigazione in altre pagine */\r\n //*************************************************************\r\n angular.module('app').directive('formInit', function () {\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n init: '&formInit'\r\n },\r\n controller: function ($scope, $element) {\r\n var name = null;\r\n if ($element[0] && $element[0].name) {\r\n name = $element[0].name;\r\n }\r\n\r\n var listener = $scope.$watch('init', function () {\r\n if ($scope[name] && $scope.init) {\r\n $scope.init();\r\n listener();\r\n }\r\n });\r\n }\r\n };\r\n });\r\n\r\n //*************************************************************\r\n /* Direttive create per gestire il messaggio di conferma \"salvataggio dati\" prima della navigazione in altre pagine */\r\n //*************************************************************\r\n angular.module('app').directive(\"fileread\", [function () {\r\n return {\r\n scope: {\r\n fileread: \"=\"\r\n },\r\n link: function (scope, element, attributes) {\r\n element.bind(\"change\", function (changeEvent) {\r\n var reader = new FileReader();\r\n reader.onload = function (loadEvent) {\r\n scope.$apply(function () {\r\n scope.fileread = loadEvent.target.result;\r\n });\r\n }\r\n reader.readAsDataURL(changeEvent.target.files[0]);\r\n });\r\n }\r\n };\r\n }]);\r\n\r\n angular.module('app').directive('clickme', function () {\r\n return function (scope, element, attrs) {\r\n var clickingCallback = function () {\r\n $(\"#image_file\").trigger('click');\r\n };\r\n element.bind('click', clickingCallback);\r\n };\r\n });\r\n\r\n app.filter('groupRecord', function (_) {\r\n function groupBy(array, f) {\r\n var groups = {};\r\n array.forEach(function (o) {\r\n var group = JSON.stringify(f(o));\r\n groups[group] = groups[group] || [];\r\n groups[group].push(o);\r\n });\r\n return Object.keys(groups).map(function (group) {\r\n return groups[group];\r\n });\r\n }\r\n\r\n return function (value) {\r\n if (!value || value.length == 0)\r\n return '';\r\n\r\n if (value.length > 0) {\r\n var tipologie = '';\r\n if (value[0].AreaTecnicaId == 0 || !value[0].AreaTecnicaId) {\r\n value.forEach(function (item, i, array) {\r\n if (i === array.length - 1)\r\n tipologie += item.TestoAltro;\r\n else\r\n tipologie += item.TestoAltro + ', ';\r\n });\r\n } else {\r\n var result = groupBy(value, function (a) {\r\n return a.AreaTecnicaId;\r\n });\r\n\r\n result.forEach(function (res) {\r\n res.forEach(function (r, index, arr) {\r\n if (index === 0 && r.AreaTecnica)\r\n tipologie += r.AreaTecnica + ': ';\r\n if (index === arr.length - 1)\r\n tipologie += r.TestoAltro + ' ';\r\n else if (r.AreaTecnica)\r\n tipologie += r.TestoAltro + ', ';\r\n else\r\n tipologie += r.TestoAltro + '; ';\r\n });\r\n });\r\n }\r\n\r\n return tipologie;\r\n }\r\n };\r\n });\r\n})();","// app/studente/classi.js\r\n\r\n(function () {\r\n\t'use strict';\r\n\tvar controllerId = 'tAttach';\r\n\tangular.module('app').controller(controllerId, ['common', '$scope', 'bootstrap.dialog', '$routeParams', '$uibModal', 'datacontext', 'sectionMenu', 'filterFilter', tAttach]);\r\n\r\n\tfunction tAttach(common, $scope, bDialog, $routeParams, modal, datacontext, sectionMenu, filterFilter) {\r\n\t\tvar getLogFn = common.logger.getLogFn;\r\n\t\tvar log = getLogFn(controllerId);\r\n\t\tvar logError = getLogFn(controllerId, 'logError');\r\n\t\tvar logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n\t\tvar vm = this;\r\n\t\tvm.title = 'Tipologia Allegati';\r\n\t\tvm.view = 'list'; //Opzione list or detail\r\n\t\tvm.setView = setView;\r\n\t\tvm.sectionMenu = sectionMenu.setSection(vm.title);\r\n\r\n\t\tvm.objName = \"attach\"; //Utilizzato per pannello authorization\r\n\t\t//vm.authorization = {};\r\n\t\tvm.showObjPanel = false;\r\n\t\tvm.record = {};\r\n\t\tvm.records = [];\r\n\t\tvm.countRecords = 0;\r\n\t\tvm.index = 0;\r\n\t\tvm.custom = false;\r\n\t\t\r\n\r\n\t\tvm.addDisabled = false;\r\n\t\tvm.exportDisabled = false;\r\n\t\tvm.pageSize = 30;\r\n\t\tvm.page = 1;\r\n\t\tvm.loading = false;\r\n\r\n\t\t//Elenco per Ordinamento\r\n\t\tvm.list = {};\r\n\t\tvm.list.ordine = ['TSource', 'Name'];\r\n\t\tvm.ordine = vm.list.ordine[0];\r\n\t\tvm.selectOrdine = function (item) {\r\n\t\t vm.ordine = item;\r\n\t\t cerca();\r\n }; \r\n\r\n\t\tvm.getRecord = getRecord;\r\n\t\tvm.getListRuoli = getListRuoli;\r\n\t\tvm.deleteRuolo = deleteRuolo;\r\n\r\n\r\n\t\t//Filtro\r\n\t\tvm.filter = {};\r\n\t\tvm.fTSourceId = 0;\r\n\t\tvm.fTestuale = '';\r\n\t\tvm.fRoleId = 0;\r\n\t\tvm.filter.tSourceId = vm.fTSourceId;\r\n\t\tvm.filter.testuale = vm.fTestuale;\r\n\t\tvm.filter.roleId = vm.fRoleId;\r\n\r\n\t\t//Elenchi per filtri e finestra modale di Create\r\n\t\tvm.tSource = [];\r\n\t\tvm.ruoli = [];\r\n\r\n\t //Elenchi Dettaglio\r\n\t\tvm.list.ruoli = [];\r\n vm.lstRoles = [];\r\n vm.list.tipologie = [];\r\n\r\n\t\t//Metodi su interfaccia\r\n\t\tvm.cerca = cerca;\r\n\t\tvm.loadMore = getAllByFilter;\r\n\t\tvm.loadAll = getAll;\r\n\t\t\r\n\r\n\t\tvm.goNext = goNext;\r\n\t\tvm.goPrev = goPrev;\r\n\r\n\r\n\t\tvm.get = getRecord;\r\n\t\tvm.add = addModal;\r\n\t\tvm.update = updateItem;\r\n\t\tvm.delete = deleteItem;\r\n\t\tvm.deletedChildren = 0;\r\n vm.addRole = addModalRole;\r\n vm.addTipologia = addModalTipologia;\r\n\r\n vm.getListTipologie = getListTipologie;\r\n vm.deleteTipologia = deleteTipologia;\r\n\r\n vm.change_iImporto1 = change_CarattVariable;\r\n vm.change_iValore1 = change_CarattVariable;\r\n vm.change_iBit1 = change_CarattVariable;\r\n vm.change_iTesto1 = change_CarattVariable;\r\n vm.change_CarattVariable = change_CarattVariable;\r\n\r\n\t\t// ---- ACTIVATE -------\r\n\t\tactivate();\r\n\r\n\t\tfunction activate() {\r\n\t\t var promises = [getTSource(), getRuoli(), getRoles(), /*getAuthorization()*/];\r\n\t\t\tcommon.activateController(promises, controllerId)\r\n\t\t\t\t\t\t\t.then(function () {\r\n\r\n\t\t\t\t\t\t\t\tif ($routeParams.TAttachId != null) {\r\n\t\t\t\t\t\t\t\t\tsetView('detail');\r\n\t\t\t\t\t\t\t\t\tgetRecord($routeParams.TAttachId, 0);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t//****************************************************\r\n\t\t// METODI \r\n\t\t//****************************************************\r\n\t\tfunction setView(view) {\r\n\t\t\treturn vm.view = view;\r\n\t\t}\r\n\r\n\r\n\t\tfunction cerca() {\r\n\t\t\tvm.records = [];\r\n\t\t\tvm.countRecords = 0;\r\n\t\t\tvm.page = 1;\r\n\t\t\tvm.filter.tSourceId = vm.fTSourceId == null ? 0 : vm.fTSourceId;\r\n\t\t\tvm.filter.testuale = vm.fTestuale == null ? '' : vm.fTestuale;\r\n\t\t\tvm.filter.roleId = vm.fRoleId == null ? 0 : vm.fRoleId;\r\n\r\n\r\n\t\t\tvm.loading = false;\r\n\t\t\tcountByFilter();\r\n\t\t\treturn getAllByFilter();\r\n\t\t}\r\n\r\n\t\tfunction countByFilter() {\r\n\t\t return datacontext.tAttach_countAll('', vm.filter.tSourceId, vm.filter.testuale, vm.filter.roleId)\r\n\t\t\t\t\t\t.then(function (data) {\r\n\t\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t\tvm.countRecords = data;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAllByFilter() {\r\n\t\t\tif (vm.loading === true) return;\r\n\r\n\t\t\tif (vm.countRecords == 0) countByFilter();\r\n\t\t\telse if (vm.countRecords <= vm.records.length) return;\r\n\r\n\t\t\tvm.loading = true;\r\n\t\t\treturn datacontext.tAttach_getAll(vm.pageSize, vm.page, '', vm.filter.tSourceId, vm.filter.testuale, vm.filter.roleId, vm.ordine)\r\n\t\t\t\t\t.then(function (data) {\r\n\t\t\t\t\t\tif (data.constructor === Array) {\r\n\t\t\t\t\t\t\tvm.page++;\r\n\t\t\t\t\t\t\tdata.forEach(function (item) {\r\n\t\t\t\t\t\t\t\tvm.records.push(item);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.loading = false;\r\n\t\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAll() {\r\n\t\t\tif (vm.records.length < vm.countRecords) {\r\n\t\t\t\tgetAllByFilter().then(function () { getAll(); });\r\n\t\t\t}\r\n\t\t}\r\n/*\r\n\t\tfunction getAuthorization() {\r\n vm.addDisabled = true;\r\n \r\n\t\t\treturn datacontext.authorization_get(vm.objName)\r\n\t\t\t\t\t.then(function (data) {\r\n\t\t\t\t\t\tvm.authorization = data;\r\n\t\t\t\t\t\tvm.addDisabled = !vm.authorization.bInsert;\r\n\t\t\t\t\t});\r\n\t\t}\r\n */\r\n\t\tfunction getRecord(id, index) {\r\n\t\t return datacontext.tAttach_get(id).then(function (data) {\r\n\t\t\t\tvm.index = index;\r\n\t\t\t\tvm.record = data;\r\n\r\n\t\t //Azzera liste\r\n vm.list.ruoli = [];\r\n vm.list.tipologie = [];\r\n\r\n\t\t\t\tsetView('detail');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction goNext() {\r\n\t\t\tif (vm.index + 1 >= vm.countRecords) return;\r\n\t\t\tif (vm.index + 1 >= vm.records.length && vm.index + 1 < vm.countRecords) {\r\n\t\t\t\tgetByFilter();\r\n\t\t\t}\r\n\t\t\tif (!vm.records) return;\r\n\r\n\t\t\tvm.index++;\r\n\t\t\treturn getRecord(vm.records[vm.index].Id, vm.index);\r\n\t\t}\r\n\r\n\t\tfunction goPrev() {\r\n\t\t\tif (vm.index == 0) return;\r\n\t\t\tif (!vm.records) return;\r\n\r\n\t\t\tvm.index--;\r\n\r\n\t\t\treturn getRecord(vm.records[vm.index].Id, vm.index);\r\n\t\t}\r\n\r\n\r\n\t\tfunction addRecord(id) {\r\n\t\t return datacontext.tAttach_get(id).then(function (data) {\r\n\t\t\t\tvm.records.push(data);\r\n\t\t\t\tvm.countRecords++;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction updateItem() {\r\n\t\t return datacontext.tAttach_update(vm.record).then(function (data) {\r\n\t\t\t\tif (data == \"400\") return logError('Errore cancellazione dati [' + data + ']');\r\n\r\n\t\t\t\tvm.records[vm.index] = data;\r\n\t\t\t\tlogSuccess('Record Salvato ');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction deleteItem(item) {\r\n\t\t\tvar msg = 'Tipologia Allegato: ' + item.Name + '?';\r\n\t\t\tbDialog.deleteDialog(msg).then(function () {\r\n\t\t\t if (item.Id > 0) {\r\n\t\t\t deleteChildren(0, item.Id);\r\n\t\t\t }\r\n\t\t\t return datacontext.tAttach_delete(item.Id).then(function (data) {\r\n\t\t\t\t\tif (data != \"204\") return logError('Errore cancellazione dati [' + data + ']');\r\n\r\n\t\t\t\t\tvar index = vm.records.indexOf(item)\r\n\t\t\t\t\tvm.records.splice(index, 1);\r\n\t\t\t\t\tvm.countRecords--;\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction deleteChildren(roleId, tAttachId) {\r\n\t\t return datacontext.deleteChildrenOfRoleIdOrUserId(roleId, tAttachId).then(function (data) {\r\n\t\t return vm.deletedChildren = data;\r\n\t\t });\r\n\t\t}\r\n\r\n\t\t//List Methods\r\n\t\tfunction getListRuoli(tAttachId, roleId) {\r\n\t\t return datacontext.tAttachVisibility_getAll(tAttachId, roleId).then(function (data) {\r\n\t\t //console.info('getListRuoli', data);\r\n\t\t return vm.list.ruoli = data;\r\n\t\t });\r\n\t\t}\r\n\r\n\t\tfunction deleteRuolo(item) {\r\n\t\t var msg = ' Ruolo ' + item.Role_Etichetta + ' per la tipologia ' + vm.record.Name;\r\n\t\t bDialog.deleteDialog(msg).then(function () {\r\n\t\t return datacontext.tAttachVisibility_delete(item.Id).then(function (data) {\r\n\t\t if (data == \"404\") return logError('Errore ruolo non rimosso');\r\n\r\n\t\t var index = vm.list.ruoli.indexOf(item)\r\n\t\t vm.list.ruoli.splice(index, 1);\r\n\t\t });\r\n\t\t });\r\n\t\t}\r\n\r\n\t\t//Elenchi Parametri\r\n\t\tfunction getTSource() {\r\n\t\t\treturn datacontext.tSource_getAllList().then(function (data) {\r\n\t\t\t return vm.tSource = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getRuoli() {\r\n\t\t return datacontext.role_getAll().then(function (data) {\r\n\t\t return vm.ruoli = data;\r\n\t\t });\r\n\t\t}\r\n\r\n\t\tfunction getRoles() {\r\n\t\t return datacontext.role_getAllList().then(function (data) {\r\n\t\t return vm.lstRoles = data;\r\n\t\t });\r\n }\r\n\r\n //TIPOLOGIA\r\n function getListTipologie(tAttachId, title, extension) {\r\n return datacontext.tAttachFileType_getAll(tAttachId, title, extension).then(function (data) {\r\n return vm.list.tipologie = data;\r\n });\r\n }\r\n\r\n function deleteTipologia(item) {\r\n var msg = ' l\\'estensione \\'' + item.Title + '\\' per la tipologia \\'' + vm.record.Name + '\\'';\r\n bDialog.deleteDialog(msg).then(function () {\r\n //console.dir(item);\r\n //console.info('deleteTipologia', vm.record.Id, item.Title, item.Extension);\r\n return datacontext.tAttachFileType_delete(item.Id).then(function (data) {\r\n if (data == \"404\") return logError('Errore tipologia non rimossa');\r\n\r\n var index = vm.list.tipologie.indexOf(item)\r\n vm.list.tipologie.splice(index, 1);\r\n });\r\n });\r\n }\r\n\r\n function getTipologie() {//mix tra getRoles e getRuoli\r\n return datacontext.tAttachFileType_getAll('').then(function (data) {\r\n return vm.tipologie = data;\r\n\r\n });\r\n }\r\n\r\n function change_CarattVariable(value, variable) {\r\n if (value == 0) {\r\n if (variable == 'labelImporto1')\r\n vm.record.labelImporto1 = '';\r\n else if (variable == 'labelValore1')\r\n vm.record.labelValore1 = '';\r\n else if (variable == 'labelBit1')\r\n vm.record.labelBit1 = '';\r\n else if (variable == 'labelTesto1')\r\n vm.record.labelTesto1 = '';\r\n }\r\n }\r\n \r\n\r\n\r\n\r\n\t\t//****************************************************\r\n\t\t// OPEN MODAL DIALOG\r\n\t\t//****************************************************\r\n\t\tfunction addModal() {\r\n\t\t\tvar modalInstance = modal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/tAttach/modal/tAttachAdd.html?version=30',\r\n\t\t\t\tcontroller: 'tAttachAdd',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\ttSource: function () {\r\n\t\t\t\t\t\treturn vm.tSource;\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttSourceId: function () {\r\n\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (!returnItem) return logError('errore di creazione! ');\r\n\r\n\t\t\t\tlogSuccess('Dato salvato con successo! ');\r\n\t\t\t\taddRecord(returnItem.Id);\r\n\t\t\t}, function () {\r\n\t\t\t\t//log('Modal dismissed at: ' + new Date());\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t //Ruolo\r\n\t\tfunction addModalRole(item) {\r\n\t\t var record = { Id: vm.record.Id, Name: vm.record.Name + \" - \" + vm.record.TSource };\r\n\r\n\t\t\tvar modalInstance = modal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t templateUrl: '/app/tAttach/modal/tAttachRoleAdd.html?version=30',\r\n\t\t controller: 'tAttachRoleAdd',\r\n\t\t resolve: {\r\n\t\t tAttach: function () {\r\n\t\t return [record];\r\n\t\t },\r\n\t\t tAttachId: function () {\r\n\t\t return vm.record.Id;\r\n\t\t },\r\n\t\t ruoli: function () {\r\n\t\t return vm.ruoli;\r\n\t\t },\r\n\t\t ruoloId: function () {\r\n\t\t return null;\r\n },\r\n tSourceId: function () {\r\n return vm.record.TSourceId;\r\n },\r\n tAttachRole: function () {\r\n return item;\r\n }\r\n\t\t }\r\n\t\t });\r\n\r\n\t\t modalInstance.result.then(function (returnItem) {\r\n if (returnItem == \"406\") return logError('Attenzione: tentativo di duplicazione! ');\r\n if (returnItem == \"404\") return logError('Errore di creazione! ');\r\n if ($.isNumeric(returnItem)) return logError('Errore generico! ');\r\n\r\n\t\t logSuccess('record creato con successo! ');\r\n\t\t getListRuoli(vm.record.Id, 0);\r\n\t\t }, function () {\r\n\t\t //log('Modal dismissed at: ' + new Date());\r\n\t\t });\r\n };\r\n\r\n //Tipologia\r\n function addModalTipologia() {\r\n var record = { Id: vm.record.Id, Name: vm.record.Name + \" - \" + vm.record.TSource };\r\n\r\n\t\t\tvar modalInstance = modal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n templateUrl: '/app/tAttach/modal/tAttachTipologiaAdd.html?version=30',\r\n controller: 'tAttachTipologiaAdd',\r\n resolve: {\r\n tAttach: function () {\r\n return [record];\r\n },\r\n tAttachId: function () {\r\n return vm.record.Id;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('errore di creazione! ');\r\n if ($.isNumeric(returnItem)) return logError('errore di creazione! ');\r\n\r\n logSuccess('record creato con successo! ');\r\n getListTipologie(vm.record.Id, '', '');\r\n //console.info('getListTipologie', getListTipologie);\r\n }, function () {\r\n //log('Modal dismissed at: ' + new Date());\r\n });\r\n };\r\n\r\n\t}\r\n})();\r\n","// app/sezioni/sezioni.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'sezione';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', sezioneFn]);\r\n\r\n function sezioneFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = $translate.instant('Sezioni');\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.sectionMenu = sectionMenu.setSection('Sezioni'); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = false;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false; \r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Codice', 'Titolo'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n\r\n //Gestione sezioni \r\n vm.add = addSezione;\r\n vm.edit = editSezione;\r\n vm.delete = deleteSezione;\r\n \r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.sezioniId != null) {\r\n getRecord($routeParams.sezioniId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.sezione_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.sezione_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n return datacontext.sezione_get(id).then(function (data) { \r\n vm.index = index;\r\n vm.record = data; \r\n\r\n setView('detail');\r\n });\r\n } \r\n\r\n function addSezione() {\r\n var modalSezione = {};\r\n modalSezione.Id = 0;\r\n \r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/sezioni/modal/sezioneAddEdit.html?version=30', \r\n controller: 'sezioneAddEdit',\r\n resolve: { \r\n sezione: function () {\r\n return modalSezione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { \r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Centro di costo aggiunto con successo'));\r\n cerca();\r\n });\r\n }\r\n\r\n function editSezione(item, index) {\r\n var modalSezione = {};\r\n angular.copy(item, modalSezione);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/sezioni/modal/sezioneAddEdit.html?version=30', \r\n controller: 'sezioneAddEdit',\r\n resolve: { \r\n sezione: function () { \r\n return modalSezione;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { \r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato'));\r\n\r\n logSuccess($translate.instant('Centro di costo modificato con successo'));\r\n cerca();\r\n });\r\n }\r\n\r\n function deleteSezione(item) {\r\n var msg = \" \" + $translate.instant('il centro di costo') + \" \"\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.sezione_delete(item.Id).then(function (data) {\r\n if (data != 400 && data != 404) {\r\n var index = vm.records.indexOf(item)\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n logSuccess($translate.instant('Centro di costo eliminato con successo'));\r\n } else {\r\n return logError($translate.instant('Impossibile eliminare il dato'));\r\n }\r\n });\r\n });\r\n }\r\n }\r\n})();\r\n","// app/team/team.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'team';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', '$filter', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', teamFn]);\r\n\r\n function teamFn($rootScope, $routeParams, $filter, common, bDialog, $uibModal, datacontext, sectionMenu, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = 'Team';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection(vm.title); \r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = false;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n vm.dipendentiAttivi = true;\r\n\r\n //vm.super = $rootScope.isAuthorized('SUPER'); \r\n \r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Titolo', 'Codice'];\r\n vm.list.ordine = common.setOrdine(vm.list.ordine);\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n //Elenchi dettaglio\r\n // vm.list.sezioni = [];\r\n vm.list.dipendenti = []; \r\n vm.getListDipendenti = getListDipendenti;\r\n \r\n //Filtro\r\n vm.filter = {}; \r\n vm.filter.ricerca = vm.fRicerca = '';\r\n \r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll; \r\n vm.getRecord = getRecord; \r\n vm.get = getRecord; \r\n vm.dipAttiviClick = dipAttiviClick;\r\n\r\n //Gestione Team \r\n vm.add = addTeam;\r\n vm.update = updateItem;\r\n vm.editTeam = editTeam;\r\n vm.deleteTeam = deleteTeam;\r\n\r\n vm.selezionaDipendente = selezionaDipendente;\r\n vm.dipendente = {};\r\n vm.deleteDipendenteTeam = deleteDipendenteTeam; \r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getDipendente()];\r\n common.activateController(promises, controllerId)\r\n .then(function () { \r\n if ($routeParams.TeamId != null) {\r\n setView('detail');\r\n getRecord($routeParams.TeamId, 0);\r\n }\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n //console.info('data', vm.record);\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1; \r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.team_countAll(vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.team_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.ordine.value).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data); \r\n }\r\n vm.loading = false; \r\n }); \r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) { \r\n vm.list.dipendenti = [];\r\n return datacontext.team_get(id).then(function (data) { \r\n vm.index = index;\r\n vm.record = data; \r\n \r\n //Azzera liste \r\n vm.list.dipendenti = getListDipendenti(id);\r\n setView('detail');\r\n });\r\n } \r\n\r\n //Get list\r\n function getSezioni() {\r\n return datacontext.sezione_getAllList().then(function (data) { \r\n return vm.list.sezioni = data;\r\n });\r\n } \r\n\r\n //getListDipendenti (popolare i dipendenti x il team)\r\n function getListDipendenti(id) {\r\n if (!id) return [];\r\n var temp = [];\r\n //Questo metodo serve nella schermata dettaglio team \r\n return datacontext.dipendentiTeam_getAll(id, 0).then(function (data) {\r\n if (vm.dipendentiAttivi == true) { \r\n data.forEach(function (item) {\r\n if (item.attivo == true) { \r\n temp.push(item);\r\n } \r\n });\r\n\r\n return vm.list.dipendenti = temp;\r\n }\r\n else\r\n return vm.list.dipendenti = data;\r\n });\r\n }\r\n\r\n //getDipendenti (popolare la modale dei dipendenti)\r\n function getDipendente(id) {\r\n if ($rootScope.isAuthorized('USER') || !id)\r\n id = $rootScope.id ? $rootScope.id : 0;\r\n\r\n return datacontext.dipendente_get(id).then(function (data) {\r\n vm.dipendente = data;\r\n });\r\n }\r\n\r\n //function addRecord(id) {\r\n // return datacontext.dipendente_get(id).then(function (data) {\r\n // vm.records.push(data);\r\n // vm.countRecords++;\r\n // });\r\n //}\r\n\r\n // Selezione dipendente\r\n function selezionaDipendente() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/team/modal/teamMembroSelect.html?version=30',\r\n controller: 'teamMembroSelect',\r\n windowClass: 'modal-wide',\r\n resolve: { \r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { \r\n getDipendente(returnItem.id).then(function () { \r\n \r\n var ruolo = returnItem.ruolo;\r\n return datacontext.dipendentiTeam_add(vm.record.Id, returnItem.id, ruolo).then(function (data) {\r\n if(data == \"409\")\r\n return logError($translate.instant('Dipendente gia presente'));\r\n else if (data) {\r\n //vm.records[vm.index] = data;\r\n logSuccess($translate.instant('Dati salvati'));\r\n return getListDipendenti(vm.record.Id);\r\n }\r\n else\r\n return logError($translate.instant('Impossibile salvare i dati'));\r\n }); \r\n });\r\n });\r\n }\r\n\r\n function deleteDipendenteTeam(item) {\r\n var msg = $translate.instant(\" il dipendente \") + \" \" + item.dipendente + \" \" + $translate.instant(\" dal team \") + \" \" + vm.record.titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.dipendentiTeam_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Dipendente eliminato con successo '));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n getListDipendenti(vm.record.Id);\r\n });\r\n });\r\n }\r\n\r\n //Gestione Team\r\n // implementazione del metodo addTeam (definito sopra) che si scatena quando clicco sul bottone \"Aggiungi\" (nel tab Team)\r\n function addTeam() {\r\n var modalTeam = {};\r\n modalTeam.Id = 0; // devo aggiungere un nuovo record e sappiamo che ogni nuovo record è identificato da un Id pari a 0\r\n \r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/team/modal/teamAddEdit.html?version=30', // utilizzo la stessa modale sia per aggiungere che per modificare \r\n controller: 'teamAddEdit',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n team: function () { // in questo caso passiamo un solo oggetto che si chiama 'team' che ha come valore modalTeam\r\n return modalTeam;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato ')); // analizza l'oggetto tornato 'returnItem' = 'teamAddEdit.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n \r\n logSuccess($translate.instant('Team aggiunto con successo '));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n //addRecord(returnItem.Id);\r\n cerca();\r\n });\r\n }\r\n\r\n function updateItem() { \r\n return datacontext.team_update(vm.record).then(function (data) {\r\n if (data) {\r\n vm.records[vm.index] = data;\r\n logSuccess($translate.instant('Dati salvati'));\r\n }\r\n else\r\n logError($translate.instant('Impossibile salvare i dati'));\r\n });\r\n }\r\n\r\n //non viene utilizzata la modale perchè utilizzo il detail\r\n function editTeam(item) {\r\n var modalTeam = {};\r\n angular.copy(item, modalTeam);\r\n\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/team/modal/teamAddEdit.html?version=30', // utilizzo la stessa modale sia per aggiungere che per modificare \r\n controller: 'teamAddEdit',\r\n resolve: { // in resolve si indicano, separati da virgola, gli oggetti che vuoi passare alla modale\r\n team: function () { // in questo caso passiamo un solo oggetto che si chiama 'costo' che ha come valore modalIncontro\r\n return modalTeam;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) { // eseguito a seguito della chiusura della modale\r\n if (!returnItem) return logError($translate.instant('Errore durante la modifica del dato ')); // analizza l'oggetto tornato 'returnItem' = 'costoAddEdit.result'\r\n // (può essere nullo se l'aggiornamento non va a buon fine)\r\n\r\n logSuccess($translate.instant('Team modificato con successo '));\r\n vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione \r\n //cerca();\r\n });\r\n }\r\n\r\n function deleteTeam(item) {\r\n var msg = \" team \" + item.titolo;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.team_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError($translate.instant('Errore durante la rimozione del dato'));\r\n logSuccess($translate.instant('Team eliminato con successo '));\r\n //vm.record = getRecord(vm.record.Id, vm.index); //Aggiorno i dati in visualizzazione\r\n //var index = vm.records.indexOf(item)\r\n //vm.records.splice(index, 1);\r\n //vm.countRecords--;\r\n cerca();\r\n }); \r\n });\r\n } \r\n\r\n function dipAttiviClick() { \r\n getListDipendenti(vm.record.Id);\r\n }\r\n }\r\n})();\r\n","// app/timeSheet/timeSheet.js\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n var controllerId = 'timeSheet';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$routeParams', 'datacontext', 'common', 'sectionMenu', '_', 'bootstrap.dialog', '$uibModal', '$filter', '$translate', timeSheetFn]);\r\n\r\n function timeSheetFn($rootScope, $routeParams, datacontext, common, sectionMenu, _, bDialog, $uibModal, $filter, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n var vm = this;\r\n vm.title = 'TimeSheet';\r\n vm.sectionMenu = sectionMenu.setSection(vm.title);\r\n vm.timeSheet = {};\r\n vm.list = {};\r\n vm.list.commesse = [];\r\n vm.list.giustificativi = [];\r\n vm.giorni = [];\r\n vm.date = []; //Questo contiene le date da inserire nella tabella ore\r\n vm.colFestivo = [];\r\n vm.colTitle = [];\r\n vm.bSelDipendente = false;\r\n vm.bConvalida = false;\r\n vm.bLock = false;\r\n\r\n vm.personale = $rootScope.isAuthorized('PERSONALE');\r\n\r\n if ($rootScope.isAuthorized('PERSONALE') || $rootScope.isAuthorized('CAPOSEZIONE')) {\r\n vm.bConvalida = true;\r\n vm.bSelDipendente = true;\r\n }\r\n\r\n vm.righeC = [];\r\n vm.righeG = [];\r\n vm.CBlur = CBlur;\r\n vm.GBlur = GBlur;\r\n\r\n vm.dipendente = {};\r\n vm.dipendente.Profilo = [0, 0, 0, 0, 0, 0, 0]; //Questo viene modificato se ci sono festivi\r\n vm.profilo = [0, 0, 0, 0, 0, 0, 0]; //Questo rimane inalterato e lo utilizzo per ripristinare vm.dipendente.Profilo\r\n vm.OreSpeseSezione = 0;\r\n vm.list.attivita = [];\r\n\r\n vm.totaliC = [0, 0, 0, 0, 0, 0, 0, 0]; //Ore ordinario (l'ultima colonna è il totale per riga)\r\n vm.totaliCS = [0, 0, 0, 0, 0, 0, 0, 0]; //Ore straordinario (l'ultima colonna è il totale per riga)\r\n vm.totaliV = [0, 0, 0, 0, 0, 0, 0, 0]; //Ore viaggio (l'ultima colonna è il totale per riga)\r\n vm.totaliTR = [0, 0, 0, 0, 0, 0, 0, 0]; //Ore trasferta (l'ultima colonna è il totale per riga)\r\n vm.totaliG = [0, 0, 0, 0, 0, 0, 0, 0]; //Ore giustificativi (l'ultima colonna è il totale per riga)\r\n vm.totali = [0, 0, 0, 0, 0, 0, 0, 0]; //Totali complessivi (l'ultima colonna è il totale per riga) \r\n vm.causali = [{ Name: $translate.instant('O-Ordinario'), Id: 1 }, { Name: $translate.instant('V-OreDiViaggio'), Id: 2 }, { Name: $translate.instant('S-Straordinario'), Id: 3 }, { Name: $translate.instant('TR-Trasferta'), Id: 4 }, { Name: $translate.instant('SW-SmartWorking'), Id: 5 }];\r\n\r\n //Metodi su interfaccia\r\n vm.commessaChanged = commessaChanged;\r\n vm.sezioneChanged = sezioneChanged;\r\n vm.clearCommessa = clearCommessa;\r\n vm.attivitaChanged = attivitaChanged;\r\n\r\n vm.giustChanged = giustChanged;\r\n vm.getCommesse = getCommesse;\r\n vm.addRigaC = addRigaC;\r\n vm.delRigaC = delRigaC;\r\n vm.addRigaG = addRigaG;\r\n vm.delRigaG = delRigaG;\r\n vm.defaultRigaC = defaultRigaC;\r\n vm.next = next;\r\n vm.prev = prev;\r\n vm.selezionaDipendente = selezionaDipendente;\r\n vm.annullaDipendente = annullaDipendente;\r\n vm.getTimeSheet = getTimeSheet;\r\n vm.saveTimeSheet = saveTimeSheet;\r\n vm.deleteTimeSheet = deleteTimeSheet;\r\n vm.printTimeSheet = printTimeSheet;\r\n vm.convalidaTimeSheet = convalidaTimeSheet;\r\n\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n vm.loading = true;\r\n var promises = [getListGiustificativi(), getHolidays()];\r\n common.activateController(promises, controllerId).then(function () {\r\n datacontext.timeSheet_getDate().then(function (data) {\r\n if (data)\r\n vm.fAnno = new Date(data).getFullYear();\r\n\r\n if ($routeParams.DipendenteId != null && $routeParams.Data != null) {\r\n var d = $filter('date')($routeParams.Data, 'dd/MM/yyyy');\r\n vm.fAnno = new Date($routeParams.Data).getFullYear();\r\n datacontext.timeSheet_getWeekByDate(d).then(function (week) {\r\n if (week) {\r\n vm.fSettimana = week;\r\n if (vm.fAnno == 2019 && (new Date(data).getDate() == 30 || new Date(data).getDate() == 31) && new Date(data).getMonth() + 1 == 12)\r\n vm.fAnno = 2020;\r\n }\r\n getDipendente($routeParams.DipendenteId).then(function () {\r\n getTimeSheet();\r\n });\r\n });\r\n\r\n } else {\r\n datacontext.timeSheet_getWeek().then(function (week) {\r\n if (week) {\r\n vm.fSettimana = week;\r\n vm.currentWeek = week;\r\n\r\n if (vm.fAnno == 2019 && (new Date(data).getDate() == 30 || new Date(data).getDate() == 31) && new Date(data).getMonth() + 1 == 12)\r\n vm.fAnno = 2020;\r\n }\r\n\r\n getDipendente().then(function () {\r\n getTimeSheet();\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function getDipendente(id) {\r\n if ($rootScope.isAuthorized('USER') || !id)\r\n id = $rootScope.id ? $rootScope.id : 0;\r\n\r\n return datacontext.dipendente_get(id).then(function (data) {\r\n vm.dipendente = data;\r\n vm.dipendente.Profilo = [0, 0, 0, 0, 0, 0, 0];\r\n if (data.ProfiloOreId) {\r\n\t\t\t\t\tdatacontext.profiloOre_get(data.ProfiloOreId).then(function (profilo) {\r\n if (profilo) {\r\n vm.dipendente.ProfiloOreDescrizione = profilo.Descrizione;\r\n vm.dipendente.Profilo[0] = vm.profilo[0] = profilo.Ore1;\r\n vm.dipendente.Profilo[1] = vm.profilo[1] = profilo.Ore2;\r\n vm.dipendente.Profilo[2] = vm.profilo[2] = profilo.Ore3;\r\n vm.dipendente.Profilo[3] = vm.profilo[3] = profilo.Ore4;\r\n vm.dipendente.Profilo[4] = vm.profilo[4] = profilo.Ore5;\r\n vm.dipendente.Profilo[5] = vm.profilo[5] = profilo.Ore6;\r\n vm.dipendente.Profilo[6] = vm.profilo[6] = profilo.Ore7;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n function getCommesse(index, ricerca) {\r\n return datacontext.commessa_getAllForTimeSheet(0, 0, ricerca, -1, -1, 'codice').then(function (data) {\r\n if (Array.isArray(data) && data.length > 0) {\r\n return data;\r\n }\r\n return null;\r\n });\r\n }\r\n\r\n function commessaChanged(index, commessa) { \r\n vm.righeC[index].attivita = [];\r\n vm.righeC[index].sezioni = [];\r\n vm.righeC[index].cod_att = 0;\r\n vm.righeC[index].cdc = 0;\r\n vm.righeC[index].commessa = commessa.Codice + ' - ' + commessa.Titolo;\r\n\t\t\tvm.righeC[index].commessa_id = commessa.Id;\r\n\t\t\tconsole.log('ddd');\r\n\r\n if (commessa.Id != undefined) {\r\n\t\t\t\tif (!$rootScope.bSezioni) {\r\n\t\t\t\t\tgetListAttivita(index, commessa.Id, true).then(function(data) {\r\n\t\t\t\t\t\tvm.righeC[index].attivita = data;\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (data && data.length == 1)\r\n\t\t\t\t\t\t\tvm.righeC[index].cod_att = data[0].Id;\r\n\t\t\t\t\t});\t\t\t\t\t\r\n\t\t\t\t}\t\t\t\t\t\t\t\t\r\n\t\t\t\telse {\r\n\t\t\t\t\tgetListSezioni(index, commessa.Id).then(function (data) {\r\n\t\t\t\t\t\tvm.righeC[index].sezioni = data;\r\n\t\t\t\t\t\tif (data && data.length == 1)\r\n\t\t\t\t\t\t\tvm.righeC[index].cdc = data[0].Id;\r\n\t\t\t\t\t});\r\n\t\t\t\t} \r\n }\r\n }\r\n\r\n function clearCommessa(index) {\r\n if (!vm.righeC[index].commessa) {\r\n vm.righeC[index].attivita = null;\r\n vm.righeC[index].cod_att = null;\r\n vm.righeC[index].cdc = null;\r\n\r\n for (var i = 0; i < 6; i++) {\r\n\r\n if (vm.righeC[index].ore && vm.righeC[index].ore.length > 0) {\r\n vm.righeC[index].ore[i].ore_lavoro = 0;\r\n CBlur(i, index);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function sezioneChanged(index) {\r\n //vm.righeC[index].attivita = null; //Elenco attività\r\n //vm.righeC[index].cod_att = null; //Attività selezionata\r\n\r\n if (!vm.righeC[index].cdc) {\r\n for (var i = 0; i < 6; i++) {\r\n\r\n if (vm.righeC[index].ore && vm.righeC[index].ore.length > 0) {\r\n vm.righeC[index].ore[i].ore_lavoro = 0;\r\n CBlur(i, index);\r\n }\r\n }\r\n } else {\r\n //vm.righeC[index].attivita = getListAttivita(index, vm.righeC[index].cdc, true);\r\n }\r\n }\r\n\r\n function attivitaChanged(index, id) {\r\n if (!vm.righeC[index].cod_att) {\r\n for (var i = 0; i < 6; i++) {\r\n if (vm.righeC[index].ore && vm.righeC[index].ore.length > 0) {\r\n vm.righeC[index].ore[i].ore_lavoro = 0;\r\n CBlur(i, index);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function giustChanged(index, id) {\r\n var g = _.find(vm.list.giustificativi, function (o) { return o.Id == id });\r\n\r\n if (!g) {\r\n for (var i = 0; i < 6; i++) {\r\n\r\n if (vm.righeG[index].ore && vm.righeG[index].ore.length > 0) {\r\n vm.righeG[index].ore[i].ore_lavoro = 0;\r\n GBlur(i, index);\r\n }\r\n }\r\n } else {\r\n vm.righeG[index].commessa = g.Name.substring(0, 3);\r\n }\r\n }\r\n\r\n function getListSezioni(index, commessaId) {\r\n return datacontext.sezione_getAllListForTimeSheet(commessaId).then(function (data) {\r\n if (Array.isArray(data) && data.length > 0)\r\n return vm.righeC[index].sezioni = data;\r\n\r\n return null;\r\n });\r\n }\r\n\r\n function getListAttivita(index, commessaId, bAlert) {\r\n return datacontext.attivita_getAll(commessaId).then(function (data) {\r\n if (Array.isArray(data) && data.length > 0) {\r\n if (vm.righeC[index])\r\n return vm.righeC[index].attivita = data;\r\n }\r\n else {\r\n if (bAlert)\r\n logError($translate.instant('Nessuna attivita aperta per la commessa selezionata'));\r\n\r\n return [];\r\n }\r\n });\r\n }\r\n\r\n function getListGiustificativi() {\r\n return datacontext.giustificativo_getAllList().then(function (data) {\r\n return vm.list.giustificativi = data;\r\n });\r\n }\r\n\r\n function getHolidays() {\r\n return vm.holidays = datacontext.festivita_getAll().then(function (data) {\r\n return vm.holidays = data;\r\n });\r\n }\r\n\r\n function addRigaC() {\r\n var riga = {\r\n 'Id': 0,\r\n 'commessa': '',\r\n 'commessa_id': 0,\r\n 'cod_att': 0,\r\n 'cdc': 0,\r\n 'ore': [],\r\n 'Totale': 0,\r\n 'attivita': [],\r\n 'sezioni': [],\r\n 'Giustificativo': 0,\r\n 'causale': 1\r\n };\r\n\r\n if (!vm.date || vm.date.length == 0) {\r\n console.log('invalid dates');\r\n datacontext.timeSheet_getDatesOfWeek(vm.fAnno, vm.fSettimana).then(function (data) {\r\n vm.date = data;\r\n\r\n for (var i = 0; i <= 6; i++) {\r\n var ora = {};\r\n ora.n_giorno = i + 1;\r\n ora.ore_lavoro = 0;\r\n var data = new Date(vm.date[i]);\r\n ora.giorno = data.getDate();\r\n ora.mese = data.getMonth() + 1;\r\n ora.anno = data.getFullYear();\r\n riga.ore.push(ora);\r\n }\r\n vm.righeC.push(riga);\r\n });\r\n }\r\n else {\r\n for (var i = 0; i <= 6; i++) {\r\n var ora = {};\r\n ora.n_giorno = i + 1;\r\n ora.ore_lavoro = 0;\r\n var data = new Date(vm.date[i]);\r\n ora.giorno = data.getDate();\r\n ora.mese = data.getMonth() + 1;\r\n ora.anno = data.getFullYear();\r\n riga.ore.push(ora);\r\n }\r\n vm.righeC.push(riga);\r\n }\r\n }\r\n\r\n function delRigaC(index) {\r\n if (index == 0) {\r\n if (vm.righeC.length == 1) {\r\n vm.righeC = [];\r\n vm.list.attivita = [];\r\n addRigaC();\r\n }\r\n else return;\r\n }\r\n else {\r\n vm.list.attivita = [];\r\n var obj = vm.righeC[index];\r\n vm.righeC.splice(index, 1);\r\n }\r\n\r\n vm.totaliC[7] = 0;\r\n vm.totaliCS[7] = 0;\r\n vm.totaliV[7] = 0;\r\n vm.totaliTR[7] = 0;\r\n\r\n for (var i = 0; i <= 6; i++) {\r\n vm.totaliC[i] = 0;\r\n vm.totaliCS[i] = 0;\r\n vm.totaliV[i] = 0;\r\n vm.totaliTR[i] = 0;\r\n\r\n vm.righeC.forEach(function (item) {\r\n if (item.ore && item.ore.length > 0) {\r\n if (item.causale == 1 || item.causale == 5) { //Ordinario e Smart working\r\n vm.totaliC[i] += item.ore[i].ore_lavoro;\r\n vm.totaliC[i] = parseFloat(vm.totaliC[i].toFixed(2));\r\n }\r\n else if (item.causale == 3) { //Straordinario\r\n vm.totaliCS[i] += item.ore[i].ore_lavoro;\r\n vm.totaliCS[i] = parseFloat(vm.totaliCS[i].toFixed(2));\r\n }\r\n else if (item.causale == 2) { //Viaggio\r\n vm.totaliV[i] += item.ore[i].ore_lavoro;\r\n vm.totaliV[i] = parseFloat(vm.totaliV[i].toFixed(2));\r\n }\r\n else if (item.causale == 4) { //Trasferta\r\n vm.totaliTR[i] += item.ore[i].ore_lavoro;\r\n vm.totaliTR[i] = parseFloat(vm.totaliTR[i].toFixed(2));\r\n }\r\n }\r\n });\r\n\r\n\r\n vm.totaliC[7] += parseFloat(vm.totaliC[i].toFixed(2));\r\n vm.totaliCS[7] += parseFloat(vm.totaliCS[i].toFixed(2));\r\n vm.totaliV[7] += parseFloat(vm.totaliV[i].toFixed(2));\r\n vm.totaliTR[7] += parseFloat(vm.totaliTR[i].toFixed(2));\r\n\r\n vm.totali[i] = 0;\r\n vm.totali[i] = vm.totaliC[i] + vm.totaliCS[i] + vm.totaliG[i] + vm.totaliV[i] + vm.totaliTR[i];\r\n vm.totali[i] = parseFloat(vm.totali[i].toFixed(2));\r\n vm.totali[7] = vm.totaliC[7] + vm.totaliCS[7] + vm.totaliG[7] + vm.totaliV[7] + vm.totaliTR[7];\r\n }\r\n\r\n vm.totali[7] = vm.totaliC[7] + vm.totaliCS[7] + vm.totaliG[7] + vm.totaliV[7] + vm.totaliTR[7];\r\n }\r\n\r\n function addRigaG() {\r\n var riga = {\r\n 'commessa': null,\r\n 'ore': [],\r\n 'Totale': 0,\r\n 'Giustificativo': 1\r\n };\r\n\r\n if (!vm.date || vm.date.length == 0) {\r\n console.log('invalid dates');\r\n datacontext.timeSheet_getDatesOfWeek(vm.fAnno, vm.fSettimana).then(function (data) {\r\n vm.date = data;\r\n for (var i = 0; i <= 6; i++) {\r\n var ora = {};\r\n ora.n_giorno = i + 1;\r\n ora.ore_lavoro = 0;\r\n var data = new Date(vm.date[i]);\r\n\r\n ora.giorno = data.getDate();\r\n ora.mese = data.getMonth() + 1;\r\n ora.anno = data.getFullYear();\r\n riga.ore.push(ora);\r\n }\r\n vm.righeG.push(riga);\r\n });\r\n }\r\n else {\r\n for (var i = 0; i <= 6; i++) {\r\n var ora = {};\r\n ora.n_giorno = i + 1;\r\n ora.ore_lavoro = 0;\r\n var data = new Date(vm.date[i]);\r\n\r\n ora.giorno = data.getDate();\r\n ora.mese = data.getMonth() + 1;\r\n ora.anno = data.getFullYear();\r\n riga.ore.push(ora);\r\n }\r\n vm.righeG.push(riga);\r\n }\r\n }\r\n\r\n function delRigaG(index) {\r\n if (index == 0) {\r\n if (vm.righeG.length == 1) {\r\n vm.righeG = [];\r\n addRigaG();\r\n }\r\n else return;\r\n }\r\n else\r\n vm.righeG.splice(index, 1);\r\n\r\n for (var i = 0; i <= 6; i++) {\r\n vm.totaliG[i] = 0;\r\n vm.totaliG[7] = 0;\r\n vm.righeG.forEach(function (item) {\r\n if (item.ore && item.ore.length > 0) {\r\n vm.totaliG[i] += item.ore[i].ore_lavoro;\r\n vm.totaliG[i] = parseFloat(vm.totaliG[i].toFixed(2));\r\n vm.totaliG[7] += item.Totale;\r\n vm.totaliG[7] = parseFloat(vm.totaliG[7].toFixed(2));\r\n }\r\n });\r\n\r\n vm.totali[i] = 0;\r\n vm.totali[i] += vm.totaliC[i];\r\n vm.totali[i] += vm.totaliCS[i];\r\n vm.totali[i] += vm.totaliG[i];\r\n vm.totali[i] += vm.totaliV[i];\r\n vm.totali[i] += vm.totaliTR[i];\r\n vm.totali[7] = vm.totaliC[7] + vm.totaliCS[7] + vm.totaliG[7] + vm.totaliV[7] + vm.totaliTR[7];\r\n }\r\n }\r\n\r\n function CBlur(giorno, index) {\r\n vm.totaliC[giorno] = 0;\r\n vm.totaliCS[giorno] = 0;\r\n vm.totaliV[giorno] = 0;\r\n vm.totaliTR[giorno] = 0;\r\n vm.count = 0;\r\n vm.list.attivita = [];\r\n\r\n vm.righeC.forEach(function (item) {\r\n if (item.ore && item.ore.length > 0) {\r\n if (item.causale == 1 || item.causale == 5) { //Ordinario e Smart working\r\n vm.totaliC[giorno] += item.ore[giorno].ore_lavoro;\r\n vm.totaliC[giorno] = parseFloat(vm.totaliC[giorno].toFixed(2));\r\n }\r\n else if (item.causale == 3) { //Straordinario\r\n vm.totaliCS[giorno] += item.ore[giorno].ore_lavoro;\r\n vm.totaliCS[giorno] = parseFloat(vm.totaliCS[giorno].toFixed(2));\r\n }\r\n else if (item.causale == 2) { //Viaggio\r\n vm.totaliV[giorno] += item.ore[giorno].ore_lavoro;\r\n vm.totaliV[giorno] = parseFloat(vm.totaliV[giorno].toFixed(2));\r\n }\r\n else if (item.causale == 4) { //Trasferta\r\n vm.totaliTR[giorno] += item.ore[giorno].ore_lavoro;\r\n vm.totaliTR[giorno] = parseFloat(vm.totaliTR[giorno].toFixed(2));\r\n }\r\n }\r\n\r\n });\r\n\r\n //Totali per righe \r\n vm.righeC[index].Totale = 0;\r\n vm.righeC[index].ore.forEach(function (item) {\r\n if (item.ore_lavoro) {\r\n vm.righeC[index].Totale += item.ore_lavoro;\r\n vm.righeC[index].Totale = parseFloat(vm.righeC[index].Totale.toFixed(2));\r\n }\r\n });\r\n vm.totaliC[7] = 0;\r\n for (var i = 0; i <= 6; i++) {\r\n vm.totaliC[7] += vm.totaliC[i];\r\n };\r\n vm.totaliCS[7] = 0;\r\n for (var i = 0; i <= 6; i++) {\r\n vm.totaliCS[7] += vm.totaliCS[i];\r\n };\r\n //gestione viaggio\r\n vm.totaliV[7] = 0;\r\n for (var i = 0; i <= 6; i++) {\r\n vm.totaliV[7] += vm.totaliV[i];\r\n };\r\n //trasferta\r\n vm.totaliTR[7] = 0;\r\n for (var i = 0; i <= 6; i++) {\r\n vm.totaliTR[7] += vm.totaliTR[i];\r\n }\r\n\r\n vm.totaliC[7] = parseFloat(vm.totaliC[7].toFixed(2));\r\n vm.totaliCS[7] = parseFloat(vm.totaliCS[7].toFixed(2));\r\n vm.totaliV[7] = parseFloat(vm.totaliV[7].toFixed(2));\r\n vm.totaliTR[7] = parseFloat(vm.totaliTR[7].toFixed(2));\r\n\r\n AggiornaTotali(giorno);\r\n }\r\n\r\n function GBlur(giorno, index) {\r\n vm.totaliG[giorno] = 0;\r\n\r\n vm.righeG.forEach(function (item) {\r\n if (item.ore && item.ore.length > 0) {\r\n var x = String(item.ore[giorno].ore_lavoro).replace(',', '.');\r\n item.ore[giorno].ore_lavoro = parseFloat(x);\r\n vm.totaliG[giorno] += parseFloat(x);\r\n vm.totaliG[giorno] = parseFloat(vm.totaliG[giorno].toFixed(2));\r\n }\r\n });\r\n\r\n //Totali per righe\r\n vm.righeG[index].Totale = 0;\r\n if (vm.righeG[index].ore && vm.righeG[index].ore.length > 0) {\r\n vm.righeG[index].ore.forEach(function (item) {\r\n if (item.ore_lavoro) {\r\n vm.righeG[index].Totale += item.ore_lavoro;\r\n vm.righeG[index].Totale = parseFloat(vm.righeG[index].Totale.toFixed(2));\r\n }\r\n });\r\n }\r\n vm.totaliG[7] = 0;\r\n for (var i = 0; i <= 6; i++) {\r\n vm.totaliG[7] += vm.totaliG[i];\r\n };\r\n\r\n vm.totaliG[7] = parseFloat(vm.totaliG[7].toFixed(2));\r\n\r\n AggiornaTotali(giorno);\r\n }\r\n\r\n function AggiornaTotali(giorno) {\r\n vm.totali[giorno] = 0;\r\n vm.totali[giorno] += vm.totaliC[giorno];\r\n vm.totali[giorno] += vm.totaliCS[giorno];\r\n vm.totali[giorno] += vm.totaliG[giorno];\r\n vm.totali[giorno] += vm.totaliV[giorno]; //viaggio\r\n vm.totali[giorno] += vm.totaliTR[giorno]; //trasferta\r\n vm.totali[giorno] = parseFloat(vm.totali[giorno].toFixed(2));\r\n\r\n vm.totali[7] = vm.totaliC[7] + vm.totaliCS[7] + vm.totaliG[7] + vm.totaliV[7] + vm.totaliTR[7];\r\n }\r\n\r\n function defaultRigaC(index) {\r\n if (vm.dipendente.Profilo != null && vm.dipendente.Profilo.length > 0 && vm.righeC[index].commessa != null) {\r\n\t\t\t\tfor (var i = 0; i < 7; i++) {\r\n if (vm.righeC[index].ore && vm.righeC[index].ore.length > 0) {\r\n vm.righeC[index].ore[i].ore_lavoro = parseFloat(String(vm.dipendente.Profilo[i]).replace(\",\", \".\"));\r\n CBlur(i, index);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function getTimeSheet() {\r\n vm.loading = true;\r\n\r\n if (vm.fAnno < 0)\r\n vm.fAnno = new Date().getFullYear();\r\n\r\n if (vm.fAnno == 2020) {\r\n if (vm.fSettimana < 1 || vm.fSettimana > 53)\r\n vm.fSettimana = 1;\r\n }\r\n else {\r\n if (vm.fSettimana < 1 || vm.fSettimana > 52)\r\n vm.fSettimana = 1;\r\n }\r\n\r\n vm.fAnno = vm.fAnno; //Cosa volevo fare qui?\r\n vm.date = [];\r\n vm.giorni = [];\r\n vm.colFestivo = [];\r\n vm.attivita = [];\r\n vm.dbTM = {};\r\n\r\n //Ripristino il profilo orario\r\n for (var i = 0; i <= 7; i++)\r\n vm.dipendente.Profilo[i] = vm.profilo[i];\r\n\r\n datacontext.timeSheet_getDatesOfWeek(vm.fAnno, vm.fSettimana).then(function (data) {\r\n vm.date = data;\r\n\r\n getRiepilogo(data[0], data[6]);\r\n\r\n for (var i = 0; i <= 6; i++) {\r\n vm.giorni[i] = String(vm.date[i]);\r\n vm.inizio = String(vm.date[0]);\r\n vm.fine = String(vm.date[6]);\r\n\r\n //Verifica festivi\r\n vm.colFestivo[i] = false;\r\n\r\n var data = new Date(vm.date[i]);\r\n var giorno = data.getDate();\r\n var mese = data.getMonth() + 1;\r\n var anno = data.getFullYear();\r\n var check = null;\r\n check = _.find(vm.holidays, function (o) {\r\n return (o.giorno == giorno && o.mese == mese && (o.anno == 0 || o.anno == anno))\r\n });\r\n\r\n if (check != null) {\r\n vm.colFestivo[i] = true;\r\n vm.colTitle[i] = check.descrizione;\r\n if (vm.dipendente.Profilo)\r\n vm.dipendente.Profilo[i] = \"0,00\";\r\n }\r\n else {\r\n vm.colFestivo[i] = false;\r\n vm.colTitle[i] = '';\r\n }\r\n }\r\n });\r\n\r\n vm.totaliC = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totaliCS = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totaliV = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totaliTR = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totaliG = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totali = [0, 0, 0, 0, 0, 0, 0, 0];\r\n\r\n var status_sync = 0;\r\n\r\n\t\t\treturn datacontext.timeSheet_get(vm.dipendente.Id, vm.fAnno, vm.fSettimana).then(function (data) {\t\t\t\t\r\n if (data && data.Id) {\r\n angular.copy(data, vm.dbTM);\r\n\r\n var ordinario = _.filter(data.righe, { 'giustificativo': 0 });\r\n var straordinario = _.filter(data.righe, { 'giustificativo': 1 });\r\n\r\n if (ordinario && ordinario.length > 0) {\r\n vm.righeC = ordinario;\r\n for (var i = 0; i < vm.righeC.length; i++) {\r\n if (vm.righeC[i].ore) {\r\n vm.righeC[i].ore = _.sortBy(vm.righeC[i].ore, 'n_giorno');\r\n }\r\n\r\n if (!$rootScope.bSezioni) {\r\n if (vm.righeC[i].commessa != null && vm.righeC[i].commessa != undefined) \r\n vm.righeC[i].attivita = getListAttivita(i, vm.righeC[i].commessa_id, false); \r\n } else {\r\n if (vm.righeC[i].commessa != null && vm.righeC[i].commessa != undefined) \r\n vm.righeC[i].sezioni = getListSezioni(i, vm.righeC[i].commessa_id); \r\n }\r\n\r\n for (var j = 0; j <= 6; j++) {\r\n CBlur(j, i);\r\n if (vm.righeC[i].ore[j] && vm.righeC[i].ore.length > 0) {\r\n //Verifica sincronizzazione\r\n if (vm.righeC[i].ore[j].status_sync == 1 || vm.righeC[i].ore[j].status_sync == -1) {\r\n vm.righeC[i].validato = 1;\r\n status_sync = 1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n vm.righeC = [];\r\n addRigaC();\r\n }\r\n\r\n if (straordinario && straordinario.length > 0) {\r\n vm.righeG = straordinario;\r\n for (var i = 0; i < vm.righeG.length; i++) {\r\n if (vm.righeG[i].ore) {\r\n vm.righeG[i].ore = _.sortBy(vm.righeG[i].ore, 'n_giorno');\r\n }\r\n\r\n for (var j = 0; j <= 6; j++) {\r\n GBlur(j, i);\r\n }\r\n }\r\n }\r\n else {\r\n vm.righeG = [];\r\n addRigaG();\r\n }\r\n }\r\n else\r\n azzeraTimeSheet();\r\n\r\n vm.loading = false;\r\n vm.timeSheet = data;\r\n vm.timeSheet.tipo_ore = vm.dipendente.ProfiloOreId;\r\n vm.timeSheet.status_sync = status_sync;\r\n\r\n return vm.timeSheet;\r\n });\r\n }\r\n\r\n function getRiepilogo(dtInizio, dtFine) {\r\n return datacontext.timeSheet_getRiepilogoSettimanale(vm.dipendente.Id, dtInizio, dtFine).then(function (data) {\r\n if (data && data.length > 0)\r\n vm.opConvalida = data[0].OpConvalida;\r\n });\r\n }\r\n\r\n function next() {\r\n vm.timeSheetPrevious = angular.copy(vm.timeSheet);\r\n\r\n var x = vm.fSettimana + 1;\r\n if (vm.fAnno == 2020) {\r\n if (x > 53) {\r\n vm.fSettimana = 1;\r\n vm.fAnno++;\r\n }\r\n else\r\n vm.fSettimana++;\r\n }\r\n else {\r\n if (x > 52) {\r\n vm.fSettimana = 1;\r\n vm.fAnno++;\r\n }\r\n else\r\n vm.fSettimana++;\r\n }\r\n\r\n getTimeSheet().then(function (data) {\r\n if (vm.timeSheet.Id == 0 && vm.timeSheetPrevious.Id > 0) {\r\n var title = 'Importazione dati';\r\n var msg = 'Vuoi importare le commesse dalla settimana precedente?';\r\n bDialog.confirmationDialog(title, msg, 'OK', $translate.instant('Annulla')).then(function () { //YES\r\n var ordinario = _.filter(vm.timeSheetPrevious.righe, { 'giustificativo': 0 });\r\n if (ordinario && ordinario.length > 0) {\r\n for (var i = 0; i < ordinario.length; i++) {\r\n if (ordinario.length > vm.righeC.length)\r\n addRigaC();\r\n\r\n vm.righeC[i].commessa = ordinario[i].commessa;\r\n vm.righeC[i].commessa_id = ordinario[i].commessa_id;\r\n vm.righeC[i].causale = ordinario[i].causale;\r\n\r\n if (!$rootScope.bSezioni) {\r\n vm.righeC[i].cod_att = ordinario[i].cod_att;\r\n vm.righeC[i].attivita = ordinario[i].attivita;\r\n }\r\n else {\r\n vm.righeC[i].cdc = ordinario[i].cdc;\r\n vm.righeC[i].sezioni = ordinario[i].sezioni;\r\n }\r\n }\r\n }\r\n }, function (btn) { // NO\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n function prev() {\r\n var x = vm.fSettimana - 1;\r\n if (vm.fAnno == 2021) {\r\n if (x <= 0) {\r\n vm.fSettimana = 53;\r\n vm.fAnno--;\r\n }\r\n else\r\n vm.fSettimana--;\r\n }\r\n else {\r\n if (x <= 0) {\r\n vm.fSettimana = 52;\r\n vm.fAnno--;\r\n }\r\n else\r\n vm.fSettimana--;\r\n }\r\n\r\n getTimeSheet();\r\n }\r\n\r\n function azzeraTimeSheet() {\r\n vm.timeSheet = {};\r\n vm.timeSheet.Id = 0;\r\n vm.timeSheet.id_dipendente = vm.dipendente.Id;\r\n vm.timeSheet.tipo_ore = vm.dipendente.ProfiloOreId;\r\n vm.timeSheet.anno = vm.fAnno;\r\n vm.timeSheet.settimana = vm.fSettimana;\r\n\r\n vm.righeC = [];\r\n vm.righeG = [];\r\n vm.dbTM = [];\r\n vm.totaliC = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totaliCS = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totaliV = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totaliTR = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totaliG = [0, 0, 0, 0, 0, 0, 0, 0];\r\n vm.totali = [0, 0, 0, 0, 0, 0, 0, 0];\r\n addRigaC();\r\n addRigaG();\r\n }\r\n\r\n vm.filterKeydown = function (event, vm) {\r\n if (event.keyCode == 13) getTimeSheet();\r\n }\r\n\r\n // Selezione dipendente\r\n function selezionaDipendente() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/dipendenteSelect.html?version=30',\r\n controller: 'dipendenteSelect',\r\n windowClass: 'modal-wide',\r\n resolve: {}\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n getDipendente(returnItem.id).then(function () {\r\n getTimeSheet();\r\n });\r\n });\r\n }\r\n\r\n function annullaDipendente() {\r\n getDipendente($rootScope.Id).then(function () {\r\n getTimeSheet();\r\n });\r\n }\r\n\r\n function saveTimeSheet() {\r\n if (vm.loading)\r\n return;\r\n\r\n vm.break = false;\r\n vm.breakGiust = false;\r\n vm.checkDuplicato = false;\r\n vm.rigaVuota = false;\r\n\r\n vm.loading = true;\r\n\r\n vm.righeC.forEach(function (riga) {\r\n if (!$rootScope.bSezioni) {\r\n if (!riga.commessa_id || !riga.cod_att) {\r\n // riga registrazione ordinaria vuota\r\n if (!riga.commessa_id && !riga.cod_att)\r\n vm.rigaVuota = true;\r\n else\r\n vm.break = true;\r\n }\r\n } else {\r\n if (!riga.commessa_id || !riga.cdc) {\r\n // riga registrazione ordinaria vuota\r\n if (!riga.commessa_id && !riga.cdc)\r\n vm.rigaVuota = true;\r\n else\r\n vm.break = true;\r\n }\r\n }\r\n });\r\n\r\n\r\n vm.righeG.forEach(function (riga) {\r\n if (!riga.commessa_id)\r\n vm.breakGiust = true;\r\n });\r\n\r\n if ((vm.rigaVuota && vm.breakGiust) || vm.break) {\r\n if (!$rootScope.bSezioni)\r\n logError($translate.instant('IndicareCommessaEAttivita'));\r\n else\r\n logError($translate.instant('IndicareCommessaESezione'));\r\n vm.loading = false;\r\n return;\r\n }\r\n\r\n var duplicatiOrdinario = _.map(vm.righeC, function (o, i) {\r\n if (!$rootScope.bSezioni) {\r\n var obj = {\r\n commessa_id: o.commessa_id,\r\n cod_att: o.cod_att,\r\n causale: o.causale\r\n };\r\n\r\n var eq = _.find(vm.righeC, function (e, ind) {\r\n var obj2 = {\r\n commessa_id: e.commessa_id,\r\n cod_att: e.cod_att,\r\n causale: e.causale\r\n };\r\n if (i > ind) {\r\n return _.isEqual(obj2, obj);\r\n }\r\n });\r\n } else {\r\n var obj = {\r\n commessa_id: o.commessa_id,\r\n cdc: o.cdc,\r\n causale: o.causale\r\n };\r\n\r\n var eq = _.find(vm.righeC, function (e, ind) {\r\n var obj2 = {\r\n commessa_id: e.commessa_id,\r\n cdc: e.cdc,\r\n causale: e.causale\r\n };\r\n if (i > ind) {\r\n return _.isEqual(obj2, obj);\r\n }\r\n });\r\n }\r\n\r\n\r\n if (eq) {\r\n vm.checkDuplicato = true;\r\n }\r\n return obj;\r\n });\r\n\r\n /*var duplicatiGiust = _.map(vm.righeG, function (o, i) {\r\n var obj = {\r\n commessa_id: o.commessa_id\r\n };\r\n\r\n var eq = _.find(vm.righeG, function (e, ind) {\r\n var obj2 = {\r\n commessa_id: e.commessa_id\r\n };\r\n if (i > ind) {\r\n return _.isEqual(obj2, obj);\r\n }\r\n });\r\n\r\n if (eq) {\r\n vm.checkDuplicato = true;\r\n }\r\n return obj;\r\n });*/\r\n\r\n if (vm.checkDuplicato) {\r\n logError($translate.instant('Impossibile salvare: sono presenti righe duplicate'));\r\n vm.loading = false;\r\n return;\r\n }\r\n\r\n\r\n //Concatenazione righe\r\n vm.timeSheet.righe = vm.righeC.concat(vm.righeG);\r\n\t\t\treturn datacontext.timeSheet_save(vm.timeSheet).then(function (data) {\r\n\t\t\t\tconsole.dir(data);\r\n if (data && data.Id && data.Id > 0) {\r\n vm.timeSheet = data;\r\n angular.copy(data, vm.dbTM);\r\n var ordinario = _.filter(vm.timeSheet.righe, { 'giustificativo': 0 });\r\n var straordinario = _.filter(data.righe, { 'giustificativo': 1 });\r\n\r\n if (ordinario && ordinario.length > 0) {\r\n vm.righeC = ordinario;\r\n for (var i = 0; i < vm.righeC.length; i++) {\r\n if (!$rootScope.bSezioni) {\r\n if (vm.righeC[i].commessa != null && vm.righeC[i].commessa != undefined)\r\n vm.righeC[i].attivita = getListAttivita(i, vm.righeC[i].commessa_id, false);\r\n } else {\r\n if (vm.righeC[i].commessa != null && vm.righeC[i].commessa != undefined)\r\n vm.righeC[i].sezioni = getListSezioni(i, vm.righeC[i].commessa_id);\r\n }\r\n\r\n for (var j = 0; j <= 6; j++) {\r\n CBlur(j, i);\r\n\r\n //Verifica sincronizzazione\r\n if (vm.righeC[i].ore[j].status_sync == 1 || vm.righeC[i].ore[j].status_sync == -1) {\r\n vm.righeC[i].validato = 1;\r\n vm.timeSheet.status_sync = 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (straordinario && straordinario.length > 0) {\r\n vm.righeG = straordinario;\r\n for (var i = 0; i < vm.righeG.length; i++) {\r\n for (var j = 0; j <= 6; j++) {\r\n GBlur(j, i);\r\n }\r\n }\r\n }\r\n\r\n logSuccess($translate.instant('Dati salvati con successo'));\r\n }\r\n else\r\n logError($translate.instant('Errore durante il salvataggio dei dati'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function convalidaTimeSheet() {\r\n datacontext.validazioneTimeSheet_convalida(vm.timeSheet.Id, !vm.timeSheet.status).then(function (data) {\r\n if (!data) {\r\n logSuccess($translate.instant('Dati salvati'));\r\n getTimeSheet();\r\n }\r\n else {\r\n logError($translate.instant('Errore durante il salvataggio dei dati'));\r\n }\r\n });\r\n }\r\n\r\n function deleteTimeSheet() {\r\n if (vm.timeSheet.status_sync == 1)\r\n return;\r\n\r\n var msg = $translate.instant('il') + ' Timesheet';\r\n bDialog.deleteDialog(msg).then(function () {\r\n vm.loading = true;\r\n return datacontext.timeSheet_delete(vm.timeSheet.Id).then(function (data) {\r\n if (data == '200') {\r\n azzeraTimeSheet();\r\n logSuccess($translate.instant('Dati eliminati con successo'));\r\n }\r\n else {\r\n logError($translate.instant('Errore durante la cancellazione dei dati'));\r\n }\r\n vm.loading = false;\r\n });\r\n });\r\n }\r\n\r\n function printTimeSheet(bPDF) {\r\n if (vm.loading == true)\r\n return;\r\n\r\n vm.loading = true;\r\n datacontext.report_getTimeSheet(bPDF, vm.dipendente.Id, vm.fAnno, vm.fSettimana).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n }\r\n})();\r\n","// app/timeSheetMensile/timeSheetMensile.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'timeSheetMensile';\r\n angular.module('app').controller(controllerId, ['$rootScope', 'datacontext', 'common', 'sectionMenu', '_', 'moment', 'bootstrap.dialog', '$uibModal', '$translate', 'amMoment', 'tmhDynamicLocale', timeSheetMensileFn]);\r\n\r\n function timeSheetMensileFn($rootScope, datacontext, common, sectionMenu, _, moment, bDialog, $uibModal, $translate, amMoment, tmhDynamicLocale) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n var detectIE = $rootScope.detectIE;\r\n\r\n var vm = this;\r\n vm.title = 'TimeSheetMensile';\r\n vm.sectionMenu = sectionMenu.setSection(vm.title);\r\n vm.timeSheet = {};\r\n vm.list = {};\r\n vm.giorni = [];\r\n vm.gSett = [];\r\n vm.date = []; //Questo contiene le date da inserire nella tabella ore\r\n vm.colSabati = [];\r\n vm.colDomeniche = [];\r\n vm.colFestivo = [];\r\n vm.colTitle = [];\r\n\r\n vm.bSelDipendente = false;\r\n if ($rootScope.isAuthorized('PERSONALE') || $rootScope.isAuthorized('CAPOSEZIONE'))\r\n vm.bSelDipendente = true;\r\n\r\n vm.currentLanguage = $translate.proposedLanguage() || $translate.use();\r\n amMoment.changeLocale(vm.currentLanguage);\r\n tmhDynamicLocale.set(vm.currentLanguage);\r\n\r\n vm.righeC = [];\r\n vm.righeG = [];\r\n\r\n vm.dipendente = {};\r\n vm.dipendente.Profilo = [0, 0, 0, 0, 0, 0, 0];\r\n\r\n //Metodi su interfaccia\r\n vm.next = next;\r\n vm.prev = prev;\r\n vm.selezionaDipendente = selezionaDipendente;\r\n vm.annullaDipendente = annullaDipendente;\r\n vm.getTimeSheet = getTimeSheet;\r\n vm.printTimeSheet = printTimeSheet;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n vm.loading = true;\r\n var promises = [getDipendente(), getHolidays()];\r\n common.activateController(promises, controllerId).then(function () {\r\n datacontext.timeSheet_getDate().then(function (data) {\r\n if (data) {\r\n data = new Date(data);\r\n vm.fAnno = data.getFullYear();\r\n vm.fMese = data.getMonth() + 1;\r\n }\r\n\r\n getTimeSheet();\r\n });\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function getDipendente(id) {\r\n if ($rootScope.isAuthorized('USER') || !id)\r\n id = $rootScope.id ? $rootScope.id : 0;\r\n\r\n return datacontext.dipendente_get(id).then(function (data) {\r\n vm.dipendente = data;\r\n vm.dipendente.Profilo = [0, 0, 0, 0, 0, 0, 0];\r\n if (data.ProfiloOreId) {\r\n datacontext.profiloOre_get(data.ProfiloOreId).then(function (profilo) {\r\n if (profilo) {\r\n vm.dipendente.ProfiloOreDescrizione = profilo.Descrizione;\r\n vm.dipendente.Profilo[0] = profilo.Ore1;\r\n vm.dipendente.Profilo[1] = profilo.Ore2;\r\n vm.dipendente.Profilo[2] = profilo.Ore3;\r\n vm.dipendente.Profilo[3] = profilo.Ore4;\r\n vm.dipendente.Profilo[4] = profilo.Ore5;\r\n vm.dipendente.Profilo[5] = profilo.Ore6;\r\n vm.dipendente.Profilo[6] = profilo.Ore7;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n function getHolidays() {\r\n return vm.holidays = datacontext.festivita_getAll().then(function (data) {\r\n return vm.holidays = data;\r\n });\r\n }\r\n\r\n function getTimeSheet() {\r\n vm.loading = true;\r\n\r\n if (vm.fAnno < 0)\r\n vm.fAnno = new Date().getFullYear();\r\n if (vm.fMese < 1 || vm.fMese > 12)\r\n vm.fMese = 1;\r\n\r\n var dataFine = new Date(vm.fAnno, vm.fMese, 0);\r\n\r\n vm.date = [];\r\n vm.giorni = [];\r\n vm.gSett = [];\r\n vm.colFestivo = [];\r\n vm.colSabati = [];\r\n vm.colDomeniche = [];\r\n vm.righeC = [];\r\n vm.righeG = [];\r\n \r\n vm.rigaTotOrdinario = [];\r\n vm.TotaleOrdinario = 0;\r\n vm.rigaTotStraordinario = [];\r\n vm.TotaleStraordinario = 0;\r\n vm.rigaTotViaggio = [];\r\n vm.TotaleViaggio = 0;\r\n vm.rigaTotTrasferta = [];\r\n vm.TotaleTrasferta = 0;\r\n vm.rigaTotGiustificativi = [];\r\n vm.TotaleGiustificativi = 0;\r\n vm.rigaTot = [];\r\n vm.Totale = 0;\r\n \r\n for (var i = 0; i < dataFine.getDate() ; i++) {\r\n vm.rigaTotOrdinario.push({ \"id\": i, \"value\": 0 });\r\n vm.rigaTotStraordinario.push({ \"id\": i, \"value\": 0 });\r\n vm.rigaTotViaggio.push({ \"id\": i, \"value\": 0 });\r\n vm.rigaTotTrasferta.push({ \"id\": i, \"value\": 0 });\r\n vm.rigaTotGiustificativi.push({ \"id\": i, \"value\": 0 });\r\n vm.rigaTot.push({ \"id\": i, \"value\": 0 });\r\n\r\n vm.date[i] = moment().year(vm.fAnno).month(vm.fMese - 1).date(i + 1);\r\n vm.giorni[i] = String(vm.date[i].format('L')).substring(0, 5);\r\n vm.gSett[i] = String(vm.date[i].format('dddd')).substring(0, 3);\r\n if (vm.gSett[i] == 'Sab' || vm.gSett[i] == 'Sat')\r\n vm.colSabati[i] = true;\r\n else\r\n vm.colSabati[i] = false;\r\n if (vm.gSett[i] == 'Dom' || vm.gSett[i] == 'Sun')\r\n vm.colDomeniche[i] = true;\r\n else\r\n vm.colDomeniche[i] = false;\r\n\r\n vm.colFestivo[i] = false; \r\n\r\n var giorno = vm.date[i].date();\r\n var mese = vm.date[i].month() + 1;\r\n var anno = vm.date[i].year();\r\n var check = null;\r\n check = _.find(vm.holidays, function (o) {\r\n return (o.giorno == giorno && o.mese == mese && (o.anno == 0 || o.anno == anno))\r\n });\r\n\r\n if (check != null) {\r\n vm.colFestivo[i] = true;\r\n vm.colTitle[i] = check.descrizione; \r\n }\r\n else {\r\n vm.colFestivo[i] = false;\r\n vm.colTitle[i] = '';\r\n } \r\n }\r\n\r\n vm.inizio = vm.date[0].format('L');\r\n vm.fine = vm.date[dataFine.getDate() - 1].format('L');\r\n\r\n datacontext.timeSheet_getMensile(vm.dipendente.Id, vm.fAnno, vm.fMese).then(function (data) { \r\n if (data && data.length > 0) {\r\n var ordinario = _.chain(_.filter(data, { 'giustificativo': 0 })).groupBy(function (value) { return [value.commessa, value.item, value.sezione, value.cod_att, value.causale]; }).map(function (v, i) {\r\n var iArr = i.split(',');\r\n return {\r\n commessa: iArr[0],\r\n item: iArr[1],\r\n sezione: iArr[2],\r\n cod_att: iArr[3],\r\n causale: iArr[4],\r\n ore: v \r\n }\r\n }).value();\r\n \r\n var giustificativo = _.chain(_.filter(data, { 'giustificativo': 1 })).groupBy('tipoGiustificativo').map(function (v, i) {\r\n return {\r\n tipoGiustificativo: i,\r\n ore: v\r\n }\r\n }).value();\r\n\r\n if (ordinario && ordinario.length > 0) {\r\n vm.righeC = ordinario;\r\n //Segno le ore \r\n vm.righeC.forEach(function (rigaC) {\r\n var somma = 0;\r\n rigaC.oreC = [];\r\n for (var k = 0; k < dataFine.getDate() ; k++) {\r\n rigaC.oreC[k] = { 'id': k, 'value': 0 };\r\n } \r\n\r\n\r\n for (var i = 0; i < rigaC.ore.length; i++) {\r\n rigaC.oreC[rigaC.ore[i].giorno - 1].value = rigaC.ore[i].ore_lavoro;\r\n somma += rigaC.ore[i].ore_lavoro; \r\n }\r\n \r\n rigaC.Totale = somma; //Somma per riga\r\n rigaC.Totale = parseFloat(rigaC.Totale.toFixed(2));\r\n\r\n });\r\n } \r\n\r\n if (giustificativo && giustificativo.length > 0) {\r\n vm.righeG = giustificativo;\r\n //Segno le ore \r\n vm.righeG.forEach(function (rigaG) {\r\n var somma = 0;\r\n rigaG.oreG = [];\r\n for (var k = 0; k < dataFine.getDate() ; k++)\r\n rigaG.oreG[k] = { 'id': k, 'value': 0 };\r\n\r\n for (var i = 0; i < rigaG.ore.length; i++) {\r\n /*if (rigaG.ore[i].trasferta == 0) {*/\r\n rigaG.oreG[rigaG.ore[i].giorno - 1].value = rigaG.ore[i].ore_lavoro;\r\n somma += rigaG.ore[i].ore_lavoro;\r\n //}\r\n }\r\n rigaG.Totale = somma;\r\n rigaG.Totale = parseFloat(rigaG.Totale.toFixed(2));\r\n });\r\n }\r\n }\r\n\r\n //Righe totali \r\n datacontext.timeSheet_getRiepilogo(vm.dipendente.Id, vm.fAnno, vm.fMese).then(function (data) { \r\n if (data && data.length > 0) { \r\n data.forEach(function (item) { \r\n var g = moment(item.Data).date() - 1;\r\n \r\n vm.rigaTotOrdinario[g].value = item.Ordinario;\r\n vm.TotaleOrdinario += item.Ordinario;\r\n vm.rigaTotStraordinario[g].value = item.Straordinario;\r\n vm.TotaleStraordinario += item.Straordinario;\r\n vm.rigaTotViaggio[g].value = item.Viaggio;\r\n vm.TotaleViaggio += item.Viaggio;\r\n vm.rigaTotTrasferta[g].value = item.Trasferta;\r\n vm.TotaleTrasferta += item.Trasferta;\r\n vm.rigaTotGiustificativi[g].value = item.Giustificativi;\r\n vm.TotaleGiustificativi += item.Giustificativi;\r\n vm.rigaTot[g].value = item.Ordinario + item.Straordinario + item.Viaggio + item.Trasferta + item.Giustificativi;\r\n vm.Totale += item.Ordinario + item.Straordinario + item.Viaggio + item.Trasferta + item.Giustificativi;\r\n });\r\n } \r\n }); \r\n \r\n vm.loading = false;\r\n });\r\n } \r\n\r\n function next() {\r\n var x = vm.fMese + 1;\r\n if (x > 12) {\r\n vm.fMese = 1;\r\n vm.fAnno++;\r\n }\r\n else\r\n vm.fMese++;\r\n\r\n getTimeSheet();\r\n }\r\n\r\n function prev() {\r\n var x = vm.fMese - 1;\r\n if (x <= 0) {\r\n vm.fMese = 12;\r\n vm.fAnno--;\r\n }\r\n else\r\n vm.fMese--;\r\n\r\n getTimeSheet();\r\n }\r\n\r\n vm.filterKeydown = function (event, vm) {\r\n if (event.keyCode == 13) getTimeSheet();\r\n }\r\n\r\n // Selezione dipendente\r\n function selezionaDipendente() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/dipendenteSelect.html?version=30',\r\n controller: 'dipendenteSelect',\r\n windowClass: 'modal-wide',\r\n resolve: {}\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n getDipendente(returnItem.id).then(function () {\r\n getTimeSheet();\r\n });\r\n });\r\n }\r\n\r\n function annullaDipendente() {\r\n getDipendente($rootScope.Id).then(function () {\r\n getTimeSheet();\r\n });\r\n }\r\n\r\n function printTimeSheet(bPDF) {\r\n if (vm.loading == true)\r\n return;\r\n\r\n vm.loading = true; \r\n datacontext.report_getTimeSheetMensile(bPDF, vm.dipendente.Id, vm.fAnno, vm.fMese).then(function (data) {\r\n if (data && data.url) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute('style', 'display:none');\r\n a.setAttribute(\"target\", \"_blank\");\r\n document.body.appendChild(a);\r\n a.href = data.url;\r\n a.click();\r\n document.body.removeChild(a);\r\n vm.url = data.url;\r\n }\r\n else\r\n logError($translate.instant('Impossibile scaricare il file'));\r\n\r\n vm.loading = false;\r\n });\r\n }\r\n }\r\n})();","// app/user/user.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'user';\r\n angular.module('app').controller(controllerId, ['common', 'bootstrap.dialog', '$rootScope', '$scope', '$routeParams', '$uibModal', '$location', 'datacontext', 'sectionMenu', user]);\r\n\r\n function user(common, bDialog, $rootScope, $scope, $routeParams, $uibModal, $location, datacontext, sectionMenu) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard\r\n var vm = this, onRouteChangeOff;\r\n vm.title = 'Utenti';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection(vm.title);\r\n\r\n vm.objName = \"User\"; //Utilizzato per pannello modale\r\n vm.showObjPanel = false;\r\n vm.record = {};\r\n vm.risorsa = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.custom = false;\r\n vm.addDisabled = !$rootScope.isAuthorized('SUPER') && !$rootScope.isAuthorized('PERSONALE');\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n\r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['username', 'email', 'data attivazione desc'];\r\n vm.ordine = vm.list.ordine[2];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n vm.item = {};\r\n\r\n //Elenchi dettaglio\r\n vm.list.ruoli = [];\r\n vm.list.gruppoAmm = [];\r\n vm.list.gruppoDid = [];\r\n vm.ruoli = [];\r\n vm.list.aziende = [];\r\n vm.list.dipendenti = [];\r\n\r\n vm.getRecord = getRecord;\r\n vm.getListRuoli = getListRuoli;\r\n vm.deleteRuolo = deleteRuolo;\r\n vm.getRuoli = getRuoli;\r\n vm.addRuolo = addModalRole;\r\n\r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.bAttivo = vm.fBAttivo = 1;\r\n vm.filter.username = vm.fUsername = '';\r\n vm.filter.email = vm.fEmail = '';\r\n vm.filter.ruolo = vm.fRuolo = '';\r\n\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n //Metodi su interfaccia\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll;\r\n vm.get = getRecord;\r\n vm.add = addModal;\r\n vm.addRole = addModalRole;\r\n vm.update = updateItem;\r\n vm.updatePassword = updatePassword;\r\n vm.activate = setActive;\r\n vm.deactivate = setDeactive;\r\n vm.resetPassword = resetPassword;\r\n vm.invioCredenziali = invioCredenziali;\r\n vm.delete = deleteItem;\r\n vm.selezionaDipendente = selezionaDipendente;\r\n vm.annullaDipendente = annullaDipendente;\r\n vm.confirmRoute = confirmRoute;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getRuoli(), getAziende()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n if ($routeParams.UserId != null) {\r\n setView('detail');\r\n getRecord($routeParams.UserId, 0);\r\n }\r\n\r\n });\r\n }\r\n\r\n //****************************************************\r\n /*CONFIRM SAVE BEFORE CHANGE ROUTE */\r\n //****************************************************\r\n function init() {\r\n //initialize data here.. \r\n vm.item.editForm = false;\r\n\r\n //Make sure they\"re warned if they made a change but didn\"t save it\r\n //Call to $on returns a \"deregistration\" function that can be called to\r\n //remove the listener (see routeChange() for an example of using it)\r\n onRouteChangeOff = $scope.$on(\"$locationChangeStart\", routeChange);\r\n }\r\n init();\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n\r\n if (!vm.filter.ruoloId) vm.filter.ruoloId = 0;\r\n if (!vm.filter.aziendaId) vm.filter.aziendaId = 0;\r\n\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.super_user_countAll(vm.filter.ricerca, vm.filter.bAttivo, vm.filter.aziendaId, vm.filter.ruoloId).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.super_user_getAll(vm.pageSize, vm.page, vm.filter.ricerca, vm.filter.bAttivo, vm.filter.aziendaId, vm.filter.ruoloId, vm.ordine).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data);\r\n }\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function getRecord(id, index) {\r\n return datacontext.user_get(id).then(function (data) {\r\n vm.index = index;\r\n vm.record = data;\r\n\r\n vm.record.DtAttivazione = common.dateToString(vm.record.DtAttivazione);\r\n\r\n //Azzera liste\r\n vm.list.ruoli = [];\r\n vm.record.Password = '';\r\n vm.confPassword = '';\r\n vm.strDipendente = '';\r\n\r\n //Ottengo tutti i dipendenti e il relativo nominativo\r\n getDipendenti();\r\n\r\n getListRuoli(vm.record.Id)\r\n\r\n setView('detail');\r\n });\r\n }\r\n\r\n function addRecord(id) {\r\n return datacontext.user_get(id).then(function (data) {\r\n vm.records.push(data);\r\n vm.countRecords++;\r\n });\r\n }\r\n\r\n function updateItem() {\r\n vm.record.DtAttivazione = common.stringToDate(vm.record.DtAttivazione);\r\n return datacontext.user_update(vm.record).then(function (data) {\r\n if (!data) {\r\n if (vm.recordForm)\r\n vm.recordForm.$setPristine();\r\n vm.record.DtAttivazione = common.dateToString(vm.record.DtAttivazione);\r\n logSuccess('Dato salvato');\r\n }\r\n else\r\n logError('Impossibile salvare il dato');\r\n });\r\n }\r\n\r\n function updatePassword() {\r\n if (vm.record.Password != vm.confPassword) {\r\n logError('Le due password devono coincidere');\r\n return;\r\n }\r\n\r\n vm.record.DtAttivazione = common.stringToDate(vm.record.DtAttivazione);\r\n return datacontext.user_update(vm.record).then(function (data) {\r\n if (!data) {\r\n vm.record.DtAttivazione = common.dateToString(vm.record.DtAttivazione);\r\n logSuccess('Dato salvato');\r\n }\r\n else\r\n logError('Impossibile salvare il dato');\r\n });\r\n }\r\n\r\n function confirmRoute(event, newUrl) {\r\n var attempt = true;\r\n\r\n if (vm.recordForm)\r\n vm.item.editForm = vm.recordForm.$dirty;\r\n\r\n if (vm.item.editForm) {\r\n bDialog.confirmationDialog('Modifiche non salvate', 'Sono presenti modifiche non salvate. Vuoi salvare le modifiche?', 'Salva modifiche e procedi', 'Annulla modifiche e procedi').then(function () { //YES\r\n if (vm.recordForm.$valid) {\r\n vm.update(vm.recordForm.$event);\r\n\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/user\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n return attempt;\r\n } else {\r\n logError('Compilare i campi obbligatori');\r\n return attempt;\r\n }\r\n }, function (btn) { // NO\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n\r\n if (newUrl == '') {\r\n $location.url(\"/user\");\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n\r\n vm.change = 0;\r\n return attempt;\r\n });\r\n }\r\n else {\r\n attempt = false;\r\n vm.item.editForm = false;\r\n onRouteChangeOff(); //Stop listening for location changes\r\n if (newUrl == '') {\r\n $location.url(\"/user\");\r\n\r\n vm.index = 0;\r\n }\r\n else\r\n $location.path($location.url(newUrl).hash()); //Go to page they're interested in \r\n }\r\n\r\n return attempt;\r\n }\r\n\r\n function routeChange(event, newUrl, oldUrl) {\r\n vm.change++;\r\n if (vm.change == 1) {\r\n if (confirmRoute(event, newUrl, vm.recordForm)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n function setActive(id, index) {\r\n return datacontext.user_activate(id).then(function (data) {\r\n if (!data) {\r\n vm.index = index;\r\n vm.record = data;\r\n logSuccess('Dato salvato');\r\n }\r\n else\r\n logError('Impossibile salvare il dato');\r\n });\r\n }\r\n\r\n function setDeactive(id, index) {\r\n return datacontext.user_deactivate(id).then(function (data) {\r\n if (!data) {\r\n vm.index = index;\r\n vm.record = data;\r\n logSuccess('Dato salvato');\r\n }\r\n else\r\n logError('Impossibile salvare il dato');\r\n });\r\n }\r\n\r\n //Manda una email all'utente con un link di accesso al Reset Password\r\n //dove l'utente pu� inserire una nuova password per il suo account\r\n function resetPassword(item, index) {\r\n var msg = ' Inviare Email per il Reset della password all\\'utente ' + item.Username;\r\n bDialog.confirmationDialog('Attenzione', msg, 'OK').then(\r\n function () { //YES\r\n return datacontext.user_resetPassword(item.Email).then(function (data) {\r\n console.log(data);\r\n if (data != \"204\") return logError('Errore!!!');\r\n\r\n logSuccess('Operazione effettuata con successo! ');\r\n vm.index = index;\r\n });\r\n },\r\n function () { //NO\r\n //vm.record.Completed = false;\r\n });\r\n }\r\n\r\n function invioCredenziali(item, index) {\r\n var msg = ' Inviare Email con le Nuove Credenziali dell\\'utente ' + item.Username;\r\n bDialog.confirmationDialog('Attenzione', msg, 'OK').then(\r\n function () { //YES\r\n return datacontext.user_invioCredenziali(' ', item.Email).then(function (data) {\r\n console.log(data);\r\n if (data != \"204\") return logError('Impossibile eseguire l\\'operazione');\r\n\r\n logSuccess('Operazione effettuata con successo! ');\r\n vm.index = index;\r\n });\r\n },\r\n function () { //NO\r\n //\r\n });\r\n }\r\n\r\n function deleteItem(item) {\r\n var msg = ' l\\'utente ' + item.Username;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.user_delete(item.Id).then(function (data) {\r\n if (data != \"204\") return logError('Errore durante la rimozione del dato');\r\n\r\n var index = vm.records.indexOf(item)\r\n vm.records.splice(index, 1);\r\n vm.countRecords--;\r\n });\r\n });\r\n }\r\n\r\n //Elenchi dettagli\r\n function getAziende() {\r\n return datacontext.azienda_getAll(0, 0, '', '').then(function (data) {\r\n return vm.list.aziende = data;\r\n });\r\n }\r\n\r\n function getRuoli() {\r\n return datacontext.role_getAllList().then(function (data) {\r\n return vm.ruoli = data;\r\n });\r\n }\r\n\r\n function getListRuoli(id) {\r\n return datacontext.userRole_getAll(id).then(function (data) {\r\n return vm.list.ruoli = data;\r\n });\r\n }\r\n\r\n function deleteRuolo(item) {\r\n if (vm.list.ruoli.length == 1) {\r\n logError('L\\'utente deve avere almeno un ruolo');\r\n return;\r\n }\r\n\r\n var msg = ' Ruolo ' + item.Etichetta + ' per l utente ' + vm.record.Username;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.userRole_delete(vm.record.Id, item.Id).then(function (data) {\r\n if (data != \"204\") return logError('Errore durante la rimozione del dato');\r\n\r\n var index = vm.list.ruoli.indexOf(item)\r\n vm.list.ruoli.splice(index, 1);\r\n });\r\n });\r\n }\r\n\r\n //Dipendenti-list\r\n function getDipendenti() {\r\n return datacontext.azienda_get(vm.record.AziendaId).then(function (azienda) {\r\n return datacontext.dipendente_getAllByDB(azienda.DB).then(function (dip) {\r\n vm.list.dipendenti = dip;\r\n\r\n if (vm.record.DipendenteId && vm.record.DipendenteId != 0) {\r\n var d = _.find(vm.list.dipendenti, { 'Id': vm.record.DipendenteId })\r\n if (d) vm.strDipendente = d.Nominativo;\r\n }\r\n\r\n return vm.list.dipendenti;\r\n });\r\n });\r\n }\r\n\r\n // Selezione dipendente\r\n function selezionaDipendente() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/dipendente/modal/dipendenteSelectSuper.html?version=30',\r\n controller: 'dipendenteSelectSuper',\r\n windowClass: 'modal-wide',\r\n resolve: {\r\n dipendenti: function () {\r\n return vm.list.dipendenti;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (returnItem) {\r\n vm.record.DipendenteId = returnItem.id;\r\n vm.strDipendente = returnItem.nominativo;\r\n updateItem();\r\n });\r\n }\r\n\r\n function annullaDipendente() {\r\n vm.record.DipendenteId = 0;\r\n vm.strDipendente = '';\r\n updateItem();\r\n }\r\n\r\n //****************************************************\r\n // OPEN MODAL DIALOG\r\n //****************************************************\r\n function addModal() {\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/user/modal/userAdd.html?version=30',\r\n controller: 'userAdd',\r\n resolve: {\r\n ruoli: function () {\r\n return vm.ruoli;\r\n },\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la creazione del dato ');\r\n\r\n logSuccess('Record creato con successo ');\r\n addRecord(returnItem.Id);\r\n getListRuoli(returnItem.Id);\r\n });\r\n };\r\n\r\n function addModalRole() {\r\n var record = { Id: vm.record.Id, Name: vm.record.Username };\r\n\r\n //Ruolo\r\n var modalInstance = $uibModal.open({\r\n backdrop: 'static',\r\n keyboard: false,\r\n templateUrl: '/app/user/modal/userRoleAdd.html?version=30',\r\n controller: 'userRoleAdd',\r\n resolve: {\r\n risorse: function () {\r\n return [record];\r\n },\r\n risorsaId: function () {\r\n return vm.record.Id;\r\n },\r\n ruoli: function () {\r\n return vm.ruoli;\r\n },\r\n ruoloId: function () {\r\n return null;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (returnItem) {\r\n if (!returnItem) return logError('Errore durante la creazione del dato ');\r\n\r\n logSuccess('Record creato con successo ');\r\n getListRuoli(vm.record.Id);\r\n });\r\n };\r\n }\r\n})();\r\n","// app/validaTimeSheet/validaTimeSheet.js\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'validaTimeSheet';\r\n angular.module('app').controller(controllerId, ['$rootScope', 'datacontext', 'common', 'sectionMenu', '_', 'moment', 'bootstrap.dialog', '$uibModal', '$filter', '$location', validaTimeSheetFn]);\r\n\r\n function validaTimeSheetFn($rootScope, datacontext, common, sectionMenu, _, moment, bDialog, $uibModal, $filter, $location) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n $rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n var detectIE = $rootScope.detectIE;\r\n\r\n var vm = this;\r\n vm.title = 'Validazione Timesheet';\r\n vm.view = 'list'; //Opzione list or detail\r\n vm.setView = setView;\r\n vm.sectionMenu = sectionMenu.setSection('ValidaTimeSheet');\r\n vm.record = {};\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.index = 0;\r\n vm.addDisabled = true;\r\n vm.exportDisabled = false;\r\n vm.pageSize = 30;\r\n vm.page = 1;\r\n vm.loading = false;\r\n\r\n vm.super = $rootScope.isAuthorized('SUPER');\r\n vm.personale = $rootScope.isAuthorized('PERSONALE');\r\n vm.valida = true;\r\n\r\n //Elenco per Ordinamento\r\n vm.list = {};\r\n vm.list.ordine = ['Nominativo', 'Matricola', 'Sezione', 'Data crescente', 'Data decrescente'];\r\n vm.ordine = vm.list.ordine[0];\r\n vm.selectOrdine = function (item) {\r\n vm.ordine = item;\r\n vm.cerca();\r\n };\r\n\r\n //Elenchi dettaglio\r\n vm.list.sezioni = [];\r\n vm.list.profili = []; //Profili orari del dipendente\r\n vm.list.profiloOre = []; //Elenco profili orari generale\r\n\r\n //Filtro\r\n vm.filter = {};\r\n vm.filter.stato = vm.fStato = 1;\r\n vm.filter.convalidato = vm.fConvalidato = 0\r\n vm.filter.sezione = vm.fSezione = 0;\r\n vm.filter.ricerca = vm.fRicerca = '';\r\n vm.fData = new Date();\r\n vm.filter.data = $filter('date')(vm.fData, 'dd/MM/yyyy');\r\n //var d = new Date();\r\n //vm.filter.data = vm.fData = '';\r\n\r\n //Configurazione calendario\r\n vm.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n vm.format = 'dd/MM/yyyy';\r\n\r\n vm.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened = !vm.opened;\r\n vm.opened1 = false;\r\n };\r\n\r\n vm.open1 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n vm.opened1 = !vm.opened1;\r\n vm.opened = false;\r\n };\r\n\r\n //Metodi su interfaccia\r\n vm.prevDay = prevDay;\r\n vm.nextDay = nextDay;\r\n vm.cerca = cerca;\r\n vm.loadMore = getAllByFilter;\r\n vm.loadAll = getAll;\r\n vm.notifica = notifica;\r\n vm.notificaTutti = notificaTutti;\r\n\r\n // ---- ACTIVATE -------\r\n activate();\r\n\r\n function activate() {\r\n var promises = [getSezioni(), getProfiloOre()];\r\n common.activateController(promises, controllerId)\r\n .then(function () {\r\n datacontext.timeSheet_getDate().then(function (data) {\r\n if (data) {\r\n //d = new Date(data);\r\n //vm.fData = $filter('date')(d, 'dd/MM/yyyy');\r\n }\r\n });\r\n //if ($routeParams.DipendenteId != null) {\r\n // setView('detail');\r\n // getRecord($routeParams.DipendenteId, 0);\r\n //}\r\n });\r\n }\r\n\r\n //****************************************************\r\n // METODI \r\n //****************************************************\r\n function setView(view) {\r\n return vm.view = view;\r\n }\r\n\r\n function cerca() {\r\n vm.records = [];\r\n vm.countRecords = 0;\r\n vm.page = 1;\r\n vm.filter.convalidato = vm.fConvalidato == null ? 1 : vm.fConvalidato;\r\n vm.filter.stato = vm.fStato == null ? 0 : vm.fStato;\r\n vm.filter.sezione = vm.fSezione == null ? 0 : vm.fSezione;\r\n vm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n vm.filter.data = vm.fData == null ? '' : $filter('date')(vm.fData, 'dd/MM/yyyy');\r\n vm.loading = false;\r\n countByFilter();\r\n return getAllByFilter();\r\n }\r\n\r\n function countByFilter() {\r\n return datacontext.validazioneTimeSheet_countAll(vm.filter.convalidato, vm.filter.stato, vm.filter.sezione, vm.filter.data, vm.filter.ricerca).then(function (data) {\r\n if (data) {\r\n vm.countRecords = data;\r\n }\r\n });\r\n }\r\n\r\n function getAllByFilter() {\r\n if (vm.loading === true) return;\r\n\r\n if (vm.countRecords == 0) countByFilter();\r\n else if (vm.countRecords <= vm.records.length) return;\r\n\r\n vm.loading = true;\r\n return datacontext.validazioneTimeSheet_getAll(vm.pageSize, vm.page, vm.filter.convalidato, vm.filter.stato, vm.filter.sezione, vm.filter.data, vm.filter.ricerca, vm.ordine).then(function (data) {\r\n if (data.constructor === Array) {\r\n vm.page++;\r\n vm.records.push.apply(vm.records, data);\r\n }\r\n vm.loading = false;\r\n });\r\n }\r\n\r\n function getAll() {\r\n if (vm.records.length < vm.countRecords) {\r\n getAllByFilter().then(function () { getAll(); });\r\n }\r\n }\r\n\r\n function notifica(id) {\r\n datacontext.pushNotification_add(id, \"L' utente %nominativo% richiede l'indicazione delle ore lavorate.\").then(function (data) {\r\n if (!data)\r\n logSuccess(\"Notifica inviata\");\r\n else\r\n logError(\"Errore durante l'invio della notifica\");\r\n });\r\n\r\n }\r\n\r\n function notificaTutti() {\r\n var message = \"L' utente %nominativo% richiede l'indicazione delle ore lavorate.\";\r\n datacontext.validazioneTimeSheet_notificaTutti(0, $filter('date')(vm.fData, 'dd/MM/yyyy'), vm.fRicerca, message).then(function (data) {\r\n if (data == true)\r\n logSuccess(\"Notifica inviata\");\r\n else\r\n logError(\"Errore durante l'invio delle notifiche\");\r\n });\r\n }\r\n\r\n //Metodi su interfaccia\r\n function prevDay() {\r\n var data = new Date(vm.fData);\r\n data.setDate(data.getDate() - 1);\r\n vm.fData = data;\r\n cerca();\r\n }\r\n\r\n function nextDay() {\r\n var data = new Date(vm.fData);\r\n data.setDate(data.getDate() + 1);\r\n vm.fData = data;\r\n cerca();\r\n }\r\n\r\n //Get list\r\n function getSezioni() {\r\n return datacontext.sezione_getAllList().then(function (data) {\r\n return vm.list.sezioni = data;\r\n });\r\n }\r\n\r\n function getProfiloOre() {\r\n return datacontext.profiloOre_getAllList().then(function (data) {\r\n return vm.list.profiloOre = data;\r\n });\r\n }\r\n\r\n \r\n }\r\n})();","//app/validazioneFerie/validazioneFerie.js\r\n(function () {\r\n\t'use strict';\r\n\tvar controllerId = 'validazioneFeriePermessi';\r\n\tangular.module('app').controller(controllerId, ['$rootScope', '$scope', '$routeParams', '$filter', '$location', 'common', 'bootstrap.dialog', '$uibModal', 'datacontext', 'sectionMenu', '$translate', '_', 'moment', validazioneFeriePermessiFn]);\r\n\r\n\tfunction validazioneFeriePermessiFn($rootScope, $scope, $routeParams, $filter, $location, common, bDialog, $uibModal, datacontext, sectionMenu, $translate, _, moment) {\r\n\t\tvar getLogFn = common.logger.getLogFn;\r\n\t\tvar log = getLogFn(controllerId);\r\n\t\tvar logError = getLogFn(controllerId, 'logError');\r\n\t\tvar logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\t\t$rootScope.dashview = \"\"; // Azzera la classe dashview utile solo nelle dashboard \r\n\r\n\t\tvar vm = this;\r\n\t\tvm.view = 'list'; //Opzione list or detail\r\n\t\tvm.setView = setView;\r\n\t\tvm.sectionMenu = sectionMenu.setSection('ValidazioneFeriePermessi');\r\n\t\tvm.addTitle = \"ValidazioneFeriePermessi\";\r\n\t\tvm.record = {};\r\n\t\tvm.records = [];\r\n\t\tvm.countRecords = 0;\r\n\t\tvm.index = 0;\r\n\t\tvm.exportDisabled = false;\r\n\t\tvm.addDisabled = true;\r\n\t\tvm.pageSize = 30;\r\n\t\tvm.page = 1;\r\n\t\tvm.loading = false;\r\n\t\tvm.super = $rootScope.isAuthorized('SUPER');\r\n\t\tvm.personale = $rootScope.isAuthorized('PERSONALE');\r\n\t\tvm.capoSezione = $rootScope.isAuthorized('CAPOSEZIONE');\r\n\r\n\t\tvm.timeSheet = {};\r\n\t\tvm.list = {};\r\n\t\tvm.giorni = [];\r\n\t\tvm.gSett = [];\r\n\t\tvm.date = []; //Questo contiene le date da inserire nella tabella ore\r\n\t\tvm.colSabati = [];\r\n\t\tvm.colDomeniche = [];\r\n\t\tvm.colFestivo = [];\r\n\t\tvm.colFerie = []; //1 - da validare, 2 - approvata \r\n\t\tvm.colTitle = [];\r\n\t\tvm.righeC = [];\r\n\t\tvm.righeG = [];\r\n\t\tvm.listaNominativi = [];\r\n\r\n\t\t//Elenco per Ordinamento\r\n\t\tvm.list = {};\r\n\t\tvm.list.ordine = ['Data', 'Stato'];\r\n\t\tvm.list.ordine = common.setOrdine(vm.list.ordine);\r\n\t\tvm.ordine = vm.list.ordine[0];\r\n\t\tvm.selectOrdine = function (item) {\r\n\t\t\tvm.ordine = item;\r\n\t\t\tvm.cerca();\r\n\t\t};\r\n\r\n\t\t//Filtro\r\n\t\tvm.filter = {};\r\n\t\tvm.filter.stato = vm.fStato = 1;\r\n\t\tvm.filter.ricerca = vm.fRicerca = '';\r\n\t\tvm.filter.dtInizio = vm.fDtInizio == null ? '' : $filter('date')(vm.fDtInizio, 'dd/MM/yyyy');\r\n\t\tvm.filter.dtFine = vm.fDtFine == null ? '' : $filter('date')(vm.fDtFine, 'dd/MM/yyyy');\r\n\r\n\t\t//Metodi su interfaccia\r\n\t\tvm.cerca = cerca;\r\n\t\tvm.loadMore = getAllByFilter;\r\n\t\tvm.loadAll = getAll;\r\n\t\tvm.statoAccettato = statoAccettato;\r\n\t\tvm.statoRifiutato = statoRifiutato;\r\n\t\tvm.stato_modal = stato_modal;\r\n\t\tvm.scaricaReport = scaricaReport;\r\n\t\tvm.getTimeSheet = getTimeSheet;\r\n\t\tvm.next = next;\r\n\t\tvm.prev = prev;\r\n\t\tvm.vai = vai;\r\n\t\tvm.delete = deleteItem;\r\n\t\tvm.showNote = showNote;\r\n\r\n\t\tvm.dateOptions = {\r\n\t\t\tformatYear: 'yy',\r\n\t\t\tstartingDay: 1\r\n\t\t};\r\n\r\n\t\tvm.format = 'dd/MM/yyyy';\r\n\r\n\t\t// ---- ACTIVATE -------\r\n\t\tactivate();\r\n\r\n\t\tfunction activate() {\r\n\t\t\tvar promises = [getHolidays()];\r\n\t\t\tcommon.activateController(promises, controllerId).then(function () {\r\n\t\t\t\tdatacontext.timeSheet_getDate().then(function (data) {\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tdata = new Date(data);\r\n\t\t\t\t\t\tvm.fAnno = data.getFullYear();\r\n\t\t\t\t\t\tvm.fMese = data.getMonth() + 1;\r\n\t\t\t\t\t\tvm.fGiorno = 0;\r\n\t\t\t\t\t\tvm.fiAnno = data.getFullYear();\r\n\t\t\t\t\t\tvm.fiMese = data.getMonth();\r\n\t\t\t\t\t\tvm.fiGiorno = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//****************************************************\r\n\t\t// METODI \r\n\t\t//****************************************************\r\n\t\tfunction setView(view) {\r\n\t\t\treturn vm.view = view;\r\n\t\t}\r\n\r\n\t\tfunction cerca() {\r\n\t\t\tvm.records = [];\r\n\t\t\tvm.countRecords = 0;\r\n\t\t\tvm.page = 1;\r\n\t\t\tvm.filter.stato = vm.fStato == null ? 0 : vm.fStato;\r\n\t\t\tvm.filter.ricerca = vm.fRicerca == null ? '' : vm.fRicerca;\r\n\t\t\tvm.filter.dtInizio = vm.fDtInizio == null ? '' : $filter('date')(vm.fDtInizio, 'dd/MM/yyyy');\r\n\t\t\tvm.filter.dtFine = vm.fDtFine == null ? '' : $filter('date')(vm.fDtFine, 'dd/MM/yyyy');\r\n\r\n\t\t\tvm.loading = false;\r\n\t\t\tcountByFilter();\r\n\t\t\treturn getAllByFilter();\r\n\t\t}\r\n\r\n\t\tfunction countByFilter() {\r\n\t\t\treturn datacontext.validazioneRichiestaFerie_countValid(vm.filter.dtInizio, vm.filter.dtFine, vm.filter.stato, vm.filter.ricerca).then(function (data) {\r\n\t\t\t\tif (data) {\r\n\t\t\t\t\tvm.countRecords = data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAllByFilter() {\r\n\t\t\tif (vm.loading === true) return;\r\n\t\t\tif (vm.countRecords == 0) countByFilter();\r\n\t\t\telse if (vm.countRecords <= vm.records.length) return;\r\n\r\n\t\t\tvm.loading = true;\r\n\r\n\t\t\treturn datacontext.validazioneRichiestaFerie_getAllValid(vm.pageSize, vm.page, vm.filter.dtInizio, vm.filter.dtFine, vm.filter.stato, vm.filter.ricerca, vm.ordine.value).then(function (data) {\r\n\t\t\t\tif (data.constructor === Array) {\r\n\t\t\t\t\tvm.page++;\r\n\t\t\t\t\tvm.records.push.apply(vm.records, data);\r\n\t\t\t\t}\r\n\t\t\t\tvm.loading = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAll() {\r\n\t\t\tif (vm.records.length < vm.countRecords) {\r\n\t\t\t\tgetAllByFilter().then(function () { getAll(); });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction scaricaReport(bPDF) {\r\n\t\t\tif (vm.loading == true)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tvm.loading = true;\r\n\t\t\tcerca();\r\n\r\n\t\t\treturn datacontext.report_getFerie(bPDF, vm.filter.dtInizio, vm.filter.dtFine).then(function (data) {\r\n\t\t\t\tif (data && data.url) {\r\n\t\t\t\t\tvar a = document.createElement(\"a\");\r\n\t\t\t\t\tvar data_type = 'data:application/vnd.ms-excel,';\r\n\t\t\t\t\ta.setAttribute('style', 'display:none');\r\n\t\t\t\t\ta.setAttribute(\"target\", \"_blank\");\r\n\t\t\t\t\tif (bPDF)\r\n\t\t\t\t\t\tvar data_type = 'data:application/pdf';\r\n\r\n\t\t\t\t\tdocument.body.appendChild(a);\r\n\t\t\t\t\ta.href = data.url;\r\n\t\t\t\t\ta.download = data.file;\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\tdocument.body.removeChild(a);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\tlogError($translate.instant('Impossibile scaricare il file'));\r\n\r\n\t\t\t\tvm.loading = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//metodi accettazione e rifiuto stato\r\n\t\tfunction statoRifiutato(item) {\r\n\t\t\tvar modalInstance = $uibModal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/validazioneFerie/modal/validazioneAccettaRifiuta.html?version=30',\r\n\t\t\t\tcontroller: 'validazioneAccettaRifiuta',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\trichiesta: function () {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbutton: function () {\r\n\t\t\t\t\t\treturn 'rifiuta'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (returnItem.stato === 'annulla')\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\treturn datacontext.validazioneRichiestaFerie_rifiuta(returnItem.richiesta).then(function (data) {\r\n\t\t\t\t\tif (data && data.Id) {\r\n\t\t\t\t\t\tcerca();\r\n\t\t\t\t\t\tlogSuccess($translate.instant(\"RichiestaRifiutata\"));\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tlogError($translate.instant(\"Impossibile salvare il dato\"));\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction statoAccettato(item) {\r\n\t\t\tvar modalInstance = $uibModal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/validazioneFerie/modal/validazioneAccettaRifiuta.html?version=30',\r\n\t\t\t\tcontroller: 'validazioneAccettaRifiuta',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\trichiesta: function () {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbutton: function () {\r\n\t\t\t\t\t\treturn 'approva'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (returnItem.stato === 'annulla')\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\treturn datacontext.validazioneRichiestaFerie_accetta(returnItem.richiesta).then(function (data) {\r\n\t\t\t\t\tif (data && data.Id) {\r\n\t\t\t\t\t\tcerca();\r\n\t\t\t\t\t\tlogSuccess($translate.instant(\"RichiestaApprovata\"));\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tlogError($translate.instant(\"Impossibile salvare il dato\"));\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction stato_modal(item) {\r\n\t\t\tif (item.DipId == $rootScope.id) {\r\n\t\t\t\tlogError($translate.instant(\"ErroreRichiestaPropria\"));\r\n\t\t\t}\r\n\t\t\telse if (item.Stato != 1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdatacontext.richiestaFerie_get(item.RichiestaId).then(function (richiesta) {\r\n\t\t\t\t\tvar modalInstance = $uibModal.open({\r\n\t\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\t\tkeyboard: false,\r\n\t\t\t\t\t\ttemplateUrl: '/app/validazioneFerie/modal/validazioneAccettaRifiuta.html?version=30',\r\n\t\t\t\t\t\tcontroller: 'validazioneAccettaRifiuta',\r\n\t\t\t\t\t\tresolve: {\r\n\t\t\t\t\t\t\trichiesta: function () {\r\n\t\t\t\t\t\t\t\treturn richiesta;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbutton: function () {\r\n\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\t\t\tif (returnItem.stato === 'annulla')\r\n\t\t\t\t\t\t\treturn;\r\n\r\n\t\t\t\t\t\tif (returnItem.stato === \"approva\") {\r\n\t\t\t\t\t\t\treturn datacontext.validazioneRichiestaFerie_accetta(returnItem.richiesta).then(function (data) {\r\n\t\t\t\t\t\t\t\tif (data && data.Id) {\r\n\t\t\t\t\t\t\t\t\tvai();\r\n\t\t\t\t\t\t\t\t\tlogSuccess($translate.instant(\"RichiestaApprovata\"));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tlogError($translate.instant(\"Impossibile salvare il dato\"));\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (returnItem.stato === \"rifiuta\") {\r\n\t\t\t\t\t\t\treturn datacontext.validazioneRichiestaFerie_rifiuta(returnItem.richiesta).then(function (data) {\r\n\t\t\t\t\t\t\t\tif (data && data.Id) {\r\n\t\t\t\t\t\t\t\t\tvai();\r\n\t\t\t\t\t\t\t\t\tlogSuccess($translate.instant(\"RichiestaRifiutata\"));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tlogError($translate.instant(\"Impossibile salvare il dato\"));\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getHolidays() {\r\n\t\t\treturn vm.holidays = datacontext.festivita_getAll().then(function (data) {\r\n\t\t\t\treturn vm.holidays = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction next() {\r\n\t\t\tvar x = parseInt(vm.fMese) + 1;\r\n\t\t\tif (x > 12) {\r\n\t\t\t\tvm.fMese = 1;\r\n\t\t\t\tvm.fAnno++;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tvm.fMese++;\r\n\r\n\t\t\tvm.filter.dtInizio = '01/' + vm.fMese + '/' + vm.fAnno;\r\n\t\t\tvar temp_date = new Date(vm.fAnno, vm.fMese, 0);\r\n\t\t\tvm.filter.dtFine = temp_date.getDate() + '/' + vm.fMese + '/' + vm.fAnno;\r\n\r\n\t\t\tgetTimeSheet();\r\n\t\t}\r\n\r\n\t\tfunction prev() {\r\n\t\t\tvar x = vm.fMese - 1;\r\n\r\n\t\t\tif (x <= 0) {\r\n\t\t\t\tvm.fMese = 12;\r\n\t\t\t\tvm.fAnno--;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tvm.fMese--;\r\n\r\n\t\t\tvm.filter.dtInizio = '01/' + vm.fMese + '/' + vm.fAnno;\r\n\t\t\tvar temp_date = new Date(vm.fAnno, vm.fMese, 0);\r\n\t\t\tvm.filter.dtFine = temp_date.getDate() + '/' + vm.fMese + '/' + vm.fAnno;\r\n\r\n\t\t\tgetTimeSheet();\r\n\t\t}\r\n\r\n\t\tfunction vai() {\r\n\t\t\tvm.filter.dtInizio = '01/' + vm.fMese + '/' + vm.fAnno;\r\n\t\t\tvar temp_date = new Date(vm.fAnno, vm.fMese, 0);\r\n\t\t\tvm.filter.dtFine = temp_date.getDate() + '/' + vm.fMese + '/' + vm.fAnno;\r\n\t\t\tgetTimeSheet();\r\n\t\t}\r\n\r\n\t\tfunction getTimeSheet() {\r\n\t\t\tvm.loading = true;\r\n\t\t\tif (vm.fAnno < 0)\r\n\t\t\t\tvm.fAnno = new Date().getFullYear();\r\n\t\t\tif (vm.fMese < 1 || vm.fMese > 12)\r\n\t\t\t\tvm.fMese = 1;\r\n\r\n\t\t\tvar dataFine = new Date(vm.fAnno, vm.fMese, 0);\r\n\r\n\t\t\tvm.giorni = [];\r\n\t\t\tvm.gSett = [];\r\n\t\t\tvm.colFestivo = [];\r\n\t\t\tvm.colSabati = [];\r\n\t\t\tvm.colDomeniche = [];\r\n\t\t\tvm.righeC = [];\r\n\t\t\tvm.rigaTot = [];\r\n\t\t\tvm.Totale = 0;\r\n\t\t\tvm.TotaleApprovate = [];\r\n\t\t\tvm.TotaleDaValidare = [];\r\n\r\n\t\t\tfor (var i = 0; i < dataFine.getDate(); i++) {\r\n\t\t\t\tvm.rigaTot.push({ \"id\": i, \"value\": 0 });\r\n\t\t\t\tvm.date[i] = moment().year(vm.fAnno).month(vm.fMese - 1).date(i + 1);\r\n\r\n\t\t\t\tvm.giorni[i] = String(vm.date[i].format('L')).substring(0, 5);\r\n\t\t\t\tvm.gSett[i] = String(vm.date[i].format('dddd')).substring(0, 3);\r\n\r\n\t\t\t\tif (vm.gSett[i] == 'Sab' || vm.gSett[i] == 'Sat')\r\n\t\t\t\t\tvm.colSabati[i] = true;\r\n\t\t\t\telse\r\n\t\t\t\t\tvm.colSabati[i] = false;\r\n\t\t\t\tif (vm.gSett[i] == 'Dom' || vm.gSett[i] == 'Sun')\r\n\t\t\t\t\tvm.colDomeniche[i] = true;\r\n\t\t\t\telse\r\n\t\t\t\t\tvm.colDomeniche[i] = false;\r\n\r\n\t\t\t\tvm.colFestivo[i] = false;\r\n\r\n\t\t\t\tvar giorno = vm.date[i].date();\r\n\t\t\t\tvar mese = vm.date[i].month();\r\n\t\t\t\tvar anno = vm.date[i].year();\r\n\t\t\t\tvar check = null;\r\n\t\t\t\tcheck = _.find(vm.holidays, function (o) {\r\n\t\t\t\t\treturn (o.giorno == giorno && o.mese - 1 == mese && (o.anno == 0 || o.anno == anno))\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (check != null) {\r\n\t\t\t\t\tvm.colFestivo[i] = true;\r\n\t\t\t\t\tvm.colTitle[i] = check.descrizione;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.colFestivo[i] = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//eliminazione ultimo elemento array in caso di mese inferiore a 31 giorni\r\n\t\t\tif (dataFine.getDate() < 31 && vm.date.length == 31) {\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t}\r\n\t\t\tif (dataFine.getDate() < 31 && vm.date.length == 31 && dataFine.getMonth() == 1) {\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t}\r\n\t\t\tif (dataFine.getDate() < 30 && vm.date.length == 30 && dataFine.getMonth() == 1) {\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t\tvm.date.pop();\r\n\t\t\t}\r\n\r\n\t\t\t//Da qui inizia la parte per le righe\r\n\t\t\tdatacontext.richiestaFerie_getReportFerie(vm.filter.dtInizio, vm.filter.dtFine).then(function (data) {\r\n\t\t\t\tvar ordinario = _.chain(data).groupBy(function (value) { return [value.Nominativo, value.Matricola]; }).map(function (v, i) {\r\n\t\t\t\t\tvar iArr = i.split(',');\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tNominativo: iArr[0],\r\n\t\t\t\t\t\tMatricola: iArr[1],\r\n\t\t\t\t\t\tallInfo: v\r\n\t\t\t\t\t}\r\n\t\t\t\t}).value();\r\n\t\t\t\tvm.listaNominativi = ordinario;\r\n\t\t\t\tfor (var k = 0; k < vm.listaNominativi.length; k++) {\r\n\t\t\t\t\tvm.TotaleApprovate[k] = 0;\r\n\t\t\t\t\tvm.TotaleDaValidare[k] = 0;\r\n\t\t\t\t\tfor (var i = 0; i < dataFine.getDate(); i++) {\r\n\r\n\t\t\t\t\t\tif (vm.listaNominativi[k].allInfo[i].Stato == 2) { //Caso giorno di ferie ACCETTATO\r\n\t\t\t\t\t\t\tvm.TotaleApprovate[k] += vm.listaNominativi[k].allInfo[i].Ore;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (vm.listaNominativi[k].allInfo[i].Stato == 1) { //Caso giorno di ferie INOLTRATO\r\n\t\t\t\t\t\t\tvm.TotaleDaValidare[k] += vm.listaNominativi[k].allInfo[i].Ore;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar ferie = _.chain(_.filter(data, { 'Stato': 1, 'Stato': 2 })).groupBy(function (value) { return [value.Nominativo]; }).map(function (v, i) {\r\n\t\t\t\t\tvar iArr = i.split(',');\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tnominativo: iArr,\r\n\t\t\t\t\t\tore: v\r\n\t\t\t\t\t}\r\n\t\t\t\t}).value();\r\n\r\n\t\t\t\tif (ferie && ferie.length > 0) {\r\n\t\t\t\t\tvm.righeC = ferie;\r\n\t\t\t\t\t//Segno le ore \r\n\t\t\t\t\tvm.righeC.forEach(function (rigaC) {\r\n\t\t\t\t\t\tvar somma = 0;\r\n\t\t\t\t\t\trigaC.oreC = [];\r\n\t\t\t\t\t\tfor (var k = dataFine.getDate(); k < dataFine.getDate(); k++) {\r\n\r\n\t\t\t\t\t\t\trigaC.Totale = somma; //Somma per riga\r\n\t\t\t\t\t\t\trigaC.Totale = parseFloat(rigaC.Totale.toFixed(2));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvm.loading = false;\r\n\t\t}\r\n\r\n\t\tfunction deleteItem(item) {\r\n\t\t\tvar modalInstance = $uibModal.open({\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tkeyboard: false,\r\n\t\t\t\ttemplateUrl: '/app/richiestaFerie/modal/eliminaFerie.html?version=30',\r\n\t\t\t\tcontroller: 'eliminaFerie',\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\trichiesta: function () {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tmodalInstance.result.then(function (returnItem) {\r\n\t\t\t\tif (returnItem == 'ok') {\r\n\t\t\t\t\treturn datacontext.richiestaFerie_delete(item.Id).then(function (data) {\r\n\t\t\t\t\t\tif (data != \"204\") return logError($translate.instant('Impossibile eliminare la richiesta'));\r\n\t\t\t\t\t\tlogSuccess($translate.instant('Richiesta eliminata con successo'));\r\n\t\t\t\t\t\tvm.cerca();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction showNote(note) {\r\n\t\t\tbDialog.confirmationDialog('Note ' + $translate.instant('richiesta'), note).then(function () { });\r\n\t\t}\r\n\t}\r\n})();\r\n","(function () {\r\n 'use strict';\r\n var controllerId = 'attachAdd';\r\n angular.module('app').controller(controllerId, ['$scope', 'common', 'bootstrap.dialog', 'datacontext', '$uibModalInstance', 'FileUploader', '_', 'tAttach', 'tSource', 'source', 'tAttachId', 'tSourceCode', 'tSourceId', 'sourceId', 'attach',/*'lista'*/'dipendenteId','tSourceCode_def', attachAdd]);\r\n\r\n function attachAdd($scope, common, bDialog, datacontext, $uibModalInstance, FileUploader, _, tAttach, tSource, source, tAttachId, tSourceCode, tSourceId, sourceId, attach, /*lista*/ dipendenteId, tSourceCode_def) {\r\n \r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.attach = {};\r\n $scope.tAttach = tAttach;\r\n $scope.tSource = tSource;\r\n $scope.source = source;\r\n // $scope.lista = lista;\r\n $scope.maxKB_Def = 40960;\r\n $scope.bTitleChanged = false;\r\n $scope.upload_URL = datacontext.upload_getURL();\r\n $scope.attach.uploaded = false;\r\n $scope.bInsert = false;\r\n $scope.acceptFileTypes = 'application/pdf';\r\n $scope.msgFilesExt = '';\r\n $scope.myTAttach = {};\r\n $scope.dipendenteId = dipendenteId;\r\n $scope.tSourceCode_def = tSourceCode_def;\r\n $scope.lista = [];\r\n getListAttach();\r\n $scope.deleteAttach = deleteAttach;\r\n\r\n setMaxKB($scope.maxKB_Def);\r\n\r\n if (typeof (attach) == 'undefined') {\r\n $scope.attach = {};\r\n $scope.attach.Id = 0;\r\n $scope.attach.uploaded = false;\r\n $scope.selectTitle = 'Seleziona File';\r\n $scope.popupTitle = 'Nuovo Allegato';\r\n $scope.action = 'Add';\r\n } else {\r\n $scope.attach = jQuery.extend({}, attach);\r\n $scope.attach.uploaded = true;\r\n $scope.selectTitle = 'InfoAllegato' + ' ' + $scope.attach.Name + '. ' + 'InfoAllegato2';//'InfoAllegato' +' ' + $scope.attach.Name + '. ' +'InfoAllegato2';\r\n //($translate.instant('ErroreFormato'))\r\n $scope.popupTitle = 'Modifica Allegato';\r\n $scope.action = 'Edit';\r\n }\r\n\r\n //console.info('attach', attach);\r\n\r\n if (tSourceId) {\r\n $scope.tSourceId = tSourceId;\r\n $scope.attach.TSourceId = tSourceId;\r\n $scope.attach.TSourceName = $scope.tSource[0].Name;\r\n }\r\n\r\n if (tSourceCode) {\r\n $scope.tSourceCode = tSourceCode;\r\n $scope.attach.TSourceName = $scope.tSource[0].Name;\r\n if (!source) {\r\n getListSource(tSourceCode);\r\n }\r\n }\r\n\r\n if (typeof ($scope.attach.TSourceName) == 'undefined') {\r\n $scope.attach.TSourceName = 'Riferimento';\r\n }\r\n\r\n if (sourceId) {\r\n $scope.sourceId = sourceId;\r\n $scope.attach.SourceId = sourceId;\r\n }\r\n\r\n if (tAttachId) {\r\n $scope.tAttachId = tAttachId;\r\n $scope.attach.TAttachId = tAttachId; \r\n $scope.myTAttach = _.find($scope.tAttach, { 'Id': tAttachId });\r\n\r\n if (typeof ($scope.myTAttach) != 'undefined') {\r\n $scope.tAttachName = $scope.myTAttach.Name;\r\n\r\n setTAttachParams($scope.myTAttach);\r\n }\r\n\r\n\r\n }\r\n else {\r\n //se tAttach non � definito carico solo quelli non ancora presenti a sistema\r\n getTAttach(tSourceCode, sourceId, $scope.attach.TAttachId);\r\n } \r\n\r\n //Gestione Bit1: SI o NO\r\n $scope.checkBit1_click = function () {\r\n switch ($scope.myTAttach.checkBit1) {\r\n case 1: //SI\r\n $scope.attach.Bit1 = true;\r\n break;\r\n case 2: //NO\r\n $scope.attach.Bit1 = false;\r\n break;\r\n }\r\n }; \r\n\r\n function setTAttachParams(myTAttach) {\r\n console.dir(myTAttach);\r\n //1) Definisco se si hanno le autorizzazioni per inserire\r\n $scope.bInsert = myTAttach.bInsert;\r\n //2) Definisco i tipi di file ammessi\r\n setMaxKB(myTAttach.MaxKB);\r\n //3) Definisco la dimensione massima consentita\r\n setListFileTypes(myTAttach.FileType);\r\n }\r\n\r\n function setListFileTypes(fileTypes) {\r\n var str = '';\r\n var arrExt = [];\r\n\r\n //Inizializzo la variabile msgFilesExt\r\n $scope.msgFilesExt = '';\r\n\r\n if ($.isNumeric(fileTypes))\r\n return;\r\n\r\n fileTypes.forEach(function (item) {\r\n str += item.Title + ', ';\r\n arrExt.push(item.Extension);\r\n });\r\n\r\n var arrExtAfter = _.map(\r\n _.uniq(\r\n _.map(arrExt, function (obj) {\r\n return JSON.stringify(obj);\r\n })\r\n ), function (obj) {\r\n return JSON.parse(obj);\r\n }\r\n );\r\n\r\n var strExt = arrExtAfter.join(\", \");\r\n\r\n //Remove last comma and white space\r\n str = str.replace(/,\\s*$/, \"\");\r\n strExt = strExt.replace(/,\\s*$/, \"\");\r\n\r\n if (str.length > 0) {\r\n $scope.acceptFileTypes = str;\r\n }\r\n\r\n if (strExt.length > 0) {\r\n $scope.msgFilesExt = strExt;\r\n }\r\n\r\n return $scope.acceptFileTypes;\r\n }\r\n\r\n\r\n\r\n function setMaxKB(MaxKB) {\r\n $scope.maxKB = MaxKB == 0 ? $scope.maxKB_Def : MaxKB;\r\n\r\n if ($scope.maxKB >= 1024)\r\n $scope.MaxDim = parseInt(($scope.maxKB / 1024)) + ' MB';\r\n else if ($scope.maxKB < 1024)\r\n $scope.MaxDim = parseInt(($scope.maxKB)) + ' KB';\r\n\r\n //console.info('maxKB', item, $scope.maxKB);\r\n return $scope.maxKB;\r\n }\r\n\r\n\r\n /*\r\n $scope.getListFileTypes = function (tAttachId, title, extension) {\r\n $scope.msgFilesExt = '';\r\n return datacontext.tAttachFileType_getAll(tAttachId, title, extension).then(function (data) {\r\n return setListFileTypes_new(data);\r\n });\r\n } \r\n */\r\n function getListAttach() {\r\n if (!$scope.dipendenteId) return;\r\n\r\n return datacontext.attach_getAll(0, 0, $scope.tSourceCode_def, 0, $scope.dipendenteId, $scope.tAttach.Id, '').then(function (data) {\r\n //vm.list.b_attach = true;\r\n return $scope.lista = data;\r\n });\r\n }\r\n\r\n function deleteAttach(item) {\r\n var msg = ' Allegato ' + item.Name;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.attach_delete(item.Id).then(function (data) {\r\n if (data == \"400\") return logError('Attenzione: allegato non cancellabile! Contattare l\\'Help-desk');\r\n\r\n var index = $scope.lista.indexOf(item);\r\n $scope.lista.splice(index, 1);\r\n //vm.record.stat_numAttach = vm.record.stat_numAttach - 1;\r\n });\r\n });\r\n }\r\n\r\n $scope.ok = function () { \r\n //console.info(\"ok\", $scope.attach);\r\n var result = addItem($scope.attach);\r\n \r\n //$uibModalInstance.close(result); \r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close(true);\r\n };\r\n\r\n function addItem(item) {\r\n if ($scope.action == 'Add') { \r\n item.Title = $scope.attach.Name; \r\n return datacontext.attach_add(item).then(function (data) {\r\n if (!data) return null;\r\n if (data == \"400\") return null;\r\n if (data) {\r\n $scope.removeFile();\r\n logSuccess('Allegato aggiunto con successo ');\r\n }\r\n\r\n getListAttach();\r\n return data;\r\n });\r\n } else if ($scope.action == 'Edit') {\r\n return datacontext.attach_update(item).then(function (data) {\r\n if (!data) return null;\r\n if (data == \"400\") return null;\r\n\r\n return data;\r\n });\r\n }\r\n }\r\n\r\n $scope.TSourceChanged = function () {\r\n var tSourceId = $scope.attach.TSourceId;\r\n $scope.source = [];\r\n $scope.attach.SourceId = 0;\r\n $scope.tAttach = [];\r\n $scope.attach.TAttachId = 0;\r\n return datacontext.tSource_get(tSourceId).then(function (data) {\r\n $scope.tSourceCode = data.Code;\r\n getListSource(data.Code);\r\n });\r\n\r\n return false;\r\n };\r\n\r\n $scope.SourceChanged = function () {\r\n $scope.tAttach = [];\r\n $scope.attach.TAttachId = 0;\r\n getTAttach($scope.tSourceCode, $scope.attach.SourceId);\r\n\r\n return false;\r\n };\r\n\r\n function getTAttach(tSourceCode, sourceId, tAttachId) {\r\n var onlyMissing = 1;\r\n if ($scope.tAttach == null)\r\n $scope.tAttach = [];\r\n\r\n //return datacontext.tAttach_getAllList(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n return datacontext.tAttach_getAllModal(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n var listTA = data;\r\n\r\n return datacontext.tAttachVisibility_getAuth(tSourceCode).then(function (data) {\r\n\r\n var tAttach_auth = data;\r\n tAttach_auth.forEach(function (item_TAV) {\r\n\r\n var myrec = _.find(listTA, { 'Id': item_TAV.TAttachId });\r\n //console.info('myrec-prima', myrec);\r\n\r\n if (typeof (myrec) != 'undefined') {\r\n\r\n myrec.bRead = item_TAV.bRead;\r\n myrec.bInsert = item_TAV.bInsert;\r\n myrec.bUpdate = item_TAV.bUpdate;\r\n myrec.bDelete = item_TAV.bDelete;\r\n myrec.iTags = item_TAV.iTags;\r\n if (myrec.bRead)\r\n $scope.tAttach.push(myrec);\r\n //console.info('myrec', myrec);\r\n }\r\n });\r\n });\r\n //console.info('tAttach', $scope.tAttach, listTA);\r\n return $scope.tAttach;\r\n });\r\n }\r\n\r\n $scope.changeTAttach = function (tAttachId) {\r\n if (!tAttachId) return;\r\n\r\n $scope.myTAttach = _.find($scope.tAttach, { 'Id': tAttachId });\r\n //In base al tipo di file selezionato:\r\n\r\n if (typeof ($scope.myTAttach) != 'undefined') {//if (typeof ($scope.myTAttach) == 'undefined') {\r\n setTAttachParams($scope.myTAttach);\r\n }\r\n\r\n if ($scope.myTAttach.iBit1 > 0)\r\n $scope.myTAttach.checkBit1 = 0;\r\n\r\n //console.info('$scope.myTAttach', $scope.myTAttach);\r\n\r\n return $scope.bInsert;\r\n };\r\n\r\n /*\r\n function getTAttach(tSourceCode, sourceId, tAttachId) {\r\n \tvar onlyMissing = 1;\r\n return datacontext.tAttach_getAllList(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n \t\treturn $scope.tAttach = data;\r\n \t});\r\n }\r\n */\r\n\r\n function getListSource(tSourceCode) {\r\n return datacontext.source_getAllList(tSourceCode).then(function (data) {\r\n return $scope.source = data;\r\n });\r\n }\r\n\r\n $scope.TitleChanged = function () {\r\n $scope.bTitleChanged = true;\r\n return false;\r\n };\r\n\r\n $scope.removeFile = function (item) { \r\n $scope.attach.Path = '';\r\n $scope.attach.Name = '';\r\n $scope.attach.KB = 0;\r\n $('#inputFile').val(\"\");\r\n\r\n $scope.attach.uploaded = false;\r\n return false;\r\n };\r\n\r\n // FILTERS\r\n var uploader = $scope.uploader = new FileUploader({\r\n url: $scope.upload_URL,\r\n removeAfterUpload: true\r\n }\r\n );\r\n\r\n uploader.filters.push({\r\n name: 'customFilter',\r\n fn: function (item /*{File|FileLikeObject}*/, options) {\r\n return this.queue.length < 10;\r\n }\r\n });\r\n\r\n // CALLBACKS\r\n\r\n uploader.onWhenAddingFileFailed = function (item /*{File|FileLikeObject}*/, filter, options) {\r\n /*\r\n \tconsole.info('onWhenAddingFileFailed', item, filter, options);\r\n \tconsole.log('onWhenAddingFileFailed - end');\r\n */\r\n };\r\n uploader.onAfterAddingFile = function (fileItem) {\r\n /*\r\n \tconsole.info('onAfterAddingFile', fileItem);\r\n \tconsole.log('onAfterAddingFile - end');\r\n \tconsole.dir(fileItem);\r\n */\r\n };\r\n uploader.onAfterAddingAll = function (addedFileItems) {\r\n /*\r\n \tconsole.info('onAfterAddingAll', addedFileItems);\r\n \tconsole.log('onAfterAddingAll - end');\r\n */\r\n };\r\n uploader.onBeforeUploadItem = function (item) {\r\n /*\r\n console.info('onBeforeUploadItem', item);\r\n console.log('onBeforeUploadItem');\r\n */\r\n };\r\n uploader.onProgressItem = function (fileItem, progress) {\r\n /*\r\n console.info('onProgressItem', fileItem, progress);\r\n \tconsole.log('onProgressItem - end');\r\n \tconsole.dir(progress);\r\n */\r\n };\r\n uploader.onProgressAll = function (progress) {\r\n /*\r\n \tconsole.info('onProgressAll', progress);\r\n \tconsole.log('onProgressAll - end');\r\n */\r\n };\r\n uploader.onSuccessItem = function (fileItem, response, status, headers) {\r\n //console.info('onSuccessItem', fileItem, response, status, headers);\r\n //console.log('onSuccessItem - end');\r\n //console.info(\"response\", response);\r\n if (response != null && response.length > 0) {\r\n var data = response[0];\r\n $scope.attach.Path = data.PathServer;\r\n //console.dir(data.PathServer);\r\n $scope.attach.Name = data.NameOrig;\r\n $scope.attach.KB = data.Length;\r\n $scope.attach.uploaded = true;\r\n $scope.ok();\r\n }\r\n\r\n };\r\n uploader.onErrorItem = function (fileItem, response, status, headers) {\r\n /*\r\n console.info('onErrorItem', fileItem, response, status, headers);\r\n \tconsole.log('onErrorItem - end');\r\n */\r\n };\r\n uploader.onCancelItem = function (fileItem, response, status, headers) {\r\n /*\r\n \tconsole.info('onCancelItem', fileItem, response, status, headers);\r\n \tconsole.log('onCancelItem - end');\r\n */\r\n };\r\n uploader.onCompleteItem = function (fileItem, response, status, headers) {\r\n /*\r\n \tconsole.info('onCompleteItem', fileItem, response, status, headers);\r\n \tconsole.log('onCompleteItem - end');\r\n */\r\n };\r\n uploader.onCompleteAll = function () {\r\n /*\r\n \tconsole.info('onCompleteAll');\r\n \tconsole.log('onCompleteAll - end');\r\n */\r\n };\r\n\r\n //console.info('uploader', uploader);\r\n\r\n\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'attachAdd2';\r\n angular.module('app').controller(controllerId, ['$scope', 'datacontext', 'sectionMenu', '$uibModalInstance', 'FileUploader', '_', 'tAttach', 'tSource', 'source', 'tAttachId', 'tSourceCode', 'tSourceId', 'sourceId', attachAdd2]);\r\n\r\n function attachAdd2($scope, datacontext, sectionMenu, $uibModalInstance, FileUploader, _, tAttach, tSource, source, tAttachId, tSourceCode, tSourceId, sourceId) {\r\n $scope.attach = {};\r\n $scope.tAttach = tAttach;\r\n $scope.tSource = tSource;\r\n $scope.source = source;\r\n $scope.maxKB_Def = 40960;\r\n $scope.bTitleChanged = false;\r\n $scope.upload_URL = datacontext.upload_getURL();\r\n $scope.attach.uploaded = false;\r\n $scope.bInsert = false;\r\n $scope.acceptFileTypes = 'application/pdf, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/msword, application/x-rtf, application/rtf, text/richtext, .rtf, application/x-pkcs7-mime, application/pkcs7-mime';\r\n $scope.msgFilesExt = '';\r\n $scope.myTAttach = {};\r\n \r\n \r\n\r\n if (tSourceId) {\r\n $scope.tSourceId = tSourceId;\r\n $scope.attach.TSourceId = tSourceId;\r\n $scope.attach.TSourceName = $scope.tSource[0].Name;\r\n }\r\n\t\t\t\t\r\n if (tSourceCode) {\r\n \t$scope.tSourceCode = tSourceCode;\r\n \t$scope.attach.TSourceName = $scope.tSource[0].Name;\r\n \tif (!source) {\r\n \t\tgetListSource(tSourceCode);\r\n \t}\r\n }\r\n\r\n if (typeof ($scope.attach.TSourceName) == 'undefined')\r\n {\r\n \t$scope.attach.TSourceName = 'Riferimento';\r\n }\r\n\r\n if (sourceId) {\r\n \t$scope.sourceId = sourceId;\r\n \t$scope.attach.SourceId = sourceId;\r\n } \r\n\r\n if (tAttachId) {\r\n \r\n $scope.tAttachId = tAttachId;\r\n $scope.attach.TAttachId = tAttachId;\r\n $scope.myTAttach = _.find($scope.tAttach, { 'Id': tAttachId });\r\n \r\n if (typeof ($scope.myTAttach) == 'undefined') {\r\n $scope.tAttachName = $scope.myTAttach.Name;\r\n\r\n setTAttachParams($scope.myTAttach);\r\n }\r\n\r\n if ($scope.myTAttach.iBit1 > 0)\r\n $scope.myTAttach.checkBit1 = 0;\r\n\r\n //console.info('$scope.myTAttach', $scope.myTAttach);\r\n }\r\n else\r\n {\r\n //se tAttach non � definito carico solo quelli non ancora presenti a sistema\r\n getTAttach(tSourceCode, sourceId, $scope.attach.TAttachId); \r\n }\r\n\r\n //Gestione Bit1: SI o NO\r\n $scope.checkBit1_click = function () {\r\n switch ($scope.myTAttach.checkBit1) {\r\n case 1: //SI\r\n $scope.attach.Bit1 = true;\r\n break;\r\n case 2: //NO\r\n $scope.attach.Bit1 = false;\r\n break;\r\n }\r\n }\r\n\r\n\r\n function setTAttachParams(myTAttach) {\r\n //1) Definisco se si hanno le autorizzazioni per inserire\r\n //$scope.bInsert = myTAttach.bInsert;\r\n //2) Definisco i tipi di file ammessi\r\n setMaxKB(myTAttach.MaxKB);\r\n //3) Definisco la dimensione massima consentita\r\n setListFileTypes(myTAttach.FileType);\r\n //console.info('$scope.bInsert', $scope.bInsert);\r\n }\r\n\r\n function setListFileTypes(fileTypes) {\r\n var str = '';\r\n var arrExt = [];\r\n\r\n //Inizializzo la variabile msgFilesExt\r\n $scope.msgFilesExt = '';\r\n\r\n if ($.isNumeric(fileTypes))\r\n return;\r\n\r\n fileTypes.forEach(function (item) {\r\n str += item.Title + ', ';\r\n arrExt.push(item.Extension);\r\n });\r\n\r\n var arrExtAfter = _.map(\r\n _.uniq(\r\n _.map(arrExt, function (obj) {\r\n return JSON.stringify(obj);\r\n })\r\n ), function (obj) {\r\n return JSON.parse(obj);\r\n }\r\n );\r\n\r\n var strExt = arrExtAfter.join(\", \");\r\n\r\n //Remove last comma and white space\r\n str = str.replace(/,\\s*$/, \"\");\r\n strExt = strExt.replace(/,\\s*$/, \"\");\r\n\r\n if (str.length > 0) {\r\n $scope.acceptFileTypes = str;\r\n }\r\n\r\n if (strExt.length > 0) {\r\n $scope.msgFilesExt = strExt;\r\n }\r\n\r\n return $scope.acceptFileTypes;\r\n }\r\n\r\n\r\n\r\n function setMaxKB(MaxKB) {\r\n $scope.maxKB = MaxKB == 0 ? $scope.maxKB_Def : MaxKB;\r\n\r\n if ($scope.maxKB >= 1024)\r\n $scope.MaxDim = parseInt(($scope.maxKB / 1024)) + ' MB';\r\n else if ($scope.maxKB < 1024)\r\n $scope.MaxDim = parseInt(($scope.maxKB)) + ' KB';\r\n\r\n //console.info('maxKB', item, $scope.maxKB);\r\n return $scope.maxKB;\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = addItem($scope.attach)\r\n $uibModalInstance.close(result);\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function addItem(item) {\r\n return datacontext.attach_add(item).then(function (data) {\r\n //console.info('addItem', data);\r\n if (!data) return null;\r\n if (data == \"400\") return null;\r\n\r\n return data;\r\n });\r\n }\r\n\r\n $scope.TSourceChanged = function () {\r\n \t//console.log('TSourceChanged');\r\n \tvar tSourceId = $scope.attach.TSourceId;\r\n \t$scope.source = [];\r\n \t$scope.attach.SourceId = 0;\r\n \t$scope.tAttach = [];\r\n \t$scope.attach.TAttachId = 0;\r\n \treturn datacontext.tSource_get(tSourceId).then(function (data) {\r\n \t $scope.tSourceCode = data.Code;\r\n \t\tgetListSource(data.Code);\r\n \t});\r\n\r\n \treturn false;\r\n }\r\n\r\n $scope.SourceChanged = function () {\r\n $scope.tAttach = [];\r\n $scope.attach.TAttachId = 0;\r\n \tgetTAttach($scope.tSourceCode, $scope.attach.SourceId);\r\n\r\n \treturn false;\r\n }\r\n\r\n function getTAttach(tSourceCode, sourceId, tAttachId) {\r\n var onlyMissing = 1;\r\n if ($scope.tAttach == null)\r\n $scope.tAttach = [];\r\n\r\n //return datacontext.tAttach_getAllList(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n return datacontext.tAttach_getAllModal(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n var listTA = data;\r\n\r\n return datacontext.tAttachVisibility_getAuth(tSourceCode).then(function (data) {\r\n\r\n var tAttach_auth = data;\r\n tAttach_auth.forEach(function (item_TAV) {\r\n\r\n var myrec = _.find(listTA, { 'Id': item_TAV.TAttachId });\r\n //console.info('myrec-prima', myrec);\r\n\r\n if (typeof (myrec) != 'undefined') {\r\n\r\n myrec.bRead = item_TAV.bRead;\r\n myrec.bInsert = item_TAV.bInsert;\r\n myrec.bUpdate = item_TAV.bUpdate;\r\n myrec.bDelete = item_TAV.bDelete;\r\n myrec.iTags = item_TAV.iTags;\r\n if (myrec.bRead)\r\n $scope.tAttach.push(myrec);\r\n //console.info('myrec', myrec);\r\n }\r\n });\r\n });\r\n //console.info('tAttach', $scope.tAttach, listTA);\r\n return $scope.tAttach;\r\n });\r\n }\r\n\r\n /*\r\n $scope.getBInsert = function (tAttachId) {\r\n if (!tAttachId) return;\r\n\r\n return $scope.tAttach.forEach(function (item_TA) {\r\n if (item_TA.Id == tAttachId)\r\n $scope.bInsert = item_TA.bInsert;\r\n });\r\n\r\n //console.info('getBInsert', $scope.tAttach, $scope.bInsert);\r\n return $scope.bInsert;\r\n }\r\n\r\n \r\n function getTAttach(tSourceCode, sourceId, tAttachId) {\r\n \tvar onlyMissing = 1;\r\n return datacontext.tAttach_getAllList(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n \t\treturn $scope.tAttach = data;\r\n \t});\r\n }\r\n */\r\n\r\n function getListSource(tSourceCode) {\r\n \treturn datacontext.source_getAllList(tSourceCode).then(function (data) {\r\n \t\treturn $scope.source = data;\r\n \t});\r\n }\r\n\r\n $scope.TitleChanged = function () {\r\n \t$scope.bTitleChanged = true;\r\n \treturn false;\r\n }\r\n\r\n $scope.removeFile = function (item) {\r\n \t$scope.attach.Path = '';\r\n \t$scope.attach.Name = '';\r\n \t$scope.attach.KB = 0;\r\n \t$('#inputFile').val(\"\");\r\n\r\n \t$scope.attach.uploaded = false;\r\n \treturn false;\r\n }\r\n\r\n\r\n\r\n \t// FILTERS\r\n var uploader = $scope.uploader = new FileUploader({\r\n \turl: $scope.upload_URL\r\n }\r\n\t\t\t);\r\n \r\n uploader.filters.push({\r\n \tname: 'customFilter',\r\n \tfn: function (item /*{File|FileLikeObject}*/, options) {\r\n \t\treturn this.queue.length < 10;\r\n \t}\r\n });\r\n\r\n \t// CALLBACKS\r\n\r\n uploader.onWhenAddingFileFailed = function (item /*{File|FileLikeObject}*/, filter, options) {\r\n /*\r\n \tconsole.info('onWhenAddingFileFailed', item, filter, options);\r\n \tconsole.log('onWhenAddingFileFailed - end');\r\n */\r\n };\r\n uploader.onAfterAddingFile = function (fileItem) {\r\n /*\r\n \tconsole.info('onAfterAddingFile', fileItem);\r\n \tconsole.log('onAfterAddingFile - end');\r\n \tconsole.dir(fileItem);\r\n */\r\n };\r\n uploader.onAfterAddingAll = function (addedFileItems) {\r\n /*\r\n \tconsole.info('onAfterAddingAll', addedFileItems);\r\n \tconsole.log('onAfterAddingAll - end');\r\n */\r\n };\r\n uploader.onBeforeUploadItem = function (item) {\r\n /*\r\n console.info('onBeforeUploadItem', item);\r\n console.log('onBeforeUploadItem');\r\n */\r\n };\r\n uploader.onProgressItem = function (fileItem, progress) {\r\n /*\r\n console.info('onProgressItem', fileItem, progress);\r\n \tconsole.log('onProgressItem - end');\r\n \tconsole.dir(progress);\r\n */\r\n };\r\n uploader.onProgressAll = function (progress) {\r\n /*\r\n \tconsole.info('onProgressAll', progress);\r\n \tconsole.log('onProgressAll - end');\r\n */\r\n };\r\n uploader.onSuccessItem = function (fileItem, response, status, headers) {\r\n //console.info('onSuccessItem', fileItem, response, status, headers);\r\n //console.log('onSuccessItem - end');\r\n //console.dir(response);\r\n \tif (response != null && response.length > 0)\r\n \t{\r\n \t\tvar data = response[0];\r\n \t\t$scope.attach.Path = data.PathServer;\r\n \t\t//console.dir(data.PathServer);\r\n \t\t$scope.attach.Name = data.NameOrig;\r\n \t\t$scope.attach.KB = data.Length;\r\n \t\t$scope.attach.uploaded = true;\r\n \t}\r\n \t\r\n };\r\n uploader.onErrorItem = function (fileItem, response, status, headers) {\r\n /*\r\n console.info('onErrorItem', fileItem, response, status, headers);\r\n \tconsole.log('onErrorItem - end');\r\n */\r\n };\r\n uploader.onCancelItem = function (fileItem, response, status, headers) {\r\n /*\r\n \tconsole.info('onCancelItem', fileItem, response, status, headers);\r\n \tconsole.log('onCancelItem - end');\r\n */\r\n };\r\n uploader.onCompleteItem = function (fileItem, response, status, headers) {\r\n /*\r\n \tconsole.info('onCompleteItem', fileItem, response, status, headers);\r\n \tconsole.log('onCompleteItem - end');\r\n */\r\n };\r\n uploader.onCompleteAll = function () {\r\n /*\r\n \tconsole.info('onCompleteAll');\r\n \tconsole.log('onCompleteAll - end');\r\n */\r\n };\r\n\r\n //console.info('uploader', uploader);\r\n\r\n \r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'attachAddFirma';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', 'common', 'bootstrap.dialog', 'datacontext', '$uibModalInstance', 'FileUploader', '_', 'tAttach', 'tSource', 'source', 'tAttachId', 'tSourceCode', 'tSourceId', 'sourceId', 'attach', 'tSourceCode_def', 'dipendenteId', attachAddFirma]);\r\n\r\n function attachAddFirma($scope, $rootScope, common, bDialog, datacontext, $uibModalInstance, FileUploader, _, tAttach, tSource, source, tAttachId, tSourceCode, tSourceId, sourceId, attach, tSourceCode_def, dipendenteId) {\r\n\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.attach = {};\r\n $scope.tAttach = tAttach;\r\n $scope.tSource = tSource;\r\n $scope.source = source;\r\n $scope.dipendenteId = dipendenteId;\r\n\r\n // $scope.lista = lista;\r\n $scope.maxKB_Def = 40960;\r\n $scope.bTitleChanged = false;\r\n $scope.upload_URL = datacontext.upload_getURL();\r\n $scope.attach.uploaded = false;\r\n $scope.bInsert = false;\r\n $scope.acceptFileTypes = 'image/jpeg, image/jpg, image/bmp, image/png';\r\n $scope.msgFilesExt = '';\r\n $scope.myTAttach = {};\r\n $scope.tSourceCode_def = tSourceCode_def;\r\n $scope.lista = [];\r\n //getListAttach();\r\n $scope.deleteAttach = deleteAttach;\r\n $scope.showImage = false;\r\n $scope.dipendente = {};\r\n $scope.firma = {};\r\n\r\n getDipendente();\r\n\r\n setMaxKB($scope.maxKB_Def);\r\n\r\n if (typeof (attach) == 'undefined') {\r\n $scope.attach = {};\r\n $scope.attach.Id = 0;\r\n $scope.attach.uploaded = false;\r\n $scope.selectTitle = 'Seleziona File';\r\n $scope.popupTitle = 'Nuova Firma';\r\n $scope.action = 'Add';\r\n } else {\r\n $scope.attach = {};\r\n $scope.attach.uploaded = false;\r\n $scope.popupTitle = 'Modifica Firma';\r\n $scope.action = 'Edit';\r\n }\r\n\r\n //console.info('attach', attach);\r\n\r\n if (tSourceId) {\r\n $scope.tSourceId = tSourceId;\r\n $scope.attach.TSourceId = tSourceId;\r\n $scope.attach.TSourceName = $scope.tSource[0].Name;\r\n }\r\n\r\n if (tSourceCode) {\r\n $scope.tSourceCode = tSourceCode;\r\n $scope.attach.TSourceName = $scope.tSource[0].Name;\r\n if (!source) {\r\n getListSource(tSourceCode);\r\n }\r\n }\r\n\r\n if (typeof ($scope.attach.TSourceName) == 'undefined') {\r\n $scope.attach.TSourceName = 'Riferimento';\r\n }\r\n\r\n if (sourceId) {\r\n $scope.sourceId = sourceId;\r\n $scope.attach.SourceId = sourceId;\r\n }\r\n\r\n if (tAttachId) {\r\n $scope.tAttachId = tAttachId;\r\n $scope.attach.TAttachId = tAttachId;\r\n $scope.myTAttach = _.find($scope.tAttach, { 'Id': tAttachId });\r\n\r\n if (typeof ($scope.myTAttach) != 'undefined') {\r\n $scope.tAttachName = $scope.myTAttach.Name;\r\n\r\n setTAttachParams($scope.myTAttach);\r\n }\r\n\r\n\r\n }\r\n else {\r\n //se tAttach non � definito carico solo quelli non ancora presenti a sistema\r\n getTAttach(tSourceCode, sourceId, $scope.attach.TAttachId);\r\n }\r\n\r\n //Gestione Bit1: SI o NO\r\n $scope.checkBit1_click = function () {\r\n switch ($scope.myTAttach.checkBit1) {\r\n case 1: //SI\r\n $scope.attach.Bit1 = true;\r\n break;\r\n case 2: //NO\r\n $scope.attach.Bit1 = false;\r\n break;\r\n }\r\n };\r\n\r\n function setTAttachParams(myTAttach) {\r\n console.dir(myTAttach);\r\n //1) Definisco se si hanno le autorizzazioni per inserire\r\n $scope.bInsert = myTAttach.bInsert;\r\n //2) Definisco i tipi di file ammessi\r\n setMaxKB(myTAttach.MaxKB);\r\n //3) Definisco la dimensione massima consentita\r\n setListFileTypes(myTAttach.FileType);\r\n }\r\n\r\n function setListFileTypes(fileTypes) {\r\n var str = '';\r\n var arrExt = [];\r\n\r\n //Inizializzo la variabile msgFilesExt\r\n $scope.msgFilesExt = '';\r\n\r\n if ($.isNumeric(fileTypes))\r\n return;\r\n\r\n fileTypes.forEach(function (item) {\r\n str += item.Title + ', ';\r\n arrExt.push(item.Extension);\r\n });\r\n\r\n var arrExtAfter = _.map(\r\n _.uniq(\r\n _.map(arrExt, function (obj) {\r\n return JSON.stringify(obj);\r\n })\r\n ), function (obj) {\r\n return JSON.parse(obj);\r\n }\r\n );\r\n\r\n var strExt = arrExtAfter.join(\", \");\r\n\r\n //Remove last comma and white space\r\n str = str.replace(/,\\s*$/, \"\");\r\n strExt = strExt.replace(/,\\s*$/, \"\");\r\n\r\n if (str.length > 0) {\r\n $scope.acceptFileTypes = str;\r\n }\r\n\r\n if (strExt.length > 0) {\r\n $scope.msgFilesExt = strExt;\r\n }\r\n\r\n return $scope.acceptFileTypes;\r\n }\r\n\r\n\r\n\r\n function setMaxKB(MaxKB) {\r\n $scope.maxKB = MaxKB == 0 ? $scope.maxKB_Def : MaxKB;\r\n\r\n if ($scope.maxKB >= 1024)\r\n $scope.MaxDim = parseInt(($scope.maxKB / 1024)) + ' MB';\r\n else if ($scope.maxKB < 1024)\r\n $scope.MaxDim = parseInt(($scope.maxKB)) + ' KB';\r\n\r\n //console.info('maxKB', item, $scope.maxKB);\r\n return $scope.maxKB;\r\n }\r\n\r\n\r\n /*\r\n $scope.getListFileTypes = function (tAttachId, title, extension) {\r\n $scope.msgFilesExt = '';\r\n return datacontext.tAttachFileType_getAll(tAttachId, title, extension).then(function (data) {\r\n return setListFileTypes_new(data);\r\n });\r\n } \r\n */\r\n\r\n function deleteAttach(item) {\r\n var msg = ' Allegato ' + item.Name;\r\n bDialog.deleteDialog(msg).then(function () {\r\n return datacontext.attach_delete(item.Id).then(function (data) {\r\n if (data == \"400\") return logError('Attenzione: allegato non cancellabile!');\r\n\r\n $scope.dipendente.FirmaId = 0;\r\n return datacontext.dipendente_update($scope.dipendente).then(function (d) {\r\n $scope.firma = {};\r\n $scope.attach.Id = 0;\r\n $scope.showImage = false;\r\n $scope.attach.uploaded = false;\r\n $scope.action = 'Add';\r\n });\r\n //vm.record.stat_numAttach = vm.record.stat_numAttach - 1;\r\n });\r\n });\r\n }\r\n\r\n $scope.ok = function () {\r\n //console.info(\"ok\", $scope.attach);\r\n var result = addItem($scope.attach);\r\n\r\n //$uibModalInstance.close(result); \r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close(true);\r\n };\r\n\r\n function addItem(item) {\r\n if ($scope.action == 'Add') {\r\n item.Title = $scope.attach.Name;\r\n return datacontext.attach_add(item).then(function (data) {\r\n if (!data) return null;\r\n if (data == \"400\") return null;\r\n if (data) {\r\n $scope.dipendente.FirmaId = data.Id;\r\n return datacontext.dipendente_update($scope.dipendente).then(function (d) {\r\n $scope.firma = data;\r\n $scope.removeFile();\r\n logSuccess('Allegato aggiunto con successo ');\r\n getImage();\r\n $scope.showImage = true;\r\n $scope.attach.Id = $scope.firma.Id;\r\n $scope.attach.uploaded = false;\r\n $scope.action = 'Edit';\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n } else if ($scope.action == 'Edit') {\r\n item.Title = $scope.attach.Name;\r\n return datacontext.attach_update(item).then(function (data) {\r\n if (!data) return null;\r\n if (data == \"400\") return null;\r\n if (data) {\r\n $scope.dipendente.FirmaId = data.Id;\r\n return datacontext.dipendente_update($scope.dipendente).then(function (d) {\r\n $scope.firma = data;\r\n $scope.removeFile();\r\n logSuccess('Allegato aggiunto con successo ');\r\n getImage();\r\n $scope.showImage = true;\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n }\r\n }\r\n\r\n $scope.TSourceChanged = function () {\r\n var tSourceId = $scope.attach.TSourceId;\r\n $scope.source = [];\r\n $scope.attach.SourceId = 0;\r\n $scope.tAttach = [];\r\n $scope.attach.TAttachId = 0;\r\n return datacontext.tSource_get(tSourceId).then(function (data) {\r\n $scope.tSourceCode = data.Code;\r\n getListSource(data.Code);\r\n });\r\n\r\n return false;\r\n };\r\n\r\n function getDipendente() {\r\n return datacontext.dipendente_get($scope.dipendenteId).then(function (data) {\r\n $scope.dipendente = data;\r\n if (data.FirmaId > 0) {\r\n return datacontext.attach_get(data.FirmaId).then(function (firma) {\r\n $scope.firma = firma;\r\n $scope.attach.Id = firma.Id;\r\n\r\n if (_.isEmpty($scope.firma))\r\n $scope.showImage = false;\r\n else\r\n $scope.showImage = true;\r\n\r\n getImage();\r\n\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n function getImage() {\r\n return datacontext.getImage($rootScope.basePath + '/' + $scope.firma.Path).then(function (image) {\r\n if (image != null)\r\n $scope.firma.image = image.config.url;\r\n else\r\n $scope.firma.image = $rootScope.basePath + '/' + $scope.firma.Path;\r\n });\r\n }\r\n\r\n $scope.SourceChanged = function () {\r\n $scope.tAttach = [];\r\n $scope.attach.TAttachId = 0;\r\n getTAttach($scope.tSourceCode, $scope.attach.SourceId);\r\n\r\n return false;\r\n };\r\n\r\n function getTAttach(tSourceCode, sourceId, tAttachId) {\r\n var onlyMissing = 1;\r\n if ($scope.tAttach == null)\r\n $scope.tAttach = [];\r\n\r\n //return datacontext.tAttach_getAllList(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n return datacontext.tAttach_getAllModal(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n var listTA = data;\r\n\r\n return datacontext.tAttachVisibility_getAuth(tSourceCode).then(function (data) {\r\n\r\n var tAttach_auth = data;\r\n tAttach_auth.forEach(function (item_TAV) {\r\n\r\n var myrec = _.find(listTA, { 'Id': item_TAV.TAttachId });\r\n //console.info('myrec-prima', myrec);\r\n\r\n if (typeof (myrec) != 'undefined') {\r\n\r\n myrec.bRead = item_TAV.bRead;\r\n myrec.bInsert = item_TAV.bInsert;\r\n myrec.bUpdate = item_TAV.bUpdate;\r\n myrec.bDelete = item_TAV.bDelete;\r\n myrec.iTags = item_TAV.iTags;\r\n if (myrec.bRead)\r\n $scope.tAttach.push(myrec);\r\n //console.info('myrec', myrec);\r\n }\r\n });\r\n });\r\n //console.info('tAttach', $scope.tAttach, listTA);\r\n return $scope.tAttach;\r\n });\r\n }\r\n\r\n $scope.changeTAttach = function (tAttachId) {\r\n if (!tAttachId) return;\r\n\r\n $scope.myTAttach = _.find($scope.tAttach, { 'Id': tAttachId });\r\n //In base al tipo di file selezionato:\r\n\r\n if (typeof ($scope.myTAttach) != 'undefined') {//if (typeof ($scope.myTAttach) == 'undefined') {\r\n setTAttachParams($scope.myTAttach);\r\n }\r\n\r\n if ($scope.myTAttach.iBit1 > 0)\r\n $scope.myTAttach.checkBit1 = 0;\r\n\r\n //console.info('$scope.myTAttach', $scope.myTAttach);\r\n\r\n return $scope.bInsert;\r\n };\r\n\r\n /*\r\n function getTAttach(tSourceCode, sourceId, tAttachId) {\r\n var onlyMissing = 1;\r\n return datacontext.tAttach_getAllList(tSourceCode, 0, sourceId, onlyMissing, tAttachId).then(function (data) {\r\n return $scope.tAttach = data;\r\n });\r\n }\r\n */\r\n\r\n function getListSource(tSourceCode) {\r\n return datacontext.source_getAllList(tSourceCode).then(function (data) {\r\n return $scope.source = data;\r\n });\r\n }\r\n\r\n $scope.TitleChanged = function () {\r\n $scope.bTitleChanged = true;\r\n return false;\r\n };\r\n\r\n $scope.removeFile = function (item) {\r\n $scope.attach.Path = '';\r\n $scope.attach.Name = '';\r\n $scope.attach.KB = 0;\r\n $('#inputFile').val(\"\");\r\n\r\n $scope.attach.uploaded = false;\r\n return false;\r\n };\r\n\r\n // FILTERS\r\n var uploader = $scope.uploader = new FileUploader({\r\n url: $scope.upload_URL,\r\n removeAfterUpload: true\r\n }\r\n );\r\n\r\n uploader.filters.push({\r\n name: 'customFilter',\r\n fn: function (item /*{File|FileLikeObject}*/, options) {\r\n return this.queue.length < 10;\r\n }\r\n });\r\n\r\n // CALLBACKS\r\n\r\n uploader.onWhenAddingFileFailed = function (item /*{File|FileLikeObject}*/, filter, options) {\r\n /*\r\n console.info('onWhenAddingFileFailed', item, filter, options);\r\n console.log('onWhenAddingFileFailed - end');\r\n */\r\n };\r\n uploader.onAfterAddingFile = function (fileItem) {\r\n /*\r\n console.info('onAfterAddingFile', fileItem);\r\n console.log('onAfterAddingFile - end');\r\n console.dir(fileItem);\r\n */\r\n };\r\n uploader.onAfterAddingAll = function (addedFileItems) {\r\n /*\r\n console.info('onAfterAddingAll', addedFileItems);\r\n console.log('onAfterAddingAll - end');\r\n */\r\n };\r\n uploader.onBeforeUploadItem = function (item) {\r\n /*\r\n console.info('onBeforeUploadItem', item);\r\n console.log('onBeforeUploadItem');\r\n */\r\n };\r\n uploader.onProgressItem = function (fileItem, progress) {\r\n /*\r\n console.info('onProgressItem', fileItem, progress);\r\n console.log('onProgressItem - end');\r\n console.dir(progress);\r\n */\r\n };\r\n uploader.onProgressAll = function (progress) {\r\n /*\r\n console.info('onProgressAll', progress);\r\n console.log('onProgressAll - end');\r\n */\r\n };\r\n uploader.onSuccessItem = function (fileItem, response, status, headers) {\r\n //console.info('onSuccessItem', fileItem, response, status, headers);\r\n //console.log('onSuccessItem - end');\r\n //console.info(\"response\", response);\r\n if (response != null && response.length > 0) {\r\n var data = response[0];\r\n $scope.attach.Path = data.PathServer;\r\n //console.dir(data.PathServer);\r\n $scope.attach.Name = data.NameOrig;\r\n $scope.attach.KB = data.Length;\r\n $scope.attach.uploaded = true;\r\n $scope.ok();\r\n }\r\n\r\n };\r\n uploader.onErrorItem = function (fileItem, response, status, headers) {\r\n /*\r\n console.info('onErrorItem', fileItem, response, status, headers);\r\n console.log('onErrorItem - end');\r\n */\r\n };\r\n uploader.onCancelItem = function (fileItem, response, status, headers) {\r\n /*\r\n console.info('onCancelItem', fileItem, response, status, headers);\r\n console.log('onCancelItem - end');\r\n */\r\n };\r\n uploader.onCompleteItem = function (fileItem, response, status, headers) {\r\n /*\r\n console.info('onCompleteItem', fileItem, response, status, headers);\r\n console.log('onCompleteItem - end');\r\n */\r\n };\r\n uploader.onCompleteAll = function () {\r\n /*\r\n console.info('onCompleteAll');\r\n console.log('onCompleteAll - end');\r\n */\r\n };\r\n\r\n //console.info('uploader', uploader);\r\n\r\n\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'autorizzazioneAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'autorizzazione','users', 'roles', autorizzazioneAddEditFn]);\r\n\r\n function autorizzazioneAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, autorizzazione, users, roles) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.users = users;\r\n $scope.roles = roles;\r\n $scope.autorizzazione = autorizzazione;\r\n\r\n $scope.showCosti = false;\r\n $scope.showProfiliOrari = false;\r\n $scope.showTeam = false;\r\n\r\n if ($scope.autorizzazione.Id == 0) { // sono nel nuovo\r\n $scope.titolo = 'Nuova autorizzazione';\r\n }\r\n else { // sono in modifica\r\n $scope.titolo = 'Modifica autorizzazione';\r\n $scope.showCosti = ($scope.autorizzazione && (($scope.autorizzazione.iTags & 2) == 2));\r\n $scope.showProfiliOrari = ($scope.autorizzazione && (($scope.autorizzazione.iTags & 4) == 4));\r\n $scope.showTeam = ($scope.autorizzazione && (($scope.autorizzazione.iTags & 8) == 8));\r\n }\r\n\r\n $scope.area = [ { Name: 'Costi', Value: 2 },\r\n { Name: 'Profili Orari', Value: 4 },\r\n { Name: 'Team', Value: 8 }\r\n ];\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n if ($scope.autorizzazione.Id == 0) { // sono nel nuovo\r\n addItem($scope.autorizzazione).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.autorizzazione).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.authorization_update(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n return data; \r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.authorization_add(item).then(function (data) { \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n\r\n $scope.calcolaTag = function () {\r\n var costiCheck = 0;\r\n var profiliOrariCheck = 0;\r\n var teamCheck = 0;\r\n\r\n $scope.autorizzazione.iTags = 0;\r\n if ($scope.showCosti) {\r\n costiCheck = $scope.area[0].Value;\r\n }\r\n\r\n if ($scope.showProfiliOrari) {\r\n profiliOrariCheck = $scope.area[1].Value;\r\n }\r\n\r\n if ($scope.showTeam) {\r\n teamCheck = $scope.area[2].Value;\r\n }\r\n\r\n $scope.autorizzazione.iTags = costiCheck + profiliOrariCheck + teamCheck;\r\n //$(\"input:checkbox[name=areaTag]:checked\").each(function () {\r\n // areaList.push($(this).val());\r\n //});\r\n //areaList.forEach(function (item) {\r\n // $scope.autorizzazione.iTags += parseInt(item);\r\n //}); \r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'aziendaAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', 'common', 'azienda', aziendaAddFn]);\r\n\r\n function aziendaAddFn($scope, $uibModalInstance, datacontext, common, azienda) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.azienda = azienda;\r\n $scope.titolo = 'Nuovo azienda';\r\n\r\n //datapicker\r\n $scope.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened = !$scope.opened;\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n addItem($scope.azienda).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.azienda_add(item).then(function (data) { \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'aziendaPartnerAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'aziendaPartner','province', 'comuni', '$translate', aziendaPartnerAddFn]);\r\n\r\n function aziendaPartnerAddFn($scope, $uibModalInstance, $filter, datacontext, common, aziendaPartner, province, comuni, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.province = province;\r\n $scope.aziendaPartner = aziendaPartner;\r\n $scope.comuni = [];\r\n\r\n $scope.getComuni = getComuni;\r\n \r\n $scope.titolo = $translate.instant('Nuova aziendaPartner');\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n addItem($scope.aziendaPartner).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.aziendaPartner_add(item).then(function (data) { \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato'));\r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n\r\n function getComuni(idprov) {\r\n if (!idprov || idprov == 0) return $scope.comuni = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return $scope.comuni = data;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'clienteAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'cliente','province', 'comuni', '$translate', clienteAddFn]);\r\n\r\n function clienteAddFn($scope, $uibModalInstance, $filter, datacontext, common, cliente, province, comuni, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.province = province;\r\n $scope.cliente = cliente;\r\n $scope.comuni = [];\r\n\r\n $scope.getComuni = getComuni;\r\n \r\n $scope.titolo = $translate.instant('Nuovo cliente');\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n addItem($scope.cliente).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.cliente_add(item).then(function (data) { \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato'));\r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n\r\n function getComuni(idprov) {\r\n if (!idprov || idprov == 0) return $scope.comuni = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return $scope.comuni = data;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'attivitaAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'attivita', '$translate', attivitaAddEditFn]);\r\n\r\n function attivitaAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, attivita, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.attivita = attivita;\r\n\r\n if (attivita.DtInizio)\r\n $scope.attivita.DtInizio = new Date(attivita.DtInizio);\r\n if (attivita.DtFine)\r\n $scope.attivita.DtFine = new Date(attivita.DtFine);\r\n\r\n if ($scope.attivita.Id == 0) { // sono nel nuovo\r\n $scope.titolo = $translate.instant('Nuova Attivita'); \r\n }\r\n else { // sono in modifica\r\n $scope.titolo = $translate.instant('Modifica Attivita');\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.attivita.Id == 0) { // sono nel nuovo\r\n addItem($scope.attivita).then(function (result) {\r\n if (result && result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.attivita).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.attivita_update(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la modifica del dato'));\r\n return null;\r\n }\r\n return data;\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) { \r\n return datacontext.attivita_add(item).then(function (data) { \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato'));\r\n return null;\r\n }\r\n\r\n return data;\r\n });\r\n }\r\n\r\n $scope.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened = !$scope.opened;\r\n $scope.opened2 = false;\r\n };\r\n\r\n $scope.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened2 = !$scope.opened2;\r\n $scope.opened = false;\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'budgetAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'budget', '$translate', budgetAddFn]);\r\n\r\n function budgetAddFn($scope, $uibModalInstance, $filter, datacontext, common, budget, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.budget = budget;\r\n $scope.titolo = $translate.instant('NuovoBudget'); \r\n\r\n //datapicker\r\n $scope.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened = !$scope.opened;\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n addItem($scope.budget).then(function (result) {\r\n if (result && result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Aggiunta elemento\r\n function addItem(item) { \r\n return datacontext.budgetCommessa_add(item).then(function (data) { \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato'));\r\n return null;\r\n }\r\n\r\n return data;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'commessaAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', 'datacontext', 'common', 'commessa', '$translate', commessaAddFn]);\r\n\r\n function commessaAddFn($scope, $rootScope, $uibModalInstance, datacontext, common, commessa, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.commessa = commessa;\r\n getCodiceCommessa();\r\n $scope.item = {};\r\n $scope.item.clienti = getClienti(); \r\n $scope.disableSave = false;\r\n\r\n $scope.item.isPersonale = $rootScope.isAuthorized('PERSONALE');\r\n\r\n //datapicker \r\n $scope.open1 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened1 = !$scope.opened1;\r\n $scope.opened2 = false;\r\n };\r\n $scope.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened2 = !$scope.opened2;\r\n $scope.opened1 = false;\r\n }; \r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n addItem($scope.commessa).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function getCodiceCommessa() { \r\n return datacontext.commessa_getMaxCodiceCommessa().then(function (codice) {\r\n if (codice) { \r\n $scope.commessa.Codice = codice;\r\n }\r\n else\r\n logError($translate.instant('Impossibile ricavare il codice commessa'));\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) { \r\n $scope.disableSave = true;\r\n item.Stato = 3;\r\n\r\n return datacontext.commessa_add(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato')); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n $scope.disableSave = false;\r\n return data;\r\n });\r\n }\r\n\r\n function getClienti() {\r\n datacontext.cliente_getAllList().then(function (data) {\r\n return $scope.item.clienti = data;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'commessaMembroSelect';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$uibModalInstance', 'datacontext', 'commessaId', commessaMembroSelectFn]);\r\n\r\n function commessaMembroSelectFn($rootScope, $scope, $uibModalInstance, datacontext, commessaId) {\r\n $scope.item = {};\r\n $scope.item.fTesto = '';\r\n $scope.item.dipendenti = getDipendenti();\r\n $scope.item.cerca = getDipendenti;\r\n $scope.item.loading = true;\r\n $scope.item.ruolo = 'M';\r\n $scope.commessaId = commessaId;\r\n $scope.personale = $rootScope.isAuthorized('PERSONALE');\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.ok = function (isValid) {\r\n var dipendenti = [];\r\n $(\"input:checkbox[name=testId]:checked\").each(function () {\r\n dipendenti.push($(this).val());\r\n }); \r\n\r\n addItem($scope.commessaId, dipendenti, $scope.item.ruolo).then(function (result) {\r\n $uibModalInstance.close(result);\r\n });\r\n };\r\n\r\n function getDipendenti() {\r\n $scope.item.loading = true;\r\n return datacontext.dipendente_getAllForCommessa(0, 0, 0, $scope.item.fTesto, 0, '').then(function (data) { \r\n $scope.item.loading = false;\r\n return $scope.item.dipendenti = data;\r\n });\r\n }\r\n\r\n function addItem(commessaId, dipendenti, ruolo) {\r\n return datacontext.dipendentiCommessa_addList(commessaId, dipendenti, ruolo).then(function (data) {\r\n return data;\r\n });\r\n }\r\n\r\n $scope.toggleAll = function () {\r\n if ($scope.isAllSelected) {\r\n $(\"input:checkbox[name=testId]\").each(function () {\r\n this.checked = true;\r\n });\r\n } else {\r\n $(\"input:checkbox[name=testId]\").each(function () {\r\n this.checked = false;\r\n });\r\n }\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'commessaSezioneAdd';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$uibModalInstance', 'datacontext', 'commessaId', commessaSezioneAddFn]);\r\n\r\n function commessaSezioneAddFn($rootScope, $scope, $uibModalInstance, datacontext, commessaId) {\r\n $scope.item = {};\r\n $scope.item.fTesto = '';\r\n $scope.item.sezioni = getSezioni();\r\n $scope.item.cerca = getSezioni;\r\n $scope.item.loading = true;\r\n $scope.commessaId = commessaId;\r\n $scope.personale = $rootScope.isAuthorized('PERSONALE');\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.ok = function (isValid) {\r\n var sezioni = [];\r\n $(\"input:checkbox[name=testId]:checked\").each(function () {\r\n sezioni.push($(this).val());\r\n }); \r\n\r\n addItem($scope.commessaId, sezioni).then(function (result) {\r\n $uibModalInstance.close(result);\r\n });\r\n };\r\n\r\n function getSezioni() {\r\n $scope.item.loading = true;\r\n return datacontext.sezione_getAll(0, 0, $scope.item.fTesto, 'codice').then(function (data) { \r\n $scope.item.loading = false;\r\n return $scope.item.sezioni = data;\r\n });\r\n }\r\n\r\n function addItem(commessaId, sezioni) {\r\n return datacontext.commessaSezione_addList(commessaId, sezioni).then(function (data) {\r\n return data;\r\n });\r\n }\r\n\r\n $scope.toggleAll = function () {\r\n if ($scope.isAllSelected) {\r\n $(\"input:checkbox[name=testId]\").each(function () {\r\n this.checked = true;\r\n });\r\n } else {\r\n $(\"input:checkbox[name=testId]\").each(function () {\r\n this.checked = false;\r\n });\r\n }\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'commessaSezioneEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'sezione', '$translate', commessaSezioneEditFn]);\r\n\r\n function commessaSezioneEditFn($scope, $uibModalInstance, $filter, datacontext, common, sezione, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.sezione = sezione;\r\n if (sezione.DtInizio)\r\n $scope.sezione.DtInizio = new Date(sezione.DtInizio);\r\n if (sezione.DtFine)\r\n $scope.sezione.DtFine = new Date(sezione.DtFine);\r\n\r\n $scope.titolo = $translate.instant('Modifica') + \" \" + $translate.instant('CentroDiCosto');\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n editItem($scope.sezione).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.commessaSezione_update(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la modifica del dato'));\r\n return null;\r\n }\r\n return data;\r\n });\r\n }\r\n $scope.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened = !$scope.opened;\r\n $scope.opened2 = false;\r\n };\r\n\r\n $scope.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened2 = !$scope.opened2;\r\n $scope.opened = false;\r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n\r\n var bootstrapModule = angular.module('common.bootstrap', ['ui.bootstrap']);\r\n\r\n bootstrapModule.factory('bootstrap.dialog', ['$uibModal', '$templateCache','$translate', modalDialog]);\r\n\r\n function modalDialog($uibModal, $templateCache, $translate) {\r\n var service = {\r\n deleteDialog: deleteDialog,\r\n confirmationDialog: confirmationDialog\r\n };\r\n\r\n $templateCache.put('modalDialog.tpl.html',\r\n '
' +\r\n '
' +\r\n ' ' +\r\n '

{{title}}

' +\r\n '
' +\r\n '
' +\r\n '

{{message}}

' +\r\n '
' +\r\n '
' +\r\n ' ' +\r\n ' ' +\r\n '
' +\r\n '
');\r\n\r\n return service;\r\n\r\n function deleteDialog(itemName) {\r\n var title = $translate.instant('Conferma di Cancellazione');\r\n itemName = itemName || 'record';\r\n var msg = $translate.instant('Eliminare') + \" \" + itemName + '?';\r\n\r\n return confirmationDialog(title, msg);\r\n }\r\n\r\n function confirmationDialog(title, msg, okText, cancelText) {\r\n\r\n var modalOptions = {\r\n templateUrl: 'modalDialog.tpl.html',\r\n controller: ModalInstance,\r\n keyboard: true,\r\n resolve: {\r\n options: function () {\r\n return {\r\n title: title,\r\n message: msg,\r\n okText: okText,\r\n cancelText: cancelText\r\n };\r\n }\r\n }\r\n };\r\n\r\n return $uibModal.open(modalOptions).result;\r\n }\r\n }\r\n\r\n var ModalInstance = ['$scope', '$uibModalInstance', 'options', '$translate',\r\n function ($scope, $uibModalInstance, options, $translate) {\r\n $scope.title = options.title || 'Title';\r\n $scope.message = options.message || '';\r\n $scope.okText = options.okText || 'OK';\r\n $scope.cancelText = options.cancelText || $translate.instant('Annulla');\r\n $scope.ok = function () { $uibModalInstance.close('ok'); };\r\n $scope.cancel = function () { $uibModalInstance.dismiss('cancel'); };\r\n }];\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'costiBaseAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'costiBase','$translate', costiBaseAddFn]);\r\n\r\n function costiBaseAddFn($scope, $uibModalInstance, $filter, datacontext, common, costiBase, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n //Gestione date\r\n $scope.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened = !$scope.opened;\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n\r\n $scope.costiBase = costiBase;\r\n if ($scope.costiBase.Id == 0) { // sono nel nuovo\r\n $scope.Titolo = $translate.instant('NuovoCosto');\r\n }\r\n /* else { // sono in modifica\r\n $scope.Titolo = 'Modifica Costo';\r\n }*/\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n if ($scope.costiBase.Id == 0) { // sono nel nuovo\r\n addItem($scope.costiBase).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n /*else { // sono in modifica\r\n editItem($scope.costiBase).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }*/\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n /* function editItem(item) {\r\n return datacontext.costiBase_update(item).then(function (data) {\r\n if (data == '300') {\r\n logError(\"Team esistente per l'anno \" + item.Anno);\r\n return null;\r\n }\r\n\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }*/\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.costiBase_add(item).then(function (data) {\r\n \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato')); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'anagraficaDipendenteEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', '$uibModal', 'datacontext', '_', 'common', 'anagraficaDipendente', anagraficaDipendenteEditFn]);\r\n\r\n function anagraficaDipendenteEditFn($scope, $rootScope, $uibModalInstance, $uibModal, datacontext, _, common, anagraficaDipendente) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.item = {};\r\n $scope.item.province = [];\r\n $scope.item.province = getProvince();\r\n $scope.item.comuni = [];\r\n $scope.item.aziendePartner = [];\r\n $scope.item.aziendePartner = getListAziendePartner();\r\n $scope.anagrafica = anagraficaDipendente;\r\n if ($scope.anagrafica.ProvinciaId)\r\n getComuni($scope.anagrafica.ProvinciaId);\r\n\r\n if ($scope.anagrafica.DataNascita) $scope.anagrafica.DataNascita = new Date($scope.anagrafica.DataNascita);\r\n if ($scope.anagrafica.DataInizio) $scope.anagrafica.DataInizio = new Date($scope.anagrafica.DataInizio);\r\n if ($scope.anagrafica.DataFine) $scope.anagrafica.DataFine = new Date($scope.anagrafica.DataFine);\r\n\r\n $scope.titolo = 'Edit personal info';\r\n\r\n $scope.getComuni = getComuni;\r\n\r\n //datapicker\r\n $scope.dtInizio_open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.dtInizio_opened = !$scope.dtInizio_opened;\r\n $scope.dtFine_opened = $scope.dtNascita_opened = false;\r\n };\r\n $scope.dtFine_open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.dtFine_opened = !$scope.dtFine_opened;\r\n $scope.dtInizio_opened = $scope.dtNascita_opened = false;\r\n };\r\n $scope.dtNascita_open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.dtNascita_opened = !$scope.dtNascita_opened;\r\n $scope.dtInizio_opened = $scope.dtFine_opened = false;\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n editItem($scope.anagrafica).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (!result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n \r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.dipendente_update(item).then(function (data) {\r\n if (!data) {\r\n logSuccess('Dato salvato');\r\n }\r\n else {\r\n logError('Impossibile salvare il dato');\r\n } \r\n return data;\r\n });\r\n }\r\n\r\n function getProvince() {\r\n if ($scope.item.province.length > 0) return;\r\n\r\n datacontext.arrProvincie().then(function (data) {\r\n $scope.item.province = data;\r\n });\r\n }\r\n\r\n function getComuni(idprov) {\r\n if (!idprov || idprov == 0) return $scope.item.comuni = [];\r\n\r\n return datacontext.istat_comune_getAllList(idprov).then(function (data) {\r\n return $scope.item.comuni = data;\r\n });\r\n }\r\n\r\n function getListAziendePartner() {\r\n return datacontext.aziendaPartner_getAllList().then(function (data) {\r\n return $scope.item.aziendePartner = data;\r\n });\r\n }\r\n\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'avvisoFirma';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', avvisoFirmaFn]);\r\n\r\n function avvisoFirmaFn($scope, $rootScope, $uibModalInstance) { \r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'competenzaDigitaleAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', '_', 'competenza', competenzaDigitaleAddEditFn]);\r\n\r\n function competenzaDigitaleAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, _, competenza) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.competenza = competenza;\r\n\r\n if ($scope.competenza.Id == 0) { \r\n $scope.titolo = 'New Computer Skill'; \r\n }\r\n else { \r\n $scope.titolo = 'Edit Computer Skill';\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.competenza.Id == 0) {\r\n addItem($scope.competenza).then(function (result) {\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { \r\n editItem($scope.competenza).then(function (result) { \r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.competenzaDigitale_update(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\");\r\n return null;\r\n }\r\n return data; \r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.competenzaDigitale_add(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\");\r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'competenzaTecnicaAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', '_', 'competenza', competenzaTecnicaAddEditFn]);\r\n\r\n function competenzaTecnicaAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, _, competenza) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.competenza = competenza;\r\n\r\n if ($scope.competenza.Id == 0) { \r\n $scope.titolo = 'New Technical Skill'; \r\n }\r\n else { \r\n $scope.titolo = 'Edit Technical Skill';\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.competenza.Id == 0) {\r\n addItem($scope.competenza).then(function (result) {\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { \r\n editItem($scope.competenza).then(function (result) { \r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.competenzaTecnica_update(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\");\r\n return null;\r\n }\r\n return data; \r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.competenzaTecnica_add(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\");\r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'dettaglioProgettoAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', '$uibModal', 'datacontext', '_', 'common', 'progetto', dettaglioProgettoAddEditFn]);\r\n\r\n function dettaglioProgettoAddEditFn($scope, $rootScope, $uibModalInstance, $uibModal, datacontext, _, common, progetto) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.item = {};\r\n $scope.progetto = progetto;\r\n\r\n $scope.disableField = !$rootScope.isAuthorized('PERSONALE');\r\n\r\n $scope.item.otherCostumer = false;\r\n $scope.item.clienti = getClienti();\r\n\r\n if ($scope.progetto.Id == 0) {\r\n $scope.titolo = 'New Project';\r\n }\r\n else {\r\n $scope.titolo = 'Edit Project';\r\n\r\n if ($scope.progetto.ClienteId == 0)\r\n $scope.item.otherCostumer = true;\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.progetto.Id == 0) {\r\n addItem($scope.progetto).then(function (result) {\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.progetto).then(function (result) { \r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function getClienti() {\r\n datacontext.cliente_getAllList().then(function (data) {\r\n return $scope.item.clienti = data;\r\n });\r\n }\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n if (!$scope.item.otherCostumer) {\r\n var index = _.findIndex($scope.item.clienti, { 'Id': item.ClienteId });\r\n if (index != -1)\r\n item.Cliente = $scope.item.clienti[index].Name;\r\n } else\r\n item.ClienteId = 0;\r\n\r\n return datacontext.dettaglioProgetto_update(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n if (!$scope.item.otherCostumer) {\r\n var index = _.findIndex($scope.item.clienti, { 'Id': item.ClienteId });\r\n if (index != -1)\r\n item.Cliente = $scope.item.clienti[index].Name;\r\n } else\r\n item.ClienteId = 0;\r\n\r\n return datacontext.dettaglioProgetto_add(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n\r\n $scope.changeCostumer = function () {\r\n if ($scope.item.otherCostumer && $scope.progetto.ClienteId > 0)\r\n $scope.progetto.Cliente = '';\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'esperienzaLavorativaAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', '$uibModal', 'datacontext', '_', 'common', 'esperienzaLavorativa', esperienzaLavorativaAddEditFn]);\r\n\r\n function esperienzaLavorativaAddEditFn($scope, $rootScope, $uibModalInstance, $uibModal, datacontext, _, common, esperienzaLavorativa) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.item = {};\r\n $scope.esperienzaLavorativa = esperienzaLavorativa;\r\n\r\n $scope.item.editForm = false;\r\n\r\n if ($scope.esperienzaLavorativa.Id == 0) {\r\n $scope.titolo = 'New Work Experience';\r\n }\r\n else {\r\n $scope.titolo = 'Edit Work Experience';\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.esperienzaLavorativa.Id == 0) {\r\n addItem($scope.esperienzaLavorativa).then(function (result) {\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { \r\n editItem($scope.esperienzaLavorativa).then(function (result) {\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.esperienzaLavorativa_update(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.esperienzaLavorativa_add(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'formazioneAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'formazione', formazioneAddEditFn]);\r\n\r\n function formazioneAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, formazione) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.formazione = formazione;\r\n\r\n if ($scope.formazione.Id == 0) { // sono nel nuovo\r\n $scope.titolo = 'New Training'; \r\n }\r\n else { // sono in modifica\r\n $scope.titolo = 'Edit Training';\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.formazione.Id == 0) { // sono nel nuovo\r\n addItem($scope.formazione).then(function (result) {\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.formazione).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.formazione_update(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.formazione_add(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'istruzioneAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'istruzione', istruzioneAddEditFn]);\r\n\r\n function istruzioneAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, istruzione) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.istruzione = istruzione;\r\n\r\n if ($scope.istruzione.Id == 0) { // sono nel nuovo\r\n $scope.titolo = 'New Education'; \r\n }\r\n else { // sono in modifica\r\n $scope.titolo = 'Edit Education';\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.istruzione.Id == 0) { // sono nel nuovo\r\n addItem($scope.istruzione).then(function (result) {\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.istruzione).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.istruzione_update(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) { \r\n return datacontext.istruzione_add(item).then(function (data) { \r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'linguaAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', '_', 'lingua', linguaAddEditFn]);\r\n\r\n function linguaAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, _, lingua) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.lingua = lingua;\r\n $scope.item = {};\r\n $scope.item.otherLanguage = false;\r\n $scope.item.livelli = [{ Id: 'Basic', Name: 'Basic User' }, { Id: 'Intermediate', Name: 'Intermediate User' }, { Id: 'Advanced', Name: 'Advanced User' }];\r\n $scope.item.lingue = [{ Id: 'Italian', Name: 'Italian' }, { Id: 'English', Name: 'English' }, { Id: 'French', Name: 'French' }, { Id: 'Spanish', Name: 'Spanish' }, { Id: 'German', Name: 'German' }];\r\n\r\n if ($scope.lingua.Id == 0) { // sono nel nuovo\r\n $scope.titolo = 'New Language'; \r\n }\r\n else { // sono in modifica\r\n $scope.titolo = 'Edit Language';\r\n\r\n if ($scope.lingua.Nome) {\r\n var check = _.findIndex($scope.item.lingue, { 'Id': $scope.lingua.Nome });\r\n if (check == -1)\r\n $scope.item.otherLanguage = true;\r\n }\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.lingua.Id == 0) { // sono nel nuovo\r\n addItem($scope.lingua).then(function (result) {\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.lingua).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.lingua_update(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.lingua_add(item).then(function (data) {\r\n if (data == \"400\") {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n\r\n $scope.changeLanguage = function () {\r\n if ($scope.item.otherLanguage)\r\n $scope.lingua.Nome = '';\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'stampaCV';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', '_', 'dipendente', stampaCVFn]);\r\n\r\n function stampaCVFn($scope, $uibModalInstance, $filter, datacontext, common, _, dipendente) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.item = {};\r\n $scope.item.Signature = true;\r\n $scope.item.Attach = false;\r\n $scope.item.Logo = true;\r\n $scope.item.Address = true;\r\n $scope.item.BusinessPhone = true;\r\n $scope.item.MobilePhone = true;\r\n $scope.item.DataStampa = getDate();\r\n\r\n if (dipendente.Rev)\r\n $scope.item.Rev = dipendente.Rev;\r\n else\r\n $scope.item.Rev;\r\n if (dipendente.DataRev)\r\n $scope.item.DataRev = new Date(dipendente.DataRev);\r\n else\r\n $scope.item.DataRev;\r\n\r\n //datapicker\r\n $scope.open = function ($event, i) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n if (i == 1) {\r\n $scope.opened = !$scope.opened;\r\n $scope.opened2 = false;\r\n }\r\n else if (i == 2) {\r\n $scope.opened2 = !$scope.opened2;\r\n $scope.opened = false;\r\n }\r\n \r\n };\r\n\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n if ($scope.item) {\r\n $scope.item.DataStampa = moment($scope.item.DataStampa).format('DD/MM/YYYY');\r\n if ($scope.item.DataRev)\r\n $scope.item.DataRev = moment($scope.item.DataRev).format('DD/MM/YYYY');\r\n $uibModalInstance.close($scope.item);\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function getDate() {\r\n return datacontext.timeSheet_getDate().then(function (data) {\r\n return $scope.item.DataStampa = new Date(data);\r\n });\r\n }\r\n\r\n $scope.clearRev = function () {\r\n if ($scope.item.Rev == null)\r\n $scope.item.Rev = undefined;\r\n if ($scope.item.DataRev == null)\r\n $scope.item.DataRev = undefined;\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'tipologiaSelect';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', '$filter', 'datacontext', 'common', '_', 'generico', 'area', tipologiaSelectFn]);\r\n\r\n function tipologiaSelectFn($scope, $rootScope, $uibModalInstance, $filter, datacontext, common, _, generico, area) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.item = {};\r\n $scope.item.generico = generico;\r\n $scope.item.area = area;\r\n $scope.item.areeTecniche = [];\r\n $scope.item.tipologie = [];\r\n $scope.item.arrayChecked = [];\r\n $scope.item.AreaTecnicaId = null;\r\n $scope.enable = false;\r\n $scope.getTipologia = getTipologia;\r\n $scope.checkTipo = checkTipo;\r\n $scope.isAllSelected = false;\r\n\r\n $scope.NomeArea = area;\r\n switch (area) {\r\n case 'LINGUAGGI': $scope.NomeArea = 'Language';\r\n break;\r\n case 'NORME': $scope.NomeArea = 'Rule';\r\n break;\r\n case 'ATTIVITA': $scope.NomeArea = 'Activity';\r\n break;\r\n }\r\n\r\n if ($scope.item.generico)\r\n getTipologia();\r\n else {\r\n getAreeTecniche();\r\n if ($rootScope.AreaTecnicaId) {\r\n $scope.item.AreaTecnicaId = $rootScope.AreaTecnicaId;\r\n getTipologia();\r\n } \r\n }\r\n\r\n function getTipologia() {\r\n switch (area) {\r\n case 'SOFTWARE': getTipoSoftware();\r\n if (!$scope.item.generico)\r\n $rootScope.AreaTecnicaId = $scope.item.AreaTecnicaId;\r\n break;\r\n case 'LINGUAGGI': getTipoLinguaggi();\r\n break;\r\n case 'NORME': getTipoNorme();\r\n break;\r\n case 'STANDARD': getTipoStandard();\r\n break;\r\n case 'ATTIVITA': getTipoAttivita();\r\n $rootScope.AreaTecnicaId = $scope.item.AreaTecnicaId;\r\n break;\r\n }\r\n }\r\n\r\n $scope.titolo = $scope.NomeArea + ' Typology';\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = [];\r\n $scope.item.arrayChecked.forEach(function (item) {\r\n var o = _.find($scope.item.tipologie, { 'Id': parseInt(item) });\r\n var obj = {};\r\n obj.Id = o.Id;\r\n if (obj.Id == 0)\r\n obj.TestoAltro = $scope.item.TestoAltro;\r\n else\r\n obj.TestoAltro = o.Name;\r\n obj.AreaTecnicaId = $scope.item.AreaTecnicaId;\r\n result.push(obj);\r\n });\r\n $uibModalInstance.close(result);\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.toggleAll = function () {\r\n $scope.isAllSelected = !$scope.isAllSelected;\r\n $scope.item.arrayChecked = [];\r\n if ($scope.isAllSelected) {\r\n $(\"input:checkbox[name=tipoId]\").each(function () {\r\n if ($(this).val() != 0) {\r\n this.checked = true;\r\n $scope.item.arrayChecked.push($(this).val());\r\n }\r\n });\r\n } else {\r\n $(\"input:checkbox[name=tipoId]\").each(function () {\r\n this.checked = false;\r\n $scope.item.arrayChecked = [];\r\n $scope.enable = false;\r\n });\r\n }\r\n };\r\n\r\n function checkTipo(item) {\r\n if (item.Name == 'Other')\r\n $scope.enable = !$scope.enable;\r\n\r\n $scope.item.arrayChecked = [];\r\n $(\"input:checkbox[name=tipoId]:checked\").each(function () {\r\n $scope.item.arrayChecked.push($(this).val());\r\n });\r\n }\r\n\r\n function getTipoSoftware() {\r\n return datacontext.tipoSoftware_getAllByAreaTecnicaId($scope.item.AreaTecnicaId).then(function (data) {\r\n $scope.item.tipologie = [];\r\n if (data && data.length > 0) {\r\n if ($scope.item.generico)\r\n data.push({ Id: 0, Name: 'Other' });\r\n\r\n return $scope.item.tipologie = data;\r\n }\r\n });\r\n }\r\n\r\n function getTipoLinguaggi() {\r\n return datacontext.tipoLinguaggio_getAllList().then(function (data) {\r\n $scope.item.tipologie = [];\r\n if (data && data.length > 0) {\r\n data.push({ Id: 0, Name: 'Other' });\r\n return $scope.item.tipologie = data;\r\n }\r\n });\r\n }\r\n\r\n function getTipoNorme() {\r\n return datacontext.tipoNorma_getAllList().then(function (data) {\r\n $scope.item.tipologie = [];\r\n if (data && data.length > 0) {\r\n data.push({ Id: 0, Name: 'Other' });\r\n return $scope.item.tipologie = data;\r\n }\r\n });\r\n }\r\n\r\n function getTipoStandard() {\r\n return datacontext.tipoStandard_getAllList().then(function (data) {\r\n $scope.item.tipologie = [];\r\n if (data && data.length > 0) {\r\n data.push({ Id: 0, Name: 'Other' });\r\n return $scope.item.tipologie = data;\r\n }\r\n });\r\n }\r\n\r\n function getTipoAttivita() {\r\n return datacontext.tipoAttivita_getAllByAreaTecnicaId($scope.item.AreaTecnicaId).then(function (data) {\r\n $scope.item.tipologie = [];\r\n if (data && data.length > 0) {\r\n if ($scope.item.area == 'ATTIVITA' && $scope.item.AreaTecnicaId == 10)\r\n data.push({ Id: 0, Name: 'Other' });\r\n return $scope.item.tipologie = data;\r\n }\r\n });\r\n }\r\n\r\n function getAreeTecniche() {\r\n return datacontext.areaTecnica_getAllList().then(function (data) {\r\n return $scope.item.areeTecniche = data;\r\n });\r\n }\r\n\r\n \r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'avvisoCurriculum';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', avvisoCurriculumFn]);\r\n\r\n function avvisoCurriculumFn($scope, $rootScope, $uibModalInstance) { \r\n $scope.personale = $rootScope.isAuthorized('PERSONALE');\r\n\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'commessaDipendenteAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', commessaSelectFn]);\r\n\r\n function commessaSelectFn($scope, $uibModalInstance, datacontext) {\r\n $scope.item = {};\r\n $scope.item.fTesto = '';\r\n $scope.item.commesse = getCommessa();\r\n $scope.item.selected = selected;\r\n $scope.item.cerca = getCommessa;\r\n $scope.item.loading = true;\r\n $scope.item.ruolo = 'M';\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function selected(id, codice, titolo, ruolo) {\r\n var resultItem = { 'id': id, 'codice': codice, 'titolo': titolo, 'ruolo': ruolo };\r\n $uibModalInstance.close(resultItem);\r\n }\r\n\r\n function getCommessa() {\r\n $scope.item.loading = true;\r\n return datacontext.commessa_getAllByFilter(0, 0, $scope.item.fTesto, -1, -1, 'codice').then(function (data) {\r\n $scope.item.loading = false;\r\n return $scope.item.commesse = data;\r\n });\r\n } \r\n\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'costoAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'costo', '$translate', costoAddEditFn]);\r\n\r\n function costoAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, costo, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n //Gestione date\r\n $scope.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened = !$scope.opened;\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n $scope.costo = costo;\r\n\r\n //console.info(\"costo\", costo);\r\n if ($scope.costo.Id == 0) { // sono nel nuovo\r\n $scope.titolo = $translate.instant('NuovoCosto');\r\n $scope.costo.DataFine = new Date(2100, 11, 31, 0, 0, 0, 0); \r\n }\r\n else { // sono in modifica\r\n $scope.titolo = $translate.instant('ModificaCosto');\r\n $scope.costo.DataFine = new Date($scope.costo.DataFine);\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n if ($scope.costo.Id == 0) { // sono nel nuovo\r\n addItem($scope.costo).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.costo).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.costoBase = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.costoDipendente_update(item).then(function (data) {\r\n if (data == '300') {\r\n logError($translate.instant('Costo esistente per l anno') + \" \" + item.Anno);\r\n return null;\r\n }\r\n\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato')); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) { \r\n return datacontext.costoDipendente_add(item).then(function (data) { \r\n if (data == '300') {\r\n logError($translate.instant('Costo esistente per l anno') + \" \" + item.Anno);\r\n return null;\r\n } \r\n\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato')); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'dipendenteAdd';\r\n angular.module('app').controller(controllerId, ['$scope', 'common', '$uibModalInstance', 'datacontext', '$translate', dipendenteAddFn]);\r\n\r\n function dipendenteAddFn($scope, common, $uibModalInstance, datacontext, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.dipendente = {};\r\n $scope.dipendente.Id = 0;\r\n $scope.dipendente.RuoloId = 2;\r\n\r\n $scope.item = {};\r\n $scope.item.ruoli = getRuoli();\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var obj = {\r\n \"Matricola\": $scope.dipendente.Matricola,\r\n \"Nominativo\": $scope.dipendente.Cognome + ' ' + $scope.dipendente.Nome,\r\n \"Username\": $scope.dipendente.Username,\r\n \"Email\": $scope.dipendente.Email,\r\n \"Password\": $scope.dipendente.Password,\r\n \"RuoloId\": $scope.dipendente.RuoloId\r\n };\r\n\r\n addItem(obj).then(function (result) {\r\n if (result == '502') logError($translate.instant('Username gia registrata'));\r\n else if (result == '404') logError($translate.instant('Email gia registrata'));\r\n else if (result == '406') logError($translate.instant('La matricola deve contenere 5 caratteri'));\r\n else if (result == '501') logError($translate.instant('Matricola gia registrata'));\r\n else if (result == '300') logError($translate.instant('Raggiunto il limite di utenti registrabili'));\r\n else if (!result || result.Id == null || result.Id == 0) $uibModalInstance.close(null);\r\n else $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n function getRuoli() {\r\n return datacontext.role_getAll().then(function (data) {\r\n var roles = [];\r\n data.forEach(function (item) {\r\n if (item.Name != \"SUPER\")\r\n roles.push(item);\r\n });\r\n return $scope.item.ruoli = roles;\r\n });\r\n }\r\n\r\n function suggest () {\r\n if (!$scope.dipendente.Nome || !$scope.dipendente.Cognome)\r\n return;\r\n\r\n datacontext.user_suggestUserame($scope.dipendente.Nome, $scope.dipendente.Cognome).then(function (username) {\r\n if (!username || username.trim().length == 0)\r\n return;\r\n\r\n $scope.dipendente.Username = username;\r\n\r\n datacontext.user_suggestPassword().then(function (password) {\r\n if (!password || password.trim().length == 0)\r\n return;\r\n\r\n $scope.dipendente.Password = password;\r\n });\r\n });\r\n }\r\n\r\n function addItem(item) {\r\n return datacontext.dipendente_add(item).then(function (data) {\r\n return data;\r\n });\r\n }\r\n\r\n $scope.accountChange = function () { \r\n if ($scope.item.accountEnabled) {\r\n suggest();\r\n }\r\n else {\r\n $scope.dipendente.Username = null;\r\n $scope.dipendente.Email = null;\r\n $scope.dipendente.Password = null;\r\n }\r\n };\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'dipendenteSelect';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', 'datacontext', dipendenteSelectFn]);\r\n\r\n function dipendenteSelectFn($scope, $rootScope, $uibModalInstance, datacontext) {\r\n $scope.item = {};\r\n $scope.item.fTesto = '';\r\n $scope.item.dipendenti = getDipendenti();\r\n $scope.item.selected = selected;\r\n $scope.item.cerca = getDipendenti;\r\n $scope.item.loading = true;\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function selected(id, nominativo) {\r\n var resultItem = { 'id': id, 'nominativo': nominativo };\r\n $uibModalInstance.close(resultItem);\r\n }\r\n\r\n function getDipendenti() {\r\n $scope.item.loading = true;\r\n return datacontext.dipendente_getAll(0, 0, 0, $scope.item.fTesto, 0, '').then(function (data) {\r\n //Se è supervisore torno solo i dipendenti senza username settata\r\n var dip = [];\r\n if ($rootScope.isAuthorized('SUPER')) {\r\n if (data.constructor === Array) {\r\n data.forEach(function (item) {\r\n if (item.Ruolo == null || item.Ruolo == undefined || item.Ruolo.trim().length == 0)\r\n dip.push(item);\r\n });\r\n }\r\n }\r\n else\r\n dip = data;\r\n\r\n $scope.item.loading = false;\r\n return $scope.item.dipendenti = dip;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'dipendenteSelectSuper';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', 'datacontext','dipendenti', dipendenteSelectSuperFn]);\r\n\r\n function dipendenteSelectSuperFn($scope, $rootScope, $uibModalInstance, datacontext, dipendenti) {\r\n $scope.item = {};\r\n $scope.item.fTesto = '';\r\n $scope.item.dipendenti = dipendenti;\r\n $scope.item.selected = selected;\r\n //$scope.item.cerca = getDipendenti;\r\n $scope.item.loading = false;\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n \r\n function selected(id, nominativo) {\r\n var resultItem = { 'id': id, 'nominativo': nominativo };\r\n $uibModalInstance.close(resultItem);\r\n }\r\n\r\n //function getDipendenti() {\r\n // $scope.item.loading = true;\r\n // return datacontext.dipendente_getAll(0, 0, 0, $scope.item.fTesto, 0, '').then(function (data) { \r\n // //Se è supervisore torno solo i dipendenti senza username settata\r\n // var dip = [];\r\n // if ($rootScope.isAuthorized('SUPER')) { \r\n // if (data.constructor === Array) {\r\n // data.forEach(function (item) {\r\n // if (item.Ruolo == null || item.Ruolo == undefined || item.Ruolo.trim().length == 0)\r\n // dip.push(item);\r\n // });\r\n // }\r\n // }\r\n // else\r\n // dip = data;\r\n\r\n // $scope.item.loading = false;\r\n // return $scope.item.dipendenti = dip;\r\n // });\r\n //}\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'profiloOrarioAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', 'profiliOre', 'profilo', '$translate', profiloOrarioSelectFn]);\r\n\r\n function profiloOrarioSelectFn($scope, $uibModalInstance, datacontext, profiliOre, profilo, $translate) {\r\n //Gestione date\r\n $scope.open = function ($event) {\r\n $scope.opened = !$scope.opened;\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n $scope.profilo = profilo; \r\n if ($scope.profilo.Id == 0)\r\n $scope.titolo = $translate.instant('AggiungiProfiloOrario');\r\n else\r\n $scope.titolo = $translate.instant('ModificaProfiloOrario') + ': ' + profilo.profiloOreDescrizione;\r\n\r\n $scope.fTesto = '';\r\n $scope.profili = profiliOre; \r\n $scope.loading = false; \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.edit = function () {\r\n if ($scope.profilo.DataFine)\r\n var dtFine = moment($scope.profilo.DataFine).format('DD/MM/YYYY');\r\n var result = {};\r\n editItem($scope.profilo).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n };\r\n\r\n $scope.select = function (id) {\r\n $scope.profilo.profiloOreId = id;\r\n if ($scope.profilo.DataFine)\r\n var dtFine = moment($scope.profilo.DataFine).format('DD/MM/YYYY');\r\n\r\n var result = {};\r\n addItem($scope.profilo).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.profiloDipendenti_update(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato')); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.profiloDipendenti_add(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato')); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'sezioneDipendenteAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', 'dipendenteId', sezioneSelectFn]);\r\n\r\n function sezioneSelectFn($scope, $uibModalInstance, datacontext, dipendenteId) {\r\n $scope.item = {};\r\n $scope.item.fTesto = '';\r\n $scope.item.sezioni = getSezioni(); \r\n $scope.item.cerca = getSezioni;\r\n $scope.item.loading = true;\r\n $scope.dipendenteId = dipendenteId;\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n }; \r\n \r\n $scope.ok = function (isValid) {\r\n var sezioni = [];\r\n $(\"input:checkbox[name=testId]:checked\").each(function () {\r\n sezioni.push($(this).val());\r\n });\r\n\r\n addItem($scope.dipendenteId, sezioni).then(function (result) {\r\n $uibModalInstance.close(result);\r\n }); \r\n }; \r\n\r\n function getSezioni() {\r\n $scope.item.loading = true;\r\n return datacontext.sezione_getAll(0, 0, $scope.item.fTesto, 'codice').then(function (data) {\r\n $scope.item.loading = false;\r\n return $scope.item.sezioni = data;\r\n });\r\n }\r\n\r\n function addItem(dipendenteId, sezioni) {\r\n return datacontext.dipendenteSezione_addList(dipendenteId, sezioni).then(function (data) {\r\n return data;\r\n });\r\n }\r\n\r\n $scope.toggleAll = function () {\r\n if ($scope.isAllSelected) {\r\n $(\"input:checkbox[name=testId]\").each(function () {\r\n this.checked = true;\r\n });\r\n } else {\r\n $(\"input:checkbox[name=testId]\").each(function () {\r\n this.checked = false;\r\n });\r\n }\r\n };\r\n }\r\n})();","/*\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'teamAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', 'listTeam', 'team', teamSelectFn]);\r\n\r\n function teamSelectFn($scope, $uibModalInstance, datacontext, listTeam, team) {\r\n //Gestione date\r\n /* $scope.open = function ($event) {\r\n $scope.opened = !$scope.opened;\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n//\r\n $scope.team = team; \r\n if ($scope.team.Id == 0)\r\n $scope.titolo = 'Aggiungi Profilo Orario';\r\n else\r\n $scope.team = 'Modifica Profilo Orario: ' + /*profilo.profiloOreDescrizione'da modificare x team';\r\n\r\n $scope.fTesto = '';\r\n $scope.list = listTeam;\r\n $scope.loading = false; \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.edit = function () {\r\n if ($scope.profilo.DataFine)\r\n var dtFine = moment($scope.profilo.DataFine).format('DD/MM/YYYY');\r\n var result = {};\r\n editItem($scope.profilo).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n };\r\n\r\n $scope.select = function (id) {\r\n $scope.profilo.profiloOreId = id;\r\n if ($scope.profilo.DataFine)\r\n var dtFine = moment($scope.profilo.DataFine).format('DD/MM/YYYY');\r\n\r\n var result = {};\r\n addItem($scope.profilo).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.profiloDipendenti_update(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.profiloDipendenti_add(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n }\r\n})();\r\n*/\r\n\r\n(function () {\r\n 'use strict';\r\n var controllerId = 'teamAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', teamSelectFn]);\r\n\r\n function teamSelectFn($scope, $uibModalInstance, datacontext) {\r\n $scope.item = {};\r\n $scope.item.fTesto = '';\r\n $scope.item.team = getTeam();\r\n $scope.item.selected = selected;\r\n $scope.item.cerca = getTeam;\r\n $scope.item.loading = true;\r\n $scope.item.ruolo = 'M';\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function selected(id, codice, titolo, ruolo) {\r\n var resultItem = { 'id': id, 'codice': codice, 'titolo': titolo, 'ruolo': ruolo };\r\n $uibModalInstance.close(resultItem);\r\n }\r\n\r\n function getTeam() {\r\n $scope.item.loading = true;\r\n return datacontext.team_getAll(0, 0, $scope.item.fTesto, 'Titolo').then(function (data) {\r\n $scope.item.loading = false;\r\n return $scope.item.team = data;\r\n });\r\n } \r\n\r\n }\r\n})();","(function () {\r\n\t'use strict';\r\n\tvar controllerId = 'userDipendenteAdd';\r\n\r\n\tangular.module('app').controller(controllerId, ['$scope', 'common', '$uibModalInstance', 'datacontext', 'ruoli', 'dipendenteId', 'nominativo', '$translate', userDipendenteAdd]);\r\n\r\n\tfunction userDipendenteAdd($scope, common, $uibModalInstance, datacontext, ruoli, dipendenteId, nominativo, $translate) {\r\n\t\tvar getLogFn = common.logger.getLogFn;\r\n\t\tvar log = getLogFn(controllerId);\r\n\t\tvar logError = getLogFn(controllerId, 'logError');\r\n\t\tvar logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n\t\t$scope.ruoli = ruoli; \r\n\t $scope.user = {};\r\n\t $scope.user.Attivato = true;\t\t\r\n $scope.user.Password = 'Temp' + new Date().getFullYear(); \r\n $scope.user.CambioPwd = true;\r\n $scope.user.ruolo = 2;\r\n $scope.user.dipendenteId = dipendenteId;\r\n $scope.user.nominativo = nominativo;\r\n\r\n\t\t$scope.ok = function (isValid) {\r\n if (isValid) {\r\n $scope.user.Roles = [];\r\n $scope.user.Roles.push({ 'Id': $scope.user.ruolo });\r\n\r\n\t\t\t\taddItem($scope.user).then(function (result) {\r\n\t\t\t\t\tif (result == '502') logError($translate.instant('Username gia registrata'));\r\n\t\t\t\t\telse if (result == '404') logError($translate.instant('Email gia registrata'));\r\n\t\t\t\t\telse if (!result || result.Id == null || result.Id == 0) $uibModalInstance.close(null);\r\n\t\t\t\t\telse $uibModalInstance.close(result);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$scope.cancel = function () {\r\n\t\t\t$uibModalInstance.dismiss('cancel');\r\n\t\t};\t\r\n\r\n\t\tfunction addItem(item) {\r\n\t\t\titem.DtAttivazione = new Date();\r\n\t\t\treturn datacontext.user_add(item).then(function (data) {\t\t\t \r\n\t\t\t return data;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'giustificativoAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'giustificativo', '$translate', giustificativoAddEditFn]);\r\n\r\n function giustificativoAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, giustificativo, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.giustificativo = giustificativo;\r\n if ($scope.giustificativo.Id == 0) { // sono nel nuovo\r\n $scope.titolo = $translate.instant('NuovaGiustificativo');\r\n }\r\n else { // sono in modifica\r\n $scope.titolo = $translate.instant('ModificaGiustificativo'); \r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n if ($scope.giustificativo.Id == 0) { // sono nel nuovo\r\n addItem($scope.giustificativo).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.giustificativo).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.giustificativo_update(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n return data; \r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.giustificativo_add(item).then(function (data) { \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); \r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'offertaAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$rootScope', '$uibModalInstance', 'datacontext', 'common', 'offerta', '$translate', offertaAddFn]);\r\n\r\n function offertaAddFn($scope, $rootScope, $uibModalInstance, datacontext, common, offerta, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.offerta = offerta;\r\n getCodiceCommessa();\r\n $scope.item = {};\r\n $scope.item.clienti = getClienti(); \r\n $scope.disableSave = false;\r\n\r\n $scope.item.isPersonale = $rootScope.isAuthorized('PERSONALE');\r\n\r\n //datapicker \r\n $scope.open1 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened1 = !$scope.opened1;\r\n $scope.opened2 = false;\r\n };\r\n $scope.open2 = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened2 = !$scope.opened2;\r\n $scope.opened1 = false;\r\n };\r\n \r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n addItem($scope.offerta).then(function (result) { \r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function getCodiceCommessa() { \r\n return datacontext.commessa_getMaxCodiceCommessa().then(function (codice) {\r\n if (codice) {\r\n $scope.offerta.Codice = codice;\r\n }\r\n else\r\n logError($translate.instant('Impossibile ricavare il codice commessa'));\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) { \r\n $scope.disableSave = true;\r\n item.Stato = 0;\r\n return datacontext.commessa_add(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato')); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n $scope.disableSave = false;\r\n return data;\r\n });\r\n }\r\n\r\n function getClienti() {\r\n datacontext.cliente_getAllList().then(function (data) {\r\n return $scope.item.clienti = data;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'parametriAddEdit';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'parametri', parametriAddEditFn]);\r\n\r\n function parametriAddEditFn($rootScope, $scope, $uibModalInstance, $filter, datacontext, common, parametri) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.super = $rootScope.isAuthorized('SUPER');\r\n $scope.parametri = parametri;\r\n $scope.item = {};\r\n $scope.item.aziende = [];\r\n if ($scope.super)\r\n getListAziende();\r\n $scope.titolo = 'Modifica parametri';\r\n $scope.item.lingua = [{ name: 'Italiano', value: 'it' }, { name: 'Inglese', value: 'en' }];\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n\r\n console.info(\"scoper parametri \", $scope.parametri);\r\n\r\n editItem($scope.parametri).then(function (result) {\r\n console.info(\"result \", result);\r\n\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.settings_update(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\");\r\n return null;\r\n }\r\n return data;\r\n });\r\n }\r\n\r\n function getListAziende() {\r\n return datacontext.azienda_getAllList().then(function (data) {\r\n return $scope.item.aziende = data;\r\n });\r\n }\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n var controllerId = 'profiloOreAdd';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'profiloOre', '$translate', profiloOreAddFn]);\r\n\r\n function profiloOreAddFn($scope, $uibModalInstance, $filter, datacontext, common, profiloOre, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n //Gestione date\r\n $scope.open = function ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n $scope.opened = !$scope.opened;\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yy',\r\n startingDay: 1\r\n };\r\n\r\n $scope.format = 'dd/MM/yyyy';\r\n\r\n\r\n $scope.profiloOre = profiloOre;\r\n if ($scope.profiloOre.Id == 0) { // sono nel nuovo\r\n $scope.Titolo = $translate.instant('Nuovo Profilo Orario');\r\n }\r\n /* else { // sono in modifica\r\n $scope.Titolo = 'Modifica Costo';\r\n }*/\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n if ($scope.profiloOre.Id == 0) { // sono nel nuovo\r\n addItem($scope.profiloOre).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n /*else { // sono in modifica\r\n editItem($scope.costiBase).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }*/\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n /* function editItem(item) {\r\n return datacontext.costiBase_update(item).then(function (data) {\r\n if (data == '300') {\r\n logError(\"Team esistente per l'anno \" + item.Anno);\r\n return null;\r\n }\r\n\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }*/\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.profiloOre_add(item).then(function (data) {\r\n \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato')); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'eliminaFerie';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'richiesta', '$translate', '$filter', inoltraFerieFn]);\r\n\r\n function inoltraFerieFn($scope, $uibModalInstance, richiesta, $translate, $filter) {\r\n\r\n $scope.richiesta = richiesta;\r\n\r\n var msg = $translate.instant(\"Eliminare\") + \" \" + $translate.instant(\"Richiesta\") + \": \";\r\n var s = \"\";\r\n var dtInizio = $filter('date')(richiesta.DtInizio, 'dd/MM/yyyy');\r\n var dtFine = \"\";\r\n var oraInizio = \"\";\r\n var oraFine = \"\";\r\n\r\n if (richiesta.DtInizio != richiesta.DtFine)\r\n dtFine = \" - \" + $filter('date')(richiesta.DtFine, 'dd/MM/yyyy');\r\n\r\n if (richiesta.OraInizio)\r\n oraInizio = \" \" + richiesta.OraInizio;\r\n if (richiesta.OraFine)\r\n oraFine = \" - \" + richiesta.OraFine;\r\n\r\n s = dtInizio + oraInizio + dtFine + oraFine;\r\n\r\n msg += s + \"?\";\r\n $scope.Domanda = msg;\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n $scope.ok = function () {\r\n $uibModalInstance.close('ok');\r\n }\r\n }\r\n})();\r\n","(function () {\r\n 'use strict';\r\n var controllerId = 'inoltraFerie';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', 'richiesta', inoltraFerieFn]);\r\n\r\n function inoltraFerieFn($scope, $uibModalInstance, datacontext, richiesta) {\r\n $scope.richiesta = richiesta;\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.close(null);\r\n };\r\n\r\n $scope.ok = function () {\r\n datacontext.richiestaFerie_inoltra($scope.richiesta).then(function (data) {\r\n $uibModalInstance.close(data);\r\n }); \r\n }\r\n }\r\n})();\r\n","(function () {\r\n\t'use strict';\r\n\tvar controllerId = 'richiestaFeriePermessiAddEdit';\r\n\tangular.module('app').controller(controllerId, ['$scope', 'common', '$uibModalInstance', 'datacontext', 'richiesta', '$translate', richiestaFeriePermessiAddEditFn]);\r\n\r\n\tfunction richiestaFeriePermessiAddEditFn($scope, common, $uibModalInstance, datacontext, richiesta, $translate) {\r\n\t\tvar getLogFn = common.logger.getLogFn;\r\n\t\tvar log = getLogFn(controllerId);\r\n\t\tvar logError = getLogFn(controllerId, 'logError');\r\n\t\tvar logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n\t\t$scope.dateOptions = {\r\n\t\t\tformatYear: 'yy',\r\n\t\t\tstartingDay: 1\r\n\t\t};\r\n\r\n\t\t$scope.format = 'dd/MM/yyyy';\r\n\t\t$scope.richiesta = richiesta;\r\n\t\t$scope.titolo = $translate.instant('NuovaRichiesta');\r\n\t\t$scope.richieste_list = [];\r\n\t\t$scope.giustificativi = getGiustificativi();\r\n\r\n\t\t//inizializzazione\r\n\t\tif (richiesta.Id == 0) {\r\n\t\t\t$scope.richieste_list.push({\r\n\t\t\t\tId: 0,\r\n\t\t\t\tTipoRichiesta: false\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$scope.titolo = $translate.instant('ModificaRichiesta');\r\n\r\n\t\t\tif ($scope.richiesta.DtInizio)\r\n\t\t\t\t$scope.richiesta.DtInizio = new Date($scope.richiesta.DtInizio);\r\n\t\t\tif ($scope.richiesta.DtFine)\r\n\t\t\t\t$scope.richiesta.DtFine = new Date($scope.richiesta.DtFine);\r\n\r\n\t\t\t$scope.richieste_list.push($scope.richiesta);\r\n\t\t}\r\n\r\n\t\t$scope.cancel = function () {\r\n\t\t\tif ($scope.richiesta == richiesta)\r\n\t\t\t\t$uibModalInstance.close(\"chiusoManualmente\");\t\t\t\r\n\t\t};\r\n\r\n\t\t//Gestione date\r\n\t\t$scope.dtInizio_opened = [];\r\n\t\t$scope.dtFine_opened = [];\r\n\t\t$scope.openDtInizio = function (index, event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\r\n\t\t\t$scope.dtInizio_opened[index] = !$scope.dtInizio_opened[index];\r\n\t\t}\r\n\r\n\t\t$scope.openDtFine = function (index, event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\r\n\t\t\t$scope.dtFine_opened[index] = !$scope.dtFine_opened[index];\r\n\t\t}\r\n\r\n\t\t$scope.ok = function () {\r\n\t\t\t\r\n\t\t\tvar isValid = true;\r\n\t\t\t$scope.richieste_list.forEach(function (item) {\r\n\t\t\t\t//Validazione DataInizio < DataFine\r\n\t\t\t\tif (item.DtFine && item.DtInizio > item.DtFine) {\r\n\t\t\t\t\tlogError($translate.instant('DataInizioMinoreDataFine'));\r\n\t\t\t\t\tisValid = false;\r\n\t\t\t\t\treturn;\r\n }\r\n\r\n //Validazione richiesta a cavallo di due anni\r\n if (item.DtFine) {\r\n if (new Date(item.DtInizio).getFullYear() != new Date(item.DtFine).getFullYear()) {\r\n logError$translate.instant('RichiestaSuDueAnni');\r\n isValid = false;\r\n return;\r\n }\r\n }\r\n\r\n\t\t\t\t//Validazione OraInizio < OraFine\r\n\t\t\t\tif (item.OraInizio && item.OraFine) {\r\n\t\t\t\t\tvar dtInizio = new Date('01/01/2000 ' + item.OraInizio);\r\n\t\t\t\t\tvar dtFine = new Date('01/01/2000 ' + item.OraFine);\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (dtInizio >= dtFine) {\r\n\t\t\t\t\t\tlogError($translate.instant('OraInizioMinoreOraFine'));\r\n\t\t\t\t\t\tisValid = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//Validazione OraFine - OraInizio > 30 minuti\r\n\t\t\t\t\tvar difference = (dtFine - dtInizio) / 1000 / 60; //Minuti\r\n\t\t\t\t\tif (difference < 30) {\r\n\t\t\t\t\t\tlogError($translate.instant('Intervallo30Minuti'));\r\n\t\t\t\t\t\tisValid = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\t\t\t\r\n\r\n\r\n\t\t\tif (!isValid)\r\n\t\t\t\treturn;\r\n\r\n\r\n\t\t\tif ($scope.richiesta.Id == 0) {\r\n datacontext.richiestaFerie_addMultiplo($scope.richieste_list).then(function (result) {\r\n\t\t\t\t\tif (result.status == 200) \r\n\t\t\t\t\t\t$uibModalInstance.close(result); \r\n else if (result == 409) \r\n logError($translate.instant('Data inserita già presente tra le richieste'));\t\t\t\t\t\r\n\t\t\t\t\telse \r\n\t\t\t\t\t\tlogError($translate.instant('Errore durante la creazione del dato'));\t\t\t\t\t\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar k = 0;\r\n\t\t\t\tfor (var i = 0; i < $scope.richieste_list.length; i++) {\r\n\t\t\t\t\tdatacontext.richiestaFerie_update($scope.richieste_list[i]).then(function (result) {\r\n\t\t\t\t\t\tif (result && result.Id)\r\n\t\t\t\t\t\t\tk++;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tif (k == $scope.richieste_list.length)\r\n\t\t\t\t\t\t$uibModalInstance.close($scope.richiesta);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tlogError($translate.instant('Errore durante il salvataggio dei dati'));\r\n\t\t\t\t}, 500);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.add = function () {\r\n\t\t\tif ($scope.richieste_list.length > 3)\r\n\t\t\t\tlogError($translate.instant('Non puoi aggiungere altre richieste al momento'));\r\n\t\t\telse {\r\n\t\t\t\t$scope.richieste_list.push({\r\n\t\t\t\t\tId: 0,\r\n\t\t\t\t\tTipoRichiesta: false,\r\n\t\t\t\t\tRichiestaFerieId: 0\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.delete = function (index, obj_list) {\r\n\t\t\tvar check_empty = 0;\r\n\t\t\tvar check_full = obj_list.length;\r\n\r\n\t\t\tif (obj_list[index].Id != 0) {\r\n\r\n\t\t\t\tobj_list.forEach(function (obj) {\r\n\t\t\t\t\tif (obj.Id == 0) {\r\n\t\t\t\t\t\tcheck_empty++;\r\n\t\t\t\t\t\tcheck_full--;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif ((check_full - check_empty) <= 0) {\r\n\t\t\t\t\tlogError($translate.instant('Salva prima la richiesta sottostante'));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif ($scope.richieste_list.length < 2)\r\n\t\t\t\t\t\tlogError($translate.instant('Non puoi rimuovere altre richieste al momento'));\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif ($scope.richieste_list[index].Id > 0) {\r\n\t\t\t\t\t\t\tdatacontext.richiestaFerie_Dettaglio_delete($scope.richieste_list[index].Id).then(function () {\r\n\r\n\t\t\t\t\t\t\t\t$scope.richieste_list.splice(index, 1);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t$scope.richieste_list.splice(index, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif ($scope.richieste_list.length < 2)\r\n\t\t\t\t\tlogError($translate.instant('Non puoi rimuovere altre richieste al momento'));\r\n\t\t\t\telse {\r\n\t\t\t\t\tif ($scope.richieste_list[index].Id > 0) {\r\n\t\t\t\t\t\tdatacontext.richiestaFerie_Dettaglio_delete($scope.richieste_list[index].Id).then(function () {\r\n\r\n\t\t\t\t\t\t\t$scope.richieste_list.splice(index, 1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t$scope.richieste_list.splice(index, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getGiustificativi() {\r\n\t\t\treturn datacontext.giustificativo_getAllList(true).then(function (data) {\t\t\t\t\r\n\t\t\t\treturn $scope.giustificativi = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$scope.giustChanged = function (index) {\r\n\t\t\tif ($scope.richieste_list[index].GiustificativoId == 1) {\r\n\t\t\t\t$scope.richieste_list[index].OraInizio = null;\r\n\t\t\t\t$scope.richieste_list[index].OraFine = null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n})();\r\n","(function () {\r\n 'use strict';\r\n var controllerId = 'tAttachAdd';\r\n angular.module('app').controller(controllerId, ['$scope', 'datacontext', 'sectionMenu', '$uibModalInstance', 'tSource', 'tSourceId', tAttachAdd]);\r\n\r\n function tAttachAdd($scope, datacontext, sectionMenu, $uibModalInstance, tSource, tSourceId) {\r\n $scope.tAttach = {};\r\n $scope.tSource = tSource;\r\n $scope.tAttach.MinValue = 1;\r\n \r\n if (tSourceId) {\r\n $scope.tSourceId = tSourceId;\r\n $scope.tAttach.TSourceId = tSourceId;\r\n $scope.tAttach.TSource = $scope.tSource[0].Name;\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = addItem($scope.tAttach)\r\n $uibModalInstance.close(result);\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function addItem(item) {\r\n return datacontext.tAttach_add(item).then(function (data) { \r\n if (!data) return null;\r\n if (data== \"400\") return null;\r\n\r\n return data;\r\n });\r\n }\r\n\r\n $scope.TitleChanged = function () { \t\r\n \t$scope.bTitleChanged = true;\r\n \treturn false;\r\n }\r\n\r\n \r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'tAttachRoleAdd';\r\n angular.module('app').controller(controllerId, ['$scope', 'datacontext', 'sectionMenu', '$uibModalInstance', 'tAttach', 'tAttachId', 'ruoli', 'ruoloId', 'tSourceId', 'tAttachRole', tAttachRoleAdd]);\r\n\r\n function tAttachRoleAdd($scope, datacontext, sectionMenu, $uibModalInstance, tAttach, tAttachId, ruoli, ruoloId, tSourceId, tAttachRole) {\r\n $scope.tAttachRole = {};\r\n $scope.tAttach = tAttach;\r\n $scope.ruoli = ruoli;\r\n $scope.tSourceId = tSourceId;\r\n\r\n\r\n if (typeof (tAttachRole) == 'undefined') {\r\n $scope.tAttachRole = {};\r\n $scope.tAttachRole.Id = 0;\r\n $scope.tAttachRole.iTags = 0;\r\n $scope.tAttachRole.bRead = true;\r\n $scope.popupTitle = 'Nuova Visibilita';\r\n $scope.action = 'Add';\r\n } else {\r\n $scope.tAttachRole = jQuery.extend({}, tAttachRole);\r\n $scope.popupTitle = 'Modifica Visibilita Id: ' + $scope.tAttachRole.Id;\r\n $scope.action = 'Edit';\r\n }\r\n\r\n if (tAttachId) {\r\n $scope.tAttachId = tAttachId;\r\n $scope.tAttachRole.TAttachId = tAttachId;\r\n }\r\n\r\n if (ruoloId) {\r\n $scope.ruoloId = ruoloId;\r\n $scope.tAttachRole.RoleId = ruoloId;\r\n }\r\n\r\n if (tSourceId) {\r\n $scope.tSourceId = tSourceId;\r\n $scope.tAttachRole.TSourceId = $scope.tSourceId;\r\n }\r\n\r\n $scope.getTSourceId = function (tAttachId) {\r\n if (!tAttachId) return;\r\n\r\n return $scope.tAttach.forEach(function (item_TA) {\r\n if (item_TA.Id == tAttachId)\r\n $scope.tAttachRole.TSourceId = item_TA.TSourceId;\r\n })\r\n\r\n return true;\r\n }\r\n\r\n $scope.setRead = function (value) {\r\n return value = !value;\r\n }\r\n\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = addItem($scope.tAttachRole)\r\n $uibModalInstance.close(result);\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function addItem(item) {\r\n if ($scope.action == 'Add') {\r\n return datacontext.tAttachVisibility_add(item).then(function (data) {\r\n return data;\r\n });\r\n } else if ($scope.action == 'Edit') {\r\n return datacontext.tAttachVisibility_update(item).then(function (data) {\r\n return data;\r\n });\r\n }\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'tAttachTipologiaAdd';\r\n angular.module('app').controller(controllerId, ['$scope', 'datacontext', 'sectionMenu', '$uibModalInstance', 'tAttach', 'tAttachId',/* 'tipologie', 'tipologiaId', */tAttachTipologiaAdd]);\r\n\r\n function tAttachTipologiaAdd($scope, datacontext, sectionMenu, $uibModalInstance, tAttach, tAttachId/*, tipologie, tipologiaId*/) {\r\n $scope.tAttachTipologia = {};\r\n $scope.tAttach = tAttach;\r\n // $scope.tipologie = tipologie;\r\n\r\n //console.info('tipologie', tipologie);\r\n\r\n\r\n if (tAttachId) {\r\n $scope.tAttachId = tAttachId;\r\n $scope.tAttachTipologia.TAttachId = tAttachId;\r\n }\r\n\r\n //if (tipologiaId) {\r\n // $scope.tipologiaId = tipologiaId;\r\n // $scope.tAttachTipologia.tipologiaId = tipologiaId;\r\n //}\r\n\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = addItem($scope.tAttachTipologia)\r\n $uibModalInstance.close(result);\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function addItem(item) {\r\n //return datacontext.tAttachFileType_add(item.TAttachId, item.Title, item.Extension).then(function (data) {\r\n return datacontext.tAttachFileType_add(item).then(function (data) {\r\n if (!data) return null;\r\n\r\n return data;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'sezioneAddEdit';\r\n angular.module('app').controller(controllerId, ['$rootScope', '$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'sezione', '$translate', sezioneAddEditFn]);\r\n\r\n function sezioneAddEditFn($rootScope, $scope, $uibModalInstance, $filter, datacontext, common, sezione, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.sezione = sezione;\r\n\r\n if ($scope.sezione.Id == 0) {\r\n $scope.titolo = $translate.instant('Nuovo centro di costo');\r\n }\r\n else {\r\n $scope.titolo = $translate.instant('Modifica centro di costo');\r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n if ($scope.sezione.Id == 0) {\r\n addItem($scope.sezione).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { \r\n editItem($scope.sezione).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.sezione_update(item).then(function (data) {\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato'));\r\n return null;\r\n }\r\n return data; \r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.sezione_add(item).then(function (data) { \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError($translate.instant('Errore durante la creazione del dato'));\r\n return null;\r\n }\r\n\r\n return data; \r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'teamAddEdit';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', '$filter', 'datacontext', 'common', 'team', '$translate', teamAddEditFn]);\r\n\r\n function teamAddEditFn($scope, $uibModalInstance, $filter, datacontext, common, team, $translate) {\r\n var getLogFn = common.logger.getLogFn;\r\n var log = getLogFn(controllerId);\r\n var logError = getLogFn(controllerId, 'logError');\r\n var logSuccess = getLogFn(controllerId, 'logSuccess');\r\n\r\n $scope.team = team;\r\n if ($scope.team.Id == 0) { // sono nel nuovo\r\n $scope.titolo = $translate.instant('NuovoTeam'); \r\n }\r\n else { // sono in modifica\r\n $scope.titolo = $translate.instant('ModificaTeam'); \r\n }\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = {};\r\n if ($scope.team.Id == 0) { // sono nel nuovo\r\n addItem($scope.team).then(function (result) {\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n else { // sono in modifica\r\n editItem($scope.team).then(function (result) { // metto in result l'oggetto tornato dal server a seguito dell'aggiornamento (può essere nullo se non va a buon fine)\r\n if (result.Id && result.Id > 0)\r\n $uibModalInstance.close(result);\r\n });\r\n }\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n // Modifica elemento\r\n function editItem(item) {\r\n return datacontext.team_update(item).then(function (data) {\r\n if (data == '300') {\r\n logError(\"Team esistente per l'anno \" + item.Anno);\r\n return null;\r\n }\r\n\r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n return data; // altrimenti torna l'oggetto modificato\r\n });\r\n }\r\n\r\n // Aggiunta elemento\r\n function addItem(item) {\r\n return datacontext.team_add(item).then(function (data) { \r\n \r\n if (!data || data.Id == null || data.Id == 0) {\r\n logError(\"Errore durante la creazione del dato\"); // In questo caso l'aggiunta non è andata a buon fine\r\n return null;\r\n }\r\n\r\n return data; // altrimenti torna il nuovo oggetto\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'teamMembroSelect';\r\n angular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', teamMembroSelectFn]);\r\n\r\n function teamMembroSelectFn($scope, $uibModalInstance, datacontext) {\r\n $scope.item = {};\r\n $scope.item.fTesto = '';\r\n $scope.item.dipendenti = getDipendenti();\r\n $scope.item.selected = selected;\r\n $scope.item.cerca = getDipendenti;\r\n $scope.item.loading = true;\r\n $scope.item.ruolo = 'M'; \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n \r\n function selected(id, nominativo, ruolo) {\r\n var resultItem = { 'id': id, 'nominativo': nominativo, 'ruolo': ruolo};\r\n $uibModalInstance.close(resultItem);\r\n }\r\n\r\n function getDipendenti() {\r\n $scope.item.loading = true;\r\n return datacontext.dipendente_getAll(0, 0, 0, 0, $scope.item.fTesto, 0, '').then(function (data) { \r\n $scope.item.loading = false;\r\n return $scope.item.dipendenti = data;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n\t'use strict';\r\n\tvar controllerId = 'userAdd';\r\n\r\n\tangular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'datacontext', 'ruoli', userAdd]);\r\n\r\n function userAdd($scope, $uibModalInstance, datacontext, ruoli) {\r\n $scope.ruoli = ruoli; \r\n\t $scope.user = {};\r\n\t $scope.user.Attivato = true;\t\t\r\n $scope.user.Password = 'Temp' + new Date().getFullYear(); \r\n $scope.user.CambioPwd = true;\r\n $scope.user.ruolo = 2;\r\n\t\t$scope.aziende = getAziende();\r\n\r\n\t\t$scope.ok = function (isValid) {\r\n if (isValid) {\r\n $scope.user.Roles = [];\r\n $scope.user.Roles.push({ 'Id': $scope.user.ruolo });\r\n\r\n\t\t\t\tvar result = addItem($scope.user)\r\n\t\t\t\t$uibModalInstance.close(result);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$scope.cancel = function () {\r\n\t\t\t$uibModalInstance.dismiss('cancel');\r\n\t\t};\t\t\r\n\r\n\t\tfunction addItem(item) {\r\n\t\t\titem.DtAttivazione = new Date();\r\n\t\t\treturn datacontext.user_add(item).then(function (data) {\t\t\t \r\n\t\t\t if (!data || data.Id == null || data.Id == 0) return null;\r\n \r\n\t\t\t return data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction getAziende() {\r\n\t\t\treturn datacontext.azienda_getAllList().then(function (data) {\r\n\t\t\t\treturn $scope.aziende = data;\r\n\t\t\t});\r\n }\r\n\t}\r\n})();","(function () {\r\n 'use strict';\r\n var controllerId = 'userRoleAdd';\r\n angular.module('app').controller(controllerId, ['$scope', 'datacontext', 'sectionMenu', '$uibModalInstance', 'risorse', 'risorsaId', 'ruoli', 'ruoloId', userRoleAdd]);\r\n\r\n function userRoleAdd($scope, datacontext, sectionMenu, $uibModalInstance, risorse, risorsaId, ruoli, ruoloId) {\r\n $scope.userRole = {};\r\n $scope.risorse = risorse;\r\n $scope.ruoli = ruoli;\r\n\r\n\r\n if (risorsaId) {\r\n $scope.risorsaId = risorsaId;\r\n $scope.userRole.risorsaId = risorsaId;\r\n }\r\n\r\n if (ruoloId) {\r\n $scope.ruoloId = ruoloId;\r\n $scope.userRole.ruoloId = ruoloId;\r\n }\r\n\r\n\r\n $scope.ok = function (isValid) {\r\n if (isValid) {\r\n var result = addItem($scope.userRole)\r\n $uibModalInstance.close(result);\r\n }\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n function addItem(item) {\r\n console.log('addItem');\r\n console.dir(item);\r\n return datacontext.userRole_add(item.risorsaId, item.roleId).then(function (data) {\r\n if (!data) return null;\r\n\r\n return data;\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n\t'use strict';\r\n\tvar controllerId = 'validazioneAccettaRifiuta';\r\n\tangular.module('app').controller(controllerId, ['$scope', '$uibModalInstance', 'richiesta', 'button', '$translate', '$filter', validazioneAccettaRifiutaFn]);\r\n\r\n\tfunction validazioneAccettaRifiutaFn($scope, $uibModalInstance, richiesta, button, $translate, $filter) {\r\n\t\tvar msg = $translate.instant(\"ValidazioneRichiesta\") + \": \" + richiesta.Dipendente + \" \";\r\n\t\tvar s = \"\";\r\n\t\tvar dtInizio = $filter('date')(richiesta.DtInizio, 'dd/MM/yyyy');\r\n\t\tvar dtFine = \"\";\r\n\t\tvar oraInizio = \"\";\r\n\t\tvar oraFine = \"\";\r\n\r\n\t\tif (richiesta.DtInizio != richiesta.DtFine)\r\n\t\t\tdtFine = \" - \" + $filter('date')(richiesta.DtFine, 'dd/MM/yyyy');\r\n\r\n\t\tif (richiesta.OraInizio)\r\n\t\t\toraInizio = \" \" + richiesta.OraInizio;\r\n\t\tif (richiesta.OraFine)\r\n\t\t\toraFine = \" - \" + richiesta.OraFine;\r\n\r\n\t\ts = dtInizio + oraInizio + dtFine + oraFine + ' - ' + richiesta.Giustificativo;\r\n\t\tmsg += s;\r\n\r\n\t\t$scope.domanda = msg;\r\n\t\t$scope.richiesta = richiesta;\r\n\t\t$scope.button = button;\r\n\r\n\t\t$scope.cancel = function () {\r\n\t\t\tvar result = { stato: \"annulla\", richiesta: null };\r\n\r\n\t\t\t$uibModalInstance.close(result);\r\n\t\t};\r\n\r\n\t\t$scope.rifiuta = function () {\r\n\t\t\tvar result = { stato: \"rifiuta\", richiesta: $scope.richiesta };\r\n\r\n\t\t\t$uibModalInstance.close(result);\r\n\t\t};\r\n\t\t$scope.ok = function () {\r\n\t\t\tvar result = { stato: \"approva\", richiesta: $scope.richiesta };\r\n\r\n\t\t\t$uibModalInstance.close(result);\r\n\t\t}\r\n\t}\r\n})();\r\n"],"sourceRoot":"/source/"}