public IHttpActionResult GetReporteCuentaContable([FromUri] ParametrosCuentaContableModel model)
        {
            try
            {
                var dfs = service.Query(cc => cc.CE_ID_EMPRESA == (model.Empresa == null ? cc.CE_ID_EMPRESA : model.Empresa) &&
                                        cc.CO_CUENTA_CONTABLE + cc.CO_COD_AUXILIAR + cc.CO_NUM_AUXILIAR.TrimEnd()

                                        == (model.CuentaContable.TrimEnd() == null ?
                                            cc.CO_CUENTA_CONTABLE + cc.CO_COD_AUXILIAR + cc.CO_NUM_AUXILIAR.TrimEnd() : model.CuentaContable.TrimEnd())
                                        //&& cc.CO_COD_AUXILIAR == (model.CodigoAuxiliar == null ? cc.CO_COD_AUXILIAR : model.CodigoAuxiliar)
                                        && cc.ca_id_area == (model.AreaOperativa == null ? cc.ca_id_area : model.AreaOperativa) &&
                                        cc.CO_COD_NATURALEZA == (model.Naturaleza == null ? cc.CO_COD_NATURALEZA : model.Naturaleza));
                //&& cc.CO_NUM_AUXILIAR == (model.NumeroAuxiliar == null ? cc.CO_NUM_AUXILIAR : model.NumeroAuxiliar));

                if (dfs.Count() == 0)
                {
                    return(BadRequest("No existen registros para la búsqueda solicitada."));
                }
                return(Ok(dfs.ToList().Select(c => new
                {
                    Empresa = NameEmpresa(c.CE_ID_EMPRESA),                                           //empresaService.GetSingle(x=>x.CE_ID_EMPRESA ==c.CE_ID_EMPRESA).CE_NOMBRE,
                    CuentaContable = $"{c.CO_CUENTA_CONTABLE}{c.CO_COD_AUXILIAR}{c.CO_NUM_AUXILIAR}", // c.CO_CUENTA_CONTABLE,
                    NombreCuenta = c.CO_NOM_CUENTA,
                    NombreAuxiliar = c.CO_NOM_AUXILIAR,
                    Concilia = GetConcilia(c.CO_COD_CONCILIA),       //c.CO_COD_CONCILIA,
                    Naturaleza = GetNaturaleza(c.CO_COD_NATURALEZA), //c.CO_COD_NATURALEZA,
                    AreaOperativa = NameAreaOperativa(c.ca_id_area)  //c.CO_COD_AREA
                })));
            }
            catch (Exception ex)
            {
                return(BadRequest("No existen registros para la búsqueda solicitada. " + ex.Message));
            }
        }
        public IHttpActionResult GetCuentaContableByCodEmpresa([FromUri] ParametrosCuentaContableModel model)
        {
            try
            {
                var empresa = empresaService.GetSingle(x => x.CE_COD_EMPRESA == model.CodEmpresa);

                if (empresa == null)
                {
                    return(BadRequest("No existen registros para la búsqueda solicitada."));
                }

                var dfs = service.Query(cc => cc.CE_ID_EMPRESA == empresa.CE_ID_EMPRESA && (cc.CO_CUENTA_CONTABLE + cc.CO_COD_AUXILIAR + cc.CO_NUM_AUXILIAR).Contains(model.CuentaContable == null? (cc.CO_CUENTA_CONTABLE + cc.CO_COD_AUXILIAR + cc.CO_NUM_AUXILIAR): model.CuentaContable.Trim()));
                //var list = dfs.GroupBy(cc => cc.CO_CUENTA_CONTABLE);
                if (dfs.Count() == 0)
                {
                    return(BadRequest("No existen registros para la búsqueda solicitada."));
                }
                return(Ok(dfs.Select(c => new
                {
                    CuentaContable = c.CO_CUENTA_CONTABLE + c.CO_COD_AUXILIAR + c.CO_NUM_AUXILIAR,
                    id = c.CO_ID_CUENTA_CONTABLE
                }).OrderBy(cc => cc.CuentaContable).ToList()));
            }
            catch (Exception ex)
            {
                return(BadRequest("No existen registros para la búsqueda solicitada. " + ex.Message));
            }
        }
        private IQueryable <SAX_CUENTA_CONTABLE> GetDataReporteCuentaContable(ParametrosCuentaContableModel model)
        {
            if (!string.IsNullOrEmpty(model.CuentaContable))
            {
                model.CuentaContable = model.CuentaContable.Trim();
            }
            int activo = Convert.ToInt16(BusinessEnumerations.Estatus.ACTIVO);
            IQueryable <SAX_CUENTA_CONTABLE> dfs = service.Query(cc => cc.CE_ID_EMPRESA == (model.Empresa == null ? cc.CE_ID_EMPRESA : model.Empresa)
                                                                 //&& cc.CO_ID_CUENTA_CONTABLE == (model.idCuentaContable == null ? cc.CO_ID_CUENTA_CONTABLE : model.idCuentaContable)
                                                                 && cc.CO_CUENTA_CONTABLE.Trim() + cc.CO_COD_AUXILIAR.Trim() + cc.CO_NUM_AUXILIAR.Trim() == (model.CuentaContable == null ? cc.CO_CUENTA_CONTABLE + cc.CO_COD_AUXILIAR + cc.CO_NUM_AUXILIAR.Trim() : model.CuentaContable) &&
                                                                 cc.CO_COD_AUXILIAR == (model.CodigoAuxiliar == null ? cc.CO_COD_AUXILIAR : model.CodigoAuxiliar) &&
                                                                 cc.ca_id_area == (model.AreaOperativa == null ? cc.ca_id_area : model.AreaOperativa) &&
                                                                 cc.CO_COD_NATURALEZA == (model.Naturaleza == null ? cc.CO_COD_NATURALEZA : model.Naturaleza) &&
                                                                 cc.CO_NUM_AUXILIAR == (model.NumeroAuxiliar == null ? cc.CO_NUM_AUXILIAR : model.NumeroAuxiliar) &&
                                                                 cc.CO_ESTATUS == activo);

            return(dfs);
        }
        public HttpResponseMessage GetReporteCuentaConcilia([FromUri] ParametrosCuentaContableModel model)
        {
            HttpResponseMessage response     = Request.CreateResponse(HttpStatusCode.BadRequest);
            MemoryStream        memoryStream = new MemoryStream();
            List <string[]>     header       = new List <string[]>();
            int activo             = Convert.ToInt16(BusinessEnumerations.Estatus.ACTIVO);
            var listCuentaContable = this.GetDataReporteCuentaContable(model);
            var listaCtaRaw        = listCuentaContable.Select(x => x);

            if (listaCtaRaw.Count() == 0)
            {
                return(response);
            }
            var source = listaCtaRaw.ToList().Select(c => new
            {
                Empresa        = NameEmpresa(c.CE_ID_EMPRESA),
                CuentaContable = $"{c.CO_CUENTA_CONTABLE}{c.CO_COD_AUXILIAR}{c.CO_NUM_AUXILIAR.Trim()}",
                NombreCuenta   = c.CO_NOM_AUXILIAR.Trim(),
                Concilia       = GetConcilia(c.CO_COD_CONCILIA),
                Naturaleza     = GetNaturaleza(c.CO_COD_NATURALEZA),
                AreaOperativa  = NameAreaOperativa(c.ca_id_area)
            }).ToList();
            var dt = source.ToList().AnonymousToDataTable();

            byte[] fileExcell    = reportExcelService.CreateReportBinary(dt, "Excel1");
            var    contentLength = fileExcell.Length;
            //200
            //successful
            var statuscode = HttpStatusCode.OK;

            response         = Request.CreateResponse(statuscode);
            response.Content = new StreamContent(new MemoryStream(fileExcell));
            response.Content.Headers.ContentType   = new MediaTypeHeaderValue("application/octet-stream");
            response.Content.Headers.ContentLength = contentLength;
            ContentDispositionHeaderValue contentDisposition = null;

            if (ContentDispositionHeaderValue.TryParse("inline; filename=" + "document" + ".xlsx", out contentDisposition))
            {
                response.Content.Headers.ContentDisposition = contentDisposition;
            }
            return(response);
        }
 public IHttpActionResult GetNumeroAuxiliarByCodigoAuxiliar([FromUri]  ParametrosCuentaContableModel model)
 {
     try
     {
         var dfs  = service.Query(cc => cc.CE_ID_EMPRESA == model.Empresa && cc.CO_CUENTA_CONTABLE == model.CuentaContable && cc.CO_COD_AUXILIAR == model.CodigoAuxiliar);
         var list = dfs.GroupBy(cc => cc.CO_NUM_AUXILIAR);
         if (dfs.Count() == 0)
         {
             return(BadRequest("No existen registros para la búsqueda solicitada."));
         }
         return(Ok(list.Select(c => new
         {
             NumeroAuxiliar = c.Key.Trim()
         }).OrderBy(cc => cc.NumeroAuxiliar).ToList()));
     }
     catch (Exception ex)
     {
         return(BadRequest("No existen registros para la búsqueda solicitada. " + ex.Message));
     }
 }
 public IHttpActionResult GetCuentaContableByArea([FromUri] ParametrosCuentaContableModel model)
 {
     try
     {
         Int32 IdGenerica = areaOperativaService.GetSingle(c => c.CA_COD_AREA == 999).CA_ID_AREA;
         List <CuentaContableModel> dfs = service.GetAll(cc => (cc.SAX_AREA_OPERATIVA.CA_ID_AREA == model.AreaOperativa || cc.SAX_AREA_OPERATIVA.CA_ID_AREA == IdGenerica) && (cc.CO_CUENTA_CONTABLE + cc.CO_COD_AUXILIAR + cc.CO_NUM_AUXILIAR).Contains(model.CuentaContable
                                                                                                                                                                                                                                                         ));
         //var list = dfs.GroupBy(cc => cc.CO_CUENTA_CONTABLE);
         if (dfs.Count == 0)
         {
             return(BadRequest("No existen registros para la búsqueda solicitada."));
         }
         return(Ok(dfs.Select(c => new
         {
             CuentaContable = c.CO_CUENTA_CONTABLE + c.CO_COD_AUXILIAR + c.CO_NUM_AUXILIAR
         }).OrderBy(cc => cc.CuentaContable)));
     }
     catch (Exception ex)
     {
         return(BadRequest("No existen registros para la búsqueda solicitada. " + ex.Message));
     }
 }
        public IHttpActionResult GetPagination([FromUri] ParametrosCuentaContableModel pagingparametermodel)
        {
            int activo = Convert.ToInt16(BusinessEnumerations.Estatus.ACTIVO);
            var source = this.GetDataReporteCuentaContable(pagingparametermodel);
            int count  = source.Count();
            //TipoConciliacion.NO.ToString
            int CurrentPage  = pagingparametermodel.pageNumber;
            int PageSize     = pagingparametermodel.pageSize;
            int TotalCount   = count;
            int TotalPages   = (int)Math.Ceiling(count / (double)PageSize);
            var items        = source.OrderBy(c => c.CO_ID_CUENTA_CONTABLE).Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList();
            var previousPage = CurrentPage > 1 ? "Yes" : "No";
            var nextPage     = CurrentPage < TotalPages ? "Yes" : "No";

            var paginationMetadata = new
            {
                totalCount  = TotalCount,
                pageSize    = PageSize,
                currentPage = CurrentPage,
                totalPages  = TotalPages,
                previousPage,
                nextPage,
                data = items.Select(c => new {
                    CE_ID_EMPRESA         = NameEmpresa(c.CE_ID_EMPRESA),
                    CO_CUENTA_CONTABLE    = c.CO_CUENTA_CONTABLE,
                    CUENTA_TEXT           = $"{c.CO_CUENTA_CONTABLE}{c.CO_COD_AUXILIAR}{c.CO_NUM_AUXILIAR}",
                    CO_NOM_CUENTA         = c.CO_NOM_CUENTA,
                    CO_NOM_AUXILIAR       = c.CO_NOM_AUXILIAR,
                    CO_COD_CONCILIA       = GetConcilia(c.CO_COD_CONCILIA),
                    CO_COD_NATURALEZA     = GetNaturaleza(c.CO_COD_NATURALEZA),
                    CO_COD_AREA           = NameAreaOperativa(c.ca_id_area),
                    CO_ID_CUENTA_CONTABLE = c.CO_ID_CUENTA_CONTABLE
                })
            };

            HttpContext.Current.Response.Headers.Add("Paging-Headers", JsonConvert.SerializeObject(paginationMetadata));
            return(Ok(paginationMetadata));
        }