コード例 #1
0
        public async Task <IHttpActionResult> consultaRegAnular([FromUri] ComprobanteModels parameter)
        {
            try
            {
                var        userId                  = User.Identity.GetUserId();
                List <int> listUserArea            = usuarioAreaService.Query(d => d.US_ID_USUARIO == userId).Select(y => y.CA_ID_AREA).ToList();
                List <AreaOperativaModel> listArea = areaOperativaService.GetAll().ToList();
                List <int> listAreaUsuario         = listArea.Where(x => listUserArea.Contains(x.CA_ID_AREA)).Select(a => a.CA_ID_AREA).ToList();
                int        estado                  = Convert.ToInt16(BusinessEnumerations.EstatusCarga.CONCILIADO);
                int?       idcompro                = null;
                if (parameter != null)
                {
                    if (parameter.comprobanteId != null)
                    {
                        var comprobante = service.GetSingle(x => x.TC_COD_COMPROBANTE == parameter.comprobanteId);
                        if (comprobante == null)
                        {
                            return(BadRequest($"No  se puede encontrar el comprobante {parameter.comprobanteId}, favor verifica, e  intentar de nuevo"));
                        }
                        idcompro = comprobante.TC_ID_COMPROBANTE;
                    }
                }
                var source = service.ConsultaComprobanteConciliadaServ(parameter == null ? null : parameter.FechaCreacion,
                                                                       parameter == null ? null : parameter.empresaCod,
                                                                       parameter == null ? null : idcompro,
                                                                       parameter == null ? null : parameter.cuentaContableId,
                                                                       parameter == null ? null : parameter.cuentaContable,
                                                                       parameter == null ? null : parameter.importe,
                                                                       parameter == null ? null : parameter.referencia,
                                                                       null,
                                                                       null,
                                                                       userId,
                                                                       estado,
                                                                       userId
                                                                       );
                if (source.Count() > 0)
                {
                    source = source.Where(c => listAreaUsuario.Contains(c.CA_ID_AREA));
                }

                var comprobantes = new List <Repository.Model.SAX_COMPROBANTE>();
                int count        = source.Count();
                int CurrentPage  = parameter.pageNumber;
                int PageSize     = parameter.pageSize;
                int TotalCount   = count;
                int TotalPages   = (int)Math.Ceiling(count / (double)PageSize);
                var items        = source.OrderBy(x => x.TC_COD_COMPROBANTE).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
                    {
                        SELECTED               = false,
                        idComprobante          = c.TC_ID_COMPROBANTE,
                        codComprobante         = c.TC_COD_COMPROBANTE,
                        codOperacion           = c.TC_COD_OPERACION,
                        nombreOperacion        = (c.TC_COD_OPERACION == 24 ? "AUTOMATICO" : "MANUAL"),
                        fechaProceso           = c.TC_FECHA_PROCESO,
                        totalRegistro          = c.TC_TOTAL_REGISTRO,
                        totalDebito            = c.TC_TOTAL_DEBITO,
                        totalCredito           = c.TC_TOTAL_CREDITO,
                        total                  = c.TC_TOTAL,
                        estatus                = c.TC_ESTATUS,
                        nombreEtatus           = getEstado(c.TC_ESTATUS),
                        fechaCreacion          = c.TC_FECHA_CREACION,
                        usuarioCreacion        = c.TC_USUARIO_CREACION,
                        nombreUsuarioCreacion  = c.AspNetUsers.FirstName,
                        nombreUsuarioAprobador = c.AspNetUsers1 == null ? null : c.AspNetUsers1.FirstName,
                        fechaMod               = c.TC_FECHA_MOD,
                        usuarioMod             = c.TC_USUARIO_MOD,
                        nombreUsuarioMod       = c.AspNetUsers2 == null ? null : c.AspNetUsers2.FirstName,
                    })
                };

                //HttpContext.Current.Response.Headers.Add("Paging-Headers", JsonConvert.SerializeObject(paginationMetadata));
                return(Ok(paginationMetadata));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }