Fórum
Ver pergunta

Adicionar linhas ao documento de transferencia   

204 visualizações
0
0

Bom dia,

Estou a fazer a migração do VBA da v9 que tinha uma funcionalidade que permitia através do evento TeclaPressionada, do Editor de Stock, carregar as linhas de um determinado armazem para o documento.

O código que tenho funciona, adiciona as linhas de origem e as de destino, no entanto não estou a conseguir que as linhas de destino fiquem associadas às linhas de origem.

Estou a utilizar o código abaixo, será que alguem me consegue ajudar?

        public override void TeclaPressionada(int KeyCode, int Shift, ExtensibilityEventArgs e)
        {
            if (Shift == 1 && KeyCode == Convert.ToInt32(ConsoleKey.F12))
            {
                if (this.DocumentoTransferencia.Tipodoc == "TRF")
                {
                    string strArmazemOrigem = "";
                    string strArmazemDestino = "";
                    
                    PSO.Dialogos.MostraDialogoInput(ref strArmazemOrigem, "Armazem ORIGEM", "Indique o armazem de origem", 0, true);
                    PSO.Dialogos.MostraDialogoInput(ref strArmazemDestino, "Armazem DESTINO", "Indique o armazem de destino", 0, true);

                    string strSQL = "";
                    strSQL = strSQL + "SELECT V_INV_ArtigoArmazem.Artigo " + Environment.NewLine;
                    strSQL = strSQL + ", V_INV_ArtigoArmazem.StkActual " + Environment.NewLine;
                    strSQL = strSQL + ", Artigo.UnidadeSaida AS Unidade " + Environment.NewLine;
                    strSQL = strSQL + ", V_INV_ArtigoArmazem.Armazem " + Environment.NewLine;
                    strSQL = strSQL + ", V_INV_ArtigoArmazem.Localizacao " + Environment.NewLine;
                    strSQL = strSQL + ", V_INV_ArtigoArmazem.Lote " + Environment.NewLine;
                    strSQL = strSQL + ", V_INV_ArtigoArmazem.EstadoStock " + Environment.NewLine;
                    strSQL = strSQL + " FROM V_INV_ArtigoArmazem " + Environment.NewLine;
                    strSQL = strSQL + " INNER JOIN Artigo ON V_INV_ArtigoArmazem.Artigo = Artigo.Artigo " + Environment.NewLine;
                    strSQL = strSQL + " WHERE V_INV_ArtigoArmazem.Armazem = '" + strArmazemOrigem + "' AND V_INV_ArtigoArmazem.StkActual > 0 " + Environment.NewLine;
                    strSQL = strSQL + " ORDER BY V_INV_ArtigoArmazem.Artigo";

                    StdBELista objLista = BSO.Consulta(strSQL);

                    if (!objLista.NoInicio() && !objLista.NoFim())
                    {
                        while (!objLista.NoInicio() && !objLista.NoFim())
                        {
                            InvBELinhaOrigemTransf objOrigem = new InvBELinhaOrigemTransf()
                            {
                                Artigo = objLista.Valor("Artigo"),
                                Descricao = BSO.Base.Artigos.DaValorAtributo(objLista.Valor("Artigo"), "Descricao"),
                                Armazem = strArmazemOrigem,
                                Localizacao = objLista.Valor("Localizacao"),
                                Lote = (objLista.Valor("Lote") != "<L01>") ? objLista.Valor("Lote") : string.Empty,
                                Quantidade = Convert.ToDouble(objLista.Valor("StkActual")),
                                DataStock = this.DocumentoTransferencia.Data,
                                Unidade = objLista.Valor("Unidade"),
                                PrecUnit = Convert.ToDouble(BSO.Base.Artigos.DaValorAtributo(objLista.Valor("Artigo"), "PCMedio")),
                                INV_EstadoOrigem = objLista.Valor("EstadoStock")
                            };

                            objOrigem.LinhasDestino.Add(new InvBELinhaDestinoTransf()
                            {
                                Armazem = strArmazemDestino,
                                Localizacao = strArmazemDestino,
                                Lote = (objLista.Valor("Lote") != "<L01>") ? objLista.Valor("Lote") : string.Empty,
                                Artigo = objLista.Valor("Artigo"),
                                Quantidade = Convert.ToDouble(objLista.Valor("StkActual")),
                                Unidade = objLista.Valor("Unidade"),
                                PrecUnit = Convert.ToDouble(BSO.Base.Artigos.DaValorAtributo(objLista.Valor("Artigo"), "PCMedio")),
                                INV_EstadoDestino = objLista.Valor("EstadoStock")
                            });

                            this.DocumentoTransferencia.LinhasOrigem.Insere(objOrigem);

                            objLista.Seguinte();
                        }
                    }
                }
            }
        }

 

Faça login para poder traduzir
V10
Marcado como spam
Criado há 5 anos e 3 meses brunopereira
b
brunopereira Iniciante