cancel
Showing results for 
Search instead for 
Did you mean: 

Campo Serial da tabela OINV

ednelson_vieira
Explorer
0 Kudos

Bom dia a todos,

Alguem saberia como mostrar o campo  Serial da tabela OINV, correspondente a NFE no relatório Vencimento de Contas a Receber?

Este campo normalmente não aparece nos relatórios  padrão do B1.

Agradeço desde ja a colaboração

Ednelson Vieira

Accepted Solutions (1)

Accepted Solutions (1)

fbio_bilicki
Active Contributor
0 Kudos

Bom dia Ednelson,

infelizmente não tem essa possibilidade

Aqui na empresa tivemos que fazer uma consulta formatada pra gravar o numero do documento na observação da nota, e ativar o campo observação na baixa do pagar e receber.

1. Crie uma consulta em sql e salve como "N° da NF"

A minha consulta salva o modelo, espécie e numero da nota na observação.

SELECT 'NF: ' + $[$2036.0.0] + ' / ' + $[$2037.0.0] + ' / ' +  (SELECT TOP 1 T1.NfmName from ONFM T1 WHERE T1.AbsEntry = $[$2062.0.0] )

2. Ative a consulta no campo observação, quando mudar o campo "modelo".

3. quando você colocar o número, série e modelo, será automaticamente guardado na observação.

Essa observação não usamos pra nada aqui na empresa, só pra guardar o número da nota.

4. No contas a pagar ou a receber, ative a observação.

Na baixa, ative o campo observação, assim você saberá qual nota fiscal está sendo baixada.

Este é o único método até agora pra sair o número da nota fisca na tela, já no resto do sistema não tem jeito, tem vários lugares que não tem a opção pra colocar a observação, eu tive que desenvolver vários relatórios financeiros em crystal por causa dessa limitação.

