Fórum
Ver pergunta

Cómo relacionar la tabla Fichas o Processamentos con Fornecedores   

15 visualizações
Categoria::
0
0

Cómo relacionar la tabla Fichas o Processamentos con Fornecedores, para identificar el proveedor (Código del Proveedor) de un activo fijo.

Faça login para poder traduzir
V10
Base Dados
Marcado como spam
Criado há 5 anos e 3 meses emilimia
e
emilimia Iniciante
2 respostas
0
Resposta privada

Si lo que necesitas es la relación en base de datos:

— El último documento de adquisición (tabla DocumentosEAP) de un bien, identifica al proveedor de dicho bien: campos TipoEntidade y Entidade.

SELECT PA.Exercicio, PA.Periodo, A.TipoEntidade TipoEntidad, A.Entidade “Entidad (si TipoEntidad = ‘F’, es un proveedor (Fornecedor)”
FROM   DocumentosEAP A
INNER JOIN (

     — El último procesamiento de adquisición (tabla Processamentos; tipo = ‘AQ’), identifica el documento de adquisición:
     SELECT TOP 1 P.DocId, P.Ficha, P.Exercicio, P.Periodo
     FROM   Processamentos p

     — Procesamiento de Adquisición (AQ):
     WHERE  P.Tipo = ‘AQ’

     — Filtramos por uno de los dos planos de sistema (son obligatorios):
     AND           P.Plano = ‘000’

     — Ordenamos de forma descendente para coger el último procesamiento:
     ORDER BY P.Exercicio DESC, P.Periodo DESC

— procesamiento (PA) y documento (A) se relacionan por el DocID
) PA ON PA.DocId = A.DocId

— Filtramos por la ficha pretendida
WHERE PA.Ficha = ‘F1’

 


Si lo necesitas en .NET:

ImoBEProcessamento objUltimoProcAq = new ImoBEProcessamento();
ImoBEAquisicao objDocAq = new ImoBEAquisicao();

string IDUltProcTipoAq = PriEngine.Engine.Equipamentos.Processamentos.DaIdUltimoProcessamentoTipo(“000”, “3”, “AQ”);

objUltimoProcAq = PriEngine.Engine.Equipamentos.Processamentos.EditaID(IDUltProcTipoAq);

objDocAq = PriEngine.Engine.Equipamentos.Aquisicoes.EditaID(objUltimoProcAq.get_DocID());

if (objDocAq.get_TipoEntidade() == “F”)
{
     PriEngine.Platform.Dialogos.MostraAviso(“O Fornecedor é: ” + objDocAq.get_Entidade());
}
else
{
     PriEngine.Platform.Dialogos.MostraAviso(“Não é um Fornecedor. Info: ” + objDocAq.get_TipoEntidade() + ” – ” + objDocAq.get_Entidade());
}

 


Si lo necesitas en VBA:

‘ ———————————————————————————————-

‘ Método #1: a través del último documento de adquisición: atributos “Entidade” y “TipoEntidade”

‘ ———————————————————————————————-

Dim objUltimoDocAq As ImoBEAquisicao

Dim objUltimoProcAq As ImoBEProcessamento

Dim strIDUltimoProcAq As String



‘ Recuperamos el ID del último procesamiento de AQ:

strIDUltimoProcAq = BSO.Equipamentos.Processamentos.DaIdUltimoProcessamentoTipo(“001”, “F1”, “AQ”)



‘ Recuperamos el último documento de adqusición

Set objUltimoProcAq = BSO.Equipamentos.Processamentos.EditaID(strIDUltimoProcAq)

Set objUltimoDocAq = BSO.Equipamentos.Aquisicoes.EditaID(objUltimoProcAq.DocID)



‘ Devuelve la entidad (proveedor/fornecedor) del primer documento de “AQ” (adquisición)

If (objUltimoDocAq.TipoEntidade = “F”) Then

MsgBox “El proveedor es: ” + objUltimoDocAq.Entidade

Else

MsgBox “No es un proveedor… Info: ” + objUltimoDocAq.TipoEntidade + “: ” + objUltimoDocAq.Entidade

End If



‘ ———————————————————————————————

‘ Bonus (sólo en VBA) :: Método #2: a través de la ficha: atributos “Entidade” y “TipoEntidade”

‘ ———————————————————————————————

Dim objFicha As ImoBEFicha

Set objFicha = BSO.Equipamentos.Fichas.Edita(“F1”)



‘ Atención: el atributo Entidade (y el TipoEntidade) están ocultos

If (objFicha.TipoEntidade = “F”) Then

MsgBox “El proveedor es: ” + objFicha.Entidade

Else

MsgBox “No es un proveedor… Info: ” + objFicha.TipoEntidade + “: ” + objFicha.Entidade

End If



 

Faça login para poder traduzir
Marcado como spam
Criado há 5 anos e 3 meses joogomes
j
joogomes Iniciante
    0
    Resposta privada

    A relação entre a ficha e o seu fornecedor tem de ser efetuada pelo documento de aquisição da ficha.
    Na tabela de Fichas, existe essa informação no separador “Planos de Depreciação”.

    A nível de Base de Dados tem de se ligar a tabela [Processamentos] com a tabela [DocumentosEAP] pelo campo [DocId].

    Faça login para poder traduzir
    Marcado como spam
    Criado há 5 anos e 3 meses jmelo
    j
    jmelo Iniciante