예제 #1
0
 public void ValidarReferenteEmpresa(EmpresaExternaModel modelo)
 {
     if (modelo.PersonaJuridica != null && modelo.ReferenteEmpresa == null)
     {
         throw new BaseException("No se asigno un referente de la empresa");
     }
 }
예제 #2
0
        public EmpresaExternaModel EmpresaExternaUpdateOrSave(EmpresaExternaModel modelo)
        {
            ValidarEmpresaExternaSave(modelo);
            var empresaExEntidad = DaoEmpresaExterna.GetById(modelo.Id);

            if (modelo.CondicionIva != null)
            {
                var condicionIva = DaoProvider.GetDaoCondicionIva().GetById(modelo.CondicionIva);
                empresaExEntidad.CondicionIva = condicionIva;
            }
            else
            {
                empresaExEntidad.CondicionIva = null;
            }

            empresaExEntidad.Descripcion     = modelo.Descripcion;
            empresaExEntidad.NumeroAnses     = modelo.NumeroAnses;
            empresaExEntidad.NumeroIngBrutos = modelo.NumeroIngBrutos;
            empresaExEntidad.Sucursal        = modelo.Sucursal;
            empresaExEntidad.Observaciones   = modelo.Observaciones;
            if (modelo.FechaCreacion != null)
            {
                empresaExEntidad.FechaCreacion = modelo.FechaCreacion.Value;
            }
            CargarComunicaciones(empresaExEntidad, modelo);
            empresaExEntidad.FechaUltimaActivacion = DateTime.Today;
            var empresaExternaRecuperada = DaoEmpresaExterna.SaveOrUpdate(empresaExEntidad);
            var empresaModel             = Mapper.Map <EmpresaExterna, EmpresaExternaModel>(empresaExternaRecuperada);

            return(empresaModel);
        }
예제 #3
0
 public void ValidarEmpresaExternaSave(EmpresaExternaModel modelo)
 {
     if (!modelo.FechaCreacion.HasValue)
     {
         throw new BaseException("Debe ingresar un valor en fecha creación");
     }
     if (modelo.FechaCreacion.HasValue && modelo.FechaCreacion.Value < DateTime.FromOADate(2))
     {
         throw new BaseException("Valor ingresado en fecha creación tiene un formato invalido");
     }
 }
예제 #4
0
        public EmpresaExternaModel ReactivarEmpresaExterna(EmpresaExternaModel modelo)
        {
            var empresa = DaoEmpresaExterna.GetById(modelo.Id);

            if (empresa.Activo)
            {
                throw new BaseException("La empresa externa seleccionada ya se encuentra activa.");
            }
            empresa.Activo = true;
            empresa.FechaUltimaActivacion = DateTime.Now;
            var empresaExtEntidad = DaoEmpresaExterna.SaveOrUpdate(empresa);

            return(Mapper.Map <EmpresaExterna, EmpresaExternaModel>(empresaExtEntidad));
        }
예제 #5
0
 public void CargarComunicaciones(EmpresaExterna empresaExEntidad, EmpresaExternaModel modelo)
 {
     if (!string.IsNullOrEmpty(modelo.Telefono))
     {
         empresaExEntidad.AddComunicacion(modelo.Telefono, TipoComunicacionEnum.TELEFONO_PRINCIPAL);
     }
     if (!string.IsNullOrEmpty(modelo.Fax))
     {
         empresaExEntidad.AddComunicacion(modelo.Fax, TipoComunicacionEnum.FAX_PRINCIPAL);
     }
     if (!string.IsNullOrEmpty(modelo.Email))
     {
         empresaExEntidad.AddComunicacion(modelo.Email, TipoComunicacionEnum.DIRECCION_DE_CORREO);
     }
 }
