Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 10052

Re: Trava de NF com mesmo número / mesmo Fornecedor

$
0
0

Boa noite,

 

tive o mesmo problema aqui na empresa, como ninguém lê as mensagens do sistema, tive que travar.

 

Ele testa o número nos 4 locais onde possamos lançar nota de entrada, mas deixa passar sem modelo, já que não consigo cancelar notas "só imposto", eu no teste ignorei o modelo, testei somente PN, série e número, até o momento (3 anos), não peguei nenhum PN que tenha modelos diferentes, com série e números iguais.

 

 

IF (@error = 0) AND (@sObjTyp IN ('14','16','18','20')) AND (@sTraTyp IN ('A')) AND (@SeqCode = -2)
BEGIN      IF @sObjTyp = 18 BEGIN SELECT @NFENUMERO = T0.Serial, @NFESERIE = ISNULL(T0.SeriesStr,''), @CodCliente = T0.CardCode FROM [dbo].[OPCH] T0 WHERE T0.DocEntry = @sKeyVal END      IF @sObjTyp = 20 BEGIN SELECT @NFENUMERO = T0.Serial, @NFESERIE = ISNULL(T0.SeriesStr,''), @CodCliente = T0.CardCode FROM [dbo].[OPDN] T0 WHERE T0.DocEntry = @sKeyVal END      IF @sObjTyp = 14 BEGIN SELECT @NFENUMERO = T0.Serial, @NFESERIE = ISNULL(T0.SeriesStr,''), @CodCliente = T0.CardCode FROM [dbo].[ORIN] T0 WHERE T0.DocEntry = @sKeyVal END      IF @sObjTyp = 16 BEGIN SELECT @NFENUMERO = T0.Serial, @NFESERIE = ISNULL(T0.SeriesStr,''), @CodCliente = T0.CardCode FROM [dbo].[ORDN] T0 WHERE T0.DocEntry = @sKeyVal END        set @sTmp = ''      set @iTmp = 0            -- Deixa passar modelo vazio, SAP não tem cancelamento de nota somente imposto.      -- Nota de Entrada.      SELECT @iTmp = MAX(T0.DocEntry) FROM [dbo].[OPCH] T0              WHERE T0.DocEntry <> @sKeyVal and                    T0.CardCode = @CodCliente and ISNULL(T0.SeriesStr,'') = @NFESERIE and T0.Serial = @NFENUMERO and                    ISNULL(t0.model,'0') <> '0' and                   T0.CANCELED = 'N' and                    T0.SeqCode = -2 and                   T0.DocEntry NOT IN                      (SELECT T4.BaseEntry FROM ORPC T3 INNER JOIN RPC1 T4 ON T3.DocEntry = T4.DocEntry WHERE T4.BaseEntry IS NOT NULL and  T4.BaseType = T0.ObjType and T3.SeqCode = 1) -- NAO ENTRA CANCELADA      if ISNULL(@iTmp,0) <> 0       BEGIN         set @sTmp = 'Nota Fiscal Entrada'      END            -- Recebimento de Mercadorias      if ISNULL(@iTmp,0) = 0       BEGIN                          SELECT @iTmp = MAX(T0.DocEntry) FROM [dbo].[OPDN] T0                 WHERE T0.DocEntry <> @sKeyVal and                       T0.CardCode = @CodCliente and ISNULL(T0.SeriesStr,'') = @NFESERIE and T0.Serial = @NFENUMERO and                       ISNULL(t0.model,'0') <> '0' and                      T0.CANCELED = 'N' and                       T0.SeqCode = -2 and                      T0.DocEntry NOT IN                         (SELECT T4.BaseEntry FROM ORPD T3 INNER JOIN RPD1 T4 ON T3.DocEntry = T4.DocEntry WHERE T4.BaseEntry IS NOT NULL and  T4.BaseType = T0.ObjType and T3.SeqCode = 1) -- NAO ENTRA CANCELADA          if ISNULL(@iTmp,0) <> 0           BEGIN             set @sTmp = 'Recebimento de Mercadorias'          END      END      -- Devolução Nota Fiscal Saida      if ISNULL(@iTmp,0) = 0       BEGIN                          SELECT @iTmp = MAX(T0.DocEntry) FROM [dbo].[ORIN] T0                 WHERE T0.DocEntry <> @sKeyVal and                       T0.CardCode = @CodCliente and ISNULL(T0.SeriesStr,'') = @NFESERIE and T0.Serial = @NFENUMERO and                       ISNULL(t0.model,'0') <> '0' and                      T0.CANCELED = 'N' and                       T0.SeqCode = -2           if ISNULL(@iTmp,0) <> 0           BEGIN             set @sTmp = 'Dev. Nota Fiscal Saida'          END      END      -- Devolução Entrega      if ISNULL(@iTmp,0) = 0       BEGIN                          SELECT @iTmp = MAX(T0.DocEntry) FROM [dbo].[ORDN] T0                 WHERE T0.DocEntry <> @sKeyVal and                       T0.CardCode = @CodCliente and ISNULL(T0.SeriesStr,'') = @NFESERIE and T0.Serial = @NFENUMERO and                       ISNULL(t0.model,'0') <> '0' and                      T0.CANCELED = 'N' and                       T0.SeqCode = -2           if ISNULL(@iTmp,0) <> 0           BEGIN             SET @sTmp = 'Devolução Entrega'          END      END                          IF ISNULL(@sTmp,'') <> ''       BEGIN                                SET @error=1            SET @error_message = 'TI: Documento de entrada já lançado, verifique em "' + @sTmp + '", primário = ' + LTRIM(STR(@iTmp))                          END              
END

 

Espero ter ajudado

 

Abraço

 

Fabio

SAP 8.82 PL16 / SAP 9.0 PL11


Viewing all articles
Browse latest Browse all 10052


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>