Esempio n. 1
1
        bool isArtigoConjunto(String artigo)
        {
            StdBELista tblArtigo = new StdBELista();
            bool       rv        = false;

            try
            {
                tblArtigo = BSO.Consulta("select TipoComponente from Artigo where Artigo = '" + artigo + "'");


                //alterar armazem dos artigos na linha
                if (tblArtigo.Vazia() == false)
                {
                    rv = tblArtigo.DaValor <int>("TipoComponente") == 1 ? true : false;
                }
            }
            catch (Exception err)
            {
                PSO.Dialogos.MostraErro("[Consulta Artigo]: " + err.ToString());
                rv = false;
            }



            return(rv);
        }
Esempio n. 2
0
        /// <summary>
        /// Get the list of companies.
        /// </summary>
        /// <returns>A dictionary containing [string CompanyCode, string CompanyDescription]</returns>
        public static Dictionary <string, string> GetGroupCompanies(ERPContext oERPContext)
        {
            Dictionary <string, string> Result = new Dictionary <string, string>();

            StringBuilder sqlQry = new StringBuilder();

            sqlQry.AppendLine("select e.Codigo, e.IDNome as Descricao, ce.Descricao as Categoria ");
            sqlQry.AppendLine("from {0}..empresas e ");
            sqlQry.AppendLine("     inner join {0}..categoriasempresas ce on e.categoria=ce.categoria ");
            sqlQry.AppendLine("     inner join {0}..empresas ea on ea.Categoria = ce.Categoria ");
            sqlQry.AppendFormat("where ea.codigo = '{0}' and e.TipoExercicio <> 'CONSO'", oERPContext.BSO.Contexto.CodEmp);

            string sqlQRYRun = string.Format(sqlQry.ToString(), Properties.Settings.Default.PRIEMPRE_DBNAME);

            StdBELista compList = oERPContext.BSO.Consulta(sqlQRYRun.ToString());

            if (!compList.Vazia())
            {
                while (!compList.NoFim())
                {
                    Result.Add(compList.Valor("Codigo"), compList.Valor("Descricao"));
                    compList.Seguinte();
                }
            }

            return(Result);
        }
Esempio n. 3
0
        private void grdDocuments_ActualizaDados(object Sender, EventArgs e)
        {
            lstDocuments = CrossCompany.BusinessProcesses.GetDocumentsToImport(ERPContext);

            if (lstDocuments != null && !lstDocuments.Vazia())
            {
                grdDocuments.DataBind(lstDocuments);
            }
        }
        private void grdMainGrid_ActualizaDados(object Sender, EventArgs e)
        {
            StdBELista lstGlobalPosition = CrossCompany.PayablesReceivables.GetGlobalPosition(ERPContext, ctlEntity.TipoEntidadeCombo, ctlEntity.ValorRestricao, ctlEntity.EntidadesAssociadas);

            if (!lstGlobalPosition.Vazia())
            {
                grdMainGrid.DataBind(lstGlobalPosition);
            }
        }
        internal static Dictionary <String, int> CheckPendingDocuments(ERPContext oERPContext)
        {
            Dictionary <String, int>    result         = new Dictionary <string, int>();
            Dictionary <String, String> groupCompanies = CrossCompany.Platform.GetGroupCompanies(oERPContext);

            //Exit if no companies where found
            if (groupCompanies.Count == 0)
            {
                return(result);
            }

            result.Add("Purchases", 0);
            result.Add("Sales", 0);

            //Load the documents to import from all the group companies
            groupCompanies.Remove(oERPContext.BSO.Contexto.CodEmp);
            foreach (string groupCompany in groupCompanies.Keys)
            {
                ErpBS oCompany = new ErpBS();

                oCompany.AbreEmpresaTrabalho(
                    StdBE100.StdBETipos.EnumTipoPlataforma.tpEmpresarial,
                    groupCompany,
                    Properties.Settings.Default.User,
                    Properties.Settings.Default.Password);


                String strSQL = String.Format(
                    "select sum(pur) Purchases, sum(sls) Sales " +
                    "from(" +
                    "   select count(*) pur, 0 sls from cabecdoc cd inner join CabecDocStatus cds on cds.IdCabecDoc=cd.Id left join documentosvenda dv on cd.tipodoc = dv.documento " +
                    "   where dv.cdu_exportagrupo = 1 AND cd.cdu_exportado = 0  AND cds.Anulado=0 AND cd.entidade = '{0}' " +
                    "   UNION ALL " +
                    "   select 0 pur, count(*) pur from cabeccompras cc inner join CabecComprasStatus ccs on ccs.IdCabecCompras=cc.Id left join documentoscompra dc on cc.tipodoc = dc.documento " +
                    "   where dc.cdu_exportagrupo = 1 AND isnull(cc.cdu_exportado, 0) = 0 AND ccs.Anulado=0 AND cc.entidade = '{0}' " +
                    "   ) as tmp"
                    , oERPContext.BSO.Contexto.CodEmp);

                StdBELista lstPendDocs = oCompany.Consulta(strSQL);

                if (!lstPendDocs.Vazia())
                {
                    if (lstPendDocs.DaValor <int>("Purchases") > 0)
                    {
                        result["Purchases"] += lstPendDocs.DaValor <int>("Purchases");
                    }

                    if (lstPendDocs.DaValor <int>("Sales") > 0)
                    {
                        result["Sales"] += lstPendDocs.DaValor <int>("Sales");
                    }
                }
            }

            return(result);
        }
