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));
        }
示例#2
0
        public async Task <List <EstadoCuentaSap> > GetEstadoCuentaSap(string cliente)
        {
            string userSap     = _paginationOptions.UserSap;
            string passwordSap = _paginationOptions.PasswordSap;
            string tokenSap    = "";

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

            if (meta.IsValid)
            {
                tokenSap = meta.Message;
            }
            else
            {
                return(null);
            }


            string action = $"EstadoCuentaCliente?Sociedad='1000'&Cliente='{cliente}'&MostrarImportesMonedaDoc=true";

            var result = await _sapClient.GetEstadoCuenta(action, tokenSap);


            JsonSerializerOptions options = new JsonSerializerOptions
            {
                IgnoreNullValues            = true,
                WriteIndented               = true,
                PropertyNameCaseInsensitive = true
            };

            AppService.Core.DTOs.SapEstadoCuentaResult.Application resultSapEstadoCuenta = new AppService.Core.DTOs.SapEstadoCuentaResult.Application();
            resultSapEstadoCuenta = JsonSerializer.Deserialize <AppService.Core.DTOs.SapEstadoCuentaResult.Application>(result.Message, options);
            List <EstadoCuentaSap> estadoCuentaSap = new List <EstadoCuentaSap>();

            foreach (var item in resultSapEstadoCuenta.d.results)
            {
                EstadoCuentaSap itemEstadoCuentaSap = new EstadoCuentaSap();

                itemEstadoCuentaSap.DocumentoSAP     = item.DocumentoSAP;
                itemEstadoCuentaSap.DocumentoExterno = item.DocumentoExterno;
                itemEstadoCuentaSap.ClaseDoc         = item.ClaseDoc;
                itemEstadoCuentaSap.Correlativo      = item.Correlativo;
                itemEstadoCuentaSap.Cliente          = item.Cliente;
                itemEstadoCuentaSap.DocumentoExterno = item.DocumentoExterno;
                itemEstadoCuentaSap.Moneda           = item.Moneda;
                var valor = long.Parse(GetSubStringByString("(", ")", item.FechaDoc));
                var fecha = DateTimeOffset.FromUnixTimeMilliseconds(valor).DateTime;
                itemEstadoCuentaSap.FechaDoc = fecha;
                fecha = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse(GetSubStringByString("(", ")", item.FechaVencimiento))).DateTime;
                itemEstadoCuentaSap.FechaVencimiento = fecha;

                itemEstadoCuentaSap.Monto         = decimal.Parse(item.Monto);
                itemEstadoCuentaSap.BaseImponible = decimal.Parse(item.BaseImponible);
                itemEstadoCuentaSap.Impuesto      = decimal.Parse(item.Impuesto);
                itemEstadoCuentaSap.Saldo         = decimal.Parse(item.Saldo);

                estadoCuentaSap.Add(itemEstadoCuentaSap);
            }


            return(estadoCuentaSap);
        }