示例#1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (HttpContext.Current.Session["condominio"] != null)
            {
                if (Request.QueryString["id"] != null)
                {
                    var idDocumento = Request.QueryString["id"].Trim();
                    var fileName = "documenti/" + idDocumento + ".pdf";

                    if(!File.Exists(Request.PhysicalApplicationPath + fileName))
                    {
                        var service = new SferaService();
                        var info = new UserInfo(0, 1);
                        var documento = service.GetDocumentoByIdentificativo(idDocumento, info);
                        var docInfo = service.GetDocument(documento.ID, TipoDocumentoArchiviazione.FatturaPassiva, info);

                        var fs = File.Create(Request.PhysicalApplicationPath + fileName);
                        var writer = new BinaryWriter(fs);
                        writer.Write(docInfo.Body);
                        writer.Close();
                        fs.Close();
                        fs.Dispose();
                    }

                    documentFrame.Attributes.Add("src", fileName);
                }
            }
        }
示例#2
0
        public DatiCondomini Get([FromUri]SearchCriteria json)
        {
            if (json.Condominio > 0)
            {
                var service = new SferaService();
                var info = new UserInfo(0, json.Azienda);

                var filter = new DocumentoFilter
                {
                    IdAzienda = json.Azienda,
                    CodiceCondominio = json.Condominio,
                    FreeText = json.FreeText,
                    PageNumber = json.PageNumber,
                    PageSize = json.PageSize,
                    Tipo = TipoDocumentoArchiviazione.Contratto,
                    VisibileCondomino = true,
                    CodiceFascicoloCondominio = json.IdFascicolo > 0 ? json.IdFascicolo : (int?)null
                };
                var documenti = service.GetDocumentiPubbliciByFilter(filter, info);

                var fascicoli = service.GetFascicoliNameValueConDocumentiPubbliciByCondominio(json.Condominio, info);
                fascicoli.Insert(0, new NameValueDTO<int, string>(0, "(Tutti i fascicoli)"));

                return new DatiCondomini { Documenti = documenti.Documenti, Fascicoli = fascicoli, TotalItems = documenti.TotaleDocumenti };
            }

            return new DatiCondomini();
        }
示例#3
0
        public DatiCondomini Get([FromUri] SearchCriteria json)
        {
            var service = new SferaService();
            var info = new UserInfo(0, json.Azienda);

            var rate = service.GetRateByPersonaCondominio(json.Condominio, json.Persona, info).Where(item => item.ImportoRata > 0).ToList();
            var ratePerEsercizi = rate.OrderBy(item => item.DataScadenza).GroupBy(item => item.IdEsercizio);
            var esercizi = ratePerEsercizi.Select(kvp => new EsercizioDTO {ID = kvp.Key, Descrizione = kvp.ToList()[0].DescrizioneEsercizio}).ToList();

            var soggetti = service.GetSoggettiByPersona(json.Persona, info);

            var saldiSoggetto = new List<SaldoSoggettoVersamentoDTO>();
            foreach (var esercizioDTO in esercizi)
            {
                var importoRata = 0m;
                var importoVersamento = 0m;
                foreach (var soggettoCondominioDTO in soggetti)
                {
                    var rateVersamenti = service.GetVersatoBySoggetto(esercizioDTO.ID, soggettoCondominioDTO.ID, DateTime.Today, info);
                    importoRata += rateVersamenti.Sum(item => item.Importo.GetValueOrDefault());
                    importoVersamento += rateVersamenti.Sum(item => item.ImportoPagato.GetValueOrDefault());
                }

                saldiSoggetto.Add(new SaldoSoggettoVersamentoDTO { IdEsercizio = esercizioDTO.ID, ImportoRate = importoRata, ImportoVersamenti = importoVersamento });
            }

            return new DatiCondomini { Esercizi = esercizi, Rate = rate, SaldiSoggetto = saldiSoggetto};
        }
