public IHttpActionResult GetEmpresa(int id) { int activo = Convert.ToInt16(BusinessEnumerations.Estatus.ACTIVO); var areaCentroCosto = service.GetAllFlatten <AreaCentroCostoModel>(a => a.CA_ID_AREA == id && a.AD_ESTATUS == activo); var empresaCentro = empresaCentroService.GetAllFlatten <EmpresaCentroModel>().Where(e => areaCentroCosto.Any(ac => ac.EC_ID_REGISTRO == e.EC_ID_REGISTRO)); var empresas = empresaService.GetAllFlatten <EmpresaModel>().Where(e => !empresaCentro.Any(ec => ec.CE_ID_EMPRESA == e.CE_ID_EMPRESA) && e.CE_ESTATUS == activo.ToString()).ToList(); return(Ok(empresas.Select(e => new { CE_ID_EMPRESA = e.CE_ID_EMPRESA, CE_NOMBRE = e.CE_COD_EMPRESA + "-" + e.CE_NOMBRE }))); }
public IHttpActionResult ReporteAreaOperativa([FromBody] AreaOpeEmpresaCenCosto model) { int activo = Convert.ToInt16(BusinessEnumerations.Estatus.ACTIVO); int eliminado = Convert.ToInt16(BusinessEnumerations.Estatus.ELIMINADO); List <CatalogoModel> estatusList = catalagoService.GetAll(c => c.CA_TABLA == "sax_estatus", null, c => c.SAX_CATALOGO_DETALLE).ToList(); List <AreaOperativaModel> ar = areaOperativaService.GetAllFlatten <AreaOperativaModel>(a => a.CA_ESTATUS != eliminado && (model.CA_ID_AREA == 0 ? true : a.CA_ID_AREA == model.CA_ID_AREA)).ToList(); List <AreaCentroCostoModel> acc = areaCentroCostoService.GetAllFlatten <AreaCentroCostoModel>(ac => ac.AD_ESTATUS == activo).ToList(); List <EmpresaCentroModel> ecc = empresaCentroCostoService.GetAllFlatten <EmpresaCentroModel>(empcen => empcen.EC_ESTATUS == activo).ToList(); var result = from areaOperativa in ar join areaCentroCosto in acc on areaOperativa.CA_ID_AREA equals areaCentroCosto.CA_ID_AREA into acGroup from acJoin in acGroup.DefaultIfEmpty() join empresaCentro in ecc on acJoin == null ? 0 : acJoin.EC_ID_REGISTRO equals empresaCentro.EC_ID_REGISTRO into eccGroup from EccJoin in eccGroup.DefaultIfEmpty() where (model.CE_ID_EMPRESA == 0 ? true : EccJoin.CE_ID_EMPRESA == model.CE_ID_EMPRESA) && (model.CC_ID_CENTRO_COSTO == 0 ? true : (EccJoin != null? EccJoin.CC_ID_CENTRO_COSTO == model.CC_ID_CENTRO_COSTO: true)) select new { CA_COD_AREA = areaOperativa.CA_COD_AREA, CA_NOMBRE = areaOperativa.CA_NOMBRE, EMPRESA = NameEmpresa(EccJoin == null? 0:EccJoin.CE_ID_EMPRESA), CENTROCOSTO = NameCentroCosto(EccJoin == null ? 0:EccJoin.CC_ID_CENTRO_COSTO), ESTATUS_TXT = estatusList.FirstOrDefault().SAX_CATALOGO_DETALLE.FirstOrDefault(k => k.CD_ESTATUS == areaOperativa.CA_ESTATUS).CD_VALOR }; if (result == null) { return(NotFound()); } return(Ok(result)); }