Ejemplo n.º 1
0
 public ImportazioneDocumento(RichiestaCodiceFiscaleDTO datiRichiesta, IManageDocumentService manageDocumentService, ICompilazioneModuliService compilazioneModuliService)
 {
     _datiRichiesta = datiRichiesta;
     _manageDocService = manageDocumentService;
     _compilazioneModuliService = compilazioneModuliService;
     InitializeComponent();
     this.Load += new EventHandler(GeneraRichiestaCodiceFiscale);
     DialogResult = DialogResult.OK;
 }
        public byte[] GetModulo(int idCondominio, DateTime dataRichiesta, int? idReferente, int? idRappresentante, string codiceFiscale, TipoRichiestaEnum tipoRichiesta, DateTime? dataVariazioneDati, string allegati)
        {
            try
            {
                var condominio = _daoFactory.GetCondominioDao().Find(idCondominio, false);
                if (condominio != null)
                {
                    if (condominio.Azienda != null && condominio.Azienda.Amministratore != null && condominio.Azienda.Amministratore.PersonaRiferimento != null && condominio.Indirizzo != null && !string.IsNullOrEmpty(condominio.Indirizzo.Civico) && condominio.Indirizzo.Comune != null && condominio.Azienda.IndirizzoSede != null)
                    {
                        var attribuzioneCodice = string.Empty;
                        var variazioneCodice = string.Empty;
                        var codiceFiscaleCondominio = string.Empty;

                        var dataVariazioneDatiCondominio = string.Empty;
                        if (dataVariazioneDati != null)
                            dataVariazioneDatiCondominio = dataVariazioneDati.GetValueOrDefault().ToShortDateString().Replace("/", string.Empty);

                        if (tipoRichiesta == TipoRichiestaEnum.Nuovo)
                            attribuzioneCodice = "1";
                        else if (tipoRichiesta == TipoRichiestaEnum.Variazione)
                        {
                            variazioneCodice = "1";
                            codiceFiscaleCondominio = codiceFiscale;
                        }

                        var allegati1 = string.Empty;
                        var allegati2 = string.Empty;
                        var allegati3 = string.Empty;
                        var allegati4 = string.Empty;

                        if (!string.IsNullOrEmpty(allegati))
                        {
                            if (allegati.Length <= 60)
                                allegati1 = allegati;
                            else if (allegati.Length > 60 && allegati.Length <= 120)
                            {
                                allegati1 = allegati.Substring(0, 60);
                                allegati2 = allegati.Substring(61);
                            }
                            else if (allegati.Length > 120 && allegati.Length <= 180)
                            {
                                allegati1 = allegati.Substring(0, 60);
                                allegati2 = allegati.Substring(61, 60);
                                allegati3 = allegati.Substring(121);
                            }
                            else if (allegati.Length > 180 && allegati.Length <= 240)
                            {
                                allegati1 = allegati.Substring(0, 60);
                                allegati2 = allegati.Substring(61, 60);
                                allegati3 = allegati.Substring(121, 60);
                                allegati4 = allegati.Substring(181);
                            }
                            else if (allegati.Length > 240)
                            {
                                allegati1 = allegati.Substring(0, 60);
                                allegati2 = allegati.Substring(61, 60);
                                allegati3 = allegati.Substring(121, 60);
                                allegati4 = allegati.Substring(181, 60);
                            }
                        }

                        var datiRichiesta = new RichiestaCodiceFiscaleDTO
                        {
                            PrimaPagina = "01",
                            SecondaPagina = "02",
                            CodiceFiscaleCondominio = codiceFiscaleCondominio,
                            DataVariazioneDati = dataVariazioneDatiCondominio,
                            DataCompilazione = dataRichiesta.ToShortDateString(),
                            NomeAmm = string.Empty,
                            CognomeAmm = condominio.Azienda.Descrizione.ToUpper(),
                            FlagAttribuzioneCodiceFiscale = attribuzioneCodice,
                            FlagVariazioneDati = variazioneCodice,
                            DenominazioneCondominio = condominio.Descrizione.ToUpper(),
                            CodiceFiscaleAzienda = condominio.Azienda.CodiceFiscale,
                            NaturaGiuridica = "51",
                            CodiceCarica = "13",
                            CodiceAttivita = "960909",
                            Allegato1 = allegati1,
                            Allegato2 = allegati2,
                            Allegato3 = allegati3,
                            Allegato4 = allegati4
                        };

                        if (tipoRichiesta == TipoRichiestaEnum.Nuovo)
                        {
                            datiRichiesta.DataCostituzione = datiRichiesta.DataVariazioneDati;
                            datiRichiesta.DataVariazioneDati = string.Empty;
                        }

                        // =========================================================
                        // Dati condominio
                        // =========================================================
                        if (condominio.Indirizzo != null)
                        {
                            datiRichiesta.CapCondominio = condominio.Indirizzo.Cap;
                            datiRichiesta.CivicoCondominio = condominio.Indirizzo.Civico;
                            datiRichiesta.IndirizzoCondominio = string.Format("{0} {1}", condominio.Indirizzo.Indirizzo.ToUpper(), condominio.Indirizzo.Civico);

                            if (condominio.Indirizzo.Comune != null)
                            {
                                datiRichiesta.ComuneCondominio = condominio.Indirizzo.Comune.Descrizione.ToUpper();
                                datiRichiesta.ProvinciaCondominio = condominio.Indirizzo.Comune.ProvinciaAppartenenza.Codice.ToUpper();
                            }
                        }

                        // =========================================================
                        // Dati studio
                        // =========================================================
                        if (condominio.Azienda.IndirizzoSede != null)
                        {
                            datiRichiesta.CapAzienda = condominio.Azienda.IndirizzoSede.Cap;
                            datiRichiesta.CivicoAzienda = condominio.Azienda.IndirizzoSede.Civico.ToUpper();
                            datiRichiesta.IndirizzoAzienda = string.Format("{0} {1}", condominio.Azienda.IndirizzoSede.Indirizzo.ToUpper(), condominio.Azienda.IndirizzoSede.Civico.ToUpper());

                            if (condominio.Azienda.IndirizzoSede.Comune != null)
                            {
                                datiRichiesta.ComuneAzienda = condominio.Azienda.IndirizzoSede.Comune.Descrizione.ToUpper();
                                datiRichiesta.ProvinciaAzienda = condominio.Azienda.IndirizzoSede.Comune.ProvinciaAppartenenza.Codice.ToUpper();
                            }
                        }

                        // =========================================================
                        // Dati amministratore
                        // =========================================================
                        Referente amministratore = null;
                        if (idRappresentante != null)
                            amministratore = _daoFactory.GetReferenteDao().Find(idRappresentante.GetValueOrDefault(), false);
                        if (amministratore == null)
                            amministratore = condominio.Azienda.Amministratore;

                        if (amministratore != null && amministratore.PersonaRiferimento != null)
                        {
                            datiRichiesta.CodiceFiscaleAmm = amministratore.PersonaRiferimento.CodiceFiscale;
                            if (!string.IsNullOrEmpty(amministratore.PersonaRiferimento.Nome))
                                datiRichiesta.NomeAmm = amministratore.PersonaRiferimento.Nome.ToUpper();
                            if (!string.IsNullOrEmpty(amministratore.PersonaRiferimento.Cognome))
                                datiRichiesta.CognomeAmm = amministratore.PersonaRiferimento.Cognome.ToUpper();
                            if (amministratore.PersonaRiferimento.Sesso != null && amministratore.PersonaRiferimento.Sesso.Value != SessoEnum.Undefined)
                                datiRichiesta.SessoAmm = amministratore.PersonaRiferimento.Sesso.ToString().ToUpper().Substring(0, 1);

                            if (amministratore.PersonaRiferimento.ComuneNascita != null)
                            {
                                datiRichiesta.ComuneNascitaAmministratore = amministratore.PersonaRiferimento.ComuneNascita.Descrizione;
                                datiRichiesta.ProvinciaNascitaAmministratore = amministratore.PersonaRiferimento.ComuneNascita.ProvinciaAppartenenza.Codice;
                            }
                            if (amministratore.PersonaRiferimento.DataNascita != null)
                                datiRichiesta.DataNascitaAmministratore = amministratore.PersonaRiferimento.DataNascita.Value.ToShortDateString().Replace("/", string.Empty);
                        }

                        // =========================================================
                        // Dati delegato
                        // =========================================================
                        if (idReferente != null)
                        {
                            var delegato = _daoFactory.GetReferenteDao().Find(idReferente.Value, false);
                            if (delegato != null && delegato.PersonaRiferimento != null)
                            {
                                datiRichiesta.NomeCompletoDelegato = delegato.DisplayName;
                                if (delegato.PersonaRiferimento.DataNascita != null)
                                    datiRichiesta.DataNascitaDelegato = delegato.PersonaRiferimento.DataNascita.GetValueOrDefault().ToShortDateString();
                                if (delegato.PersonaRiferimento.ComuneNascita != null)
                                    datiRichiesta.ComuneNascitaDelegato = delegato.PersonaRiferimento.ComuneNascita.Descrizione;
                                datiRichiesta.NomeCompletoDelegante = condominio.Azienda.Amministratore.DisplayName;
                                datiRichiesta.DataDelega = datiRichiesta.DataCompilazione;
                            }
                        }

                        var newFile = FillForm.Fill(datiRichiesta, CompilazioneModuliResources.ModelloA5, CompilazioneModuliResources.RichiestaCodiceFiscale_FieldMapping);
                        var infile = new FileStream(newFile, FileMode.Open, FileAccess.Read, FileShare.Read);
                        var buffer = new byte[infile.Length];
                        infile.Read(buffer, 0, buffer.Length);

                        return buffer;
                    }                    
                }
                
                return null;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la compilazione del modulo per richiesta del codice fiscale - {0} - condominio:{1} - referente:{2} - dataRichiesta:{3} - tipoRichiesta:{4}", ex, Library.Utility.GetMethodDescription(), idCondominio, idReferente.GetValueOrDefault(), dataRichiesta, tipoRichiesta.ToString());
                throw;
            }

        }