Blokada dodawania kontrahenta bez NIP-u

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

dominiss1990
Posty: 10
Rejestracja: 19 cze 2020, 13:49
Rola: Administrator CDN XL
Wersja: 2019

Blokada dodawania kontrahenta bez NIP-u

Post autor: dominiss1990 »

Potrzebuję zablokować możliwość dodawania nowego kontrahenta bez wpisanego NIP-u w systemie Comarch XL.

W małej hydrze zrobiłem dodatek, który blokuje ikonkę zapisu, i następujący warunek:

Kod: Zaznacz cały

if(KntKarty.Knt_NipE == "")
return true;
else return false;
Niestety nie działa i takiego kontrahenta można nadal zapisać. Jeśli w warunku podam KntKarty.Knt_Nip zamiast KntKarty.Knt_NipE to również nie pomaga. Bez żadnego warunku przycisk zapisu jest blokowany.

taszek
Posty: 585
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: Blokada dodawania kontrahenta bez NIP-u

Post autor: taszek »

Mała Hydra sprawdza warunek podczas podnoszenia formatki. Więc do takiej sytuacji potrzebujesz Dużej Hydry lub za pomocą triggera blokować zapis
Pozdrawiam
Wojtek Cyrklewicz

dominiss1990
Posty: 10
Rejestracja: 19 cze 2020, 13:49
Rola: Administrator CDN XL
Wersja: 2019

Re: Blokada dodawania kontrahenta bez NIP-u

Post autor: dominiss1990 »

Tego się obawiałem, dzięki za informacje.

Awatar użytkownika
viesiek1
Posty: 416
Rejestracja: 03 maja 2011, 18:40
Rola: Administrator CDN XL
Wersja: 2023
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Blokada dodawania kontrahenta bez NIP-u

Post autor: viesiek1 »

Akurat mam taki trigger, to się podzielę. Sprawdzam jeszcze czy klient jest krajowy lub unijny. Pozaunijny może mieć NIP pusty. Pozwalam też niektórym użytkownikom ominąć tę blokadę. Pozmieniaj sobie wg swoich potrzeb:

Kod: Zaznacz cały

/****** Object:  Trigger [CDN].[Hydro_EmptyVatNumber]    Script Date: 2020-08-05 11:37:42 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [CDN].[Hydro_EmptyVatNumber]
  ON [CDN].[KntKarty]
  AFTER UPDATE
AS
SET NOCOUNT ON

      DECLARE @p_NewNip VARCHAR(100), @p_NewNipE VARCHAR(100), @p_OpeMod INT, @p_ExpoKraj INT, @p_Prefix VARCHAR(20), @p_KntGidNumer INT, @p_KntPlatnikVat INT;
      
      SELECT 
	        @p_NewNip        = ISNULL(Knt_Nip, '')  
              , @p_NewNipE       = ISNULL(Knt_NipE, '')
              , @p_OpeMod        = Knt_OpeNumerM
	      , @p_ExpoKraj      = Knt_ExpoKraj
              , @p_Prefix        = ISNULL(Knt_NipPrefiks, '')
	      , @p_KntGidNumer   = ISNULL(Knt_GIDNumer, 0)
	      , @p_KntPlatnikVat = ISNULL(Knt_PlatnikVat, 0)
     FROM inserted
      
      
      IF (
	        (@p_NewNip = '' OR @p_NewNipE = '') 
	     OR (@p_Prefix = '' AND @p_ExpoKraj = 2) -- UE
	 )
	 AND ( @p_ExpoKraj IN (1, 2)) 
	 AND ( @p_KntPlatnikVat = 1)
         AND
         (
                  @p_OpeMod <> 3  -- User XXX
              AND @p_OpeMod <> 77 -- Wiesław Świergała
         )
	 AND @p_KntGidNumer > 0 -- JEDNORAZOWY
      BEGIN 
	      RAISERROR('#CDN_BLAD/# #CDN_1=Kontrahent krajowy musi mieć wpisany numer NIP. Kontrahent unijny NIP i Prefix/# #CDN_2=/# #CDN_3=/#', 16, 1)
		  ROLLBACK TRAN
		  SET NOCOUNT ON
		  RETURN
      END

SET NOCOUNT OFF
GO
ALTER TABLE [CDN].[KntKarty] ENABLE TRIGGER [Hydro_EmptyVatNumber]
GO
Wiesław Świergała

tel: +48 33 829 54 50
e-mail: wieslaw.swiergala@hydro.com.pl

http://www.hydro.com.pl

ODPOWIEDZ