Strona 1 z 1

Lista urzędów skarbowych XML

: 04 lut 2025, 08:19
autor: praiser
Czy ktoś wie gdzie można znaleźć taka listę albo przynajmniej budowę XML ? Nie widzę, żeby ERP XL miał opcję importu z serwera Comarch takiej listy.

Re: Lista urzędów skarbowych XML

: 04 lut 2025, 11:02
autor: CDNP_KMK
Odpowiedzi na pytanie gdzie jest lista nie znam, ale ułatwiam sobie życie w następujący sposób:

Jeśli masz moduł kadrowy - można pobrać listę urzędów do HR (Optima) i stamtąd przeinsertować sobie do XLa (w obu bazach jest to tabela CDN.Urzedy).
Nie mam pod ręką gotowego zapytania, ale to nic trudnego - pamiętam tylko że długości pól były różne (krótsze w XLu), więc trzeba zwrócić uwagę na ucinanie stringów.

Re: Lista urzędów skarbowych XML

: 04 lut 2025, 11:04
autor: praiser
Dziękuję za wskazówkę.

Re: Lista urzędów skarbowych XML

: 04 lut 2025, 11:19
autor: praiser
Nie ma jednak żadnych różnic , nawet w długościach pól. easy peasy.

Re: Lista urzędów skarbowych XML

: 04 lut 2025, 11:30
autor: CDNP_KMK
To może się coś zdążyło zmienić. Ważne, że easy peasy ;)

Chociaż z ciekawości jednak sprawdziłem - identycznie nie jest.
Obrazek

Re: Lista urzędów skarbowych XML

: 04 lut 2025, 11:40
autor: praiser
masz rację, pospieszyłem się i zamiast sprawdzić hr do xl , sprawdziłem hr do hr :) nawet się nie zastanowiłem, że nie wyrzuciło innego układu i nazw kolumn :)

Re: Lista urzędów skarbowych XML

: 04 lut 2025, 13:07
autor: praiser
z testu wyszło mi , że w danych urzędów skarbowych tylko ulica się nie mieści w długości pola bazy XL więc jak ktoś by chciał procedurę to wklejam. może nie najładniejsza albo zrobiła robotę.

Kod: Zaznacz cały

-- przerzucenie urzędów skarbowych z niepustym kodem urzędu z HR do XL, bez dublowania, z podzieleniem ulica z hr do ulica i adres w xl

DECLARE @zrodlowaDB varchar(50) = 'baza hr'
DECLARE @docelowaDB varchar(50) = 'baza xl'
DECLARE @GIDTyp int = 4304
DECLARE @GIDFirma int = 802561 -- gidfirma
DECLARE @GIDLp int = 0
DECLARE @FormaPl int = 10 -- przelew
DECLARE @TypUrzedu int = 1 -- typ: urząd skarbowy
DECLARE @SQL nvarchar(max)

SET @SQL = '
INSERT INTO ' + @docelowaDB + '.CDN.Urzedy (
    URZ_GIDTyp,
    URZ_GIDFirma,
    URZ_GIDLp,
    URZ_Typ,
    URZ_Akronim,
    URZ_Nazwa,
    URZ_Nazwa1,
    URZ_Wojewodztwo,
    URZ_Powiat,
    URZ_Gmina,
    URZ_Miasto,
    URZ_KodP,
    URZ_Ulica,
    URZ_Adres,
    URZ_Telefon1,
    URZ_URL,
    URZ_KodUC,
    URZ_FormaPl
)
SELECT 
    ' + CAST(@GIDTyp AS VARCHAR) + ',
    ' + CAST(@GIDFirma AS VARCHAR) + ',
    ' + CAST(@GIDLp AS VARCHAR) + ',
    Urz_TypUrzedu,
    Urz_Akronim,
    Urz_Nazwa1,
    Urz_Nazwa2,
    Urz_Wojewodztwo,
    Urz_Powiat,
    Urz_Gmina,
    Urz_Miasto,
    Urz_KodPocztowy,
    CASE 
        WHEN LEN(Urz_Ulica) <= 30 THEN Urz_Ulica
        ELSE SUBSTRING(Urz_Ulica, 1, 30 - CHARINDEX('' '', REVERSE(LEFT(Urz_Ulica, 30))))
    END,
    CASE 
        WHEN LEN(Urz_Ulica) <= 30 THEN ''''
        ELSE LTRIM(SUBSTRING(Urz_Ulica, 
                      31 - CHARINDEX('' '', REVERSE(LEFT(Urz_Ulica, 30))), 
                      30))
    END,
    Urz_Telefon,
    Urz_URL,
    Urz_Kod,
    ' + CAST(@FormaPl AS VARCHAR) + '
FROM ' + @zrodlowaDB + '.CDN.Urzedy src
WHERE Urz_TypUrzedu = ' + CAST(@TypUrzedu AS VARCHAR) + '
AND Urz_Kod is not null
AND NOT EXISTS (
    SELECT 1 
    FROM ' + @docelowaDB + '.CDN.Urzedy dst 
    WHERE dst.URZ_KodUC = src.Urz_Kod
    AND dst.URZ_Typ = ' + CAST(@TypUrzedu AS VARCHAR) + '
    AND dst.URZ_GIDTyp = ' + CAST(@GIDTyp AS VARCHAR) + '
)'

EXEC sp_executesql @SQL