// SD02 - Inteface de fornecedor - Comunicação // funcao - ZFXI_SD02C //[RfcServerFunction(Name = "ZGXI_SD02")] public static void StfcInterfaceFornecedor(RfcServerContext context, IRfcFunction function) { // Exibe no console a interface que será executada Console.WriteLine("Received function call {0} from system {1}.", function.Metadata.Name, context.SystemAttributes.SystemID); // Implementa Repositório dos dados FornecedorRepository fornecedorRepository = new FornecedorRepository(); // Implementa repositorio antes do Foreach para evitar duplicações Fornecedor fornecedor = new Fornecedor(); // Flag da interface que de Limpar tabela de dados Char deletar = function.GetChar("I_REFRESH"); // exibe se o mesmo foi flegado Console.WriteLine(deletar); // Se estiver espaco em branco na variavel, não limpa a tabela da interface. if (deletar != ' ') { // Apaga todos os registros da tabela pro_fornecedor IList<Fornecedor> fromDB = fornecedorRepository.ObterTodos(); foreach (Fornecedor dados in fromDB) { fornecedorRepository.Excluir(dados); } } // ZTBSD060 IRfcTable it_fornecedor = function.GetTable("IT_FORNECEDOR"); // Implementa Repositorio Rfc de resposta RfcRepository rep = context.Repository; // RETORNO - BAPIRET2 RfcStructureMetadata bapiret2 = rep.GetStructureMetadata("BAPIRET2"); IRfcStructure linha_retorno = bapiret2.CreateStructure(); int v_cont = 0; foreach (IRfcStructure row in it_fornecedor) { fornecedor.codigo = row.GetString("LIFNR"); fornecedor.nome = row.GetString("NAME1"); fornecedor.cpf = row.GetString("STCD2"); fornecedor.cnpj = row.GetString("STCD1"); fornecedor.nr_ie_for = row.GetString("STCD3"); fornecedor.cep = row.GetString("POST_CODE"); fornecedor.endereco = row.GetString("STREET"); fornecedor.numero = row.GetString("HOUSE_NUM1"); fornecedor.municipio = row.GetString("CITY1"); fornecedor.bairro = row.GetString("CITY2"); fornecedor.uf = row.GetString("UF"); fornecedor.pais = row.GetString("COUNTRY"); fornecedor.tel_res = row.GetString("TELF1"); fornecedor.tel_res = row.GetString("TELF2"); fornecedor.tel_cel = row.GetString("TELF1"); fornecedor.fax = row.GetString("TELFX"); fornecedor.email = row.GetString("EMAIL"); // Pacote fornecedor.pacote = row.GetString("PACOTE"); // Data Cricao string v_data_Cricao = row.GetString("ERDAT"); fornecedor.data_criacao = Convert.ToDateTime(v_data_Cricao); // Hora de Criacao fornecedor.hora_criacao = row.GetString("ERZET"); try { v_cont = v_cont + 1; if (deletar == ' ') { IList<Fornecedor> fromDB = fornecedorRepository.ObterTodosComCampo("codigo", fornecedor.codigo); foreach (Fornecedor dados in fromDB) { fornecedorRepository.Excluir(dados); } } } catch (Exception ex) { // Em caso de erro retorna o erro e a descricao do material Console.Write("entrou no exception"); IRfcTable retorno = function.GetTable("IT_RETURN"); linha_retorno.SetValue("TYPE", "E"); linha_retorno.SetValue("MESSAGE", ex.Message); linha_retorno.SetValue("MESSAGE", "Erro ao inserir o Fornecedor: " + fornecedor.nome); retorno.Insert(linha_retorno); } fornecedorRepository.Salvar(fornecedor); String PACOTE = row.GetString("PACOTE"); String ERDAT = row.GetString("ERDAT"); String ERZET = row.GetString("ERZET"); } IRfcTable retornoSucesso = function.GetTable("IT_RETURN"); linha_retorno.SetValue("TYPE", "S"); linha_retorno.SetValue("MESSAGE", "Registros com Sucesso: " + v_cont); retornoSucesso.Insert(linha_retorno); }
// SD02 - Inteface de fornecedor - Comunicação // funcao - ZFXI_SD02C //[RfcServerFunction(Name = "ZGXI_SD02")] public static void StfcInterfaceFornecedor(RfcServerContext context, IRfcFunction function) { // Exibe no console a interface que será executada Console.WriteLine("Received function call {0} from system {1}.", function.Metadata.Name, context.SystemAttributes.SystemID); // Flag da interface que de Limpar tabela de dados Char deletar = function.GetChar("I_REFRESH"); // exibe se o mesmo foi flegado Console.WriteLine(deletar); // Implementa Repositório dos dados FornecedorRepository fornecedorRepository = new FornecedorRepository(); Fornecedor fornecedor = new Fornecedor(); FornecedorEmpresaRepository fornecedorEmpresaRepository = new FornecedorEmpresaRepository(); FornecedorEmpresa fornecedorEmpresa = new FornecedorEmpresa(); FornecedorTransportadoraLiberadaRepository fornecedorTransportadoraLiberadaRepository = new FornecedorTransportadoraLiberadaRepository(); FornecedorTransportadoraLiberada fornecedorTransportadoraLiberada = new FornecedorTransportadoraLiberada(); // ZTBSD060 IRfcTable it_fornecedor = function.GetTable("IT_FORNECEDOR"); // Implementa Repositorio Rfc de resposta RfcRepository rep = context.Repository; // RETORNO - BAPIRET2 RfcStructureMetadata bapiret2 = rep.GetStructureMetadata("BAPIRET2"); IRfcStructure linha_retorno = bapiret2.CreateStructure(); // ZTBSD079 IRfcTable it_fornecedor_emp = function.GetTable("IT_FORNECEDOR_EMP"); // Implementa Repositorio Rfc de resposta RfcRepository repEmp = context.Repository; // RETORNO - BAPIRET2 RfcStructureMetadata bapiret2emp = repEmp.GetStructureMetadata("BAPIRET2"); IRfcStructure linha_retorno_emp = bapiret2emp.CreateStructure(); // ZTBSD086 - ZTBXI_101 IRfcTable it_fornecedor_trans_lib = function.GetTable("IT_FORNECEDOR_TL"); // Implementa Repositorio Rfc de resposta RfcRepository repfornecedorTrans = context.Repository; // RETORNO RfcStructureMetadata bapiret2Trans = repfornecedorTrans.GetStructureMetadata("BAPIRET2"); IRfcStructure linha_retorno_trans = bapiret2Trans.CreateStructure(); // Se a interface de Fornecedor estiver marcada para Reiniciar "X" marca os registros das 2 tabebas como Eliminados. if (deletar != ' ') { // Apaga todos os registros da tabela pro_fornecedor IList<Fornecedor> fromDB = fornecedorRepository.ObterTodos(); IList<FornecedorEmpresa> fromDBemp = fornecedorEmpresaRepository.ObterTodos(); foreach (Fornecedor dados in fromDB) { foreach (IRfcStructure row in it_fornecedor) { dados.Pacote = row.GetString("PACOTE"); dados.Data_criacao = Convert.ToDateTime(row.GetString("ERDAT")); dados.Hora_criacao = row.GetString("ERZET"); } dados.Eliminacao = "X"; fornecedorRepository.Alterar(dados); } foreach (FornecedorEmpresa dados in fromDBemp) { foreach (IRfcStructure row in it_fornecedor_emp) { dados.Pacote = row.GetString("PACOTE"); dados.Data_criacao = Convert.ToDateTime(row.GetString("ERDAT")); dados.Hora_criacao = row.GetString("ERZET"); } dados.Eliminacao = "X"; fornecedorEmpresaRepository.Alterar(dados); } } // // FORNECEDOR // //Char deletar = function.GetChar("I_REFRESH"); int v_cont = 0; foreach (IRfcStructure row in it_fornecedor) { fornecedor.Codigo = row.GetString("LIFNR"); fornecedor.Nome = row.GetString("NAME1"); fornecedor.Cpf = row.GetString("STCD2"); fornecedor.Cnpj = row.GetString("STCD1"); fornecedor.Nr_ie_for = row.GetString("STCD3"); fornecedor.Cep = row.GetString("POST_CODE"); fornecedor.Endereco = row.GetString("STREET"); fornecedor.Numero = row.GetString("HOUSE_NUM1"); fornecedor.Municipio = row.GetString("CITY1"); fornecedor.Bairro = row.GetString("CITY2"); fornecedor.Uf = row.GetString("UF"); fornecedor.Pais = row.GetString("COUNTRY"); fornecedor.Tel_res = row.GetString("TELF1"); fornecedor.Tel_res = row.GetString("TELF2"); fornecedor.Tel_cel = row.GetString("TELF1"); fornecedor.Fax = row.GetString("TELFX"); fornecedor.Email = row.GetString("EMAIL"); fornecedor.Grupo_contas = row.GetString("KTOKK"); fornecedor.Pacote = row.GetString("PACOTE"); fornecedor.Data_criacao = Convert.ToDateTime(row.GetString("ERDAT")); fornecedor.Hora_criacao = row.GetString("ERZET"); fornecedor.Eliminacao = row.GetString("LOEVM"); v_cont = v_cont + 1; try { IList<Fornecedor> fromDB = fornecedorRepository.ObterRegistrosUmCampo("Codigo", fornecedor.Codigo); if (fromDB.Count == 0) { fornecedorRepository.Salvar(fornecedor); } else { fornecedorRepository.Alterar(fornecedor); } } catch (Exception ex) { // Em caso de erro retorna o erro e a descricao do material Console.Write("Erro ao inserir o Fornecedor, Mensagem:" + ex); IRfcTable retorno = function.GetTable("IT_RETURN"); linha_retorno.SetValue("TYPE", "E"); linha_retorno.SetValue("MESSAGE", ex.Message); linha_retorno.SetValue("MESSAGE", "Erro ao inserir o Fornecedor: " + fornecedor.Nome); retorno.Insert(linha_retorno); } } // // FIM FORNECEDOR // // FORNECEDOR EMPRESA // int v_cont_emp = 0; foreach (IRfcStructure row in it_fornecedor_emp) { fornecedorEmpresa.Empresa = row.GetString("BUKRS"); fornecedorEmpresa.Codigo = row.GetString("LIFNR"); fornecedorEmpresa.Pacote = row.GetString("PACOTE"); fornecedorEmpresa.Data_criacao = Convert.ToDateTime(row.GetString("ERDAT")); fornecedorEmpresa.Hora_criacao = row.GetString("ERZET"); fornecedorEmpresa.Eliminacao = row.GetString("LOEVM"); v_cont_emp = v_cont_emp + 1; try { IList<FornecedorEmpresa> fromDB = fornecedorEmpresaRepository.ObterRegistrosDoisCampos("Empresa", fornecedorEmpresa.Empresa, "Codigo", fornecedorEmpresa.Codigo); if (fromDB.Count == 0) { fornecedorEmpresaRepository.Salvar(fornecedorEmpresa); } else { fornecedorEmpresaRepository.Alterar(fornecedorEmpresa); } } catch (Exception ex) { Console.Write("Erro ao inserir o Fornecedor Empresa, Mensagem:" + ex); IRfcTable retorno = function.GetTable("IT_RETURN"); linha_retorno_emp.SetValue("TYPE", "E"); linha_retorno_emp.SetValue("MESSAGE", ex.Message); linha_retorno_emp.SetValue("MESSAGE", "Erro ao inserir o Forn. Empresa: " + fornecedorEmpresa.Empresa + "Fornecedor: " + fornecedorEmpresa.Codigo); retorno.Insert(linha_retorno_emp); } } // // FIM FORNECEDOR EMPRESA // // FORNECEDOR TRANSPORTADORAS LIBERADAS // int v_cont_tras_lib = 0; foreach (IRfcStructure row in it_fornecedor_trans_lib) { fornecedorTransportadoraLiberada.Codigo = row.GetString("LIFNR"); fornecedorTransportadoraLiberada.Funcao_parceiro = row.GetString("PARVW"); fornecedorTransportadoraLiberada.Numero_agente_frete = row.GetString("TDLNR"); String v_padrao = row.GetString("PADRAO"); if (v_padrao != "") { fornecedorTransportadoraLiberada.Padrao = Convert.ToBoolean(1); } fornecedorTransportadoraLiberada.Pacote = row.GetString("PACOTE"); fornecedorTransportadoraLiberada.Data_criacao = Convert.ToDateTime(row.GetString("ERDAT")); fornecedorTransportadoraLiberada.Hora_criacao = row.GetString("ERZET"); v_cont_tras_lib = v_cont_tras_lib + 1; try { IList<FornecedorTransportadoraLiberada> fromDB = fornecedorTransportadoraLiberadaRepository.ObterRegistrosDoisCampos("Codigo", fornecedorTransportadoraLiberada.Codigo, "Numero_agente_frete", fornecedorTransportadoraLiberada.Numero_agente_frete); if (fromDB.Count == 0) { fornecedorTransportadoraLiberadaRepository.Salvar(fornecedorTransportadoraLiberada); } else { foreach (FornecedorTransportadoraLiberada dados in fromDB) { fornecedorTransportadoraLiberada.Id = dados.Id; } fornecedorTransportadoraLiberadaRepository.Alterar(fornecedorTransportadoraLiberada); } } catch (Exception ex) { // Em caso de erro retorna o erro Console.Write("Erro ao inserir a Tranpostadora do Fornecedor, Mensagem: " + ex); IRfcTable retorno = function.GetTable("IT_RETURN"); linha_retorno_trans.SetValue("TYPE", "E"); linha_retorno_trans.SetValue("MESSAGE", ex.Message); linha_retorno_trans.SetValue("MESSAGE", "Erro ao inserir a Tranpostadora do Fornecedor " + fornecedorTransportadoraLiberada.Codigo + " - Numero Agente Frete: " + fornecedorTransportadoraLiberada.Numero_agente_frete); retorno.Insert(linha_retorno_trans); } } // FIM FORNECEDOR TRANSPORTADORAS LIBERADAS IRfcTable retornoSucesso = function.GetTable("IT_RETURN"); linha_retorno.SetValue("TYPE", "S"); linha_retorno.SetValue("MESSAGE", "Registros com Sucesso Fornecedor: " + v_cont); retornoSucesso.Insert(linha_retorno); IRfcTable retornoSucessoEmp = function.GetTable("IT_RETURN"); linha_retorno_emp.SetValue("TYPE", "S"); linha_retorno_emp.SetValue("MESSAGE", "Registros com Sucesso Forn. Empresa: " + v_cont_emp); retornoSucessoEmp.Insert(linha_retorno_emp); }