예제 #6
0
        public void DeleteEmpresaExterna(EmpresaExternaModel modelo)
        {
            var empresaExternaEntidad = DaoEmpresaExterna.GetById(modelo.Id);

            if (DaoEmpresaExterna.VerificarExistenciaEnPuestoTrabajo(empresaExternaEntidad.Id))
            {
                throw new BaseException("La empresa externa no puede ser eliminada, esta vinculada a un puesto de trabajo Activo");
            }
            if (string.IsNullOrEmpty(modelo.MotivoBaja))
            {
                throw new BaseException("Tiene que ingresar el motivo de la baja");
            }
            empresaExternaEntidad.MotivoBaja = modelo.MotivoBaja;
            empresaExternaEntidad.FechaBaja  = DateTime.Now;
            empresaExternaEntidad.Activo     = false;
            DaoEmpresaExterna.SaveOrUpdate(empresaExternaEntidad);
        }
예제 #7
0
        public EmpresaExternaModel EmpresaExternaSave(EmpresaExternaModel modelo)
        {
            ValidarExistenciaEmpresaExterna(modelo.Nombre);
            ValidarReferenteEmpresa(modelo);
            #region Guardar Persona

            if (modelo.Referente != null)
            {
                var reglaPersona = new PersonaFisicaRules();
                var persona      = reglaPersona.PersonaFisicaSaveOUpdate(modelo.Referente);
                modelo.Referente = persona;
            }

            if (modelo.PersonaJuridica != null)
            {
                var reglaPJ         = new PersonaJuridicaRules();
                var personaJuridica = reglaPJ.PersonaJuridicaSaveOUpdate(modelo.PersonaJuridica);
                modelo.PersonaJuridica = personaJuridica;


                if (modelo.ReferenteEmpresa != null)
                {
                    var reglaPersonaReferente = new PersonaFisicaRules();
                    var personaReferente      = reglaPersonaReferente.PersonaFisicaSaveOUpdate(modelo.ReferenteEmpresa);
                    modelo.ReferenteEmpresa = personaReferente;
                }
                else
                {
                    throw new BaseException("Tiene que ingresar una persona referente a la Empresa");
                }
            }

            #endregion
            var condicionIva = modelo.CondicionIva != null?DaoProvider.GetDaoCondicionIva().GetById(modelo.CondicionIva) : null;

            var empresaEntidad = Mapper.Map <EmpresaExternaModel, EmpresaExterna>(modelo);
            CargarComunicaciones(empresaEntidad, modelo);
            empresaEntidad.CondicionIva = condicionIva;
            empresaEntidad.FechaAlta    = DateTime.Now;
            empresaEntidad.Activo       = true;
            var empresamodelo  = DaoEmpresaExterna.Save(empresaEntidad);
            var modeloDevuelto = Mapper.Map <EmpresaExterna, EmpresaExternaModel>(empresamodelo);
            return(modeloDevuelto);
        }
예제 #8
0
        public void ModificarComunicaciones(EmpresaExterna empresaExEntidad, EmpresaExternaModel modelo)
        {
            for (int j = 0; j < empresaExEntidad.Comunicaciones.Count; j++)
            {
                var tipoCom = empresaExEntidad.Comunicaciones[j].TipoComunicacion;

                if (tipoCom == TipoComunicacionEnum.TELEFONO_PRINCIPAL)
                {
                    if (string.IsNullOrEmpty(modelo.Telefono))
                    {
                        empresaExEntidad.Comunicaciones.RemoveAt(j);
                    }
                    else
                    {
                        empresaExEntidad.Comunicaciones[j].Valor = modelo.Telefono;
                    }
                }

                if (tipoCom == TipoComunicacionEnum.FAX_PRINCIPAL)
                {
                    if (string.IsNullOrEmpty(modelo.Fax))
                    {
                        empresaExEntidad.Comunicaciones.RemoveAt(j);
                    }
                    else
                    {
                        empresaExEntidad.Comunicaciones[j].Valor = modelo.Fax;
                    }
                }

                if (tipoCom == TipoComunicacionEnum.DIRECCION_DE_CORREO)
                {
                    if (string.IsNullOrEmpty(modelo.Email))
                    {
                        empresaExEntidad.Comunicaciones.RemoveAt(j);
                    }
                    else
                    {
                        empresaExEntidad.Comunicaciones[j].Valor = modelo.Email;
                    }
                }
            }
        }