Ejemplo n.º 1
0
        public void cadastrarMaterial()
        {

            Material material = new Material();
            material.descricao = "Cia Ltda";
            material.id_centro = "100";
            material.tip_mat = "Q";
            material.status_mat = "S";
            material.uni_med = "CX";

            MaterialRepository materialRepository = new MaterialRepository();
            materialRepository.Salvar(material);
        }
Ejemplo n.º 2
0
            // SD03 - Inteface de materiais - Comunicação
            // funcao - ZFXI_SD03C
            //[RfcServerFunction(Name = "ZFXI_SD03C")]
            public static void StfcInterfaceMaterial(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
                MaterialRepository materialRepository = new MaterialRepository();

                // Implementa repositorio antes do Foreach para evitar duplicações
                Material material = new Material();

                // 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<Material> fromDB = materialRepository.ObterTodos();
                    foreach (Material dados in fromDB)
                    {
                        materialRepository.Excluir(dados);       
                    }
                }

                IRfcTable it_material = function.GetTable("IT_MATERIAL");

                // 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_material)
                {

                    material.id_material = row.GetString("MATNR");
                    material.descricao   = row.GetString("MAKTX");
                    material.id_centro   = row.GetString("WERKS");
                    material.tip_mat     = row.GetString("MTART");
                    material.status_mat  = row.GetString("MSTAE");
                    material.uni_med     = row.GetString("MEINS");
                    material.status_mat = row.GetString("MSTAE");
                    // Pacote
                    material.pacote = row.GetString("PACOTE");
                    // Data Cricao
                    string v_data_Cricao = row.GetString("ERDAT");
                    material.data_criacao = Convert.ToDateTime(v_data_Cricao);
                    // Hora de Criacao
                    material.hora_criacao = row.GetString("ERZET");            
                    
                    try
                    {                        
                        v_cont = v_cont + 1;
                        if (deletar == ' ')
                        {
                            IList<Material> fromDB = materialRepository.ObterTodosComCampo("id_material", material.id_material);
                            foreach (Material dados in fromDB)
                            {       
                                materialRepository.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 Material: " + material.descricao);
                        retorno.Insert(linha_retorno);
                    }

                    materialRepository.Salvar(material);
                    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);
            }
Ejemplo n.º 3
0
            // SD03 - Inteface de materiais - Comunicação
            // funcao - ZFXI_SD03C
            //[RfcServerFunction(Name = "ZFXI_SD03C")]
            public static void StfcInterfaceMaterial(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
                MaterialRepository materialRepository = new MaterialRepository();
                Material material = new Material();

                IRfcTable it_material = function.GetTable("IT_MATERIAL");

                // Implementa Repositorio Rfc de resposta
                RfcRepository rep = context.Repository;

                // RETORNO - BAPIRET2
                RfcStructureMetadata bapiret2 = rep.GetStructureMetadata("BAPIRET2");
                IRfcStructure linha_retorno = bapiret2.CreateStructure();

                // Se estiver espaco em branco na variavel, não limpa a tabela da interface.
                if (deletar != ' ')
                {
                    int count = 0;
                    // Apaga todos os registros da tabela pro_fornecedor
                    IList<Material> fromDB = materialRepository.ObterTodos();
                    foreach (Material dados in fromDB)
                    {
                        count = count + 1;
                        if (count == 1)
                        {
                            foreach (IRfcStructure row in it_material)
                            {
                                dados.Pacote = row.GetString("PACOTE");
                                dados.Data_criacao = Convert.ToDateTime(row.GetString("ERDAT"));
                                dados.Hora_criacao = row.GetString("ERZET");
                                break;
                            }
                        }
                        dados.Eliminacao = "X";
                        materialRepository.Alterar(dados);
                    }
                }

                int v_cont = 0;
                foreach (IRfcStructure row in it_material)
                {
                    material.Id_material = row.GetString("MATNR");
                    material.Descricao = row.GetString("MAKTX");
                    material.Id_centro = row.GetString("WERKS");
                    material.Tip_mat = row.GetString("MTART");
                    material.Status_mat = row.GetString("MSTAE");
                    material.Uni_med = row.GetString("MEINS");
                    material.Status_mat = row.GetString("MSTAE");
                    material.Pacote = row.GetString("PACOTE");
                    material.Data_criacao = Convert.ToDateTime(row.GetString("ERDAT"));
                    material.Hora_criacao = row.GetString("ERZET");
                    material.Eliminacao = row.GetString("LVORM");

                    v_cont = v_cont + 1;
                    try
                    {
                        IList<Material> fromDB = materialRepository.ObterRegistrosDoisCampos("Id_material", material.Id_material, "Id_centro", material.Id_centro);
                        if (fromDB.Count == 0)
                        {
                            materialRepository.Salvar(material);
                        }
                        else
                        {
                            foreach (Material dados in fromDB)
                            {
                                material.pro_id_material = dados.pro_id_material;
                            }
                            materialRepository.Alterar(material);
                        }
                    }
                    catch (Exception ex)
                    {
                        // Em caso de erro retorna o erro e a descricao do material
                        Console.Write("Erro ao inserir o Material, Mensagem: ");
                        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 Material: " + material.Descricao);
                        retorno.Insert(linha_retorno);
                    }
                }
                IRfcTable retornoSucesso = function.GetTable("IT_RETURN");
                linha_retorno.SetValue("TYPE", "S");
                linha_retorno.SetValue("MESSAGE", "Registros com Sucesso Material: " + v_cont);
                retornoSucesso.Insert(linha_retorno);
            }