예제 #1
0
        private Int32 EjecutartransaccionCompras(clases.compras.facturas_compras c, clases.compras.compras cc, List <clases.compras.detalles_compras> com, Dictionary <string, List <clases.presentaciones_productos> > pr)
        {
            Int32            numeroFilas = 1;
            MySqlTransaction trans       = null;
            long             res         = 0;

            if (base.conectar())
            {
                try
                {
                    trans = base.Conec.BeginTransaction();
                    MySqlCommand comando = new MySqlCommand();
                    comando.Connection  = base.Conec;
                    comando.Transaction = trans;

                    //Insertando la factura
                    comando.CommandText = c.sentenciaIngresar();
                    comando.ExecuteNonQuery();
                    res = comando.LastInsertedId;
                    Console.WriteLine(c.sentenciaIngresar());

                    //Insertando la compra
                    cc.Idfactura        = res.ToString();
                    comando.CommandText = cc.ingresarProducto();
                    comando.ExecuteNonQuery();
                    Console.WriteLine(cc.sentenciaIngresar());

                    //Insertando los productos comprados
                    foreach (clases.compras.detalles_compras dc in com)
                    {
                        dc.Idfactura_compra = res.ToString();
                        comando.CommandText = dc.ingresarDetalleCompra();
                        comando.ExecuteNonQuery();
                        Console.WriteLine(dc.sentenciaIngresar());
                    }

                    //modificado los precios de los productos
                    foreach (KeyValuePair <string, List <clases.presentaciones_productos> > listaa in pr)
                    {
                        foreach (clases.presentaciones_productos pre in listaa.Value)
                        {
                            comando.CommandText = pre.cambio_precios().ToString();
                            comando.ExecuteNonQuery();
                            Console.WriteLine(pre.cambio_precios().ToString());
                        }
                    }

                    trans.Commit();
                }
                catch (MySqlException e)
                {
                    Console.WriteLine(e.Message);
                    trans.Rollback();
                    numeroFilas = -1;
                }
            }

            return(numeroFilas);
        }
예제 #2
0
 public Int32 transaccionComprarProdu(clases.compras.facturas_compras c, clases.compras.compras cc, List <clases.compras.detalles_compras> com, Dictionary <string, List <clases.presentaciones_productos> > pr)
 {
     return(EjecutartransaccionCompras(c, cc, com, pr));
 }