Esempio n. 6
0
        public override void ArtigoIdentificado(string Artigo, int NumLinha, ref bool Cancel, ExtensibilityEventArgs e)
        {
            bool inserido = false;

            for (int i = 0; i < lista_artigo.Count; i++)
            {
                if (lista_artigo[i].artigo == Artigo)
                {
                    inserido = true;
                    PSO.Dialogos.MostraAviso("O Artigo " + Artigo + " Ja foi inserido!");
                    Cancel = true;
                }
            }

            if (inserido == false)
            {
                if (isArtigoConjunto(Artigo) == true)
                {
                    artigo_conjunto               = new ArtigoConjunto();;
                    artigo_conjunto.artigo        = Artigo;
                    artigo_conjunto.descricao     = this.DocumentoVenda.Linhas.GetEdita(NumLinha).Descricao;
                    artigo_conjunto.linha_inicial = NumLinha;
                    StdBELista tblArtigo = new StdBELista();

                    try
                    {
                        tblArtigo = BSO.Consulta("select count(*) as total from ComponentesArtigos  where ArtigoComposto =  '" + Artigo + "'");


                        //alterar armazem dos artigos na linha
                        if (tblArtigo.Vazia() == false)
                        {
                            artigo_conjunto.total_linha = tblArtigo.DaValor <int>("total");
                            artigo_conjunto.linha_final = artigo_conjunto.linha_inicial + artigo_conjunto.total_linha;
                            lista_artigo.Add(artigo_conjunto);
                        }
                    }
                    catch (Exception err)
                    {
                        PSO.Dialogos.MostraErro("[ArtigoIdentificado]: " + err.ToString());
                    }
                }
            }
            base.ArtigoIdentificado(Artigo, NumLinha, ref Cancel, e);
        }
Esempio n. 7
0
        private static String GetCompanyCategory(ref ERPContext oERPContext)
        {
            String retValue = "";

            String sqlQRY = string.Format("" +
                                          "select ce.descricao Categoria " +
                                          "from {0}..empresas e " +
                                          "   left join {0}..categoriasempresas ce on e.categoria=ce.categoria " +
                                          "where e.codigo='{1}'", Properties.Settings.Default.PRIEMPRE_DBNAME, oERPContext.BSO.Contexto.CodEmp);
            StdBELista listQueryResults = oERPContext.BSO.Consulta(sqlQRY);

            if (!listQueryResults.Vazia())
            {
                retValue = listQueryResults.Valor("Categoria");
            }

            return(retValue);
        }
