コード例 #1
0
        public TransFuera(MainWindow mainWindow) : this()
        {
            mainWin = mainWindow;


            datos = new ObservableCollection <DatosTransaccion>();
            TransCajaViewTableAdapter transCajaView = new TransCajaViewTableAdapter();
            var rows = transCajaView.GetDataByIdCajero(mainWin.login.idCajeroInt).Rows;

            foreach (TransCajaViewRow record in rows)
            {
                if ((int)record["EstadoTransac"] == (int)EstadosTransaccion.PendienteFueraLinea)
                {
                    var t = new DatosTransaccion();
                    t.IdTrans           = (int)record["IdTransac"];
                    t.Fecha             = (DateTime)record["FechaCreacion"];
                    t.NumeroCuenta      = (int)record["NumCuenta"];
                    t.CedulaCliente     = record["CedulaCliente"].ToString();
                    t.NombreTipo        = record["NombreTipoT"].ToString();
                    t.NombreEstadoTrans = record["NombreEstadoT"].ToString();
                    t.Monto             = (decimal)record["Monto"];

                    t.IdCajero  = (int)record["IdCajero"];
                    t.TipoTrans = (TipoTransaccion)record["Tipo"];

                    datos.Add(t);
                }
            }



            DgTFL.ItemsSource = datos;
        }
コード例 #2
0
ファイル: Transaccion.xaml.cs プロジェクト: jabn1/CajaBanco
        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}");
        }
コード例 #3
0
ファイル: Transaccion.xaml.cs プロジェクト: jabn1/CajaBanco
        public DatosTransaccion RealizarTransaccion(string cedula, int numeroCuenta, decimal monto, TipoTransaccion tipoTrans)
        {
            //mainWin.menu.RevisarConexion();
            var trans = new DatosTransaccion();

            if (mainWin.menu.HayConexion)
            {
                // Aqui va el codigo de realizar transaccion cuando hay conexion con la capa de integracion
                // Los datos se obtienen con el web service de la capa de integracion
                EstadosTransaccion estadoT = 0;

                //Realizar aqui el llamado al web service

                if (estadoT == EstadosTransaccion.Exitosa)
                {
                    //Si el web service retorno los datos correctamente asignarlos al objeto de DatosTransaccion
                    trans = new DatosTransaccion();

                    //trans.EstadoTrans = estadoT;
                    //trans.NumeroTransaccion =
                    //trans.TipoTrans = tipoTrans;
                    //trans.NumeroCuenta = numeroCuenta;
                    //trans.Monto = monto;
                    //trans.CedulaCliente = cedula;
                    //trans.ApellidoClienteCuenta =
                    //trans.NombreClienteCuenta =
                }
                else if (estadoT == EstadosTransaccion.CuentaSinFondos)
                {
                    TbMensaje.Text = "Cuenta sin fondos.";
                    MessageBox.Show("Cuenta sin fondos.");
                    return(null);
                }
                else if (estadoT == EstadosTransaccion.CuentaNoExiste)
                {
                    TbMensaje.Text = "Cuenta no existe.";
                    MessageBox.Show("Cuenta no existe.");
                    return(null);
                }
                else if (estadoT == EstadosTransaccion.CedulaSinPermiso)
                {
                    TbMensaje.Text = "Cedula sin permiso.";
                    MessageBox.Show("Cedula sin permiso.");
                    return(null);
                }
                else
                {
                    TbMensaje.Text = "Error no esperado en transaccion.";
                    MessageBox.Show("Error no eperado en transaccion.");
                    MainWindow.log.Warn($"El web service de transaccion retorno un estado de transaccion invalido. {(int)estadoT}");
                    return(null);
                }
            }
            else
            {
                // Aqui va el codigo para realizar transaccion fuera de linea
                // Los datos se ponen por defecto
                trans.EstadoTrans           = EstadosTransaccion.PendienteFueraLinea;
                trans.NumeroTransaccion     = 0;
                trans.TipoTrans             = tipoTrans;
                trans.NumeroCuenta          = numeroCuenta;
                trans.Monto                 = monto;
                trans.CedulaCliente         = cedula;
                trans.ApellidoClienteCuenta = "RAMIREZ MATEO";
                trans.NombreClienteCuenta   = "PEDRO MANUEL";
            }
            return(trans);
        }