Esempio n. 1
0
 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.");
     }
 }
Esempio n. 2
0
        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}");
        }