/// <summary>
        /// Create a new item with the minimal information.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CmdSave_Click(object sender, EventArgs e)
        {
            BasBEArtigo        artigo        = new BasBEArtigo();
            BasBEArtigoMoeda   artigoMoeda   = new BasBEArtigoMoeda();
            BasBEArtigoUnidade artigoUnidade = new BasBEArtigoUnidade();

            artigo.Artigo      = txtItem.Text;
            artigo.Descricao   = txtDescription.Text;
            artigo.UnidadeBase = txtBaseUnit.Text;

            // Fill the default item information.
            PriEngine.Engine.Base.Artigos.PreencheDadosRelacionados(artigo);

            // Set the item prices for the selectc currency.
            artigoMoeda.Artigo          = artigo.Artigo;
            artigoMoeda.Unidade         = artigo.UnidadeBase;
            artigoMoeda.Moeda           = txtCurrency.Text;
            artigoMoeda.PVP1IvaIncluido = false;
            artigoMoeda.PVP1            = 100;

            artigoUnidade.Artigo          = artigo.Artigo;
            artigoUnidade.FactorConversao = 1;
            artigoUnidade.UnidadeDestino  = artigo.UnidadeBase;
            artigoUnidade.UnidadeOrigem   = artigo.UnidadeBase;

            // Create a new attach.
            StdPlatBE100.StdBEAnexo anexo = new StdPlatBE100.StdBEAnexo();

            // The Attach ID.
            string anexoID = Guid.NewGuid().ToString();

            anexo.IdAnexo        = anexoID;
            anexo.Data           = DateTime.Today;
            anexo.Tabela         = StdPlatBE100.StdBETipos.EnumTabelaAnexos.anxArtigos;
            anexo.Chave          = artigo.Artigo;
            anexo.Descricao      = artigo.Descricao;
            anexo.Utilizador     = PriEngine.Engine.Contexto.UtilizadorActual;
            anexo.Idioma         = (int)PriEngine.Platform.Contexto.Utilizador.Cultura;
            anexo.Tipo           = "IMG";
            anexo.Web            = true;
            anexo.FicheiroOrigem = @"c:\temp\img_test.png";

            // Insert the a new attach.
            PriEngine.Platform.Anexos.Actualiza(anexo);

            // Update or insert a new item
            PriEngine.Engine.Base.Artigos.Actualiza(artigo);
            PriEngine.Engine.Base.ArtigosPrecos.Actualiza(artigoMoeda);
            PriEngine.Engine.Base.ArtigosUnidades.Actualiza(ref artigoUnidade);

            // Format the attach file.
            anexoID = "{" + anexoID + "}";

            // Copy the file to the images folder.
            File.Copy(@"c:\temp\img_test.png", $@"C:\Program Files\PRIMAVERA\SG100\Dados\LE\ANEXOS\{anexoID}.png", true);
        }
Exemple #2
0
        private void TrataColuna_Artigo(int row)
        {
            try
            {
                bool   artigoInjectado = false;
                string artigo          = PSO.Utils.FStr(priGrelha1.GetGRID_GetValorCelula(row, colArtigo));

                if (!string.IsNullOrWhiteSpace(artigo))
                {
                    if (BSO.Base.Artigos.Existe(artigo))
                    {
                        BasBEArtigo beArtigo = BSO.Base.Artigos.Consulta(artigo);

                        priGrelha1.SetGRID_SetValorCelula(row, colArtigo, beArtigo.Artigo.ToUpper());
                        priGrelha1.SetGRID_SetValorCelula(row, colDescArtigo, beArtigo.Descricao.ToUpper());

                        priGrelha1.SetGRID_SetValorCelula(row, colTipoEntidade, "Cliente");

                        priGrelha1.SetGRID_SetValorCelula(row, colTipoAnomalia, "Avaria");

                        priGrelha1.SetGRID_SetValorCelula(row, colQuantidade, 1);
                        priGrelha1.SetGRID_SetValorCelula(row, colUnidade, beArtigo.UnidadeBase.ToUpper());

                        priGrelha1.SetGRID_SetValorCelula(row, colArmazem, beArtigo.ArmazemSugestao);
                        TrataColuna_Armazem(row);

                        artigoInjectado = true;
                    }
                    else
                    {
                        PSO.Dialogos.MostraErroSimples("Artigo inexistente!");
                    }
                }

                if (!artigoInjectado)
                {
                    LimpaCamposGrelhaGrupoArtigo(row);
                }
            }
            catch (Exception ex)
            {
                LimpaCamposGrelhaGrupoArtigo(row);
                throw ex;
            }
        }
        /// <summary>
        /// Update the Item in the group companies
        /// </summary>
        /// <param name="oERPContext"></param>
        /// <param name="Artigo"></param>
        /// <returns>List<String> of the updated companies</returns>
        internal static List <String> UpdateItem_GroupCompanies(ERPContext oERPContext, String Item)
        {
            Dictionary <String, String> groupCompanies = CrossCompany.Platform.GetGroupCompanies(oERPContext);
            List <String> updatedCompanies             = new List <string>();

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

            groupCompanies.Remove(oERPContext.BSO.Contexto.CodEmp);
            foreach (string company in groupCompanies.Keys)
            {
                ErpBS oCompany = new ErpBS();

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

                //Create or update the item
                BasBEArtigo      oItem       = oERPContext.BSO.Base.Artigos.Edita(Item);
                BasBEArtigoMoeda oItemPrices = oERPContext.BSO.Base.ArtigosPrecos.Edita(Item, "EUR", oERPContext.BSO.Base.Artigos.DaValorAtributo(Item, "UnidadeBase"));
                if (!oCompany.Base.Artigos.Existe(Item))
                {
                    oItem.EmModoEdicao       = false;
                    oItemPrices.EmModoEdicao = false;
                }
                oCompany.Base.Artigos.Actualiza(oItem);
                oCompany.Base.ArtigosPrecos.Actualiza(oItemPrices);
                updatedCompanies.Add(company);

                oCompany.FechaEmpresaTrabalho();
            }

            return(updatedCompanies);
        }