Skocz do zawartości

Zmiana daty Faktury zakupu + przyjęcia

Polecane posty

Chciałem się podzielić napisanym zapytaniem do bazy danych, które zmienia daty (głównie datę magazynową) na dokumencie FZ oraz powiązanym PZ (włączając do tego daty dostawy). Potrzeba zrodziła się kiedy po kilku miesiącach zorientowałem się, że pomyliłem datę magazynową i została zaliczona do złego miesiąca i musiałem datę przesunąć o kilka dni do przodu żeby zaliczyło ją do dobrego miesiąca. Na szczęście nowa prawidłowa data magazynowa nie kolidowała z ruchami na magazynie.

 

Zapytanie zmienia daty takie jak:

- Data wystawienia

- Data otrzymania

- Data zakończenia dostawy

- Data płatności

- Data magazynowa


Uwagi:

- daty wystawienia, otrzymania, zakończenia dostawy i płatności można zmienić samemu ręcznie na dokumencie FZ bezpośrednio przez program Subiekt GT

- główne założenie zapytania to zmiana daty magazynowej dokumentu PZ

- zakładamy, że dokument FZ ma ustawioną płatność z góry (brak terminu) bo datę płatności ustawiamy na nową datę

- zakładamy, że dostawy które tworzy FZ/PZ nie zostały przesuwane/sprzedane przed nową datą

- nie jestem serwisantem Insert i nie przeszedłem żadnego szkolenia, zapytanie zostało napisane wg mojej aktualnej wiedzy, mogłem coś pominąć (może ktoś z forumowiczów coś doda), wykonanie zapytania może uszkodzić bazę danych (nie mniej jednak ja je wykonałem na swojej bazie i nie zauważyłem żadnych problemów)

 

DECLARE @DOK_HAN_NR_PELNY VARCHAR(MAX) = 'FZ 1/01/2023'
DECLARE @NEW_DATE DATE = '2023-02-03'

UPDATE dok__Dokument 
SET dok_DataWyst = @NEW_DATE, 
	dok_DataMag = @NEW_DATE,
	dok_DataOtrzym = @NEW_DATE,
	dok_PlatTermin = @NEW_DATE,
	dok_DataZakonczenia = @NEW_DATE
WHERE dok_NrPelny = @DOK_HAN_NR_PELNY

UPDATE dok__Dokument 
SET dok_DataWyst = @NEW_DATE, 
	dok_DataMag = @NEW_DATE,
	dok_PlatTermin = @NEW_DATE,
	dok_DoDokDataWyst = @NEW_DATE
WHERE dok_DoDokNrPelny = @DOK_HAN_NR_PELNY

UPDATE dok_MagRuch SET mr_Data = @NEW_DATE WHERE mr_Id IN (
	SELECT mr_Id
	FROM dok_MagRuch
	JOIN tw__Towar ON mr_TowId = tw_Id
	JOIN dok_Pozycja ON mr_PozId = ob_Id
	JOIN dok__Dokument ON ob_DokMagId = dok_Id
	WHERE dok_DoDokNrPelny = @DOK_HAN_NR_PELNY
)

 

Link to postu
×
×
  • Dodaj nową pozycję...