Esempio n. 8
0
        public static Lib_Primavera.Model.RespostaErro login(Model.Cliente cli)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();

            try
            {
                if (PriEngine.InitializeCompany(ElectroSinf.Properties.Settings.Default.Company.Trim(), ElectroSinf.Properties.Settings.Default.User.Trim(), ElectroSinf.Properties.Settings.Default.Password.Trim()) == true)
                {
                    StdBELista cliente = PriEngine.Engine.Consulta("SELECT Cliente,CDU_Password from Clientes where CDU_Email='" + cli.Email + "';");
                    if (cliente.Vazia())
                    {
                        erro.Erro      = -1;
                        erro.Descricao = "Email Errado";
                    }
                    else
                    {
                        string inserida = PriEngine.Platform.Criptografia.Encripta(cli.Password, 50);
                        if (inserida == cliente.Valor("CDU_Password"))
                        {
                            erro.Erro      = 0;
                            erro.Descricao = cliente.Valor("Cliente");
                        }
                        else
                        {
                            erro.Erro      = -1;
                            erro.Descricao = "Password Errada";
                        }
                    }
                    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);
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Check for available Data Model updates in resources and apply them, if any.
        /// </summary>
        /// <param name="companyObject"></param>
        private static void DataUpgrade(ref ErpBS companyObject)
        {
            try
            {
                StdBELista dbVersion = companyObject.Consulta("select Versao from VersaoModulo where Modulo = 'XME'");

                string currentVersion = dbVersion.Vazia() ? "0" : dbVersion.DaValor <String>("Versao");
                int    intVersion     = Convert.ToInt32(currentVersion) + 1;

                //Apply the upgrade scripts from resources
                string sqlUPG = Properties.Resources.ResourceManager.GetString(String.Format("UPG_{0}", intVersion.ToString()), CultureInfo.InvariantCulture);
                while (!String.IsNullOrEmpty(sqlUPG))
                {
                    companyObject.DSO.ExecuteSQL(sqlUPG);

                    intVersion += 1;
                    sqlUPG      = Properties.Resources.ResourceManager.GetString(String.Format("UPG_{0}", intVersion.ToString()), CultureInfo.InvariantCulture);
                }

                //Update the version
                intVersion -= 1;
                if (intVersion > Convert.ToInt32(currentVersion))
                {
                    string sqlQRY = string.Format("" +
                                                  "if exists(select * from VersaoModulo where Modulo = 'XME') " +
                                                  "   update VersaoModulo set Versao = '{0}' where Modulo = 'XME' " +
                                                  "else " +
                                                  "   insert into VersaoModulo(Modulo, Versao) values('XME', '{0}')"
                                                  , intVersion.ToString());

                    companyObject.DSO.ExecuteSQL(sqlQRY);
                }
            }
            catch
            {
                //Do nothing
            }
        }
Esempio n. 10
0
        public override void ValidaLinha(int NumLinha, ExtensibilityEventArgs e)
        {
            StdBELista tblArtigoMoeda  = new StdBELista();
            string     artigoLinha     = "";
            string     armazemSugestao = "";
            string     localSugestao   = "";

            bool       calcula      = false;
            StdBELista tblArtigo    = new StdBELista();
            StdBELista tblDocumento = new StdBELista();

            linha = this.DocumentoVenda.Linhas.GetEdita(NumLinha);



            try
            {
                documento    = this.DocumentoVenda.Tipodoc;
                tblDocumento = BSO.Consulta("select ArmazemSugestao, LocalSugestao from SeriesVendas where TipoDoc = '" + documento + "'");


                //alterar armazem dos artigos na linha
                if (tblDocumento.Vazia() == false)
                {
                    armazemSugestao = tblDocumento.DaValor <string>("ArmazemSugestao");
                    localSugestao   = tblDocumento.DaValor <string>("LocalSugestao");


                    string linhaval = linha.Armazem;
                    quantidade = linha.Quantidade;
                    if (armazemSugestao.Length > 0)
                    {
                        linha.Armazem     = armazemSugestao;
                        linha.Localizacao = localSugestao;
                    }
                }
            }
            catch (Exception err)
            {
                PSO.Dialogos.MostraErro("[Consulta Documento]: " + err.ToString());
            }

            try
            {
                cliente        = this.DocumentoVenda.Entidade;
                artigoLinha    = linha.Artigo;
                tblArtigo      = BSO.Consulta("select * from Artigo where Artigo = '" + artigoLinha + "'");
                calcula        = (bool)tblArtigo.Valor("CDU_Calculo");
                tblArtigoMoeda = BSO.Consulta("select * from ArtigoMoeda where Artigo = '" + artigoLinha + "'");
            }
            catch (Exception err)
            {
                PSO.Dialogos.MostraErro("[Consulta Artigo e ArtigoMoeda]: " + err.ToString());
            }



            StdBELista tblDesconto = null;
            float      descValor   = 0;

            if (tblArtigoMoeda != null)
            {
                pvp1 = tblArtigoMoeda.DaValor <float>("PVP1");

                float precBase = float.Parse(linha.CamposUtil["CDU_PrecBase"].Valor.ToString());
                if (precBase == 0 || precBase == pvp1)
                {
                    linha.CamposUtil["CDU_PrecBase"].Valor = pvp1;
                }
            }


            if (tblArtigo != null)
            {
                if (calcula == true)
                {
                    artigo = artigoLinha;

                    try
                    {
                        tblDesconto = BSO.Consulta("select * from TDU_DescCliente where CDU_Cliente = '" + cliente + "' and CDU_Artigo = '" + artigo + "'");
                        if (tblDesconto.Vazia() == false)
                        {
                            descValor = tblDesconto.DaValor <float>("CDU_Desconto");
                        }
                        else
                        {
                            descValor = 0;
                        }
                    }
                    catch (Exception err)
                    {
                        tblDesconto = null;
                        descValor   = 0;
                        PSO.Dialogos.MostraErro("[Consulta Desconto cliente]: " + err.ToString());
                    }



                    if (tblDesconto != null)
                    {
                        float linhaval = float.Parse(linha.CamposUtil["CDU_DescVal"].Valor.ToString());
                        if (linhaval == 0 || linhaval == descValor)
                        {
                            linha.CamposUtil["CDU_DescVal"].Valor = descValor;
                        }
                    }

                    getLinhaValores(NumLinha);

                    linha.PrecUnit = pbase - desconto - comp;
                }
            }

            int size = this.DocumentoVenda.Linhas.NumItens;


            for (int x = 0; x < lista_artigo.Count; x++)
            {
                ArtigoConjunto a = lista_artigo[x];


                if (NumLinha >= a.linha_inicial && NumLinha <= a.linha_final)
                {
                    if (size >= a.linha_final)
                    {
                        for (int i = a.linha_inicial; i <= a.linha_final; i++)
                        {
                            artigoLinha = DocumentoVenda.Linhas.GetEdita(i).Artigo;
                            DocumentoVenda.Linhas.GetEdita(i).Quantidade = quantidade;
                        }
                    }
                }
            }


            base.ValidaLinha(NumLinha, e);
        }
Esempio n. 11
0
        public override void ValidaLinha(int NumLinha, ExtensibilityEventArgs e)
        {
            base.ValidaLinha(NumLinha, e);

            try
            {
                //Apenas valida documentos financeiros ou de transporte
                if ((BSO.Compras.TabCompras.DaValorAtributo(DocumentoCompra.Tipodoc, "TipoDocumento") < 3))
                {
                    return;
                }

                //Validações dos fitofarmacêuticos
                if ((bool)(BSO.Base.Artigos.DaValorAtributo(DocumentoCompra.Linhas.GetEdita(NumLinha).Artigo, "CDU_Fitofarmaceutico")))
                {
                    //Obrigatório indicar o número de autorização de venda
                    if (string.IsNullOrEmpty(DocumentoCompra.Linhas.GetEdita(NumLinha).CamposUtil["CDU_NumeroAutorizacao"].Valor.ToString()))
                    {
                        throw new Exception("O número de autorização de venda é obrigatório nos produtos fitofarmacêuticos.");
                    }

                    //Obrigatório indicar o lote
                    if (DocumentoCompra.Linhas.GetEdita(NumLinha).Lote.Equals("<L01>") || string.IsNullOrEmpty(DocumentoCompra.Linhas.GetEdita(NumLinha).Lote))
                    {
                        throw new Exception("É obrigatório indicar o lote dos produtos fitofarmacêuticos.");
                    }

                    //A compra a entidades não autorizadas implica a identificação do armazém origem
                    //O armazém origem tem de pertencer ao fornecedor
                    if (!(bool)(BSO.Base.Fornecedores.DaValorAtributo(DocumentoCompra.Entidade, "CDU_OperadorFitofarmaceuticos") ?? false))
                    {
                        //Se não foi definido nenhum armazém de proveniencia associa o primeiro do fornecedor (caso exista)
                        if (string.IsNullOrEmpty((DocumentoCompra.Linhas.GetEdita(NumLinha).CamposUtil["CDU_ArmazemProveniencia"].Valor ?? string.Empty).ToString()))
                        {
                            StdBELista LstArmProveniencia = BSO.Consulta(string.Format("select top(1) [CDU_Codigo] from TDU_ArmazensProveniencia where [CDU_CodFornecedor] = '{0}'", DocumentoCompra.Entidade));
                            if (!LstArmProveniencia.Vazia())
                            {
                                DocumentoCompra.Linhas.GetEdita(NumLinha).CamposUtil["CDU_ArmazemProveniencia"].Valor = LstArmProveniencia.Valor("CDU_Codigo");
                            }
                            else
                            {
                                throw new Exception("Não existe nenhum armazém de proveniência associado a este fornecedor. A compra de produtos fitofarmacêuticos a entidades isentas de autorização implica a identificação do armazém de proveniência.");
                            }
                        }

                        //Valida se o armazém de proveniência pertence ao fornecedor
                        StdBECamposChave objCampoChave = new StdBECamposChave();
                        objCampoChave.AddCampoChave("CDU_Codigo", DocumentoCompra.Linhas.GetEdita(NumLinha).CamposUtil["CDU_ArmazemProveniencia"].Valor);

                        if (!BSO.TabelasUtilizador.DaValorAtributo("TDU_ArmazensProveniencia", objCampoChave, "CDU_CodFornecedor").Equals(DocumentoCompra.Entidade))
                        {
                            throw new Exception("O armazém de proveniência não pertence à entidade do documento.");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                PSO.Dialogos.MostraErro(ex.Message, StdPlatBS100.StdBSTipos.IconId.PRI_Exclama);
                DocumentoCompra.Linhas.Remove(NumLinha);
            }
        }