public void lista_utilizadores() { init(); StdBELista uList = _admBs.Consulta("SELECT * FROM utilizadores"); uList.Inicio(); while (!uList.NoFim()) { CultureInfo idioma = CultureInfo.GetCultureInfo(uList.Valor("Idioma")); Console.WriteLine("Utilizador: " + uList.Valor("Codigo")); Console.WriteLine(" Codigo: " + uList.Valor("Codigo")); Console.WriteLine(" Nome: " + uList.Valor("Nome")); Console.WriteLine(" Email: " + uList.Valor("Email")); Console.WriteLine(" Activo: " + uList.Valor("Activo")); Console.WriteLine(" Administrador: " + uList.Valor("Administrador")); Console.WriteLine(" PerfilSugerido: " + uList.Valor("PerfilSugerido")); Console.WriteLine(" NaoPodeAlterarPwd: " + uList.Valor("NaoPodeAlterarPwd")); Console.WriteLine(" Idioma: " + idioma); Console.WriteLine(" LoginWindows: " + uList.Valor("LoginWindows")); Console.WriteLine(" Telemovel: " + uList.Valor("Telemovel")); Console.WriteLine(" Bloqueado: " + uList.Valor("Bloqueado")); Console.WriteLine(" TentativasFalhadas: " + uList.Valor("TentativasFalhadas")); Console.WriteLine(" AutenticacaoPersonalizada: " + uList.Valor("AutenticacaoPersonalizada")); Console.WriteLine(" SuperAdministrador: " + uList.Valor("SuperAdministrador")); Console.WriteLine(" Tecnico: " + uList.Valor("Tecnico")); uList.Seguinte(); } return; }
public static List <Sale> GetSales(DateTime initialDate, DateTime finalDate) { // Create an empty list of sales List <Sale> sales = new List <Sale>(); //Initialize company if (!InitializeCompany()) { return(sales); } //DataDescarga always null ? StdBELista salesQuery = PriEngine.Engine.Consulta( "SELECT CabecDoc.Id AS CabecDocId, CabecDoc.Nome AS CabecDocNome, CabecDoc.Entidade AS CabecDocEntidade, CabecDoc.Moeda AS CabecDocMoeda, CabecDoc.TipoDoc AS CabecDocTipoDoc, CabecDoc.Data AS CabecDocData, CabecDoc.DataVencimento AS CabecDocDataVencimento, CabecDoc.DataCarga AS CabecDocDataCarga, CabecDoc.DataDescarga AS CabecDocsDataDescarga, " + "LinhasDoc.Id AS LinhasDocId, LinhasDoc.PrecoLiquido AS LinhasDocPrecoLiquido, " + "Artigo.Artigo AS ArtigoId, Artigo.Marca AS ArtigoMarca, Artigo.Modelo AS ArtigoModelo, Artigo.Descricao AS ArticoDescricao, Artigo.TipoArtigo AS ArtigoTipoArtigo, " + "Familias.Familia AS FamiliaId, Familias.Descricao AS FamiliaDescricao, " + "Iva.Taxa AS IvaTaxa " + "FROM CabecDoc " + "INNER JOIN LinhasDoc ON LinhasDoc.IdCabecDoc = CabecDoc.Id " + "INNER JOIN Artigo ON Artigo.Artigo = LinhasDoc.Artigo " + "INNER JOIN Familias ON Artigo.Familia = Familias.Familia " + "INNER JOIN Iva ON LinhasDoc.CodIva = Iva.Iva " + "WHERE CabecDoc.Data >= '" + initialDate.ToString("yyyyMMdd") + "' AND CabecDoc.Data <= '" + finalDate.ToString("yyyyMMdd") + "' " + "ORDER BY CabecDoc.Data" ); while (!salesQuery.NoFim()) { Sale sale = new Sale(); sale.ID = salesQuery.Valor("LinhasDocId"); sale.DocumentDate = ParseDate(salesQuery, "CabecDocData"); sale.DocumentType = salesQuery.Valor("CabecDocTipoDoc"); sale.DueDate = ParseDate(salesQuery, "CabecDocDataVencimento"); sale.ReceptionDate = ParseDate(salesQuery, "CabecDocsDataDescarga"); sale.ClientId = salesQuery.Valor("CabecDocEntidade"); sale.ClientName = salesQuery.Valor("CabecDocNome"); sale.Value = new Money(salesQuery.Valor("LinhasDocPrecoLiquido"), salesQuery.Valor("CabecDocMoeda")); sale.Iva = salesQuery.Valor("IvaTaxa") / 100.0; Product product = new Product(); product.Id = salesQuery.Valor("ArtigoId"); product.Brand = salesQuery.Valor("ArtigoMarca"); product.Model = salesQuery.Valor("ArtigoModelo"); product.Description = salesQuery.Valor("ArticoDescricao"); product.FamilyId = salesQuery.Valor("FamiliaId"); product.FamilyDescription = salesQuery.Valor("FamiliaDescricao"); sale.Product = product; sales.Add(sale); // Next item: salesQuery.Seguinte(); } return(sales); }
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 }); }
// Purchases & Sales: public static List <Purchase> GetPurchases(DateTime initialDate, DateTime finalDate) { // Create an empty list of purchases: List <Purchase> purchases = new List <Purchase>(); if (!InitializeCompany()) { return(purchases); } StdBELista purchasesQuery = PriEngine.Engine.Consulta( "SELECT CabecCompras.Id AS CabecComprasId, CabecCompras.Nome AS CabecComprasNome, CabecCompras.Entidade AS CabecComprasEntidade, CabecCompras.Moeda AS CabecComprasMoeda, CabecCompras.DataDoc AS CabecComprasDataDoc, CabecCompras.TipoDoc AS CabecComprasTipoDoc, CabecCompras.DataVencimento AS CabecComprasDataVencimento, CabecCompras.DataDescarga AS CabecComprasDataDescarga, " + "LinhasCompras.Id AS LinhasComprasId, LinhasCompras.PrecoLiquido AS LinhasComprasPrecoLiquido, " + "Artigo.Artigo AS ArtigoId, Artigo.Marca AS ArtigoMarca, Artigo.Modelo AS ArtigoModelo, Artigo.Descricao AS ArticoDescricao, Artigo.TipoArtigo AS ArtigoTipoArtigo, " + "Familias.Familia AS FamiliaId, Familias.Descricao AS FamiliaDescricao, " + "Iva.Taxa AS IvaTaxa " + "FROM CabecCompras " + "INNER JOIN LinhasCompras ON LinhasCompras.IdCabecCompras=CabecCompras.Id " + "INNER JOIN Artigo ON Artigo.Artigo=LinhasCompras.Artigo " + "INNER JOIN Familias ON Artigo.Familia=Familias.Familia " + "INNER JOIN Iva ON LinhasCompras.CodIva = Iva.Iva " + "WHERE CabecCompras.DataDoc >= '" + initialDate.ToString("yyyyMMdd") + "' AND CabecCompras.DataDoc <= '" + finalDate.ToString("yyyyMMdd") + "' " + "ORDER BY CabecCompras.DataDoc" ); while (!purchasesQuery.NoFim()) { Purchase purchase = new Purchase(); // Set values: purchase.ID = purchasesQuery.Valor("LinhasComprasId"); purchase.DocumentDate = ParseDate(purchasesQuery, "CabecComprasDataDoc"); purchase.DocumentType = purchasesQuery.Valor("CabecComprasTipoDoc"); purchase.DueDate = ParseDate(purchasesQuery, "CabecComprasDataVencimento"); purchase.ReceptionDate = ParseDate(purchasesQuery, "CabecComprasDataDescarga"); purchase.SupplierId = purchasesQuery.Valor("CabecComprasEntidade"); purchase.SupplierName = purchasesQuery.Valor("CabecComprasNome"); purchase.Value = new Money(purchasesQuery.Valor("LinhasComprasPrecoLiquido"), purchasesQuery.Valor("CabecComprasMoeda")); purchase.Iva = purchasesQuery.Valor("IvaTaxa") / 100.0; Product product = new Product(); product.Id = purchasesQuery.Valor("ArtigoId"); product.Brand = purchasesQuery.Valor("ArtigoMarca"); product.Model = purchasesQuery.Valor("ArtigoModelo"); product.Description = purchasesQuery.Valor("ArticoDescricao"); product.FamilyId = purchasesQuery.Valor("FamiliaId"); product.FamilyDescription = purchasesQuery.Valor("FamiliaDescricao"); purchase.Product = product; // Add purchase to the list: purchases.Add(purchase); // Next line in the purchase document: purchasesQuery.Seguinte(); } return(purchases); }
private void EditRows(int number) { StringBuilder sql = new StringBuilder(); sql.AppendLine("SELECT linhas.*, DescArtigo = art.Descricao, ent.Nome"); sql.AppendLine("FROM TDU_LinhasAnomalias linhas"); sql.AppendLine("INNER JOIN Artigo art ON linhas.CDU_Artigo = art.Artigo"); sql.AppendLine("LEFT JOIN ("); sql.AppendLine(" SELECT TipoEntidade = 'C', Entidade = Cliente, Nome FROM Clientes"); sql.AppendLine(" UNION SELECT TipoEntidade = 'F', Entidade = Fornecedor, Nome FROM Fornecedores"); sql.AppendLine(" UNION SELECT TipoEntidade = 'O', Entidade = Terceiro, Nome FROM OutrosTerceiros"); sql.AppendLine(" ) ent ON linhas.CDU_TipoEntidade = ent.TipoEntidade AND linhas.CDU_Entidade = ent.Entidade"); sql.AppendLine(PSO.Sql.FormatSQL("WHERE linhas.CDU_Numero = @1@", number)); StdBELista list = BSO.Consulta(sql.ToString()); if (list != null) { int row = 1; while (!list.NoFim()) { // Grupo Artigo priGrelha1.SetGRID_SetValorCelula(row, colArtigo, list.Valor("CDU_Artigo")); priGrelha1.SetGRID_SetValorCelula(row, colDescArtigo, list.Valor("DescArtigo")); priGrelha1.SetGRID_SetValorCelula(row, colLote, list.Valor("CDU_Lote")); priGrelha1.SetGRID_SetValorCelula(row, colNumSerie, list.Valor("CDU_NumSerie")); // Grupo Entidade string tipoEntidade = list.Valor("CDU_TipoEntidade"); SetValorComboboxGrelha(colTipoEntidade, row, GetDescTipoEntidade(tipoEntidade)); priGrelha1.SetGRID_SetValorCelula(row, colEntidade, list.Valor("CDU_Entidade")); priGrelha1.SetGRID_SetValorCelula(row, colNomeEntidade, list.Valor("Nome")); // Grupo Anomalia int tipoAnomalia = list.Valor("CDU_TipoAnomalia"); priGrelha1.SetGRID_SetValorCelula(row, colTipoAnomalia, GetDescTipoAnomalia(tipoAnomalia)); priGrelha1.SetGRID_SetValorCelula(row, colDescricao, list.Valor("CDU_Descricao")); priGrelha1.SetGRID_SetValorCelula(row, colQuantidade, list.Valor("CDU_Quantidade")); priGrelha1.SetGRID_SetValorCelula(row, colUnidade, list.Valor("CDU_Unidade")); // Grupo Localização priGrelha1.SetGRID_SetValorCelula(row, colArmazem, list.Valor("CDU_Armazem")); priGrelha1.SetGRID_SetValorCelula(row, colLocalizacao, list.Valor("CDU_Localizacao")); priGrelha1.SetGRID_SetValorCelula(row, colEstado, list.Valor("CDU_Estado")); list.Seguinte(); row++; } } }
public void lista_utilizador_aplicacoes(string user) { init(); StdBELista uaList = _admBs.Consulta("SELECT * FROM UtilizadoresAplicacoes WHERE Utilizador='" + user + "'"); uaList.Inicio(); while (!uaList.NoFim()) { Console.WriteLine("Aplicacao: " + uaList.Valor("Apl")); uaList.Seguinte(); } return; }
public void lista_utilizador_permissoes(string user) { init(); StdBELista upList = _admBs.Consulta("SELECT * FROM Permissoes WHERE Utilizador='" + user + "'"); upList.Inicio(); while (!upList.NoFim()) { Console.WriteLine("Permissao: "); Console.WriteLine(" Perfil: " + upList.Valor("Perfil")); Console.WriteLine(" Empresa: " + upList.Valor("Empresa")); upList.Seguinte(); } return; }
public void lista_perfis() { init(); StdBELista pList = _admBs.Consulta("SELECT * FROM perfis"); pList.Inicio(); while (!pList.NoFim()) { Console.WriteLine("Perfil: " + pList.Valor("Codigo")); Console.WriteLine(" Codigo: " + pList.Valor("Codigo")); Console.WriteLine(" Nome: " + pList.Valor("Nome")); pList.Seguinte(); } return; }
public void info() { init(); ErpBS motor = new ErpBS(); bool _false = false; Console.WriteLine("License: " + !motor.Licenca.VersaoDemo); Console.WriteLine("Language: " + _admBs.Params.get_Idioma()); Console.WriteLine("Seguranca Activa: " + _admBs.Params.get_SegurancaActiva()); Console.WriteLine("Seguranca Pro Emp Activa: " + _admBs.Params.get_SegurancaPorEmpActiva()); Console.WriteLine("Modo Seguranca: " + _admBs.Params.get_SegurancaActiva()); //Console.WriteLine("N Postos: " + adm.Utilizadores.listPostos.ListaPostos(ref _false).NumItens); string backupsdir = Backupsdir; if (backupsdir == null) { backupsdir = _admBs.SQLServer.DirectoriaBackup(); } Console.WriteLine("DirectoriaBackup: " + backupsdir); StdBELista uList = _admBs.Consulta("SELECT * FROM utilizadores"); Console.WriteLine("N Utilizadores: " + uList.NumLinhas()); uList.Inicio(); while (!uList.NoFim()) { Console.WriteLine(" Utilizador: " + uList.Valor("Codigo") + ", " + uList.Valor("Nome")); uList.Seguinte(); } StdBELista eList = _admBs.Consulta("SELECT * FROM empresas"); Console.WriteLine("N Empresas: " + eList.NumLinhas()); eList.Inicio(); while (!eList.NoFim()) { Console.WriteLine(" Empresa: " + eList.Valor("Codigo") + ", " + eList.Valor("IDNome")); eList.Seguinte(); } return; }
public static List <Artigo> getRelacionados(string id, int tipo, double pvp1) { List <Artigo> relacionados = new List <Artigo>(); double precoMax = pvp1 * 1.25; string precoString = precoMax.ToString(); precoString = precoString.Replace(",", "."); StdBELista lst = new StdBELista(); lst = PriEngine.Engine.Consulta("IF(SELECT COUNT(DISTINCT Artigo) Total FROM LinhasDoc WHERE Data >= DATEADD(month,-3,GETDATE()) AND Artigo IN (SELECT Artigo FROM Artigo WHERE CDU_Tipo=" + tipo + ") AND LinhasDoc.PrecUnit <= " + precoString + ") >$4" + "BEGIN " + " SELECT Art.Artigo, Descricao, PVP1, IVA, Total " + " FROM " + " (SELECT Artigo.Artigo, Descricao, PVP1, IVA " + " FROM Artigo " + " JOIN ArtigoMoeda ON Artigo.Artigo=ArtigoMoeda.Artigo" + " WHERE CDU_Tipo="+ tipo + " AND PVP1 <= " + precoString + " AND Artigo.Artigo!='" + id + "' ) AS Art " + " JOIN (SELECT TOP 5 Artigo, COUNT(*) Total " + " FROM LinhasDoc " + " WHERE Data >= DATEADD(month,-3,GETDATE())" + " GROUP BY Artigo " + " HAVING COUNT(*) > 1" + " ORDER BY COUNT(*) DESC) AS Linhas ON Art.Artigo = Linhas.Artigo " + "END " + "ELSE " + "SELECT Artigo.Artigo, Descricao, PVP1, IVA " + "FROM Artigo JOIN ArtigoMoeda ON Artigo.Artigo=ArtigoMoeda.Artigo " + "WHERE CDU_Tipo=" + tipo + " AND Artigo.Artigo!='" + id + "' " + "ORDER BY NEWID() " + "SET ROWCOUNT 5"); Artigo art; while (!lst.NoFim()) { art = new Artigo(); art.CodArtigo = lst.Valor("artigo"); art.DescArtigo = lst.Valor("descricao"); art.Preco = Math.Round(lst.Valor("PVP1") * (1 + Convert.ToDouble(lst.Valor("IVA")) / 100.0), 2); relacionados.Add(art); lst.Seguinte(); } return(relacionados); }
public static List <Artigo> toArtigoList(StdBELista objList) { List <Model.Artigo> listArtigos = new List <Model.Artigo>(); while (!objList.NoFim()) { listArtigos.Add(new Model.Artigo { CodArtigo = objList.Valor("Artigo"), DescArtigo = objList.Valor("Descricao"), Stock = Convert.ToDouble(objList.Valor("STKActual")), Marca = objList.Valor("Marca"), Preco = Math.Round((Convert.ToDouble(objList.Valor("PVP1")) * (1 + Convert.ToDouble(objList.Valor("IVA")) / 100.0)), 2) }); objList.Seguinte(); } return(listArtigos); }
public static Dictionary <int, Dictionary <string, ClassLine> > GetBalanceSheet() { //OUTPUT Dictionary <int, Dictionary <string, ClassLine> > output = new Dictionary <int, Dictionary <string, ClassLine> >(); //STABLISH PRIMAVERA COMMUNICATION if (!InitializeCompany()) { return(output); } StdBELista balanceSheetQuery = PriEngine.Engine.Consulta("SELECT * FROM AcumuladosContas ORDER BY Ano DESC"); //COMPLETE OUTPUT Dictionary <string, ClassLine> year_balance = new Dictionary <string, ClassLine>(); int past_year = 0; while (!balanceSheetQuery.NoFim()) { ClassLine line = new ClassLine(); line.ano = balanceSheetQuery.Valor("Ano"); //CHECK IF IT IS A NEW YEAR TO CREATE A NEW BALANCE if (line.ano != past_year && past_year != 0) //in the first case the years are different but we want to continue { output.Add(past_year, year_balance); year_balance = new Dictionary <string, ClassLine>(); } processLine(balanceSheetQuery, line); if (line.tipoLancamento == "000") { year_balance.Add(line.conta.ToString(), line); } past_year = line.ano; balanceSheetQuery.Seguinte(); } //if there are no more lines the cycle will end, so we have to add the data outside output.Add(past_year, year_balance); return(output); }
// 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); }
public static List <OvertimeHours> GetOvertimeHours(DateTime initialDate, DateTime finalDate) { // Create an empty list of absences: List <OvertimeHours> overtimeHours = new List <OvertimeHours>(); if (!InitializeCompany()) { return(overtimeHours); } // Get Data from Absence of the employee with ID=employeeId BD StdBELista list = PriEngine.Engine.Consulta( "SELECT CadastroHExtras.Funcionario, CadastroHExtras.Data, CadastroHExtras.Tempo, Funcionarios.Nome AS FuncionariosNome " + "FROM CadastroHExtras " + "INNER JOIN Funcionarios " + "ON CadastroHExtras.Funcionario = Funcionarios.Codigo " + "WHERE CadastroHExtras.Data >= '" + initialDate.ToString("yyyyMMdd") + "' AND CadastroHExtras.Data <= '" + finalDate.ToString("yyyyMMdd") + "' " + "ORDER BY CadastroHExtras.Data " ); // Get Data from Absence of the employee with ID=employeeId Not BD //StdBELista list = PriEngine.Engine.RecursosHumanos.CadastroHorasExtra.LstCadastroHorasExtra(); // TODO edit while (!list.NoFim()) { OvertimeHours overtimeHoursObj = new OvertimeHours(); overtimeHoursObj.EmployeeId = list.Valor("Funcionario"); overtimeHoursObj.EmployeeName = list.Valor("FuncionariosNome"); overtimeHoursObj.Date = list.Valor("Data"); overtimeHoursObj.Time = list.Valor("Tempo").ToString(); // Add absence to the list: overtimeHours.Add(overtimeHoursObj); // Next item: list.Seguinte(); } return(overtimeHours); }
// Human Resources related: public static List <Employee> GetEmployees(DateTime initialDate, DateTime finalDate) { // Create an empty list of employees: List <Employee> employees = new List <Employee>(); if (!InitializeCompany()) { return(employees); } StdBELista list = PriEngine.Engine.Consulta( "SELECT IdGDOC, Nome, Sexo, Vencimento, TipoMoeda, DataAdmissao, DataDemissao " + "FROM Funcionarios " + "WHERE DataAdmissao <= '" + finalDate.ToString("yyyyMMdd") + "' " + " AND (DataDemissao >= '" + initialDate.ToString("yyyyMMdd") + "' OR DataDemissao IS NULL) " + "ORDER BY DataAdmissao" ); while (!list.NoFim()) { Employee employee = new Employee(); // Set values employee.ID = list.Valor("IdGDOC"); employee.Name = list.Valor("Nome"); employee.Gender = list.Valor("Sexo") == "0" ? Employee.GenderType.Female : Employee.GenderType.Male; employee.Salary = new Money(list.Valor("Vencimento"), "Unspecified"); // No currency value employee.HiredOn = ParseDate(list, "DataAdmissao"); employee.FiredOn = ParseDate(list, "DataDemissao"); // Add employee to the list: employees.Add(employee); // Next item: list.Seguinte(); } return(employees); }
} // Returns <male,female> format public static List <EmployeeMovement> GetEmployeesMovements(DateTime initialDate, DateTime finalDate) { // Create an empty list of employee movements: List <EmployeeMovement> employeeMovements = new List <EmployeeMovement>(); if (!InitializeCompany()) { return(employeeMovements); } // Get Data of movements: StdBELista list = PriEngine.Engine.Consulta( "SELECT TotalDeRemuneracoes, TotalEncargosEntPat, Funcionario, DataMov, NumProc " + "FROM MovimentosFuncionarios " + "WHERE MovimentosFuncionarios.DataMov >= '" + initialDate.ToString("yyyyMMdd") + "' AND MovimentosFuncionarios.DataMov <= '" + finalDate.ToString("yyyyMMdd") + "' " + "ORDER BY MovimentosFuncionarios.DataMov " ); while (!list.NoFim()) { EmployeeMovement employeeMovement = new EmployeeMovement(); employeeMovement.EmployeeId = list.Valor("Funcionario"); employeeMovement.MovementDate = list.Valor("DataMov"); employeeMovement.ProcessNo = list.Valor("NumProc"); employeeMovement.EmployeePayment = list.Valor("TotalDeRemuneracoes"); employeeMovement.EstateCharges = list.Valor("TotalEncargosEntPat"); // Add absence to the list: employeeMovements.Add(employeeMovement); // Next item: list.Seguinte(); } return(employeeMovements); }
private void btnImport_Click(object sender, EventArgs e) { if (lstDocuments != null && lstDocuments.NumLinhas() > 0) { bool occurredErrors = false; bool occurredSomeIntegrations = false; DialogResult oDialog = ERPContext.PSO.Dialogos.MostraDialogoEsperaAsync( this, "A processar documentos...", new Action <Progress <int>, CancellationToken>((progress, cancel) => { int i = 0; lstDocuments.Inicio(); while (!lstDocuments.NoFim()) { ((IProgress <int>)progress).Report(Convert.ToInt32((decimal)i / (decimal)lstDocuments.NumLinhas() * 100)); if (lstDocuments.DaValor <bool>("Sel")) { Tuple <string, string> retValue = new Tuple <string, string>(String.Empty, String.Empty); if (lstDocuments.DaValor <string>("DocType").Equals("Compra")) { retValue = BusinessProcesses.ImportSalesDocument(ERPContext, lstDocuments.DaValor <string>("Company"), lstDocuments.DaValor <string>("IDDoc")); } else if (lstDocuments.DaValor <string>("DocType").Equals("Encomenda")) { retValue = BusinessProcesses.ImportPurchasesDocument(ERPContext, lstDocuments.DaValor <string>("Company"), lstDocuments.DaValor <string>("IDDoc")); } else { retValue = new Tuple <string, string>(String.Empty, String.Empty); } if (retValue.Item1.Equals("ERRO")) { occurredErrors = true; } else { occurredSomeIntegrations = true; } SetGridText(lstDocuments.DaValor <string>("IDDoc"), retValue); } i++; lstDocuments.Seguinte(); } })); // Erros if (occurredErrors) { ERPContext.PSO.Dialogos.MostraMensagem( StdBSTipos.TipoMsg.PRI_SimplesOk, "Ocorreram erros na importação. Verifique as notas.", StdBSTipos.IconId.PRI_Exclama); } else if (occurredSomeIntegrations) { ERPContext.PSO.Dialogos.MostraMensagem( StdBSTipos.TipoMsg.PRI_SimplesOk, "Integração terminada com sucesso.", StdBSTipos.IconId.PRI_Informativo); } else { ERPContext.PSO.Dialogos.MostraMensagem( StdBSTipos.TipoMsg.PRI_SimplesOk, "Não foram efetuadas quaisquer integrações.", StdBSTipos.IconId.PRI_Informativo); } } else { ERPContext.PSO.Dialogos.MostraMensagem( StdPlatBS100.StdBSTipos.TipoMsg.PRI_SimplesOk, "Não há documentos para processar.", StdBSTipos.IconId.PRI_Informativo); } }
//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 Model.RespostaErro Encomendas_New(Model.DocVenda dv) { Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro(); GcpBEDocumentoVenda myEnc = new GcpBEDocumentoVenda(); GcpBELinhaDocumentoVenda myLin = new GcpBELinhaDocumentoVenda(); GcpBELinhasDocumentoVenda myLinhas = new GcpBELinhasDocumentoVenda(); PreencheRelacaoVendas rl = new PreencheRelacaoVendas(); List <Model.LinhaDocVenda> lstlindv = new List <Model.LinhaDocVenda>(); try { if (PriEngine.InitializeCompany(ElectroSinf.Properties.Settings.Default.Company.Trim(), ElectroSinf.Properties.Settings.Default.User.Trim(), ElectroSinf.Properties.Settings.Default.Password.Trim()) == true) { //atributos que por enquanto não são dinamicos: string serie = "1"; double desconto = 0.0; string armazem = "A1"; // Atribui valores ao cabecalho do doc myEnc.set_Entidade(dv.Entidade); myEnc.set_Serie(serie); myEnc.set_Tipodoc(dv.DocType); myEnc.set_TipoEntidade("C"); // Linhas do documento para a lista de linhas //lstlindv = dv.LinhasDoc; PriEngine.Engine.Comercial.Vendas.PreencheDadosRelacionados(myEnc, rl); double pvp1 = 0, quantidade = 0; string idArtigo = ""; int Stock = 0; StdBELista carrinho = PriEngine.Engine.Consulta("SELECT * FROM TDU_Carrinho WHERE CDU_IdCliente='" + dv.Entidade + "'"); while (!carrinho.NoFim()) { idArtigo = carrinho.Valor("CDU_IdArtigo"); quantidade = Convert.ToDouble(carrinho.Valor("CDU_Quantidade")); armazem = carrinho.Valor("CDU_Armazem"); Stock = (int)PriEngine.Engine.Comercial.ArtigosArmazens.DaStockArtigo(idArtigo); //ARMAZEM if (quantidade > Stock) { erro.Erro = 1; erro.Descricao = "quantidadeErrada"; return(erro); } pvp1 = PriEngine.Engine.Comercial.ArtigosPrecos.DaPrecoArtigoMoeda(idArtigo, "EUR", "UN", "PVP1", false, 0); PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, idArtigo, quantidade, armazem, "", pvp1, desconto); carrinho.Seguinte(); } /* * foreach (Model.LinhaDocVenda lin in lstlindv) * { * pvp1 = PriEngine.Engine.Comercial.ArtigosPrecos.DaPrecoArtigoMoeda(lin.CodArtigo, "EUR", "UN", "PVP1", false, 0); * PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, lin.CodArtigo, lin.Quantidade, armazem, "", pvp1, desconto); * } */ PriEngine.Engine.IniciaTransaccao(); PriEngine.Engine.Comercial.Vendas.Actualiza(myEnc, "Teste"); PriEngine.Engine.TerminaTransaccao(); erro.Erro = 0; erro.Descricao = "Sucesso"; carrinho.Inicio(); while (!carrinho.NoFim()) { idArtigo = carrinho.Valor("CDU_IdArtigo"); StdBECamposChave tdu_carrinho = new StdBECamposChave(); tdu_carrinho.AddCampoChave("CDU_IdCliente", dv.Entidade); tdu_carrinho.AddCampoChave("CDU_IdArtigo", idArtigo); PriEngine.Engine.TabelasUtilizador.Remove("TDU_Carrinho", tdu_carrinho); carrinho.Seguinte(); } return(erro); } else { erro.Erro = 1; erro.Descricao = "Erro ao abrir empresa"; return(erro); } } catch (Exception ex) { try { PriEngine.Engine.DesfazTransaccao(); } catch (Exception) { } erro.Erro = 1; erro.Descricao = ex.Message; Console.Write(erro.Descricao); return(erro); } }