예제 #1
0
        /***************PAGO EN REALES**************************/
        private void CobrarRsCaja()
        {
            modSesion modSesion = new modSesion();

            if (txtpagors.Text != "")
            {
                try
                {
                    decimal pago;
                    pago           = modSesion.convertirDecimal(txtpagors.Text); // se convierte a decimal valor de la caja de texto
                    saldoPrincipal = saldoPrincipal + pagoRs;                    // suma pagoRs al saldoPrincipal antes de aplicar nuevo pago en Rs
                    if (modSesion.config_moneda == "US")
                    {
                        pagoRs = pago / cotRs;                       // se convierte nuevo monto a pagar en la moneda principal del sistema
                    }
                    else if (modSesion.config_moneda == "GS")
                    {
                        pagoRs = pago * cotRs;                       // se convierte nuevo monto a pagar en la moneda principal del sistema
                    }

                    saldoPrincipal = saldoPrincipal - pagoRs;                             // se resta pagoRs  al saldo principal del sistema
                    txtpagors.Text = Convert.ToString(modSesion.mascaraCotizacion(pago)); // se aplica mascara a la caja de texto
                    mostrarSaldoCobrar();                                                 // se recalcula saldoPrincipal en las distintas monedas
                }
                catch (Exception ex)
                {
                    // se limpia caja de texto en caso de ingresar letras en el pago
                    MessageBox.Show(ex.Message);
                    txtpagors.Text = Convert.ToString(modSesion.mascaraCotizacion("0"));
                    txtpagors.Focus();
                }
            }
            else
            {
                // se aplica mascara en caso de que se quede vacio el pago
                txtpagors.Text = Convert.ToString(modSesion.mascaraCotizacion("0"));
            }
        }
예제 #2
0
        /**********VUELTO EN EUROS**********/
        public void vueltoEuros()
        {
            modSesion modSesion = new modSesion();

            if (txtvueltoCr.Text != "")
            {
                try
                {
                    decimal vuelto;
                    vuelto         = modSesion.convertirDecimal(txtvueltoCr.Text); // se convierte a decimal valor de la caja de texto
                    saldoPrincipal = saldoPrincipal - vueltoCr;                    // resta vueltors al saldoPrincipal antes de aplicar nuevo vuelto en cr
                    if (modSesion.config_moneda == "US")
                    {
                        vueltoCr = vuelto / cotCr;                               // se convierte nuevo monto vuelto en la moneda principal del sistema
                    }
                    else if (modSesion.config_moneda == "GS")
                    {
                        vueltoCr = vuelto * cotCr;                               // se convierte nuevo monto vuelto en la moneda principal del sistema
                    }

                    saldoPrincipal   = saldoPrincipal + vueltoCr;                             // se suma vuelto  al saldo principal del sistema (Saldo Negativo)
                    txtvueltoCr.Text = Convert.ToString(modSesion.mascaraCotizacion(vuelto)); // se aplica mascara a la caja de texto
                    mostrarSaldoCobrar();                                                     // se recalcula saldoPrincipal en las distintas monedas
                }
                catch (Exception ex)
                {
                    // se limpia caja de texto en caso de ingresar letras en el vuelto
                    MessageBox.Show(ex.Message);
                    txtvueltoCr.Focus();
                    txtvueltoCr.Text = Convert.ToString(modSesion.mascaraCotizacion("0"));
                }
            }
            else
            {
                // se aplica mascara en caso de que se quede vacio el pago
                txtvueltoCr.Text = Convert.ToString(modSesion.mascaraCotizacion("0"));
            }
        }
