Exemple #1
0
        //Llena datos para movimiento detalle
        private clsDetalleMovimiento llenarCamposDetalle(int Producto, int Cantidad)
        {
            clsDetalleMovimiento auxMantenimiento = new clsDetalleMovimiento();

            auxMantenimiento.IdDetalle    = movimientosInventarios.generarID("movimiento_inventario_detalle", "pk_id_movimiento_inventario_detalle");
            auxMantenimiento.IdMovimiento = int.Parse(txtNoInventario.Text);
            auxMantenimiento.IdProducto   = Producto;
            auxMantenimiento.Cantidad1    = Cantidad;
            return(auxMantenimiento);
        }
Exemple #2
0
        //Ingreso de Datos
        private bool guardarDatos()
        {
            int CodLinea = 0, Producto, Cantidad;

            try
            {
                this.mantenimientoInventario = llenarCamposEncabezado(auxRuta, auxVehiculo, noDocu);
                if (mantenimientoInventario == null)
                {
                    MessageBox.Show("Ingrese Campos", "Campos Vacios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return(false);
                }
                else
                {
                    movimientosInventarios.insertarEncabezadoMovimientos(mantenimientoInventario);
                    int iFilas = dgvMovimiento.Rows.Count;
                    //Linea por linea del grid inserta a detalle movimiento
                    while (CodLinea < (iFilas - 1))
                    {
                        Producto = int.Parse(dgvMovimiento.Rows[CodLinea].Cells["Producto"].Value.ToString());
                        Cantidad = int.Parse(dgvMovimiento.Rows[CodLinea].Cells["Cantidad"].Value.ToString());
                        ++CodLinea;
                        this.detalleMovimiento = llenarCamposDetalle(Producto, Cantidad);
                        movimientosInventarios.insertarDetalleMovimiento(detalleMovimiento, tipoMovimiento, noDocu);
                    }
                    MessageBox.Show("Datos de Movimiento de Inventario Ingresados", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Console.WriteLine("Movimiento Exitosa");
                    return(true);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Compra Fallida");
                MessageBox.Show("Error al Guardar Datos de Compras", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }
 public void insertarDetalleMovimiento(clsDetalleMovimiento detalleMovimiento, int tipoMovimiento, int? docuAsociado)
 {
     string SQL = "";
     int CantidadAnterior, datosExistentes,bodegaRandom;
     
     OdbcConnection con = conexion.conexion();
     OdbcCommand comando = con.CreateCommand();
     OdbcCommand comandoActualizacion;
     OdbcTransaction transaction;
     transaction = con.BeginTransaction();
     comando.Connection = con;
     comando.Transaction = transaction;
     try
     {
         con = conexion.conexion();
         comando = con.CreateCommand();
         transaction = con.BeginTransaction();
         comando.Connection = con;
         comando.Transaction = transaction;
         comando.CommandText = "INSERT INTO movimiento_inventario_detalle (pk_id_movimiento_inventario_detalle, fk_id_movimiento_inventario, fk_id_producto, cantidad_inventario_detalle) VALUES (?,?,?,?);";
         comando.Parameters.Add("pk_id_movimiento_inventario_detalle", OdbcType.Int).Value = detalleMovimiento.IdDetalle;
         comando.Parameters.Add("fk_id_movimiento_inventario", OdbcType.Int).Value = detalleMovimiento.IdMovimiento;
         comando.Parameters.Add("fk_id_producto", OdbcType.Int).Value = detalleMovimiento.IdProducto;
         comando.Parameters.Add("cantidad_inventario_detalle", OdbcType.Int).Value = detalleMovimiento.Cantidad1;
         
         if (tipoMovimiento == 1)
         {
             SQL = "SELECT COUNT(*) FROM inventario WHERE fk_id_producto="+detalleMovimiento.IdProducto;
             comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
             datosExistentes = int.Parse(comandoActualizacion.ExecuteScalar().ToString());
             SQL = "SELECT cantidad_inventario FROM inventario WHERE fk_id_producto=" + detalleMovimiento.IdProducto;
             OdbcCommand actualizar = new OdbcCommand(SQL, conexion.conexion());
             OdbcDataReader registro = actualizar.ExecuteReader();
             if (datosExistentes == 0)
             {
                 SQL = "INSERT INTO inventario (pk_id_inventario, fk_id_producto, cantidad_inventario,estado_inventario) VALUES (" +generarID("inventario","pk_id_inventario")+","+ detalleMovimiento.IdProducto + ","+ detalleMovimiento.Cantidad1 + ",1);";
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 comandoActualizacion.ExecuteNonQuery();
             }
             else
             {
                 while (registro.Read())
                 {
                     CantidadAnterior = int.Parse(registro["cantidad_inventario"].ToString());
                     SQL = "UPDATE inventario SET cantidad_inventario=" + (CantidadAnterior + detalleMovimiento.Cantidad1) + " WHERE fk_id_producto=" + detalleMovimiento.IdProducto + ";";
                     comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                     comandoActualizacion.ExecuteNonQuery();
                 }
             }
         }
         else if (tipoMovimiento == 2)
         {
             SQL = "SELECT COUNT(*) FROM inventario WHERE fk_id_producto=" + detalleMovimiento.IdProducto;
             comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
             datosExistentes = int.Parse(comandoActualizacion.ExecuteScalar().ToString());
             SQL = "SELECT cantidad_inventario FROM inventario WHERE fk_id_producto=" + detalleMovimiento.IdProducto;
             OdbcCommand actualizar = new OdbcCommand(SQL, conexion.conexion());
             OdbcDataReader registro = actualizar.ExecuteReader();
             if (datosExistentes == 0)
             {
                 MessageBox.Show("No existe inventario para realizar este movimiento", "Error en Inventarios", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
             else
             {
                 while (registro.Read())
                 {
                     CantidadAnterior = int.Parse(registro["cantidad_inventario"].ToString());
                     if (CantidadAnterior > detalleMovimiento.Cantidad1)
                     {
                         SQL = "UPDATE inventario SET cantidad_inventario=" + (CantidadAnterior - detalleMovimiento.Cantidad1) + " WHERE fk_id_producto=" + detalleMovimiento.IdProducto + ";";
                         comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                         comandoActualizacion.ExecuteNonQuery();
                     }
                     else
                         MessageBox.Show("La cantidad a actualizar es mayor que la que existe en stock", "ADVERTENCIA", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
             }
         }
         else if (tipoMovimiento == 3)
         {
             SQL = "SELECT COUNT(*) FROM existencia WHERE fk_id_producto=" + detalleMovimiento.IdProducto;
             comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
             datosExistentes = int.Parse(comandoActualizacion.ExecuteScalar().ToString());
             SQL = "SELECT cantidad_existencia FROM existencia WHERE fk_id_producto=" + detalleMovimiento.IdProducto;
             OdbcCommand actualizar = new OdbcCommand(SQL, conexion.conexion());
             OdbcDataReader registro = actualizar.ExecuteReader();
             if (datosExistentes == 0)
             {
                 SQL = "SELECT pk_id_bodega FROM bodega ORDER BY RAND() LIMIT 1 ";
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 bodegaRandom = int.Parse(comandoActualizacion.ExecuteScalar().ToString());
                 SQL = "INSERT INTO existencia (pk_id_existencia, fk_id_bodega, fk_id_producto, cantidad_existencia, estado_existencia) VALUES (" + generarID("existencia", "pk_id_existencia") +","+bodegaRandom+"," + detalleMovimiento.IdProducto + "," + detalleMovimiento.Cantidad1 + ",1);";
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 comandoActualizacion.ExecuteNonQuery();
             }
             else
             {
                 while (registro.Read())
                 {
                     CantidadAnterior = int.Parse(registro["cantidad_existencia"].ToString());
                     SQL = "UPDATE existencia SET cantidad_existencia=" + (CantidadAnterior + detalleMovimiento.Cantidad1) + " WHERE fk_id_producto=" + detalleMovimiento.IdProducto + ";";
                     comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                     comandoActualizacion.ExecuteNonQuery();
                 }
             }
         }
         comando.ExecuteNonQuery();
         if (docuAsociado != null)
         {
             if (tipoMovimiento == 1)
             {
                 SQL = "UPDATE compra_detalle SET estado_compra_detalle=0 WHERE fk_id_compra_encabezado=" + docuAsociado;
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 comandoActualizacion.ExecuteNonQuery();
                 SQL = "UPDATE compra_encabezado SET estado_encabezado_compra=0 WHERE pk_id_compra_encabezado=" + docuAsociado;
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 comandoActualizacion.ExecuteNonQuery();
             }
             else if (tipoMovimiento == 2)
             {
                 SQL = "DELETE FROM detalle_factura WHERE fk_id_factura=" + docuAsociado;
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 comandoActualizacion.ExecuteNonQuery();
                 SQL = "DELETE FROM facturas WHERE pk_id_factura=" + docuAsociado;
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 comandoActualizacion.ExecuteNonQuery();
             }
             else if (tipoMovimiento == 3)
             {
                 SQL = "UPDATE pedido_detalle SET estado_pedido_detalle=0 WHERE fk_id_pedido_encabezado=" + docuAsociado;
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 comandoActualizacion.ExecuteNonQuery();
                 SQL = "UPDATE pedido_encabezado SET estado_pedido_encabezado=0 WHERE pk_id_pedido_encabezado=" + docuAsociado;
                 comandoActualizacion = new OdbcCommand(SQL, conexion.conexion());
                 comandoActualizacion.ExecuteNonQuery();
             }
         }
         transaction.Commit();
         Console.WriteLine("Transaccion Exitosa Tabla 2");
     }
     catch (Exception ex)
     {
         transaction.Rollback();
         Console.WriteLine(ex.Message);
         MessageBox.Show("Error transaccion movimiento detalle", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }