/// <summary> /// Crea uno Dato bancario valido /// </summary> public DatiBancariCondomini(string iban, Condominio stabile) { if (stabile != null) { _condominioRiferimento = stabile; _iban = iban; CoordinateBancarie coor = new CoordinateBancarie(); coor.SetIBAN(iban); Abi = coor.Abi; Cab = coor.Cab; ContoCorrente = coor.ContoCorrente; Cin = coor.Cin; _condominioRiferimento.DatiBancari.Add(this); } }
private bool update(PersonaDTO dto, out Persona item) { bool result = false; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetPersonaDao().GetById(dto.ID, false); // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia // Per non viene più eseguito il controllo if (dto.Version == item.Version || true) { item.AziendaID = dto.Azienda; item.CodiceFiscale = dto.CodiceFiscale; item.Cognome = dto.Cognome; if (dto.DataNascita != null) { if (!Conversione.IsSqlSmallDateTime(dto.DataNascita.GetValueOrDefault())) _log.WarnFormat("ATTENZIONE: Tentativo di memorizzare una data di nascita non corretta - {0} - persona:{1} - data:{2}", Utility.GetMethodDescription(), dto.ID, dto.DataNascita.GetValueOrDefault()); else item.DataNascita = dto.DataNascita; } item.Nome = dto.Nome; item.Note = dto.Note; item.PartitaIva = dto.PartitaIva; item.RagioneSociale = dto.RagioneSociale; item.Sesso = dto.Sesso; item.TipoPersona = dto.TipoPersona; item.Titolo = dto.Titolo; if (!string.IsNullOrEmpty(dto.Username)) { if (item.DatiAutenticazione == null) item.DatiAutenticazione = new DatiAutenticazionePersona(); item.DatiAutenticazione.Username = dto.Username; item.DatiAutenticazione.Password = dto.Password; } item.Iban = dto.Iban; // Se iban è valorizzato i dati singoli devono sempre essere estrapolati dall'IBAN if (!string.IsNullOrEmpty(item.Iban)) { var coord = new CoordinateBancarie(); coord.SetIBAN(item.Iban); item.Abi = coord.Abi; item.Cab = coord.Cab; item.ContoCorrente = coord.ContoCorrente; item.Cin = coord.Cin; } else { item.Abi = dto.Abi; item.Cab = dto.Cab; item.ContoCorrente = dto.ContoCorrente; item.Cin = dto.Cin; } if (dto.IndirizzoResidenza != null) { if (item.IndirizzoResidenza == null) item.IndirizzoResidenza = new Address(); item.IndirizzoResidenza.Cap = dto.IndirizzoResidenza.Cap; item.IndirizzoResidenza.Civico = dto.IndirizzoResidenza.Civico; item.IndirizzoResidenza.Indirizzo = dto.IndirizzoResidenza.Indirizzo; item.IndirizzoResidenza.Localita = dto.IndirizzoResidenza.Localita; item.IndirizzoResidenza.Presso = dto.IndirizzoResidenza.Presso; item.IndirizzoResidenza.Comune = dto.IndirizzoResidenza.CodiceComune != null ? daoFactory.GetComuneDao().Find(dto.IndirizzoResidenza.CodiceComune, false) : null; } if (dto.Domicilio != null) { if (item.Domicilio == null) item.Domicilio = new Address(); item.Domicilio.Cap = dto.Domicilio.Cap; item.Domicilio.Civico = dto.Domicilio.Civico; item.Domicilio.Indirizzo = dto.Domicilio.Indirizzo; item.Domicilio.Localita = dto.Domicilio.Localita; item.Domicilio.Presso = dto.Domicilio.Presso; item.Domicilio.Comune = dto.Domicilio.CodiceComune != null ? daoFactory.GetComuneDao().Find(dto.Domicilio.CodiceComune, false) : null; } if (dto.Recapito != null) { if (item.Recapito == null) item.Recapito = new Address(); item.Recapito.Cap = dto.Recapito.Cap; item.Recapito.Civico = dto.Recapito.Civico; item.Recapito.Indirizzo = dto.Recapito.Indirizzo; item.Recapito.Localita = dto.Recapito.Localita; item.Recapito.Presso = dto.Recapito.Presso; item.Recapito.Comune = dto.Recapito.CodiceComune != null ? daoFactory.GetComuneDao().GetById(dto.Recapito.CodiceComune, false) : null; } if (dto.ComuneNascita != null) { _idComune = dto.ComuneNascita.ID; item.ComuneNascita = daoFactory.GetComuneDao().GetById(_idComune, false); } else item.ComuneNascita = null; // Lista Contatti item.Contatti.Clear(); foreach (var t in dto.Contatti) { _id = t.ID; if (t.Stato != string.Empty) _id = getContattoRepository(item).ManageDomainEntity(t, false); var contatto = daoFactory.GetContattoDao().Find(_id.GetValueOrDefault(), false); if(contatto != null) item.Contatti.Add(contatto); } // Lista Gruppi var gruppi = item.Gruppi.ToArray(); foreach (var personaGruppo in gruppi) { personaGruppo.Gruppo.Persone.Remove(personaGruppo); personaGruppo.Persona.Gruppi.Remove(personaGruppo); personaGruppo.Gruppo = null; personaGruppo.Persona = null; } item.Gruppi.Clear(); foreach (var idGruppo in dto.Gruppi) { var gruppo = daoFactory.GetGruppoDao().Find(idGruppo, false); if(gruppo != null) { var personaGruppo = new PersonaGruppo(item, gruppo); daoFactory.GetPersonaGruppoDao().SaveOrUpdate(personaGruppo); } } // Unità Immobiliari var unitaImmobiliari = daoFactory.GetUnitaImmobiliareDao().GetByPersona(item.ID); foreach (var unitaImmobiliare in unitaImmobiliari) { unitaImmobiliare.Descrizione = daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(unitaImmobiliare); } daoFactory.GetPersonaDao().Update(item); result = true; } else { // Eccezione: Sul db c'è qualche cosa di più nuovo. _log.ErrorFormat("Errore nel salvataggio della persona - {0} id:{1} - il dato sul db è più recente di quello che si vuole salvare", Utility.GetMethodDescription(), dto.ID); } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio della persona - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return result; }
private bool insert(PersonaDTO dto, out Persona item) { item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { if (dto.DataNascita != null) { if (!Conversione.IsSqlSmallDateTime(dto.DataNascita.GetValueOrDefault())) { dto.DataNascita = null; _log.WarnFormat("ATTENZIONE: Tentativo di memorizzare una data di nascita non corretta - {0} - persona:{1} - data:{2}", Utility.GetMethodDescription(), dto.ID, dto.DataNascita.GetValueOrDefault()); } } item = new Persona(dto.TipoPersona, dto.Nome, dto.Cognome, dto.Azienda, true) { AziendaID = dto.Azienda, CodiceFiscale = dto.CodiceFiscale, Cognome = dto.Cognome, DataNascita = dto.DataNascita, Nome = dto.Nome, Note = dto.Note, PartitaIva = dto.PartitaIva, RagioneSociale = dto.RagioneSociale, Sesso = dto.Sesso, Titolo = dto.Titolo, Iban = dto.Iban }; if(!string.IsNullOrEmpty(dto.Username)) item.DatiAutenticazione = new DatiAutenticazionePersona {Username = dto.Username, Password = dto.Password}; // Se iban è valorizzato i dati singoli devono sempre essere estrapolati dall'IBAN if (!string.IsNullOrEmpty(item.Iban)) { var coord = new CoordinateBancarie(); if (coord.SetIBAN(item.Iban)) { item.Abi = coord.Abi; item.Cab = coord.Cab; item.ContoCorrente = coord.ContoCorrente; item.Cin = coord.Cin; } } else { item.Abi = dto.Abi; item.Cab = dto.Cab; item.ContoCorrente = dto.ContoCorrente; item.Cin = dto.Cin; } if (dto.IndirizzoResidenza != null) { if (item.IndirizzoResidenza == null) item.IndirizzoResidenza = new Address(); item.IndirizzoResidenza.Cap = dto.IndirizzoResidenza.Cap; item.IndirizzoResidenza.Civico = dto.IndirizzoResidenza.Civico; item.IndirizzoResidenza.Indirizzo = dto.IndirizzoResidenza.Indirizzo; item.IndirizzoResidenza.Localita = dto.IndirizzoResidenza.Localita; item.IndirizzoResidenza.Presso = dto.IndirizzoResidenza.Presso; if (dto.IndirizzoResidenza.CodiceComune != null) item.IndirizzoResidenza.Comune = daoFactory.GetComuneDao().Find(dto.IndirizzoResidenza.CodiceComune, false); } if (dto.Domicilio != null) { if (item.Domicilio == null) item.Domicilio = new Address(); item.Domicilio.Cap = dto.Domicilio.Cap; item.Domicilio.Civico = dto.Domicilio.Civico; item.Domicilio.Indirizzo = dto.Domicilio.Indirizzo; item.Domicilio.Localita = dto.Domicilio.Localita; item.Domicilio.Presso = dto.Domicilio.Presso; if (dto.Domicilio.CodiceComune != null) item.Domicilio.Comune = daoFactory.GetComuneDao().Find(dto.Domicilio.CodiceComune, false); } if (dto.Recapito != null) { if (item.Recapito == null) item.Recapito = new Address(); item.Recapito.Cap = dto.Recapito.Cap; item.Recapito.Civico = dto.Recapito.Civico; item.Recapito.Indirizzo = dto.Recapito.Indirizzo; item.Recapito.Localita = dto.Recapito.Localita; item.Recapito.Presso = dto.Recapito.Presso; if (dto.Recapito.CodiceComune != null) item.Recapito.Comune = daoFactory.GetComuneDao().GetById(dto.Recapito.CodiceComune, false); } if (dto.ComuneNascita != null) { _idComune = dto.ComuneNascita.ID; item.ComuneNascita = daoFactory.GetComuneDao().GetById(_idComune, false); } else item.ComuneNascita = null; //Lista Contatti item.Contatti.Clear(); foreach (var t in dto.Contatti) { _id = t.ID; if (t.Stato != string.Empty) _id = getContattoRepository(item).ManageDomainEntity(t, false); item.Contatti.Add(daoFactory.GetContattoDao().GetById(_id.GetValueOrDefault(), false)); } // Lista Gruppi item.Gruppi.Clear(); foreach (var idGruppo in dto.Gruppi) { var gruppo = daoFactory.GetGruppoDao().Find(idGruppo, false); if (gruppo != null) { var personaGruppo = new PersonaGruppo(item, gruppo); daoFactory.GetPersonaGruppoDao().SaveOrUpdate(personaGruppo); } } daoFactory.GetPersonaDao().SaveOrUpdate(item); // Dati autenticazione (solo ora perchè necessita dell'ID) if(item.DatiAutenticazione == null || string.IsNullOrEmpty(item.DatiAutenticazione.Username)) { if(item.DatiAutenticazione == null) item.DatiAutenticazione = new DatiAutenticazionePersona(); var service = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPersonaService>(); service.SetDatiAutenticazione(item); } // Unità Immobiliari var unitaImmobiliari = daoFactory.GetUnitaImmobiliareDao().GetByPersona(item.ID); foreach (var unitaImmobiliare in unitaImmobiliari) { unitaImmobiliare.Descrizione = daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(unitaImmobiliare); } } catch (Exception ex) { _log.Error("Errore nell'inserimento delle persone: " + Utility.GetMethodDescription() + " - id:" + dto.ID, ex); throw; } return true; }
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; }
private void ibanValidatorValidating(object sender, Windows.Forms.CustomValidation.CustomValidator.ValidatingCancelEventArgs e) { if (!string.IsNullOrEmpty(iban.Text)) { var coord = new CoordinateBancarie(); e.Valid = coord.SetIBAN(iban.Text); } else e.Valid = true; }
private void ibanLeave(object sender, EventArgs e) { if (iban.Value != null) { Fornitore.PersonaRiferimento.Iban = iban.Value.ToString(); var coord = new CoordinateBancarie(); if (coord.SetIBAN(iban.Value.ToString())) { Fornitore.PersonaRiferimento.Abi = coord.Abi; Fornitore.PersonaRiferimento.Cab = coord.Cab; Fornitore.PersonaRiferimento.Cin = coord.Cin; Fornitore.PersonaRiferimento.ContoCorrente = coord.ContoCorrente; } } }
private void listaBancheAfterCellUpdate(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (getAbiCabService().IsValidableIBAN()) { var datiBancariDTO = (DatiBancariDTO)e.Cell.Row.ListObject; if (datiBancariDTO != null) { // ---------------------------------------------------------- // Decodifica ABI // ---------------------------------------------------------- if (e.Cell.Value != null && e.Cell.Column.Key == "DescrizioneAbi") { if (Utility.IsInteger(e.Cell.Value.ToString())) { string abi = e.Cell.Value.ToString().PadLeft(5, '0'); if (!string.IsNullOrEmpty(abi)) { var abiDTO = getAbiCabService().GetAbiByCodice(abi); if (abiDTO != null) { datiBancariDTO.Abi = abi; datiBancariDTO.DescrizioneAbi = abiDTO.Codice + " - " + abiDTO.Descrizione; } if (!string.IsNullOrEmpty(datiBancariDTO.Cab)) { var cabDTO = getAbiCabService().GetCabByCodice(datiBancariDTO.Abi, datiBancariDTO.Cab); if (cabDTO != null) { datiBancariDTO.Cab = datiBancariDTO.Cab; datiBancariDTO.DescrizioneCab = cabDTO.DescrizioneCabCompleta; } } } } else return; } // ---------------------------------------------------------- // Decodifica CAB // ---------------------------------------------------------- if (e.Cell.Column.Key == "DescrizioneCab") { if (e.Cell.Value != null && Utility.IsInteger(e.Cell.Value.ToString())) { var cab = e.Cell.Value.ToString().PadLeft(5, '0'); if (!string.IsNullOrEmpty(cab)) { var cabDTO = getAbiCabService().GetCabByCodice(datiBancariDTO.Abi, cab); if (cabDTO != null) { datiBancariDTO.Cab = cab; datiBancariDTO.DescrizioneCab = cabDTO.DescrizioneCabCompleta; } } } else return; } // ---------------------------------------------------------- // Calcolo IBAN e CIN // ---------------------------------------------------------- if (e.Cell.Column.Key == "DescrizioneAbi" || e.Cell.Column.Key == "DescrizioneCab" || e.Cell.Column.Key == "ContoCorrente") { if (!string.IsNullOrEmpty(datiBancariDTO.Abi) && !string.IsNullOrEmpty(datiBancariDTO.Cab) && !string.IsNullOrEmpty(datiBancariDTO.ContoCorrente)) { var coor = new CoordinateBancarie { Abi = datiBancariDTO.Abi, Cab = datiBancariDTO.Cab, ContoCorrente = datiBancariDTO.ContoCorrente }; coor.Cin = coor.CalcolaCin(); datiBancariDTO.Cin = coor.Cin; datiBancariDTO.Iban = coor.CalcolaIBAN(); } } // ---------------------------------------------------------- // Calcolo ABI, CAB, ContoCorrente e CIN // ---------------------------------------------------------- if (e.Cell.Column.Key == "Iban") { if (!string.IsNullOrEmpty(datiBancariDTO.Iban)) { var coor = new CoordinateBancarie(); coor.SetIBAN(datiBancariDTO.Iban); datiBancariDTO.Abi = coor.Abi; datiBancariDTO.Cab = coor.Cab; datiBancariDTO.ContoCorrente = coor.ContoCorrente; datiBancariDTO.Cin = coor.Cin; var cabDTO = getAbiCabService().GetCabByCodice(datiBancariDTO.Abi, datiBancariDTO.Cab); if (cabDTO != null) { datiBancariDTO.DescrizioneAbi = cabDTO.DescrizioneAbiCompleta; datiBancariDTO.DescrizioneCab = cabDTO.DescrizioneCabCompleta; } } } } } }
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; }