示例#4
0
        public ActionResult Download(string id, int azienda)
        {
            if (!string.IsNullOrEmpty(id))
            {
                var service = new SferaService();
                var info = new UserInfo(0, azienda);

                var documentoFileName = getDocumentoFileName(id, service, info);
                var documento = documentoFileName.Documento;

                var docInfo = getDocumentInfo(documento, service, info);
                if (docInfo.Body != null)
                {
                    var fileName = documento.FileName;
                    if (!fileName.EndsWith(".pdf"))
                        fileName = $"{fileName}.pdf";

                    var cd = new System.Net.Mime.ContentDisposition
                    {
                        // for example foo.bak
                        FileName = fileName,

                        // always prompt the user for downloading, set to true if you want 
                        // the browser to try to show the file inline
                        Inline = true,
                    };

                    Response.AddHeader("set-cookie", "fileDownload=true; path=/");
                    Response.AppendHeader("Content-Disposition", cd.ToString());
                    return File(docInfo.Body, "application/pdf");
                }
            }

            return null;
        }
示例#5
0
 public ContattoRepository(int idPersona, UserInfo info, WindsorConfigRepository windsorRepository)
 {
     _info = info;
     _windsorRepository = windsorRepository;
     var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
     _persona = daoFactory.GetPersonaDao().GetById(idPersona, false);
 }
示例#6
0
        public IList<CondominioDTO> Get(PersonaDTO json)
        {
            var service = new SferaService();
            var info = new UserInfo(0, json.Azienda);

            return service.GetCondominiByPersona(json.ID, info);
        }
示例#7
0
        public PersonaDTO Get(SearchCriteria json)
        {
            var service = new SferaService();
            var info = new UserInfo(0, json.Azienda);

            return service.GetPersonaByID(json.Persona, info);
        }
        public MovimentoBancarioRepository(UserInfo info, WindsorConfigRepository windsorRepository)
        {
            _windsorRepository = windsorRepository;
            _info = info;
            _daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            IList<CausaleACBI> lista = _daoFactory.GetCausaleACBIDao().GetAll();
            _causaliACBI = new Dictionary<string, CausaleACBI>(lista.Count);
            foreach (CausaleACBI caus in lista)
                _causaliACBI.Add(caus.Codice, caus);

        }
示例#9
0
        public string SalvaPersona(PersonaDTO value)
        {
            var service = new SferaService();
            var info = new UserInfo(0, value.Azienda);
            
            value.Stato = "U";
            foreach (var contattoDTO in value.Contatti)
                contattoDTO.Stato = "U";

            var idPersona = service.SetPersona(value, info);
            if (idPersona != null)
                return string.Empty;
            return "Si sono verificati problemi";
        }
示例#10
0
        public DatiCondomini GetByCriteria(SearchCriteria json)
        {
            if (json == null)
                return null;

            var service = new SferaService();
            var info = new UserInfo(0, json.Azienda);

            var eserciziAttivi = service.GetEserciziByCondominio(json.Condominio, info).Where(item => item.StatoEsercizio == StatoEsercizioEnum.Aperto).ToList();
            _datiCondomini.Versamenti = service.GetVersamentiByEserciziAttiviPersone(json.Condominio, new List<int> {json.Persona}, info);
            _datiCondomini.Rate = service.GetRateByPersonaCondominio(json.Condominio, json.Persona, info);

            _datiCondomini.Esercizi = eserciziAttivi.Where(item => _datiCondomini.Versamenti.Any(vers => vers.IdEsercizio == item.ID) || _datiCondomini.Rate.Any(rate => rate.IdEsercizio == item.ID)).ToList();

            return _datiCondomini;
        }
示例#11
0
        public PersonaCondomini Get(SearchCriteria json)
        {
            if (json != null)
            {
                var service = new SferaService();
                var info = new UserInfo(0, json.Azienda);
                var persona = service.GetPersonaByID(json.Persona, info);
                IList<CondominioDTO> condomini = null;
                if (persona != null)
                    condomini = service.GetCondominiByPersona(persona.ID, info);

                return new PersonaCondomini(persona, condomini);
            }

            return new PersonaCondomini(null, null);
        }
