//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); }
//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; }