Eu abri uma ideia no IDEA PLACE para esses campos (https://cw.sdn.sap.com/cw/ideas/6697) se você puder votar eu agradeço,

Abraço

Fabio

SAP 8.82 PL9.

ednelson_vieira
Explorer
0 Kudos

Bom dia Fabio,

Agradeço desde ja sua atenção, isso e bastante util, porem o que eu queria mesmo e' aproveitar

o relato'rio padrão do sistema CONTAS A RECEBER formata-lo com este campo, para não ter que fazer um Crystal Report ou uma consulta formatada.

Irei aproveitar estes seus procedimentos para completar dados em nossas Nfe,s. vai ficar legal.

Fabio por um acaso vc tem alguma consulta pronta considerando Contas a Receber e Boleto simultaneamente.. pq vc sabe que para abrir o boleto temos que fechar o contas a receber certo?

Atenciosamente

Ednelson Vieira

fbio_bilicki
Active Contributor
0 Kudos

Boa noite,

uso o sql abaixo, até agora está funcionando bem, se precisar melhorar esteja a vontade,

SELECT

     'NS' as 'Tipo'   

    , MAX(T0.[DocNum]) as 'ID'   

    ,( ISNULL((SELECT TOP 1 T4.NfmName from ONFM T4 WHERE T4.AbsEntry = T0.Model),'') + ' / ' + t0.SeriesStr + ' / ' + CAST(T0.SERIAL AS VARCHAR) ) as 'Documento'

   

    , (CAST( MAX(T1.[InstlmntID]) as varchar) + ' de ' +

       (SELECT CAST(MAX(T3.[InstlmntID]) AS VARCHAR) FROM [dbo].[INV6] T3 WHERE T3.[DocEntry] = T0.[DocEntry]) ) as Parcela

    , MAX(T0.[TaxDate]) as 'Dt.Emissão'

    , MAX(T0.[DocDate]) as 'Dt.Entrada'   

    , MAX(T1.[DueDate]) as 'Dt.Vencimento'

    , MAX(T0.[CardCode]) as 'Codigo PN'

    , MAX(T0.[CardName]) as 'Nome PN'

    , MAX(T0.[TransId]) as TransId

    , MAX(T1.[InsTotal]) as 'TotalTitulo'

    , ( MAX(T1.[InsTotal]) - MAX(T1.[PaidToDate]) ) as 'TotalSaldo'

    , MAX(T0.[Comments]) as 'Observação'

    , T0.[ObjType]   

    FROM  [dbo].[OINV] T0 

    INNER  JOIN [dbo].[INV6] T1  ON  T1.[DocEntry] = T0.[DocEntry]   

    LEFT OUTER  JOIN [dbo].[INV5] T2  ON  T0.[DocEntry] = T2.[AbsEntry] 

    WHERE (T1.[TotalBlck] <> T1.[InsTotal] AND

          ( T1.[InsTotal] - T1.[PaidToDate] ) <> 0 )

    GROUP BY T0.[DocEntry], T1.[InstlmntID], T0.[ObjType], T0.Model, T0.SeriesStr, T0.Serial

   

UNION   

  -- Lançamentos manuais

      SELECT 'LC30' as Tipo

         , T0.[TransId] as 'ID'        

         , CAST( T0.[TransId] as varchar) as 'Documento'

         , '1 de 1' as 'Parcela'

         , T0.[TaxDate] as 'Dt.Emissão'

         , T0.[RefDate] as 'Dt.Entrada'

         , T0.[DueDate] as 'Dt.Vencimento'

         , T2.[CardCode] as 'Codigo PN'

         , T2.[CardName] as 'Nome PN'        

         , T0.[TransId]

         , T0.[Debit] as 'TotalTitulo'

         , T0.[BalDueDeb]  as 'TotalSaldo'

         , T0.[LineMemo] as 'Observação'

         , T0.[ObjType]        

    FROM  [dbo].[JDT1] T0 

    INNER  JOIN [dbo].[OJDT] T1  ON  T0.[TransId] = T1.[TransId]  

    INNER  JOIN [dbo].[OCRD] T2  ON  T0.[ShortName] = T2.[CardCode]  

    where T0.[TransType] = 30 and T0.[BalDueDeb] > 0

    

UNION

   

  -- Baixa por conta.

    SELECT 'LC30' as Tipo

         , T0.[TransId] as 'ID'        

         , CAST( T0.[TransId] as varchar) as 'Documento'

         , '1 de 1' as 'Parcela'

         , T0.[TaxDate] as 'Dt.Emissão'

         , T0.[RefDate] as 'Dt.Entrada'

         , T0.[DueDate] as 'Dt.Vencimento'

         , T2.[CardCode] as 'Codigo PN'

         , T2.[CardName] as 'Nome PN'        

         , T0.[TransId]

         , T0.[Credit] as 'TotalTitulo'

         , T0.[BalDueCred]  as 'TotalSaldo'

         , T0.[LineMemo] as 'Observação'

         , T0.[ObjType]        

    FROM  [dbo].[JDT1] T0 

    INNER  JOIN [dbo].[OJDT] T1  ON  T0.[TransId] = T1.[TransId]  

    INNER  JOIN [dbo].[OCRD] T2  ON  T0.[ShortName] = T2.[CardCode]  

    where  T0.[TransType] = 30 and T0.[BalDueCred] <> 0   

   

UNION   

    -- Boletos

    SELECT 'BOL' as Tipo

         , T0.[BoeNum] as 'ID'        

         , ('BOL/'+ CAST( T0.[BoeNum] as varchar)) as 'Documento'

         , '1 de 1' as 'Parcela'

         , T0.[Pmntdate] as 'Dt.Emissão'

         , T0.[Pmntdate] as 'Dt.Entrada'

         , T0.[DueDate] as 'Dt.Vencimento'

         , T0.[CardCode] as 'Codigo PN'

         , T0.[CardName] as 'Nome PN'        

         , T0.[BoeNum]

         , T0.[BoeSum] as 'TotalTitulo'

         , T0.[BoeSum] as 'TotalSaldo'

         , 'Boleto' as 'Observação'

         , 0 as 'ObjType'

    FROM  [dbo].[OBOE] T0 

    where T0.BoeType = 'I' and (T0.BoeStatus = 'G' or T0.BoeStatus = 'S')

Abraço,

Fabio

SAP 8.82 PL9

Former Member
0 Kudos

Boa tarde Fabio,

Achei bem interessante a sua solução, só tenho 1 pergunta, e a data de pagamento ??

Vocês não usam ??

abss

Humberto

fbio_bilicki
Active Contributor
0 Kudos

Boa noite Humberto,

no meu caso, eu tenho 4 relatórios distintos.

- Contas a Pagar

- Contas Pagas

- Contas a Receber

- Contas Recebidas.

O SQL de contas recebidas que uso é este, por enquanto funciona bem, se você melhorar por gentileza publique uma nova versão do SQL.

select T0.DocNum as 'NumBaixa', T0.DocEntry as 'NumNR', T0.SumApplied as 'ValorBaixa', T1.DocDate as 'DataBaixa',

     CASE 

           WHEN T0.InvType = 13 THEN (SELECT TOP 1 ( ISNULL((SELECT TOP 1 T4.NfmName from ONFM T4 WHERE T4.AbsEntry = T3.Model),'') + ' / ' + ISNULL(T3.SeriesStr,'') + ' / ' + CAST(T3.Serial AS VARCHAR) )

                                 FROM OINV T3 WHERE T3.DocNum = T0.DocEntry  )

           WHEN T0.InvType = 30 THEN 'LC /' + CAST(T0.DocNum AS VARCHAR)

     END as 'Documento',

     CASE 

        WHEN T0.InvType = 13 THEN

                (CAST( T0.[DocLine] + 1 as varchar) + ' de ' +

                (SELECT CAST(MAX(T3.[InstlmntID]) AS VARCHAR) FROM [dbo].[INV6] T3 WHERE T3.[DocEntry] = T0.[DocEntry]) )

        WHEN T0.InvType = 30 THEN '1 de 1'

     END as 'Parcela',

     CASE 

           WHEN T0.InvType = 13 THEN (SELECT TOP 1 T3.[TaxDate] FROM OINV T3 WHERE T3.DocNum = T0.DocEntry)

           WHEN T0.InvType = 30 THEN (SELECT TOP 1 T3.[TaxDate] FROM OJDT T3 WHERE T3.Number = T0.DocEntry)

     END as 'DataEmissao',

    

     CASE 

           WHEN T0.InvType = 13 THEN (SELECT TOP 1 T3.[DocDate] FROM OINV T3 WHERE T3.DocNum = T0.DocEntry)

           WHEN T0.InvType = 30 THEN (SELECT TOP 1 T3.[RefDate] FROM OJDT T3 WHERE T3.Number = T0.DocEntry)

     END as 'DataEntrada',

     CASE 

           WHEN T0.InvType = 13 THEN (SELECT TOP 1 T3.[DueDate] FROM INV6 T3 WHERE T3.DocEntry = T0.DocEntry and T3.InstlmntID = T0.DocLine + 1)

           WHEN T0.InvType = 30 THEN (SELECT TOP 1 T3.[DueDate] FROM OJDT T3 WHERE T3.Number = T0.DocEntry)

     END as 'DataVencimento',

    

     CASE 

           WHEN T0.InvType = 13 THEN (SELECT TOP 1 T3.[InsTotal] FROM INV6 T3 WHERE T3.DocEntry = T0.DocEntry and T3.InstlmntID = T0.DocLine + 1)

           WHEN T0.InvType = 30 THEN (SELECT TOP 1 T3.[LocTotal] FROM OJDT T3 WHERE T3.Number = T0.DocEntry)

     END as 'ValorDocumento',

    

     (ISNULL( (SELECT TOP 1 T3.AcctName from OACT T3 WHERE T3.AcctCode = T1.TrsfrAcct AND T1.TrsfrSum <> 0 ) + ', ', '') +

      ISNULL( (SELECT TOP 1 T3.AcctName from OACT T3 WHERE T3.AcctCode = T1.CashAcct AND T1.CashSum <> 0 ) + ', ', '') +

      ISNULL( (SELECT TOP 1 T3.AcctName from OACT T3 WHERE T3.AcctCode = T1.CheckAcct AND T1.CheckSum <> 0 ), '') ) as 'TipoBaixa',

      isnull((select max(T4.ExtrMatch) from JDT1 T4 where (T4.Transid = T1.Transid and T4.ExtrMatch <> 0) ),0) as 'Reconciliacao',

     

     T1.TrsfrAcct,

     T1.CashAcct,

     T1.CheckAcct,

     T1.CardCode,

     T5.U_UpCodAnt,

     T1.CardName,    

     T1.BoeNum

     

FROM RCT2 T0

INNER JOIN ORCT T1 ON T1.DocEntry = T0.DocNum

LEFT JOIN OCRD T5 ON T5.CardCode = T1.CardCode

WHERE T1.Canceled = 'N' AND T1.BoeStatus is null

[]'s

Fabio

SAP 8.82 PL11

Former Member
0 Kudos

Bom dia Fabio,

Obrigado, vou ver com carinho e mudarmos qqer coisa eu posto p/vc. Aqui estamos construindo um portal web, para facilitar as informações para os nossos usuários. Quando estiver pronto vou postar algumas telas.

Absss

Former Member
0 Kudos

Ola Fabio, bom dia!

Tem como voce posta os codigos das Rotinas.

- Contas a Pagar

- Contas Pagas

- Contas a Receber

Desde ja Agradeco.

Alessandro Felix

fbio_bilicki
Active Contributor
0 Kudos

Bom dia Alessandro, criei um documento com todas as consultas.

http://scn.sap.com/docs/DOC-46144

Espero que ajude você.

Abraço

Fabio.

Former Member
0 Kudos

Bom dia, Fábio

Obrigado pela sua contribuição.

Abraço

Alessandro Felix.

Answers (0)