Exemple #1
0
        public async Task <PagedList <CobEstadoDeCuenta> > GetEstadoCuenta(CobEstadoCuentaQueryFilter filters)
        {
            filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber;
            filters.PageSize   = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize;
            filters.PageSize   = 1000;

            //Busca Estado de Cuenta del cliente en Sap
            var estadoCuentaSap = await GetEstadoCuentaSap(filters.IdCliente);

            if (estadoCuentaSap != null)
            {
                //Actualiza Tabla CobEstadoCuenta con el estado de cuenta Sap
                await UpdateCobEstadoCuenta(estadoCuentaSap, filters.IdCliente);


                var estadoCuenta = await _unitOfWork.CobEstadoDeCuentaRepository.GetAllDocumentoMadre(filters.IdCliente);


                if (filters.Documento > 0)
                {
                    estadoCuenta = estadoCuenta.Where(x => x.Rpdoc == filters.Documento).ToList();
                }

                var pagedResult = PagedList <CobEstadoDeCuenta> .Create(estadoCuenta, filters.PageNumber, filters.PageSize);

                return(pagedResult);
            }
            else
            {
                return(null);
            }
        }
        public async Task <IActionResult> GetEstadoCuenta(CobEstadoCuentaQueryFilter filters)
        {
            List <CobEstadoCuentaDto> result = new List <CobEstadoCuentaDto>();
            Metadata metadata = new Metadata
            {
                IsValid = false,
                Message = ""
            };
            ApiResponse <IEnumerable <CobEstadoCuentaDto> > response = new ApiResponse <IEnumerable <CobEstadoCuentaDto> >(result);

            string userSap     = _paginationOptions.UserSap;
            string passwordSap = _paginationOptions.PasswordSap;


            var meta = await _sapClient.GetToken(userSap, passwordSap);

            if (!meta.IsValid)
            {
                metadata.IsValid = false;
                metadata.Message = "No tenemos conexion a SAP.....Intente mas tarde(Validando Conexion. CobEstadoCuentaController line 84)";

                response.Data = result;
                response.Meta = metadata;


                return(Ok(response));
            }



            PagedList <CobEstadoDeCuenta> listEstadoCuenta;

            listEstadoCuenta = await _cobEstadoCuentaService.GetEstadoCuenta(filters);

            if (listEstadoCuenta == null)
            {
                response.Meta = metadata;
                return(Ok(response));
            }



            IEnumerable <CobEstadoCuentaDto> listEstadoCuentaDto = _mapper.Map <IEnumerable <CobEstadoCuentaDto> >(listEstadoCuenta);


            foreach (var item in listEstadoCuentaDto)
            {
                var cliente = await _mtrClienteService.GetByIdAsync(item.IdCliente);



                item.Saldo = item.Rpaap;
                decimal decimalValue = (decimal)item.Saldo;
                item.SaldoString         = string.Format("{0:N}", decimalValue); // 1,234,567.00
                decimalValue             = (decimal)item.Iva;
                item.IvaString           = string.Format("{0:N}", decimalValue); // 1,234,567.00
                decimalValue             = (decimal)item.MontoOriginal;
                item.MontoOriginalString = string.Format("{0:N}", decimalValue); // 1,234,567.00
                decimalValue             = (decimal)item.BaseImponible;
                item.BaseImponibleString = string.Format("{0:N}", decimalValue); // 1,234,567.00


                item.searchText = item.Rpdct + "-" + item.Rpdoc.ToString() + "- Cliente: " + cliente.Nombre.Trim() + "- Saldo: " + item.SaldoString;
                result.Add(item);
            }


            metadata.IsValid         = true;
            metadata.Message         = "";
            metadata.TotalCount      = listEstadoCuenta.TotalCount;
            metadata.PageSize        = listEstadoCuenta.PageSize;
            metadata.CurrentPage     = listEstadoCuenta.CurrentPage;
            metadata.TotalPage       = listEstadoCuenta.TotalPage;
            metadata.HasNextPage     = listEstadoCuenta.HasNextPage;
            metadata.HasPreviousPage = listEstadoCuenta.HasPreviousPage;
            metadata.NextPageUrl     = "";   // _uriService.GetGeneralCobranzaPaginationUri(filters, "").ToString(),
            metadata.PreviousPageUrl = "";   // _uriService.GetGeneralCobranzaPaginationUri(filters, "").ToString(),


            response.Data = result;
            response.Meta = metadata;


            return(Ok(response));
        }