예제 #3
0
        /*************METODOS PARA EL INSERT DE LA CAJA**************/
        public void cobrarVenta()
        {
            modSesion  modSesion  = new modSesion();
            modUsuario modUsuario = new modUsuario();

            frmComprobante frmComprobante = new frmComprobante(txtId_operacion.Text);

            if (Math.Round(saldoPrincipal, 2) != 0)
            {
                MessageBox.Show("Complete monto a pagar o verifique vuelto");
            }
            else
            {
                MySqlCommand     comando;
                MySqlTransaction transaccion;
                string           sqlCaja;
                string           sqlStock;
                string           sqlventa;
                modCaja          modCaja = new modCaja();
                Conexion_DB.AbrirConexion();          // se abre una conexion con la base de datos
                MySqlConnection con = Conexion_DB.conexion;
                transaccion = con.BeginTransaction(); // se inicia una transaccion con la base de datos, acontinuacion se inicia procesos multiples
                try
                {
                    // se inicia proceso 1 :  insertar registro en la tabla caja-----------------------------------------
                    sqlCaja = "INSERT INTO db_cajaregistro (Fecha,Movimiento,Operacion,id_Operacion,SubTotal,Descuento,TotalNeto,GS, US, RS, PA, CH, TJ, CR,Id_Cotizacion,Estado,Id_Usuarios) value " + "(current_timestamp,@mov,@operacion,@id_op,@subtotal,@descuento,@totalneto,@gs,@us,@rs,@pa,@ch,@tj,@cr,@id_cotizacion,@estado,@user)";
                    comando = new MySqlCommand(sqlCaja, con);
                    comando.Parameters.AddWithValue("@mov", "E");
                    comando.Parameters.AddWithValue("@operacion", "VENTA");
                    comando.Parameters.AddWithValue("@id_op", txtId_operacion.Text);
                    comando.Parameters.AddWithValue("@subtotal", totalPrincipal);
                    comando.Parameters.AddWithValue("@descuento", descuentoPrincipal);
                    comando.Parameters.AddWithValue("@totalneto", totalPrincipal - descuentoPrincipal);
                    comando.Parameters.AddWithValue("@gs", modSesion.convertirDecimal(txtpagogs.Text) - modSesion.convertirDecimal(txtvueltogs.Text));
                    comando.Parameters.AddWithValue("@us", modSesion.convertirDecimal(txtpagous.Text) - modSesion.convertirDecimal(txtvueltous.Text));
                    comando.Parameters.AddWithValue("@rs", modSesion.convertirDecimal(txtpagors.Text) - modSesion.convertirDecimal(txtvueltors.Text));
                    comando.Parameters.AddWithValue("@pa", modSesion.convertirDecimal(txtpagops.Text) - modSesion.convertirDecimal(txtvueltops.Text));
                    comando.Parameters.AddWithValue("@ch", 0);
                    comando.Parameters.AddWithValue("@tj", 0);
                    comando.Parameters.AddWithValue("@cr", modSesion.convertirDecimal(txtpagoCr.Text) - modSesion.convertirDecimal(txtvueltoCr.Text));
                    comando.Parameters.AddWithValue("@id_cotizacion", idCotizacion);
                    comando.Parameters.AddWithValue("@estado", "1");
                    int usr = Convert.ToInt32(modUsuario.VerificarIdUsuarioActivo());

                    comando.Parameters.AddWithValue("@user", usr);
                    comando.ExecuteNonQuery();

                    // se inicia proceso 2: Actualizar estado de venta y saldo de venta
                    decimal saldoVenta;
                    string  tipo_venta;
                    if (modSesion.convertirDecimal(txtpagoCr.Text) == 0) // se verifica si pago no fue a credito
                    {
                        saldoVenta = 0;
                        tipo_venta = "Contado";
                    }
                    else
                    {
                        saldoVenta = modSesion.convertirDecimal(txtpagoCr.Text) - modSesion.convertirDecimal(txtvueltoCr.Text);
                        tipo_venta = "Credito";
                    }

                    sqlventa = "update db_ventas set Estado=2, TotalSaldo=@saldo,TipoDeVenta=@tipo where id= @id";
                    comando  = new MySqlCommand(sqlventa, con);
                    comando.Parameters.AddWithValue("@saldo", saldoVenta);
                    comando.Parameters.AddWithValue("@id", txtId_operacion.Text);
                    comando.Parameters.AddWithValue("@tipo", tipo_venta);
                    comando.ExecuteNonQuery();

                    // se inicia proceso 3: Descontar stock de la venta cobrada
                    int     c, n;
                    var     consulta  = new MySqlDataAdapter();
                    var     resultado = new DataSet();
                    decimal cantidad;
                    int     idproducto;
                    c        = 0;
                    sqlventa = "";
                    // se genera sql para capturar productos de la venta cobrada
                    sqlventa = "select * from db_ventaitems where Id_Ventas = " + txtId_operacion.Text;
                    consulta = new MySqlDataAdapter(sqlventa, con);
                    consulta.Fill(resultado, "rsVenta");
                    while (c < resultado.Tables["rsVenta"].Rows.Count)
                    {
                        // se captura cantidad y codigo de producto de la consulta de la venta
                        cantidad   = Convert.ToDecimal(resultado.Tables["rsVenta"].Rows[c]["cantidad"]);
                        idproducto = Convert.ToInt32(resultado.Tables["rsVenta"].Rows[c]["id_producto"]);
                        // se genera sql para actualizar stock y se envia parametros
                        sqlStock = "update db_productos set Stock = Stock - @cantidad where id=@idproducto";
                        comando  = new MySqlCommand(sqlStock, con);
                        comando.Parameters.AddWithValue("@cantidad", cantidad);
                        comando.Parameters.AddWithValue("@idproducto", idproducto);
                        comando.ExecuteNonQuery();
                        c = c + 1;
                    }

                    MensajeDeCheck mensajeDeCheck = new MensajeDeCheck("   Cobro Efectuado con exito");
                    mensajeDeCheck.ShowDialog();

                    frmComprobante.ShowDialog();

                    transaccion.Commit(); // finaliza procesos y aplica cambios en la base de datos

                    Conexion_DB.CerraConexion();
                    preparaNuevaCaja();
                    modCaja.capturarNuevoNumeroCaja();
                    iniciarCobroVenta();
                    mostrarCotizacion();
                }
                catch (MySqlException ex)
                {
                    MessageBox.Show("Error al procesar cobro " + ex.Message);
                    transaccion.Rollback();
                } // si ocurre algun error no aplica cambios en la base de datos
            }
        }