Temat: Scenariusz uzycia JL_ZatwierdzZmianePozycji
Jeśli to w czymś pomoże, zamieszczam poniżej skrypt, z którego korzystam do testowania tego rozwiązania. Działa dla dokumentu (w takim przypadku wartość @symbol1 jest pusta, @status ustawiony na 'F', a @kwota na dowolną wartość różną od 300), natomiast nie działa dla korekty.
Jak wcześniej, każda pomoc będzie ogromnie przydatna.
set nocount on
begin tran
declare @symbol varchar(100)
set @symbol = 'FA 1/2018'
--set @symbol = convert(varchar, getdate(), 121)
declare @symbol1 varchar(100)
set @symbol1 = 'FAK 1/2018'
declare @kwota decimal(9, 2)
set @kwota = 300
declare @status char(1)
set @status = 'K'
--set @status = 'F'
declare @p8 int
set @p8=5
exec sp_executesql N'
DECLARE
@ID_TYPU_DOKUMENTU_HANDLOWEGO int
,@ID_TYPU_DOKUMENTU_MAGAZYNOWEGO int
,@ID_DOKUMENTU_HANDLOWEGO_ORYGINALNEGO int
,@ID_DOKUMENTU_MAGAZYNOWEGO_ORYGINALNEGO int
,@ID_POZYCJI_DOKUMENTU_MAGAZYNOWEGO_ORYGINALNEJ int
,@ID_POZYCJI_DOKUMENTU_MAGAZYNOWEGO_KORYGOWANEJ int
,@ID_DOKUMENTU_HANDLOWEGO_KORYGOWANEGO int
,@Przychod tinyint
,@Rozchod tinyint
,@SYGNATURA_DOKUMENTU_HANDLOWEGO varchar(3)
,@SYGNATURA_DOKUMENTU_MAGAZYNOWEGO varchar(3)
,@Rodzaj_Poz char(1)
,@numer varchar(30)
,@Data1_Clarion int
,@Data2_Clarion int
,@ID_DOKUMENTU_MAGAZYNOWEGO int
,@ID_POZYCJI_DOKUMENTU_MAGAZYNOWEGO int
,@ID_PLATNIKA int
,@rodzaj_dok char(1)
,@znak_wn tinyint
,@Cena_Netto_Przed_Korekta decimal(9, 2)
,@Cena_Netto_Po_Korekcie decimal(9, 2)
,@suma_netto decimal(9, 2)
,@suma_brutto decimal(9, 2)
,@suma_netto_wal decimal(9, 2)
,@suma_brutto_wal decimal(9, 2)
,@wartosc_pozycji_netto decimal(9, 2)
,@wartosc_pozycji_brutto decimal(9, 2)
,@err_cichy varchar(255)
SET @Data1_Clarion = CONVERT(int, CONVERT(datetime, CONVERT(varchar(20), @Data1, 101), 101)) + 36163
SET @Data2_Clarion = CONVERT(int, CONVERT(datetime, CONVERT(varchar(20), @Data2, 101), 101)) + 36163
SET @numer = ISNULL(@SymbolFaktury1, @SymbolFaktury)
SELECT
@ID_PLATNIKA = ID_PLATNIKA
FROM
dbo.KONTRAHENT
WHERE
ID_KONTRAHENTA = @ID_KONTRAHENTA
IF @DosOdb = ''D'' AND @Status = ''F''
BEGIN
SELECT
@Przychod = 1
,@Rozchod = 0
,@SYGNATURA_DOKUMENTU_MAGAZYNOWEGO = ''ZU''
,@SYGNATURA_DOKUMENTU_HANDLOWEGO = ''FZ''
,@rodzaj_dok = ''z''
,@Rodzaj_poz = ''P''
END
ELSE IF @DosOdb = ''D'' AND @Status = ''K''
BEGIN
SELECT
@Przychod = 0
,@Rozchod = 1
,@SYGNATURA_DOKUMENTU_MAGAZYNOWEGO = ''ZUk''
,@SYGNATURA_DOKUMENTU_HANDLOWEGO = ''FZk''
,@rodzaj_dok = ''z''
,@Rodzaj_poz = ''R''
END
ELSE IF @DosOdb = ''O'' AND @Status = ''F''
BEGIN
SELECT
@Przychod = 0
,@Rozchod = 1
,@SYGNATURA_DOKUMENTU_MAGAZYNOWEGO = ''SU''
,@SYGNATURA_DOKUMENTU_HANDLOWEGO = ''FV''
,@rodzaj_dok = ''s''
,@Rodzaj_poz = ''R''
END
ELSE IF @DosOdb = ''O'' AND @Status = ''K''
BEGIN
SELECT
@Przychod = 1
,@Rozchod = 0
,@SYGNATURA_DOKUMENTU_MAGAZYNOWEGO = ''SUk''
,@SYGNATURA_DOKUMENTU_HANDLOWEGO = ''FVk''
,@rodzaj_dok = ''s''
,@Rodzaj_poz = ''P''
END
SELECT
@ID_TYPU_DOKUMENTU_HANDLOWEGO = ID_TYPU
FROM
TYP_DOKUMENTU_HANDLOWEGO
WHERE
ID_FIRMY = @ID_FIRMY
AND SYGNATURA = @SYGNATURA_DOKUMENTU_HANDLOWEGO
SELECT
@ID_TYPU_DOKUMENTU_MAGAZYNOWEGO = ID_TYPU
FROM
TYP_DOKUMENTU_MAGAZYNOWEGO
WHERE
ID_FIRMY = @ID_FIRMY
AND SYGNATURA = @SYGNATURA_DOKUMENTU_MAGAZYNOWEGO
SET @znak_wn = CASE WHEN @Kwota > 0 THEN 2 ELSE 0 END
IF @Status = ''F''
BEGIN
EXEC dbo.JL_DodajParagonServer_Pre
@id_sesji = @ID_UZYTKOWNIKA,
@id_mag = @ID_MAGAZYNU,
@id_firmy = @ID_FIRMY,
@data = @Data1_Clarion,
@id_kontrahenta = @ID_KONTRAHENTA,
@id_typu = @ID_TYPU_DOKUMENTU_HANDLOWEGO,
@miejsce = ''Poznań'',
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO OUTPUT,
@trybrejestracji = 0
EXEC dbo.AP_DodajWTleDokMag_Server
@id_firmy = @ID_FIRMY,
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO,
@id_mag = @ID_MAGAZYNU,
@data = @Data1_Clarion,
@id_typu = @ID_TYPU_DOKUMENTU_MAGAZYNOWEGO,
@id_kontr = @ID_KONTRAHENTA,
@przychod = @Przychod,
@rozchod = @Rozchod,
@rodzaj = @SYGNATURA_DOKUMENTU_MAGAZYNOWEGO,
@wycena = ''Z'',
@brutto_netto = ''Netto'',
@id_uzy = @ID_UZYTKOWNIKA,
@id_dokumentu = @ID_DOKUMENTU_MAGAZYNOWEGO OUTPUT
EXEC dbo.JL_ZatwierdzPozycje_Server
@id_dok_mag = @ID_DOKUMENTU_MAGAZYNOWEGO,
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO,
@id_art = @ID_ARTYKULU,
@rodzaj_poz = @Rodzaj_Poz,
@rodzaj_art = ''U'',
@jednostka = ''Szt.'',
@przelicznik = 1,
@ilosc = 1,
@kodvat = ''0'',
@cena_netto = @Kwota,
@cena_brutto = @Kwota,
@cena_netto_wal = 0,
@cena_brutto_wal = 0,
@rabat = 0,
@znak = 2,
@rabat2 = 0,
@znak2 = 2,
@fifo_lifo = ''FIFO'',
@ostrzegaj_stan_zero = 0,
@data = @Data1_Clarion,
@wycena = ''Z'',
@op_wydano = 0,
@op_przyjeto = 0,
@pozycja_drs = 0,
@nr_paczki = '''',
@oblicz_wartosc_pozycji = 0,
@tryb_rejestracji = 0,
@id_poz_dostawy = 0,
@wartosc_pozycji_netto = @wartosc_pozycji_netto OUTPUT,
@wartosc_pozycji_brutto = @wartosc_pozycji_brutto OUTPUT,
@r_id_poz_dok = @ID_POZYCJI_DOKUMENTU_MAGAZYNOWEGO OUTPUT,
@tryb_cichy = 0,
@err_cichy = @err_cichy OUTPUT,
@zn_ceny = ''k'',
@czb_marza = 0
EXEC dbo.JL_SumujDokumentHandlowy_Server
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO,
@rodzaj_dok = @rodzaj_dok,
@brutto_netto = ''Netto'',
@nr_filtra = 1,
@suma_netto = @suma_netto OUTPUT,
@suma_brutto = @suma_brutto OUTPUT,
@suma_netto_wal = @suma_netto_wal OUTPUT,
@suma_brutto_wal = @suma_brutto_wal OUTPUT
EXEC dbo.JL_ObliczVATDokumentuHandlowego
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO,
@id_dok_mag = @ID_DOKUMENTU_MAGAZYNOWEGO,
@brutto_netto = ''Netto''
EXEC dbo.JL_ZatwierdzDokumentHandlowy_Server
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO,
@id_typu = @ID_TYPU_DOKUMENTU_HANDLOWEGO,
@numer = @numer,
@num_format = '''',
@num_okresnumeracji = 0,
@num_auto = 2,
@num_niezalezna = 2,
@id_firmy = @ID_FIRMY,
@id_mag = @ID_MAGAZYNU,
@forma_platnosci = ''Gotówka'',
@miejsce = ''Poznań'',
@data_wplywu = @Data2_Clarion,
@data_wystawienia = @Data1_Clarion,
@data_sprzedazy = @Data1_Clarion,
@id_kontrahenta = @ID_KONTRAHENTA,
@id_platnika = @ID_PLATNIKA,
@odebral = '''',
@uwagi = @Opis,
@rabat = 0,
@znak = 2,
@termin_plat = @Data1_Clarion,
@zaliczka = 0,
@wplata_biezaca = 0,
@wplata_biezaca_wal = 0,
@wartosc_netto = @Kwota,
@znak_wn = @znak_wn,
@wartosc_brutto = @Kwota,
@dok_wal = 0,
@sym_wal = '''',
@przelicznik_wal = 0,
@data_kursu_wal = 0,
@wartosc_netto_wal = 0,
@wartosc_brutto_wal = 0,
@rodzaj_dok = @rodzaj_dok,
@brutto_netto = ''Netto'',
@fifo_lifo = ''FIFO'',
@przeliczaj_ceny = 0,
@id_dok_korygowanego = 0,
@fiskalny_ok = 0,
@id_kasy = @ID_KASY,
@id_uzytkownika = @ID_UZYTKOWNIKA,
@id_pracownika = 0,
@tryb_rejestracji = 0,
@id_rachunku = 0,
@potwierdzony_ue = 1,
@trojstronny_ue = 0,
@id_fzal_org = 0,
@bez_errmsg = 0,
@uproszczony = 0,
@zaliczka_odroczona = 0,
@data_otrzymania = @Data2_Clarion
END
ELSE
BEGIN
SELECT
@ID_DOKUMENTU_HANDLOWEGO_ORYGINALNEGO = ID_DOKUMENTU_HANDLOWEGO
FROM
dbo.DOKUMENT_HANDLOWY
WHERE
NUMER = @SymbolFaktury
AND ID_MAGAZYNU = @ID_MAGAZYNU
SELECT
@ID_DOKUMENTU_HANDLOWEGO_KORYGOWANEGO = MAX(ID_DOK_ORYGINALNEGO)
FROM
dbo.DOKUMENT_HANDLOWY
WHERE
ID_DOKUMENTU_HANDLOWEGO = @ID_DOKUMENTU_HANDLOWEGO_ORYGINALNEGO
AND ID_MAGAZYNU = @ID_MAGAZYNU
SELECT TOP 1
@ID_POZYCJI_DOKUMENTU_MAGAZYNOWEGO_ORYGINALNEJ = ID_POZ_DOK_MAG
FROM
dbo.POZYCJA_FAKTURY_V
WHERE
ID_DOK_HANDLOWEGO = @ID_DOKUMENTU_HANDLOWEGO_ORYGINALNEGO
SELECT TOP 1
@ID_POZYCJI_DOKUMENTU_MAGAZYNOWEGO_KORYGOWANEJ = ID_POZ_DOK_MAG,
@Cena_Netto_Przed_Korekta = CENA_NETTO
FROM
dbo.POZYCJA_FAKTURY_V
WHERE
ID_DOK_HANDLOWEGO = @ID_DOKUMENTU_HANDLOWEGO_KORYGOWANEGO
SET @Cena_Netto_Po_Korekcie = @Cena_Netto_Przed_Korekta + @Kwota
EXEC dbo.JL_DodajDokumentKorekty
@id_dok_korygowanego = @ID_DOKUMENTU_HANDLOWEGO_KORYGOWANEGO,
@id_dok_oryginalnego = @ID_DOKUMENTU_HANDLOWEGO_ORYGINALNEGO,
@data = @Data1_Clarion,
@id_kontrahenta = @ID_KONTRAHENTA,
@id_platnika = @ID_PLATNIKA,
@id_firmy = @ID_FIRMY,
@id_magazynu = @ID_MAGAZYNU,
@id_typu = @ID_TYPU_DOKUMENTU_HANDLOWEGO,
@id_sesji = @ID_UZYTKOWNIKA,
@data_otrzymania = @Data2_Clarion
EXEC dbo.JL_ZatwierdzZmianePozycji
@id_dok_mag = @ID_DOKUMENTU_MAGAZYNOWEGO,
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO_ORYGINALNEGO,
@id_poz_dok = @ID_POZYCJI_DOKUMENTU_MAGAZYNOWEGO_ORYGINALNEJ,
@id_art = @ID_ARTYKULU,
@rodzaj_poz = @Rodzaj_Poz,
@rodzaj_art = ''U'',
@data = @Data1_Clarion,
@jednostka = ''Szt.'',
@przelicznik = 1,
@kodVAT = ''0'',
@cena_netto = @Cena_Netto_Po_Korekcie,
@cena_brutto = @Cena_Netto_Po_Korekcie,
@cena_netto_wal = 0,
@cena_brutto_wal = 0,
@rabat = 0,
@znak = 2,
@op_wydano = 0,
@op_przyjeto = 0,
@ilosc_new = 1,
@ilosc_old = 1,
@fifo_lifo = ''FIFO'',
@wycena = ''Z'',
@akcja = ''Upd'',
@id_poz_korygowanej = @ID_POZYCJI_DOKUMENTU_MAGAZYNOWEGO_KORYGOWANEJ,
@nr_paczki = '''',
@tryb_rejestracji = 0,
@zn_ceny = ''m'',
@czb_marza = 0
EXEC dbo.JL_SumujDokumentKorekty_Server
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO,
@rodzaj_dok = @rodzaj_dok,
@brutto_netto = ''Netto'',
@nr_filtra = 1,
@suma_netto = @Suma_netto OUTPUT,
@suma_brutto = @Suma_brutto OUTPUT,
@suma_netto_wal = @suma_netto_wal OUTPUT,
@suma_brutto_wal = @suma_brutto_wal OUTPUT
EXEC dbo.JL_ObliczVATDokumentuKorekty
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO,
@id_dok_korygowanego = @ID_DOKUMENTU_HANDLOWEGO_ORYGINALNEGO,
@id_dok_oryginalnego = @ID_DOKUMENTU_MAGAZYNOWEGO,
@brutto_netto = ''Netto''
EXEC dbo.JL_ZatwierdzDokumentHandlowy_Server
@id_dok_handl = @ID_DOKUMENTU_HANDLOWEGO,
@id_typu = @ID_TYPU_DOKUMENTU_HANDLOWEGO,
@numer = @numer,
@num_format = '''',
@num_okresnumeracji = 0,
@num_auto = 2,
@num_niezalezna = 2,
@id_firmy = @ID_FIRMY,
@id_mag = @ID_MAGAZYNU,
@forma_platnosci = ''Gotówka'',
@miejsce = ''Poznań'',
@data_wplywu = @Data2_Clarion,
@data_wystawienia = @Data1_Clarion,
@data_sprzedazy = @Data1_Clarion,
@id_kontrahenta = @ID_KONTRAHENTA,
@id_platnika = @ID_PLATNIKA,
@odebral = '''',
@uwagi = @Opis,
@rabat = 0,
@znak = 2,
@termin_plat = @Data1_Clarion,
@zaliczka = 0,
@wplata_biezaca = 0,
@wplata_biezaca_wal = 0,
@wartosc_netto = @Kwota,
@znak_wn = @znak_wn,
@wartosc_brutto = @Kwota,
@dok_wal = 0,
@sym_wal = '''',
@przelicznik_wal = 0,
@data_kursu_wal = 0,
@wartosc_netto_wal = 0,
@wartosc_brutto_wal = 0,
@rodzaj_dok = @rodzaj_dok,
@brutto_netto = ''Netto'',
@fifo_lifo = ''FIFO'',
@przeliczaj_ceny = 0,
@id_dok_korygowanego = @ID_DOKUMENTU_HANDLOWEGO_ORYGINALNEGO,
@fiskalny_ok = 0,
@id_kasy = @ID_KASY,
@id_uzytkownika = @ID_UZYTKOWNIKA,
@id_pracownika = 0,
@tryb_rejestracji = 0,
@id_rachunku = 0,
@potwierdzony_ue = 1,
@trojstronny_ue = 0,
@id_fzal_org = 0,
@bez_errmsg = 0,
@uproszczony = 0,
@zaliczka_odroczona = 0,
@data_otrzymania = @Data2_Clarion
END
',N'@ID_FIRMY int,@ID_UZYTKOWNIKA int,@ID_MAGAZYNU int,@ID_KASY int,@ID_ARTYKULU int,@ID_DOKUMENTU_HANDLOWEGO int output,@DosOdb varchar(100),@Data1 datetime,@Data2 datetime,@Kwota decimal(5,2),@Status varchar(100),@SymbolFaktury varchar(100),@SymbolFaktury1 varchar(100),@Opis varchar(1000),@ID_KONTRAHENTA int',
@ID_FIRMY=1,@ID_UZYTKOWNIKA=3000001,@ID_MAGAZYNU=4,@ID_KASY=1,@ID_ARTYKULU=150865,@ID_DOKUMENTU_HANDLOWEGO=@p8 output,@DosOdb='O',
@Data1='2003-06-12 00:00:00',@Data2='2003-07-03 00:00:00',@Kwota=@Kwota,@Status=@status,
@SymbolFaktury=@symbol,@SymbolFaktury1=@symbol1,@Opis='Bilans otwarcia / 1422 / WP (id: 338 / idDok: 2)',@ID_KONTRAHENTA=15822
select @p8
--commit
rollback