示例#12
0
        public PersonaCondomini Login(string username, string password)
        {
            var service = new SferaService();
            var info = new UserInfo(0, 1);

            var persona = service.GetPersonaByUtentePassword(username, password, info);
            IList<CondominioDTO> condomini = null;
            if (persona != null)
            {
                info.Azienda = persona.Azienda;
                condomini = service.GetCondominiByPersona(persona.ID, info);
                _log.InfoFormat("Utente Loggato - {0} - persona:{1}", Library.Utility.GetMethodDescription(), persona.ID);
            }

            return new PersonaCondomini(persona, condomini);
        }
示例#13
0
		public CondominioDTO[] GetCondomini(UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var repo = new CondominioRepository(userinfo, windsorRep);
				CondominioDTO[] items = repo.GetAll();
				windsorRep.Commit();
				return items;
			}
			catch(Exception ex)
			{
                _log.ErrorFormat("Errore nel caricamento dei condomini - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}
        public DatiCondomini Get([FromUri]SearchCriteria json)
        {
            var service = new SferaService();
            var info = new UserInfo(0, json.Azienda);

            var filter = new MovimentoBancarioFilter
            {
                IdCondominio = json.Condominio,
                DataContabileIniziale = json.DataIniziale,
                DataContabileFinale = json.DataFinale
            };

            var inizio = ((json.PageNumber - 1)*json.PageSize);
            var movimentiBancari = service.GetMovimentiByFilter(filter, inizio, json.PageSize, true, info);
            foreach (var movimentiBancariDTO in movimentiBancari)
            {
                if (movimentiBancariDTO.Segno == "D")
                    movimentiBancariDTO.Importo = movimentiBancariDTO.Importo*-1;
                movimentiBancariDTO.Descrizione = movimentiBancariDTO.DescrizioneBreve + movimentiBancariDTO.Descrizione;
            }

            var totaleMovimenti = service.GetMovimentiCountByFilter(filter, info);

            // Saldi
            var saldiBancari = service.GetSaldiBancariByCondominio(json.Condominio, info);
            var condominio = service.GetCondominioById(json.Condominio, true, false, info);
            var saldi = new List<SaldoContoCorrente>();
            foreach (var saldoBancarioDTO in saldiBancari)
            {
                var idContoCorrente = saldoBancarioDTO.IdContoCorrente;
                var datiBancari = condominio.DatiBancari.FirstOrDefault(item => item.ID == idContoCorrente);
                if (datiBancari != null)
                {
                    var descrizione = datiBancari.DisplayName;
                    var iban = datiBancari.Iban;
                    var importo = saldoBancarioDTO.SaldoContabileBanca;
                    saldi.Add(new SaldoContoCorrente(descrizione, iban, importo.GetValueOrDefault()));
                }
            }

            return new DatiCondomini { MovimentiBancari = movimentiBancari, TotalItems = totaleMovimenti, Saldi = saldi};
        }
示例#15
0
		public LogTransazione BeginTransaction(UserInfo info, System.Data.IsolationLevel isolationLevel, bool isTransazioneLog = false, bool? flushOnCommit = null)
		{
		    try
		    {
		        var daoFactory = GetDaoFactory(info.Azienda);
		        var utenti = daoFactory.GetUtenteDao().GetByAzienda(info.Azienda);

		        _container = GetContainer(info.Azienda);
		        _persistenceContext = _container.Resolve<IPersistenceContext>();

		        var singleOrDefault = utenti.SingleOrDefault(item => item.ID == info.Utente);
		        if (singleOrDefault != null)
                    _utente = singleOrDefault.Referente != null ? singleOrDefault.Referente.PersonaRiferimento.Nome : singleOrDefault.Nome;

                _persistenceContext.BeginTransaction(_utente, isolationLevel, flushOnCommit);
                var parameters = new Dictionary<string, object>(1) {{"deleted", "Y"}};
                _persistenceContext.EnableFilter("excludeDeletedCondominio", parameters);
                _persistenceContext.EnableFilter("excludeDeletedUnitaImmobiliari", parameters);
                _persistenceContext.EnableFilter("excludeDeletedSottoconto", parameters);

                var parametersRate = new Dictionary<string, object>(1) {{"stato", StatoRataEnum.Richiamata.ToString()}};
                _persistenceContext.EnableFilter("excludeRateRichiamate", parametersRate);

                LogTransazione logTransazione = null;
                if (isTransazioneLog)
                {
                    _logTransazioneService = _container.Resolve<ILogTransazioneService>();
                    logTransazione = _logTransazioneService.AddLog(info.Utente, AzioneUtente.TransazioneContabile);
                }

                return logTransazione;
            }
            catch (Exception ex)
            {
                var log = LogManager.GetLogger("Sfera");
                log.FatalFormat("Errore durante la inizializzazione della transazione - {0} - idAzienda:{1} - utente:{2}", ex, Library.Utility.GetMethodDescription(), info.Azienda, info.Utente);
                throw;
            }
		}
		public DatiCondominiDto GetDati(int azienda)
		{
		    var rateTemp = new List<RataPersonaDTO>()
		    {
		        new RataPersonaDTO() {DataScadenza = new DateTime(2014, 2, 15), ImportoRata = 456.67m}
		    };
            return new DatiCondominiDto { Rate = rateTemp };


            var service = new SferaService();
            HttpContext.Current.Session["utente"] = service.GetPersonaByID(5375, new UserInfo(0, azienda));
            HttpContext.Current.Session["condomino"] = service.GetSoggettoCondominioById(206, new UserInfo(0, azienda));
            if (HttpContext.Current.Session["utente"] != null)
            {
                var info = new UserInfo(0, azienda);
                var condomino = (SoggettoCondominioDTO)HttpContext.Current.Session["condomino"];
                var rate = service.GetRateByPersonaCondominio(condomino.IdCondominio, ((PersonaDTO)HttpContext.Current.Session["utente"]).ID, info);

                return new DatiCondominiDto { Rate = rate.ToList()};
            }
            return new DatiCondominiDto();
		}
示例#17
0
        public DatiCondomini Get([FromUri]SearchCriteria json)
        {
            if (json.Azienda > 0)
            {
                var service = new SferaService();
                var info = new UserInfo(0, json.Azienda);

                if (json.Condominio > 0)
                {
                    var versamenti = service.GetVersamentiByEserciziAttiviPersone(json.Condominio, new List<int> {json.Persona}, info);
                    var versamentiPerEsercizi = versamenti.OrderBy(item => item.DataPagamento).GroupBy(item => item.IdEsercizio);
                    var esercizi = versamentiPerEsercizi.Select(kvp => new EsercizioDTO {ID = kvp.Key, Descrizione = kvp.ToList()[0].DescrizioneEsercizio}).ToList();

                    return new DatiCondomini {Esercizi = esercizi, Versamenti = versamenti};
                }
            }
            else
            {
                _log.ErrorFormat("Azienda NULL - {0} - persona:{1} - condominio:{2}", Library.Utility.GetMethodDescription(), json.Persona, json.Condominio);
            }

            return new DatiCondomini();
        }
示例#18
0
        private DocumentoFileName getDocumentoFileName(string idStr, ISferaService service, UserInfo info)
        {
            string fileName;
            DocumentoDTO documento;
            int id;
            if (int.TryParse(idStr, out id))
            {
                documento = service.GetDocumentoById(id, info);
                if (!string.IsNullOrEmpty(documento.IdentificativoArchiviazioneOttica))
                    fileName = "documenti/" + documento.IdentificativoArchiviazioneOttica.Trim() + ".pdf";
                else
                    fileName = "documenti/" + documento.FileName;

                fileName = addDocumentoExtension(documento, fileName);
            }
            else
            {
                fileName = $"documenti/{idStr}.pdf";
                documento = new DocumentoDTO { FileName = idStr, Descrizione = idStr };
            }

            return new DocumentoFileName(documento, fileName);
        }
示例#19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (HttpContext.Current.Session["condominio"] != null)
            {
                if (Request.QueryString["action"] != null && Request.QueryString["path"] != null)
                {
                    var action = Request.QueryString["action"].Trim();
                    //var azienda = int.Parse(Request.QueryString["azienda"].Trim());
                    var service = new SferaService();
                    var info = new UserInfo(0, int.Parse(Session["azienda"].ToString()));

                    var documentoFileName = getDocumentoFileName(service, info);
                    var documento = documentoFileName.Documento;

                    var docInfo = getDocumentInfo(documento, service, info);
                    if (docInfo.Body != null)
                    {

                        switch (action)
                        {
                            case "info":
                                getInfo(docInfo.Body, addDocumentoExtension(documento, documento.FileName.Trim()));
                                break;

                            case "download":
                                getFile(docInfo.Body, addDocumentoExtension(documento, documento.Descrizione.Trim()));
                                break;
                        }
                    }
                    else
                        Response.Write("NOTFOUND");

                    Response.Flush();
                    Response.End();
                }
            }
        }
示例#20
0
		public CondominioDTO[] GetCondominiByAzienda(UserInfo userinfo)
		{
            var retryCount = 10;
            var success = false;
            var windsorRep = new WindsorConfigRepository();
            CondominioDTO[] item = null;
            while (retryCount >= 0 && !success)
            {
                try
                {
                    windsorRep.BeginTransaction(userinfo);
                    var repo = new CondominioRepository(userinfo, windsorRep);
                    item = repo.GetAllByAzienda(userinfo.Azienda);
                    windsorRep.Commit();
                    success = true;
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nel caricamento dei condomini per azienda - TENTATIVO:{0} - {1} - azienda:{2} - number:{3}", ex, (11 - retryCount), Utility.GetMethodDescription(), userinfo.Azienda, getExceptionId(ex));

                    windsorRep.Rollback();
                    if (!isRetryException(ex))
                        throw;

                    // Add delay here if you wish. 
                    System.Threading.Thread.Sleep(1000 * (11 - retryCount));
                    retryCount--;
                    _log.InfoFormat("Caricamento dei condomini per azienda - INIZIO TENTATIVO:{0} - {1} - azienda:{2}", (11 - retryCount), Utility.GetMethodDescription(), userinfo.Azienda);
                }
            }

            if (!success)
                windsorRep.Rollback();

            return item;
		}
示例#21
0
 public ModelloRepository(UserInfo info, WindsorConfigRepository windsorRepository)
 {
     _info = info;
     _windsorRepository = windsorRepository;
 }
示例#22
0
 public SpesaRepository(UserInfo info, WindsorConfigRepository windsorRepository)
 {
     _windsorRepository = windsorRepository;
     _info = info;
 }
示例#23
0
 public PraticaRepository(UserInfo info, WindsorConfigRepository windsorRepository)
 {
     _info = info;
     _windsorRepository = windsorRepository;
 }
示例#24
0
 public ScadenzaFatturaRepository(UserInfo info, WindsorConfigRepository windsorRepository)
 {
     _info = info;
     _windsorRepository = windsorRepository;
 }
示例#25
0
 public PersonaRepository(UserInfo info, WindsorConfigRepository windsorRepository)
 {
     _windsorRepository = windsorRepository;
     _info = info;
     _locRep = new LocalitaRepository(info, _windsorRepository);
 }
示例#26
0
        public static PersonaCondomini AuthenticateUser(string user, string password, int azienda)
        {
            var log = LogManager.GetLogger("Sfera");
            try
            {
                var service = new SferaService();
                var info = new UserInfo(0, azienda);
                var result = new PersonaCondomini();

                decimal codiceFiscale;
                var isCodiceFiscale = decimal.TryParse(password, out codiceFiscale);
                if (!isCodiceFiscale)
                {
                    result.TipoAutenticazione = "SOGGETTO";
                    var persona = service.VerificaUtentePersona(user, password, info);

                    if (persona != null)
                    {
                        HttpContext.Current.Session.Add("utente", persona);
                        var soggetti = service.GetSoggettiByPersona(persona.ID, info);
                        if (soggetti.Count == 1)
                        {
                            var soggetto = soggetti.SingleOrDefault();
                            if (soggetto != null)
                            {
                                result.NumeroCondomini = 1;
                                result.Persona = persona;
                                result.Condomini = new Dictionary<string, string> { { soggetto.IdCondominio.ToString(), soggetto.DescrizioneUnitaImmobiliare } };

                                // Contatti
                                result.Contatti = getContatti(persona);

                                HttpContext.Current.Session.Add("azienda", azienda);
                                HttpContext.Current.Session.Add("condomino", soggetto);
                                HttpContext.Current.Session.Add("condominio", soggetto.IdCondominio);

                                log.Info("Utente autenticato - " + Utility.GetMethodDescription() + " - username:"******"azienda", azienda);
                                HttpContext.Current.Session.Add("condomino", soggetto);
                                HttpContext.Current.Session.Add("condominio", soggetto.IdCondominio);

                            }
                        }
                    }
                }
                else
                {
                    result.TipoAutenticazione = "CONDOMINIO";
                    var condominio = service.AutenticazioneCondominio(user, password, info);
                    if (condominio != null)
                    {
                        HttpContext.Current.Session.Add("azienda", condominio.AziendaID); 
                        HttpContext.Current.Session.Add("condominio", condominio.ID);
                        result.Condominio = condominio;
                    }
                    else
                        return new PersonaCondomini { TipoAutenticazione = "FALLITA", ExceptionMessage = "Utente o password non riconosciuti"};
                }

                return result;
            }
            catch (Exception ex)
            {
                log.ErrorException(string.Format("Autenticazione fallita - user:{0} - password:{1} - azienda:{2}", user, password, azienda), ex);
                return new PersonaCondomini{TipoAutenticazione = "FALLITA", ExceptionMessage = ex.Message + Environment.NewLine + ex.StackTrace};
            }
        }
示例#27
0
        static ContattiPersona updateContatti(PersonaDTO persona, ContattiPersona contatti)
        {
            var service = new SferaService();
            var info = new UserInfo(0, int.Parse(HttpContext.Current.Session["azienda"].ToString()));

            updateContatto("TELEFONO", persona, contatti.Telefono, service, info);
            updateContatto("CELLULARE", persona, contatti.Cellulare, service, info);
            updateContatto("EMAIL", persona, contatti.Email, service, info);
            updateContatto("EMAILCERT",persona, contatti.EmailCertificata, service, info);

            return getContatti(persona);
        }
示例#28
0
        static void updateContatto(string tipo, PersonaDTO persona, string valore, SferaService service, UserInfo info)
        {
            var dto = persona.Contatti.FirstOrDefault(item => item.TipoContatto.ToUpper() == tipo);
            if (dto != null)
                dto.Valore = valore;
            else
                dto = new ContattoDTO { TipoContatto = tipo, Valore = valore, CodiceRiferimento = persona.ID};

            dto.Stato = "U";
            service.SetContatto(dto, info);
        }
示例#29
0
        public static PersonaCondomini AggiornaAnagrafica(ContattiPersona contatti)
        {
            var result = new PersonaCondomini();
            if (HttpContext.Current.Session["utente"] != null)
            {
                var persona = HttpContext.Current.Session["utente"] as PersonaDTO;

                if (persona != null)
                {
                    result.TipoAutenticazione = "SOGGETTO";
                    result.Contatti = updateContatti(persona, contatti);

                    var service = new SferaService();
                    var info = new UserInfo(0, int.Parse(HttpContext.Current.Session["azienda"].ToString()));
                    result.Persona = service.GetPersonaByID(persona.ID, info);
                    HttpContext.Current.Session.Add("utente", result.Persona);
                }
            }
            else
                result.TipoAutenticazione = "FALLITA";

            return result;
        }
示例#30
0
        public static IList<DocumentoDTO> GetDocumenti(int idFascicolo, int azienda)
        {
            if (HttpContext.Current.Session["condominio"] != null && idFascicolo > 0)
            {
                var service = new SferaService();
                var info = new UserInfo(0, azienda);

                // Commentata l'esecuzione del thread perchè provoca per alcuni documenti la creazione di file a 0 byte
                //var td = new Thread(loadDocumenti);
                //td.Start(idFascicolo + "&" + HttpContext.Current.Request.PhysicalApplicationPath);

                return service.GetDocumentiPubbliciByFascicolo(idFascicolo, info);
            }

            return new List<DocumentoDTO>();
        }