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); }
protected EventoDocumento EventoDocumentoCancelamento(List <EventoDocumento> ListaEvento, LiberacaoDocumento p) { DBTabelaDAL RnTab = new DBTabelaDAL(); DateTime DataHoraEvento = Convert.ToDateTime(RnTab.ObterDataHoraServidor().ToString("dd/MM/yyyy HH:mm")); int intCttItem = 0; if (ListaEvento.Count != 0) { intCttItem = Convert.ToInt32(ListaEvento.Max(x => x.CodigoEvento).ToString()); } intCttItem = intCttItem + 1; if (intCttItem != 0) { ListaEvento.RemoveAll(x => x.CodigoEvento == intCttItem); } EventoDocumento evento = new EventoDocumento(intCttItem, 999, //situacao DataHoraEvento, p.CodigoMaquina, p.CodigoUsuario); return(evento); }
public void Inserir(MovimentacaoInterna p) { DBTabelaDAL dbTDAL = new DBTabelaDAL(); try { AbrirConexao(); strSQL = "insert into [MOVIMENTACAO_DE_ESTOQUE] (CD_EMPRESA, CD_LOCALIZACAO, CD_LOTE, CD_PRODUTO, CD_TIPO_OPERACAO, TP_OPER, CD_USUARIO, CD_MAQUINA, CD_DOCUMENTO,VL_AJUSTE , NR_DOCUMENTO, VL_UNITARIO, VL_SALDO_ANTERIOR, QT_MOVIMENTADA, VL_SALDO_FINAL )" + " values (@v1, @v2, @v3, @v4, @v5, @v6, @v7,@v8, @v9, @v10, @v12, @v13, @v14, @v15, @v16 ); SELECT SCOPE_IDENTITY()"; Cmd = new SqlCommand(strSQL, Con); Cmd.Parameters.AddWithValue("@v1", p.CodigoEmpresa); Cmd.Parameters.AddWithValue("@v2", p.CodigoIndiceLocalizacao); Cmd.Parameters.AddWithValue("@v3", p.CodigoLote); Cmd.Parameters.AddWithValue("@v4", p.CodigoProduto); Cmd.Parameters.AddWithValue("@v5", p.CodigoTipoOperacao); Cmd.Parameters.AddWithValue("@v6", p.TpOperacao); Cmd.Parameters.AddWithValue("@v7", p.CodigoUsuario); Cmd.Parameters.AddWithValue("@v8", p.CodigoMaquina); Cmd.Parameters.AddWithValue("@v9", p.CodigoDocumento); Cmd.Parameters.AddWithValue("@v10", p.VlSaldoAjuste); Cmd.Parameters.AddWithValue("@v12", p.NumeroDoc); Cmd.Parameters.AddWithValue("@v13", p.ValorUnitario); Cmd.Parameters.AddWithValue("@v14", p.ValorSaldoAnterior); Cmd.Parameters.AddWithValue("@v15", p.QtMovimentada); Cmd.Parameters.AddWithValue("@v16", p.VlSaldoFinal); p.CodigoIndice = Convert.ToInt32(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 Estoque: " + ex.Message.ToString()); } } } catch (Exception ex) { throw new Exception("Erro ao gravar Movimentação de Estoque: " + ex.Message.ToString()); } finally { FecharConexao(); ExecutaSpAtualizaEstoque(p.CodigoIndice, Convert.ToDateTime(dbTDAL.ObterDataHoraServidor().ToString("yyyy-MM-dd"))); } }
public void EventoDocumento(Doc_SolicitacaoAtendimento 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.Cpl_Usuario; eventodoc.CodigoSituacao = CodigoSituacao; eventodoc.DataHoraEvento = RnTab.ObterDataHoraServidor(); eventodoc.CodigoEvento = ListaEvento.Count + 1; eventoDAL.Inserir(eventodoc, doc.CodigoDocumento); }
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 EnviarDesacordo() { try { DBTabelaCampos rowp2 = new DBTabelaCampos(); rowp2.Filtro = "IN_REG_DEVOLVIDO"; rowp2.Inicio = "0"; rowp2.Fim = "0"; rowp2.Tipo = "SMALLINT"; listaT.Add(rowp2); IntegraDocumentoEletronicoDAL integraDAL = new IntegraDocumentoEletronicoDAL(); ListaIntegracaoDocEletronico = integraDAL.ListarIntegracaoDocEletronicoCompleto(listaT); int Contador = 0; foreach (IntegraDocumentoEletronico integracao in ListaIntegracaoDocEletronico) { if (integracao.CodigoAcao == 124 && integracao.IntegracaoProcessando == 0 && integracao.IntegracaoRecebido == 0 && integracao.IntegracaoRetorno == 0 && integracao.RegistroDevolvido == 0 && integracao.RegistroEnviado == 1 && integracao.Mensagem == "") { Doc_CTe doc = new Doc_CTe(); Doc_CTeDAL docDAL = new Doc_CTeDAL(); doc = docDAL.PesquisarDocumento(integracao.CodigoDocumento); Empresa empresa = new Empresa(); EmpresaDAL empresaDAL = new EmpresaDAL(); empresa = empresaDAL.PesquisarEmpresa(doc.CodigoEmpresa); Pessoa pes = new Pessoa(); PessoaDAL pesDAL = new PessoaDAL(); pes = pesDAL.PesquisarViewPessoa(empresa.CodigoPessoa); Pessoa pesEmitente = new Pessoa(); pesEmitente = pesDAL.PesquisarViewPessoa(doc.Cpl_CodigoTransportador); GerandoArquivoLog("Carregando .INI", 1); string DiretorioEXE = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory.ToString()) + @"\..\..\..\..\Modulos"; _spdCTeX.LoadConfig(DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteConfig.ini"); GerandoArquivoLog("Configurando .INI", 1); if (pesEmitente.Cpl_Estado.Length >= 2) { _spdCTeX.UF = pesEmitente.Cpl_Estado.Substring(0, 2);//UF do Emitente } _spdCTeX.DiretorioEsquemas = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Esquemas"; _spdCTeX.DiretorioTemplates = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates"; _spdCTeX.ArquivoServidoresHom = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteServidoresHom.ini"; _spdCTeX.ArquivoServidoresProd = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteServidoresProd.ini"; _spdCTeX.ImpressaoModeloRetrato = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates\3.00\DACTE\Retrato.rtm"; _spdCTeX.ImpressaoModeloPaisagem = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates\cce\Impressao\modeloCCe.rtm"; _spdCTeX.CNPJ = pes.Cpl_Inscricao; string c = _spdCTeX.VersaoManual.ToString(); DBTabelaDAL db = new DBTabelaDAL(); List <EventoEletronicoDocumento> ListaEventoDocEletronico = new List <EventoEletronicoDocumento>(); EventoEletronicoDocumentoDAL eventosEletronicosDAL = new EventoEletronicoDocumentoDAL(); ListaEventoDocEletronico = eventosEletronicosDAL.ObterEventosEletronicos(doc.CodigoDocumento); foreach (var evento in ListaEventoDocEletronico) { if (Contador == 0) { if (evento.CodigoSituacao != 121 && evento.CodigoTipoEvento == 120) { Contador++; try { integracao.IntegracaoRecebido = 1; integraDAL.AtualizarIntegraDocEletronico(integracao); string consultaCTE = _spdCTeX.ConsultarCT(doc.ChaveAcesso); string CodigoSituacaoConsulta = BuscarValorTagXML(consultaCTE, "infProt", "cStat"); GerandoArquivoLog("Fazendo consulta do CT-e " + doc.ChaveAcesso, 1); if (CodigoSituacaoConsulta == "100") { // _spdCTeX.UF = pes.Cpl_Estado.Substring(0, 2);//UF do remetente GerandoArquivoLog("CT-e está Autorizado...", 1); doc.CodigoSituacao = 40; string XML = _spdCTeX.EnviarDesacordo(doc.ChaveAcesso, evento.DataHoraEvento.ToString("yyyy-MM-ddTHH:mm:ss") + "-03:00", evento.Motivo, evento.NumeroSequencia.ToString()); GerandoArquivoLog("Evento Eletronico do documento " + evento.CodigoEvento + " enviado... aguardando retorno ", 1); integracao.IntegracaoProcessando = 1; integraDAL.AtualizarIntegraDocEletronico(integracao); evento.Retorno = BuscarValorTagXML(XML, "infEvento", "xMotivo"); string CodigoRetorno = BuscarValorTagXML(XML, "infEvento", "cStat"); GerandoArquivoLog("Evento enviado... retorno - " + evento.Retorno, 1); integracao.IntegracaoRetorno = 1; integraDAL.AtualizarIntegraDocEletronico(integracao); if (CodigoRetorno == "135" || CodigoRetorno == "134" || CodigoRetorno == "136") { evento.CodigoSituacao = 121; byte[] XMLRetorno = null; XMLRetorno = Encoding.UTF8.GetBytes(XML); DBTabelaDAL dt = new DBTabelaDAL(); SalvarAnexos(doc.CodigoDocumento, XMLRetorno, dt.ObterDataHoraServidor(), integracao, "Retorno do Envio de Desacordo!"); GerandoArquivoLog("Salvando XML em anexo...", 1); } else { evento.CodigoSituacao = 122; } } else if (CodigoSituacaoConsulta == "218") { GerandoArquivoLog("Impossível efetuar o desacordo, CT-e está CANCELADO", 1); GerandoArquivoLog("CT-e " + doc.ChaveAcesso + " está CANCELADO...", 1); evento.CodigoSituacao = 122; doc.CodigoSituacao = 41; } else if (CodigoSituacaoConsulta == "") { evento.Retorno = BuscarValorTagXML(consultaCTE, "retConsSitCTe", "xMotivo"); evento.CodigoSituacao = 122; doc.CodigoSituacao = 39; } else { GerandoArquivoLog("Impossível efetuar o desacordo, CT-e não AUTORIZADO", 1); GerandoArquivoLog("CT-e " + doc.ChaveAcesso + " não está autorizada...", 1); evento.CodigoSituacao = 122; doc.CodigoSituacao = 39; } //docDAL.Atualizar, } catch (Exception ex) { evento.Retorno = ex.ToString(); GerandoArquivoLog("ERRO - " + ex.ToString(), 1); } //ListaEventoDocEletronico.RemoveAll(x => x.CodigoEvento == evento.CodigoEvento); //EventoEletronicoDocumento NovoEvento = new EventoEletronicoDocumento(); //NovoEvento = evento; //ListaEventoDocEletronico.Add(NovoEvento); } } eventosEletronicosDAL.AtualizarEventoEletronico(evento); GerandoArquivoLog("Evento eletronico do documento " + doc.CodigoDocumento + " atualizado com sucesso", 1); integracao.Mensagem = evento.Retorno; integracao.RegistroDevolvido = 1; integraDAL.AtualizarIntegraDocEletronico(integracao); } integraDAL.AtualizarSituacaoDocumentoCTe(doc); GerandoArquivoLog("Documento " + doc.CodigoDocumento + " Atualizado com sucesso", 1); } } if (Contador == 0) { GerandoArquivoLog("Nenhum desacordo enviado para CT-e", 1); } } catch (Exception ex) { GerandoArquivoLog("ERRO: " + ex.ToString(), 1); } }