public async Task <RespAnular> Post(string codBoca, string codTerminal, string idTransaccion)
        {
            RespAnular            response          = new RespAnular();
            RespEstadoTransaccion estadotransaccion = new RespEstadoTransaccion();

            estadotransaccion = await Consultarrepository.Get(codBoca, codTerminal, idTransaccion);

            response.Estado = estadotransaccion.Estado;

            if (response.Estado != 300) //Si es 300, la transaccion nunca llego al ente
            {
                bool pagoanulado = await Anularrepository.ValidarPagoAnulado(idTransaccion);

                if (pagoanulado == true)
                {
                    response.Estado = 301; //Transaccion anulada previamente
                    Logger.Warning("Pago anulado previamente");
                }
                else
                {
                    string[] nrooperacion = estadotransaccion.NroOperacion.Split("|");
                    string   codfor       = nrooperacion[0];
                    int      nrofor       = Convert.ToInt32(nrooperacion[1]);
                    response = await Anularrepository.Post(codBoca, codTerminal, idTransaccion, codfor, nrofor);
                }
            }

            return(response);
        }
Example #2
0
        private async Task <RespAnular> ProcesoAnulacion(SarVtrrch HeaderCobranza)
        {
            RespAnular respuesta = new RespAnular();

            await InsertaCwJmSchedules("WSCOBR");

            //Para dejar tiempo a Softland a que procese el recibo
            Thread.Sleep(10000);

            //Para recargar la entidad con los datos del recibo impactado en Softland.
            await Context.Entry(HeaderCobranza).ReloadAsync();

            switch (HeaderCobranza.SarVtrrchStatus)
            {
            case "S":
                Logger.Information($"La anulación se recibio, procesada ok por Softland");
                respuesta.Estado = 0;
                break;

            case "W":
                Logger.Warning($"La anulación se recibio, pero Softland aún no la proceso, SAR_VTRRRCH_IDENTI = {HeaderCobranza.SarVtrrchIdenti}");
                respuesta.Estado = 999;
                break;

            case "E":
                Logger.Warning($"La anulación se recibio, el procesamiento dio error: {HeaderCobranza.SarVtrrchErrmsg}");
                respuesta.Estado = 999;
                break;

            default:
                respuesta.Estado = 999;
                break;
            }
            return(respuesta);
        }
Example #3
0
        public async Task <RespAnular> Post(string codBoca, string codTerminal, string idTransaccion, string codfor, int nrofor)
        {
            RespAnular response = new RespAnular
            {
                Estado = 0
            };

            SarVtrrch HeaderCobranza = new SarVtrrch
            {
                SarVtrrchIdenti  = "A" + idTransaccion,
                SarVtrrchStatus  = "A",
                SarVtrrchCodcom  = await RecuperarEquivalencia("WEBSER", "ANUCOM", codBoca),
                SarVtrrchNrocta  = "",
                SarVtrrchCodemp  = "WILTEL2",
                SarVtrrchModfor  = "VT",
                SarVtrrchCodfor  = codfor,
                SarVtrrchNrofor  = nrofor,
                SarVtrrchFchmov  = DateTime.Now.Date,
                SarVtFecalt      = DateTime.Now,
                SarVtFecmod      = DateTime.Now,
                SarVtDebaja      = "N",
                SarVtOalias      = "SAR_VTRRCH",
                SarVtrrchErrmsg  = "",
                SarVtUltopr      = "A",
                SarVtUserid      = "WEBAPI",
                UsrVtrrchWsestad = 999,
                UsrVtrrchCodboc  = codBoca,
                UsrVtrrchCodter  = codTerminal
            };

            try
            {
                Context.SarVtrrch.Add(HeaderCobranza);
                await Context.SaveChangesAsync();

                Logger.Information("Se insertó registro de anulación en tabla SAR_VTRRCH ");
            }
            catch (Exception error)
            {
                Logger.Fatal($"Error al insertar registro de anulacion en tabla SAR_VTRRCH :{error}");
                response.Estado = 999;
                return(response);
            };

            response = await ProcesoAnulacion(HeaderCobranza);

            return(response);
        }
        public async Task <RespAnular> Post(string autentic1, string autentic2, string CodBoca, string CodTerminal, string IdTransaccion)
        {
            RespAnular response = new RespAnular();

            this.logger.Information($"Se recibió anulacion de pago, Boca: {CodBoca}, Terminal: {CodTerminal}, " +
                                    $"Id Transaccion Pago a anular:{IdTransaccion}");


            bool Autenticado = await _AuthenticationService.ValidoAutenticacion(autentic1, autentic2);

            if (Autenticado == true)
            {
                response = await Service.Post(CodBoca, CodTerminal, IdTransaccion);
            }
            else
            {
                response.Estado = 200; //Datos de autenticación incorrectos
            }

            this.logger.Information($"Respuesta: {response}");
            return(response);
        }