Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zabrana preskakanja brojeva novih faktura

[es] :: MS SQL :: Zabrana preskakanja brojeva novih faktura

[ Pregleda: 3005 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vlade_k6
Vlade Rajević
Termorad Group
Požega

Član broj: 101958
Poruke: 60
*.astra-net.com.



+3 Profil

icon Zabrana preskakanja brojeva novih faktura17.07.2008. u 11:48 - pre 192 meseci
Sql baza 2000, tabela fakture. Ne umem da odradim mehanizam za zaštitu preskakanja brojeva faktura, tj često se događa da ako je zadnji broj bio npr 2340, komercijalisti previde i nastave 2431, 2432, 2433... i onda nastaje problem. Da li neko zna da napravi okidač koji će onemogućiti preskakanje brojeva? Kolone koje su bitne su
racunbr - broj računa
racungod - godina računa (07, 08...)
magacin - broj magacina (1,2,3)

Znači bilo bi mi potrebno da okidač proveri prvo koji je magacin u pitanju, pa koja je godina i tek onda da vidi da li je preskočen neki broj. Napominjem da se brojevi u magacinima posebno vode i da od početka godine svi kreću ponovo od 1, 2, 3....
 
Odgovor na temu

priki

Član broj: 24732
Poruke: 700
*.link.t-2.net.

ICQ: 174153511


+26 Profil

icon Re: Zabrana preskakanja brojeva novih faktura17.07.2008. u 13:48 - pre 192 meseci

de pojani malo bolje, ja ovde ne vidim preskakanje

Citat:
vlade_k6:  zadnji broj bio npr 2340, komercijalisti previde i nastave 2431, 2432, 2433... i onda nastaje problem

Znači bilo bi mi potrebno da okidač proveri prvo koji je magacin u pitanju, pa koja je godina i tek onda da vidi da li je preskočen neki broj. Napominjem da se brojevi u magacinima posebno vode i da od početka godine svi kreću ponovo od 1, 2, 3....


inace, imas jednostavan upit koji ti to sredi
 
Odgovor na temu

vlade_k6
Vlade Rajević
Termorad Group
Požega

Član broj: 101958
Poruke: 60
*.astra-net.com.



+3 Profil

icon Re: Zabrana preskakanja brojeva novih faktura17.07.2008. u 18:20 - pre 192 meseci
Pa naveo sam da posle 2340 upišu 2431...
Slažem se da postoji jednostavan upit za ovo, samo mi daj ideju kako da to rešim. :)
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
79.101.255.*



+41 Profil

icon Re: Zabrana preskakanja brojeva novih faktura17.07.2008. u 19:02 - pre 192 meseci
Pa proveris da li ima prethodni (u tvom slucaju 2430) i ako nema ponistis izmenu, generises error ...
Mozes koristiti insteadofupdate trigger (bilo vec ovde).
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
*.adsl.beotel.net.

ICQ: 20785904


+4 Profil

icon Re: Zabrana preskakanja brojeva novih faktura18.07.2008. u 01:01 - pre 192 meseci
men se cini da ti je onda koncept los.

ne treba komercijalista da dodeljuje broj racuna posto gresi. umesto da handlujes njegovu gresku, napravi da program dodeljuje broj fakture. a komercijalisti to samo nek se prikaze na ekranu.

prilikom otvaranja forme za fakturu, u polje za broj fakture upisi rezultat upita: select max(isnull(broj_fakture,0))+1 from tabela where magacin = @magacinId and godina=@godinaId.
a ako imas konkurentni rad( vise klijenatA), onda nemoj nista prikazivati, nego prilikom upisa fakture, izvrsi ovaj upit (oboje u istoj transakciji)

ukoliko imas opciju brisanja faktura, imaces opet preskakanje...
 
Odgovor na temu

Koce
DBA
Serbia, Belgrade

Član broj: 59217
Poruke: 144
*.vektor.net.



+1 Profil

icon Re: Zabrana preskakanja brojeva novih faktura18.07.2008. u 10:44 - pre 192 meseci
I ja se slazem za Sallle-om da ti je koncept los tj da ne treba korisnik da vodi racuna o rednim brojevima. Ako ipak nisi u mogucnosti da mijenjas aplikaciju, mozes to pokusati izvesti sa trigerom, nesto kao:

Create trigger tr_Faktura on fakture
INSTEAD OF insert -- ne treba ti update?
as
declare @br1 as int, @br2 as int
select @br1 = min(broj_fakture) from inserted
select @br2 = max(isnull(broj_fakture, 0)) from fakture --where god...
if @br1 <> @br2 + 1
BEGIN
RAISERROR ('preskocio si broj', 16, 1)
ROLLBACK TRANSACTION
END
else
insert into fakture select * from inserted


napomena da ovo ti radi za red po red, ako nekad upisujes vise redova odjednom (mada kako si objasnio mislim da ne), moraces malo promijeniti ....

ili mozes umjesto ROLLBACK TRANSACTION
staviti
if @@trancount > 0 ROLLBACK TRANSACTION
 
Odgovor na temu

vlade_k6
Vlade Rajević
Termorad Group
Požega

Član broj: 101958
Poruke: 60
*.astra-net.com.



+3 Profil

icon Re: Zabrana preskakanja brojeva novih faktura18.07.2008. u 14:14 - pre 192 meseci
Odlično, ovo šljaka. Za sada nisu dozvolili da se automaski numerišu fakture (da ne pričam što) tako da ću se ovako snaći.

Hvala puno.
 
Odgovor na temu

[es] :: MS SQL :: Zabrana preskakanja brojeva novih faktura

[ Pregleda: 3005 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.