Az oldal megtekintéséhez kérjük, engedélyezze a JavaScriptet.

Nagy Machinátor súgó

Navigáció: Keretrendszer > Eljárások

Dokumentum Módosítás Engedélyezés [Proc_DKModEng]

Ugrás Előző Fel Következő Menü

A Dokumentum modulban a Dokumentum módosításának engedélyezését értékeli az eljárás.

Bemenő paraméterek

IktatóSzám

A dokumentum iktatószáma

Operator

Operátor

Kimenő adatok

Engedély

 

Algoritmus

1

Változó definiálás:Proc_DKModEng.Gyűjtő

Az IktatóSzám értékét a DKDokFej.IktatóSzám-ban meg kell keresni. A talált rekordból a DKDokFej.GyKód a Gyűjtő értéke.

A kapott Gyűjtő kódot a DKGyűjtFej.GyKód között kell megtalálni.

A talált rekordból a következő mezők értékétől függ az eredmény:

MEngedély         : ENUM 'Bárki|Senki|MegadottRészleg|MegadottSzemély|FelelősRészleg|FelelősSzemély'

MEngRészleg       : CWI 60

MEngSzemély       : %SzemélyKódIg%BCD 8 <foreignkey:SzemélyTörzs.Kód>

MEngSzemBes       : CWI 60

RészlegBevitel    :   ENUM 'Nincs|Normál|Kötelező|Nem módosítható'

2

Változó definiálás:

Proc_DKModEng.Személy : %SzemélyKódIg%BCD 8 <foreignkey:SzemélyTörzs.Kód>

Személy=A kapott Operátor kódot a SzemélyTörzs.Operátor állományban kell megkeresni.

3

Ha Személy nem kapott értéket és DKGyűjtFej.MEngedély=MegadottRészleg|MegadottSzemély|FelelősRészleg|FelelősSzemély

akkor az Engedély=FALS, vagyis nincs engedélyezve.

Vagyis, ha az Operátor nem lehetett egy személlyel azonosítani, akkor a fenti értékek esetén biztos, hogy nincs joga a dokumentumhoz.

 

SENKI

4

Ha MEngedély=Senki,

akkor Engedély=Fals, vagyis nem módosítható a dokumentum. Vége az eljárásnak.

 

BÁRKI

5

Ha DKGyűjtFej.MEngedély=Bárki és MEngSzemBes nincs kitöltve

akkor az Engedély=TRUE, vagyis engedélyezve van.

6

Ha DKGyűjtFej.MEngedély=Bárki és MEngSzemBes ki van töltve

akkor le kell futtatni a Proc_SzemelyBesorTag eljárást és annak az eredménye szerint zárul ez az eljárás.

Vagyis, ha a Személy beletartozik a besorolásba, akkor hozzáférhet a dokumentumhoz.

Proc_SzemelyBesorTag hívása:

Bemenő paraméterek:

SzemélyBesor

DKGyűjtFej.MEngSzemBes

Személy

Proc_DKModEng.Személy

 

AZ ALÁBBI SZEMÉLY (MegadottSzemély)

7

Ha a Személy értéket kapott és  DKGyűjtFej.MEngedély=MegadottSzemély

és DKGyűjtFej.MEngSzemély = Proc_DKModEng.Személy,

akkor az Engedély=TRUE, vagyis engedélyezve van

