Fórum
Ver pergunta

Erro ao gerar uma composição   

120 visualizações
0
0

Boa tarde,

Necessito de ajuda no seguinte:
Este pedaço de código deveria criar uma composição em que o composto vem do documento de vendas e os componentes da ficha de componentes que são apresentados numa prigrelha, no entanto pretendo manipular os componentes onde posso retirar uns, acrescentar outros ou até duplicar os componentes quando existe stock em lotes destintos.

Ao fazer debug o código parece-me bem, no entanto ao validar o documento antes de gravar, recebo uma mensagem dos motores a informar “O tipo de artigo 0120-…1600702 não é permitido no documento AUT”

Esta referencia é o Composto e no tipo de artigo está activa a opção de disponível para assemblagens.
Já testei fazer a composição diretamente no editor das composições e o erro não é devolvido pelo que só deve ser do código em anexo.

Alguém consegue pode ajudar-me a encontrar o problema?

      private void CriaComposicaoAutomatica(string strArtComposto, string strArmComposto, double QtdComposto, string strLoteComposto)
        {
            try
            {
                InvBEDocumentoComposicao objComposition = new InvBEDocumentoComposicao()
                {
                    Tipodoc = "AUT",
                    Serie = BSO.Base.Series.DaSerieDefeito("S", "AUT", DateTime.Today),
                    Data = DateTime.Today
                };

                //definir regras de funcionamento
                objComposition.TipoQtdComposicaoTotal = true;
                objComposition.TipoPreco = "P";

                string errors = string.Empty;

                BSO.Inventario.Composicoes.PreencheDadosRelacionados(objComposition);

                LinhaComposto = new InvBELinhaComposto()
                {
                    Artigo = strArtComposto,
                    Armazem = strArmComposto,
                    Quantidade = Convert.ToDouble(QtdComposto),
                    PrecUnit = Convert.ToDouble(1),
                    Lote = strLoteComposto,
                    INV_EstadoOrigem = "",
                    INV_EstadoDestino = "DISP"
                };
                objComposition.LinhasCompostos.Insere(LinhaComposto); // insere as linhas

                for (int i = 1; i <= priGrelha_GerarComposicao.Grelha.DataRowCnt; i++)
                {
                    LinhaComposto.LinhasComponentes.Add(new InvBELinhaComponente()
                    {
                        Artigo = PSO.Utils.FStr(priGrelha_GerarComposicao.GetGRID_GetValorCelula(i, colComponente)),
                        Armazem = PSO.Utils.FStr(priGrelha_GerarComposicao.GetGRID_GetValorCelula(i, colArmazem)),
                        Lote = PSO.Utils.FStr(priGrelha_GerarComposicao.GetGRID_GetValorCelula(i, colLoteOrig)),
                        Quantidade = Convert.ToDouble(PSO.Utils.FStr(priGrelha_GerarComposicao.GetGRID_GetValorCelula(i, colQtdNec))),
                        INV_EstadoOrigem = "DISP",
                        INV_EstadoDestino = ""
                    });
                    objComposition.LinhasCompostos.Insere(LinhaComposto); // insere as linhas
                }

                bool resposta = BSO.Inventario.Composicoes.ValidaActualizacao(objComposition, ref errors);
                if (resposta)
                {
                    BSO.Inventario.Composicoes.Actualiza(objComposition, ref errors);
                    if (errors.Length > 0)
                    {
                        PSO.Dialogos.MostraErroSimples("Erro ao gravar documento no PRIMAVERA!", StdPlatBS100.StdBSTipos.IconId.PRI_Critico, errors);
                    }
                    else
                    {
                        PSO.Dialogos.MostraErroSimples("Composição gerada com sucesso!", StdPlatBS100.StdBSTipos.IconId.PRI_Informativo);

                       //  objComposition.ID;
                    }
                }
                else
                {
                    PSO.Dialogos.MostraErroSimples("Documento não validado no PRIMAVERA!", StdPlatBS100.StdBSTipos.IconId.PRI_Exclama, errors);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

 

Faça login para poder traduzir
Integração
V10
Marcado como spam
Criado há 5 anos e 6 meses paulodinis
p
paulodinis Responsiveness Member
1 respostas
0
Resposta privada

Estou tendo o mesmo desafio, alguma solução?

Faça login para poder traduzir
Marcado como spam
Criado há 1 ano e 3 meses edilsonbaptista