private void BtEnviar_Click(object sender, RoutedEventArgs e) { mainWin.menu.RevisarConexion(); if (mainWin.menu.HayConexion) { TransacCajaTableAdapter transacCaja = new TransacCajaTableAdapter(); foreach (var trans in datos) { EstadosTransaccion newEstado = 0; //Aqui va el codigo para enviar todas las transacciones fuera de linea mediante el web service de capa integracion transacCaja.UpdateQueryTransacCaja((int)newEstado, trans.IdTrans); } } else { MessageBox.Show("El servicio no esta disponible acualmente. Intentar mas tarde."); } }
private void BtRealizarTrans_Click(object sender, RoutedEventArgs e) { if (transCompleted) { return; } int numeroCuenta; if (!int.TryParse(tbNumCuenta.Text, out numeroCuenta)) { MessageBox.Show("Numero de cuenta con formato incorrecto."); return; } decimal monto; if (decimal.TryParse(TbMonto.Text, out monto)) { if (totalBM != Convert.ToInt32(monto)) { MessageBox.Show("El Monto RD$ de ser igual al Total(Billetes y Monedas) RD$. Verificar"); return; } } else { MessageBox.Show("Monto RD$ con formato incorrecto."); return; } monto += 0.00M; try { datosTransaccion = RealizarTransaccion(mainWin.resCliente.cliente.Cedula, numeroCuenta, monto, tipo); if (datosTransaccion == null) { return; } transCompleted = true; if (datosTransaccion.EstadoTrans == EstadosTransaccion.Exitosa) { TbMensaje.Text = "Transaccion exitosa."; MessageBox.Show("Transaccion exitosa."); } else if (datosTransaccion.EstadoTrans == EstadosTransaccion.PendienteFueraLinea) { TbMensaje.Text = "Transaccion fuera de linea exitosa."; MessageBox.Show("Transaccion fuera de linea exitosa."); } else { if (datosTransaccion.EstadoTrans == EstadosTransaccion.CuentaSinFondos) { TbMensaje.Text = "Cuenta sin fondos suficientes."; } else if (datosTransaccion.EstadoTrans == EstadosTransaccion.CuentaNoExiste) { TbMensaje.Text = "Cuenta no existe."; } if (datosTransaccion.EstadoTrans == EstadosTransaccion.CedulaSinPermiso) { TbMensaje.Text = "Cedula no autorizada para transaccion."; } MessageBox.Show("Transaccion irregular. Revisar mensaje."); } } catch { MessageBox.Show("Error procesando la transaccion."); MainWindow.log.Error($"Error durante la operacion RealizarTransaccion. " + $"Cedula: {mainWin.resCliente.cliente.Cedula}, Numero Cuenta {numeroCuenta}, Monto: {monto},Tipo: {tipo}"); return; } var BMTrans = new EfectivoEnCaja(); BMTrans.InsertEfectivo(listaBM); var ef = mainWin.menu.EfectivoCaja; if (tipo == TipoTransaccion.Deposito || tipo == TipoTransaccion.DepositoFueraLinea) { ef.TotalCaja += monto; ef.Bm2000 += BMTrans.Bm2000; ef.Bm1000 += BMTrans.Bm1000; ef.Bm500 += BMTrans.Bm500; ef.Bm200 += BMTrans.Bm200; ef.Bm100 += BMTrans.Bm100; ef.Bm50 += BMTrans.Bm50; ef.Bm25 += BMTrans.Bm25; ef.Bm10 += BMTrans.Bm10; ef.Bm5 += BMTrans.Bm5; ef.Bm1 += BMTrans.Bm1; } else if (tipo == TipoTransaccion.Retiro || tipo == TipoTransaccion.RetiroFueraLinea) { ef.TotalCaja -= monto; ef.Bm2000 -= BMTrans.Bm2000; ef.Bm1000 -= BMTrans.Bm1000; ef.Bm500 -= BMTrans.Bm500; ef.Bm200 -= BMTrans.Bm200; ef.Bm100 -= BMTrans.Bm100; ef.Bm50 -= BMTrans.Bm50; ef.Bm25 -= BMTrans.Bm25; ef.Bm10 -= BMTrans.Bm10; ef.Bm5 -= BMTrans.Bm5; ef.Bm1 -= BMTrans.Bm1; } if (tipo == TipoTransaccion.Deposito || tipo == TipoTransaccion.DepositoFueraLinea) { datosRep.titulo = "DEPOSITO A CUENTA"; datosRep.tipototal = "DEPOSITADO"; } else if (tipo == TipoTransaccion.Retiro || tipo == TipoTransaccion.RetiroFueraLinea) { datosRep.titulo = "RETIRO DE CUENTA"; datosRep.tipototal = "RETIRADO"; } datosRep.sucursal = mainWin.login.suc; datosRep.idCajero = mainWin.login.idCajeroInt; datosRep.fecha = DateTime.Now; datosRep.cuenta = datosTransaccion.NumeroCuenta; datosRep.nombre = datosTransaccion.ApellidoClienteCuenta + ", " + datosTransaccion.NombreClienteCuenta; datosRep.monto = monto.ToString(); TransacCajaTableAdapter transacCaja = new TransacCajaTableAdapter(); EstadoCajaTableAdapter estadoCaja = new EstadoCajaTableAdapter(); MovimientosCajaTableAdapter movimientos = new MovimientosCajaTableAdapter(); int idTransac = 0; int idDia = ef.IdDia; int idCajero = mainWin.login.idCajeroInt; decimal totalCaja = ef.TotalCaja; TiposAccion tipoAccion = 0; if (tipo == TipoTransaccion.Deposito) { tipoAccion = TiposAccion.Deposito; } else if (tipo == TipoTransaccion.Retiro) { tipoAccion = TiposAccion.Retiro; } else if (tipo == TipoTransaccion.DepositoFueraLinea) { tipoAccion = TiposAccion.DepositoFueraLinea; } else if (tipo == TipoTransaccion.RetiroFueraLinea) { tipoAccion = TiposAccion.RetiroFueraLinea; } using (TransactionScope ts = new TransactionScope()) { try { int idEstado = (int)estadoCaja.InsertReturnIdEstado( idDia, DateTime.Now, (int)tipoAccion, idCajero, totalCaja, ef.Bm2000, ef.Bm1000, ef.Bm500, ef.Bm200, ef.Bm100, ef.Bm50, ef.Bm25, ef.Bm10, ef.Bm5, ef.Bm1); idTransac = (int)transacCaja.InsertTransacReturnId( (int)datosTransaccion.NumeroTransaccion, monto, (int)tipo, DateTime.Now, datosTransaccion.CedulaCliente, (int)datosTransaccion.EstadoTrans, (int)datosTransaccion.NumeroCuenta); movimientos.Insert( idDia, idCajero, DateTime.Now, (int)tipoAccion, BMTrans.Bm2000, BMTrans.Bm1000, BMTrans.Bm500, BMTrans.Bm200, BMTrans.Bm100, BMTrans.Bm50, BMTrans.Bm25, BMTrans.Bm10, BMTrans.Bm5, BMTrans.Bm1, idTransac, idEstado, monto, datosTransaccion.NumeroTransaccion); ts.Complete(); } catch { MessageBox.Show("Error guardando registros."); MainWindow.log.Error("Error de transaccion durante operaciones INSERT en EstadosCaja, MovimientosCaja y TransacCaja" + $"Cedula: {mainWin.resCliente.cliente.Cedula}, Numero Cuenta {numeroCuenta}, Monto: {monto},Tipo: {tipo}"); } } if (datosTransaccion.NumeroTransaccion == 0) { if (idTransac == 0) { datosRep.idNoTrans = "---------"; } else { datosRep.idNoTrans = "C-" + idTransac.ToString(); } } else { datosRep.idNoTrans = datosTransaccion.NumeroTransaccion.ToString(); } transCompleted = true; MainWindow.log.Info($"Transaccion completada " + $"Id trans: {datosTransaccion.IdTrans}; Numero trans: {datosTransaccion.NumeroTransaccion}; " + $"Tipo trans: {datosTransaccion.NombreTipo}; Numero de cuenta: {datosTransaccion.NumeroCuenta}; Id cajero: {mainWin.login.idCajeroInt}"); }