//Método Excluir public string Excluir(DVenda Venda) { string resp = ""; SqlConnection SqlCon = new SqlConnection(); try { //codigo SqlCon.ConnectionString = Conexao.Cn; SqlCon.Open(); SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = SqlCon; SqlCmd.CommandText = "spdeletar_venda"; SqlCmd.CommandType = CommandType.StoredProcedure; SqlParameter ParId = new SqlParameter(); ParId.ParameterName = "@idvenda"; ParId.SqlDbType = SqlDbType.Int; ParId.Value = Venda.IdVenda; SqlCmd.Parameters.Add(ParId); //Executar o comando resp = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "OK"; } catch (Exception ex) { resp = ex.Message; } finally { if (SqlCon.State == ConnectionState.Open) { SqlCon.Close(); } } return(resp); }
//Método Inserir public string Inserir(DVenda Venda, List <DDetalhe_Venda> Detalhe) { string resp = ""; SqlConnection SqlCon = new SqlConnection(); try { //codigo SqlCon.ConnectionString = Conexao.Cn; SqlCon.Open(); SqlTransaction SqlTra = SqlCon.BeginTransaction(); SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = SqlCon; SqlCmd.Transaction = SqlTra; SqlCmd.CommandText = "spinserir_venda"; SqlCmd.CommandType = CommandType.StoredProcedure; SqlParameter ParId = new SqlParameter(); ParId.ParameterName = "@idvenda"; ParId.SqlDbType = SqlDbType.Int; ParId.Direction = ParameterDirection.Output; SqlCmd.Parameters.Add(ParId); SqlParameter ParIdCliente = new SqlParameter(); ParIdCliente.ParameterName = "@idcliente"; ParIdCliente.SqlDbType = SqlDbType.Int; ParIdCliente.Value = Venda.IdCliente; SqlCmd.Parameters.Add(ParIdCliente); SqlParameter ParIdFuncionario = new SqlParameter(); ParIdFuncionario.ParameterName = "@idfuncionario"; ParIdFuncionario.SqlDbType = SqlDbType.Int; ParIdFuncionario.Value = Venda.IdFuncionario; SqlCmd.Parameters.Add(ParIdFuncionario); SqlParameter ParData = new SqlParameter(); ParData.ParameterName = "@data"; ParData.SqlDbType = SqlDbType.Date; ParData.Value = Venda.Data; SqlCmd.Parameters.Add(ParData); SqlParameter ParTipoComprovante = new SqlParameter(); ParTipoComprovante.ParameterName = "@tipo_comprovante"; ParTipoComprovante.SqlDbType = SqlDbType.VarChar; ParTipoComprovante.Size = 20; ParTipoComprovante.Value = Venda.Tipo_Comprovante; SqlCmd.Parameters.Add(ParTipoComprovante); SqlParameter ParSerie = new SqlParameter(); ParSerie.ParameterName = "@serie"; ParSerie.SqlDbType = SqlDbType.VarChar; ParSerie.Size = 4; ParSerie.Value = Venda.Serie; SqlCmd.Parameters.Add(ParSerie); SqlParameter ParCorrelativo = new SqlParameter(); ParCorrelativo.ParameterName = "@correlativo"; ParCorrelativo.SqlDbType = SqlDbType.VarChar; ParCorrelativo.Size = 7; ParCorrelativo.Value = Venda.Correlativo; SqlCmd.Parameters.Add(ParCorrelativo); SqlParameter ParImposto = new SqlParameter(); ParImposto.ParameterName = "@imposto"; ParImposto.SqlDbType = SqlDbType.Decimal; ParImposto.Precision = 4; ParImposto.Scale = 2; ParImposto.Value = Venda.Imposto; SqlCmd.Parameters.Add(ParImposto); //Executar o comando resp = SqlCmd.ExecuteNonQuery() == 1 ? "OK" : "Registro não foi Inserido"; if (resp.Equals("OK")) { //Obter o código id da venda gerada this.IdVenda = Convert.ToInt32(SqlCmd.Parameters["@idvenda"].Value); foreach (DDetalhe_Venda det in Detalhe) { det.IdVenda = this.IdVenda; //Chamar método inserir no detalhes venda resp = det.Inserir(det, ref SqlCon, ref SqlTra); if (!resp.Equals("OK")) { break; } else { resp = DiminuirEstoque(det.IdDetalhe_Entrada, det.Quantidade); if (!resp.Equals("OK")) { break; } } } } if (resp.Equals("OK")) { SqlTra.Commit(); //Só a partir do comit os dados são salvos com uma transação } else { SqlTra.Rollback(); //Roolback cancela toda a transação, nada é salvo!! } } catch (Exception ex) { resp = ex.Message; } finally { if (SqlCon.State == ConnectionState.Open) { SqlCon.Close(); } } return(resp); }