Fórum
Ver pergunta

Validação de campos nas linhas do documento de vendas antes de Gravar V10.   

164 visualizações
-1
0

Tenho este VBA que estou a tentar converter para C#, o objectivo é fazer a mesma validação na V10 ” Verificar se existe alguma linha com o preço unitário a zero, a validação terá de se feita antes de gravar e não linha a linha.

Dim n As Long, strMsgDetalhe As String

With Me.DocumentoVenda

For n = 1 To.Linhas.NumItens
If .Linhas(n).PrecUnit = 0 And Len(.Linhas(n).Artigo) <> 0 Then
strMsgDetalhe = strMsgDetalhe & .Linhas(n).Artigo & ","
End If
Next n
If strMsgDetalhe<> "" Then
Aplicacao.PlataformaPRIMAVERA.Dialogos.MostraMensagem 2, "Foram movimentados artigos sem preço/quantidade unitário", 4, strMsgDetalhe, , True
'Cancel=True 'Para não deixar gravar
End If
End With

 

O novo código esta assim:

namespace ExtensibilityProjectLinhas.Sales
{
public class UiEditorVendas : EditorVendas
{
public override void AntesDeGravar(ref bool Cancel, ExtensibilityEventArgs e)
{
for (int i = 0; i <= this.DocumentoVenda.Linhas.NumItens; i++)

if (this.DocumentoVenda.Linhas.GetEdita(i).PrecUnit == 0)
{
PSO.Dialogos.MostraAviso("ERRO!", StdPlatBS100.StdBSTipos.IconId.PRI_Exclama);
Cancel = true;

Estou a obter o seguinte erro.

Error CS0012: The type ‘BaseBE’ is defined in an assembly that is not referenced.You must add a reference to assembly ‘BasBE100, Version=10.0.0.0, Culture=neutral, PublicKeyToken=11cd844aca152173’. ExtensibilityProjectLinhas E:\V10\AMS\ExtensibilityProjectLinhas\ExtensibilityProjectLinhas\Sales\UiEditorVendas.cs    18 Active

Já tentei adicionar a reference BasBE100 mas não a encontro, podem ajudar-me?

Faça login para poder traduzir
Integração
V10
Geral
Marcado como spam
Criado há 6 anos e 5 meses marcotemtem
m
marcotemtem Iniciante
3 respostas
0
Resposta privada

Boas já obtive Ajuda e deixo aqui um exemplo funcional para quem precisar.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Primavera.Extensibility.BusinessEntities;
using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
using Primavera.Extensibility.Sales.Editors;

namespace ExtensibilityProject_ValidaLinhas.Sales
{
public class UiEditorVendas : EditorVendas
{
public override void AntesDeGravar(ref bool Cancel, ExtensibilityEventArgs e)
{
base.AntesDeGravar(ref Cancel, e);

for (int i=1; i<=this.DocumentoVenda.Linhas.NumItens; i++)
{
VndBE100.IVndBELinhaDocumentoVenda linhas=this.DocumentoVenda.Linhas.GetEdita(i);

if (linhas.Artigo != "" )

if (linhas.PrecUnit ==0 || linhas.Quantidade== 0)
{
PSO.Dialogos.MostraAviso("ERRO! O artigo" + linhas.Artigo + " não pode ser movimentado sem Preço / quantidade!" , StdPlatBS100.StdBSTipos.IconId.PRI_Exclama);
Cancel = true;
};
}
}
}
}

Faça login para poder traduzir
Marcado como spam
Criado há 6 anos e 5 meses marcotemtem
m
marcotemtem Iniciante
    1
    Resposta privada

    Em relação a referencia que não conseguia adicionar já consegui AJUDA e fica aqui a informação para caso alguém necessite. A mesma esta na pasta de instalação do Primavera ...SG100\Apl\BasBE100.dll. A mesma só é necessária se porque usei o GetEdita()!!

    Faça login para poder traduzir
    Marcado como spam
    Criado há 6 anos e 5 meses marcotemtem
    m
    marcotemtem Iniciante
      Comentários
      É isso mesmo Marco, partilhar as dicas com o resto da comunidade. BOA Quanto a duvida, todas as DLL's PRIMAVERA estão na pasta APL.
      6 anos e 5 meses
      primaverabss
        0
        Resposta privada

        Olá Marco.

        O melhor é mesmo começar por ler um pouco sobre o funcionamento da V10, recomendamos.

        Recomendo também instalar a extensão Visual Studio para lhe adiconar automaticamente as referencias que necessita quando está a criar os seus projetos PEX.

        Por ultimo, se procurar no developer network tem muita informação sobre como usar a tecnologia, e no git vários exemplos de utilização.

        Faça login para poder traduzir
        Marcado como spam
        Criado há 6 anos e 5 meses primaverabss
        p
        primaverabss Iniciante
          Comentários
          Obrigado pela sugestão, têm sido mesmo esses os meus passos, já passei por todos eles e já vi imensos exemplos e não encontrei nada no sentido do que procuro. Mas é sempre bom ter quem nos apoie e nos incentive a não desistir obrigado pelo apoio.
          6 anos e 5 meses
          marcotemtem