public ScriptResponse Execute(ContextDataObject context, string query) { ErpBS bsERP = new ErpBS(); if (!context.Parameters.ContainsKey("TipoPlataforma")) { throw new Exception("TipoPlataforma inválido"); } EnumTipoPlataforma tipoPlataforma; if (!Enum.TryParse <EnumTipoPlataforma>((string)context.Parameters["TipoPlataforma"], out tipoPlataforma)) { throw new Exception("TipoPlataforma inválido"); } try { bsERP.AbreEmpresaTrabalho(tipoPlataforma, context.Company, context.Username, context.Password); } catch (Exception e) { throw new Exception("Erro a abrir a empresa no ERP: " + e.Message); } StdBELista queryResults = bsERP.Consulta(query); int numLinhas = queryResults.NumLinhas(); int numColunas = queryResults.NumColunas(); string[] headers = new string[numColunas]; for (short i = 0; i < numColunas; i++) { headers[i] = queryResults.Nome(i); } object[,] data = new object[numLinhas, numColunas]; for (short i = 0; i < numLinhas; i++) { for (short j = 0; j < numColunas; j++) { var nome = headers[j]; data[i, j] = queryResults.Valor(nome); } queryResults.Seguinte(); } QueryResult response = new QueryResult() { Headers = headers, Data = data }; bsERP.FechaEmpresaTrabalho(); return(new ScriptResponse { Object = response }); }
// Function to test SQL queries: public static String TestSQL(String sql, List <String> columns) { String response = ""; if (PriEngine.InitializeCompany(Settings.Default.Company.Trim(), Settings.Default.User.Trim(), Settings.Default.Password.Trim()) == true) { StdBELista list = PriEngine.Engine.Consulta(sql); response += "Numero de linhas: " + list.NumLinhas() + "\n"; response += "Numero de colunas: " + list.NumColunas() + "\n"; while (!list.NoFim()) { foreach (String column in columns) { response += column + ": " + list.Valor(column) + ";"; } response += "\n"; list.Seguinte(); } } return(response); }
//Method that executes the query in the external system. private ScriptResponse executeQuery(ContextData context, Entity document, string query) { ErpBS bsERP = new ErpBS(); if (context.ExternalSystems == null || context.ExternalSystems.Count == 0) { throw new Exception("External System em falta"); } var externalSystem = context.ExternalSystems.FirstOrDefault().Value; if (!externalSystem.Parameters.ContainsKey("TipoPlataforma")) { throw new Exception("TipoPlataforma inválido"); } EnumTipoPlataforma tipoPlataforma; if (!Enum.TryParse <EnumTipoPlataforma>((string)externalSystem.Parameters["TipoPlataforma"], out tipoPlataforma)) { throw new Exception("TipoPlataforma inválido"); } try { bsERP.AbreEmpresaTrabalho(tipoPlataforma, externalSystem.Code, (string)externalSystem.Parameters["Username"], (string)externalSystem.Parameters["Password"]); } catch (Exception e) { throw new Exception("Erro a abrir a empresa no ERP: " + e.Message); } StdBELista queryResults = bsERP.Consulta(query); int numLinhas = queryResults.NumLinhas(); int numColunas = queryResults.NumColunas(); string[] headers = new string[numColunas]; for (short i = 0; i < numColunas; i++) { headers[i] = queryResults.Nome(i); } object[,] data = new object[numLinhas, numColunas]; for (short i = 0; i < numLinhas; i++) { for (short j = 0; j < numColunas; j++) { var nome = headers[j]; data[i, j] = queryResults.Valor(nome); } queryResults.Seguinte(); } QueryResult response = new QueryResult() { Headers = headers, Data = data }; bsERP.FechaEmpresaTrabalho(); return(new ScriptResponse { Result = response }); }
public ScriptResponse Execute(ContextData context, Entity document, Dictionary <string, object> parameters) { /* **************************************** */ /* **************************************** */ /* ADD YOUR CODE HERE */ ErpBS bsERP = new ErpBS(); var externalSystem = context.ExternalSystems.FirstOrDefault().Value; try { if (!externalSystem.Parameters.ContainsKey("TipoPlataforma")) { throw new Exception("TipoPlataforma invalido"); } EnumTipoPlataforma tipoPlataforma; if (!Enum.TryParse <EnumTipoPlataforma>((string)externalSystem.Parameters["TipoPlataforma"], out tipoPlataforma)) { throw new Exception("TipoPlataforma invalido"); } try { bsERP.AbreEmpresaTrabalho(tipoPlataforma, externalSystem.Code, (string)externalSystem.Parameters["Username"], (string)externalSystem.Parameters["Password"]); } catch (Exception e) { throw new Exception("Erro a abrir a empresa no ERP: " + e.Message); } string str = externalSystem.Parameters["0"].ToString(); int first = str.IndexOf("Commitments.GoodsPurchaseRequest[") + "Commitments.GoodsPurchaseRequest[".Length; int last = str.LastIndexOf("].ERPCode"); int commIndex = int.Parse(str.Substring(first, last - first)); StdBELista queryResults = bsERP.Consulta($"SELECT Nome,Pais FROM Fornecedores WHERE Fornecedor='{document.Commitments.GoodsPurchaseRequest[commIndex].Attributes.ERPCode}'"); int numLinhas = queryResults.NumLinhas(); int numColunas = queryResults.NumColunas(); string[] headers = new string[numColunas]; for (short i = 0; i < numColunas; i++) { headers[i] = queryResults.Nome(i); } object[,] data = new object[numLinhas, numColunas]; for (short i = 0; i < numLinhas; i++) { for (short j = 0; j < numColunas; j++) { var nome = headers[j]; data[i, j] = queryResults.Valor(nome); } queryResults.Seguinte(); } QueryResult response = new QueryResult() { Headers = headers, Data = data, NumberOfRecords = numLinhas }; bsERP.FechaEmpresaTrabalho(); return(new ScriptResponse { Result = response }); } catch (Exception ex) { bsERP.FechaEmpresaTrabalho(); throw ex; } }
public static RespostaErro InsereVendedorObj(Vendedor vendedor) { Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro(); GcpBEVendedor mySalesman = new GcpBEVendedor(); StdBELista maxIdList = PriEngine.Engine.Consulta("SELECT Vendedores.Vendedor FROM Vendedores group by Vendedores.Vendedor order by Vendedores.Vendedor + 0 desc "); string NewSalesmanID = "1"; if (maxIdList.NumColunas() != 0) { NewSalesmanID = ((int)(Int32.Parse(maxIdList.Valor("Vendedor")) + 1)).ToString(); } try { if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true) { // cria salesman vendedor.Id = NewSalesmanID; mySalesman.set_Vendedor(NewSalesmanID); mySalesman.set_Nome(vendedor.Nome); mySalesman.set_CodigoPostal(vendedor.CodPostal); mySalesman.set_Morada(vendedor.Morada); mySalesman.set_Localidade(vendedor.Localidade); mySalesman.set_Telefone(vendedor.Telefone); mySalesman.set_Telemovel(vendedor.Telemovel); mySalesman.set_Email(vendedor.Email); mySalesman.set_Fax(vendedor.Fax); mySalesman.set_DataUltimaActualizacao(DateTime.Now); if (vendedor.Chefe != null) { PriEngine.Engine.Comercial.Vendedores.Actualiza(mySalesman); } else { erro.Erro = 1; erro.Descricao = "Erro vendedor nao tem chefe"; return(erro); } //cria relacao ChefeVendedor GcpBEVendedorChefe ChefeVendedores = new GcpBEVendedorChefe(); ChefeVendedores.set_Comissao(2); ChefeVendedores.set_ChefeVendedor(vendedor.Chefe); ChefeVendedores.set_Vendedor(vendedor.Id); Interop.GcpBE900.GcpBEVendedorChefe ola = new GcpBEVendedorChefe(); SqlConnection conn = new SqlConnection(); SqlCommand cmd = new SqlCommand(); conn.ConnectionString = "Data Source=User-PC\\PRIMAVERA;" + "Initial Catalog=PRIDEMOSINF;" + "User id=sa;" + "Password=Feup2014;"; cmd.Connection = conn; cmd.CommandType = CommandType.Text; cmd.CommandText = "INSERT INTO ChefeVendedores (ChefeVendedores, Vendedor, Comissao) VALUES (@param1,@param2,@param3)"; cmd.Parameters.AddWithValue("@param1", vendedor.Chefe); cmd.Parameters.AddWithValue("@param2", vendedor.Id); cmd.Parameters.AddWithValue("@param3", 2); try { conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } catch (Exception e) { Console.WriteLine(e); } erro.Erro = 0; erro.Descricao = "Sucesso"; return(erro); } else { erro.Erro = 1; erro.Descricao = "Erro ao abrir empresa"; return(erro); } } catch (Exception ex) { erro.Erro = 1; erro.Descricao = ex.Message; return(erro); } }