public async void ArmarDocuemntoPagoCompeltoAsync(EstadoPago PagoInfo) { try { StreamReader objReader = new StreamReader("./Documentos/Comprobante_Pago_completado.txt"); string sLine = ""; string comprobante = ""; while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null) { string oldvalue = sLine; comprobante += oldvalue + "\r\n"; } } objReader.Close(); DateTime fechaHoy = DateTime.Now; comprobante = comprobante.Replace("dd/mm/aaaa hh:mm:ss PM", fechaHoy.ToString()); comprobante = comprobante.Replace("XXXAPAGAR", "$ " + Globals.Pago.MontoAPagar.ToString()); comprobante = comprobante.Replace("XXXPAGADO", "$ " + Globals.Pago.DineroIngresado.ToString()); comprobante = comprobante.Replace("XXXIDTRANS", Globals.IDTransaccion); var respuesta = await ImprimirComprobanteAsync(comprobante); } catch (Exception ex) { throw; } }
public EstadoPago MicroConsultaPago(EstadoPago PagoInfo) { var EstadoPgo = controPeri.DinerIngresado(); // llamar al servicio pipe para traer los datos if (EstadoPgo != "false") { try { //Actualizar los datos de pago var DineroIngresado = float.Parse(EstadoPgo); PagoInfo.DineroIngresado = DineroIngresado; PagoInfo.DineroFaltante = PagoInfo.MontoAPagar - DineroIngresado; return(PagoInfo); } catch (Exception ex) { Globals.log.Error("Ha ocurrido un exepcion en el proceso Estado del pago Transaccion: " + Globals.IDTransaccion + "Mensaje de error: " + ex.Message); PagoInfo.DineroIngresado = -1; return(PagoInfo); } } else // si no se enviaron los datos correctos dele stado de pago { Globals.log.Error("Ha ocurrido un error al Consultar el estado del Pago Transaccion: " + Globals.IDTransaccion + " Error:" + Globals.Servicio2Pago.Resultado.CodigoError + " Respuesta completa " + Globals.Servicio2Pago._Resp); PagoInfo.DineroIngresado = -1; return(PagoInfo); } }
public async void ArmarDocuemntoPagoCompeltoAsync(EstadoPago PagoInfo) { try { StreamReader objReader = new StreamReader("./Documentos/Comprobante_Pago_completado.txt"); string sLine = ""; string comprobante = ""; while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null) { string oldvalue = sLine; comprobante += oldvalue + "\r\n"; } } objReader.Close(); DateTime fechaHoy = DateTime.Now; comprobante = comprobante.Replace("dd/mm/aaaa hh:mm:ss PM", fechaHoy.ToString()); comprobante = comprobante.Replace("xxidm", Globals.idmaquina); comprobante = comprobante.Replace("xxnommaq", Globals.nombremaquina); comprobante = comprobante.Replace("XXXAPAGAR", "$ " + Globals.ImpresoraMontoPagar.ToString()); comprobante = comprobante.Replace("XXXPAGADO", "$ " + Globals.ImpresoraMontoIngresado.ToString()); comprobante = comprobante.Replace("XXXIDTRANS", Globals.IDTransaccion); var respuesta = await ImprimirComprobanteAsync(comprobante); } catch (Exception ex) { Globals.log.Error("Ha ocurrido un error al leer el archivo de texto que contiene el ticket: Error " + ex.Message); } }
public ActionResult <IEnumerable <EstadoPagoResp> > EstadoDePago([FromBody] EstadoPago PagoInfo) { if (Globals.VueltoPermitido == false) { var VueltoPosible = vueltopuede.CalcularVueltoPosible(PagoInfo.MontoAPagar); if (VueltoPosible == true) { Globals.VueltoPermitido = true; } else { EstadoPagoResp vueltonoposible = new EstadoPagoResp(); vueltonoposible.PagoStatus = false; vueltonoposible.Status = false; return(Ok(vueltonoposible)); } } var resultado = pagoservice.EstadoDelPAgo(PagoInfo); EstadoPagoResp estado = new EstadoPagoResp(); estado = resultado; return(Ok(estado)); }
public ActionResult DeleteConfirmed(int id) { EstadoPago estadoPago = persistenceestadopago.FindById(id); persistenceestadopago.Delete(estadoPago); persistenceestadopago.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult DeleteConfirmed(int id) { EstadoPago estadoPago = db.EstadoPagos.Find(id); db.EstadoPagos.Remove(estadoPago); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: EstadoPago/Delete/5 public ActionResult Delete(int id) { EstadoPago estadoPago = persistenceestadopago.FindById(id); if (estadoPago == null) { return(HttpNotFound()); } return(View(estadoPago)); }
public ActionResult Edit([Bind(Include = "id,nombre")] EstadoPago estadoPago) { if (ModelState.IsValid) { persistenceestadopago.Update(estadoPago); persistenceestadopago.SaveChanges(); return(RedirectToAction("Index")); } return(View(estadoPago)); }
public ActionResult Edit([Bind(Include = "IdEstadoPago,Descripcion")] EstadoPago estadoPago) { if (ModelState.IsValid) { db.Entry(estadoPago).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(estadoPago)); }
protected void Timer_VueltoMonedas(object sender, ElapsedEventArgs e)// timer ingresado cuando se ingresan monedas o billetes de mas { EsperarMonedas.Enabled = false; EsperarMonedas.Stop(); try { EstadoVueltoResp estadovuelto = new EstadoVueltoResp(); //var auxvuelto = Globals.Vuelto; estadovuelto = EstadoDelVuelto(montodeVuelto); if (estadovuelto.data.VueltoFinalizado == false)// si el vuelto no se finaliza el timer se reinicia { //Globals.Vuelto = auxvuelto; Globals.EstadodeCancelacion.CancelacionCompleta = false; Globals.EstadodeCancelacion.EntregandoVuelto = true; EsperarVueltoMonedas = new System.Timers.Timer() { AutoReset = false }; EsperarVueltoMonedas.Elapsed += new ElapsedEventHandler(Timer_VueltoMonedas); EsperarVueltoMonedas.AutoReset = false; EsperarVueltoMonedas.Interval = 2000; EsperarVueltoMonedas.Enabled = true; EsperarVueltoMonedas.Start(); } else {// si el vuelto esta listo se apaga la maquina y se actualizan los estados correspondientes var finalizar = FinalizarPago(); if (finalizar == true) { //Globals.Vuelto = auxvuelto; Globals.EstadodeCancelacion.CancelacionCompleta = true; Globals.EstadodeCancelacion.EntregandoVuelto = false; EsperarVueltoMonedas.Enabled = false; EsperarVueltoMonedas.Stop(); EsperarMonedas.Enabled = false; EsperarMonedas.Stop(); } else { montodeVuelto = new EstadoVuelto(); montoapagar = new EstadoPago(); EsperarMonedas.Enabled = false; EsperarMonedas.Stop(); EsperarVueltoMonedas.Enabled = false; EsperarVueltoMonedas.Stop(); } } } catch (Exception ex) { //throw; } }
public ActionResult Create([Bind(Include = "IdEstadoPago,Descripcion")] EstadoPago estadoPago) { if (ModelState.IsValid) { db.EstadoPagos.Add(estadoPago); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(estadoPago)); }
public ActionResult <IEnumerable <EstadoPagoResp> > EstadoDePago([FromBody] EstadoPago PagoInfo) { var resultado = pagoservice.EstadoDelPAgo(PagoInfo); EstadoPagoResp estado = new EstadoPagoResp(); estado = resultado; pagoservice.ConfigurarStatus(); estado.StatusMaquina = Globals.SaludMaquina; estado.BloqueoEfectivo = Globals.BloqueoEfectivo; estado.BloqueoTransbank = Globals.BloqueoTransbank; return(Ok(estado)); }
public float ConsultarDineroExtra(float MontoApagar) { try { EstadoPago estadopago = new EstadoPago(); estadopago.MontoAPagar = MontoApagar; estadopago = MicroConsultaPago(estadopago); float dineroF = new float(); dineroF = MontoApagar - estadopago.DineroIngresado; if (estadopago.DineroIngresado > Globals.ImpresoraMontoIngresado) { Globals.ImpresoraMontoIngresado = estadopago.DineroIngresado; } if (dineroF < 0)// si despues de finalizar se ingreso dinero extra se llama el vuelto { var IniciooPago = InicioPago(); if (IniciooPago == true) { dineroF = dineroF * -1; var DarVuelto = controPeri.DarVuelto(dineroF); if (dineroF > Globals.ImpresoraMontoVueltoEntregar) { Globals.ImpresoraMontoVueltoEntregar = dineroF; } if (DarVuelto)// si se empieza a dar vuelto se llama a un timer de consulta para que luego apague la maquina { return(dineroF); } else { return(-1); } } else { return(dineroF); } } else {// se actualiza la transaxxion y se cambia a que la cancelacion no ha comensado transaccion.FinTransaccion(); return(dineroF); } } catch (Exception ex) { Globals.log.Error("Ha ocurrido un exepcion en el proceso consultar dinero extra Transaccion: " + Globals.IDTransaccion + "Mensaje de error: " + ex.Message); return(-1); } }
// GET: EstadosPagos/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } EstadoPago estadoPago = db.EstadoPagos.Find(id); if (estadoPago == null) { return(HttpNotFound()); } return(View(estadoPago)); }
public EstadoPago RealizarCalculoVuelto(float MontoApagar) // Proceso que se encarga de preparar la maquina para entregar vuelto { EstadoPago estadopago = new EstadoPago(); try { estadopago.MontoAPagar = MontoApagar; estadopago = MicroConsultaPago(estadopago);// llamada para saber que monto actual de vuelto hay que realizar if (estadopago.DineroIngresado > Globals.ImpresoraMontoIngresado) { Globals.ImpresoraMontoIngresado = estadopago.DineroIngresado; } if (estadopago.DineroFaltante < 0 && estadopago.DineroFaltante != -1) { var IniciooPago = InicioPago(); if (IniciooPago == true) { var vuelto = estadopago.DineroFaltante * -1; var DarVuelto = controPeri.DarVuelto(vuelto); if (vuelto > Globals.ImpresoraMontoVueltoEntregar) { Globals.ImpresoraMontoVueltoEntregar = vuelto; } if (DarVuelto)// si la maquina devuelve que esta dando vueltos { return(estadopago); } else {// para decir que la maquina no esta dando vuelto y que hay que volver a llamar a al timer return(estadopago); } } else { // para decir que la maquina no esta dando vuelto y que hay que volver a llamar a al timer estadopago.DineroFaltante = -1; // si tiene agun error return(estadopago); } } } catch (Exception ex) { Globals.log.Error("Ha ocurrido un exepcion en el proceso DarVuelto Transaccion: " + Globals.IDTransaccion + "Mensaje de error: " + ex.Message); estadopago.DineroFaltante = -1;// si tiene agun error return(estadopago); } estadopago.DineroFaltante = -1;// si tiene agun error return(estadopago); }
public ActionResult <IEnumerable <InicioOperacionService> > IniciarPago([FromBody] EstadoPago PagoInfo) { Globals.ComprobanteImpresoVuelto = false; Globals.ComprobanteImpreso = false; Globals.ImpresoraMontoPagar = 0; Globals.ImpresoraMontoIngresado = 0; Globals.ImpresoraMontoVueltoEntregar = 0; Globals.ImpresoraMontoEntregado = 0; Globals.ImpresoraMontoEnCancelar = 0; Globals.ImpresoraMontoEntregadoCancelar = 0; Globals.VueltoPermitido = false; transaccion.InicioTransaccion(); InicioOperacionService Status = new InicioOperacionService(); if (Globals.VueltoPermitido == false) { var VueltoPosible = vueltopuede.CalcularVueltoPosible(PagoInfo.MontoAPagar); if (VueltoPosible == true) { Globals.VueltoPermitido = true; } else { Status = new InicioOperacionService(); Status.Status = false; pagoservice.ConfigurarStatus(); Status.StatusMaquina = Globals.SaludMaquina; Status.BloqueoEfectivo = Globals.BloqueoEfectivo; Status.BloqueoTransbank = Globals.BloqueoTransbank; Globals.ImpresoraMontoPagar = PagoInfo.MontoAPagar; return(Ok(Status)); } } var resultado = pagoservice.InicioPago(); pagoservice.ConfigurarStatus(); Status = new InicioOperacionService(); Status.Status = resultado; pagoservice.ConfigurarStatus(); Status.StatusMaquina = Globals.SaludMaquina; Status.BloqueoEfectivo = Globals.BloqueoEfectivo; Status.BloqueoTransbank = Globals.BloqueoTransbank; Globals.ImpresoraMontoPagar = PagoInfo.MontoAPagar; return(Ok(Status)); }
public bool CancelarPago() { EstadoPago PagoInfo = new EstadoPago(); Globals.ImpresoraMontoEnCancelar = Globals.ImpresoraMontoIngresado - Globals.ImpresoraMontoEntregado; lock (thisLock) { var finalizar = FinalizarPago(); if (Globals.ImpresoraMontoEnCancelar > 0) { if (finalizar) { Task.Delay(int.Parse(Globals._config["TiempoDelay:EsperarVuelto"])).Wait(); var IniciooPago = InicioPago(); if (IniciooPago == true) { var vuelto = Globals.ImpresoraMontoEnCancelar; var DarVuelto = controPeri.DarVuelto(vuelto); if (DarVuelto)// si la maquina devuelve que esta dando vueltos { return(true); } else {// para decir que la maquina no esta dando vuelto y que hay que volver a llamar a al timer return(false); } } else {// para decir que la maquina no esta dando vuelto y que hay que volver a llamar a al timer return(false); } } else { return(false); } } else { return(true); } } }
public EstadoPagoResp EstadoDelPAgo(EstadoPago PagoInfo) // se encarga de consultar el estado en que se encuentra el pago { Globals.ComprobanteImpresoContador++; // utilizado para que no se tomen datos del pago anterior lock (thisLock) { bool volveraUno = false; EstadoPagoResp estadopago = new EstadoPagoResp(); if (Globals.PagoFinalizado == true) { estadopago.data = PagoInfo; estadopago.PagoStatus = true; estadopago.Status = true; return(estadopago); } Globals.data = new List <string>(); Globals.data.Add(""); Globals.Servicio2Pago = new PipeClient2(); Globals.Servicio2Pago.Message = Globals.servicio.BuildMessage(ServicioPago.Comandos.Cons_dinero_ingre, Globals.data); var vuelta = Globals.Servicio2Pago.SendMessage(ServicioPago.Comandos.Cons_dinero_ingre); // llamar al servicio pipe para traer los datos if (vuelta) { try { if (PagoInfo.DineroIngresado == 999999)// si la llamada al servicio viene de un timer de vuelto { Globals.DandoVuelto = true; volveraUno = true; Globals.dineroIngresado = Globals.Servicio2Pago.Resultado.Data[0]; } else {// Actualizar el estado de pago Globals.Pago = PagoInfo; } //Actualizar los datos de pago var DineroIngresado = int.Parse(Globals.Servicio2Pago.Resultado.Data[0]); PagoInfo.DineroIngresado = DineroIngresado; PagoInfo.DineroFaltante = PagoInfo.MontoAPagar - DineroIngresado; if (PagoInfo.DineroFaltante < 0) {// si hay que dar vuelto FinalizarPago(); Globals.RespaldoParaVuelto = PagoInfo; if (Globals.DandoVuelto == false && Globals.PagoCompleto == false)// si actualmente se estan realizand los procesor para dar vuelto { PagoInfo.DineroFaltante = 1; } estadopago.data = PagoInfo; estadopago.Status = true; estadopago.PagoStatus = false; // estado que se retornan al front if (Globals.VueltoUnaVEz == false)// timer de dar vuelto que se ejecuta una sola vez { TimerDarVuelto = new System.Timers.Timer() { AutoReset = false }; TimerDarVuelto.Elapsed += new ElapsedEventHandler(Timer_DarVuelto); TimerDarVuelto.AutoReset = false; TimerDarVuelto.Interval = 3000; TimerDarVuelto.Enabled = true; TimerDarVuelto.Start(); Globals.VueltoUnaVEz = true; } if (volveraUno == true)// se devuelven los flags de vuelto al estado original para siguientes consultas { Globals.DandoVuelto = false; } if (Globals.DandoVuelto == true)// obtener concretos de los vueltos a dar ( esto si si se entraga dinero extra mientras se cancela la operacion) { estadopago.data.DineroFaltante = Globals.Vuelto.VueltoTotal; } volveraUno = false; if (Globals.HayVuelto == false) { estadopago.Status = false; } return(estadopago); } else if (PagoInfo.DineroFaltante == 0)// si el pago se realizo completamente { var finalizar = FinalizarPago(); if (finalizar == true) { if (Globals.TimersVueltoCancel == false)// para mandar a realizar una pause y luego verificar si se ingreso dinero extra y si es asi se devolverlo { EsperarMonedas = new System.Timers.Timer() { AutoReset = false }; EsperarMonedas.Elapsed += new ElapsedEventHandler(Timer_EstadoVueltoMonedas); EsperarMonedas.AutoReset = false; EsperarMonedas.Interval = 2000; EsperarMonedas.Enabled = true; EsperarMonedas.Start(); Globals.PagoCompleto = true; } montoapagar = PagoInfo; estadopago.data = PagoInfo; estadopago.Status = true; // datos usado para retornar if (Globals.ComprobanteImpreso == false && Globals.ComprobanteImpresoContador > 5) // para realizar la impresion del ticket el contador es pq las primeras veces puede traer datos de un pago anterior { ArmarDocuemntoPagoCompeltoAsync(PagoInfo); // armar datos de ticket Globals.ComprobanteImpreso = true; } estadopago.PagoStatus = true; Globals.PagoFinalizado = true; return(estadopago); } else {// si al enviar un estado de apagado de maquina esta no contesta correctamewnte estadopago.data = PagoInfo; estadopago.Status = false; estadopago.PagoStatus = false; return(estadopago); } }// si no se ha completado un pago estadopago.data = PagoInfo; estadopago.Status = true; estadopago.PagoStatus = false; if (Globals.DandoVuelto == true)// para devolver el vuelto que se debe enviar al timer { estadopago.data.DineroFaltante = Globals.Vuelto.VueltoTotal * -1; } if (Globals.HayVuelto == false) { estadopago.Status = false; } return(estadopago); } catch (Exception ex) { estadopago.Status = false; estadopago.PagoStatus = false; return(estadopago); } } else // si no se enviaron los datos correctos dele stado de pago { estadopago.Status = false; estadopago.PagoStatus = false; return(estadopago); } } }
public Pago(long idPago, EstadoPago estadoPago, Factura factura) { this.IdPago = idPago; this.EstadoPago = estadoPago; this.Factura = factura; }
public ActionResult <IEnumerable <EstadoPagoResp> > Hacerimpresion([FromBody] EstadoPago PagoInfo) { pagoservice.ArmarDocuemntoPagoCompeltoAsync(PagoInfo); return(Ok()); }
public EstadoPagoResp EstadoDelPAgo(EstadoPago PagoInfo)// se encarga de consultar el estado en que se encuentra el pago { lock (thisLock) { EstadoPagoResp EstadoDelPAgo = new EstadoPagoResp();// variable que se retorna var DineroIngresado = controPeri.DinerIngresado(); if (DineroIngresado != "false") { float Dinero = float.Parse(DineroIngresado); PagoInfo.DineroIngresado = Dinero; PagoInfo.DineroFaltante = PagoInfo.MontoAPagar - Dinero; if (Dinero > Globals.ImpresoraMontoIngresado) { Globals.ImpresoraMontoIngresado = Dinero; } // Actualizar Datos if (PagoInfo.DineroFaltante < 0) {// si hay que dar vuelto FinalizarPago(); EstadoDelPAgo.Status = true; EstadoDelPAgo.PagoStatus = false;// estado que se retornan al front Task.Delay(int.Parse(Globals._config["TiempoDelay:EsperarVuelto"])).Wait(); PagoInfo = RealizarCalculoVuelto(PagoInfo.MontoAPagar); EstadoDelPAgo.data = PagoInfo; return(EstadoDelPAgo); } else if (PagoInfo.DineroFaltante == 0)// si el pago se realizo completamente { var finalizar = FinalizarPago(); if (finalizar == true) { Task.Delay(int.Parse(Globals._config["TiempoDelay:EsperarVuelto"])).Wait(); PagoInfo.DineroFaltante = ConsultarDineroExtra(PagoInfo.MontoAPagar); if (PagoInfo.DineroFaltante == 0) { if (Globals.ComprobanteImpreso == false && Globals.ImpresoraMontoIngresado > 0) { ArmarDocuemntoPagoCompeltoAsync(PagoInfo);// armar datos de ticket Globals.ComprobanteImpreso = true; } EstadoDelPAgo.data = PagoInfo; EstadoDelPAgo.Status = true; EstadoDelPAgo.PagoStatus = true; var finHopper = FinalizarOperacion(); return(EstadoDelPAgo); } else if (PagoInfo.DineroFaltante < 0) { EstadoDelPAgo.data = PagoInfo; EstadoDelPAgo.Status = true; EstadoDelPAgo.PagoStatus = false; return(EstadoDelPAgo); } } else { EstadoDelPAgo.Status = false; EstadoDelPAgo.PagoStatus = false; return(EstadoDelPAgo); } }// si no se ha completado un pago EstadoDelPAgo.data = PagoInfo; EstadoDelPAgo.Status = true; EstadoDelPAgo.PagoStatus = false; return(EstadoDelPAgo); } else { EstadoDelPAgo.Status = false; EstadoDelPAgo.PagoStatus = false; return(EstadoDelPAgo); } } }