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}"); }
private void ReportViewer1_Load(object sender, EventArgs e) { //this.ReportViewer1.LocalReport.ReportPath = "ReportInicioDia.rdlc"; //this.ReportViewer1.ProcessingMode = ProcessingMode.Local; ////tblCuentasTableAdapter cuentas = new tblCuentasTableAdapter(); //ReportDataSource source = new ReportDataSource("DataSet1", (DataTable)diasCaja.GetDataByLastIdCaja(1000)); //this.ReportViewer1.LocalReport.DataSources.Clear(); //this.ReportViewer1.LocalReport.DataSources.Add(source); //this.ReportViewer1.RefreshReport(); DiasCajaTableAdapter diasCaja = new DiasCajaTableAdapter(); EstadoCajaTableAdapter estadoCaja = new EstadoCajaTableAdapter(); CajerosTableAdapter cajeros = new CajerosTableAdapter(); SucursalesTableAdapter sucursales = new SucursalesTableAdapter(); MovimientosCajaTableAdapter movimientos = new MovimientosCajaTableAdapter(); int idCajero = mainWin.login.idCajeroInt; int idSuc = mainWin.login.idSucursal; int idDia = mainWin.menu.EfectivoCaja.IdDia; if (tipo == TiposReporte.CierreDia) { this.ReportViewer1.LocalReport.ReportPath = "ReportCierreDia.rdlc"; this.ReportViewer1.ProcessingMode = ProcessingMode.Local; ReportDataSource Scajeros = new ReportDataSource("DScajeros", (DataTable)cajeros.GetDataByIdCajero(idCajero)); ReportDataSource Ssucursal = new ReportDataSource("DSsucursal", (DataTable)sucursales.GetDataById(idSuc)); ReportDataSource SdiasCaja = new ReportDataSource("DSdiasCaja", (DataTable)diasCaja.GetDataByIdDia(idDia)); ReportDataSource SestadoInicio = new ReportDataSource("DSestadocajainicio", (DataTable)estadoCaja.GetDataByIdDiaAndAccion(idDia, (int)TiposAccion.InicioDelDia)); ReportDataSource SestadoCierre = new ReportDataSource("DSestadocajacierre", (DataTable)estadoCaja.GetDataByIdDiaAndAccion(idDia, (int)TiposAccion.CierreDelDia)); ReportDataSource Smov = new ReportDataSource("DSMov", (DataTable)movimientos.GetDataByIdDia(mainWin.menu.EfectivoCaja.IdDia)); this.ReportViewer1.LocalReport.DataSources.Clear(); this.ReportViewer1.LocalReport.DataSources.Add(Scajeros); this.ReportViewer1.LocalReport.DataSources.Add(Ssucursal); this.ReportViewer1.LocalReport.DataSources.Add(SdiasCaja); this.ReportViewer1.LocalReport.DataSources.Add(SestadoInicio); this.ReportViewer1.LocalReport.DataSources.Add(SestadoCierre); this.ReportViewer1.LocalReport.DataSources.Add(Smov); this.ReportViewer1.RefreshReport(); } else if (tipo == TiposReporte.TransaccionBancaria) { DatosReporteTrans datos = mainWin.transaccion.datosRep; this.ReportViewer1.LocalReport.ReportPath = "ReportTransaccion.rdlc"; this.ReportViewer1.ProcessingMode = ProcessingMode.Local; ReportParameter rp1 = new ReportParameter("TituloRecibo", datos.titulo); ReportParameter rp2 = new ReportParameter("NombreCliente", datos.nombre); ReportParameter rp3 = new ReportParameter("Sucursal", datos.sucursal); ReportParameter rp4 = new ReportParameter("idCajero", datos.idCajero.ToString()); ReportParameter rp5 = new ReportParameter("Cuenta", datos.cuenta.ToString()); ReportParameter rp6 = new ReportParameter("Monto", datos.monto); ReportParameter rp7 = new ReportParameter("TipoTotal", datos.tipototal); ReportParameter rp8 = new ReportParameter("Fecha", datos.fecha.ToString()); ReportParameter rp9 = new ReportParameter("IdNoTrans", datos.idNoTrans); ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp1, rp2, rp3, rp4, rp5, rp6, rp7, rp8, rp9 }); this.ReportViewer1.RefreshReport(); } }