示例#1
0
 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));
        }
示例#4
0
        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);
        }
示例#5
0
        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());
        }
示例#6
0
        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;
        }
示例#7
0
 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);
         }
     }
 }
示例#8
0
        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);
        }
示例#9
0
        public PersonaDTO Get(int id)
        {
            var        query = _services.GetById(id);
            PersonaDTO dtos  = Models.Factory.FactoryPersonaDTO.GetInstance().CreateDTO(query);

            return(dtos);
        }
示例#10
0
        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;
            }
        }
示例#11
0
 //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();
 }
示例#12
0
        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);
            }
        }
示例#13
0
        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);
            }
        }
示例#14
0
        public IList<CondominioDTO> Get(PersonaDTO json)
        {
            var service = new SferaService();
            var info = new UserInfo(0, json.Azienda);

            return service.GetCondominiByPersona(json.ID, info);
        }
示例#15
0
        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);
            }
        }
示例#16
0
        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());
        }
示例#17
0
        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);
            }
        }
示例#18
0
        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);
        }
示例#19
0
 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;
         }
     }
 }
示例#20
0
        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());
        }
示例#21
0
 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)));
 }
示例#22
0
        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());
        }
示例#25
0
 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());
 }
示例#26
0
        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);
            }
        }
示例#27
0
        // [ValidateAntiForgeryToken]
        public async Task <IActionResult> DeleteConfirmed(PersonaDTO personadto)
        {
            var persona = await _personaRepository.GetById(personadto.idPersona);

            await _personaRepository.DeletePersona(personadto.idPersona);

            return(RedirectToAction(nameof(Index)));
        }
示例#28
0
        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));
        }
示例#30
0
        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));
        }
示例#32
0
        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();
        }
示例#33
0
        public int delete(PersonaDTO personaDTO)
        {
            int        retorno    = 0;
            PersonaDAO personaDAO = new PersonaDAO();

            retorno = personaDAO.delete(personaDTO);

            return(retorno);
        }
示例#34
0
        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();
        }
示例#35
0
        public SceltaContattiUI(PersonaDTO persona, ReferenteDTO referente, string modelloLettera)
        {
            InitializeComponent();

            _persona = persona;
            _referente = referente;
            _modelloLettera = modelloLettera;
            inizializza();
        }
示例#36
0
        public frmcambiarclave(PersonaDTO dto)
        {
            InitializeComponent();
            dtousr = dto;

            this.Text    = "Cambiar clave";
            button1.Text = "Confirmar";
            button2.Text = "Cancelar";
        }
示例#37
0
        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));
        }
示例#38
0
        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;
        
        }
示例#40
0
        public string SalvaPersona(PersonaDTO value)
        {
            var service = new SferaService();
            var info = new UserInfo(0, value.Azienda);
            
            value.Stato = "U";
            foreach (var contattoDTO in value.Contatti)
                contattoDTO.Stato = "U";

            var idPersona = service.SetPersona(value, info);
            if (idPersona != null)
                return string.Empty;
            return "Si sono verificati problemi";
        }
示例#41
0
        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 };
        }
示例#42
0
        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";
        }
示例#44
0
        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;
            }
        }
示例#45
0
        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;
        }
示例#46
0
        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");
        }
示例#48
0
        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;
        }
示例#49
0
        /// <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;
            }
        }
示例#50
0
        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;
        }
示例#51
0
        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;
        }
示例#52
0
        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;
        }
示例#53
0
        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();
        }
示例#54
0
 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;
     }
 }
示例#55
0
 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;
 }
示例#56
0
        static ContattiPersona updateContatti(PersonaDTO persona, ContattiPersona contatti)
        {
            var service = new SferaService();
            var info = new UserInfo(0, int.Parse(HttpContext.Current.Session["azienda"].ToString()));

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

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

            dto.Stato = "U";
            service.SetContatto(dto, info);
        }
示例#60
0
        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;
        }