public void EventoDocumento(Doc_SolCompra doc, int CodigoSituacao) { List <EventoDocumento> ListaEvento = new List <EventoDocumento>(); EventoDocumentoDAL eventoDAL = new EventoDocumentoDAL(); ListaEvento = eventoDAL.ObterEventos(doc.CodigoDocumento); DBTabelaDAL RnTab = new DBTabelaDAL(); EventoDocumento eventodoc = new EventoDocumento(); eventodoc.CodigoDocumento = Convert.ToDecimal(doc.CodigoDocumento); //eventodoc.CodigoMaquina = doc.Cpl_Maquina; eventodoc.CodigoUsuario = doc.CodigoUsuario; eventodoc.CodigoSituacao = CodigoSituacao; eventodoc.DataHoraEvento = RnTab.ObterDataHoraServidor(); if (ListaEvento.Count() > 0) { eventodoc.CodigoEvento = ListaEvento.Max(x => x.CodigoEvento) + 1; } else { eventodoc.CodigoEvento = 1; } eventoDAL.Inserir(eventodoc, doc.CodigoDocumento); }
public void AtualizarSituacao(decimal CodigoDocumento, int CodigoSituacaoNova, int CodigoSituacaoAnterior, int CodigoUsuario, int CodigoMaquina) { try { AbrirConexao(); strSQL = "update [DOCUMENTO] set CD_SITUACAO = @v1 WHERE CD_DOCUMENTO = @v2 "; Cmd = new SqlCommand(strSQL, Con); Cmd.Parameters.AddWithValue("@v1", CodigoSituacaoNova); Cmd.Parameters.AddWithValue("@v2", CodigoDocumento); if (CodigoSituacaoAnterior != 0 && CodigoSituacaoAnterior != CodigoSituacaoNova) { Doc_SolCompra doc = new Doc_SolCompra(); Doc_SolCompraDAL docDAL = new Doc_SolCompraDAL(); doc = docDAL.PesquisarSolCompra(CodigoDocumento); doc.Cpl_Maquina = CodigoMaquina; doc.CodigoUsuario = CodigoUsuario; if (doc != null) { EventoDocumento(doc, CodigoSituacaoNova); } } Cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception("Erro ao atualizar situacao Solicitação de Compra: " + ex.Message.ToString()); } }
public List <Doc_SolCompra> ListarSolCompraCompleto(List <DBTabelaCampos> ListaFiltros) { try { AbrirConexao(); string strValor = ""; string strSQL = "Select * from [VW_DOC_SOL_COMPRA] "; strValor = MontaFiltroIntervalo(ListaFiltros); strSQL = strSQL + strValor; strSQL = strSQL + " ORDER BY CD_DOCUMENTO DESC "; Cmd = new SqlCommand(strSQL, Con); Dr = Cmd.ExecuteReader(); List <Doc_SolCompra> lista = new List <Doc_SolCompra>(); while (Dr.Read()) { Doc_SolCompra p = new Doc_SolCompra(); p.CodigoDocumento = Convert.ToDecimal(Dr["CD_DOCUMENTO"]); p.CodigoEmpresa = Convert.ToInt32(Dr["CD_EMPRESA"]); p.NumeroDocumento = Convert.ToInt64(Dr["NR_DOCUMENTO"]); p.DataHoraEmissao = Convert.ToDateTime(Dr["DT_HR_EMISSAO"]); p.DataValidade = Convert.ToDateTime(Dr["DT_VENCIMENTO"]); p.ValorTotal = Convert.ToDecimal(Dr["VL_TOTAL_GERAL"]); p.DescricaoDocumento = Convert.ToString(Dr["OB_DOCUMENTO"]); p.CodigoSituacao = Convert.ToInt32(Dr["CD_SITUACAO"]); p.Cpl_Pessoa = Convert.ToString(Dr["RAZ_SOCIAL"]); p.Cpl_CodigoPessoa = Convert.ToInt64(Dr["CD_PESSOA"]); p.CodigoGeracaoSequencialDocumento = Convert.ToInt32(Dr["CD_GER_SEQ_DOC"]); p.Cpl_Situacao = Dr["DS_SITUACAO"].ToString(); p.CodigoUsuario = Convert.ToInt32(Dr["CD_USU_RESPONSAVEL"]); p.Cpl_NomeUsuario = Dr["NM_COMPLETO"].ToString(); lista.Add(p); } return(lista); } catch (Exception ex) { throw new Exception("Erro ao Listar TODos Solicitações de Compra: " + ex.Message.ToString()); } finally { FecharConexao(); } }
public Doc_SolCompra PesquisarSolCompra(decimal Codigo) { try { AbrirConexao(); strSQL = "Select * from [VW_DOC_SOL_COMPRA] Where CD_DOCUMENTO= @v1"; Cmd = new SqlCommand(strSQL, Con); Cmd.Parameters.AddWithValue("@v1", Codigo); Dr = Cmd.ExecuteReader(); Doc_SolCompra p = null; if (Dr.Read()) { p = new Doc_SolCompra(); p.CodigoDocumento = Convert.ToDecimal(Dr["CD_DOCUMENTO"]); p.NumeroDocumento = Convert.ToInt64(Dr["NR_DOCUMENTO"]); p.DataHoraEmissao = Convert.ToDateTime(Dr["DT_HR_EMISSAO"]); p.DataValidade = Convert.ToDateTime(Dr["DT_VENCIMENTO"]); p.ValorTotal = Convert.ToDecimal(Dr["VL_TOTAL_GERAL"]); p.DescricaoDocumento = Convert.ToString(Dr["OB_DOCUMENTO"]); p.CodigoSituacao = Convert.ToInt32(Dr["CD_SITUACAO"]); p.CodigoGeracaoSequencialDocumento = Convert.ToInt32(Dr["CD_GER_SEQ_DOC"]); p.CodigoFornecedor = Convert.ToInt32(Dr["CD_PESSOA"]); p.MotivoCancelamento = Dr["TX_MOTIVO_BAIXA"].ToString(); } return(p); } catch (Exception ex) { throw new Exception("Erro ao Pesquisar Doc_SolCompra: " + ex.Message.ToString()); } finally { FecharConexao(); } }
public void AtualizaSituacaoSolicitacaoCompra(decimal CodigoDocumento, int CodigoSituacao, int CodigoUsuario, int CodigoMaquina) { AbrirConexao(); SqlCommand cmd1 = new SqlCommand(); SqlCommand cmd2 = new SqlCommand(); SqlCommand cmd3 = new SqlCommand(); SqlTransaction transaction = Con.BeginTransaction(); try { //Monta Tela List <EventoDocumento> ListaEvento = new List <EventoDocumento>(); List <AnexoDocumento> ListaAnexo = new List <AnexoDocumento>(); List <ProdutoDocumento> ListaProdutos = new List <ProdutoDocumento>(); ProdutoDocumentoDAL RnPd = new ProdutoDocumentoDAL(); Doc_SolCompra p1 = new Doc_SolCompra(); Doc_SolCompraDAL docDAL = new Doc_SolCompraDAL(); EventoDocumentoDAL eve = new EventoDocumentoDAL(); AnexoDocumentoDAL anexo = new AnexoDocumentoDAL(); p1 = docDAL.PesquisarSolCompra(CodigoDocumento); ListaProdutos = RnPd.ObterItemSolCompra(CodigoDocumento); ListaProdutos = ListaProdutos.Where(x => x.CodigoSituacao != 134).ToList(); ListaEvento = eve.ObterEventos(CodigoDocumento); ListaAnexo = anexo.ObterAnexos(CodigoDocumento); //Gravar Documento p1.Cpl_Maquina = CodigoMaquina; p1.Cpl_Usuario = CodigoUsuario; p1.CodigoSituacao = CodigoSituacao; p1.MotivoCancelamento = ""; docDAL.SalvarSolicitacao(p1, ListaProdutos, EventoDocumento2(ListaEvento, p1.CodigoSituacao, p1.Cpl_Usuario, p1.Cpl_Maquina), ListaAnexo); transaction.Commit(); } catch (SqlException ex) { transaction.Rollback(); if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error { switch (ex.Errors[0].Number) { case 547: // Foreign Key violation throw new InvalidOperationException("Alteração do Documento não permitida!!! Existe Relacionamentos Obrigatórios com a Tabela. Mensagem :" + ex.Message.ToString(), ex); default: throw new Exception("Erro ao alterar documento: " + ex.Message.ToString()); } } } catch (Exception ex) { throw new Exception("Erro ao alterar documento: " + ex.Message.ToString()); } finally { FecharConexao(); } }
public void Inserir(Doc_SolCompra p, List <ProdutoDocumento> listaItemSolicitacao, EventoDocumento eventoDocumento, List <AnexoDocumento> ListaAnexoDocumento) { 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) values (@v1,@v2,@v3,@v4,@v5,@v6,@v7,@v8,@v9,@v10,@v11) 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", 12); 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); 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(); ExcluirPessoaDocumento(p.CodigoDocumento); //Pessoa do Documento Fornecedor InserirPessoaDocumento(p.CodigoDocumento, p.CodigoFornecedor, 16); //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, listaItemSolicitacao); } }
public void Atualizar(Doc_SolCompra p, List <ProdutoDocumento> listaItemSolicitacao, EventoDocumento eventoDocumento, List <AnexoDocumento> ListaAnexoDocumento) { 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, " + " TX_MOTIVO_BAIXA = @v9 " + " Where [CD_DOCUMENTO] = @CODIGO "; Cmd = new SqlCommand(strSQL, Con); Cmd.Parameters.AddWithValue("@CODIGO", p.CodigoDocumento); Cmd.Parameters.AddWithValue("@v1", 12); 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); Cmd.Parameters.AddWithValue("@v9", p.MotivoCancelamento); 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 = ObterSolicitacaoCompraPessoa(p.CodigoDocumento); ExcluirPessoaDocumento(p.CodigoDocumento); //Pessoa do Documento Fornecedor InserirPessoaDocumento(p.CodigoDocumento, p.CodigoFornecedor, 16); //Pessoa do Documento Fornecedor tbProdDocB = ObterSolicitacaoCompraPessoa(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 = ObterSolicitacaoCompraProduto(p.CodigoDocumento); InserirProduto(p.CodigoDocumento, listaItemSolicitacao); tbProdDocB = new DataTable(); tbProdDocB = ObterSolicitacaoCompraProduto(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); } } }
public void SalvarSolicitacao(Doc_SolCompra p, List <ProdutoDocumento> listaProdutos, EventoDocumento eventoDocumento, List <AnexoDocumento> ListaAnexoDocumento) { try { List <Habil_Log> listaLog = new List <Habil_Log>(); Habil_LogDAL Rn_Log = new Habil_LogDAL(); DBTabelaDAL RnTabela = new DBTabelaDAL(); DataTable tbA, tbB; if (p.CodigoDocumento == 0) //Registro Novo { Inserir(p, listaProdutos, eventoDocumento, ListaAnexoDocumento); } else { tbA = ObterSolicitacaoCompra(p.CodigoDocumento); if (eventoDocumento != null) { Atualizar(p, listaProdutos, eventoDocumento, ListaAnexoDocumento); } else { Atualizar(p, listaProdutos, null, ListaAnexoDocumento); } tbB = ObterSolicitacaoCompra(p.CodigoDocumento); listaLog = Rn_Log.ComparaDataTables(tbA, tbB, Convert.ToDouble(p.CodigoDocumento), p.Cpl_Usuario, p.Cpl_Maquina, 17, "DOCUMENTO"); foreach (Habil_Log item in listaLog) { Rn_Log.Inserir(item); } } if (p.CodigoSituacao == 201) {// Análise LiberacaoDocumento p1; LiberacaoDocumentoDAL Rn_LibDoc = new LiberacaoDocumentoDAL(); p1 = Rn_LibDoc.PesquisarLiberacaoDocumento(p.CodigoDocumento, 1); if (p1 == null) { p1 = new LiberacaoDocumento(); p1.CodigoDocumento = p.CodigoDocumento; p1.CodigoBloqueio = 1; p1.CodigoMaquina = p.Cpl_Maquina; p1.CodigoUsuario = p.Cpl_Usuario; p1.DataLancamento = RnTabela.ObterDataHoraServidor(); Rn_LibDoc.Inserir(p1); } } } catch (SqlException ex) { if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error { throw new Exception("Erro ao Incluir Salvar Solicitação de Compras: " + ex.Message.ToString()); } } catch (Exception ex) { throw new Exception("Erro ao Salvar Solicitação de Compras: " + ex.Message.ToString()); } finally { FecharConexao(); } }
public void AprovarSolicitacaoCompra(LiberacaoDocumento p) { AbrirConexao(); SqlCommand cmd1 = new SqlCommand(); SqlCommand cmd2 = new SqlCommand(); SqlCommand cmd3 = new SqlCommand(); SqlTransaction transaction = Con.BeginTransaction(); cmd1 = new SqlCommand("update LIBERACAO_DO_DOCUMENTO set DT_LIBERACAO = @v3, CD_USUARIO = @v4, CD_MAQUINA = @v5 " + "where CD_INDEX = @v1 ", Con, transaction); cmd1.Parameters.AddWithValue("@v1", p.CodigoLiberacao); cmd1.Parameters.AddWithValue("@v3", p.DataLiberacao); cmd1.Parameters.AddWithValue("@v4", p.CodigoUsuario); cmd1.Parameters.AddWithValue("@v5", p.CodigoMaquina); try { cmd1.ExecuteNonQuery(); //Monta Tela List <EventoDocumento> ListaEvento = new List <EventoDocumento>(); List <AnexoDocumento> ListaAnexo = new List <AnexoDocumento>(); List <ProdutoDocumento> ListaProdutos = new List <ProdutoDocumento>(); ProdutoDocumentoDAL RnPd = new ProdutoDocumentoDAL(); Doc_SolCompra p1 = new Doc_SolCompra(); Doc_SolCompraDAL docDAL = new Doc_SolCompraDAL(); EventoDocumentoDAL eve = new EventoDocumentoDAL(); AnexoDocumentoDAL anexo = new AnexoDocumentoDAL(); p1 = docDAL.PesquisarSolCompra(p.CodigoDocumento); ListaProdutos = RnPd.ObterItemSolCompra(p.CodigoDocumento); ListaProdutos = ListaProdutos.Where(x => x.CodigoSituacao != 134).ToList(); ListaEvento = eve.ObterEventos(p.CodigoDocumento); ListaAnexo = anexo.ObterAnexos(p.CodigoDocumento); //Gravar Documento p1.Cpl_Maquina = p.CodigoMaquina; p1.Cpl_Usuario = p.CodigoUsuario; p1.CodigoSituacao = 202; p1.MotivoCancelamento = ""; docDAL.SalvarSolicitacao(p1, ListaProdutos, EventoDocumento(ListaEvento, p1.CodigoSituacao, p1.Cpl_Usuario, p1.Cpl_Maquina), ListaAnexo); transaction.Commit(); } catch (SqlException ex) { transaction.Rollback(); if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error { switch (ex.Errors[0].Number) { case 547: // Foreign Key violation throw new InvalidOperationException("Alteração do Documento não permitida!!! Existe Relacionamentos Obrigatórios com a Tabela. Mensagem :" + ex.Message.ToString(), ex); default: throw new Exception("Erro ao alterar documento: " + ex.Message.ToString()); } } } catch (Exception ex) { throw new Exception("Erro ao alterar documento: " + ex.Message.ToString()); } finally { FecharConexao(); } }
public void CancelarSolicitacaoCompra(LiberacaoDocumento LibDocumento, string strMotivo) { try { AbrirConexao(); SqlCommand cmd1 = new SqlCommand(); cmd1 = new SqlCommand("delete from LIBERACAO_DO_DOCUMENTO where CD_INDEX = @v1;", Con); cmd1.Parameters.AddWithValue("@v1", LibDocumento.CodigoDocumento); cmd1.ExecuteNonQuery(); //Monta Tela List <EventoDocumento> ListaEvento = new List <EventoDocumento>(); List <AnexoDocumento> ListaAnexo = new List <AnexoDocumento>(); List <ProdutoDocumento> ListaProdutos = new List <ProdutoDocumento>(); ProdutoDocumentoDAL RnPd = new ProdutoDocumentoDAL(); Doc_SolCompra p = new Doc_SolCompra(); Doc_SolCompraDAL docDAL = new Doc_SolCompraDAL(); EventoDocumentoDAL eve = new EventoDocumentoDAL(); AnexoDocumentoDAL anexo = new AnexoDocumentoDAL(); p = docDAL.PesquisarSolCompra(LibDocumento.CodigoDocumento); ListaProdutos = RnPd.ObterItemSolCompra(p.CodigoDocumento); ListaProdutos = ListaProdutos.Where(x => x.CodigoSituacao != 134).ToList();; ListaEvento = eve.ObterEventos(LibDocumento.CodigoDocumento); ListaAnexo = anexo.ObterAnexos(LibDocumento.CodigoDocumento); //Gravar Documento p.Cpl_Maquina = LibDocumento.CodigoMaquina; p.Cpl_Usuario = LibDocumento.CodigoUsuario; p.CodigoSituacao = 203; p.MotivoCancelamento = strMotivo; docDAL.SalvarSolicitacao(p, ListaProdutos, EventoDocumento(ListaEvento, p.CodigoSituacao, p.Cpl_Usuario, p.Cpl_Maquina), ListaAnexo); } catch (SqlException ex) { if (ex.Errors.Count > 0) { switch (ex.Errors[0].Number) { case 547: throw new InvalidOperationException("Devolução do Documento não permitida!!! Existe Relacionamentos Obrigatórios com a Tabela. Mensagem :" + ex.Message.ToString(), ex); default: throw new Exception("Erro ao CancelarSolicitacaoCompra: " + ex.Message.ToString()); } } } catch (Exception ex) { throw new Exception("Erro ao CancelarSolicitacaoCompra: " + ex.Message.ToString()); } finally { FecharConexao(); } }