Example #1
0
        //Metodo utilizado para crear una venta
        public string InsertarVenta(Ventas varVenta, List <DetalleVenta> detalles)
        {
            string        rpta   = "";
            SqlConnection sqlcon = new SqlConnection();

            try
            {
                sqlcon.ConnectionString = Conexion.cadenaconexion;
                sqlcon.Open();
                SqlTransaction sqlTra = sqlcon.BeginTransaction();
                SqlCommand     sqlCmd = new SqlCommand();
                sqlCmd.Connection  = sqlcon;
                sqlCmd.Transaction = sqlTra;
                sqlCmd.CommandText = "sp_Ins_Venta";
                sqlCmd.CommandType = CommandType.StoredProcedure;

                //Agregar parámetros
                SqlParameter parCodVen = new SqlParameter();
                parCodVen.ParameterName = "@codVenta";
                parCodVen.SqlDbType     = SqlDbType.Int;
                parCodVen.Direction     = ParameterDirection.Output;
                sqlCmd.Parameters.Add(parCodVen);

                SqlParameter parCli = new SqlParameter();
                parCli.ParameterName = "@cliente";
                parCli.SqlDbType     = SqlDbType.VarChar;
                parCli.Size          = 100;
                parCli.Value         = varVenta.Var_cliente;
                sqlCmd.Parameters.Add(parCli);

                SqlParameter parCaja = new SqlParameter();
                parCaja.ParameterName = "@Caja";
                parCaja.SqlDbType     = SqlDbType.Int;
                parCaja.Value         = varVenta.Var_caja;
                sqlCmd.Parameters.Add(parCaja);

                SqlParameter parDes = new SqlParameter();
                parDes.ParameterName = "@Descuento";
                parDes.SqlDbType     = SqlDbType.Decimal;
                parDes.Precision     = 8;
                parDes.Scale         = 0;
                parDes.Value         = varVenta.Var_descuento;
                sqlCmd.Parameters.Add(parDes);


                SqlParameter parTotal = new SqlParameter();
                parTotal.ParameterName = "@VlrTotalVenta";
                parTotal.SqlDbType     = SqlDbType.Decimal;
                parTotal.Precision     = 10;
                parTotal.Scale         = 0;
                parTotal.Value         = varVenta.Var_descuento;
                sqlCmd.Parameters.Add(parTotal);

                //Ejecutamos el comando
                rpta = sqlCmd.ExecuteNonQuery() == 1 ? "OK" : "No se inserto el detalle de venta";
                if (rpta.Equals("OK"))
                {
                    //Obtenemos el codigo de la venta que se generó por la base de datos
                    this.Var_codVenta = Convert.ToInt32(sqlCmd.Parameters["@codVenta"].Value);
                    foreach (DetalleVenta det in detalles)
                    {
                        //Establecemos el código de la venta que se autogeneró
                        det.codigoVenta = this.Var_codVenta;
                        rpta            = det.Insertar(det, ref sqlcon, ref sqlTra);
                        if (!rpta.Equals("OK"))
                        {
                            break;//Se ocurre algun error al insertar nos salimos del for
                        }
                    }
                }
                if (rpta.Equals("OK"))
                {
                    sqlTra.Commit();//Se inserto todo los detalles y confirmamos la transaccion
                }
                else
                {
                    sqlTra.Rollback();//Algun detalle no inserto y negamos la transanccion
                }
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                if (sqlcon.State == ConnectionState.Open)
                {
                    sqlcon.Close();
                }
            }
            return(rpta);
        }
Example #2
0
        //Metodo utilizado para crear una venta
        public string InsertarVenta(Ventas varVenta, List<DetalleVenta> detalles)
        {
            string rpta = "";
            SqlConnection sqlcon = new SqlConnection();
            try
            {
                sqlcon.ConnectionString = Conexion.cadenaconexion;
                sqlcon.Open();
                SqlTransaction sqlTra = sqlcon.BeginTransaction();
                SqlCommand sqlCmd = new SqlCommand();
                sqlCmd.Connection = sqlcon;
                sqlCmd.Transaction = sqlTra;
                sqlCmd.CommandText = "sp_Ins_Venta";
                sqlCmd.CommandType = CommandType.StoredProcedure;

                //Agregar parámetros
                SqlParameter parCodVen = new SqlParameter();
                parCodVen.ParameterName = "@codVenta";
                parCodVen.SqlDbType = SqlDbType.Int;
                parCodVen.Direction = ParameterDirection.Output;
                sqlCmd.Parameters.Add(parCodVen);

                SqlParameter parCli = new SqlParameter();
                parCli.ParameterName = "@cliente";
                parCli.SqlDbType = SqlDbType.VarChar;
                parCli.Size = 100;
                parCli.Value = varVenta.Var_cliente;
                sqlCmd.Parameters.Add(parCli);

                SqlParameter parCaja = new SqlParameter();
                parCaja.ParameterName = "@Caja";
                parCaja.SqlDbType = SqlDbType.Int;
                parCaja.Value = varVenta.Var_caja;
                sqlCmd.Parameters.Add(parCaja);

                SqlParameter parDes = new SqlParameter();
                parDes.ParameterName = "@Descuento";
                parDes.SqlDbType = SqlDbType.Decimal;
                parDes.Precision = 8;
                parDes.Scale = 0;
                parDes.Value = varVenta.Var_descuento;
                sqlCmd.Parameters.Add(parDes);

                SqlParameter parTotal = new SqlParameter();
                parTotal.ParameterName = "@VlrTotalVenta";
                parTotal.SqlDbType = SqlDbType.Decimal;
                parTotal.Precision = 10;
                parTotal.Scale = 0;
                parTotal.Value = varVenta.Var_descuento;
                sqlCmd.Parameters.Add(parTotal);

                //Ejecutamos el comando
                rpta = sqlCmd.ExecuteNonQuery() == 1 ? "OK" : "No se inserto el detalle de venta";
                if (rpta.Equals("OK"))
                {
                    //Obtenemos el codigo de la venta que se generó por la base de datos
                    this.Var_codVenta = Convert.ToInt32(sqlCmd.Parameters["@codVenta"].Value);
                    foreach (DetalleVenta  det in detalles)
                    {
                        //Establecemos el código de la venta que se autogeneró
                        det.codigoVenta = this.Var_codVenta;
                        rpta = det.Insertar(det, ref sqlcon, ref sqlTra);
                        if (!rpta.Equals("OK"))
                        {
                            break;//Se ocurre algun error al insertar nos salimos del for
                        }
                    }

                }
                if (rpta.Equals("OK"))
                {
                    sqlTra.Commit();//Se inserto todo los detalles y confirmamos la transaccion
                }
                else
                {
                    sqlTra.Rollback();//Algun detalle no inserto y negamos la transanccion
                }
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
               	    }
                finally
            {
                if (sqlcon.State == ConnectionState.Open) sqlcon.Close();
            }
            return rpta;
        }