public void ValidarReferenteEmpresa(EmpresaExternaModel modelo) { if (modelo.PersonaJuridica != null && modelo.ReferenteEmpresa == null) { throw new BaseException("No se asigno un referente de la empresa"); } }
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); }
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"); } }
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)); }
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); } }
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); }
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); }
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; } } } }