cancel
Showing results for 
Search instead for 
Did you mean: 

TRAVAS PARA CNPJ - CADASTRO DE PN

Former Member
0 Kudos

          Amigos,

Tenho essa trava na TransactionNotification:

------ CNPJ - COBRANÇA (Fornecedor) ------

IF(((Select T1.TaxId0 FROM OCRD T0 INNER JOIN CRD7 T1 ON T0.CardCode = T1.CardCode WHERE T1.[AddrType] = 'S' AND T1.[Address] = '' AND T0.CardCode = @list_of_cols_val_tab_del) is NULL OR
(Select T1.TaxId0 FROM OCRD T0 INNER JOIN CRD7 T1 ON T0.CardCode = T1.CardCode WHERE T1.[AddrType] = 'S' AND T1.[Address] = '' AND T0.CardCode = @list_of_cols_val_tab_del) = '') AND(Select T0.CardType FROM OCRD T0 WHERE T0.CardCode = @list_of_cols_val_tab_del) = 'S')
Begin
Set @error = 63;
Set @error_message = 'SAP  - Contabilidade->Imposto: Preencher o CNPJ para Endereço PAGAR A.'
End

END

Essa trava evita que o usuário cadastre algum PN sem CNPJ. porém quando o fornecedor é Pessoa Física, não existe um CNPJ. Como faço para que essa condição funcione tanto para PJ quanto para PF ??

Obrigado!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Raphael, boa tarde!

Segue abaixo o código para bloqueio.

/**** CNPJ - DESTINATÁRIO (Cliente) *******************************************************************/                     

  IF((((SELECT COUNT(*) FROM CRD7 T1 WHERE T1.CardCode = @list_of_cols_val_tab_del AND T1.[AddrType] = 'S' AND T1.Address <> '') <>

  (SELECT COUNT(*) FROM CRD7 T1 WHERE T1.CardCode = @list_of_cols_val_tab_del AND T1.[AddrType] = 'S' AND T1.Address <> '' AND (T1.TaxId0 is Not NULL AND T1.TaxId0 <> ''))) AND

  (SELECT T0.CardType FROM OCRD T0 WHERE T0.CardCode = @list_of_cols_val_tab_del) IN ('C'))

    AND (SELECT TOP 1 CRD1.Country FROM CRD1 WHERE CardCode = @list_of_cols_val_tab_del AND AdresType = 'B') = 'BR')

  AND((((SELECT COUNT(*) FROM CRD7 T1 WHERE T1.CardCode = @list_of_cols_val_tab_del AND T1.[AddrType] = 'S' AND T1.Address <> '') <>

  (SELECT COUNT(*) FROM CRD7 T1 WHERE T1.CardCode = @list_of_cols_val_tab_del AND T1.[AddrType] = 'S' AND T1.Address <> '' AND (T1.TaxId4 is Not NULL AND T1.TaxId4 <> ''))) AND

  (SELECT T0.CardType FROM OCRD T0 WHERE T0.CardCode = @list_of_cols_val_tab_del) IN ('C'))

    AND (SELECT TOP 1 CRD1.Country FROM CRD1 WHERE CardCode = @list_of_cols_val_tab_del AND AdresType = 'B') = 'BR')

  BEGIN

  SET @error = 36;

  SET @error_message = 'AVT  - Endereço Destinatário: Preencher o CNPJ/CPF do(s) Enderenço(s).'

  END

Para Fornecedor efetuar as devidas tratativas baseando-se no código acima.

Former Member
0 Kudos

Obrigado Marcos!!

Funcionou!!

Former Member
0 Kudos

ok

Answers (0)