public void Inserir(Doc_CotPreco p, List <ProdutoDocumento> listaItemCotacao, EventoDocumento eventoDocumento, List <AnexoDocumento> ListaAnexoDocumento, List <Pessoa> ListaFornecedores, List <PessoaProdutoDocumento> listaCotacoesProdutos) { try { AbrirConexao(); strSQL = "insert into DOCUMENTO (CD_TIPO_DOCUMENTO," + "CD_EMPRESA," + "CD_SITUACAO," + "NR_DOCUMENTO," + "DT_HR_EMISSAO," + "DT_VENCIMENTO," + "CD_GER_SEQ_DOC, " + "VL_TOTAL_GERAL, " + "CD_USU_RESPONSAVEL, " + "DT_HR_ENTRADA, OB_DOCUMENTO,CD_DOC_ORIGINAL) values (@v1,@v2,@v3,@v4,@v5,@v6,@v7,@v8,@v9,@v10,@v11,@v12) SELECT SCOPE_IDENTITY();"; Cmd = new SqlCommand(strSQL, Con); decimal CodigoGerado = 0; GeradorSequencialDocumentoEmpresaDAL gerDAL = new GeradorSequencialDocumentoEmpresaDAL(); if (p.Cpl_NomeTabela != null) { CodigoGerado = gerDAL.IncluirTabelaGerador(p.Cpl_NomeTabela, Convert.ToInt32(p.CodigoGeracaoSequencialDocumento), p.Cpl_Usuario, p.Cpl_Maquina); } Cmd.Parameters.AddWithValue("@v1", 13); Cmd.Parameters.AddWithValue("@v2", p.CodigoEmpresa); Cmd.Parameters.AddWithValue("@v3", p.CodigoSituacao); Cmd.Parameters.AddWithValue("@v4", p.NumeroDocumento); Cmd.Parameters.AddWithValue("@v5", p.DataHoraEmissao); Cmd.Parameters.AddWithValue("@v6", p.DataValidade); Cmd.Parameters.AddWithValue("@v7", CodigoGerado); Cmd.Parameters.AddWithValue("@v8", p.ValorTotal); Cmd.Parameters.AddWithValue("@v9", p.CodigoUsuario); Cmd.Parameters.AddWithValue("@v10", p.DataHoraEmissao); Cmd.Parameters.AddWithValue("@v11", p.DescricaoDocumento); Cmd.Parameters.AddWithValue("@v12", p.CodigoDocumentoOriginal); p.CodigoDocumento = Convert.ToDecimal(Cmd.ExecuteScalar()); } catch (SqlException ex) { if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error { switch (ex.Errors[0].Number) { case 2601: // Primary key violation throw new DuplicateNameException("Inclusão não Permitida!!! Chave já consta no Banco de Dados. Mensagem :" + ex.Message.ToString(), ex); case 2627: // Primary key violation throw new DuplicateNameException("Inclusão não Permitida!!! Chave já consta no Banco de Dados. Mensagem :" + ex.Message.ToString(), ex); default: throw new Exception("Erro ao Incluir Orcamento: " + ex.Message.ToString()); } } } catch (Exception ex) { throw new Exception("Erro ao gravar Solicitação de Compra: " + ex.Message.ToString()); } finally { FecharConexao(); short shtTpPessoa = 15; foreach (var item in ListaFornecedores) { shtTpPessoa++; ExcluirPessoaDocumento(p.CodigoDocumento, shtTpPessoa); //Pessoa do Documento Fornecedor InserirPessoaDocumento(p.CodigoDocumento, item.CodigoPessoa, shtTpPessoa); //Pessoa do Documento Fornecedor } if (eventoDocumento != null) { EventoDocumentoDAL eventoDAL = new EventoDocumentoDAL(); eventoDAL.Inserir(eventoDocumento, p.CodigoDocumento); } AnexoDocumentoDAL AnexoDAL = new AnexoDocumentoDAL(); AnexoDAL.Inserir(p.CodigoDocumento, ListaAnexoDocumento); InserirProduto(p.CodigoDocumento, listaItemCotacao); PessoaProdutoDocumentoDAL PpdDAL = new PessoaProdutoDocumentoDAL(); PpdDAL.InserirItem(p.CodigoDocumento, listaCotacoesProdutos); } }
public void Atualizar(Doc_CotPreco p, List <ProdutoDocumento> listaItemCotacao, EventoDocumento eventoDocumento, List <AnexoDocumento> ListaAnexoDocumento, List <Pessoa> ListaFornecedores, List <PessoaProdutoDocumento> listaCotacoesProdutos) { try { AbrirConexao(); strSQL = "update [DOCUMENTO] set CD_TIPO_DOCUMENTO = @v1," + " CD_EMPRESA = @v2," + " CD_SITUACAO = @v3," + " NR_DOCUMENTO = @v4," + " DT_HR_EMISSAO = @v5," + " DT_VENCIMENTO = @v6," + " VL_TOTAL_GERAL = @v7," + " OB_DOCUMENTO = @v8, " + " CD_DOC_ORIGINAL = @v9 " + " Where [CD_DOCUMENTO] = @CODIGO "; Cmd = new SqlCommand(strSQL, Con); Cmd.Parameters.AddWithValue("@CODIGO", p.CodigoDocumento); Cmd.Parameters.AddWithValue("@v1", 13); Cmd.Parameters.AddWithValue("@v2", p.CodigoEmpresa); Cmd.Parameters.AddWithValue("@v3", p.CodigoSituacao); Cmd.Parameters.AddWithValue("@v4", p.NumeroDocumento); Cmd.Parameters.AddWithValue("@v5", p.DataHoraEmissao); Cmd.Parameters.AddWithValue("@v6", p.DataValidade); Cmd.Parameters.AddWithValue("@v7", p.ValorTotal); Cmd.Parameters.AddWithValue("@v8", p.DescricaoDocumento); if (p.CodigoSituacao == 203) { p.CodigoDocumentoOriginal = 0; } Cmd.Parameters.AddWithValue("@v9", p.CodigoDocumentoOriginal); Cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception("Erro ao atualizar Solicitação de Compra: " + ex.Message.ToString()); } finally { FecharConexao(); DataTable tbProdDocA = new DataTable(); DataTable tbProdDocB = new DataTable(); List <Habil_Log> listaLog = new List <Habil_Log>(); Habil_LogDAL Rn_Log = new Habil_LogDAL(); tbProdDocA = ObterCotacaoCompraPessoa(p.CodigoDocumento); short shtTpPessoa = 15; foreach (var item in ListaFornecedores) { shtTpPessoa++; ExcluirPessoaDocumento(p.CodigoDocumento, shtTpPessoa); //Pessoa do Documento Fornecedor InserirPessoaDocumento(p.CodigoDocumento, item.CodigoPessoa, shtTpPessoa); //Pessoa do Documento Fornecedor } tbProdDocB = ObterCotacaoCompraPessoa(p.CodigoDocumento); listaLog = Rn_Log.ComparaDataTablesRelacionalPessoa_do_Documento(tbProdDocA, tbProdDocB, Convert.ToDouble(p.CodigoDocumento), p.Cpl_Usuario, p.Cpl_Maquina, 21, 22, 23, "PESSOA_DO_DOCUMENTO", "CD_DOCUMENTO", "TP_PESSOA"); foreach (Habil_Log item in listaLog) { Rn_Log.Inserir(item); } if (eventoDocumento != null) { EventoDocumentoDAL eventoDAL = new EventoDocumentoDAL(); eventoDAL.Inserir(eventoDocumento, p.CodigoDocumento); } AnexoDocumentoDAL AnexoDAL = new AnexoDocumentoDAL(); AnexoDAL.Inserir(p.CodigoDocumento, ListaAnexoDocumento); tbProdDocA = new DataTable(); tbProdDocA = ObterCotacaoCompraProduto(p.CodigoDocumento); InserirProduto(p.CodigoDocumento, listaItemCotacao); tbProdDocB = new DataTable(); tbProdDocB = ObterCotacaoCompraProduto(p.CodigoDocumento); listaLog = new List <Habil_Log>(); listaLog = Rn_Log.ComparaDataTablesRelacionalProduto_do_Documento(tbProdDocA, tbProdDocB, Convert.ToDouble(p.CodigoDocumento), p.Cpl_Usuario, p.Cpl_Maquina, 18, 19, 20, "PRODUTO_DO_DOCUMENTO", "CD_DOCUMENTO", "CD_PROD_DOCUMENTO"); foreach (Habil_Log item in listaLog) { Rn_Log.Inserir(item); } PessoaProdutoDocumentoDAL PpdDAL = new PessoaProdutoDocumentoDAL(); PpdDAL.InserirItem(p.CodigoDocumento, listaCotacoesProdutos); } }