Aktualizacja nazw towarów na kartotekach

Problemy i pomysły związane z funkcjonowaniem modułu Sprzedaż

Moderator: mikey

Gregorq
Posty: 58
Rejestracja: 08 gru 2011, 16:25
Rola: Inny
Wersja: 2015

Aktualizacja nazw towarów na kartotekach

Post autor: Gregorq »

Dzień dobry,
chcę zaktualizować kartoteki produktów, konkretnie ich nazwy z pliku Excel, na poziomie bazy.
Czy wystarczy tylko update na CDN.TwrKarty, czy jeszcze jakaś inną tabelę powinienem wziąć pod uwagę?

pozdrawiam
GK

RomanP
Posty: 145
Rejestracja: 24 lut 2013, 12:41
Rola: Administrator CDN XL
Lokalizacja: Skarżysko-Kamienna

Re: Aktualizacja nazw towarów na kartotekach

Post autor: RomanP »

W dokumentacji bazy danych relacje z tabelą TwrKarty tworzone są przy pomocy pól: TwrGIDNumer, TwrGIDTyp
więc nie ma problemu zmiany samej nazwy towaru (Twr_Nazwa?)
Pozostają tabele gdzie to pole jest przepisywane (TraElem, ZlecElem, ......) przy tworzeniu dokumentów.
Wyszukiwanie istniejących będzie po Twr_Kod?
Nowe proponuję dodawać poprzez API (grupy, itp.)

Gregorq
Posty: 58
Rejestracja: 08 gru 2011, 16:25
Rola: Inny
Wersja: 2015

Re: Aktualizacja nazw towarów na kartotekach

Post autor: Gregorq »

Generalnie muszę zmienić tylko nazwy na kartotekach, nie na transakcjach, więc w takim razie jeden update powinien wystarczyć.

A tak na przyszłość, czy API umożliwia Update czy tylko dodawanie nowych rekordów?

pozdr
GK

RomanP
Posty: 145
Rejestracja: 24 lut 2013, 12:41
Rola: Administrator CDN XL
Lokalizacja: Skarżysko-Kamienna

Re: Aktualizacja nazw towarów na kartotekach

Post autor: RomanP »

Tylko dodawanie, plus operacje na cenach

Gregorq
Posty: 58
Rejestracja: 08 gru 2011, 16:25
Rola: Inny
Wersja: 2015

Re: Aktualizacja nazw towarów na kartotekach

Post autor: Gregorq »

Okazuje się, że jeszcze jest TwG_Nazwa na TwrGrupy. Zastanawiam się co jeszcze....? Może jakaś podpowiedź?

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

Re: Aktualizacja nazw towarów na kartotekach

Post autor: taszek »

Kod: Zaznacz cały

--sprawdzenie czy istnieje tabela tymczasowa
if object_id('#IT') is not null
begin
--jeśli tak to ją usuwa
  DROP TABLE #IT;
end 
if object_id('#IT2') is not null
begin
--jeśli tak to ją usuwa
  DROP TABLE #IT2;
end 

Go
Begin	

/*
	Pobranie danych z pliku Excel i zapisanie do tabeli tymczasowej #IT
	Plik Excel ma trzy kolumny:
	- KodN : Nowy kod w systemie
	- KodS : Aktualny kod w systemie
	- Nazwa : Nowa nazwa kartoteki
*/
SELECT KodN, Nazwa, KodS INTO #IT FROM OPENROWSET(
'Microsoft.ACE.OLEDB.12.0', 
-- provider_string z IMEX
'Excel 8.0;IMEX=1;HDR=Yes;Database=D:\SQL\sql.xls', 
'Select KodN, Nazwa, KodS FROM [Nazwa$]' );
End

Begin
-- Kopiowanie tylko istniejących kartotek do tabeli tymczasowej #IT2
select * INTO #IT2 FROM #IT IT
WHERE EXISTS (
	SELECT null FROM CDN.TwrKarty TK WHERE IT.KodS = TK.Twr_Kod)



/*
	Aktualizacja kart towarowych
*/

UPDATE CDN.TwrKarty
        SET Twr_Nazwa = Nazwa,
			Twr_Kod = KodN
        FROM CDN.TwrKarty, #IT2
        WHERE Twr_Kod = KodS
      
UPDATE CDN.TwrGrupy 
        SET TwG_Nazwa = Nazwa,
			TwG_Kod = KodN
        FROM CDN.TwrGrupy, #IT2
        WHERE TwG_Kod = KodS

UPDATE CDN.TwrGrupyDom
		SET TGD_Kod = KodN
		FROM CDN.TwrGrupyDom, #IT2
		WHERE TGD_Kod = KodS 

DROP TABLE #IT
DROP TABLE #IT2
END
Pozdrawiam
Wojtek Cyrklewicz

ODPOWIEDZ