(Vagyis ha pont az a személy jelentkezett be, akire az engedély szól, akkor módosíthatja.

8

Ha a Személy értéket kapott és  DKGyűjtFej.MEngedély=MegadottSzemély

és DKGyűjtFej.MEngSzemély # Proc_DKModEng.Személy, akkor meg kell hívni a Proc_HelyettesSzemely eljárást

Ha a Proc_HelyettesSzemely.Helyettes = Proc_DKModEng.Személy értékével, akkor

akkor az Engedély=TRUE, vagyis engedélyezve van, egyébként FALS

(Vagyis ha pont a dokumentumhoz jogosult személy helyettese jelentkezett be, akkor a helyettes is jogosult lesz.)

Proc_HelyettesSzemely hívása:

Bemenő paraméterek

Dátum

SYSDATE

Személy

DKGyűjtFej.MEngSzemély

 

AZ ALÁBBI  RÉSZLEG (MegadottRészleg)

9

Ha a Személy értéket kapott és  DKGyűjtFej.MEngedély=MegadottRészleg és DKGyűjtFej.MEngSzemBes=nincs kitöltve

akkor a le kell futtatni a Proc_ReszlegTag eljárást (lásd alább), és az eljárás eredményét kell átvenni eredménynek.

Proc_ReszlegTag hívása:

Bejövő paraméterek

Részleg

DKGyűjtFej.MEngRészleg

Személy

Proc_DKModEng.Személy

10

Ha a Személy értéket kapott és  DKGyűjtFej.MEngedély=MegadottRészleg és DKGyűjtFej.MEngSzemBes ki van töltve

akkor a le kell futtatni a Proc_ReszlegTag eljárást (lásd alább), ha annak eredménye FALS, akkor vége.

Ha a Proc_ReszlegTag.Engedély= TRUE, akkor le kell futtatni a Proc_SzemelyBesorTag eljárást is.

és ebben az esetben már Proc_SzemelyBesorTag eljárás eredményét kell átvenni eredménynek.

Vagyis, ha a Személy beletartozik ugyan a részlegbe, de ott nincs megfelelő besorolása, akkor nem férhet hozzá a dokumentumhoz.

 

Proc_SzemelyBesorTag hívása:

Bemenő paraméterek:

SzemélyBesor

DKGyűjtFej.MEngSzemBes

Személy

Proc_DKModEng.Személy

 

Proc_ReszlegTag hívása:

Bejövő paraméterek

Részleg

DKGyűjtFej.MEngRészleg

Személy

Proc_DKModEng.Személy

 

A FELELŐS SZEMÉLY

11

Ha a Személy értéket kap és DKGyűjtFej.MEngedély=FelelősSzemély és DKGyűjtFej.MEngSzemBes nincs kitöltve.

akkor kapott Proc_DKModEng.Iktatószám-ot a DKDokFej.IktatóSzám-ban kell megkeresni.

DKDokFej.Személy értékével meg kell hívni a Proc_HelyettesSzemely eljárást.

Ha a Proc_HelyettesSzemely.Helyettes = Proc_DKModEng.Személy, akkor TRUE.

(Vagyis, ha a dokumentumban megadott felelős személy vagy a rendszerdátumnál megadott helyettese lépett be, akkor ők módosíthatják a dokumentumot.)

 

Proc_HelyettesSzemely hívása:

Bemenő paraméterek

Dátum

SYSDATE

Személy

DKDokFej.Személy

12

Ha a Személy értéket kap és DKGyűjtFej.MEngedély=FelelősSzemély és DKGyűjtFej.MEngSzemBes ki van töltve és DKGyűjtFej.RészlegBevitel#Nincs

akkor kapott Proc_DKModEng.Iktatószám-ot a DKDokFej.IktatóSzám-ban kell megkeresni.

DKDokFej.Személy értékével meg kell hívni a Proc_HelyettesSzemely eljárást.

Ha a Proc_HelyettesSzemely.Helyettes = Proc_DKModEng.Személy akkor TRUE az eredmény.

Ha a Proc_HelyettesSzemely.Helyettes # Proc_DKModEng.Személy, akkor le kell futtatni a Proc_SzemelyBesorTag  és a Proc_ReszlegTag eljárásokat

Ha Proc_SzemelyBesorTag  = TRUE és Proc_ReszlegTag = FALS, akkor FALS az eredmény

Ha Proc_SzemelyBesorTag  = FALS és Proc_ReszlegTag = FALS, akkor FALS az eredmény

Ha Proc_SzemelyBesorTag  = FALS és Proc_ReszlegTag = TRUE, akkor FALS az eredmény

Ha Proc_SzemelyBesorTag  = TRUE és Proc_ReszlegTag = TRUE, akkor TRUE az eredmény

 

Vagyis, ha a dokumentumban megadott felelős személy vagy a rendszerdátumnál megadott helyettese lépett be, vagy egy olyan személy, aki a dokumentumban megadott részlegbe tartozik és a besorolása megfelel a személy besorolás szűkítésnek, akkor ő is módosíthatja a dokumentumot.

 

Proc_SzemelyBesorTag hívása:

Bemenő paraméterek:

SzemélyBesor

DKGyűjtFej.MEngSzemBes

Személy

Proc_DKModEng.Személy

 

Proc_ReszlegTag hívása:

Bejövő paraméterek

Részleg

DKDokFej.Részleg

Személy

Proc_DKModEng.Személy

 

Proc_HelyettesSzemely hívása:

Bemenő paraméterek

Dátum

SYSDATE

Személy

DKDokFej.Személy

13

Ha a Személy értéket kap és DKGyűjtFej.MEngedély=FelelősSzemély és DKGyűjtFej.MEngSzemBes ki van töltve és DKGyűjtFej.RészlegBevitel=Nincs

akkor kapott Proc_DKModEng.Iktatószám-ot a DKDokFej.IktatóSzám-ban kell megkeresni.

DKDokFej.Személy értékével meg kell hívni a Proc_HelyettesSzemely eljárást.

Ha a Proc_HelyettesSzemely.Helyettes = Proc_DKModEng.Személy akkor TRUE az eredmény.

Ha a Proc_HelyettesSzemely.Helyettes # Proc_DKModEng.Személy, akkor le kell futtatni a Proc_SzemelyBesorTag  eljárást.

Ha Proc_SzemelyBesorTag  = TRUE, akkor TRUE az eredmény,

Ha Proc_SzemelyBesorTag  = FALS, akkor FALS az eredmény

 

Vagyis, ha a dokumentumban megadott felelős személy vagy a rendszerdátumnál megadott helyettese lépett be, vagy egy olyan személy, akinek a besorolása megfelel a személybesorolás szűkítésnek, akkor ő is módosíthatja a dokumentumot.

 

Proc_SzemelyBesorTag hívása:

Bemenő paraméterek:

SzemélyBesor

DKGyűjtFej.MEngSzemBes

Személy

Proc_DKModEng.Személy

 

Proc_HelyettesSzemely hívása:

Bemenő paraméterek

Dátum

SYSDATE

Személy

DKDokFej.Személy

 

 

A FELELŐS RÉSZLEG

14

Ha a Személy értéket kap és DKGyűjtFej.MEngedély=FelelősRészleg és DKGyűjtFej.MEngSzemBes nincs kitöltve.

 

akkor kapott Proc_DKModEng.Iktatószám-ot a DKDokFej.IktatóSzám-ban kell megkeresni.

A megtalált rekordból a Részleg mező értékével kell meghívni a Proc_ReszlegTag eljárást (lásd alább), és az eljárás eredményét kell átvenni eredménynek.

Proc_ReszlegTag

Bemenő paraméterek

Részleg

DKDokFej.Részleg

Személy

Proc_DKModEng.Személy

15

Ha a Személy értéket kap és DKGyűjtFej.MEngedély=FelelősRészleg és DKGyűjtFej.MEngSzemBes ki van töltve.

 

akkor kapott Proc_DKModEng.Iktatószám-ot a DKDokFej.IktatóSzám-ban kell megkeresni.

A megtalált rekordból a Részleg mező értékével kell meghívni a Proc_ReszlegTag eljárást (lásd alább), és ha annak eredmény FALS, akkor vége az eljárásnak.

Ha a Proc_ReszlegTag.Engedély=TRUE, akkor le kell futtatni a Proc_SzemelyBesorTag eljárást is.

és ebben az esetben már Proc_SzemelyBesorTag eljárás eredményét kell átvenni eredménynek.

Vagyis, ha a Személy beletartozik ugyan a felelős részlegbe, de ott nincs megfelelő besorolása, akkor nem férhet hozzá a dokumentumhoz.

 

Proc_ReszlegTag

Bejövő paraméterek

Részleg

DKDokFej.Részleg

Személy

Proc_DKModEng.Személy

 

Proc_ReszlegTag hívása:

Bejövő paraméterek

Részleg

DKGyűjtFej.MEngRészleg

Személy

Proc_DKModEng.Személy

 

 

Átiktatás vizsgálat

16

Ha a DKDokFej Típus=2, akkor a Dokumentumot nem lehet módosítani.

Ki kell írni a következőt:

A Dokumetumot nem lehet módosítani, mert át lett iktatva a követketkező dokumetumra: ÁtiktDokszám