Advertisement
Guest User

Untitled

a guest
Jul 18th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 9.57 KB | None | 0 0
  1. IF EXISTS (SELECT * FROM sys.procedures WHERE name= 'pv_NGastroKontrahent' AND type='P')
  2.     DROP PROCEDURE [dbo].[pv_NGastroKontrahent]
  3. GO
  4. PRINT 'Tworzę procedurę pv_NGastroKontrahent'
  5. GO
  6. CREATE PROCEDURE [dbo].[pv_NGastroKontrahent]
  7. (
  8.     @cID                UNIQUEIDENTIFIER = NULL,    --[METADATA]--[DESC] id kontrahenta [/DESC]--[AUTHOR] dbiskup [/AUTHOR]--[/METADATA]--
  9.     @cTypKontrahenta    TINYINT = 2                 --[METADATA]--[DESC] typ kontrahenta:0 - osoba fizyczna,1 - firma,2 - wszystkie  [/DESC]--[AUTHOR] dbiskup [/AUTHOR]--[/METADATA]--
  10. )
  11. --WITH ENCRYPTION
  12. AS
  13. BEGIN
  14.     ------------------------------------------------
  15.     --------------------[HEADER]--------------------
  16.     SET NOCOUNT ON
  17.     SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  18.     --------------------[/HEADER]-------------------
  19.     ------------------------------------------------   
  20.    
  21.     BEGIN TRY
  22.         ------------------------------------------------   
  23.         -------------------[BODY]-----------------------
  24.         IF ISNULL(@cTypKontrahenta,2)=2
  25.             BEGIN
  26.                 SELECT
  27.                     k.ID,
  28.                     -----------------------------------------
  29.                     RTRIM(LTRIM(k._c_SymbolPelny)) SymbolPelny,
  30.                     k.Symbol,
  31.                     k.Haslo,
  32.                     k.Skrot,
  33.                     k.Nazwa,
  34.                     k.FlgFirma,
  35.                     k.FlgPlatnikVAT as FlgPlatnikVat,
  36.                     k.FlgRolnikRyczaltowy,
  37.                     k.FlgDostawcaAutoryzowany,
  38.                     k.NumerDokumentu,
  39.                     k.DataWydaniaDokumentu,
  40.                     k.OrganWydajacy,               
  41.                     -----------------------------------------
  42.                     k.GrupaKontrahentowID,
  43.                     gk.Nazwa GrupaKontrahentowNazwa,
  44.                     -----------------------------------------
  45.                     k.KrajID,
  46.                     kr.Nazwa AS KrajNazwa,
  47.                     k.Kontakt,
  48.                     k.NIP,
  49.                     k.CzyPowiazanyKapitalowo,
  50.                     k.KontoKsiegowe,
  51.                     k.Regon,
  52.                     -----------------------------------------
  53.                     k.PoziomCenowyID,
  54.                     pc.Nazwa AS PoziomCenowyNazwa, 
  55.                     -----------------------------------------  
  56.                     k.JezykID,
  57.                     j.Nazwa AS JezykNazwa,     
  58.                     -----------------------------------------
  59.                     k.FormatPlikow,
  60.                     k.FlgNipJednoznaczny,
  61.                     k.EuroNIP,
  62.                     k.FlgDostawca,
  63.                     k.FlgOdbiorca,
  64.                     k.FlgPlatnik,
  65.                     k.IndeksZewnetrzny,
  66.                     k.NazwaBanku,
  67.                     k.KontoBankowe,
  68.                     k.Imie,
  69.                     k.Nazwisko,
  70.                     -----------------------------------------
  71.                     ISNULL(kaz.Email, '') AS Email,
  72.                     -----------------------------------------
  73.                     k.KontrahentID,
  74.                     kk.Skrot AS KontrahentSkrot,
  75.                     kk.Nazwa AS KontrahentNazwa,
  76.                     LTRIM( RTRIM( CAST(ISNULL(kk.Nazwa, '') + ' ' + ISNULL(kk.Imie,'') + ' ' + ISNULL(kk.Nazwisko,'') AS VARCHAR(300)) ) )  AS KontrahentNazwaUniwersalna,
  77.                     -----------------------------------------
  78.                     k.DataUrodzenia,
  79.                     k.Plec,
  80.                     k.Pesel,
  81.                     k.Tytul,
  82.                     k.BluePocketId,
  83.                     -----------------------------------------
  84.                     k.DostawaObiektID,
  85.                     do.Nazwa DostawaObiektNazwa,
  86.                     -----------------------------------------
  87.                     kadr.Ulica,
  88.                     kadr.NrDomu,
  89.                     kadr.NrLokalu,
  90.                     kadr.KodPocztowy,
  91.                     kadr.Miejscowosc,
  92.                     -----------------------------------------
  93.                     kon.KontrahentKontakt,
  94.                     -----------------------------------------
  95.                     LTRIM( RTRIM( CAST(ISNULL(k.Nazwa, '') + ' ' + ISNULL(k.Imie,'') + ' ' + ISNULL(k.Nazwisko,'') AS VARCHAR(300)) ) )  AS NazwaUniwersalna,
  96.                     -----------------------------------------
  97.                     isnull(lok.ID,lokcentr.ID) AS KontrahentLokalID,
  98.                     case when lokcentr.ID is null then lok.Symbol else isnull(lok.Symbol,lokcentr.Symbol) end AS KontrahentLokalSymbol,
  99.                     -----------------------------------------
  100.                     CAST(0 AS TINYINT) AS _FlgTCF
  101.                 FROM NGastroKontrahent k WITH (INDEX (PK_NGastroKontrahent_ID))
  102.                 LEFT JOIN NGastroKontrahentAdres kadr WITH (INDEX (I_NGastroKontrahentAdres_KontrahentID)) ON kadr.KontrahentID = k.ID AND kadr.FlgDomyslny = 1
  103.                 LEFT JOIN NGastroGrupaKontrahentow gk ON k.GrupaKontrahentowID = gk.ID
  104.                 LEFT JOIN NSysKraj kr ON k.KrajID = kr.ID
  105.                 LEFT JOIN NGastroPoziomCenowy pc ON k.PoziomCenowyID = pc.ID
  106.                 LEFT JOIN NGastroJezyk j ON k.JezykID = j.ID
  107.                 LEFT JOIN NGastroKontrahent kk ON k.KontrahentID = kk.ID
  108.                 LEFT JOIN NGastroDostawaObiekt do ON k.DostawaObiektID = do.ID
  109.                 LEFT JOIN NGastroKontrahentLokal kl ON kl.KontrahentID = k.ID
  110.                 LEFT JOIN NSysLokal lok ON lok.ID = kl.LokalID
  111.                 LEFT JOIN NSysLokal lokcentr ON lokcentr.FlgCentrala = 2
  112.            
  113.                 LEFT JOIN
  114.                 (
  115.                     SELECT TOP 1 ISNULL(kaz.Email, '') AS Email,kontrahentId
  116.                     FROM NGastroKontrahentAdresZamowien kaz
  117.                     INNER JOIN NGastroKontrahentAdresZamowienLokal kazl ON kazl.AdresZamowienID = kaz.ID
  118.                     WHERE  kazl.LokalID = (SELECT TOP 1 LokalID FROM NGastroLokal WHERE FlgMojLokal = 1)
  119.                 ) kaz ON kaz.KontrahentID = k.ID
  120.                 OUTER APPLY
  121.                 (
  122.                     SELECT TOP 1 kk.Kontakt AS KontrahentKontakt, kkn.KontrahentID FROM NGastroKontrahentKontakt kk
  123.                     INNER JOIN NGastroKontrahentKontaktNazwa kkn ON kkn.ID = kk.KontrahentKontaktNazwaID   
  124.                     AND kkn.KontrahentID = k.ID        
  125.                 ) kon  
  126.                 WHERE   (k.ID = @cID OR @cID IS NULL) AND k.FlgFirma = k.FlgFirma
  127.             END
  128.         ELSE
  129.             BEGIN
  130.                 SELECT
  131.                     k.ID,
  132.                     -----------------------------------------
  133.                     RTRIM(LTRIM(k._c_SymbolPelny)) SymbolPelny,
  134.                     k.Symbol,
  135.                     k.Haslo,
  136.                     k.Skrot,
  137.                     k.Nazwa,
  138.                     k.FlgFirma,
  139.                     k.FlgPlatnikVAT as FlgPlatnikVat,
  140.                     k.FlgRolnikRyczaltowy,
  141.                     k.FlgDostawcaAutoryzowany,
  142.                     k.NumerDokumentu,
  143.                     k.DataWydaniaDokumentu,
  144.                     k.OrganWydajacy,               
  145.                     -----------------------------------------
  146.                     k.GrupaKontrahentowID,
  147.                     gk.Nazwa GrupaKontrahentowNazwa,
  148.                     -----------------------------------------
  149.                     k.KrajID,
  150.                     kr.Nazwa AS KrajNazwa,
  151.                     k.Kontakt,
  152.                     k.NIP,
  153.                     k.CzyPowiazanyKapitalowo,
  154.                     k.KontoKsiegowe,
  155.                     k.Regon,
  156.                     -----------------------------------------
  157.                     k.PoziomCenowyID,
  158.                     pc.Nazwa AS PoziomCenowyNazwa, 
  159.                     -----------------------------------------  
  160.                     k.JezykID,
  161.                     j.Nazwa AS JezykNazwa,     
  162.                     -----------------------------------------
  163.                     k.FormatPlikow,
  164.                     k.FlgNipJednoznaczny,
  165.                     k.EuroNIP,
  166.                     k.FlgDostawca,
  167.                     k.FlgOdbiorca,
  168.                     k.FlgPlatnik,
  169.                     k.IndeksZewnetrzny,
  170.                     k.NazwaBanku,
  171.                     k.KontoBankowe,
  172.                     k.Imie,
  173.                     k.Nazwisko,
  174.                     -----------------------------------------
  175.                     ISNULL(kaz.Email, '') AS Email,
  176.                     -----------------------------------------
  177.                     k.KontrahentID,
  178.                     kk.Skrot AS KontrahentSkrot,
  179.                     kk.Nazwa AS KontrahentNazwa,
  180.                     LTRIM( RTRIM( CAST(ISNULL(kk.Nazwa, '') + ' ' + ISNULL(kk.Imie,'') + ' ' + ISNULL(kk.Nazwisko,'') AS VARCHAR(300)) ) )  AS KontrahentNazwaUniwersalna,
  181.                     -----------------------------------------
  182.                     k.DataUrodzenia,
  183.                     k.Plec,
  184.                     k.Pesel,
  185.                     k.Tytul,
  186.                     k.BluePocketId,
  187.                     -----------------------------------------
  188.                     k.DostawaObiektID,
  189.                     do.Nazwa DostawaObiektNazwa,
  190.                     -----------------------------------------
  191.                     kadr.Ulica,
  192.                     kadr.NrDomu,
  193.                     kadr.NrLokalu,
  194.                     kadr.KodPocztowy,
  195.                     kadr.Miejscowosc,
  196.                     -----------------------------------------
  197.                     kon.KontrahentKontakt,
  198.                     -----------------------------------------
  199.                     LTRIM( RTRIM( CAST(ISNULL(k.Nazwa, '') + ' ' + ISNULL(k.Imie,'') + ' ' + ISNULL(k.Nazwisko,'') AS VARCHAR(300)) ) )  AS NazwaUniwersalna,
  200.                     -----------------------------------------
  201.                     isnull(lok.ID,lokcentr.ID) AS KontrahentLokalID,
  202.                     case when lokcentr.ID is null then lok.Symbol else isnull(lok.Symbol,lokcentr.Symbol) end AS KontrahentLokalSymbol,
  203.                     -----------------------------------------
  204.                     CAST(0 AS TINYINT) AS _FlgTCF
  205.                 FROM NGastroKontrahent k WITH (INDEX (PK_NGastroKontrahent_ID))
  206.                 LEFT JOIN NGastroKontrahentAdres kadr WITH (INDEX (I_NGastroKontrahentAdres_KontrahentID)) ON kadr.KontrahentID = k.ID AND kadr.FlgDomyslny = 1
  207.                 LEFT JOIN NGastroGrupaKontrahentow gk ON k.GrupaKontrahentowID = gk.ID
  208.                 LEFT JOIN NSysKraj kr ON k.KrajID = kr.ID
  209.                 LEFT JOIN NGastroPoziomCenowy pc ON k.PoziomCenowyID = pc.ID
  210.                 LEFT JOIN NGastroJezyk j ON k.JezykID = j.ID
  211.                 LEFT JOIN NGastroKontrahent kk ON k.KontrahentID = kk.ID
  212.                 LEFT JOIN NGastroDostawaObiekt do ON k.DostawaObiektID = do.ID
  213.                 LEFT JOIN NGastroKontrahentLokal kl ON kl.KontrahentID = k.ID
  214.                 LEFT JOIN NSysLokal lok ON lok.ID = kl.LokalID
  215.                 LEFT JOIN NSysLokal lokcentr ON lokcentr.FlgCentrala = 2
  216.            
  217.                 LEFT JOIN
  218.                 (
  219.                     SELECT TOP 1 ISNULL(kaz.Email, '') AS Email,kontrahentId
  220.                     FROM NGastroKontrahentAdresZamowien kaz
  221.                     INNER JOIN NGastroKontrahentAdresZamowienLokal kazl ON kazl.AdresZamowienID = kaz.ID
  222.                     WHERE  kazl.LokalID = (SELECT TOP 1 LokalID FROM NGastroLokal WHERE FlgMojLokal = 1)
  223.                 ) kaz ON kaz.KontrahentID = k.ID
  224.                 OUTER APPLY
  225.                 (
  226.                     SELECT TOP 1 kk.Kontakt AS KontrahentKontakt, kkn.KontrahentID FROM NGastroKontrahentKontakt kk
  227.                     INNER JOIN NGastroKontrahentKontaktNazwa kkn ON kkn.ID = kk.KontrahentKontaktNazwaID   
  228.                     AND kkn.KontrahentID = k.ID        
  229.                 ) kon  
  230.                 WHERE   (k.ID = @cID OR @cID IS NULL)
  231.                         AND k.FlgFirma = @cTypKontrahenta
  232.         END
  233.            
  234.        
  235.  
  236.         -------------------[/BODY]----------------------
  237.         ------------------------------------------------               
  238.        
  239.         ------------------------------------------------
  240.         ----------------[SUCCESS_BLOCK]-----------------
  241.         RETURN 0
  242.         ----------------[/SUCCESS_BLOCK]----------------
  243.         ------------------------------------------------
  244.     END TRY
  245.     BEGIN CATCH
  246.         ------------------------------------------------   
  247.         -----------------[CATCH_BLOCK]------------------
  248.         DECLARE @cErrMsg NVARCHAR(2048)
  249.         SET @cErrMsg= ERROR_MESSAGE()
  250.         RAISERROR (@cErrMsg, 16, 1) WITH NOWAIT, SETERROR
  251.         RETURN(99)
  252.         -----------------[/CATCH_BLOCK]-----------------
  253.         ------------------------------------------------
  254.     END CATCH
  255. END
  256. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement