♥ 0 | Cómo relacionar la tabla Fichas o Processamentos con Fornecedores, para identificar el proveedor (Código del Proveedor) de un activo fijo. Marcado como spam |
2 respostas
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
Marcado como spam | |
Resposta privada A relação entre a ficha e o seu fornecedor tem de ser efetuada pelo documento de aquisição da ficha. A nível de Base de Dados tem de se ligar a tabela [Processamentos] com a tabela [DocumentosEAP] pelo campo [DocId]. Marcado como spam |