Esempio n. 1
2
        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);
        }
Esempio n. 5
0
        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++;
                }
            }
        }
Esempio n. 6
0
        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;
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
        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;
        }
Esempio n. 9
0
        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;
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 17
0
        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;
            }
        }
Esempio n. 20
0
        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);
            }
        }