Ejemplo n.º 1
0
        //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);
        }
Ejemplo n.º 2
0
        //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);
        }