| ♥ 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();
}
}
}
}
}
Marcado como spam |
Adicionar linhas ao documento de transferencia
204 visualizações