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); }
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); }
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); }