/// <summary> /// Crea un Proprietario valido /// </summary> public ModelloContabileFornitore(Fornitore fornitore, ModelloRegistrazioneContabile modello, LogTransazione logTransazione) { Fornitore = fornitore; Modello = modello; if (LogTransazione != null) LogTransazione.ModelliContabiliFornitore.Add(this); }
/// <summary> /// Crea un generico Contratto di Appalto valido /// </summary> public ContrattoAppalto(TipoContratto tipoContratto, Condominio condominio, Fornitore fornitore) { Tipo = tipoContratto; CondominioRiferimento = condominio; FornitoreAttuale = fornitore; if(condominio != null) condominio.ContrattiAppalto.Add(this); }
public AgenziaAssicurativa(Persona persona, Fornitore fornitore, string agenzia, int? aziendaID) : base(persona, aziendaID) { if (aziendaID != null) { Fornitore = fornitore; _agenzia = agenzia; } }
public Utenza(TipoUtenza tipo, string numero, Fornitore fornitore, Condominio condominio, DatiBancariCondomini coordinateBancarie) { Fornitore = fornitore; Condominio = condominio; Tipo = tipo; Numero = numero; CoordinateBancarie = coordinateBancarie; }
/// <summary> /// Crea una Spesa valida /// </summary> public Spesa(Fornitore fornitore, Esercizio esercizio, LogTransazione logTransazione) { FornitoreRiferimento = fornitore; EsercizioRiferimento = esercizio; Stato = StatoSpesaEnum.Inserita; LogTransazione = logTransazione; if (LogTransazione != null) LogTransazione.Spese.Add(this); }
public void SetUp() { _documentService = MockRepository.GenerateStub<IDocumentService>(); _fileSystem = MockRepository.GenerateStub<IFileSystem>(); const string str = "Documento Bolletta di Prova"; _documentoSpesa = new byte[str.Length * sizeof(char)]; Buffer.BlockCopy(str.ToCharArray(), 0, _documentoSpesa, 0, _documentoSpesa.Length); _fileSystem = MockRepository.GenerateStub<IFileSystem>(); _fileSystem.Stub(x => x.ReadAllBytes(Arg<string>.Is.Anything)).Return(_documentoSpesa); IList<Spesa> listaSpese = new List<Spesa>(); _utente = new Utente("PP"); _logTransazione = new LogTransazione(AzioneUtente.TransazioneContabile, _utente, Guid.NewGuid().ToString()); _azienda = new Azienda("PROV", "Prova") { ID = 1 }; _condominio1 = new Condominio("Condominio 1", 31, 12, 2014, _azienda) { CodiceFiscale = "91138030373" }; _annoGestionaleCondominio1 = new AnnoGestionale(_condominio1, 2014, 2014); _esercizioCondominio1 = new Esercizio(_condominio1, new DateTime(2014, 1, 1), new DateTime(2014, 12, 31), _annoGestionaleCondominio1, GestioneEsercizioEnum.Ordinario); _condominio2 = new Condominio("Condominio 2", 31, 12, 2014, _azienda) { CodiceFiscale = "90036640374" }; _annoGestionaleCondominio2 = new AnnoGestionale(_condominio2, 2014, 2014); _esercizioCondominio2 = new Esercizio(_condominio2, new DateTime(2014, 1, 1), new DateTime(2014, 12, 31), _annoGestionaleCondominio2, GestioneEsercizioEnum.Ordinario); _persona = new Persona(TipoPersonaEnum.Fisica, "Mario", "Rossi", _azienda.ID, true); _fornitore = new Fornitore(_persona, _azienda.ID); _documentiBolletteDTO = buildDocumentoBolletteDTO(); foreach (var documentoBollettaDTO in _documentiBolletteDTO) { var esercizio = _esercizioCondominio1; if (documentoBollettaDTO.CodiceFiscaleCliente == _condominio2.CodiceFiscale) esercizio = _esercizioCondominio2; listaSpese.Add(new Spesa(_fornitore, esercizio, _logTransazione) { ID = documentoBollettaDTO.IdSpesa, NumeroDocumento = documentoBollettaDTO.NumeroDocumento, DataDocumento = documentoBollettaDTO.DataDocumento }); } _daoFactory = MockRepository.GenerateStub<IDaoFactory>(); _daoFactory.Stub(x => x.GetCondominioDao().GetByCodiceFiscale(_condominio1.CodiceFiscale)).Return(_condominio1); _daoFactory.Stub(x => x.GetCondominioDao().GetByCodiceFiscale(_condominio2.CodiceFiscale)).Return(_condominio2); _spesaDao = MockRepository.GenerateStub<ISpesaDao>(); _documentoDao = MockRepository.GenerateStub<IDocumentoDao>(); _daoFactory.Stub(x => x.GetSpesaDao()).Return(_spesaDao); _daoFactory.Stub(x => x.GetDocumentoDao()).Return(_documentoDao); foreach (var spesa in listaSpese) _spesaDao.Stub(x => x.Find(spesa.ID, false)).Return(spesa); _utenzaDocumentoService = MockRepository.GenerateMock<UtenzaDocumentoService>(_daoFactory, _documentService, _fileSystem); }
public IList<GestioneCondomini.Domain.Spesa> GetSoggetteRitenutaByFornitoreCondominioAnno(Fornitore fornitore, Condominio condominio, int anno) { try { const string hql = "FROM Spesa SPE LEFT JOIN FETCH SPE.Scadenze SCA LEFT JOIN FETCH SCA.Pagamenti PAG WHERE SPE.EsercizioRiferimento.CondominioRiferimento = :condominio AND SPE.FornitoreRiferimento = :fornitore AND year(PAG.Data) = :anno AND PAG.RitenutaAcconto.Importo > 0 AND (PAG.Stato = :stato1 OR PAG.Stato = :stato2 OR PAG.Stato = :stato3 OR PAG.Stato = :stato4)"; var parameters = new List<QueryParam>(6) { new QueryParam("fornitore", fornitore.ID), new QueryParam("condominio", condominio.ID), new QueryParam("anno", anno), new QueryParam("stato1", Conversione.ToHQLParameter(StatoSpesaEnum.Pagata)), new QueryParam("stato2", Conversione.ToHQLParameter(StatoSpesaEnum.ParzialmentePagata)), new QueryParam("stato3", Conversione.ToHQLParameter(StatoSpesaEnum.PagataAltroAmministratore)), new QueryParam("stato4", Conversione.ToHQLParameter(StatoSpesaEnum.Evasa)) }; return _daoFactory.GetSpesaDao().GetByQuery(hql, parameters.ToArray()); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nella lettura delle spese soggette a ritenuta per fornitore anno - {0} - fornitore:{1} - anno:{2}", ex, Utility.GetMethodDescription(), fornitore.ID, anno); throw; } }
/// <summary> /// RECORD DI TIPO "H": Dati relativi alla comunicazione dati certificazioni lavoro autonomo, provvigioni e redditi diversi del mod. 770/20XX semplificato /// </summary> /// <param name="condominio">Condominio di riferimento</param> /// <param name="fornitore">Fornitore a cui è stata trattenuta l'imposta</param> /// <param name="ritenute">Elenco delle trattenute per fornitore</param> /// <param name="progressivoModulo">Progressivo del modulo compilato</param> /// <param name="sw">File di scrittura</param> private void writeRowH(Condominio condominio, Fornitore fornitore, int anno, IGrouping<int, Ritenuta> ritenute, int progressivoModulo, StreamWriter sw) { try { StringBuilder sb = new StringBuilder(1900); //====================================================== // CAMPI POSIZIONALI (da carattere 1 a carattere 89) //====================================================== // Tipo record sb.Append("H"); // Codice Fiscale del soggetto dichiarante (Condominio) sb.Append(condominio.CodiceFiscale.PadRight(16, ' ')); // Progressivo Modulo sb.Append(progressivoModulo.ToString().PadLeft(8, '0')); // campo utente sb.Append(string.Empty.PadLeft(3)); // Tipo operazione sb.Append(string.Empty.PadLeft(1)); // Codice Fiscale del percipiente (Fornitore) sb.Append(fornitore.GetCodiceFiscale().PadRight(16)); // filler sb.Append(string.Empty.PadLeft(8)); // campo utente per identificativo dichiarazione sb.Append(string.Empty.PadRight(20)); // Identificativo del produttore del software (codice fiscale) sb.Append("02818651206".PadRight(16)); //====================================================== // CAMPI NON POSIZIONALI (da carattere 90) //====================================================== //--------------------------------------------- // Dati relativi al percipiente delle somme //--------------------------------------------- // Codice fiscale sb.Append(getCampoNonPosizionale("AU001001", fornitore.GetCodiceFiscale(), AllineamentoCaratteri.Sinistro)); // Cognome o denominazione if (fornitore.PersonaRiferimento.TipoPersona == Gipasoft.Sfera.Enums.TipoPersonaEnum.Giuridica) sb.Append(getCampoNonPosizionale("AU001002", Gipasoft.Library.Conversione.ToCBI(fornitore.PersonaRiferimento.RagioneSociale), AllineamentoCaratteri.Sinistro)); else { // Cognome sb.Append(getCampoNonPosizionale("AU001002", Gipasoft.Library.Conversione.ToCBI(fornitore.PersonaRiferimento.Cognome), AllineamentoCaratteri.Sinistro)); // Nome sb.Append(getCampoNonPosizionale("AU001003", Gipasoft.Library.Conversione.ToCBI(fornitore.PersonaRiferimento.Nome), AllineamentoCaratteri.Sinistro)); // Sesso if (fornitore.PersonaRiferimento.TipoPersona == Gipasoft.Sfera.Enums.TipoPersonaEnum.Fisica) { if(fornitore.PersonaRiferimento.Sesso != Gipasoft.Sfera.Enums.SessoEnum.Undefined) sb.Append(getCampoNonPosizionale("AU001004", fornitore.PersonaRiferimento.Sesso.ToString().Substring(0, 1).ToUpper(), AllineamentoCaratteri.Sinistro)); // Data di nascita sb.Append(getCampoNonPosizionale("AU001005", convertData(fornitore.PersonaRiferimento.DataNascita), AllineamentoCaratteri.Destro)); // Comune di nascita sb.Append(getCampoNonPosizionale("AU001006", Gipasoft.Library.Conversione.ToCBI(fornitore.PersonaRiferimento.ComuneNascita.Descrizione), AllineamentoCaratteri.Sinistro)); // Provincia di nascita if (int.Parse(fornitore.PersonaRiferimento.ComuneNascita.Codice) <= 999201) sb.Append(getCampoNonPosizionale("AU001007", fornitore.PersonaRiferimento.ComuneNascita.ProvinciaAppartenenza.Codice, AllineamentoCaratteri.Sinistro)); else sb.Append(getCampoNonPosizionale("AU001007", "EE", AllineamentoCaratteri.Sinistro)); } } // Comune di residenza sb.Append(getCampoNonPosizionale("AU001008", Gipasoft.Library.Conversione.ToCBI(fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.Descrizione), AllineamentoCaratteri.Sinistro)); // Provincia di residenza sb.Append(getCampoNonPosizionale("AU001009", fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice, AllineamentoCaratteri.Sinistro)); // Via e numero civico sb.Append(getCampoNonPosizionale("AU001011", Gipasoft.Library.Conversione.ToCBI(fornitore.PersonaRiferimento.IndirizzoResidenza.GetIndirizzoCompleto()), AllineamentoCaratteri.Sinistro)); //--------------------------------------------- // Dati relativi alle somme erogate //--------------------------------------------- IList<Spesa> speseSoggette = _spesaService.GetSoggetteRitenutaByFornitoreCondominioAnno(fornitore, condominio, anno); decimal imponibileIva = speseSoggette.Sum(item => item.Imponibile); decimal imponibileRitenuta = speseSoggette.Sum(item => item.GetImponibileRitenuta()); decimal altreSommeNonSoggette = Math.Truncate(imponibileIva - imponibileRitenuta); // Causale string causale = "W"; if (fornitore.CodiceTributo == "1040") causale = "A"; sb.Append(getCampoNonPosizionale("AU001018", causale, AllineamentoCaratteri.Sinistro)); // Ammontare Lordo Corrisposto (al netto di IVA) sb.Append(getCampoNonPosizionale("AU001021", Math.Truncate(imponibileIva).ToString(), AllineamentoCaratteri.Destro)); // Altre somme non soggette a ritenuta if(altreSommeNonSoggette > 0) sb.Append(getCampoNonPosizionale("AU001023", altreSommeNonSoggette.ToString(), AllineamentoCaratteri.Destro)); // Imponibile sb.Append(getCampoNonPosizionale("AU001024", Math.Truncate(imponibileIva - altreSommeNonSoggette).ToString(), AllineamentoCaratteri.Destro)); // Ritenute a titolo di acconto sb.Append(getCampoNonPosizionale("AU001025", Math.Truncate(ritenute.Sum(item => item.Importo.GetValueOrDefault())).ToString(), AllineamentoCaratteri.Destro)); //====================================================== // CAMPI POSIZIONALI (da carattere 1890 a carattere 1900) //====================================================== int charToEnd = 1889 - sb.ToString().Length; sb.Append(string.Empty.PadRight(charToEnd)); // filler sb.Append(string.Empty.PadLeft(8)); //--------------------------------------------- // Ultimi caratteri di controllo //--------------------------------------------- sb.Append("A"); // CarriageReturn LineFeed sb.Append(CRLF); sw.Write(sb.ToString()); } catch (Exception ex) { log4net.MDC.Set("user", Gipasoft.Security.Login.Instance.CurrentLogin().LoginName); _log.Fatal("Errore inaspettato durante la creazione della sezione B per il modelle 770 -" + Gipasoft.Library.Utility.GetMethodDescription() + " - condominio:" + condominio.ID + " - fornitore:" + fornitore.ID, ex); throw ex; } }
/// <summary> /// Crea un movimento contabile valido. /// E' relativo al conto patrimoniale relativo alla registrazione di una spesa /// </summary> public MovimentoContabile(TestataMovimentoContabile testata, Fornitore fornitore, CausaleContabile causale, int? numeroRiga, Conto conto, decimal? importo, string segno) { Causale = causale; FornitoreRiferimento = fornitore; NumeroRiga = numeroRiga; ContoRiferimento = conto; Testata = testata; Importo = importo; Segno = segno; Stato = StatoMovimentoContabileEnum.Inserito; IsVisibileGestione = true; if (Testata != null) { Testata.Movimenti.Add(this); setNumeroRegistrazione(); } //if (FornitoreRiferimento != null) // FornitoreRiferimento.MovimentiContabili.Add(this); }
public string LoadFornitori(string key, int idAzienda, string password) { string message = string.Empty; try { string databasePath = saveDatabase(key); var conn = new OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", databasePath)); var ds = new DataSet(); var fornitoriAdapter = new OleDbDataAdapter("SELECT * FROM CT06F0 WHERE CODITTA = 1 AND CODPOS >= 500 AND CODPOS < 5000 AND (PIVA > 0 OR CODFISC is not null) AND VIA <> 'PIANO GENERALE DI STUDIO' ORDER BY CODSTAB, CODPOS", conn); fornitoriAdapter.Fill(ds, "Fornitori"); var fornitori = _daoFactory.GetFornitoreDao().GetByAzienda(idAzienda); var fornitoriPresenti = fornitori.ToDictionary(item => item.DisplayName); // ================================================================================================ // Importazione Fornitori // ================================================================================================ foreach (DataRow row in ds.Tables["Fornitori"].Rows) { try { // Persona // --------- string cognomePersona = row["NOME"].ToString().Trim(); if (!string.IsNullOrEmpty(cognomePersona)) { Fornitore fornitore; if (row["PIVA"] != DBNull.Value && row["PIVA"].ToString().Trim() != "0") fornitore = _daoFactory.GetFornitoreDao().GetByPartitaIva(row["PIVA"].ToString(), idAzienda); else fornitore = _daoFactory.GetFornitoreDao().GetByCodiceFiscale(row["CODFISC"].ToString(), idAzienda); if (fornitore == null && fornitoriPresenti.ContainsKey(cognomePersona)) fornitore = fornitoriPresenti[cognomePersona]; if (fornitore == null) { var tipoPersona = Sfera.Enums.TipoPersonaEnum.Giuridica; if (row["CODFISC"] != DBNull.Value && !string.IsNullOrEmpty(row["CODFISC"].ToString().Trim()) && row["CODFISC"].ToString().Trim()[0] >= 'A' && row["CODFISC"].ToString().Trim()[0] <= 'Z') tipoPersona = Sfera.Enums.TipoPersonaEnum.Fisica; var persona = new Persona(tipoPersona, string.Empty, cognomePersona, idAzienda, false) { IndirizzoResidenza = new Address { Indirizzo = row["VIA"].ToString(), Cap = row["CAP"].ToString() } }; if (persona.TipoPersona.GetValueOrDefault() == Sfera.Enums.TipoPersonaEnum.Giuridica) { persona.RagioneSociale = persona.Cognome; persona.Cognome = null; } if (row["CODFISC"] != DBNull.Value && !string.IsNullOrEmpty(row["CODFISC"].ToString())) persona.CodiceFiscale = row["CODFISC"].ToString().ToUpper(); if (row["PIVA"] != DBNull.Value && !string.IsNullOrEmpty(row["PIVA"].ToString())) persona.PartitaIva = row["PIVA"].ToString(); if (row["TITOLO"] != DBNull.Value && !string.IsNullOrEmpty(row["TITOLO"].ToString())) persona.Titolo = row["TITOLO"].ToString(); persona.CodiceImportazione = row["CODITTA"] + "&" + row["CODSTAB"] + "&" + row["ESERCIZIO"] + "&" + row["CODPOS"]; if (row["LOC"] != DBNull.Value && !string.IsNullOrEmpty(row["LOC"].ToString())) { IList<Comune> comuni = _daoFactory.GetComuneDao().GetByDescrizione(row["LOC"].ToString().Trim()); if (comuni.Count == 1) persona.IndirizzoResidenza.Comune = comuni[0]; else { var comuniDescr = comuni.Where(item => item.Descrizione.Trim().ToUpper() == row["LOC"].ToString().Trim().ToUpper()).ToList(); if (comuniDescr.Count() == 1) persona.IndirizzoResidenza.Comune = comuniDescr.SingleOrDefault(); } if (persona.IndirizzoResidenza.Comune == null) persona.IndirizzoResidenza.Localita = row["LOC"].ToString(); } // --------- // Contatti // --------- if (row["TEL1"] != DBNull.Value && !string.IsNullOrEmpty(row["TEL1"].ToString().Trim())) persona.Contatti.Add(new Telefono(row["TEL1"].ToString(), true, persona)); if (row["TEL2"] != DBNull.Value && !string.IsNullOrEmpty(row["TEL2"].ToString().Trim())) persona.Contatti.Add(new Telefono(row["TEL2"].ToString(), false, persona)); if (row["E-MAIL"] != DBNull.Value && !string.IsNullOrEmpty(row["E-MAIL"].ToString().Trim())) persona.Contatti.Add(new Email(row["E-MAIL"].ToString(), true, persona)); _daoFactory.GetPersonaDao().SaveOrUpdate(persona); // =========================== // Fornitore // =========================== fornitore = new Fornitore(persona, idAzienda) { CodiceImportazione = row["CODITTA"] + "&" + row["CODSTAB"] + "&" + row["ESERCIZIO"] + "&" + row["CODPOS"] }; _daoFactory.GetFornitoreDao().SaveOrUpdate(fornitore); fornitoriPresenti.Add(cognomePersona, fornitore); } var cond = _daoFactory.GetCondominioDao().GetByCodice(row["CODSTAB"].ToString().Trim().PadLeft(3, '0'), idAzienda); cond.FornitoriPreferiti.Add(fornitore); } } catch (Exception ex) { _log.Error("Errore inaspettato l'importazione di un fornitore da CONDOR: " + Library.Utility.GetMethodDescription() + " (Fornitore) - idFornitore:" + row["CODITTA"] + "&" + row["CODSTAB"] + "&" + row["CODPOS"] + " - nome:" + row["NOME"], ex); throw; } } } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei fornitori da CONDOR: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei fornitori da CONDOR: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
public virtual IUpdatableBusinessEntity Copy() { var persona = (Persona)PersonaRiferimento.Copy(); var fornitore = new Fornitore(persona, _aziendaID); return fornitore; }
} /// <summary> /// RECORD DI TIPO "H": Dati relativi alla comunicazione dati certificazioni lavoro autonomo, provvigioni e redditi diversi - CU 2015 /// </summary> /// <param name="condominio">Condominio di riferimento</param> /// <param name="fornitore">Fornitore a cui è stata trattenuta l'imposta</param> /// <param name="anno"></param> /// <param name="datiCertificazione">Dati delle certificazioni</param> /// <param name="esenteRegimeMinimo">Identifica se il fornitore è esente per regime minimo</param> /// <param name="progressivoCertificazione"></param> /// <param name="progressivoModulo">Progressivo del modulo compilato</param> /// <param name="sw">File di scrittura</param> private void writeRowH(Condominio condominio, Fornitore fornitore, int anno, IList<DettaglioDatiCertificazioneDTO> datiCertificazione, bool esenteRegimeMinimo, int progressivoCertificazione, int progressivoModulo, StreamWriter sw) { try { var sb = new StringBuilder(1900); var datiImponibile = new List<DettaglioDatiCertificazioneDTO>(); foreach (var dettaglioDatiCertificazioneDTO in datiCertificazione) { if(datiImponibile.All(item => item.IdFattura != dettaglioDatiCertificazioneDTO.IdFattura)) datiImponibile.Add(dettaglioDatiCertificazioneDTO); } //====================================================== // CAMPI POSIZIONALI (da carattere 1 a carattere 89) //====================================================== var formatoDecimale = "#0.00"; var cultureInfo = new CultureInfo("it-IT"); // Tipo record sb.Append("H"); // Codice fiscale del Sostituto d'imposta (Condominio) sb.Append(condominio.CodiceFiscale.PadRight(16, ' ')); // Progressivo Modulo sb.Append(progressivoModulo.ToString(CultureInfo.InvariantCulture).PadLeft(8, '0')); // Codice Fiscale del percipiente (Fornitore) sb.Append(fornitore.GetCodiceFiscale().ToUpper().PadRight(16)); // Progressivo Certificazione sb.Append(progressivoCertificazione.ToString(CultureInfo.InvariantCulture).PadLeft(5, '0')); // filler sb.Append(string.Empty.PadLeft(17)); // Spazio a disposizione dell'utente sb.Append(string.Empty.PadRight(6)); // filler sb.Append(string.Empty.PadLeft(14)); // filler sb.Append(string.Empty.PadLeft(1)); // filler sb.Append(string.Empty.PadLeft(4)); // filler sb.Append(string.Empty.PadLeft(1)); //====================================================== // CAMPI NON POSIZIONALI (da carattere 90) //====================================================== //--------------------------------------------- // Dati relativi al percipiente delle somme //--------------------------------------------- // Causale sb.Append(getCampoNonPosizionale("AU001001", fornitore.GetTipologiaReddito(), AllineamentoCaratteri.Sinistro)); // Anno //sb.Append(getCampoNonPosizionale("AU001002", anno.ToString(cultureInfo), AllineamentoCaratteri.Destro)); // Ammontare lordo corrisposto sb.Append(getCampoNonPosizionale("AU001004", Math.Round(datiCertificazione.Sum(item => item.CompensiSoggetti + item.CompensiNonSoggetti + item.AltreSpeseNonSoggette), 2).ToString(formatoDecimale, cultureInfo), AllineamentoCaratteri.Destro)); // Altre somme non soggette a ritenuta var altreSommeNonSoggetteARitenuta = Math.Round(datiCertificazione.Sum(item => item.CompensiNonSoggetti + item.AltreSpeseNonSoggette), 2); if (altreSommeNonSoggetteARitenuta > 0) { sb.Append(getCampoNonPosizionale("AU001007", altreSommeNonSoggetteARitenuta.ToString(formatoDecimale, cultureInfo), AllineamentoCaratteri.Destro)); // Codice sb.Append(getCampoNonPosizionale("AU001006", "3", AllineamentoCaratteri.Destro)); } if (!esenteRegimeMinimo) { // Imponibile sb.Append(getCampoNonPosizionale("AU001008", Math.Round(datiCertificazione.Sum(item => item.CompensiSoggetti), 2).ToString(formatoDecimale, cultureInfo), AllineamentoCaratteri.Destro)); // Ritenute a titolo di acconto sb.Append(getCampoNonPosizionale("AU001009", Math.Round(datiCertificazione.Sum(item => item.ImportoRitenuta), 2).ToString(formatoDecimale, cultureInfo), AllineamentoCaratteri.Destro)); } //====================================================== // CAMPI POSIZIONALI (da carattere 1890 a carattere 1900) //====================================================== var charToEnd = 1889 - sb.ToString().Length; sb.Append(string.Empty.PadRight(charToEnd)); // filler sb.Append(string.Empty.PadLeft(8)); //--------------------------------------------- // Ultimi caratteri di controllo //--------------------------------------------- sb.Append("A"); // CarriageReturn LineFeed sb.Append(CRLF); sw.Write(sb.ToString()); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la creazione della sezione H per il modello Certificazione Unica - {0} - condominio:{1} - fornitore:{2}", ex, Library.Utility.GetMethodDescription(), condominio.ID, fornitore.ID); throw;
/// <summary> /// RECORD DI TIPO "D": Dati anagrafici del percipiente - CU 2015 /// </summary> /// <param name="condominio"></param> /// <param name="fornitore">Fornitore percipiente</param> /// <param name="progressivoCertificazione">Progressivo della certificazione</param> /// <param name="dataDichiarazione"></param> /// <param name="progressivoInvio">Progressivo Attribuito dal Servizio telematico alla singola C.U.</param> /// <param name="sw">File di scrittura</param> /// <param name="tipoOperazione">Identifica se si tratta di un nuovo invio oppure di una sostituzione o un annullamento di un invio precedente</param> /// <param name="protocolloComunicazione">Protocollo assegnato dal Servizio telematico alla singola C.U. che si intende sostituire</param> private void writeRowD(Condominio condominio, Fornitore fornitore, int progressivoCertificazione, DateTime dataDichiarazione, TipoOperazioneFiscale tipoOperazione, long? protocolloComunicazione, int? progressivoInvio, StreamWriter sw) { try { var cognomeFornitore = fornitore.PersonaRiferimento.RagioneSociale; var nomeFornitore = string.Empty; var sessoFornitore = string.Empty; var dataNascitaFornitore = string.Empty; if (fornitore.PersonaRiferimento.TipoPersona == TipoPersonaEnum.Fisica) { cognomeFornitore = fornitore.PersonaRiferimento.Cognome; nomeFornitore = fornitore.PersonaRiferimento.Nome; sessoFornitore = fornitore.PersonaRiferimento.Sesso.GetValueOrDefault().ToString().ToUpper().Substring(0, 1); dataNascitaFornitore = convertData(fornitore.PersonaRiferimento.DataNascita); } var sb = new StringBuilder(1900); //====================================================== // CAMPI POSIZIONALI (da carattere 1 a carattere 89) //====================================================== // Tipo record sb.Append("D"); // Codice Fiscale del sostituto d'imposta (Condominio) sb.Append(condominio.CodiceFiscale.PadRight(16, ' ')); // Progressivo Modulo const int progressivoModulo = 1; sb.Append(progressivoModulo.ToString(CultureInfo.InvariantCulture).PadLeft(8, '0')); // Codice fiscale del percipiente sb.Append(fornitore.GetCodiceFiscale().PadRight(16, ' ')); // Progressivo Certificazione sb.Append(progressivoCertificazione.ToString(CultureInfo.InvariantCulture).PadLeft(5, '0')); // ------------------------------------------------------------------------------------------------------------- // Sezione da compilare per la sostituzione di una singola certificazione già trasmessa e accolta (Campi 6 e 7) // ------------------------------------------------------------------------------------------------------------- // Protocollo assegnato dal Servizio telematico alla singola C.U. che si intende sostituire - Identificativo dell'invio sb.Append(tipoOperazione == TipoOperazioneFiscale.Nuovo ? string.Empty.PadLeft(17, '0') : protocolloComunicazione.ToString().PadLeft(17, '0')); // Protocollo assegnato dal Servizio telematico alla singola C.U. che si intende sostituire - Progressivo Attribuito dal Servizio telematico alla singola C.U. sb.Append(tipoOperazione == TipoOperazioneFiscale.Nuovo ? string.Empty.PadLeft(6, '0') : progressivoInvio.ToString().PadLeft(6, '0')); // Spazio a disposizione dell'utente sb.Append(string.Empty.PadLeft(14)); // Tipo operazione: Annullamento - Sostituzione var tipoOperazioneAnnSost = string.Empty; switch (tipoOperazione) { case TipoOperazioneFiscale.Annullamento: tipoOperazioneAnnSost = "A"; break; case TipoOperazioneFiscale.Sostituzione: tipoOperazioneAnnSost = "S"; break; } sb.Append(tipoOperazioneAnnSost.PadLeft(1)); // Filler sb.Append(string.Empty.PadLeft(4)); // Flag conferma Singola Certificazione per i controlli di rispondenza sb.Append("0"); //====================================================== // CAMPI NON POSIZIONALI (da carattere 90) //====================================================== //--------------------------------------------- // Dati relativi al datore di lavoro, ente pensionistico o altro sostituto d'imposta //--------------------------------------------- // Codice Fiscale sb.Append(getCampoNonPosizionale("DA001001", condominio.CodiceFiscale, AllineamentoCaratteri.Sinistro)); // Cognome o denominazione sb.Append(getCampoNonPosizionale("DA001002", condominio.Descrizione, AllineamentoCaratteri.Sinistro)); // Comune di residenza sb.Append(getCampoNonPosizionale("DA001004", condominio.Indirizzo.Comune.Descrizione, AllineamentoCaratteri.Sinistro)); // Provincia di residenza sb.Append(getCampoNonPosizionale("DA001005", getSiglaProvincia(condominio.Indirizzo.Comune), AllineamentoCaratteri.Sinistro)); // Cap sb.Append(getCampoNonPosizionale("DA001006", condominio.Indirizzo.Cap, AllineamentoCaratteri.Sinistro)); // Via e numero civico sb.Append(getCampoNonPosizionale("DA001007", string.Format("{0} {1}", condominio.Indirizzo.Indirizzo, condominio.Indirizzo.Civico), AllineamentoCaratteri.Sinistro)); // Codice attività sb.Append(getCampoNonPosizionale("DA001010", "970000", AllineamentoCaratteri.Sinistro)); // Codice Sede var codiceSedeEntratel = "000"; if (!string.IsNullOrEmpty(condominio.Azienda.CodiceSedeEntratel)) codiceSedeEntratel = condominio.Azienda.CodiceSedeEntratel; sb.Append(getCampoNonPosizionale("DA001011", codiceSedeEntratel, AllineamentoCaratteri.Sinistro)); //--------------------------------------------- // Dati relativi al dipendente, pensionato o altro percettore delle somme //--------------------------------------------- // Codice Fiscale sb.Append(getCampoNonPosizionale("DA002001", fornitore.GetCodiceFiscale().ToUpper(), AllineamentoCaratteri.Sinistro)); // Cognome sb.Append(getCampoNonPosizionale("DA002002", cognomeFornitore.ToUpper(), AllineamentoCaratteri.Sinistro)); // Nome sb.Append(getCampoNonPosizionale("DA002003", nomeFornitore.ToUpper(), AllineamentoCaratteri.Sinistro)); // Sesso sb.Append(getCampoNonPosizionale("DA002004", sessoFornitore, AllineamentoCaratteri.Sinistro)); // Data di nascita sb.Append(getCampoNonPosizionale("DA002005", dataNascitaFornitore, AllineamentoCaratteri.Destro)); if (fornitore.PersonaRiferimento.ComuneNascita != null) { // Comune (o Stato estero) di nascita sb.Append(getCampoNonPosizionale("DA002006", fornitore.PersonaRiferimento.ComuneNascita.Descrizione, AllineamentoCaratteri.Sinistro)); // Provincia di nascita (sigla) sb.Append(getCampoNonPosizionale("DA002007", getSiglaProvincia(fornitore.PersonaRiferimento.ComuneNascita), AllineamentoCaratteri.Sinistro)); } // Domicilio fiscale al 1/1/2014 // ----------------------------- // Comune sb.Append(getCampoNonPosizionale("DA002020", fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.Descrizione, AllineamentoCaratteri.Sinistro)); // Provincia (sigla) sb.Append(getCampoNonPosizionale("DA002021", getSiglaProvincia(fornitore.PersonaRiferimento.IndirizzoResidenza.Comune), AllineamentoCaratteri.Sinistro)); // Codice comune sb.Append(getCampoNonPosizionale("DA002022", fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.CodiceCatastale, AllineamentoCaratteri.Sinistro)); // Domicilio fiscale al 1/1/2015 // ----------------------------- // Comune sb.Append(getCampoNonPosizionale("DA002023", fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.Descrizione, AllineamentoCaratteri.Sinistro)); // Provincia (sigla) sb.Append(getCampoNonPosizionale("DA002024", getSiglaProvincia(fornitore.PersonaRiferimento.IndirizzoResidenza.Comune), AllineamentoCaratteri.Sinistro)); // Codice comune sb.Append(getCampoNonPosizionale("DA002025", fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.CodiceCatastale, AllineamentoCaratteri.Sinistro)); // Sezione Firma Certificazione Unica // ----------------------------- // Data Firma Sostituto d'imposta sb.Append(getCampoNonPosizionale("DA003001", convertData(dataDichiarazione), AllineamentoCaratteri.Destro)); // Firma sb.Append(getCampoNonPosizionale("DA003002", "1".PadLeft(16), AllineamentoCaratteri.Destro)); //====================================================== // CAMPI POSIZIONALI (da carattere 1890 a carattere 1900) //====================================================== var charToEnd = 1889 - sb.ToString().Length; sb.Append(string.Empty.PadRight(charToEnd)); // filler sb.Append(string.Empty.PadLeft(8)); //--------------------------------------------- // Ultimi caratteri di controllo //--------------------------------------------- sb.Append("A"); // CarriageReturn LineFeed sb.Append(CRLF); sw.Write(sb.ToString()); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la creazione della sezione D per il modello Certificazione Unica - {0} - condominio:{1}", ex, Library.Utility.GetMethodDescription(), condominio.ID); throw;
private FornitoreDTO setDto(Fornitore item) { if (item != null) { var perRep = new PersonaRepository(_info, _windsorRepository); var dto = Conversione.IsTypeOf(item, typeof (AgenziaAssicurativa)) ? new AgenziaAssicurativaDTO() : new FornitoreDTO(); dto.ID = item.ID; dto.AgenziaAssicurativa = item.AgenziaAssicurativa; dto.AliquotaCassaProfessionisti = item.AliquotaCassaProfessionisti; dto.AliquotaIva = item.AliquotaIva; dto.AliquotaRitenutaAcconto = item.AliquotaRitenutaAcconto; dto.IsRitenutaCalcolataImponibile = item.IsRitenutaCalcolataImponibile; if (item.AziendaID != null) dto.IdAzienda = item.AziendaID.Value; dto.CodiceTributo = item.CodiceTributo; dto.DisplayName = item.DisplayName; dto.ElencoFornitori = item.ElencoFornitori; dto.QuadroAc = item.QuadroAc; dto.InailIdentificativoAzienda = item.InailIdentificativoAzienda; dto.InailPat = item.InailPat; dto.Note = item.Note; dto.StatoFornitore = item.Stato; dto.NumeroPolizza = item.NumeroPolizza; dto.NumeroRegistroImprese = item.NumeroRegistroImprese; dto.FrequentlyAccessed = item.Preferito; dto.IsCompagniaAssicurativa = item.IsCompagniaAssicurativa; dto.PrestazioniOccasionali = item.PrestazioniOccasionali; dto.Version = item.Version; if (item.CompagniaAssicurativa != null) { dto.CodiceCompagniaAssicurativa = item.CompagniaAssicurativa.ID; dto.CompagniaAssicurativa = item.CompagniaAssicurativa.DisplayName; } if (item.ModalitaPagamento != null) { dto.CodiceModalitaPagamento = item.ModalitaPagamento.ID; dto.DescrizioneModalitaPagamento = item.ModalitaPagamento.Descrizione; dto.DescrizioneBreveModalitaPagamento = item.ModalitaPagamento.DescrizioneBreve; } if (item.Qualita != null) { dto.TempoIntervento = item.Qualita.TempoIntervento; dto.Prezzo = item.Qualita.Prezzo; dto.Servizio = item.Qualita.Servizio; dto.Tracciabile = item.Qualita.Tracciabile; dto.Certificazione = item.Qualita.Certificazione; dto.Valutazione = item.Qualita.GetValutazione(); } if (item.Tipo != null) { dto.IdTipoFornitore = item.Tipo.ID; dto.DescrizioneTipoFornitore = item.Tipo.Descrizione; } if (item.PersonaRiferimento != null) { dto.PersonaRiferimento = perRep.GetByDomainEntity(item.PersonaRiferimento); // Contatti var contatti = new ContattoCollection(item.PersonaRiferimento.Contatti); var tel = contatti.GetFirstContatto<Telefono>(); if (tel != null) dto.Telefono = tel.Valore; var cell = contatti.GetFirstContatto<Cellulare>(); if (cell != null) dto.Cellulare = cell.Valore; var mail = contatti.GetFirstContatto<Email>(); if (mail != null) dto.Email = mail.Valore; var www = contatti.GetFirstContatto<SitoInternet>(); if (www != null) dto.SitoInternet = www.Valore; } if (dto is AgenziaAssicurativaDTO) { ((AgenziaAssicurativaDTO) dto).Agenzia = ((AgenziaAssicurativa) item).Agenzia; ((AgenziaAssicurativaDTO) dto).Nominativo = item.DisplayName; if (((AgenziaAssicurativa) item).Fornitore != null) { ((AgenziaAssicurativaDTO) dto).CodiceFornitore = ((AgenziaAssicurativa) item).Fornitore.ID; ((AgenziaAssicurativaDTO)dto).Fornitore = ((AgenziaAssicurativa)item).Fornitore.DisplayName; } } return dto; } return new FornitoreDTO {IdAzienda = _info.Azienda}; }
public string LoadFornitori(string key, int idAzienda, string password) { string message = string.Empty; try { var databasePath = saveDatabase(key); var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Jet OLEDB:Database Password="******"; Data Source=" + databasePath); var ds = new DataSet(); var fornitoriAdapter = new OleDbDataAdapter("SELECT * FROM TabFornitori " + "INNER JOIN TabCodComune ON TabCodComune.id = TabFornitori.idComune " + "ORDER BY TabFornitori.Cognome, TabFornitori.Nome", conn); fornitoriAdapter.Fill(ds, "Fornitori"); ds.Tables["Fornitori"].PrimaryKey = new[] { ds.Tables["Fornitori"].Columns["TabFornitori.id"] }; var bancheAdapter = new OleDbDataAdapter("SELECT TabBanche_Fornitori.*, TabBanche.Abi, TabBanche.Cab " + "FROM TabBanche INNER JOIN TabBanche_Fornitori ON TabBanche.id = TabBanche_Fornitori.idBanca " + "WHERE TabBanche.Attivo = True AND TabBanche_Fornitori.Attivo=True " + "ORDER BY TabBanche_Fornitori.Predefinito", conn); bancheAdapter.Fill(ds, "Banche"); ds.Tables["Banche"].PrimaryKey = new[] { ds.Tables["Fornitori"].Columns["id"] }; // Relazioni ds.Relations.Add(new DataRelation("Fornitori_Banche", ds.Tables["Fornitori"].Columns["TabFornitori.id"], ds.Tables["Banche"].Columns["idFornitore"])); foreach (DataRow row in ds.Tables["Fornitori"].Rows) { try { // =========================== // Persona // =========================== var tipoPersona = Sfera.Enums.TipoPersonaEnum.Giuridica; if((bool)row["Persona"]) tipoPersona = Sfera.Enums.TipoPersonaEnum.Fisica; var persona = new Persona(tipoPersona, row["TabFornitori.Nome"].ToString().Trim(), row["Cognome"].ToString().Trim(), idAzienda, false); if (tipoPersona == Sfera.Enums.TipoPersonaEnum.Giuridica) { persona.RagioneSociale = row["Cognome"].ToString().Trim(); if (string.IsNullOrEmpty(row["TabFornitori.Nome"].ToString().Trim())) persona.Cognome = null; } if (persona.Nome != null && persona.Nome.Length > 50) persona.Nome = persona.Nome.Substring(0, 50); if (persona.Cognome != null && persona.Cognome.Length > 50) persona.Cognome = persona.Cognome.Substring(0, 50); if (persona.RagioneSociale != null && persona.RagioneSociale.Length > 100) persona.RagioneSociale = persona.RagioneSociale.Substring(0, 100); persona.Sesso = Sfera.Enums.SessoEnum.Femmina; if (!(bool)row["Maschio"]) persona.Sesso = Sfera.Enums.SessoEnum.Maschio; if (row["CF"] != DBNull.Value && !string.IsNullOrEmpty(row["CF"].ToString().Trim())) persona.CodiceFiscale = row["CF"].ToString().Trim(); if (row["PIVA"] != DBNull.Value && !string.IsNullOrEmpty(row["PIVA"].ToString().Trim())) persona.PartitaIva = row["PIVA"].ToString().Trim(); if (row["Note"] != DBNull.Value && !string.IsNullOrEmpty(row["Note"].ToString().Trim())) persona.Note = row["Note"].ToString().Trim(); if (row["idComuneNasc"] != DBNull.Value && !string.IsNullOrEmpty(row["idComuneNasc"].ToString().Trim())) persona.ComuneNascita = getCodiceComuneById((int)row["idComuneNasc"], conn); if (row["DataNasc"] != DBNull.Value) persona.DataNascita = (DateTime)row["DataNasc"]; persona.IndirizzoResidenza = getIndirizzo(row); persona.Recapito = getIndirizzoFiscale(row, conn); // --------- // Contatti // --------- if (row["Tel1"] != DBNull.Value && !string.IsNullOrEmpty((string)row["Tel1"])) { var contatto = new Telefono(row["Tel1"].ToString(), true, persona) {CodiceImportazione = row["TabFornitori.id"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["Tel2"] != DBNull.Value && !string.IsNullOrEmpty((string)row["Tel2"])) { var contatto = new Telefono(row["Tel2"].ToString(), false, persona) {CodiceImportazione = row["TabFornitori.id"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["Cell"] != DBNull.Value && !string.IsNullOrEmpty((string)row["Cell"])) { var contatto = new Cellulare(row["Cell"].ToString(), true, persona) {CodiceImportazione = row["TabFornitori.id"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["Email"] != DBNull.Value && !string.IsNullOrEmpty((string)row["Email"])) { var contatto = new Email(row["Email"].ToString(), true, persona) {CodiceImportazione = row["TabFornitori.id"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["Fax"] != DBNull.Value && !string.IsNullOrEmpty((string)row["Fax"])) { var contatto = new Fax(row["Fax"].ToString(), true, persona) {CodiceImportazione = row["TabFornitori.id"].ToString().Trim()}; persona.Contatti.Add(contatto); } persona.CodiceImportazione = row["TabFornitori.id"].ToString().Trim(); // =========================== // Fornitore // =========================== var fornitore = new Fornitore(persona, idAzienda); if (row["PercRitAcconto"] != DBNull.Value) fornitore.AliquotaRitenutaAcconto = Convert.ToDecimal((float)row["PercRitAcconto"])/100m; if (row["PercIVA"] != DBNull.Value) fornitore.AliquotaIva = row["PercIVA"].ToString().Trim(); if (row["PercRitPrev"] != DBNull.Value) fornitore.AliquotaCassaProfessionisti = Convert.ToDecimal((float)row["PercRitPrev"]) / 100m; if (row["RitAccSuRitPrev"] != DBNull.Value) fornitore.IsRitenutaCalcolataImponibile = (bool)row["RitAccSuRitPrev"]; if (row["InElencoFornitori"] != DBNull.Value) fornitore.ElencoFornitori = (bool)row["InElencoFornitori"]; if (row["CodiceTributoF24"] != DBNull.Value && !string.IsNullOrEmpty(row["CodiceTributoF24"].ToString().Trim())) fornitore.CodiceTributo = row["CodiceTributoF24"].ToString().Trim(); fornitore.CodiceImportazione = row["TabFornitori.id"].ToString().Trim(); fornitore.Qualita = new ValutazioneQualita(); //----------------------------- // Banche //----------------------------- if (row.GetChildRows("Fornitori_Banche").Count() > 0) { DataRow rowBanca = row.GetChildRows("Fornitori_Banche")[0]; if (rowBanca["IBAN"] != DBNull.Value && !string.IsNullOrEmpty(rowBanca["IBAN"].ToString())) { var coor = new CoordinateBancarie(); if (coor.CheckIBAN(rowBanca["IBAN"].ToString().Trim().Replace(" ", ""))) { persona.Iban = rowBanca["IBAN"].ToString().Trim().Replace(" ", ""); coor.SetIBAN(persona.Iban); persona.Abi = coor.Abi; persona.Cab = coor.Cab; persona.ContoCorrente = coor.ContoCorrente; persona.Cin = coor.Cin; } } else if (rowBanca["Abi"] != DBNull.Value && !string.IsNullOrEmpty(rowBanca["Abi"].ToString()) && rowBanca["Cab"] != DBNull.Value && !string.IsNullOrEmpty(rowBanca["Cab"].ToString()) && rowBanca["CC"] != DBNull.Value && !string.IsNullOrEmpty(rowBanca["CC"].ToString())) { var coor = new CoordinateBancarie { Abi = rowBanca["Abi"].ToString().Trim().PadLeft(5, '0'), Cab = rowBanca["Cab"].ToString().Trim().PadLeft(5, '0'), ContoCorrente = rowBanca["CC"].ToString().Trim().PadLeft(12, '0') }; persona.Iban = coor.CalcolaIBAN(); } } _daoFactory.GetFornitoreDao().SaveOrUpdate(fornitore); } catch (Exception ex) { _log.Error("Errore inaspettato l'importazione di un fornitore da GeCo: " + Library.Utility.GetMethodDescription() + " (Fornitore) - idFornitore:" + row["TabFornitori.id"] + " - nome:" + row["TabFornitori.Nome"] + " - cognome:" + row["Cognome"], ex); throw; } } } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei fornitori da GeCo: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei fornitori da GeCo: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } if (!string.IsNullOrEmpty(message)) { _persistenceContext.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName); _persistenceContext.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted); } return message; }
private CBIPartyIdentification3 getCreditor(Fornitore creditore) { var debitor = new CBIPartyIdentification3 { Name = creditore.DisplayName.TrimForSepa().Truncate(70), PostalAddress = getPostalAddress6(creditore.PersonaRiferimento.IndirizzoResidenza), CountryOfResidence = "IT" }; return debitor; }
private byte[] getModuloLavoratoreAutonomo(Fornitore fornitore, IList<DettaglioDatiCertificazioneDTO> datiCertificazione, bool esenteRegimeMinimo, int anno, int progressivoModulo, byte[] templateDatiLavoratoreAutonomo, Azienda azienda) { const string formatoDecimale = "#0.00"; var datiLavoratoreAutonomo = new DatiLavoratoreAutonomoCU { Causale = fornitore.GetTipologiaReddito(), CodiceFiscalePercipiente = fornitore.GetCodiceFiscale(), //AnnoRiferimento = anno.ToString(_cultureInfo), AmmontareLordoCorrisposto = Math.Round(datiCertificazione.Sum(item => item.CompensiSoggetti + item.CompensiNonSoggetti + item.AltreSpeseNonSoggette), 2).ToString(formatoDecimale, _cultureInfo), Imponibile = esenteRegimeMinimo ? string.Empty : Math.Round(datiCertificazione.Sum(item => item.CompensiSoggetti), 2).ToString(formatoDecimale, _cultureInfo), Ritenuta = esenteRegimeMinimo ? string.Empty : Math.Round(datiCertificazione.Sum(item => item.ImportoRitenuta), 2).ToString(formatoDecimale, _cultureInfo), NumeroModulo = progressivoModulo.ToString(_cultureInfo) }; var altreSommeNonSoggette = Math.Round(datiCertificazione.Sum(item => item.CompensiNonSoggetti + item.AltreSpeseNonSoggette), 2); if (altreSommeNonSoggette != 0) { datiLavoratoreAutonomo.AltreSommeNonSoggette = altreSommeNonSoggette.ToString(formatoDecimale, _cultureInfo); datiLavoratoreAutonomo.Codice = "3"; } return FillForm.FillStream(datiLavoratoreAutonomo, templateDatiLavoratoreAutonomo, GestioneFiscaleResources.ModelloCULavoratoreAutonomo_FieldMapping, false, true); }
private string checkFornitore(Fornitore fornitore) { var message = string.Empty; if (fornitore.PersonaRiferimento.IndirizzoResidenza == null) message += "Per il fornitore " + fornitore.DisplayName + " non è presente l'<b>INDIRIZZO</b>." + Environment.NewLine; else { if (fornitore.PersonaRiferimento.IndirizzoResidenza.Comune == null) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il <b>COMUNE DI RESIDENZA</b>." + Environment.NewLine; if (string.IsNullOrEmpty(fornitore.PersonaRiferimento.IndirizzoResidenza.Indirizzo)) message += "Per il fornitore " + fornitore.DisplayName + " non è presente l'<b>INDIRIZZO</b>." + Environment.NewLine; } if (string.IsNullOrEmpty(fornitore.CodiceTributo)) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il <b>CODICE TRIBUTO</b>." + Environment.NewLine; if (string.IsNullOrEmpty(fornitore.GetCodiceFiscale())) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il <b>CODICE FISCALE</b>." + Environment.NewLine; if (fornitore.PersonaRiferimento.TipoPersona == null || fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Undefined) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il <b>TIPO DI PERSONA (fisica o giuridica)</b>." + Environment.NewLine; else if (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica) { if (string.IsNullOrEmpty(fornitore.PersonaRiferimento.Cognome)) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il <b>COGNOME</b>." + Environment.NewLine; if (string.IsNullOrEmpty(fornitore.PersonaRiferimento.Nome)) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il <b>NOME</b>." + Environment.NewLine; if (fornitore.PersonaRiferimento.Sesso.GetValueOrDefault() == SessoEnum.Undefined) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il <b>SESSO</b>." + Environment.NewLine; if (fornitore.PersonaRiferimento.ComuneNascita == null) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il <b>COMUNE DI NASCITA</b>." + Environment.NewLine; if (fornitore.PersonaRiferimento.DataNascita == null) message += "Per il fornitore " + fornitore.DisplayName + " non è presente la <b>DATA DI NASCITA</b>." + Environment.NewLine; } else if (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Giuridica) { if (string.IsNullOrEmpty(fornitore.PersonaRiferimento.RagioneSociale)) message += "Per il fornitore " + fornitore.DisplayName + " non è presente la <b>RAGIONE SOCIALE</b>." + Environment.NewLine; if (!string.IsNullOrEmpty(fornitore.GetCodiceFiscale())) { System.Numerics.BigInteger num; if (!System.Numerics.BigInteger.TryParse(fornitore.GetCodiceFiscale(), out num)) message += $"Per il fornitore {fornitore.DisplayName} il <b>CODICE FISCALE</b>. {fornitore.GetCodiceFiscale()} non è corretto per le persone giuridiche il codice fiscale deve essere <b>NUMERICO</b>.{Environment.NewLine}"; } } return message; }
private bool insert(FornitoreDTO dto, out Fornitore item) { item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { Persona persona = null; if (dto.PersonaRiferimento != null) { _id = dto.PersonaRiferimento.ID; if ((dto.PersonaRiferimento.Stato == "U") || (dto.PersonaRiferimento.Stato == "I")) _id = getPersonaRepository().ManageDomainEntity(dto.PersonaRiferimento); persona = daoFactory.GetPersonaDao().Find(_id.GetValueOrDefault(), false); } if(persona != null) { Fornitore compagnia = null; if (dto.CodiceCompagniaAssicurativa != null) compagnia = daoFactory.GetFornitoreDao().Find(dto.CodiceCompagniaAssicurativa.Value, false); item = Conversione.IsTypeOf(dto, typeof(AgenziaAssicurativa)) ? new AgenziaAssicurativa(persona, compagnia, dto.AgenziaAssicurativa, dto.PersonaRiferimento.Azienda) : new Fornitore(persona, dto.PersonaRiferimento.Azienda); item.AgenziaAssicurativa = dto.AgenziaAssicurativa; item.AliquotaCassaProfessionisti = dto.AliquotaCassaProfessionisti; item.AliquotaIva = dto.AliquotaIva; item.AliquotaRitenutaAcconto = dto.AliquotaRitenutaAcconto; item.IsRitenutaCalcolataImponibile = dto.IsRitenutaCalcolataImponibile; item.AziendaID = dto.IdAzienda; item.CodiceTributo = dto.CodiceTributo; item.CompagniaAssicurativa = compagnia; item.ElencoFornitori = dto.ElencoFornitori; item.InailIdentificativoAzienda = dto.InailIdentificativoAzienda; item.InailPat = dto.InailPat; item.Note = dto.Note; item.NumeroPolizza = dto.NumeroPolizza; item.NumeroRegistroImprese = dto.NumeroRegistroImprese; item.Preferito = dto.FrequentlyAccessed; item.QuadroAc = dto.QuadroAc; item.IsCompagniaAssicurativa = dto.IsCompagniaAssicurativa; item.PrestazioniOccasionali = dto.PrestazioniOccasionali; if (dto.CodiceModalitaPagamento > 0) item.ModalitaPagamento = daoFactory.GetModalitaPagamentoDao().GetById(dto.CodiceModalitaPagamento.Value, false); item.Qualita = new ValutazioneQualita { Certificazione = dto.Certificazione, Prezzo = dto.Prezzo, Servizio = dto.Servizio, TempoIntervento = dto.TempoIntervento, Tracciabile = dto.Tracciabile }; if (dto.IdTipoFornitore > 0) item.Tipo = daoFactory.GetTipoFornitoreDao().GetById(dto.IdTipoFornitore, false); if (item is AgenziaAssicurativa) { ((AgenziaAssicurativa)item).Agenzia = ((AgenziaAssicurativaDTO)dto).Agenzia; if (((AgenziaAssicurativaDTO)dto).CodiceFornitore > 0) ((AgenziaAssicurativa)item).Fornitore = daoFactory.GetFornitoreDao().GetById(((AgenziaAssicurativaDTO)dto).CodiceFornitore, false); } daoFactory.GetFornitoreDao().SaveOrUpdate(item); } else { _log.WarnFormat("Persona è a null - {0} - id:{1}", Utility.GetMethodDescription(), dto.ID); } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio del fornitore - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return true; }
private bool update(FornitoreDTO dto, out Fornitore item) { var result = false; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = Conversione.IsTypeOf(dto, typeof(AgenziaAssicurativa)) ? daoFactory.GetAgenziaAssicurativaDao().Find(dto.ID, false) : daoFactory.GetFornitoreDao().Find(dto.ID, false); // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia (PER ORA NON FACCIO CONTROLLI) if (item != null) { if (dto.Version == item.Version || true) { item.AgenziaAssicurativa = dto.AgenziaAssicurativa; item.AliquotaCassaProfessionisti = dto.AliquotaCassaProfessionisti; item.IsRitenutaCalcolataImponibile = dto.IsRitenutaCalcolataImponibile; item.AliquotaIva = dto.AliquotaIva; item.AliquotaRitenutaAcconto = dto.AliquotaRitenutaAcconto; item.AziendaID = dto.IdAzienda; item.CodiceTributo = dto.CodiceTributo; item.ElencoFornitori = dto.ElencoFornitori; item.InailIdentificativoAzienda = dto.InailIdentificativoAzienda; item.InailPat = dto.InailPat; item.Note = dto.Note; item.NumeroPolizza = dto.NumeroPolizza; item.NumeroRegistroImprese = dto.NumeroRegistroImprese; item.Preferito = dto.FrequentlyAccessed; item.QuadroAc = dto.QuadroAc; item.IsCompagniaAssicurativa = dto.IsCompagniaAssicurativa; item.PrestazioniOccasionali = dto.PrestazioniOccasionali; item.Stato = dto.StatoFornitore; item.CompagniaAssicurativa = null; if (dto.CodiceCompagniaAssicurativa != null) item.CompagniaAssicurativa = daoFactory.GetFornitoreDao().Find(dto.CodiceCompagniaAssicurativa.Value, false); item.ModalitaPagamento = null; if (dto.CodiceModalitaPagamento != null) item.ModalitaPagamento = daoFactory.GetModalitaPagamentoDao().Find(dto.CodiceModalitaPagamento.Value, false); if (item.Qualita == null) item.Qualita = new ValutazioneQualita(); item.Qualita.Certificazione = dto.Certificazione; item.Qualita.Prezzo = dto.Prezzo; item.Qualita.Servizio = dto.Servizio; item.Qualita.TempoIntervento = dto.TempoIntervento; item.Qualita.Tracciabile = dto.Tracciabile; if (dto.PersonaRiferimento != null) { _id = dto.PersonaRiferimento.ID; if ((dto.PersonaRiferimento.Stato.ToUpper() == "U") || (dto.PersonaRiferimento.Stato == "I")) _id = getPersonaRepository().ManageDomainEntity(dto.PersonaRiferimento); item.PersonaRiferimento = daoFactory.GetPersonaDao().Find(_id.GetValueOrDefault(), false); } if (dto.IdTipoFornitore > 0) item.Tipo = daoFactory.GetTipoFornitoreDao().GetById(dto.IdTipoFornitore, false); if (item is AgenziaAssicurativa) { ((AgenziaAssicurativa)item).Agenzia = ((AgenziaAssicurativaDTO)dto).Agenzia; if (((AgenziaAssicurativaDTO)dto).CodiceFornitore > 0) ((AgenziaAssicurativa)item).Fornitore = daoFactory.GetFornitoreDao().GetById(((AgenziaAssicurativaDTO)dto).CodiceFornitore, false); } daoFactory.GetFornitoreDao().Update(item); result = true; } else { // Eccezione: Sul db c'è qualche cosa di più nuovo. _log.Error("Errore nel salvataggio del fornitore: id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare"); } } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio del fornitore - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return result; }
public DatiAC(Fornitore fornitore, decimal importo) { Fornitore = fornitore; Importo = importo; }
public void SetUp() { _azienda = new Azienda("PROVA", "Azienda di prova") {ID=1}; _aziendaDestinazione = new Azienda("DEST", "Azienda di destinazione") { ID = 2 }; _condominio = new Condominio("Condominio ABC", 31, 12, 2015, _azienda) { ID = 1, Codice = "COND01", CodiceCUC = "CUC123456", CodiceSIA = "SIA12", AnnoInizio = 2015, CodiceFiscale = "012365477859", CodiceCalcoloTariffaAcqua = "TAR01" }; _condominio.Palazzine.Clear(); _esercizio = new EsercizioDTO { Descrizione = "Primo Esercizio", DataApertura = new DateTime(2016, 6, 1), DataChiusura = new DateTime(2017, 5, 31) }; _banca01 = new DatiBancariCondomini("12345", "12345", "123456789012", "A", _condominio) {Iban = "IT02L1234512345123456789012" }; _banca02 = new DatiBancariCondomini("03268", "10001", "100000000000", "A", _condominio) { Iban = "IT11X03268100001100000000000" }; _stabile01 = new Palazzina(_condominio, "Stabile 01") {ID=1}; _stabile01.GruppiStabile.Clear(); _condominio.Palazzine.Add(_stabile01); var comune = new Comune("A944", "Bologna", new Provincia("BO", new Regione("Emilia Romagna"))); _gruppoStabile01 = new GruppoStabile(_stabile01, "Scala 01") { ID = 1, Ordine = 1, Note = "Note per Scala01", Indirizzo = new Address { Cap = "40131", Civico = "SCA/1", Indirizzo = "Via Scala01", Localita = "Scaletta01", Comune = comune } }; _gruppoStabile02 = new GruppoStabile(_stabile01, "Scala 02") { ID = 2, Ordine = 2, Note = "Note per Scala02", Indirizzo = new Address { Cap = "40132", Civico = "SCA/2", Indirizzo = "Via Scala02", Localita = "Scaletta02", Comune = comune } }; _condominio.Indirizzo = new Address { Indirizzo = "via dei Fiori", Cap = "40100", Civico = "23", Localita = "Pioppa", Comune = comune }; var listaTipoUnitaImmobiliare = new List<TipoUnitaImmobiliare> { new TipoUnitaImmobiliare("Tipo01") {ID = 1}, new TipoUnitaImmobiliare("Tipo02") {ID = 2} }; var fornitore = new Fornitore(new Persona(TipoPersonaEnum.Giuridica, "Franco", "Livoresi", _azienda.ID, true) {PartitaIva = "01867511204"}, _azienda.ID) {ID =1}; var fornitore01 = new Fornitore(new Persona(TipoPersonaEnum.Giuridica, "Luigi", "Majorana", _azienda.ID, true) { PartitaIva = "01230460394" }, _azienda.ID) {ID = 2}; var agenziaAssicurativa = new AgenziaAssicurativa(new Persona(TipoPersonaEnum.Giuridica, "", "Agenzia Bologna", _azienda.ID, true) { PartitaIva = "03211600402" }, fornitore01, "Agenzia BO", _azienda.ID) {ID = 3}; var tipoContratto = new TipoContratto("Pulizia Scale") {ID=1}; var tipoContrattoAssicurativo = new TipoContratto("Assicurazione") {ID=2}; _unitaImmobiliare01 = new UnitaImmobiliare(_gruppoStabile01, listaTipoUnitaImmobiliare[0]) { ID = 1, Descrizione = "Unità 01", Ordine = 1}; _unitaImmobiliare02 = new UnitaImmobiliare(_gruppoStabile01, new TipoUnitaImmobiliare("Tipo02")) { ID = 2, Descrizione = "Unità 02", Ordine = 2 }; _unitaImmobiliare03 = new UnitaImmobiliare(_gruppoStabile02, listaTipoUnitaImmobiliare[1]) { ID = 3, Descrizione = "Unità 03", Ordine = null }; _unitaImmobiliare04 = new UnitaImmobiliare(_gruppoStabile02, new TipoUnitaImmobiliare("Tipo NEW")) { ID = 4, Descrizione = "Unità 04", Ordine = 4 }; _unitaImmobiliare01.CondizioniSicurezzaImpianto = new SicurezzaImpianto { Norma = true, Note = "Note01" }; _unitaImmobiliareImpiantistica01 = new UnitaImmobiliareImpiantistica(_unitaImmobiliare01, "TipoImpianto01", true) { ID = 1, Descrizione = "Impianto 01"}; _unitaImmobiliareImpiantistica02 = new UnitaImmobiliareImpiantistica(_unitaImmobiliare01, "TipoImpianto02", false) {ID = 2, Descrizione = "Impianto 02"}; _persona01 = new Persona(TipoPersonaEnum.Fisica, "Mario", "Rossi", _azienda.ID, false) { ID = 1, ComuneNascita = comune, IndirizzoResidenza = new Address { Indirizzo = "via residenza01", Cap = "40101", Civico = "1", Comune = comune, Localita = "Pioppa 01" }, Domicilio = new Address { Indirizzo = "via domicilio01", Cap = "40101", Civico = "1", Comune = comune, Localita = "Pioppa 01" }, Recapito = new Address { Indirizzo = "via recapito01", Cap = "40101", Civico = "1", Comune = comune, Localita = "Pioppa 01" } }; _proprietario01 = new Proprietario(_unitaImmobiliare01, _persona01) {ID = 1, Descrizione = "Mario Rossi", VersamentoMav = true, Consigliere = true, Principale = true}; _persona02 = new Persona(TipoPersonaEnum.Giuridica, "Giulio", "Verdi", _azienda.ID, false) { ID = 2, ComuneNascita = comune, IndirizzoResidenza = new Address { Indirizzo = "via residenza02", Cap = "40102", Civico = "2", Comune = comune, Localita = "Pioppa 02" }, Domicilio = new Address { Indirizzo = "via domicilio02", Cap = "40102", Civico = "2", Comune = comune, Localita = "Pioppa 02" }, Recapito = new Address { Indirizzo = "via recapito02", Cap = "40102", Civico = "2", Comune = comune, Localita = "Pioppa 02" } }; _proprietario02 = new Proprietario(_unitaImmobiliare02, _persona02) {ID = 2, Descrizione = "Giulio Verdi", DataInizio = new DateTime(2015, 1, 1)}; _persona03 = new Persona(TipoPersonaEnum.Fisica, "Franco", "Bianchi", _azienda.ID, false) { ID = 3, IndirizzoResidenza = new Address { Indirizzo = "via residenza03", Cap = "40103", Civico = "3", Comune = comune, Localita = "Pioppa 03" }, Domicilio = new Address { Indirizzo = "via domicilio03", Cap = "40103", Civico = "3", Comune = comune, Localita = "Pioppa 03" } }; _persona01.Recapito = new Address { Indirizzo = "via recapito03", Cap = "40103", Civico = "3", Comune = comune, Localita = "Pioppa 03" }; _proprietario03 = new Proprietario(_unitaImmobiliare03, _persona03) {ID = 3, Descrizione = "Franco Bianchi"}; _proprietario04 = new Proprietario(_unitaImmobiliare04, _persona01) { ID = 4, SoggettoPrincipale = _proprietario01 }; _persona04 = new Persona(TipoPersonaEnum.Fisica, "Primo", "Conduttore", _azienda.ID, false) { ID = 4, IndirizzoResidenza = new Address { Indirizzo = "via residenza04", Cap = "40104", Civico = "4", Comune = comune, Localita = "Pioppa 04" }, Domicilio = new Address { Indirizzo = "via domicilio04", Cap = "40104", Civico = "4", Comune = comune, Localita = "Pioppa 04" }, Recapito = new Address { Indirizzo = "via recapito04", Cap = "40104", Civico = "4", Comune = comune, Localita = "Pioppa 04" } }; _conduttore01 = new Conduttore(_unitaImmobiliare01, _persona04) {ID = 5, Descrizione = "Primo Conduttore"}; _persona05 = new Persona(TipoPersonaEnum.Fisica, "Secondo", "Conduttore", _azienda.ID, false) { ID = 5, IndirizzoResidenza = new Address { Indirizzo = "via residenza05", Cap = "40105", Civico = "5", Comune = comune, Localita = "Pioppa 05" }, Domicilio = new Address { Indirizzo = "via domicilio05", Cap = "40105", Civico = "5", Comune = comune, Localita = "Pioppa 05" }, Recapito = new Address { Indirizzo = "via recapito05", Cap = "40105", Civico = "5", Comune = comune, Localita = "Pioppa 05" } }; _conduttore02 = new Conduttore(_unitaImmobiliare02, _persona05) {ID = 6, Descrizione = "Secondo Conduttore"}; _contatto01 = new Email("*****@*****.**", true, _persona01) { ID = 1, Descrizione = "mail principale persona 01"}; _contatto02 = new Email("*****@*****.**", false, _persona01) { ID = 2, Descrizione = "mail secondaria persona 01" }; _contatto03 = new Cellulare("1234567890", true, _persona01) { ID = 3, Descrizione = "cellulare principale persona 01" }; _contatto04 = new Fax("9876543210", false, _persona02) { ID = 4, Descrizione = "fax persona 02" }; _contatto05 = new Telefono("1357924680", true, _persona03) { ID = 5, Descrizione = "telefono persona 03" }; _contatto06 = new EmailCertificata("*****@*****.**", true, _persona01) { ID = 6, Descrizione = "mail certificata persona 01" }; _contatto07 = new SitoInternet("www.bianchi.it", false, _persona03) { ID = 7, Descrizione = "sito internet persona03" }; _contatto08 = new Telefono("3333333333", false, _persona04) { ID = 8, Descrizione = "telefono persona 04" }; _contatto09 = new Cellulare("9999999999", true, _persona05) { ID = 9, Descrizione = "cellulare persona 05" }; _contatto10 = new Email("*****@*****.**", false, _persona05) { ID=10 }; _condominio.PersoneDaNonSollecitare.Add(new PersonaDaNonSollecitare(_persona01, _condominio) { Motivo = "persona01 non paga" }); _condominio.PersoneDaNonSollecitare.Add(new PersonaDaNonSollecitare(_persona03, _condominio) { Motivo = "persona02 è simpatica" }); // Contratto Appalto _documentocontrattoAppalto01 = new Documento(201, "Appalto", true, _azienda) { ID = 1, CondominioRiferimento = _condominio, Checksum = "CHK001", FileName = "appalto01", FileExtension = "pdf", Descrizione = "Appalto001" }; _documentocontrattoAppalto02 = new Documento(202, "Appalto", true, _azienda) { ID = 2, CondominioRiferimento = _condominio, Checksum = "CHK002", FileName = "appalto02", FileExtension = "pdf", Descrizione = "Appalto002" }; _contrattoAppalto = new ContrattoAppalto(tipoContratto, _condominio, fornitore) { ID = 1, NumeroContratto = "CONTRA001", Scadenza = new DateTime(2016, 12, 31), Descrizione = "Contratto di Appalto di prova", Note = "Nota per contratto appalto", Documenti = { _documentocontrattoAppalto01, _documentocontrattoAppalto02 } }; _documentocontrattoAppalto01.ContrattoRiferimento = _contrattoAppalto; _documentocontrattoAppalto02.ContrattoRiferimento = _contrattoAppalto; // Contratto Assicurativo _documentocontrattoAssicurativo01 = new Documento(203, "Assicurativo01", true, _azienda) { ID = 3, CondominioRiferimento = _condominio, Checksum = "CHK003", FileName = "assicurazione01", FileExtension = "pdf", Descrizione = "Assicurazione001" }; _documentocontrattoAssicurativo02 = new Documento(204, "Assicurativo02", true, _azienda) { ID = 4, CondominioRiferimento = _condominio, Checksum = "CHK004", FileName = "assicurazione02", FileExtension = "pdf", Descrizione = "Assicurazione002" }; _contrattoAssicurativo = new AssicurazioneContratto(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo) { ID = 2, FornitoreAttuale = agenziaAssicurativa, NumeroContratto = "CONTR_ASS_001", Scadenza = new DateTime(2016, 12, 31), Descrizione = "Contratto Assicurativo di prova", Note = "Nota per contratto assicurativo", Documenti = { _documentocontrattoAssicurativo01, _documentocontrattoAssicurativo02 } }; _contrattoAssicurativoGlobale = new GlobaleAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo) { ID = 3, FornitoreAttuale = agenziaAssicurativa, NumeroContratto = "CONTR_GLOB_001", Scadenza = new DateTime(2016, 12, 31), ImportoLimiteCoseRCT = 50000, ImportoMassimaleSinistroRCT = 60000, ImportoUnicoRCT = 70000, ImportoPremio = 80000, Descrizione = "Contratto Globale di prova", Note = "Nota per contratto globale", FranchigiaDanniAcqua = 90000, FranchigiaRicercaGuasto = 100000, ValoreRicostruzioneNuovo = 110000, DanniAcqua = true, RicercaGuasto = true }; _contrattoAssicurativoIncendio = new IncendioAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo) { ID = 4, FornitoreAttuale = agenziaAssicurativa, NumeroContratto = "CONTR_INC_001", ImportoLimiteCoseRCT = 150000, ImportoMassimaleSinistroRCT = 160000, ImportoUnicoRCT = 170000, ImportoPremio = 180000, FranchigiaDanniAcqua = 120000, FranchigiaRicercaGuasto = 130000, ValoreRicostruzioneNuovo = 140000, DanniAcqua = true, RicercaGuasto = false, Scadenza = new DateTime(2016, 12, 31), Descrizione = "Contratto Incendio di prova", Note = "Nota per contratto incendio" }; _contrattoAssicurativoFurto = new FurtoAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo) { ID = 5, FornitoreAttuale = agenziaAssicurativa, NumeroContratto = "CONTR_FURTO_001", Scadenza = new DateTime(2016, 12, 31), Descrizione = "Contratto Furto di prova", Note = "Nota per contratto furto" }; _contrattoAssicurativoInfortuni = new InfortuniAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo) { ID = 6, FornitoreAttuale = agenziaAssicurativa, NumeroContratto = "CONTR_INFORTUNI_001", Scadenza = new DateTime(2016, 12, 31), Descrizione = "Contratto Infortuni di prova", Note = "Nota per contratto infortuni" }; _contrattoAssicurativoResponsabilitaCivile = new ResponsabilitaCivileAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo) { ID = 7, FornitoreAttuale = agenziaAssicurativa, NumeroContratto = "CONTR_RESPCIV_001", Scadenza = new DateTime(2016, 12, 31), Descrizione = "Contratto Responsabilità civile di prova", Note = "Nota per contratto responsabilità civile" }; _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativo); _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoGlobale); _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoIncendio); _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoFurto); _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoInfortuni); _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoResponsabilitaCivile); _contrattoAssicurativo.CondominioRiferimento = _condominio; _contrattoAssicurativoGlobale.CondominioRiferimento = _condominio; _contrattoAssicurativoIncendio.CondominioRiferimento = _condominio; _contrattoAssicurativoFurto.CondominioRiferimento = _condominio; _contrattoAssicurativoInfortuni.CondominioRiferimento = _condominio; _contrattoAssicurativoResponsabilitaCivile.CondominioRiferimento = _condominio; _documentocontrattoAssicurativo01.ContrattoRiferimento = _contrattoAssicurativo; _documentocontrattoAssicurativo02.ContrattoRiferimento = _contrattoAssicurativo; // Conti / Millesimi _conto01 = new Conto(_condominio, TipoContoEconomicoEnum.Economico, TipoPeriodoCompetenzaContabile.Esercizio, "SPESE GENERALI PROPRIETA'", true, true, false) {DescrizioneBilancio = "SPE GEN", Codice = "001", ID = 1}; _conto02 = new Conto(_condominio, TipoContoEconomicoEnum.Economico, TipoPeriodoCompetenzaContabile.Riscaldamento, "SPESE RISCALDAMENTO", true, true, false) { DescrizioneBilancio = "SPE RIS", Codice = "002", ID = 2 }; _sottoconto01 = new SottoConto(_conto01, "SPESE SCALA 01") { Codice = "001.001", ID = 1 }; _sottoconto02 = new SottoConto(_conto01, "SPESE SCALA 02") { Codice = "001.002", ID = 2 }; _sottoconto03 = new SottoConto(_conto02, "SPESE ABITAZIONI") { Codice = "002.001", ID = 3 }; _sottoconto04 = new SottoConto(_conto02, "SPESE GARAGE") { Codice = "002.002", ID = 4 }; _millesimo01 = new Millesimo(_conto01, _unitaImmobiliare01) { ID = 1, Valore = 100 }; _millesimo02 = new Millesimo(_conto01, _unitaImmobiliare02) { ID = 2, Valore = 200 }; _millesimo03 = new Millesimo(_conto02, _unitaImmobiliare01) { ID = 3, Valore = 300 }; _millesimo04 = new Millesimo(_conto02, _unitaImmobiliare02) { ID = 4, Valore = 400 }; _fascicoloImmobiliare = new FascicoloImmobiliare("Prova Fascicolo", "PRO", "01") {ID=1}; _fascicoloCondominio = new FascicoloCondominio(_fascicoloImmobiliare, _condominio) { ID =1, Necessario = true, Presente = false }; _fascicoloCondominio.Documenti.Add(_documentocontrattoAppalto01); _fascicoloCondominio.Documenti.Add(_documentocontrattoAssicurativo02); _documentocontrattoAppalto01.Fascicoli.Add(_fascicoloCondominio); _documentocontrattoAssicurativo02.Fascicoli.Add(_fascicoloCondominio); // Stub per IDaoFactory _daoFactory = MockRepository.GenerateStub<IDaoFactory>(); // Stub per azienda var aziendaDao = MockRepository.GenerateStub<IAziendaDao>(); aziendaDao.Stub(x => x.Find(2, false)).Return(_aziendaDestinazione); _daoFactory.Stub(x => x.GetAziendaDao()).Return(aziendaDao); // Stub per tipo unità immobiliare var tipoUnitaImmobiliareDao = MockRepository.GenerateStub<ITipoUnitaImmobiliareDao>(); tipoUnitaImmobiliareDao.Stub(x => x.GetByAzienda(Arg<int>.Is.Anything)).Return(listaTipoUnitaImmobiliare); _daoFactory.Stub(x => x.GetTipoUnitaImmobiliareDao()).Return(tipoUnitaImmobiliareDao); // Stub per fornitore var fornitoreDao = MockRepository.GenerateStub<IFornitoreDao>(); fornitoreDao.Stub(x => x.Find(1, false)).Return(fornitore); fornitoreDao.Stub(x => x.Find(2, false)).Return(fornitore01); fornitoreDao.Stub(x => x.GetByPartitaIva("01867511204", _aziendaDestinazione.ID)).Return(fornitore); fornitoreDao.Stub(x => x.GetByPartitaIva("01230460394", _aziendaDestinazione.ID)).Return(fornitore01); fornitoreDao.Stub(x => x.GetByPartitaIva("03211600402", _aziendaDestinazione.ID)).Return(agenziaAssicurativa); _daoFactory.Stub(x => x.GetFornitoreDao()).Return(fornitoreDao); // Stub per tipo contratto var tipoContrattoDao = MockRepository.GenerateStub<ITipoContrattoDao>(); tipoContrattoDao.Stub(x => x.GetByDescrizione("Pulizia Scale", _aziendaDestinazione.ID)).Return(tipoContratto); tipoContrattoDao.Stub(x => x.GetByDescrizione("Assicurazione", _aziendaDestinazione.ID)).Return(tipoContrattoAssicurativo); _daoFactory.Stub(x => x.GetTipoContrattoDao()).Return(tipoContrattoDao); // Stub per Comune var comuneDao = MockRepository.GenerateStub<IComuneDao>(); comuneDao.Stub(x => x.Find(comune.Codice, false)).Return(comune); comuneDao.Stub(x => x.Find(null, false)).Throw(new NullReferenceException("Id non può essere null")); _daoFactory.Stub(x => x.GetComuneDao()).Return(comuneDao); // Stub per fascicolo immobiliare _fascicoloImmobiliareDao = MockRepository.GenerateStub<IFascicoloImmobiliareDao>(); _fascicoloImmobiliareDao.Stub(x => x.GetByAzienda(_aziendaDestinazione.ID)).Return(new List<FascicoloImmobiliare> { _fascicoloImmobiliare }); _daoFactory.Stub(x => x.GetFascicoloImmobiliareDao()).Return(_fascicoloImmobiliareDao); _documentService = MockRepository.GenerateStub<IDocumentService>(); _exportCsvCondominiService = new ExportCsvCondominiService(); _importCsvCondominiService = new ImportCsvCondominiService(_daoFactory, _documentService); }
/// <summary> /// RECORD DI TIPO "H": Dati relativi alla comunicazione dati certificazioni lavoro autonomo, provvigioni e redditi diversi del mod. 770/20XX semplificato /// </summary> /// <param name="condominio">Condominio di riferimento</param> /// <param name="fornitore">Fornitore a cui è stata trattenuta l'imposta</param> /// <param name="anno"></param> /// <param name="ritenute">Elenco delle trattenute per fornitore</param> /// <param name="progressivoModulo">Progressivo del modulo compilato</param> /// <param name="sw">File di scrittura</param> private void writeRowH(Condominio condominio, Fornitore fornitore, int anno, IEnumerable<Ritenuta> ritenute, int progressivoModulo, StreamWriter sw) { try { var sb = new StringBuilder(1900); //====================================================== // CAMPI POSIZIONALI (da carattere 1 a carattere 89) //====================================================== // Tipo record sb.Append("H"); // Codice Fiscale del soggetto dichiarante (Condominio) sb.Append(condominio.CodiceFiscale.PadRight(16, ' ')); // Progressivo Modulo sb.Append(progressivoModulo.ToString().PadLeft(8, '0')); // campo utente sb.Append(string.Empty.PadLeft(3)); // Tipo operazione sb.Append(string.Empty.PadLeft(1)); // Codice Fiscale del percipiente (Fornitore) sb.Append(fornitore.GetCodiceFiscale().PadRight(16)); // filler sb.Append(string.Empty.PadLeft(8)); // campo utente per identificativo dichiarazione sb.Append(string.Empty.PadRight(20)); // Identificativo del produttore del software (codice fiscale) sb.Append("02818651206".PadRight(16)); //====================================================== // CAMPI NON POSIZIONALI (da carattere 90) //====================================================== //--------------------------------------------- // Dati relativi al percipiente delle somme //--------------------------------------------- // Codice fiscale sb.Append(getCampoNonPosizionale("AU001001", fornitore.GetCodiceFiscale(), AllineamentoCaratteri.Sinistro)); // Cognome o denominazione if (fornitore.PersonaRiferimento.TipoPersona == TipoPersonaEnum.Giuridica) sb.Append(getCampoNonPosizionale("AU001002", fornitore.PersonaRiferimento.RagioneSociale, AllineamentoCaratteri.Sinistro)); else { // Cognome sb.Append(getCampoNonPosizionale("AU001002", fornitore.PersonaRiferimento.Cognome.ToUpper(), AllineamentoCaratteri.Sinistro)); // Nome sb.Append(getCampoNonPosizionale("AU001003", fornitore.PersonaRiferimento.Nome.ToUpper(), AllineamentoCaratteri.Sinistro)); // Sesso if (fornitore.PersonaRiferimento.TipoPersona == TipoPersonaEnum.Fisica) { if(fornitore.PersonaRiferimento.Sesso != SessoEnum.Undefined) sb.Append(getCampoNonPosizionale("AU001004", fornitore.PersonaRiferimento.Sesso.ToString().Substring(0, 1).ToUpper(), AllineamentoCaratteri.Sinistro)); // Data di nascita sb.Append(getCampoNonPosizionale("AU001005", convertData(fornitore.PersonaRiferimento.DataNascita), AllineamentoCaratteri.Destro)); // Comune di nascita sb.Append(getCampoNonPosizionale("AU001006", fornitore.PersonaRiferimento.ComuneNascita.Descrizione, AllineamentoCaratteri.Sinistro)); // Provincia di nascita sb.Append(int.Parse(fornitore.PersonaRiferimento.ComuneNascita.Codice) <= 999201 ? getCampoNonPosizionale("AU001007", fornitore.PersonaRiferimento.ComuneNascita.ProvinciaAppartenenza.Codice, AllineamentoCaratteri.Sinistro) : getCampoNonPosizionale("AU001007", "EE", AllineamentoCaratteri.Sinistro)); } } // Comune di residenza sb.Append(getCampoNonPosizionale("AU001008", fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.Descrizione, AllineamentoCaratteri.Sinistro)); // Provincia di residenza sb.Append(getCampoNonPosizionale("AU001009", fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice, AllineamentoCaratteri.Sinistro)); // Via e numero civico sb.Append(getCampoNonPosizionale("AU001012", fornitore.PersonaRiferimento.IndirizzoResidenza.GetIndirizzoCompleto(), AllineamentoCaratteri.Sinistro)); //--------------------------------------------- // Dati relativi alle somme erogate //--------------------------------------------- var speseSoggette = _spesaService.GetSoggetteRitenutaByFornitoreCondominioAnno(fornitore, condominio, anno); var imponibileIva = speseSoggette.Sum(item => item.Imponibile); var imponibileRitenuta = speseSoggette.Sum(item => item.GetImponibileRitenuta()); var altreSommeNonSoggette = Math.Round(imponibileIva - imponibileRitenuta, 2); // Causale sb.Append(getCampoNonPosizionale("AU001019", fornitore.GetTipologiaReddito(), AllineamentoCaratteri.Sinistro)); // Ammontare Lordo Corrisposto (al netto di IVA) sb.Append(getCampoNonPosizionale("AU001022", Math.Round(imponibileIva, 2).ToString(), AllineamentoCaratteri.Destro)); // Codice if (altreSommeNonSoggette > 0) sb.Append(getCampoNonPosizionale("AU001024", "3", AllineamentoCaratteri.Destro)); // Altre somme non soggette a ritenuta if(altreSommeNonSoggette > 0) sb.Append(getCampoNonPosizionale("AU001025", altreSommeNonSoggette.ToString(), AllineamentoCaratteri.Destro)); // Imponibile sb.Append(getCampoNonPosizionale("AU001026", Math.Round(imponibileIva - altreSommeNonSoggette, 2).ToString(), AllineamentoCaratteri.Destro)); // Ritenute a titolo di acconto sb.Append(getCampoNonPosizionale("AU001027", Math.Round(ritenute.Sum(item => item.Importo.GetValueOrDefault()), 2).ToString(), AllineamentoCaratteri.Destro)); //====================================================== // CAMPI POSIZIONALI (da carattere 1890 a carattere 1900) //====================================================== var charToEnd = 1889 - sb.ToString().Length; sb.Append(string.Empty.PadRight(charToEnd)); // filler sb.Append(string.Empty.PadLeft(8)); //--------------------------------------------- // Ultimi caratteri di controllo //--------------------------------------------- sb.Append("A"); // CarriageReturn LineFeed sb.Append(CRLF); sw.Write(sb.ToString()); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la creazione della sezione H per il modello 770 - {0} - condominio:{1} - fornitore:{2}", ex, Library.Utility.GetMethodDescription(), condominio.ID, fornitore.ID); throw; }
public FornitoreDTO GetByDomainEntity(Fornitore fornitore) { try { return setDto(fornitore); } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento dei fornitori - {0} - id:{1}", ex, Utility.GetMethodDescription(), fornitore.ID); throw; } }
public string LoadFornitori(string key, int idAzienda, string password) { string message = string.Empty; try { var databasePath = saveDatabase(key); var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Jet OLEDB:Database Password="******"; Data Source=" + databasePath); var azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); var ds = new DataSet(); var fornitoriAdapter = new OleDbDataAdapter("SELECT * FROM Fornitori " + "ORDER BY Fornitori.F_RAG_SOC, Fornitori.F_TITOLARE", conn); fornitoriAdapter.Fill(ds, "Fornitori"); ds.Tables["Fornitori"].PrimaryKey = new[] { ds.Tables["Fornitori"].Columns["F_COD"] }; foreach (DataRow row in ds.Tables["Fornitori"].Rows) { try { // =========================== // Persona // =========================== Persona persona; var fornitore = _daoFactory.GetFornitoreDao().GetByCodiceImportazione(row["F_COD"].ToString().Trim(), azienda.ID); if (fornitore == null) { var tipoPersona = TipoPersonaEnum.Giuridica; if ((bool)row["F_PERSONA"]) tipoPersona = TipoPersonaEnum.Fisica; persona = new Persona(tipoPersona, string.Empty, row["F_TITOLARE"].ToString().Trim(), idAzienda, false); } else persona = fornitore.PersonaRiferimento; persona.RagioneSociale = row["F_RAG_SOC"].ToString().Trim(); if (persona.Nome != null && persona.Nome.Length > 50) persona.Nome = persona.Nome.Substring(0, 50); if (persona.Cognome != null && persona.Cognome.Length > 50) persona.Cognome = persona.Cognome.Substring(0, 50); if (persona.RagioneSociale != null && persona.RagioneSociale.Length > 100) persona.RagioneSociale = persona.RagioneSociale.Substring(0, 100); if (persona.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica && row["F_SESSO_PF"] != DBNull.Value) { if (row["F_SESSO_PF"].ToString().Trim() == "M") persona.Sesso = SessoEnum.Maschio; else if(row["F_SESSO_PF"].ToString().Trim() == "F") persona.Sesso = SessoEnum.Femmina; } if (row["F_COD_FISC"] != DBNull.Value && !string.IsNullOrEmpty(row["F_COD_FISC"].ToString().Trim())) persona.CodiceFiscale = row["F_COD_FISC"].ToString().Trim(); if (row["F_PIVA"] != DBNull.Value && !string.IsNullOrEmpty(row["F_PIVA"].ToString().Trim())) persona.PartitaIva = row["F_PIVA"].ToString().Trim(); if (row["F_NOTE"] != DBNull.Value && !string.IsNullOrEmpty(row["F_NOTE"].ToString().Trim())) persona.Note = row["F_NOTE"].ToString().Trim(); persona.IndirizzoResidenza = new Address(); if (row["F_LOCALITA"] != DBNull.Value && !string.IsNullOrEmpty(row["F_LOCALITA"].ToString())) { var comuni = _daoFactory.GetComuneDao().GetByDescrizione(row["F_LOCALITA"].ToString().Trim()); if (comuni.Count == 1) persona.IndirizzoResidenza.Comune = comuni[0]; else persona.IndirizzoResidenza.Localita = row["F_LOCALITA"].ToString(); } if(row["F_CAP"] != DBNull.Value) persona.IndirizzoResidenza.Cap = row["F_CAP"].ToString().Trim(); if (row["F_VIA"] != DBNull.Value) persona.IndirizzoResidenza.Indirizzo = row["F_VIA"].ToString().Trim(); if (row["F_LOCALITA_NASC"] != DBNull.Value && !string.IsNullOrEmpty(row["F_LOCALITA_NASC"].ToString())) { var comuni = _daoFactory.GetComuneDao().GetByDescrizione(row["F_LOCALITA_NASC"].ToString().Trim()); if (comuni.Count == 1) persona.ComuneNascita = comuni[0]; } if (row["F_DT_NASC"] != DBNull.Value && (DateTime)row["F_DT_NASC"] > new DateTime(1800, 1, 1) && (DateTime)row["F_DT_NASC"] < new DateTime(2050, 12, 31)) persona.DataNascita = (DateTime)row["F_DT_NASC"]; // --------- // Contatti // --------- persona.Contatti.Clear(); if (row["F_TEL"] != DBNull.Value && !string.IsNullOrEmpty((string)row["F_TEL"])) { var contatto = new Telefono(row["F_TEL"].ToString(), true, persona) {CodiceImportazione = row["F_COD"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["F_TELEFONINO"] != DBNull.Value && !string.IsNullOrEmpty((string)row["F_TELEFONINO"])) { var contatto = new Cellulare(row["F_TELEFONINO"].ToString(), true, persona) {CodiceImportazione = row["F_COD"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["F_EMAIL"] != DBNull.Value && !string.IsNullOrEmpty((string)row["F_EMAIL"])) { var contatto = new Email(row["F_EMAIL"].ToString(), true, persona) {CodiceImportazione = row["F_COD"].ToString().Trim()}; persona.Contatti.Add(contatto); } if (row["F_FAX"] != DBNull.Value && !string.IsNullOrEmpty((string)row["F_FAX"])) { var contatto = new Fax(row["F_FAX"].ToString(), true, persona) {CodiceImportazione = row["F_COD"].ToString().Trim()}; persona.Contatti.Add(contatto); } persona.CodiceImportazione = row["F_COD"].ToString().Trim(); // =========================== // Fornitore // =========================== if(fornitore == null) fornitore = new Fornitore(persona, idAzienda); if (row["F_ALQ_RIT_ACC"] != DBNull.Value) fornitore.AliquotaRitenutaAcconto = Convert.ToDecimal((float)row["F_ALQ_RIT_ACC"]) / 100m; if (row["F_ALQ_IVA"] != DBNull.Value) fornitore.AliquotaIva = row["F_ALQ_IVA"].ToString().Trim(); if (row["F_ALQ_CASSAP"] != DBNull.Value) fornitore.AliquotaCassaProfessionisti = Convert.ToDecimal((float)row["F_ALQ_CASSAP"]) / 100m; if (row["F_MAG_CASP_IVA"] != DBNull.Value && row["F_MAG_CASP_IVA"].ToString() == "B") fornitore.IsRitenutaCalcolataImponibile = true; if (row["F_TRIBUTO"] != DBNull.Value && !string.IsNullOrEmpty(row["F_TRIBUTO"].ToString().Trim())) fornitore.CodiceTributo = row["F_TRIBUTO"].ToString().Trim(); fornitore.CodiceImportazione = row["F_COD"].ToString().Trim(); fornitore.Qualita = new ValutazioneQualita(); if (row["F_TIPO_PAG"] != DBNull.Value && row["F_TIPO_PAG"].ToString() == "BON") fornitore.ModalitaPagamento = _daoFactory.GetModalitaPagamentoDao().GetById(4, false); if (row["F_TIPO_FORN"] != DBNull.Value) fornitore.Tipo = _daoFactory.GetTipoFornitoreDao().GetByCodice(row["F_TIPO_FORN"].ToString()); //----------------------------- // Banche //----------------------------- if (row["F_IBAN_COMPLETO"] != DBNull.Value || (row["F_ABI"] != DBNull.Value && row["F_CAB"] != DBNull.Value)) { if (row["F_IBAN_COMPLETO"] != DBNull.Value && !string.IsNullOrEmpty(row["F_IBAN_COMPLETO"].ToString())) { var coor = new CoordinateBancarie(); if (coor.CheckIBAN(row["F_IBAN_COMPLETO"].ToString().Trim().Replace(" ", ""))) { persona.Iban = row["F_IBAN_COMPLETO"].ToString().Trim().Replace(" ", ""); coor.SetIBAN(persona.Iban); persona.Abi = coor.Abi; persona.Cab = coor.Cab; persona.ContoCorrente = coor.ContoCorrente; persona.Cin = coor.Cin; } } else { var coor = new CoordinateBancarie { Abi = row["F_ABI"].ToString().Trim().PadLeft(5, '0'), Cab = row["F_CAB"].ToString().Trim().PadLeft(5, '0'), ContoCorrente = row["F_NR_CC"].ToString().Trim().PadLeft(12, '0') }; persona.Iban = coor.CalcolaIBAN(); } } _daoFactory.GetFornitoreDao().SaveOrUpdate(fornitore); } catch (Exception ex) { _log.Error("Errore inaspettato l'importazione di un fornitore da YStabili: " + Library.Utility.GetMethodDescription() + " (Fornitore) - idFornitore:" + row["F_COD"] + " - nome:" + row["F_RAG_SOC"] + " - cognome:" + row["F_TITOLARE"], ex); throw; } } } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei fornitori da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei fornitori da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
public IList<DocumentoDTO> GetDataSourceDocumentoFornitore(int idFornitore) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { _documenti = new List<DocumentoDTO>(); _fornitore = daoFactory.GetFornitoreDao().Find(idFornitore, false); if (_fornitore != null) { foreach (var documentoCondominio in _fornitore.Documenti) { var dto = new DocumentoDTO { Checksum = documentoCondominio.Checksum, Descrizione = documentoCondominio.Descrizione, DirectoryName = documentoCondominio.DirectoryName, FileExtension = documentoCondominio.FileExtension, FileName = documentoCondominio.FileName, ID = documentoCondominio.ID, VisibileCondomino = documentoCondominio.VisibileCondomino, Tipo = documentoCondominio.Tipo, NoCache = documentoCondominio.NoCache, DataCreazione = documentoCondominio.DataInserimento.GetValueOrDefault() }; _documenti.Add(dto); } } return _documenti; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dei documenti per un fornitore - {0} - fornitore:{1} - azienda:{2}", ex, Library.Utility.GetMethodDescription(), idFornitore, _info.Azienda); } return _documenti; }
private DatiFornitori770 getDatiFornitore(Fornitore fornitore, Condominio condominio, int index) { var datiFornitore = new DatiFornitori770 { Cognome = (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Giuridica) ? fornitore.PersonaRiferimento.RagioneSociale : fornitore.PersonaRiferimento.Cognome, Nome = (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Giuridica) ? string.Empty : fornitore.PersonaRiferimento.Nome, CodiceFiscale = fornitore.GetCodiceFiscale(), ComuneNascita = (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica) ? fornitore.PersonaRiferimento.ComuneNascita.Descrizione : string.Empty, ProvinciaNascita = (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica) ? fornitore.PersonaRiferimento.ComuneNascita.ProvinciaAppartenenza.Codice : string.Empty, DataNascita = (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica) ? fornitore.PersonaRiferimento.DataNascita.GetValueOrDefault().ToShortDateString() : string.Empty, Sesso = (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica) ? fornitore.PersonaRiferimento.Sesso.ToString().Substring(0, 1).ToUpper() : string.Empty, IndirizzoCompleto = fornitore.PersonaRiferimento.IndirizzoResidenza.GetIndirizzoCompleto(), ComuneResidenza = fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.Descrizione, Provincia = fornitore.PersonaRiferimento.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice, CodiceFiscaleCondominio = condominio.CodiceFiscale, Causale = fornitore.GetTipologiaReddito(), ProgressivoComunicazione = index.ToString().PadLeft(8, '0') }; return datiFornitore; }
private string getNewSpesa(Fornitore fornitore, Esercizio esercizio, TestataMovimentoContabileGestioneDTO testata, MovimentoContabileGestioneDTO movimento, out GestioneCondomini.Domain.Spesa spesa) { var message = string.Empty; spesa = new GestioneCondomini.Domain.Spesa(fornitore, esercizio, null); try { if (_protocolloService == null) { _log.ErrorFormat("Errore di inizializzazione del protocollo service - {0} - documento:{1} - movimento:{2} - esercizio:{3} - testata:{4}", Utility.GetMethodDescription(), movimento.NumeroDocumento, movimento.ID, testata.CodiceEsercizio, testata.ID); message = "Errore di inizializzazione del protocollo service."; return message; } if (movimento.DataDocumento == null) { _log.ErrorFormat("La data del documento è null - {0} - documento:{1} - movimento:{2} - esercizio:{3} - testata:{4}", Utility.GetMethodDescription(), movimento.NumeroDocumento, movimento.ID, testata.CodiceEsercizio, testata.ID); message = "La data del documento è null."; } if (esercizio.CondominioRiferimento == null) { _log.ErrorFormat("Il Condominio è null - {0} - documento:{1} - movimento:{2} - esercizio:{3} - testata:{4}", Utility.GetMethodDescription(), movimento.NumeroDocumento, movimento.ID, testata.CodiceEsercizio, testata.ID); message = "Il Condominio è null."; } var protocollo = _protocolloService.GetProgressivo(TipoProtocollo.Fattura, esercizio.DataApertura.GetValueOrDefault().Year, esercizio.CondominioRiferimento); if (protocollo.Progressivo != null) spesa.NumeroProtocollo = protocollo.Progressivo; else return protocollo.Message; } catch (Exception ex) { var idCondominio = "<NULL>"; if (esercizio?.CondominioRiferimento != null) idCondominio = esercizio.CondominioRiferimento.ID.ToString(CultureInfo.InvariantCulture); _log.ErrorFormat("Errore inaspettato nel recuperare il progressivo - {0} - data:{1:d} - condominio:{2} - movimento:{3} - esercizio:{4} - testata:{5}", ex, Utility.GetMethodDescription(), movimento.DataDocumento.GetValueOrDefault(), idCondominio, movimento.ID, testata.CodiceEsercizio, testata.ID); message = "Errore inaspettato nel recuperare il progressivo."; } _daoFactory.GetSpesaDao().SaveOrUpdate(spesa); return message; }