public List<RataSoggettoSubentroDTO> GetRate(EsercizioDTO esercizio, PersonaDTO persona, IList<UnitaImmobiliareListaDTO> unitaImmobiliari) { var idUnitaImmobiliari = unitaImmobiliari.Select(unita => unita.Id).ToList(); var result = GetServiceClient().GetRateSubentro(esercizio.ID, persona.ID, idUnitaImmobiliari, GetUserInfo()); CloseService(); return result; }
public void cargardatospaciente() { IngresoDTO ingresoDTO = (IngresoDTO)Session["ingreso_ADM_DTO"]; PacienteDTO pacienteDTO = (PacienteDTO)Session["paciente_ADM_DTO"]; lblRut.Text = pacienteDTO.rut + "-" + pacienteDTO.digito_verificador; lblNombre.Text = pacienteDTO.nombre + " " + pacienteDTO.apellido_paterno + " " + pacienteDTO.apellido_materno; lblEdad.Text = pacienteDTO.edad; lblEstado.Text = ingresoDTO.estado; lblEnfermedad.Text = ingresoDTO.enfermedad; lblFechaIngreso.Text = pacienteDTO.fecha_registro.ToString("dd/MM/yyyy"); lblHoraIngreso.Text = ingresoDTO.hora_ingreso; lblUnidad.Text = ingresoDTO.unidad.nombre; lblSala.Text = ingresoDTO.sala.numero; lblCama.Text = ingresoDTO.cama.descripcion; PersonalNEG personalNEG = new PersonalNEG(); PersonalDTO personalDTOIN = new PersonalDTO(); PersonalDTO personalDTOOUT = new PersonalDTO(); personalDTOIN.unidadID = ingresoDTO.unidadID; personalDTOOUT = personalNEG.readxUnidad(personalDTOIN); PersonaDTO personaDTOIN = new PersonaDTO(); PersonaDTO personaDTOOUT = new PersonaDTO(); PersonaNEG personaNEG = new PersonaNEG(); personaDTOIN.personaID = personalDTOOUT.personaID; personaDTOOUT = personaNEG.read(personaDTOIN); lblDoctor.Text = personaDTOOUT.nombre + " " + personaDTOOUT.apellido_paterno + " " + personaDTOOUT.apellido_materno; }
public async Task <ActionResult <Persona.API.Model.Persona> > PostPersona(PersonaDTO _personaDTO) { Persona.API.Model.Persona nueva_persona = new Persona.API.Model.Persona(); //mapeo de request nueva_persona = _mapper.Map <Persona.API.Model.Persona>(_personaDTO); //agregar datos a bd _logger.LogInformation("----- Publishing Nueva personsa: {IdDoc} from {Nombre} )", _personaDTO.IdDoc, _personaDTO.Nombre); _context.Persona.Add(nueva_persona); _context.Contacto.AddRange(GetContactos(_personaDTO)); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (PersonaExists(nueva_persona.IdDoc)) { _logger.LogError("--ERROR--- Publishing Nueva personsa: PersonaExists {IdDoc} from {Nombre} )", _personaDTO.IdDoc, _personaDTO.Nombre); return(Conflict()); } else { _logger.LogError("--ERROR--- Publishing Nueva personsa: {IdDoc} from {Nombre} )", _personaDTO.IdDoc, _personaDTO.Nombre); throw; } } return(CreatedAtAction("GetPersona", new { id = nueva_persona.IdDoc }, nueva_persona)); }
public int actualizar(PersonaDTO personaDTO) { int retorno = 0; SqlConnection conn = new SqlConnection(connectionString); string sql = "UPDATE INTO Persona ( rut, dv, nombres, ap_paterno, ap_materno, direccion, telefono) values(@rut, @dv, @nombres, @ap_paterno, @ap_materno, @direccion, @telefono)"; SqlCommand sqlcmd = new SqlCommand(sql, conn); sqlcmd.Parameters.AddWithValue("@rut", personaDTO.rut); sqlcmd.Parameters.AddWithValue("@dv", personaDTO.digito_verificador); sqlcmd.Parameters.AddWithValue("@nombres", personaDTO.nombre); sqlcmd.Parameters.AddWithValue("@ap_paterno", personaDTO.apellido_paterno); sqlcmd.Parameters.AddWithValue("@ap_materno", personaDTO.apellido_materno); sqlcmd.Parameters.AddWithValue("@direccion", personaDTO.direccion); sqlcmd.Parameters.AddWithValue("@telefono", personaDTO.telefono); sqlcmd.CommandType = CommandType.Text; conn.Open(); try { retorno = sqlcmd.ExecuteNonQuery(); } catch { retorno = 0; } finally { conn.Close(); } return(retorno); }
public async Task <IActionResult> PutPersona([FromRoute] int id, [FromBody] PersonaDTO persona) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // var per = await _personaRepository.GetPersonaByID(id); if (id != persona.Id) { return(BadRequest()); } try { //_personaRepository.UpdatePersona(id, persona); //_personaRepository.Save(); await _personaService.Update(id, persona); } catch (DbUpdateConcurrencyException) { if (!PersonaExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public void LoadDati(ReferenteDTO referente) { _referente = referente; _persona = new PersonaDTO {ComuneNascita = new ComuneDTO(), Nome = referente.Nome, Cognome = referente.Cognome}; _persona.ComuneNascita.Codice = referente.CodiceComuneNascita; _persona.ComuneNascita.Descrizione = referente.ComuneNascita; if (referente.Sesso == null && !referente.Dinamico.GetValueOrDefault()) referente.Sesso = "Undefined"; if(!string.IsNullOrEmpty(referente.Sesso)) _persona.Sesso = (SessoEnum)Enum.Parse(typeof(SessoEnum), referente.Sesso); _persona.CodiceFiscale = referente.CodiceFiscale; _persona.DataNascita = referente.DataNascita; personaDTOBindingSource.DataSource = _persona; if (_persona.ComuneNascita != null) sceltaComuneCombo.Value = _persona.ComuneNascita.Codice; if (_persona.Sesso != SessoEnum.Undefined) { sesso.ValueChanged -=sessoValueChanged; sesso.Value = _persona.Sesso.ToString(); sesso.ValueChanged += sessoValueChanged; } if (_persona.CodiceFiscale != null) codiceFiscale.Text = _persona.CodiceFiscale; }
public bool AgregarCliente(PersonaDTO empleado) { using (var contex = new EMPRESAEntities()) { var person = new EMPLEADO { NOMBRE = empleado.NOMBRE, PRIMERAPELLIDO = empleado.PRIMERAPELLIDO, SEGUNDOAPELLIDO = empleado.SEGUNDOAPELLIDO, FECHAINGRESO = DateTime.Now, EDAD = empleado.EDAD, SALARIO = empleado.SALARIO, IDCARGO = 1, IDCIUDAD = 1 }; contex.EMPLEADO.Add(person); contex.SaveChanges(); if (person.ID > 0) { return(true); } else { return(false); } } }
public PersonalDTO readxUnidad(PersonalDTO personalDTO) { DataTable dt = new DataTable(); PersonalDTO retornoDTO = new PersonalDTO(); PersonalDAO personalDAO = new PersonalDAO(); dt = personalDAO.readxUnidad(personalDTO); foreach (DataRow row in dt.Rows) { retornoDTO.personalID = Convert.ToInt64(row["personalID"].ToString()); retornoDTO.personaID = Convert.ToInt64(row["personaID"].ToString()); if (retornoDTO.personaID != 0) { PersonaNEG personaNEG = new PersonaNEG(); PersonaDTO personaDTO = new PersonaDTO(); personaDTO.personaID = retornoDTO.personaID; retornoDTO.persona = new PersonaDTO(); retornoDTO.persona = personaNEG.read(personaDTO); } retornoDTO.cargoID = Convert.ToInt64(row["cargoID"].ToString()); retornoDTO.unidadID = Convert.ToInt64(row["unidadID"].ToString()); } return(retornoDTO); }
public PersonaDTO Get(int id) { var query = _services.GetById(id); PersonaDTO dtos = Models.Factory.FactoryPersonaDTO.GetInstance().CreateDTO(query); return(dtos); }
public void LoadData(List<ContattoDTO> coll, PersonaDTO persona, bool isNew) { try { _coll = coll; _persona = persona; contattiBindingSource.DataSource = _coll; if (lista.DisplayLayout != null) { lista.DisplayLayout.ValueLists.Clear(); if (lista.DisplayLayout.ValueLists.Count == 0) { lista.DisplayLayout.ValueLists.Add(DataSourceHelper.GetValueList("TipoContatto", Decodifica.Instance)); lista.DisplayLayout.Bands[0].Columns["TipoContatto"].ValueList = lista.DisplayLayout.ValueLists["TipoContatto"]; } } var prop = new CustomControlProperties { AllowAddNew = AllowAddNew.TemplateOnBottom, AllowDelete = DefaultableBoolean.True, AllowUpdate = DefaultableBoolean.True }; lista.Tag = prop; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento dei contatti - {0} - persona:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), persona != null ? persona.ID.ToString(CultureInfo.InvariantCulture) : "<NULL>", Security.Login.Instance.CurrentLogin().Azienda); throw; } }
//se hace dobleclick sobre el grid private void DgvResultadoBusqueda_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { seleccionado = resultadoBusqueda[DgvResultadoBusqueda.CurrentCell.RowIndex]; //MessageBox.Show(seleccionado.DNI.ToString()); //Medicos_Alta medicos = new Medicos_Alta(); //medicos.Show(); }
public async Task <string> InsertEmpleado(PersonaDTO persona, int idPersona) { try { EMPLEADO Empleado = new EMPLEADO { idPersona = idPersona, codigoEmpleado = persona.personal.codigoEmpleado, descripcionArea = persona.personal.descripcionArea, cargo = persona.personal.cargo, fechaIngreso = null, salario = persona.personal.salario, idGenero = null, idTipoEmpleado = persona.personal.idTipoEmpleado, idEstado = 1, fechaBaja = null }; if (persona.personal.idGenero != null) { Empleado.idGenero = persona.personal.idGenero; } if (persona.personal.fechaIngreso != null) { Empleado.fechaIngreso = DateTime.Parse(persona.personal.fechaIngreso); } await _context.EMPLEADO.AddAsync(Empleado); await Save(); return("Ingreso Exitoso Empleado"); } catch (Exception ex) { return("Error en el guardado " + ex.Message); } }
public bool AgregarCalidadPersonaCnp(PersonaDTO _params, out string _mensaje) { CalidadPersonaCnp calidad = new CalidadPersonaCnp(); calidad.CalidadPersonaCnpId = Guid.NewGuid().ToString(); calidad.HechoId = _params.HechoId; calidad.PersonaId = _params.PersonaId; calidad.TipoInfractoId = _params.TipoInfractoId; calidad.MenorEdad = _params.MenorEdad; calidad.TipoPoblacion = _params.TipoPoblacion; calidad.RepresentanteMenor = _params.RepresentanteMenor; calidad.Vigente = true; calidad.FechaCreacion = DateTime.Now; calidad.UsuarioCreacion = HttpContext.Current.User.Identity.Name; calidad.MaquinaCreacion = HttpContext.Current.Request.UserHostAddress; using (ContextCnp db = new ContextCnp()) { db.CalidadPersonaCnp.Add(calidad); if (db.SaveChanges() > 0) { _mensaje = calidad.CalidadPersonaCnpId; return(true); } _mensaje = string.Empty; return(false); } }
public IList<CondominioDTO> Get(PersonaDTO json) { var service = new SferaService(); var info = new UserInfo(0, json.Azienda); return service.GetCondominiByPersona(json.ID, info); }
public async Task <string> UpdateEmpleado(PersonaDTO persona) { try { EMPLEADO Empleado = new EMPLEADO { idPersona = persona.idPersona, idEmpleado = (int)persona.personal.idEmpleado, codigoEmpleado = persona.personal.codigoEmpleado, descripcionArea = persona.personal.descripcionArea, cargo = persona.personal.cargo, fechaIngreso = DateTime.Parse(persona.personal.fechaIngreso), salario = persona.personal.salario, idGenero = persona.personal.idGenero, idTipoEmpleado = persona.personal.idTipoEmpleado, idEstado = persona.personal.estadoEmpleado, fechaBaja = persona.personal.fechaBaja }; _context.Update(Empleado); await Save(); return("Actualizacion Exitosa Empleado"); } catch (Exception ex) { return("Error en el guardado " + ex.StackTrace); } }
public IActionResult Actualizar(PersonaDTO persona) { if (HttpContext.Request.Method == "POST") { using (var client = new HttpClient()) { client.BaseAddress = new Uri(API); var responseTask = client.PutAsJsonAsync("Persona/" + persona.Id, persona); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsStringAsync(); readTask.Wait(); var resultJson = readTask.Result; return(RedirectToAction("Index")); } } } return(View()); }
public async Task <string> UpdateMedico(PersonaDTO persona) { try { T212_MEDICO Medico = new T212_MEDICO() { idMedico = (int)persona.personal.idMedico, codMedico = persona.personal.codMedico, nroColegio = persona.personal.numeroColegio, nroRne = persona.personal.nroRne, nroRuc = persona.personal.nroRucMedico, idtpDocumento = persona.personal.idTipoEmpleado, condicion = persona.personal.condicion, idEmpleado = persona.personal.idEmpleado, idEspecialidad = persona.personal.idEspecialidad, idPersona = persona.idPersona, estado = (int)persona.personal.estadoMedico, fechabaja = persona.personal.fechaBaja }; _context.Update(Medico); await Save(); return("Actualizacion Exitosa Medico"); } catch (Exception ex) { return("Error en el guardado " + ex.StackTrace); } }
public DataTable read(PersonaDTO personaDTO) { DataTable dataTable = new DataTable(); SqlConnection conn = new SqlConnection(connectionString); string sql = "select * from Personal where personalID = @personalID"; SqlCommand sqlcmd = new SqlCommand(sql, conn); sqlcmd.Parameters.Add(new SqlParameter("@personalID", SqlDbType.Int)); sqlcmd.Parameters["@personalID"].Value = personaDTO.personaID; try { conn.Open(); SqlDataReader rdr = sqlcmd.ExecuteReader(); dataTable.Load(rdr); rdr.Close(); } catch { dataTable = null; } finally { conn.Close(); } return(dataTable); }
public bool add(PersonaDTO personaDTO) { using (var context = getContext()) { try { Persona persona = new Persona(); persona.Nombre = personaDTO.Nombre; persona.Email = personaDTO.Email; persona.Estado = personaDTO.Estado; persona.IdEmpresa = personaDTO.IdEmpresa != 0 ? personaDTO.IdEmpresa : null; persona.RutaImagen = personaDTO.RutaImagen; context.Persona.Add(persona); if (personaDTO.ListaGruposTrabajo != null) { foreach (var group in personaDTO.ListaGruposTrabajo) { var grupo = context.GrupoTrabajo.Where(x => x.IdGrupoTrabajo == group).SingleOrDefault(); persona.GrupoTrabajo.Add(grupo); } } context.SaveChanges(); return(true); } catch (Exception e) { return(false); //throw e; } } }
public PersonaDTO CreateDTO(PersonaBE be) { PersonaDTO dto; if (be != null) { dto = new PersonaDTO() { id_persona = be.id_persona, id_plan = be.id_plan, apellido = be.apellido, nombre = be.nombre, direccion = be.direccion, fecha_nac = be.fecha_nac, legajo = be.legajo, telefono = be.telefono, tipo_persona = be.tipo_persona, estado = be.estado }; dto.Usuarios = new List <UsuarioDTO>(); if (be.Usuarios != null) { foreach (var item in be.Usuarios) { dto.Usuarios.Add(FactoryUsuarioDTO.GetInstance().CreateDTO(item)); } } return(dto); } return(dto = new PersonaDTO()); }
public async Task <IActionResult> Asignar(PersonaDTO personaDTO) { if (personaDTO.personal.idEmpleado != null) { try { if (personaDTO.asignacion != null) { await _cajaRepository.AsignaCaja(personaDTO); } TempData["mensajepersona"] = await _usuarioRepository.InsertUsuario(personaDTO); } catch (DbUpdateConcurrencyException) { if (await _usuarioRepository.UsuarioExists(personaDTO.personal.idEmpleado)) { return(NotFound()); } else { throw; } } } return(RedirectToAction(nameof(Index))); }
public int delete(PersonaDTO personaDTO) { int retorno = 0; string sql = "DELETE FROM Persona WHERE personaID=@personaID"; SqlConnection con = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand(sql, con); cmd.Parameters.AddWithValue("@personaID", personaDTO.personaID); cmd.CommandType = CommandType.Text; con.Open(); try { retorno = cmd.ExecuteNonQuery(); } catch (Exception ex) { retorno = 0; } finally { con.Close(); } return(retorno); }
public static ResponseProxyDTO Insert(PersonaDTO newEntity) { ResponseProxyDTO returnEntity = null; string strBaseAdressURL; ByteArrayContent byteContent; HttpResponseMessage response; using (HttpClient client = new HttpClient()) { strBaseAdressURL = GetAPIDomain(); client.BaseAddress = new Uri(strBaseAdressURL); // Add an Accept header for JSON format. client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // Serializo el Objeto a enviar. byteContent = ObjectToByteArrayContent(newEntity); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); // response = client.PostAsync("api/v1/personas", byteContent).Result; if (response.IsSuccessStatusCode) { returnEntity = response.Content.ReadAsAsync <ResponseProxyDTO>().Result; } else { returnEntity = new ResponseProxyDTO(); } } return(returnEntity); }
public async Task <ActionResult <PersonaDTO> > PutPersona(int id, PersonaDTO personaDTO) { if (id != personaDTO.Id) { return(BadRequest()); } var personaItem = await _context.Personas.FindAsync(id); if (personaItem == null) { return(NotFound()); } personaItem.Identificacion = personaDTO.Identificacion; personaItem.Nombres = personaDTO.Nombres; personaItem.Apellidos = personaDTO.Apellidos; personaItem.Direccion = personaDTO.Direccion; personaItem.Telefono = personaDTO.Telefono; personaItem.SexoId = personaDTO.SexoNombre; personaItem.TipoIdentififcacionId = personaDTO.TipoIdentificacionNombre; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { return(NotFound()); } return(NoContent()); }
public List<CalcoloSubentroDTO> GetCalcoloSubentro(int idCondominio, DateTime data, PersonaDTO personaEntrante, int idPersonaUscente, int idUnitaImmobiliarePrincipale, List<UnitaImmobiliareListaDTO> unitaImmobiliari, TipoSoggetto tipoSubentro, TipoRendiconto tipoRendiconto) { var idUnitaImmobiliari = unitaImmobiliari.Select(unita => unita.Id).ToList(); var result = GetServiceClient().GetCalcoloSubentro(idCondominio, data, personaEntrante, idPersonaUscente, idUnitaImmobiliarePrincipale, idUnitaImmobiliari, tipoSubentro, tipoRendiconto, GetUserInfo()); CloseService(); return new List<CalcoloSubentroDTO>(result.OrderBy(item => item.OrdineConto).ToList()); }
public async Task <string> InsertMedico(PersonaDTO persona, int idPersona, int idEmpleado) { try { T212_MEDICO Medico = new T212_MEDICO() { codMedico = persona.personal.codMedico, nroColegio = persona.personal.numeroColegio, nroRne = persona.personal.nroRne, nroRuc = persona.personal.nroRucMedico, idtpDocumento = persona.personal.idTipoEmpleado, condicion = persona.personal.condicion, idEmpleado = idEmpleado, idEspecialidad = persona.personal.idEspecialidad, idPersona = idPersona, estado = 1, fechabaja = null }; await _context.T212_MEDICO.AddAsync(Medico); await Save(); return("Ingreso Exitoso Medico"); } catch (Exception ex) { return("Error en el guardado " + ex.Message); } }
// [ValidateAntiForgeryToken] public async Task <IActionResult> DeleteConfirmed(PersonaDTO personadto) { var persona = await _personaRepository.GetById(personadto.idPersona); await _personaRepository.DeletePersona(personadto.idPersona); return(RedirectToAction(nameof(Index))); }
public ActionResult GuardarPersona(PersonaDTO _params) { IRegistrarPersonaHecho persona = new RegistrarPersonaHecho(); persona.AdicionarPersonaHecho(_params); return(RedirectToAction("Agregar", "HechoPersona", new { id = _params.HechoId })); }
public ActionResult Detalles([FromRoute] int Id) { PersonaDTO persona = this._personaServicio.ObtenerPersonaPorId(Id); PersonaVM personasVM = this._mapper.Map <PersonaDTO, PersonaVM>(persona); return(View(personasVM)); }
public SceltaContattiUI(PersonaDTO persona) { InitializeComponent(); inizializza(); _contattiUC.LoadData(persona.Contatti, persona, false); persistWindowComponent1.UserName = Login.Instance.CurrentLogin().LoginName; }
public JsonResult Update(PersonaDTO PersonaDTO) { var result = new { PersonaDTOid = PersonaService.EditPersona(Mapper.Map <SistemaSLS.Domain.Entities.Persona>(PersonaDTO)) }; return(Json(result, JsonRequestBehavior.AllowGet)); }
private void btnmodificar_Click(object sender, EventArgs e) { Int32 id = Convert.ToInt32(DGVGrilla[0, DGVGrilla.CurrentRow.Index].Value); PersonaDTO getpersona = Myproxy().Get(id, ""); frmpersonasingle frm = new frmpersonasingle(getpersona, "M", "Administrador", "Modificar Administrador"); frm.ShowDialog(); LoadForm(); }
public int delete(PersonaDTO personaDTO) { int retorno = 0; PersonaDAO personaDAO = new PersonaDAO(); retorno = personaDAO.delete(personaDTO); return(retorno); }
public virtual async Task Add(PersonaDTO entity) { var e = _mapper.Map <PersonaDTO, Persona>(entity); //_personaRepository.InsertPersona(_mapper.Map<PersonaDTO, Persona>(entity)); //_unitOfWork.PersonaRepository.Insert(e); _unitOfWork.Repository <Persona>().Insert(e); await _unitOfWork.Save(); }
public SceltaContattiUI(PersonaDTO persona, ReferenteDTO referente, string modelloLettera) { InitializeComponent(); _persona = persona; _referente = referente; _modelloLettera = modelloLettera; inizializza(); }
public frmcambiarclave(PersonaDTO dto) { InitializeComponent(); dtousr = dto; this.Text = "Cambiar clave"; button1.Text = "Confirmar"; button2.Text = "Cancelar"; }
public async Task <IActionResult> Post(PersonaDTO personaDto) { var persona = _mapper.Map <Personas>(personaDto); await _personaServices.InsertPersona(persona); var response = new ApiResponse <PersonaDTO>(personaDto); return(Ok(response)); }
public ListaUnitaImmobiliariUC(PersonaDTO persona) { _persona = persona; InitializeComponent(); inizializza(); if (_persona != null) LoadData(_persona, true); panelButtons.Visible = false; }
public List<IdMessage> IsAllowGenerazioneModello770(CondominioDTO condominio, int anno, FornitoreListaDTO fornitoreModello770, PersonaDTO firmatarioDichiarazione, PersonaDTO intermediarioDichiarazione) { int? idFornitore = null; if (fornitoreModello770 != null) idFornitore = fornitoreModello770.ID; var result = GetServiceClient().IsAllowGenerazioneModello770(condominio.ID, anno, idFornitore, DateTime.Today, firmatarioDichiarazione, intermediarioDichiarazione, GetUserInfo()); CloseService(); return result; }
public string SalvaPersona(PersonaDTO value) { var service = new SferaService(); var info = new UserInfo(0, value.Azienda); value.Stato = "U"; foreach (var contattoDTO in value.Contatti) contattoDTO.Stato = "U"; var idPersona = service.SetPersona(value, info); if (idPersona != null) return string.Empty; return "Si sono verificati problemi"; }
public DettaglioSoggettoUI(int idPersona) { if(idPersona == 0) Close(); InitializeComponent(); _persona = getPersonaService().GetById(idPersona); inizializza(true); soggettoBindingSource.DataSource = _persona; indirizzoResidenzaBindingSource.DataSource = _persona.IndirizzoResidenza; domicilioBindingSource.DataSource = _persona.Domicilio; recapitoBindingSource.DataSource = _persona.Recapito; BusinessClass = new BaseDTOOfint[] { _persona }; }
public IList<CalcoloSubentroDTO> GetRiepilogoCalcoloSubentroDettaglio(EsercizioDTO esercizio, PersonaDTO persona, int idPersonaSaldi, List<UnitaImmobiliareListaDTO> unitaImmobiliari, List<CalcoloSubentroDTO> spese, decimal spesaSubentroUscente, decimal spesaSubentroEntrante, decimal saldoSoggettoUscente) { var riepilogo = GetRiepilogoCalcoloSubentro(esercizio, persona, idPersonaSaldi, unitaImmobiliari, spese, spesaSubentroUscente, spesaSubentroEntrante, saldoSoggettoUscente).OrderBy(item => item.Ordine); spese = new List<CalcoloSubentroDTO>(spese.OrderBy(item => item.OrdineConto).ToList()); foreach (var item in riepilogo) spese.Add(new CalcoloSubentroDTO { IdConto = 0, Descrizione = item.Descrizione, OrdineConto = item.Ordine, Key = item.Key, ImportoSoggettoEntrante = item.ImportoEntrante, ImportoSoggettoUscente = item.ImportoUscente }); return spese; }
public string GetModuloPDF(CondominioDTO condominio, int anno, string nomeFile, FornitoreListaDTO fornitoreModello770, DateTime dataDichiarazione, int? numeroIscrizioneCaf, bool intermediarioDichiarazioneCondominio, bool enteDichiarante, PersonaDTO firmatarioDichiarazione, PersonaDTO intermediarioDichiarazione) { if(condominio != null) { int? idFornitore = null; if (fornitoreModello770 != null) idFornitore = fornitoreModello770.ID; var result = GetServiceClient().GetModello770PDF(condominio.ID, anno, idFornitore, dataDichiarazione, numeroIscrizioneCaf, intermediarioDichiarazioneCondominio, enteDichiarante, firmatarioDichiarazione, intermediarioDichiarazione, GetUserInfo()); if (string.IsNullOrEmpty(result.Message)) { var doc = new DocumentInfo { Body = result.FileBody, FileName = nomeFile }; _manageDocumentService.Open(doc, "Modello 770", false, MergeFieldType.Default); } CloseService(); return result.Message; } return "Non è stato scelto nessun condominio"; }
public ListaMessaggiUC(PersonaDTO persona, IReloadControl control) { InitializeComponent(); if (persona != null) { _persona = persona; System.Collections.IDictionary args = new System.Collections.Specialized.ListDictionary(); args.Add("currentUser", Login.Instance.CurrentLogin().LoginName); var prop = new CustomControlProperties { AllowUpdate = DefaultableBoolean.True, AllowDelete = DefaultableBoolean.True }; lista.Tag = prop; var propVerifica = new CustomControlProperties {AlwaysEnable = true}; btnElaboraInfoMessaggi.Tag = propVerifica; } }
public bool LoadData(CondominioDTO condominio, EsercizioDTO esercizio, DateTime dataSubentro, PersonaDTO personaUscente, PersonaDTO personaEntrante, int idUnitaImmobiliarePrincipale, List<UnitaImmobiliareListaDTO> unitaImmobiliari, TipoSoggetto tipoSubentro) { _condominio = condominio; _esercizio = esercizio; _dataSubentro = dataSubentro; _personaUscente = personaUscente; _personaEntrante = personaEntrante; _idUnitaImmobiliarePrincipale = idUnitaImmobiliarePrincipale; _unitaImmobiliari = unitaImmobiliari; _tipoSubentro = tipoSubentro; calcoloSubentro(); rataSoggettoDTOBindingSource.DataSource = getSubentroService().GetRate(_esercizio, _personaUscente, _unitaImmobiliari); calcoloRiepilogoSpeseSubentro(); setRiepilogoImporti(); if(listaSpese.DisplayLayout != null) { if (listaSpese.DisplayLayout.Bands[0].Summaries.Count == 0) { DataGridHelper.AddSummary(listaSpese.DisplayLayout.Bands[0], "ImportoSoggettoEntrante", "c"); DataGridHelper.AddSummary(listaSpese.DisplayLayout.Bands[0], "ImportoSoggettoUscente", "c"); DataGridHelper.AddSummary(listaSpese.DisplayLayout.Bands[0], "ImportoTotale", "c"); } if (listaRate.DisplayLayout.Bands[0].Summaries.Count == 0) { DataGridHelper.AddSummary(listaRate.DisplayLayout.Bands[0], "Importo", "c"); DataGridHelper.AddSummary(listaRate.DisplayLayout.Bands[0], "ImportoPagato", "c"); } return true; } return false; }
public void LoadDati(PersonaDTO persona) { try { if (persona != null) { _persona = persona; personaDTOBindingSource.DataSource = _persona; if (_persona.ComuneNascita != null) sceltaComuneCombo.Value = _persona.ComuneNascita.Codice; if (_persona.Sesso != SessoEnum.Undefined) sesso.Value = _persona.Sesso.ToString(); if (_persona.CodiceFiscale != null) codiceFiscale.Text = _persona.CodiceFiscale; } } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Security.Login.Instance.CurrentLogin().Azienda); } }
public ResultCreazioneFile GetModello770(int idCondominio, int idAzienda, int anno, int? idFornitoreModello770, DateTime dataDichiarazione, int? numeroIscrizioneCaf, bool intermediarioDichiarazioneCondominio, PersonaDTO firmatarioDichiarazione, PersonaDTO intermediarioDichiarazione) { byte[] bytes = null; var message = string.Empty; var numeroRecordE = 0; var annoModulo = string.Empty; if (anno > 2009) annoModulo = (anno + 1).ToString(); var modulo = GestioneFiscaleResources.ResourceManager.GetObject("Modello770" + annoModulo + "_frontespizio"); if (modulo != null) { try { var condominio = _daoFactory.GetCondominioDao().GetById(idCondominio, false); // ============================================================================================= // Ritenute da inserire nel modello 770 // ============================================================================================= var ritenute = _ritenutaService.GetByCondominioAnno(idCondominio, idAzienda, anno).OrderBy(item => item.PagamentoRiferimento.Data.GetValueOrDefault()); // ----------------------------------------------------------------- // Raggruppamento per periodo riferimento, tributo, data versamento // ----------------------------------------------------------------- var ritenutePerMese = (from item in ritenute group item by item.GetPeriodoRiferimento(false) + "¥" + item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.CodiceTributo + "¥" + item.GetDataVersamento().GetValueOrDefault().ToShortDateString() into itemPerMese select itemPerMese).ToList(); // ----------------------------------------------------------------- // Raggruppamento per fornitore // ----------------------------------------------------------------- var ritenutePerFornitore = (from item in ritenute group item by item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.ID into itemPerFornitore select itemPerFornitore).ToList(); // --------------------------------------------------------------------- // Fornitori regime minimo // --------------------------------------------------------------------- var listaPagamentiEsentiMinimo = _daoFactory.GetPagamentoDao().GetPagamentiEsentiRegimeMinimo(idAzienda, anno, idCondominio, null); var regimeMinimoPerFornitore = listaPagamentiEsentiMinimo.GroupBy(item => item.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.ID); // ============================================================================================= // Creazione dei moduli // ============================================================================================= // Importi versati in eccesso var importiVersatiInEccesso = ritenute.Where(item => item.Tipo == TipoVersamentoRitenutaEnum.Eccesso).Sum(item => item.Importo.GetValueOrDefault()); // ----------------------------------------------------------------------------- // Frontespizio // ----------------------------------------------------------------------------- string codiceFiscaleFirmatario; string nomeFirmatario; string cognomeFirmatario; var sessoFirmatario = string.Empty; DateTime? dataNascitaFirmatario = null; var comuneNascitaFirmatario = string.Empty; var siglaProvinciaNascitaFirmatario = string.Empty; if (firmatarioDichiarazione != null) { nomeFirmatario = firmatarioDichiarazione.Nome; cognomeFirmatario = firmatarioDichiarazione.Cognome; codiceFiscaleFirmatario = firmatarioDichiarazione.CodiceFiscale; var cf = new CodiceFiscale(); var datiNascita = cf.CalcoloInversoCF(firmatarioDichiarazione.CodiceFiscale); if (datiNascita != null) { sessoFirmatario = datiNascita.GetValueOrDefault().Sesso; dataNascitaFirmatario = datiNascita.GetValueOrDefault().DataNascita; var codiceComuneNascita = datiNascita.GetValueOrDefault().CodiceComune; var comune = _daoFactory.GetComuneDao().GetByCodiceCatastale(codiceComuneNascita); if (comune != null) { comuneNascitaFirmatario = comune.Descrizione; siglaProvinciaNascitaFirmatario = comune.ProvinciaAppartenenza.Codice; } } } else { nomeFirmatario = condominio.Azienda.Amministratore.PersonaRiferimento.Nome; cognomeFirmatario = condominio.Azienda.Amministratore.PersonaRiferimento.Cognome; codiceFiscaleFirmatario = condominio.Azienda.Amministratore.PersonaRiferimento.CodiceFiscale; sessoFirmatario = condominio.Azienda.Amministratore.PersonaRiferimento.Sesso.ToString(); dataNascitaFirmatario = condominio.Azienda.Amministratore.PersonaRiferimento.DataNascita; comuneNascitaFirmatario = condominio.Azienda.Amministratore.PersonaRiferimento.ComuneNascita.Descrizione; siglaProvinciaNascitaFirmatario = condominio.Azienda.Amministratore.PersonaRiferimento.ComuneNascita.ProvinciaAppartenenza.Codice; } string codiceFiscaleIntermediario; if (intermediarioDichiarazione != null) codiceFiscaleIntermediario = intermediarioDichiarazione.CodiceFiscale; else if (intermediarioDichiarazioneCondominio) codiceFiscaleIntermediario = condominio.CodiceFiscale; else codiceFiscaleIntermediario = condominio.Azienda.CodiceFiscale; var datiFrontespizio = new DatiFrontespizio770 { CodiceFiscaleCondominio = condominio.CodiceFiscale, CognomeStudio = condominio.Azienda.Descrizione, CapCondominio = condominio.Indirizzo.Cap, CodiceComuneCondominio = condominio.Indirizzo.Comune.CodiceCatastale, DenominazioneCondominio = condominio.Descrizione, IndirizzoCompletoCondominio = condominio.Indirizzo.GetIndirizzoCompleto(), ProvinciaCondominio = condominio.Indirizzo.Comune.ProvinciaAppartenenza.Codice, ComuneCondominio = condominio.Indirizzo.Comune.Descrizione, CodiceAttivitaCondominio = "970000", NaturaGiuridicaCondominio = "51", SituazioneCondominio = "6", StatoCondominio = "1", ImpegnoPresentazione = "2", CapStudio = condominio.Azienda.IndirizzoSede.Cap, CivicoStudio = condominio.Azienda.IndirizzoSede.Civico, ComuneStudio = condominio.Azienda.IndirizzoSede.Comune.Descrizione, IndirizzoStudio = condominio.Azienda.IndirizzoSede.Indirizzo, TipoIndirizzoStudio = "VIA", LocalitaStudio = condominio.Azienda.IndirizzoSede.Localita, NomeStudio = string.Empty, CodiceFiscaleStudio = condominio.Azienda.CodiceFiscale, CodiceComuneStudio = condominio.Indirizzo.Comune.CodiceCatastale, CodiceFiscaleAmministratore = codiceFiscaleFirmatario, CognomeAmministratore = cognomeFirmatario, NomeAmministratore = nomeFirmatario, ComuneNascitaAmministratore = comuneNascitaFirmatario, DataNascitaAmministratore = dataNascitaFirmatario.GetValueOrDefault().ToShortDateString(), MaschioAmministratore = sessoFirmatario.ToUpper().StartsWith("M") ? "1" : string.Empty, FemminaAmministratore = sessoFirmatario.ToUpper().StartsWith("F") ? "1" : string.Empty, ProvinciaNascitaAmministratore = siglaProvinciaNascitaFirmatario, CodiceFiscaleIntermediario = codiceFiscaleIntermediario, ImpegnoPresentareDichiarazioneIntermediario = intermediarioDichiarazione != null || intermediarioDichiarazioneCondominio ? "1" : "2", NumeroIscrizioneCaf = numeroIscrizioneCaf == null ? string.Empty : numeroIscrizioneCaf.GetValueOrDefault().ToString(), CodiceCaricaAmministratore = "13", ProvinciaStudio = condominio.Azienda.IndirizzoSede.Comune.ProvinciaAppartenenza.Codice, DataPresentazione = dataDichiarazione.ToShortDateString(), NumeroComunicazioniFornitori = idFornitoreModello770 == null ? (ritenutePerFornitore.Count() + regimeMinimoPerFornitore.Count()).ToString() : string.Empty, PresenzaModelloSS = idFornitoreModello770 == null && ritenute.Any() ? "1" : string.Empty, PresenzaModelloST = idFornitoreModello770 == null && ritenute.Any() ? "1" : string.Empty, PresenzaModelloSV = string.Empty, PresenzaModelloSX = idFornitoreModello770 == null && importiVersatiInEccesso > 0 ? "1" : string.Empty, NonTrasmissioneModelloSTSVSX = !ritenute.Any() ? "2" : string.Empty, PresenzaModello770Ordinario = string.Empty, PresenzaModelloSSLavoratoreAutonomo = idFornitoreModello770 != null ? "1" : string.Empty, PresenzaModelloSTLavoratoreAutonomo = idFornitoreModello770 != null ? "1" : string.Empty, PresenzaModelloSXLavoratoreAutonomo = idFornitoreModello770 != null && importiVersatiInEccesso > 0 ? "1" : string.Empty, PresenzaModelloSYLavoratoreAutonomo = string.Empty, NumeroComunicazioniFornitoriLavoratoreAutonomo = idFornitoreModello770 != null ? (ritenutePerFornitore.Count() + regimeMinimoPerFornitore.Count()).ToString() : string.Empty, CodiceFiscaleFornitore770 = string.Empty }; if(idFornitoreModello770 > 0) { var fornitoreModello770 = _daoFactory.GetFornitoreDao().Find(idFornitoreModello770.GetValueOrDefault(), false); if (fornitoreModello770 != null) datiFrontespizio.CodiceFiscaleFornitore770 = fornitoreModello770.GetCodiceFiscale(); } var moduloFrontespizio = FillForm.FillStream(datiFrontespizio, (byte[])modulo, GestioneFiscaleResources.Modello770Frontespizio_FieldMapping, false, true); // ----------------------------------------------------------------------------- // Dati Fornitori // ----------------------------------------------------------------------------- var index = 0; var moduloFornitori = new List<byte[]>(ritenutePerFornitore.Count() + regimeMinimoPerFornitore.Count()); foreach (var itemGroup in ritenutePerFornitore) { var fornitore = _daoFactory.GetFornitoreDao().GetById(itemGroup.Key, false); index++; var datiFornitore = getDatiFornitore(fornitore, condominio, index); if (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica && int.Parse(fornitore.PersonaRiferimento.ComuneNascita.Codice) > 999201) datiFornitore.ProvinciaNascita = "EE"; // Importi var speseSoggette = _spesaService.GetSoggetteRitenutaByFornitoreCondominioAnno(fornitore, condominio, anno); var compensiSoggetti = speseSoggette.Sum(item => item.GetImponibileRitenutaPagata(anno)); var compensiNonSoggetti = speseSoggette.Sum(item => item.AltreSpese.GetValueOrDefault()); var altreSpeseNonSoggette = speseSoggette.Sum(item => item.SpeseEsentiRitenuta.GetValueOrDefault()); var importoLordoCorrisposto = compensiSoggetti + compensiNonSoggetti + altreSpeseNonSoggette; var altreSommeNonSoggette = compensiNonSoggetti + altreSpeseNonSoggette; datiFornitore.CodiceAltreSommeNonSoggetteARitenuta = (altreSommeNonSoggette > 0) ? "3" : string.Empty; datiFornitore.AltreSommeNonSoggetteARitenuta = (altreSommeNonSoggette > 0) ? altreSommeNonSoggette.ToString() : string.Empty; datiFornitore.AmmontareLordoCorrisposto = Math.Round(importoLordoCorrisposto, 2).ToString(); datiFornitore.Imponibile = Math.Round(compensiSoggetti, 2).ToString(); datiFornitore.Ritenute = Math.Round(itemGroup.Sum(item => item.Importo.GetValueOrDefault()), 2).ToString(); moduloFornitori.Add(FillForm.FillStream(datiFornitore, (byte[])GestioneFiscaleResources.ResourceManager.GetObject("Modello770" + annoModulo + "_fornitore"), GestioneFiscaleResources.Modello770Fornitore_FieldMapping, false, true)); } // Regime minimo // ------------------------------- foreach (var itemGroup in regimeMinimoPerFornitore) { var fornitore = _daoFactory.GetFornitoreDao().GetById(itemGroup.Key, false); index++; var datiFornitore = getDatiFornitore(fornitore, condominio, index); if (fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Fisica && int.Parse(fornitore.PersonaRiferimento.ComuneNascita.Codice) > 999201) datiFornitore.ProvinciaNascita = "EE"; // Importi var speseSoggette = itemGroup.Select(item => item.ScadenzaRiferimento.SpesaRiferimento).ToList(); var compensiNonSoggetti = speseSoggette.Sum(item => item.GetImponibileRitenutaPagata(anno)); var altreSpeseNonSoggette = speseSoggette.Sum(item => item.SpeseEsentiRitenuta.GetValueOrDefault()); var importoLordoCorrisposto = compensiNonSoggetti + altreSpeseNonSoggette; var altreSommeNonSoggette = compensiNonSoggetti + altreSpeseNonSoggette; datiFornitore.CodiceAltreSommeNonSoggetteARitenuta = (altreSommeNonSoggette > 0) ? "3" : string.Empty; datiFornitore.AltreSommeNonSoggetteARitenuta = (altreSommeNonSoggette > 0) ? altreSommeNonSoggette.ToString() : string.Empty; datiFornitore.AmmontareLordoCorrisposto = Math.Round(importoLordoCorrisposto, 2).ToString(); datiFornitore.Imponibile = string.Empty; datiFornitore.Ritenute = string.Empty; moduloFornitori.Add(FillForm.FillStream(datiFornitore, (byte[])GestioneFiscaleResources.ResourceManager.GetObject("Modello770" + annoModulo + "_fornitore"), GestioneFiscaleResources.Modello770Fornitore_FieldMapping, false, true)); } // --------------------------------------------------------------------- // Quadro ST // --------------------------------------------------------------------- var moduloST = new List<byte[]>(); var datiST = new List<DatiProspettoSTBody770>(); var countRow = 0; foreach (var itemGroup in ritenutePerMese) { countRow++; var keys = itemGroup.Key.Split('¥'); var importoInteressi = itemGroup.Sum(item => item.ImportoInteressi.GetValueOrDefault()); var importoSanzioni = itemGroup.Sum(item => item.ImportoSanzione.GetValueOrDefault()); // Nel calcolo dell'importo delle ritenute operate NON devono essere compresi gli importi versate due volte // http://www.condominioweb.com/forum/f17/errore-versamenti-ritenute-con-ff24-12097/ var importo = itemGroup.Where(item => item.Tipo == TipoVersamentoRitenutaEnum.Normale).Sum(item => item.Importo.GetValueOrDefault()); var importoRitenute = Math.Round(importo, 2); // Nel calcolo dell'importo delle ritenute versate DEVONO essere compresi gli importi versati in eccesso importo = itemGroup.Sum(item => item.ImportoConInteressi); var importoVersato = Math.Round(importo, 2); var datiProspettoST = new DatiProspettoSTBody770 { AnnoRiferimento = keys[0].Substring(2, 4), MeseRiferimento = keys[0].Substring(0, 2), CodiceTributo = keys[1], RitenuteOperate = importoRitenute > 0 ? importoRitenute.ToString() : string.Empty, Interessi = (importoInteressi > 0) ? Math.Round(importoInteressi, 2).ToString() : string.Empty, Ravvedimento = (importoInteressi > 0 || importoSanzioni > 0) ? "1" : string.Empty, ImportoVersato = importoVersato.ToString(), DataVersamento = keys[2] }; datiST.Add(datiProspettoST); if (countRow == 12) { numeroRecordE++; var datiSTHeader = new DatiProspettoSTHeader770 { CodiceFiscaleCondominio = condominio.CodiceFiscale, NumeroModello = numeroRecordE.ToString().PadLeft(2, '0'), }; var precompilato = FillForm.FillStream(datiSTHeader, (byte[])GestioneFiscaleResources.ResourceManager.GetObject("Modello770" + annoModulo + "_ST"), GestioneFiscaleResources.Modello770STHeader_FieldMapping, true, true); moduloST.Add(FillForm.FillStream(datiST.ToArray(), precompilato, GestioneFiscaleResources.Modello770STBody_FieldMapping, false, true)); countRow = 0; datiST.Clear(); } } if (datiST.Count > 0) { numeroRecordE++; var datiSTHeader = new DatiProspettoSTHeader770 { CodiceFiscaleCondominio = condominio.CodiceFiscale, NumeroModello = numeroRecordE.ToString().PadLeft(2, '0'), }; var precompilato = FillForm.FillStream(datiSTHeader, (byte[])GestioneFiscaleResources.ResourceManager.GetObject("Modello770" + annoModulo + "_ST"), GestioneFiscaleResources.Modello770STHeader_FieldMapping, true, true); moduloST.Add(FillForm.FillStream(datiST.ToArray(), precompilato, GestioneFiscaleResources.Modello770STBody_FieldMapping, false, true)); } // --------------------------------------------------------------------- // Quadro SX - Riepilogo dei crediti e delle compensazioni // --------------------------------------------------------------------- byte[] moduloSX = null; if (importiVersatiInEccesso > 0) { var datiSX = new DatiProspettoSX770 { CodiceFiscaleCondominio = condominio.CodiceFiscale, NumeroModello = "0001", CreditoCompensazione = Math.Round(importiVersatiInEccesso, 2).ToString(), ImportoRitenuteVersateEccesso = Math.Round(importiVersatiInEccesso, 2).ToString(), RiepilogoCreditoCompensazione = Math.Round(importiVersatiInEccesso, 2).ToString() }; moduloSX = FillForm.FillStream(datiSX, (byte[])GestioneFiscaleResources.ResourceManager.GetObject("Modello770" + annoModulo + "_SX"), GestioneFiscaleResources.Modello770SX_FieldMapping, false, true); } // --------------------------------------------------------------------- // Quadro SS - Dati riassuntivi // --------------------------------------------------------------------- byte[] moduloSS = null; var importoRitenuteVersate = ritenute.Sum(item => item.Importo.GetValueOrDefault()); if (importoRitenuteVersate != 0) { var datiSS = new DatiProspettoSS770 { CodiceFiscaleCondominio = condominio.CodiceFiscale, NumeroModello = "01", ImportoRitenute = Math.Round(importoRitenuteVersate, 2).ToString() }; moduloSS = FillForm.FillStream(datiSS, (byte[])GestioneFiscaleResources.ResourceManager.GetObject("Modello770" + annoModulo + "_SS"), GestioneFiscaleResources.Modello770SS_FieldMapping, false, true); } // ============================================================================================= // Merge dei moduli // ============================================================================================= var stream = new MemoryStream(); var doc = new PdfMerge(); // frontespizio doc.AddDocument(moduloFrontespizio); // fornitore foreach (var item in moduloFornitori) doc.AddDocument(item); // quadro ST foreach (var item in moduloST) doc.AddDocument(item); // quadro SX if (moduloSX != null) doc.AddDocument(moduloSX); // quadro SS if (moduloSS != null) doc.AddDocument(moduloSS); doc.Merge(stream, true); bytes = new byte[stream.Length]; stream.Seek(0, SeekOrigin.Begin); stream.Read(bytes, 0, bytes.Length); stream.Close(); return new ResultCreazioneFile(bytes, message); } catch (Exception ex) { _log.Fatal("Errore inaspettato durante la creazione del file per il modello 770 -" + Library.Utility.GetMethodDescription() + " - condominio:" + idCondominio + " - anno:" + anno, ex); message = "Si sono verificati problemi inaspettati durante la generazione del modello 770." + Environment.NewLine + "Controllare il log per ulteriori dettagli."; return new ResultCreazioneFile(bytes, message); } } return new ResultCreazioneFile(null, "Il modulo per l'anno " + annoModulo + " non è ancora disponibile"); }
public IList<CalcoloSubentroDTO> GetCalcoloSubentro(int idCondominio, DateTime data, PersonaDTO personaEntrante, int idPersonaUscente, int idUnitaImmobiliarePrincipale, IList<int> unitaImmobiliari, TipoSoggetto tipoSubentro, TipoRendiconto tipoRendiconto) { var calcolo = new List<CalcoloSubentroDTO>(); try { var condominio = _daoFactory.GetCondominioDao().GetById(idCondominio, false); var esercizioCorrente = _daoFactory.GetEsercizioDao().GetEsercizioCompetenza(condominio, data); if (esercizioCorrente != null) { // Confermo temporaneamente il subentro per poter leggere gli importi corretti dal rendiconto var esitoSubentroDomain = Conferma(idCondominio, idPersonaUscente, personaEntrante, idUnitaImmobiliarePrincipale, unitaImmobiliari, data, new List<CalcoloSubentroDTO>(), new List<RataSoggettoSubentroDTO>(), string.Empty, string.Empty, 0, 0, tipoSubentro, tipoRendiconto, false, null); if (esitoSubentroDomain.Subentro != null) _daoFactory.GetSubentroDao().SaveOrUpdate(esitoSubentroDomain.Subentro); // ------------------------------------------- // Recupero lista con id dei soggetti // ------------------------------------------- var soggetti = _daoFactory.GetSoggettoCondominioDao().GetByCondominioPersona(idCondominio, idPersonaUscente).ToList(); var idPersonaEntrante = esitoSubentroDomain.EsitoSubentro.IdPersona.GetValueOrDefault(); soggetti.AddRange(_daoFactory.GetSoggettoCondominioDao().GetByCondominioPersona(idCondominio, idPersonaEntrante)); var idSoggetti = new List<int>(soggetti.Count); idSoggetti.AddRange(from soggetto in soggetti where unitaImmobiliari.Contains(soggetto.UnitaImmobiliare.ID) select soggetto.ID); // ------------------------------------------- // Decodifico il rendiconto sul quale devono basarsi i calcoli // ------------------------------------------- IEnumerable<ReportRipartizioneBilancioDTO> rendicontoRiferimento = null; switch (tipoRendiconto) { case TipoRendiconto.Consuntivo: rendicontoRiferimento = _bilancioService.GetDataSourceRipartizioneBilancioConsuntivo(esercizioCorrente.ID, null, null, null, null, null, null, true, false, TipoAccorpamentoRateEnum.Nessuno, false, true, false, false, null); break; case TipoRendiconto.Preventivo: rendicontoRiferimento = _bilancioService.GetDataSourceRipartizioneBilancioPreventivo(esercizioCorrente.ID, null, null, true, false, TipoAccorpamentoRateEnum.Nessuno, false, false, false, true, false, null); break; } if (rendicontoRiferimento != null) { // ------------------------------------------- // Decodifico il tipo di subentro // ------------------------------------------- var codiceTipoSubentro = string.Empty; switch (tipoSubentro) { case TipoSoggetto.Proprietario: codiceTipoSubentro = "PROP"; break; case TipoSoggetto.Conduttore: codiceTipoSubentro = "COND"; break; } // ------------------------------------------- // Elaboro il rendiconto // ------------------------------------------- var righeRendiconto = from item in rendicontoRiferimento where idSoggetti.Contains(item.IdPartecipante) && item.Importo != null && item.IdConto > 0 select item; if (tipoSubentro == TipoSoggetto.Conduttore && soggetti.Any(item => item.Tipo == TipoSoggetto.Proprietario)) righeRendiconto = righeRendiconto.Where(item => item.TipoNominativo == codiceTipoSubentro); var rendicontoPerConto = righeRendiconto.GroupBy(item => item.IdConto); foreach (var item in rendicontoPerConto) { try { var conto = _daoFactory.GetContoDao().GetById(item.Key, false); var rigaUscente = item.FirstOrDefault(riga => riga.IdPersona == idPersonaUscente); var rigaEntrante = item.FirstOrDefault(riga => riga.IdPersona == idPersonaEntrante); var giorniCompetenzaUscente = 0; var giorniCompetenzaEntrante = 0; if (rigaUscente != null) giorniCompetenzaUscente = rigaUscente.GiorniCompetenza.GetValueOrDefault(); if (rigaEntrante != null) giorniCompetenzaEntrante = rigaEntrante.GiorniCompetenza.GetValueOrDefault(); int giorniComplessivi = giorniCompetenzaEntrante + giorniCompetenzaUscente; if (giorniComplessivi > 0) { // calcolo importi var importoUscente = item.Where(riga => riga.IdPersona == idPersonaUscente).Sum(riga => riga.Importo.GetValueOrDefault()); var importoEntrante = item.Where(riga => riga.IdPersona == idPersonaEntrante).Sum(riga => riga.Importo.GetValueOrDefault()); var dettaglioCalcolo = new CalcoloSubentroDTO { Key = "CONTO", Codice = conto.Codice, Descrizione = conto.Descrizione, GiorniEntrante = giorniCompetenzaEntrante, GiorniUscente = giorniCompetenzaUscente, IdConto = conto.ID, OrdineConto = conto.Ordine, ImportoSoggettoEntrante = importoEntrante, ImportoSoggettoUscente = importoUscente }; if (conto.IsSpesePersonali) { const string hql = "FROM SpeseUnita SP WHERE SP.MovimentoRiferimento.Testata.EsercizioRiferimento = :esercizio AND SP.MovimentoRiferimento.ContoRiferimento = :conto AND SP.UnitaRiferimento.ID IN (:unitaImmobiliari)"; var spese = _daoFactory.GetSpeseUnitaDao().GetByQuery(hql, new QueryParam("esercizio", esercizioCorrente), new QueryParam("conto", conto), new QueryParam("unitaImmobiliari", unitaImmobiliari)); foreach (var spesa in spese) { var importo = _ripartizioneSpeseService.GetImportoCompetenza(spesa, tipoSubentro, null, null); var importoSpesaUscente = importo; var dettaglioSpesa = new CalcoloSubentroDettaglioDTO { AssegnareAEntrante = false, AssegnareAUscente = false, Descrizione = spesa.MovimentoRiferimento.GetDescrizione(), ImportoSoggettoEntrante = null, ImportoSoggettoUscente = importoSpesaUscente, ImportoSpesa = importo, CodiceTestataMovimento = spesa.MovimentoRiferimento.Testata.ID }; if (spesa.MovimentoRiferimento.DettaglioRiferimento != null) { dettaglioSpesa.CodiceSpesa = spesa.MovimentoRiferimento.DettaglioRiferimento.SpesaRiferimento.ID; dettaglioSpesa.NumeroFattura = spesa.MovimentoRiferimento.DettaglioRiferimento.SpesaRiferimento.NumeroDocumento; dettaglioSpesa.DataFattura = spesa.MovimentoRiferimento.DettaglioRiferimento.SpesaRiferimento.DataDocumento; dettaglioSpesa.Fornitore = spesa.MovimentoRiferimento.DettaglioRiferimento.SpesaRiferimento.FornitoreRiferimento.DisplayName; } dettaglioCalcolo.Dettaglio.Add(dettaglioSpesa); } } calcolo.Add(dettaglioCalcolo); } } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nella elaborazione del rendiconto per il calcolo del subentro - {0} - condominio:{1} - conto:{2}", ex, Utility.GetMethodDescription(), idCondominio, item.Key); throw; } } } } } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nel calcolo del subentro - {0} - condominio:{1}", ex, Utility.GetMethodDescription(), idCondominio); throw; } return calcolo; }
/// <summary> /// Conferma del subentro. /// Se la persona entrante è null si tratta di un subentro di conduzione in cui l'appartamento rimane sfitto /// </summary> /// <param name="idCondominio">Condominio in cui è avvenuto il subentro</param> /// <param name="idUscente">Soggetto Uscente</param> /// <param name="entrante">Soggetto Entrante</param> /// <param name="idUnitaImmobiliarePrincipale">Unità immobiliare principale</param> /// <param name="idUnitaImmobiliari">Unità immobiliari per le quali è avvenuto il subentro</param> /// <param name="data">Data del subentro</param> /// <param name="spese">Spese di competenza tra uscente e entrante</param> /// <param name="rate">Rate eventualmente modficare</param> /// <param name="testoLettera"></param> /// <param name="speseUscente"></param> /// <param name="speseEntrante"></param> /// <param name="tipoSubentro">Tipo di subentro</param> /// <param name="tipoRendiconto">Rendiconto sul quale di basano i calcoli del subentro</param> /// <param name="oggettoLettera">Oggetto della lettera di subentro</param> /// <param name="spostamentoSaldi">Identifica se deve essere eseguito il trasferimento automatico dei saldi e delle rate</param> /// <param name="logTransazione">Log della transazione per permettere il salvataggio tramite cascade</param> /// <returns>Esito del subentro</returns> public EsitoSubentroDomain Conferma(int idCondominio, int idUscente, PersonaDTO entrante, int idUnitaImmobiliarePrincipale, IList<int> idUnitaImmobiliari, DateTime data, IList<CalcoloSubentroDTO> spese, IList<RataSoggettoSubentroDTO> rate, string oggettoLettera, string testoLettera, decimal speseUscente, decimal speseEntrante, TipoSoggetto tipoSubentro, TipoRendiconto tipoRendiconto, bool spostamentoSaldi, LogTransazione logTransazione) { try { var fatalMessage = string.Empty; var warnMessage = string.Empty; var condominio = _daoFactory.GetCondominioDao().GetById(idCondominio, false); var esercizio = _daoFactory.GetEsercizioDao().GetEsercizioCompetenza(condominio, data); if(esercizio == null) return new EsitoSubentroDomain(new EsitoSubentro(null, null, "La data del subentro non è corretta, verificare che sia aperto l'esercizio di competenza", null,null), null); // ========================================================================== // Persone // ========================================================================== Persona personaEntrante = null; if (entrante != null) { // se l'ID è correttamente valorizzato è stata scelta una persona già presente in anagrafica personaEntrante = entrante.ID > 0 ? _daoFactory.GetPersonaDao().GetById(entrante.ID, false) : _personaService.SetNew(entrante); } // ========================================================================== // Subentro // ========================================================================== var subentro = new GestioneCondomini.Domain.Subentro( condominio, data, tipoSubentro, oggettoLettera, testoLettera, speseUscente, speseEntrante, spostamentoSaldi, logTransazione ) { SaldoUscente = _saldiCondominiService.GetSaldoByPersonaUnitaImmobiliari(esercizio.ID, new List<int> { idUscente }, idUnitaImmobiliari, true) }; // ========================================================================== // Registro i nuovi condomini // ========================================================================== SoggettoCondominio soggettoEntrantePrincipale = null; SoggettoCondominio soggettoUscentePrincipale = null; SoggettoCondominio proprietarioPrincipale = null; foreach (var idUnitaImmobiliare in idUnitaImmobiliari) { // ----------------------------- // Soggetto Entrante // ----------------------------- var unita = _daoFactory.GetUnitaImmobiliareDao().GetById(idUnitaImmobiliare, false); var proprietario = unita.GetProprietarioPrincipale(esercizio.DataChiusura); SoggettoCondominio soggettoEntrante = null; ISet<SoggettoCondominio> soggetti = null; switch (tipoSubentro) { case TipoSoggetto.Conduttore: if (personaEntrante != null) soggettoEntrante = new Conduttore(unita, personaEntrante); soggetti = unita.Conduttori; break; case TipoSoggetto.Proprietario: if (personaEntrante != null) soggettoEntrante = new Proprietario(unita, personaEntrante); soggetti = unita.Proprietari; break; case TipoSoggetto.Soggetto: if (personaEntrante != null) soggettoEntrante = new SoggettoCondominio(unita, personaEntrante); soggetti = unita.Soggetti; break; } if (soggettoEntrante != null) soggettoEntrante.IsResidente = _soggettoService.IsResidente(soggettoEntrante); // ----------------------------- // Soggetto Uscente // ----------------------------- // Nel caso di subentro di conduzione se il conduttore non è presente il soggetto // uscente è il proprietario. // ----------------------------- SoggettoCondominio soggettoUscente = null; var soggettiUscenti = soggetti.Where(item => item.Persona.ID == idUscente).ToList(); if (soggettiUscenti.Count > 0) { if (soggettiUscenti.Count > 1) { _log.WarnFormat("Trovati più di un soggetto con la stessa persona anagrafica - PROPRIETARIO - {0} - unità immobiliare:{1} - condominio:{2} - uscente:{3} - entrante:{4}", Utility.GetMethodDescription(), unita?.ID.ToString(CultureInfo.InvariantCulture) ?? "<NULL>", idCondominio, idUscente, entrante != null ? entrante.DisplayName : "<NULL>"); } soggettoUscente = soggettiUscenti.FirstOrDefault(); } if (soggettoUscente != null) soggettoUscente.DataFine = data; else if (tipoSubentro == TipoSoggetto.Conduttore) { soggettiUscenti = unita.Proprietari.Where(item => item.Persona.ID == idUscente).ToList(); if (soggettiUscenti.Count > 0) { if (soggettiUscenti.Count > 1) { _log.WarnFormat("Trovati più di un soggetto con la stessa persona anagrafica - CONDUTTORE - {0} - unità immobiliare:{1} - condominio:{2} - uscente:{3} - entrante:{4}", Utility.GetMethodDescription(), unita?.ID.ToString(CultureInfo.InvariantCulture) ?? "<NULL>", idCondominio, idUscente, entrante != null ? entrante.DisplayName : "<NULL>"); } soggettoUscente = soggettiUscenti.FirstOrDefault(); } } // soggettoEntrante = null l'unità immobiliare è rimasta sfitta if (soggettoEntrante != null) { soggettoEntrante.DataInizio = data; if (soggettoUscente != null) { soggettoEntrante.PercentualeRiferimento = soggettoUscente.PercentualeRiferimento; soggettoEntrante.Principale = soggettoUscente.Principale; } else { soggettoEntrante.PercentualeRiferimento = 1m; soggettoEntrante.Principale = true; } _daoFactory.GetSoggettoCondominioDao().SaveOrUpdate(soggettoEntrante); } else soggettoEntrante = proprietario; // ----------------------------- // Unità Immobiliare // ----------------------------- var subentroUnita = new SubentroUnitaImmobiliare(subentro, unita, soggettoEntrante, soggettoUscente); if (unita.ID == idUnitaImmobiliarePrincipale) { subentroUnita.Principale = true; soggettoUscentePrincipale = soggettoUscente; soggettoEntrantePrincipale = soggettoEntrante; proprietarioPrincipale = proprietario; } //------------------------------------- // Se presenti accorpamenti li annullo //------------------------------------- if (soggettoUscente != null && soggettoUscente.SoggettiCollegati.Count > 0) { warnMessage = string.Format("Il soggetto uscente aveva degli accorpamenti di rate configurati.{0}Gli accorpamenti sono stati eliminati.{0}", Environment.NewLine); foreach (var soggettoCondominio in soggettoUscente.SoggettiCollegati) soggettoCondominio.SoggettoPrincipale = null; soggettoUscente.SoggettiCollegati.Clear(); } unita.Descrizione = _daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(unita); } //-------------------------------- // Dettagli //-------------------------------- foreach(var calcoloSubentro in spese) { // Uscente // ------------- var dettaglioSubentroUscente = new DettaglioSubentro(subentro, _daoFactory.GetContoDao().GetById(calcoloSubentro.IdConto, false), soggettoUscentePrincipale, calcoloSubentro.ImportoSoggettoUscente, calcoloSubentro.GiorniUscente.Value, TipoDettaglioSubentro.Uscente); // Entrante // ------------- var dettaglioSubentroEntrante = new DettaglioSubentro(subentro, _daoFactory.GetContoDao().GetById(calcoloSubentro.IdConto, false), soggettoEntrantePrincipale, calcoloSubentro.ImportoSoggettoEntrante, calcoloSubentro.GiorniEntrante.Value, TipoDettaglioSubentro.Entrante); } // ========================================================================== // Rate // ========================================================================== string descrizione; if(soggettoUscentePrincipale != null) descrizione = "Subentro: " + soggettoUscentePrincipale.DisplayName + " - " + soggettoEntrantePrincipale.DisplayName; else descrizione = "Subentro: " + proprietarioPrincipale.DisplayName + " - " + soggettoEntrantePrincipale.DisplayName; var listaRateDaEmettere = new Dictionary<DateTime, Dictionary<int, RataSoggettoDTO>>(); foreach (var rataSubentro in rate) { var rata = _daoFactory.GetRataSoggettoDao().GetById(rataSubentro.ID, false); // ---------------------------------------------------------- // Cancellazione o richiamo rata originale // ---------------------------------------------------------- if (rataSubentro.Eliminare || rataSubentro.AssegnareAEntrante) fatalMessage += _rateService.EliminazioneRataSoggetto(rata, descrizione); // ---------------------------------------------------------- // Modifica importo rata // ---------------------------------------------------------- else if (rataSubentro.Importo != rata.Importo) { var rataAggiornamento = new RataSoggettoAggiornamentoDTO { DataScadenza = rata.DataScadenza, Id = rata.ID, IdEsercizio = rata.Esercizio.ID, IdSoggettoCondominio = rata.Soggetto.ID, Importo = rataSubentro.Importo }; IList<RataSoggettoAggiornamentoDTO> rateAggiornamento = new List<RataSoggettoAggiornamentoDTO>(1); rateAggiornamento.Add(rataAggiornamento); _rateService.AggiornaImporti(rateAggiornamento, false, TipoAccorpamentoRateEnum.Nessuno, logTransazione); } // ---------------------------------------------------------- // Creazione nuova rata da emettere // ---------------------------------------------------------- if (rataSubentro.AssegnareAEntrante) { Dictionary<int, RataSoggettoDTO> listaRate; if (listaRateDaEmettere.ContainsKey(rata.DataScadenza)) listaRate = listaRateDaEmettere[rata.DataScadenza]; else { listaRate = new Dictionary<int, RataSoggettoDTO>(); listaRateDaEmettere.Add(rata.DataScadenza, listaRate); } if (rataSubentro.AssegnareAEntrante) addRataDaEmettere(soggettoEntrantePrincipale, esercizio, rata, listaRate, rataSubentro.Importo); } } fatalMessage += _rateService.CreazioneRateFuoriPreventivo(esercizio, listaRateDaEmettere, true, descrizione, logTransazione); // ========================================================================== // Spostamento saldi // - Solo se il tipo di subentro corrisponde con con il tipo di soggetto uscente // ========================================================================== if (spostamentoSaldi && soggettoUscentePrincipale.Tipo == tipoSubentro) { var messageSpostamento = SpostamentoSaldi(subentro); if (!string.IsNullOrEmpty(messageSpostamento.FatalMessage)) fatalMessage += messageSpostamento.FatalMessage; if (!string.IsNullOrEmpty(messageSpostamento.WarnMessage)) warnMessage += messageSpostamento.WarnMessage; } int? idPersonaEntrante = null; if (personaEntrante != null) idPersonaEntrante = personaEntrante.ID; // ========================================================================== // Leggo le eventuali ripartizioni personalizzate // ========================================================================== var soggettiRipartizione = _daoFactory.GetSoggettoCondominioRipartizioneDao().GetBySoggetto(soggettoUscentePrincipale.ID); var soggettiRipartizioneDto = new List<SoggettoCondominioRipartizioneDTO>(soggettiRipartizione.Count); soggettiRipartizioneDto.AddRange(soggettiRipartizione.Select(item => new SoggettoCondominioRipartizioneDTO { ID = item.ID, DescrizioneConto = item.Conto.Descrizione, IdConto = item.Conto.ID, DescrizioneSoggetto = item.Soggetto.DisplayName, IdSoggetto = item.Soggetto.ID, IdUnitaImmobiliare = item.Soggetto.UnitaImmobiliare.ID, PercentualeRipartizione = item.PercentualeRipartizione, DirittoReale = (item.Soggetto.DirittoReale != null) ? item.Soggetto.DirittoReale.GetValueOrDefault().ToString() : string.Empty, Tipo = item.Soggetto.Tipo })); var esitoSubentro = new EsitoSubentro(idPersonaEntrante, subentro.ID, fatalMessage, warnMessage, soggettiRipartizioneDto); return new EsitoSubentroDomain(esitoSubentro, subentro); } catch (Exception ex) { _log.ErrorFormat("Errore durante la conferma del subentro - {0} - idCondominio:{1} - idUscente:{2} - entrante:{3}", ex, Utility.GetMethodDescription(), idCondominio, idUscente, entrante != null ? entrante.DisplayName : "<NULL>"); throw; } }
static ContattiPersona getContatti(PersonaDTO persona) { var contatti = new ContattiPersona( getContatto("TELEFONO", persona.Contatti), getContatto("CELLULARE", persona.Contatti), getContatto("EMAIL", persona.Contatti), getContatto("EMAILCERT", persona.Contatti) ); return contatti; }
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; }
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 PersonaDTO setDto(Persona item) { if(item != null) { var dto = new PersonaDTO { ID = item.ID, Abi = item.Abi, Cab = item.Cab, Cin = item.Cin, Iban = item.Iban, CodiceFiscale = item.CodiceFiscale, Cognome = item.Cognome, ContoCorrente = item.ContoCorrente, DataNascita = item.DataNascita, DisplayName = item.DisplayName, Nome = item.Nome, Note = item.Note, PartitaIva = item.PartitaIva, RagioneSociale = item.RagioneSociale, Sesso = item.Sesso, TipoPersona = item.TipoPersona, Titolo = item.Titolo, IndirizzoResidenza = item.IndirizzoResidenza != null ? _locRep.GetAddressByDomainEntity(item.IndirizzoResidenza) : new AddressDTO(), Domicilio = item.Domicilio != null ? _locRep.GetAddressByDomainEntity(item.Domicilio) : new AddressDTO(), Recapito = item.Recapito != null ? _locRep.GetAddressByDomainEntity(item.Recapito) : new AddressDTO(), Username = item.DatiAutenticazione?.Username, Password = item.DatiAutenticazione?.Password, Version = item.Version }; if (!string.IsNullOrEmpty(item.IndirizzoResidenza?.Presso)) dto.DisplayName = $"{dto.DisplayName}{Environment.NewLine}c/o {item.IndirizzoResidenza.Presso}"; else if (!string.IsNullOrEmpty(item.Domicilio?.Presso)) dto.DisplayName = $"{dto.DisplayName}{Environment.NewLine}c/o {item.Domicilio.Presso}"; if (item.ComuneNascita != null) dto.ComuneNascita = _locRep.GetComuneByDomainEntity(item.ComuneNascita); if (item.AziendaID != null) dto.Azienda = item.AziendaID.Value; var contatti = new ContattoDTO[item.Contatti.Count]; var index = 0; foreach (var contatto in item.Contatti) { contatti[index] = getContattoRepository(item).GetByDomainEntity(contatto); index++; } dto.Contatti = contatti; foreach (var personaGruppo in item.Gruppi) dto.Gruppi.Add(personaGruppo.Gruppo.ID); return dto; } return new PersonaDTO(); }
public int? ManageDomainEntity(PersonaDTO dto) { try { var item = managePersona(dto); return item?.ID; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento della persona - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } }
public PersonaCondomini(string tipoAutenticazione, PersonaDTO persona, ContattiPersona contatti, CondominioDTO condominio, int numeroCondomini, Dictionary<string, string> condomini, string exception) { Persona = persona; Contatti = contatti; Condominio = condominio; TipoAutenticazione = tipoAutenticazione; NumeroCondomini = numeroCondomini; Condomini = condomini; ExceptionMessage = exception; }
static ContattiPersona updateContatti(PersonaDTO persona, ContattiPersona contatti) { var service = new SferaService(); var info = new UserInfo(0, int.Parse(HttpContext.Current.Session["azienda"].ToString())); updateContatto("TELEFONO", persona, contatti.Telefono, service, info); updateContatto("CELLULARE", persona, contatti.Cellulare, service, info); updateContatto("EMAIL", persona, contatti.Email, service, info); updateContatto("EMAILCERT",persona, contatti.EmailCertificata, service, info); return getContatti(persona); }
public List<IdMessage> IsAllowGenerazioneModello770(int idCondominio, int idAzienda, int anno, int? idFornitore770, DateTime dataDichiarazione, PersonaDTO firmatarioDichiarazione, PersonaDTO intermediarioDichiarazione) { try { var idmessage = new List<IdMessage>(); // ============================================================================================= // Amministratore // ============================================================================================= var condominio = _daoFactory.GetCondominioDao().GetById(idCondominio, false); var azienda = condominio.Azienda; if(condominio.Azienda.Amministratore == null) idmessage.Add(new IdMessage(condominio.Azienda.ID, TipoNominativo.Studio, condominio.Azienda.Descrizione, "Non è definito l'amministratore dello studio.")); if (firmatarioDichiarazione != null) { if (string.IsNullOrEmpty(firmatarioDichiarazione.Cognome)) { var message = "Per il firmatario della dichiarazione non è definito il <b>COGNOME/b>" + Environment.NewLine; idmessage.Add(new IdMessage(azienda.ID, TipoNominativo.Studio, azienda.Descrizione, message)); } if (string.IsNullOrEmpty(firmatarioDichiarazione.Nome)) { var message = "Per il firmatario della dichiarazione non è definito il <b>NOME</b>" + Environment.NewLine; idmessage.Add(new IdMessage(azienda.ID, TipoNominativo.Studio, azienda.Descrizione, message)); } if (string.IsNullOrEmpty(firmatarioDichiarazione.CodiceFiscale)) { var message = "Per il firmatario della dichiarazione non è definito il <b>CODICE FISCALE</b>" + Environment.NewLine; idmessage.Add(new IdMessage(azienda.ID, TipoNominativo.Studio, azienda.Descrizione, message)); } } else if (condominio.Azienda.Amministratore != null && condominio.Azienda.Amministratore.PersonaRiferimento == null) idmessage.Add(new IdMessage(condominio.Azienda.ID, TipoNominativo.Studio, condominio.Azienda.Descrizione, "Non sono definite le informazioni anagrafiche dell'amministratore dello studio.")); // ----------------------------------------------------------------- // Controllo soggetto presenta dicharazione per lavoro dipendente // ----------------------------------------------------------------- if (idFornitore770 > 0) { var fornitore = _daoFactory.GetFornitoreDao().Find(idFornitore770.GetValueOrDefault(), false); if (string.IsNullOrEmpty(fornitore.GetCodiceFiscale())) { var message = "Per il soggetto che presenta la dichiarazione relativa ai contributi del dipendente " + fornitore.DisplayName + " non è definito il <b>CODICE FISCALE</b>" + Environment.NewLine; idmessage.Add(new IdMessage(idFornitore770.GetValueOrDefault(), TipoNominativo.Fornitore, fornitore.DisplayName, message)); } } // ============================================================================================= // Ritenute da inserire nel modello 770 // ============================================================================================= var ritenute = _ritenutaService.GetByCondominioAnno(idCondominio, idAzienda, anno); // ----------------------------------------------------------------- // Raggruppamento per fornitore // ----------------------------------------------------------------- var ritenutePerFornitore = from item in ritenute group item by item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.ID into itemPerFornitore select itemPerFornitore; // Controllo fornitori foreach (IGrouping<int, Ritenuta> itemGroup in ritenutePerFornitore) { var message = string.Empty; var fornitore = _daoFactory.GetFornitoreDao().GetById(itemGroup.Key, false); if (fornitore.PersonaRiferimento.IndirizzoResidenza == null) message += "Per il fornitore " + fornitore.DisplayName + " non è presente l'indirizzo." + Environment.NewLine; else if(fornitore.PersonaRiferimento.IndirizzoResidenza.Comune == null) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il comune di residenza." + 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 CODICE FISCALE." + Environment.NewLine; if (fornitore.PersonaRiferimento.TipoPersona == null || fornitore.PersonaRiferimento.TipoPersona.GetValueOrDefault() == TipoPersonaEnum.Undefined) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il tipo di persona (fisica o giuridica)." + 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 COGNOME." + Environment.NewLine; if (string.IsNullOrEmpty(fornitore.PersonaRiferimento.Nome)) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il NOME." + Environment.NewLine; if (fornitore.PersonaRiferimento.Sesso.GetValueOrDefault() == SessoEnum.Undefined) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il SESSO." + Environment.NewLine; if (fornitore.PersonaRiferimento.ComuneNascita == null) message += "Per il fornitore " + fornitore.DisplayName + " non è presente il COMUNE DI NASCITA." + Environment.NewLine; if (fornitore.PersonaRiferimento.DataNascita == null) message += "Per il fornitore " + fornitore.DisplayName + " non è presente la DATA DI NASCITA." + 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 RAGIONE SOCIALE." + Environment.NewLine; } if (!string.IsNullOrEmpty(message)) idmessage.Add(new IdMessage(fornitore.ID, TipoNominativo.Fornitore, fornitore.DisplayName, message)); } return idmessage; } catch (Exception ex) { _log.Fatal("Errore inaspettato durante il controllo di generazione del modello 770 -" + Library.Utility.GetMethodDescription() + " - condominio:" + idCondominio + " - anno:" + anno, ex); throw; } }
private Persona managePersona(PersonaDTO personaDto) { Persona pers = null; bool result; // Controllo sullo stato U, D, I switch (personaDto.Stato.ToUpper()) { case "U": result = update(personaDto, out pers); if (!result) throw new Exception("Il dato sul database è più recente di quello utilizzato"); break; case "I": result = insert(personaDto, out pers); if (!result) throw new Exception("Impossibile scrivere sul database"); break; } return pers; }
static void updateContatto(string tipo, PersonaDTO persona, string valore, SferaService service, UserInfo info) { var dto = persona.Contatti.FirstOrDefault(item => item.TipoContatto.ToUpper() == tipo); if (dto != null) dto.Valore = valore; else dto = new ContattoDTO { TipoContatto = tipo, Valore = valore, CodiceRiferimento = persona.ID}; dto.Stato = "U"; service.SetContatto(dto, info); }
public GestioneCondomini.Domain.Persona SetNew(PersonaDTO personaDto) { var persona = new GestioneCondomini.Domain.Persona(personaDto.TipoPersona, personaDto.Nome, personaDto.Cognome, personaDto.Azienda, true) { Abi = personaDto.Abi, Cab = personaDto.Cab, Cin = personaDto.Cin, CodiceFiscale = personaDto.CodiceFiscale, ContoCorrente = personaDto.ContoCorrente, DataNascita = personaDto.DataNascita, Iban = personaDto.Iban, Note = personaDto.Note, PartitaIva = personaDto.PartitaIva, RagioneSociale = personaDto.RagioneSociale, Sesso = personaDto.Sesso, Titolo = personaDto.Titolo }; if (personaDto.ComuneNascita != null) persona.ComuneNascita = _daoFactory.GetComuneDao().GetById(personaDto.ComuneNascita.ID, false); // Indirizzo if (personaDto.IndirizzoResidenza != null) { var indirizzoResidenza = new Address { Cap = personaDto.IndirizzoResidenza.Cap, Civico = personaDto.IndirizzoResidenza.Civico, Indirizzo = personaDto.IndirizzoResidenza.Indirizzo, Localita = personaDto.IndirizzoResidenza.Localita }; persona.IndirizzoResidenza = indirizzoResidenza; if (!string.IsNullOrEmpty(personaDto.IndirizzoResidenza.CodiceComune)) indirizzoResidenza.Comune = _daoFactory.GetComuneDao().GetById(personaDto.IndirizzoResidenza.CodiceComune, false); } // Contatti if (personaDto.Contatti != null) { foreach (var t in personaDto.Contatti) { Contatto contatto; switch (t.TipoContatto) { case "Email": contatto = new Email(t.Valore, t.Predefinito, persona); break; case "Telefono": contatto = new Telefono(t.Valore, t.Predefinito, persona); break; case "Fax": contatto = new Fax(t.Valore, t.Predefinito, persona); break; case "Cellulare": contatto = new Cellulare(t.Valore, t.Predefinito, persona); break; case "EmailCertificata": contatto = new EmailCertificata(t.Valore, t.Predefinito, persona); break; case "WWW": contatto = new SitoInternet(t.Valore, t.Predefinito, persona); break; default: contatto = new Email(t.Valore, t.Predefinito, persona); break; } contatto.Descrizione = t.Descrizione; persona.Contatti.Add(contatto); } } // Unità Immobiliari var unitaImmobiliari = _daoFactory.GetUnitaImmobiliareDao().GetByPersona(persona.ID); foreach (var unitaImmobiliare in unitaImmobiliari) { unitaImmobiliare.Descrizione = _daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(unitaImmobiliare); } _daoFactory.GetPersonaDao().SaveOrUpdate(persona); // Dati autenticazione (solo ora perchè necessita dell'ID) SetDatiAutenticazione(persona); return persona; }