Siedziby klientów / dostawców po NIP

Gdy przy rejestracji klienta lub dostawcy pojawia enigmatyczny, nic nie mówiący komunikat:

„Ten NIP jest już używany dla typu podmiotu: Siedziba podmiotu trzeciego, nazwy podmiotu xxxx i siedziby podmiotu xxxxx.”

To wcale nie znaczy,  że zduplikowany NIP na siedzibie wymienionej w komunikacie, poza tym ciężko jednoznacznie zidentyfikować tę siedzibę – nie wiadomo czy to klient czy dostawca.

Pomocny skrypt:

 
WITH party AS 
    (    
    SELECT p.party_name, p.party_id, p.party_number, ps.party_site_id, ps.party_site_number FROM hz_parties p, HZ_PARTY_SITES ps
    WHERE p.party_id=ps.party_id
    AND  UPPER (p.party_name) LIKE UPPER ('%&name%')
--    and p.party_id = 2668654
    ),
 
 nip AS
 (
 SELECT ZP.REP_REGISTRATION_NUMBER, zp.party_id, zp.PARTY_TYPE_CODE
 FROM ZX_PARTY_TAX_PROFILE zp
  WHERE UPPER (ZP.REP_REGISTRATION_NUMBER) LIKE UPPER ('%&NIP%')
-- where zp.party_id=2668654
--where zp.last_update_date > sysdate - 1/24
 )
 
SELECT pu.party_usage_code, p.party_name, p.party_id, p.party_number, NULL site_id, NULL site_number, n.REP_REGISTRATION_NUMBER, n.party_id party_id_TAX_PROFILE, n.PARTY_TYPE_CODE
FROM party p, nip n, hz_party_usg_assignments pu
WHERE  1=1
--  /* party_id w ZX_PARTY_TAX_PROFILE dla THIRD_PARTY to PARTY_ID w HZ_PARTIES */
    AND n.PARTY_TYPE_CODE =  'THIRD_PARTY' 
    AND n.PARTY_ID = p.PARTY_ID 
    AND rownum=1
    AND n.PARTY_ID = pu.PARTY_ID(+)
UNION ALL
 
SELECT pu.party_usage_code, p.party_name, p.party_id, p.party_number, p.party_site_id, p.party_site_number, n.REP_REGISTRATION_NUMBER, n.party_id party_id_TAX_PROFILE, n.PARTY_TYPE_CODE
FROM party p, nip n,  hz_party_usg_assignments pu
WHERE  1=1
 
--  /* party_id w ZX_PARTY_TAX_PROFILE dla THIRD_PARTY_SITE to PARTY_SITE_ID w HZ_PARTY_SITES */
 AND n.PARTY_TYPE_CODE =  'THIRD_PARTY_SITE' 
 AND n.PARTY_ID = p.PARTY_SITE_ID
 AND n.PARTY_ID = pu.PARTY_ID(+)
Ten wpis został opublikowany w kategorii AP, AR i oznaczony tagami , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz