Proiect Bd1
CUPRINS
Capitolul I. ANALIZA SISTEMULUI INFORMATIONAL EXISTENT________________________________4
1.1. Prezentarea generala a unitatii ______________________4
1.1.1. Scurt istoric________________________________4
1.1.2. Modul de constituire ________________________5
1.1.3. Profilul activitatii si obiectivele unitatii_________6
1.2. Prezentarea sistemului informatic existent____________7
1.3. Analiza mediului extern si a relatiilor acestuia cu Spitalul Judetean
Mehedinti_______________________________________10
1.3.1. Prezentarea relatiilor cu alte firme ___________10
1.3.2. Prezentarea principalelor relatii cu institutiile guvernamentale___________________________11
1.4. Studiul structurii organizatorice ale unitatii__________14
1.4.1. Prezentarea organigramei unitati____________14
1.5. Analiza functionala a activitatii studiate_____________14
1.5.1. Prezentarea succinta a functiuni compartimentului
farmacie_________________________________14
1.5.2. Prezentarea modului de conectare si a relatiilor dintre compartimentul farmacie si celelalte compartimente din unitate________________________________________16
1.5.3. Actele normative in vigoare ce reglementeaza farmacia______________________________________ 17
1.6. Analiza documentelor sau altor surse informationale privind activitatea studiata ____________________________________18
1.7. Prezentarea critica a sistemului informational existent ___20
Capitolul II. PROIECTAREA GENERALA A SISTEMULUI INFORMATIC____________________________26
2.1. Definirea obiectivelor si cerintelor sistemului informatic propus_______________________________________________27
2.2. Proiectarea situatiilor de iesire_______________________29
2.3. Proiectarea bazei informationale_____________________34
2.4.1. Determinarea continutului bazei informationale__34
2.4.2. Definirea entitatilor bazei informationale________35
2.4.3. Codificarea atributelor bazei informationale_____36
2.4. Proiectarea documentelor de intrare__________________37
Capitolul III. PROIECTAREA DE DETALIU A UNITATILOR FUNCTIONALE___________________________39
Proiectarea fisierelor de baza___________________40
3.1.1.Proiectarea fisierelor permanente_________40
3.1.2.Proiectarea fisierelor variabile____________40
Proiectarea prelucrarilor specifice ale unitatilor functionale__________________________________43
3.2.1.Stabilirea ordinii de prelucrare a fisierelor_43
3.2.1.Determinarea unitatilor de prelucrare_____43
3.3.Proiectarea structurii unitatilor de prelucrare_____44
3.3.1. Dialogul cu unitatile de prelucrare________44
3.3.2. Proiectarea iesirilor pe videoformat_______45
3.4.Proiectarea structurii unitatilor de prelucrare_____46
Determinarea modulelor de prelucrare____46
Organigrama de sistem a unitatilor de prelucrare___________________________49
Capitolul IV. ELABORAREA SI TESTAREA PROGRAMULUI INFORMATIC____________________________50
=== CAP4bun ===
Capitolul IV PREZENTAREA PROGRAMULUI INFORMATIC
4.1. PREZENTAREA INTERFETEI UTILIZATOR A PROGRAMULUI
Meniul principal cu submeniul “ INTRARI ” activat :
Meniul principal cu submeniul “ OPERATII ” activat :
Meniul principal cu submeniul “ IESIRE ” activat :
Introducerea datelor privind evidenta medicamentelor:
4.2. PREZENTAREA SITUATIILOR DE IESIRE A PROGRAMULUI
In acest subcapitol vom prezenta principalele situatii de iesire asa cum sunt redate ele de program
4.3. PREZENTAREA PROGRAMULUI SURSA
SET TALK OFF
CLEAR
CLOSE ALL
SET CENTURY ON
SET DATE DMY
DEFINE WINDOW FER1 FROM 0,0 TO 49,101 TITLE "EVIDENTA MEDICAMENTELOR"
DEFINE WINDOW FER2 FROM 0,0 to 49,101
******************************** DEFINIREA MENIULUI *************************************
DEFINE MENU princ
DEFINE PAD OPT1 OF princ PROMPT "INTRARE" AT 4,10
DEFINE PAD OPT2 OF princ PROMPT "OPERATII" AT 4,40
DEFINE PAD OPT3 OF princ PROMPT "IESIRE" AT 4,70
ON PAD OPT1 OF princ ACTIVATE POPUP intr
DEFINE POPUP intr FROM 6,12 TO 8,30
DEFINE BAR 1 OF intr PROMPT "INTRARE MEDICAMENT"
DEFINE BAR 2 OF intr PROMPT "MODIFICARE PRET"
ON SELECTION BAR 1 OF intr DO PR1
ON SELECTION BAR 2 OF intr DO PR11
ON PAD OPT2 OF princ ACTIVATE POPUP oper
DEFINE POPUP oper FROM 6,42 TO 11,63
DEFINE BAR 1 OF oper PROMPT "AFISARE"
DEFINE BAR 2 OF oper PROMPT "VANZARE"
DEFINE BAR 3 OF oper PROMPT "MODIFICARE"
DEFINE BAR 4 OF oper PROMPT "STERGERE"
DEFINE BAR 5 OF oper PROMPT "TEST DE VALABILITATE"
ON BAR 1 OF oper ACTIVATE POPUP afis
DEFINE POPUP afis FROM 6,65 TO 8,85
DEFINE BAR 1 OF afis PROMPT "INTRARILE DINTR-O ZI"
DEFINE BAR 2 OF afis PROMPT "DATE MEDICAMENT"
ON SELECTION BAR 1 OF afis DO PR2
ON SELECTION BAR 2 OF afis DO PR3
ON SELECTION BAR 2 OF oper DO PR4
ON SELECTION BAR 3 OF oper DO PR5
ON SELECTION BAR 4 OF oper DO PR6
ON SELECTION BAR 5 OF oper DO PR7
ON PAD OPT3 OF princ ACTIVATE POPUP ies
DEFINE POPUP ies FROM 6,72 TO 8,80
DEFINE BAR 1 OF ies PROMPT "FOX"
DEFINE BAR 2 OF ies PROMPT "WINDOWS"
ON SELECTION BAR 1 OF ies DO PR8
ON SELECTION BAR 2 OF ies DO PR9
ACTIVATE WINDOW FER1
ACTIVATE MENU princ
DEACTIVATE WINDOW FER1
RETURN
*************************** PROCEDURILE ************************
PROCEDURE PR1
DELETE FILE FIS.IDX
DELETE FILE FIS1.IDX
ACTIVATE WINDOW FER2
CLEAR
SELECT 1
USE MEDIC1
INDEX ON COD TO FIS.IDX
SELECT 2
USE MEDIC2
INDEX ON COD TO FIS1.IDX
SW=" "
@ 4,6 SAY "DORITI SA INTRODUCETI DATE? (D/N)" GET SW PICTURE "X"
READ
CLEAR
DO WHILE UPPER(SW)="D"
SCATTER MEMVAR BLANK
@ 4,6 SAY "INTRODUCETI URMATOARELE DATE:"
@ 5,3 SAY "*******************************************"
@ 9,4 SAY PADR("CODUL MEDICAMENTULUI",42)+":" GET M.COD PICTURE "99999"
@ 11,4 SAY PADR("DENUMIREA MEDICAMENTULUI",42)+":" GET M.DEN PICTURE "XXXXXXXXXXXXXXX"
@ 13,4 SAY PADR("DENUMIREA FURNIZORULUI",42)+":" GET M.DENF PICTURE "XXXXXXXXXXXXXXX"
@ 15,4 SAY PADR("FAX FURNIZOR",42)+":" GET M.FAXF PICTURE "XXXXXXXXXX"
@ 17,4 SAY PADR("TELEFON FURNIZOR",42)+":" GET M.TELEF PICTURE "XXXXXXXXXX"
@ 19,4 SAY PADR("CANTITATEA PRIMITA",42)+":" GET M.CANTF PICTURE "9999"
@ 21,4 SAY PADR("DATA FABRICATIEI MEDICAMENTULUI",42)+":" GET M.DATA_F PICTURE "99/99/99"
@ 23,4 SAY PADR("DATA EXPIRARII MEDICAMENTULUI",42)+":" GET M.DATA_E PICTURE "99/99/99"
@ 25,4 SAY PADR("VALOARE FACTURA",42)+":" GET M.VALF PICTURE "999,999,999"
@ 27,4 SAY PADR("DATA INTRARII",42)+":" GET M.DATA_I PICTURE "99/99/9999"
READ
M.VAL_TVA=M.VALF*0.19
C1=M.COD
D1=M.DEN
CANT1=M.CANTF
M.CANTR=CANT1
V1=M.VALF
APPEND BLANK
GATHER MEMVAR
SELECT 1
GO TOP
SEEK C1
IF FOUND()
CCC=CANT+CANT1
REPLACE CANT WITH CCC
ELSE
SCATTER MEMVAR BLANK
M.COD=C1
M.DEN=D1
M.CANT=CANT1
AD=0
@ 30,6 SAY PADR("INTRODUCETI ADAOSUL COMERCIAL DORIT",42)+":" GET AD PICTURE "999"
READ
M.PR=((V1/CANT1)*(AD/100))*1.19
APPEND BLANK
GATHER MEMVAR
ENDIF
SW=" "
@ 35,6 SAY "DORITI SA MAI INTRODUCETI DATE? (D/N)" GET SW PICTURE "X"
READ
CLEAR
ENDDO
CLEAR
DEACTIVATE WINDOW FER2
CLOSE ALL
RETURN
PROCEDURE PR11
DELETE FILE FIS2.IDX
ACTIVATE WINDOW FER1
CLEAR
SELECT 1
USE MEDIC1
INDEX ON COD TO FIS2.IDX
SW=" "
@ 4,6 SAY " DORITI SA MODIFICATI PRETUL UNUI MEDICAMENT? (D/N)" GET SW PICTURE "X"
READ
DO WHILE UPPER(SW)="D"
CLEAR
V1=0
@ 2,6 SAY "INTRODUCETI CODUL MEDICAMENTULUI:" GET V1 PICTURE "99999"
READ
IF SEEK(V1,"MEDIC1","COD")
@ 5,6 SAY "INFORMATIILE CAUTATE SUNT URMATOARELE:"
@ 6,3 TO 6,50
@ 7,6 SAY PADR("NUME MEDICAMENT",30)+":"
@ 7,38 SAY DEN
@ 9,6 SAY PADR("CANTITATE EXISTENTA IN STOC",30)+":"
@ 9,38 SAY CANT
@ 11,6 SAY PADR("PRET MEDICAMENT",30)+":"
@ 11,38 SAY PR
TASTA=" "
@ 14,6 SAY " DORITI SA MODIFICATI PRETUL? (D/N)" GET TASTA PICTURE "X"
READ
IF UPPER(TASTA)="D"
AD=0
PRF=0
@ 16,6 SAY PADR("INTRODUCETI ADAOSUL COMERCIAL DORIT",45)+":" GET AD PICTURE "999"
@ 17,6 SAY PADR("INTRODUCETI NOUL PRET DE LA FURNIZOR",45)+":" GET PRF PICTURE "9,999,999,999"
READ
P=(PRF*(AD/100))*1.19
REPLACE PR WITH P
@ 18,6 SAY PADR("NOUL PRET ESTE",30)+":" GET PR PICTURE "99,999,999.99"
ELSE
CLEAR
ENDIF
ELSE
@ 5,6 SAY " NU EXISTA MEDICAMENT CU ACEST COD !!"
ENDIF
SW=" "
@ 25,6 SAY " DORITI SA MAI STABILITI UN NOU PRET ? (D/N)" GET SW PICTURE "X"
READ
CLEAR
ENDDO
CLOSE ALL
CLEAR
DEACTIVATE WINDOW FER2
RETURN
PROCEDURE PR2
DELETE FILE FIS3.IDX
ACTIVATE WINDOW FER2
CLEAR
SELECT 2
USE MEDIC2
INDEX ON DATA_I TO FIS3.IDX
SW=" "
@ 4,6 SAY "DORITI INTRARILE DINTR-O ANUMITA ZI? (D/N)" GET SW PICTURE "X"
READ
CLEAR
DO WHILE UPPER(SW)="D"
ZIUA={ / / }
@ 4,6 SAY "INTRODUCETI ZIUA DORITA :" GET ZIUA PICTURE "99/99/9999"
READ
SEEK ZIUA
IF FOUND()
CLEAR
@ 2,36 SAY "INTRARILE DIN "+DTOC(ZIUA)
@ 3,1 TO 5,97 "*"
@ 4,2 SAY " COD * DEN.MEDICAMENT * DEN. FURNIZOR * CANTITATE PRIMITA * VALOARE * DATA EXPIRARII "
I=1
DO WHILE ZIUA=DATA_I
@ 6+I,2 SAY COD PICTURE "99999"
@ 6+I,9 SAY DEN PICTURE "XXXXXXXXXXXXXXX"
@ 6+I,28 SAY DENF PICTURE "XXXXXXXXXXXXXXX"
@ 6+I,53 SAY CANTF PICTURE "9999"
@ 6+I,64 SAY VALF PICTURE "9,999,999,999"
@ 6+I,84 SAY DATA_E PICTURE "99/99/9999"
I=I+1
SKIP
ENDDO
@ 7+I,1 TO 7+I,97 "*"
ELSE
@ 8,6 SAY "NU S-AU REALIZAT INTRARI IN ACEASTA ZI !!!"
ENDIF
SW=" "
@ 35,6 SAY "DORITI SA INTRODUCETI O ALTA ZI? (D/N)" GET SW PICTURE "X"
READ
ENDDO
CLEAR
DEACTIVATE WINDOW FER2
CLOSE ALL
RETURN
PROCEDURE PR3
DELETE FILE FIS10.IDX
DELETE FILE FIS11.IDX
ACTIVATE WINDOW FER2
CLEAR
SELECT 1
USE MEDIC1
INDEX ON DEN TO FIS10.IDX
SELECT 2
USE MEDIC2
INDEX ON DEN TO FIS11.IDX
SELECT 1
SET RELATION TO DEN INTO MEDIC2
SET SKIP TO MEDIC2
SW=" "
@ 4,6 SAY "DORITI LISTA FURNIZORILOR UNUI MEDICAMENT ? (D/N)" GET SW PICTURE "X"
READ
CLEAR
DO WHILE UPPER(SW)="D"
D=" "
@ 2,6 SAY "INTRODUCETI DENUMIREA MEDICAMENTULUI:" GET D PICTURE "XXXXXXXXXXXXXXX"
READ
CLEAR
SEEK D
IF FOUND()
@ 2,20 SAY PADR("DENUMIRE MEDICAMENT",22)+":"
@ 2,44 SAY D
@ 3,20 SAY PADR("CODUL",22)+":"
@ 3,44 SAY COD
@ 4,20 SAY PADR("PRET",22)+":"
@ 4,44 SAY PR
@ 5,1 TO 7,97 "*"
@ 6,2 SAY " DEN. FURNIZOR * DATA INTRARII * CANT. PRIMITA * CANT. RAMASA * DATA EXPIRARII "
I=1
SELECT 2
DO WHILE NOT EOF() .AND. B.DEN=D
@ 7+I,3 SAY B.DENF PICTURE "XXXXXXXXXXXXXXX"
@ 7+I,24 SAY B.DATA_I PICTURE"99/99/9999"
@ 7+I,47 SAY B.CANTF PICTURE "9999"
@ 7+I,68 SAY B.CANTR PICTURE "9999"
@ 7+I,84 SAY B.DATA_E PICTURE "99/99/9999"
I=I+1
SKIP
ENDDO
@ 8+I,1 TO 8+I,97 "*"
ELSE
@ 8,6 SAY "NU EXISTA ACEST MEDICAMENT !!!"
ENDIF
SW=" "
@ 35,6 SAY "DORITI SA INTRODUCETI UN ALT MEDICAMENT ? (D/N)" GET SW PICTURE "X"
READ
CLEAR
ENDDO
CLEAR
DEACTIVATE WINDOW FER2
CLOSE ALL
RETURN
PROCEDURE PR4
DELETE FILE FIS5.IDX
DELETE FILE FIS6.IDX
ACTIVATE WINDOW FER2
SELECT 1
USE MEDIC1
INDEX ON DEN TO FIS5.IDX
SELECT 2
USE MEDIC2
INDEX ON DEN TO FIS6.IDX
SW=" "
@ 4,6 SAY " DORITI SA INREGISTRATI O VANZARE ?(D/N)" GET SW PICTURE "X"
READ
CLEAR
DO WHILE UPPER(SW)="D"
DE=" "
DEF=" "
DI={ / / }
@ 4,6 SAY PADR("INTRODUCETI DENUMIREA MEDICAMENTULUI",36)+":" GET DE PICTURE "XXXXXXXXXXXXXXX"
@ 5,6 SAY PADR("INTRODUCETI DENUMIREA FURNIZORULUI",36)+":" GET DEF PICTURE "XXXXXXXXXXXXXXX"
@ 6,6 SAY PADR("INTRODUCETI DATA INTRARII",36)+":" GET DI PICTURE "99/99/9999"
READ
W=0
GO TOP
DO WHILE NOT EOF() .AND. W=0
IF DE=DEN .AND. DEF=DENF .AND. DI=DATA_I
W=1
@ 9,6 SAY "INFORMATIILE CAUTATE SUNT URMATOARELE :"
@ 10,3 TO 10,50 "*"
@ 12,6 SAY PADR("COD MEDICAMENT",25)+":"
@ 12,33 SAY COD
@ 14,6 SAY PADR("CANTITATE PRIMITA",25)+":"
@ 14,33 SAY CANTF
@ 16,6 SAY PADR("DATA FABRICATIEI",25)+":"
@ 16,33 SAY DATA_F
@ 18,6 SAY PADR("DATA EXPIRARII",25)+":"
@ 18,33 SAY DATA_E
@ 20,6 SAY PADR("CANTITATEA RAMASA ",25)+":"
@ 20,33 SAY CANTR
T=" "
@ 25,6 SAY "DORITI SA INREGISTRATI O VANZAREA LA ACEST MEDICAMENT?(D/N)" GET T PICTURE "X"
READ
IF UPPER(T)="D"
@ 25,6 CLEAR
CV=0
@ 25,6 SAY PADR("INTRODUCETI CANTITATEA VANDUTA",35)+":" GET CV PICTURE "9999"
READ
CANTRR=CANTR-CV
REPLACE CANTR WITH CANTRR
SELECT 1
SEEK DE
CANT1=CANT-CV
REPLACE CANT WITH CANT1
ELSE
CLEAR
ENDIF
ENDIF
SKIP
ENDDO
IF W=0
@ 8,5 SAY " NU EXISTA INTRAREA RESPECTIVA !!"
ENDIF
SW=" "
@ 35,5 SAY " DORITI SA INREGISTRATI O ALTA VANZARE ?(D/N)" GET SW PICTURE "X"
READ
CLEAR
ENDDO
CLEAR
CLOSE ALL
DEACTIVATE WINDOW FER2
RETURN
PROCEDURE PR5
DELETE FILE FIS7.IDX
DELETE FILE FIS8.IDX
ACTIVATE WINDOW FER2
SELECT 1
USE MEDIC1
INDEX ON COD TO FIS7.IDX
SELECT 2
USE MEDIC2
INDEX ON COD TO FIS8.IDX
SW=" "
@ 4,6 SAY " DORITI SA MODIFICATI DATE ?(D/N)" GET SW PICTURE "X"
READ
CLEAR
DO WHILE UPPER(SW)="D"
CD=0
DE=" "
DATAI={ / / }
@ 4,6 SAY PADR("INTRODUCETI CODUL MEDICAMENTULUI",36)+":" GET CD PICTURE "99999"
@ 5,6 SAY PADR("INTRODUCETI DENUMIREA FURNIZORULUI",36)+":" GET DE PICTURE "XXXXXXXXXXXXXXX"
@ 6,6 SAY PADR("INTRODUCETI DATA INTRARII",36)+":" GET DATAI PICTURE "99/99/9999"
READ
W=0
GO TOP
DO WHILE NOT EOF() .AND. W=0
IF CD=COD .AND. DE=DENF .AND. DATAI=DATA_I
W=1
@ 9,6 SAY "INFORMATIILE CAUTATE SUNT URMATOARELE :"
@ 10,3 TO 10,50 "*"
@ 12,6 SAY PADR("DENUMIRE MEDICAMENT",25)+":"
@ 12,33 SAY DEN
@ 14,6 SAY PADR("TELEFON FURNIZOR",25)+":"
@ 14,33 SAY TELEF
@ 16,6 SAY PADR("FAX FURNIZOR",25)+":"
@ 16,33 SAY FAXF
@ 18,6 SAY PADR("CANTITATE PRIMITA",25)+":"
@ 18,33 SAY CANTF
ZZ=CANTF
@ 20,6 SAY PADR("DATA FABRICATIEI",25)+":"
@ 20,33 SAY DATA_F
@ 22,6 SAY PADR("DATA EXPIRARII",25)+":"
@ 22,33 SAY DATA_E
@ 24,6 SAY PADR("VALOARE FACTURA",25)+":"
@ 24,33 SAY VALF
@ 26,6 SAY PADR("VALOARE TVA",25)+":"
@ 26,33 SAY VAL_TVA
@ 28,6 SAY PADR("DATA INTRARII",25)+":"
@ 28,33 SAY DATA_I
T=" "
@ 32,6 SAY "DORITI SA LE MODIFICATI ?(D/N)" GET T PICTURE "X"
READ
IF UPPER(T)="D"
@ 9,6 CLEAR TO 33,6
@ 9,6 SAY "INTRODUCETI NOILE INFORMATII :"
@ 10,3 TO 10,50 "*"
SCATTER MEMVAR BLANK
@ 12,6 SAY PADR("DENUMIRE MEDICAMENT",25)+":" GET M.DEN PICTURE "XXXXXXXXXXXXXXX"
@ 14,6 SAY PADR("TELEFON FURNIZOR",25)+":" GET M.TELEF PICTURE "XXXXXXXXXX"
@ 16,6 SAY PADR("FAX FURNIZOR",25)+":" GET M.FAXF PICTURE "XXXXXXXXXX"
@ 18,6 SAY PADR("CANTITATE PRIMITA",25)+":" GET M.CANTF PICTURE "9999"
@ 20,6 SAY PADR("DATA FABRICATIEI",25)+":" GET M.DATA_F PICTURE "99/9/9999"
@ 22,6 SAY PADR("DATA EXPIRARII",25)+":" GET M.DATA_E PICTURE "99/99/9999"
@ 24,6 SAY PADR("VALOARE FACTURA",25)+":" GET M.VALF PICTURE "999,999,999"
@ 26,6 SAY PADR("VALOARE TVA",25)+":" GET M.VAL_TVA PICTURE "999,999,999"
@ 28,6 SAY PADR("DATA INTRARII",25)+":" GET M.DATA_I PICTURE "99/99/9999"
READ
WW=M.CANTF
GATHER MEMVAR
SELECT 1
SEEK CD
REPLACE CANT WITH CANT-ZZ+WW
ELSE
CLEAR
ENDIF
ENDIF
SKIP
ENDDO
IF W=0
@ 8,5 SAY " NU EXISTA INTRAREA RESPECTIVA !!"
ENDIF
SW=" "
@ 35,5 SAY " DORITI SA MAI MODIFICATI ?(D/N)" GET SW PICTURE "X"
READ
CLEAR
ENDDO
CLEAR
CLOSE ALL
DEACTIVATE WINDOW FER2
RETURN
PROCEDURE PR6
DELETE FILE FIS9.IDX
ACTIVATE WINDOW FER2
SELECT 1
USE MEDIC1
INDEX ON COD TO FIS9.IDX
SW=" "
@ 4,6 SAY " DORITI SA STERGETI UN MEDICAMENT ?(D/N)" GET SW PICTURE "X"
READ
CLEAR
DO WHILE UPPER(SW)="D"
CD=0
@ 4,6 SAY "INTRODUCETI CODUL MEDICAMENTULUI :" GET CD PICTURE "99999"
READ
IF SEEK(CD,"MEDIC1","COD")
@ 7,6 SAY "INFORMATIILE CAUTATE SUNT URMATOARELE :"
@ 8,3 TO 8,50 "*"
@ 10,6 SAY PADR("DENUMIRE MEDICAMENT",30)+":"
@ 10,38 SAY DEN
@ 12,6 SAY PADR("CANTITATE EXISTENTA IN STOC",30)+":"
@ 12,38 SAY CANT
@ 14,6 SAY PADR("PRET",30)+":"
@ 14,38 SAY PR
T=" "
@ 28,6 SAY "DORITI SA LE STERGETI ?(D/N)" GET T PICTURE "X"
READ
IF UPPER(T)="D"
DELETE
PACK
WAIT WINDOW "INFORMATIILE AU FOST STERSE !!"
CLEAR
ELSE
CLEAR
ENDIF
ELSE
@ 8,5 SAY " NU EXISTA MEDICAMENT CU ACEST COD !!"
WAIT WINDOW "OK"
CLEAR
ENDIF
SW=" "
@ 8,5 SAY " DORITI SA MAI STERGETI UN MEDICAMENT ?(D/N)" GET SW PICTURE "X"
READ
CLEAR
ENDDO
CLEAR
CLOSE ALL
DEACTIVATE WINDOW FER2
RETURN
PROCEDURE PR7
DELETE FILE FIS4.IDX
ACTIVATE WINDOW FER2
CLEAR
SELECT 2
USE MEDIC2
INDEX ON DATA_I TO FIS4.IDX
SW=" "
@ 4,6 SAY "DORITI LISTA MEDICAMENTELOR EXPIRATE ? (D/N)" GET SW PICTURE "X"
READ
CLEAR
DO WHILE UPPER(SW)="D"
GO TOP
TEST=0
DO WHILE NOT EOF() .AND. TEST=0
IF DATA_E < DATE()
TEST=1
ENDIF
SKIP
ENDDO
IF TEST=1
@ 2,36 SAY "LISTA MEDICAMENTELOR EXPIRATE"
@ 3,1 TO 5,97 "*"
@ 4,2 SAY " COD * DEN.MEDICAMENT * DEN. FURNIZOR * CANT. PRIMITA * CANT. EXPIRATA * DATA INTRARII "
I=1
GO TOP
DO WHILE NOT EOF()
IF DATA_E < DATE()
@ 6+I,2 SAY COD PICTURE "99999"
@ 6+I,9 SAY DEN PICTURE "XXXXXXXXXXXXXXX"
@ 6+I,28 SAY DENF PICTURE "XXXXXXXXXXXXXXX"
@ 6+I,51 SAY CANTF PICTURE "9999"
@ 6+I,68 SAY CANTR PICTURE "9999"
@ 6+I,84 SAY DATA_I PICTURE "99/99/9999"
I=I+1
ENDIF
SKIP
ENDDO
@ 7+I,1 TO 7+I,97 "*"
ELSE
@ 8,6 SAY "NU EXISTA MEDICAMENTE EXPIRATE !!!"
ENDIF
SW=" "
@ 35,6 SAY "DORITI SA REALIZATI TESTUL DIN NOU ? (D/N)" GET SW PICTURE "X"
READ
ENDDO
CLEAR
DEACTIVATE WINDOW FER2
CLOSE ALL
RETURN
PROCEDURE PR8
DEACTIVATE MENU
RETURN
PROCEDURE PR9
QUIT
RETURN
=== Proiect ===
CUPRINS
Capitolul I. ANALIZA SISTEMULUI INFORMATIONAL EXISTENT________________________________4
1.1. Prezentarea generala a unitatii ______________________4
1.1.1. Scurt istoric________________________________4
1.1.2. Modul de constituire ________________________5
1.1.3. Profilul activitatii si obiectivele unitatii_________6
1.2. Prezentarea sistemului informatic existent____________7
1.3. Analiza mediului extern si a relatiilor acestuia cu Spitalul Judetean
Mehedinti_______________________________________10
1.3.1. Prezentarea relatiilor cu alte firme ___________10
1.3.2. Prezentarea principalelor relatii cu institutiile guvernamentale___________________________11
1.4. Studiul structurii organizatorice ale unitatii__________14
1.4.1. Prezentarea organigramei unitati____________14
1.5. Analiza functionala a activitatii studiate_____________14
1.5.1. Prezentarea succinta a functiuni compartimentului
farmacie_________________________________14
1.5.2. Prezentarea modului de conectare si a relatiilor dintre compartimentul farmacie si celelalte compartimente din unitate________________________________________16
1.5.3. Actele normative in vigoare ce reglementeaza farmacia______________________________________ 17
1.6. Analiza documentelor sau altor surse informationale privind activitatea studiata ____________________________________18
1.7. Prezentarea critica a sistemului informational existent ___20
Capitolul II. PROIECTAREA GENERALA A SISTEMULUI INFORMATIC____________________________26
2.1. Definirea obiectivelor si cerintelor sistemului informatic propus_______________________________________________27
2.2. Proiectarea situatiilor de iesire_______________________29
2.3. Proiectarea bazei informationale_____________________34
2.4.1. Determinarea continutului bazei informationale__34
2.4.2. Definirea entitatilor bazei informationale________35
2.4.3. Codificarea atributelor bazei informationale_____36
2.4. Proiectarea documentelor de intrare__________________37
Capitolul III. PROIECTAREA DE DETALIU A UNITATILOR FUNCTIONALE___________________________39
Proiectarea fisierelor de baza___________________40
3.1.1.Proiectarea fisierelor permanente_________40
3.1.2.Proiectarea fisierelor variabile____________40
Proiectarea prelucrarilor specifice ale unitatilor functionale__________________________________43
3.2.1.Stabilirea ordinii de prelucrare a fisierelor_43
3.2.1.Determinarea unitatilor de prelucrare_____43
3.3.Proiectarea structurii unitatilor de prelucrare_____44
3.3.1. Dialogul cu unitatile de prelucrare________44
3.3.2. Proiectarea iesirilor pe videoformat_______45
3.4.Proiectarea structurii unitatilor de prelucrare_____46
Determinarea modulelor de prelucrare____46
Organigrama de sistem a unitatilor de prelucrare___________________________49
Capitolul IV. ELABORAREA SI TESTAREA PROGRAMULUI INFORMATIC____________________________50
Capitolul I ANALIZA SISTEMULUI INFORMATIONAL EXISTENT
1.1 PREZENTAREA GENERALA A UNITATII
1.1.1 SCURT ISTORIC
Medicina este arta si stiinta de a prevenii boala, de a alina suferinta si de a vindeca.
Primele date asupra medicinii in tara noastra sunt deja din neolitic si din epoca bronzului, deoarece descoperirea craniului pune in evidenta existenta pe atunci a practicii medicale.
Abia in secolul al XVIII –lea odata cu izgonirea turcilor se poate vorbi de introducerea si aplicarea pe o scara din ce in ce mai larga si organizata unor masuri adecvate si eficiente de ocrotire a sanatatii. Acestea nu apar intamplator, ci ca o necesitate imperios ceruta de realitatile de fiecare zi.
Primele masuri si reforme sanitare se iau in Mehedinti dupa legea aulica din 1752 si 1770.
In secolul al XVIII –lea apar pentru prima data medici cu diploma si asistam la aparitia unor forme organizatorice menite sa asigure o asistenta medicala cat mai adecvata.
Primul spital cunoscut sub numele de Spitalul Central mai tarziu Spitalul de Stat avea capacitatea de 400 de bolnavi pe an iar in 1940 avea 14 paturi deservite de cinci medici si zece cadre medicale.
Ca unitati spitalicesti teritoriale au existati in secolul al XIX –lea pe langa spitalele infiintate in secolul precedent un spital de garnizoana si doua institutii de copii.
Tot o consecinta a initiativei particulare este infiintarea a Asociatiei Voluntarilor de Salvare functionand datorita ajutorului material al cetatenilor orasului.
In anul 1982 se construieste in Mehedinti Spitalul Judetean in sistem pavilionar, ce urma sa deserveasca populatia judetului, constructia satisfacand cerintele acelor vremuri, fiind cea mai moderna institutie sanitara a provinciei.
Dupa anul 1989 Spitalul Judetean Mehedinti a fost modernizat avand capacitatea de 590 de paturi si un numar de aproape 100 de medici.
-provenienta capitalului
La 20 noiembrie 1998 prin H.G. nr. 808/98 se reinvesteste in modernizarea spitalului si echipamentului tehnic si medicamentos in tratarea bolnavilor.
Spitalul Judetean Mehedinti este persoana juridica romana, se organizeaza si functioneaza in conformitate cu dispozitiile legale in vigoare si cu statutul propriu prevazut in anexa nr.1.
Capitalul social al Spitalului Judetean Mehedinti este detinut in intregime de statul roman.
Capitalul social al Spitalul Judetean Mehedinti la data de 30 aprilie 2000 este de 14.686.800 mii lei, fiind integral varsat. Capitalul social se constituie prin preluarea activului si pasivului Directiei Sanitare a Judetului Mehedinti, care se desfiinteaza, pe baza bilantului contabil la data de 30 aprilie 2000, care va fi actualizat, conform legii.
Spitalul Judetean din cadrul Directiei Sanitare a Judetului Mehedinti se afla in coordonarea Ministerului Sanatatii.
Actiunile Spitalului Judetean Mehedinti sunt detinute in totalitate de catre stat, care isi exercita drepturile si obligatiile in calitatea sa de actionar unic prin Ministerul Sanatatii.
-dinamica si structura angajatilor
Inainte de 1989 Spitalul Judetean Mehedinti avea aproximativ 1020 angajati.Trecerea la economia de piata a afectat si acest sector,avand loc restructurari masive, ajungandu-se in prezent la aproximativ 870 angajati, dintre care 70 de medici, 200 asistente.
1.1.2. Modul de constituire
Spitalul Judetean Mehedinti este persoana juridica romana, unitate publica cu capital integral de stat.
Capitalul social este de 14.686.800 mii lei.
Capitalul social al Spitalului Judetean Mehedinti, impartit in 14.686,8 mii lel actiuni nominative, fiecare actiune fiind in valoare nominala de 100.000 lei.
Spitalul Judetean Mehedinti isi are sediul in Municipiul Dr.Tr.Severin cu adresa str. Splai Mihai Viteazu nr.19.
1.1.3. Profilul activitatii si obiectivele unitatii
obiectivele unitatii
Spitalul Judetean printre multele obiective are:
ingrijirea si tratarea bonavilor;
pastreaza prepara si difuzeaza medicamente de orice natura si sub orice forma potrivit prevederilor Farmacoopei Romane in vigoare si conform nomenclatorului aprobat de Ministerului Sanatatii;
depoziteaza produsele conform normelor in vigoare tinandu-se seama de natura si propietatile lor fizico-chimice;
asigura primul ajutor bolnavilor;
asigura controlul prin:
controlul preventiv
verificarea organoleptica si fizica
verificarea operatiilor finale
analiza calitativa a medicamentelor la masa de analiza
asigura educatia sanitara a populatiei in domeniul medicamentului;
informarea personalului medico-sanitar;
prescrierea, prepararea si eliberarea medicamentelor se face potrivit normelor stabilite de Ministerul Sanatatii.
– prezentarea tendintelor unitatii in viitor
Pentru viitor unitatea isi propune cresterea capacitatii de tratare si ingrijire a bolnavilor, perfectionarea echipamentului tehnic si implicit cresterea graduliui de profesionalism a medicilor si a cadrelor medicale din unitate prin colaborarea cu alte spitale atat din tara cat sin strainatate.
– prezentarea pe scurt a produselor
Medicamentele din stoc sunt impartite in clase si anume:
clasa medicamente;
clasa materiale sanitare;
clasa medicamente si materiale sanitare intrate prin Banca Mondiala;
clasa medicamente si materiale sanitare intrate prin programul PHARE;
clasa medicamente si materiale sanitare din donatii;
alte clase ce pot fi formate cand se intocmeste nomenclatorul de medicamente.
1.2. Prezentarea sistemului informatic existent
Sistemul informatic existent in cadrul spitalului este destul de bine pus la punct. Unitatea are un oficiu de calcul in care calculatoarele sunt legate in retea, care este conectata cu calculatorul din biroul directorului general al unitatii.
Firma este dotata cu 64 calculatoare si 50 de imprimante, 17 calculatoare gesindu-se la oficiul de calcul, iar 3 calculatoare se afla la farmacie.
Asa cum am prezentat anterior, calculatoarele sunt conectate in retea de tip PER TO PER si utilizeaza urmatorul soft :
– sisteme de operare : MS-Dos si Windows ’98
utilitarele de birou: Microsoft Word ‘97-2000
programe economice
Sunt realizate si concepute in cadrul unitatii in mediul de programare FoxPro:
Evidenta medicamentelor
Emiterea si evidenta facturilor
Evidenta bolnavilor si furnizorilor
Balanta de verificare
Evidenta si gestiunea echipamentelor de specialitate
Salarii
In continuare vom prezenta componentele sistemului informatic
existent :
PC PENTIUM la 200 MHz
HARD DISK 2,3 GB
Memoria RAM : 16 MB
CD ROM 12X
Calculatorul este partitionat in doua partitii C si D.
Monitorul color SVGA, 14”, cu reglaj analogic
Calculatorul este configurat cu sistemul de operare WINDOWS ’98, avand integrat pachetul OFFICE ’97
PC PENTIUM la 266 MHz
HARD DISK 4,3 GB
Memoria RAM : 16 MB
CD ROM 12X
Calculatorul are o singura partitie C
Monitorul color SVGA, 14”, cu reglaj analogic
Calculatorul este configurat cu sistemul de operare WINDOWS ’98, avand integrat pachetul OFFICE ’97
PC PENTIUM II la 400 MHz
HARD DISK 8 GB
Memoria RAM : 64 MB
CD ROM 48X
Calculatorul este partitionat in doua partitii C si D.
Monitorul color SVGA, 15”, cu reglaj digital
Calculatorul este configurat cu sistemul de operare WINDOWS ’98, avand integrat pachetul OFFICE ’97
PC PENTIUM III la 5000 MHz
HARD DISK 10 GB
Memoria RAM : 64 MB
CD ROM 50X
CD REW HP: 8X
Calculatorul are o singura partitie C
Monitorul color SVGA, 15”, cu reglaj digital
Calculatorul este configurat cu sistemul de operare WINDOWS ’98, avand integrat pachetul OFFICE ’97
Acest calculator este cxel mai performant pe el fiind instalate
toate programele spitalului, iar celelalte fiind folosite ca statii de lucru pentru culegerea de informatii. Calculatorul mai este dota si cu o unitate pentru inscriptionat CD ROM –uri, pe care sunt salvate datele periodic pentru o mai mare siguranta.
IMPRIMANTE
Tip OKI Microline 321
Format A3, A4
Cap de inregistrare matricial cu noua ace
Tip EPSON – FX 11700
Format A3, A4
Cap de inregistrare matricial cu noua ace
Tip SEIKOSHA MP 5300 AI
Format A3, A4
Cap de inregistrare matricial cu noua ace
Tip HPEWLET – PACKARD – 6 LPCL
Format A4, A5
Imprimare laser
Tip NEWLET PACKARD 690 C
Format A4, A5
Imprimare cu jet de cerneala
Tip MP – 895 CXI
Format A4, A5
Imprimare cu jet de cerneala
La nivelul unitatii existand oficiul de calcul toate evidentele se tin pe calculator si majoritatea programelor ruleaza sub limbajul FOX PRO.
Echipamentul mai sus mentionat trebuie instalate si in cadrul farmaciei, farmacistul trebuind sa opereze datele de intrare (note de intrare – receptie) si datele de iesire.
1.3.Analiza mediului extern si a relatiilor acesteia cu Spitalul Judetean Mehedinti
1.3.1. Prezentarea relatiilor cu alte firme
FURNIZORII
Cei mai importanti furnizori sunt cei de la care unitatea face aprovizionarea cu medicamente si echipament de specialitate pentru principala activitae, asigurarea ingrijirii bolnavilor. Pe langa acestia, coexista furnizorii legati de cheltuielile generale ale unitatii: furnizori de apa, alimente , electricitate, etc..
Principalii furnizori:
CENTROFARM S.A.
COCO COM S.R.L.
GIG FARM S.R.L.
S.C. LOTUS S.A.
RENEL Dr. Tr. Severin
S.C. INTIM S.R.L.
S.C. SOREX PROD S.R.L.
Intre firme si principalii furnizori exista o buna comunicare in
cadrul careia se realizeaza contracte cu furnizorii ce se pot extinde peste un an de zile. In cadrul unitatii se realizeaza comenzile de aprovizionare din tara pe baza necesarului de medicamente intocmit de farmacie.
Majoritatea platilor catre furnizori se fac prin ordine de compensare, dar se mai fac plati si cu file CEC sau numerar (foarte rar).
BANCI
Principala banca cu care coopereaza Spitalul Judetean Mehedinti este Banca Comerciala Romana – Filiala Mehedinti banca la care unitatea are cont curent de disponibilitati.
Principalele operatiuni derulate din contul de la BCR sunt:
operatiuni de incasari / plati pe baza fole de CEC, bilet la ordin respectiv ordin de plata;
depuneri / ridicari de numerar evidentiate in urmatoarele documente foaie de varsamant / extras de cont.
In afara de BCR, firma mai are colaborari cu Banca Romana de
Dezvoltare si Banca Nationala unde are deschis un cont curent la vedere.
1.3.2.Prezentarea principalelor relatii cu institutiile guvernamentale
Relatiile dintre Spitalul Judetean Mehedinti si institutiile guvernamentale ale statului sunt determinate in primul rand de obligatiile fiscale ale unitatii catre statul roman.
Principalele relatii sunt legate de Trezoreria statului, Bugetul local, Bugetul statului, Bugetul Asigurarilor Sociale de stat, Bugetul Asigurarilor Sociale de sanatate prin organismele teritoriale ale statului.
Trezoreria statului
Reprezinta organul mijlocitor intre unitate si stat, prin care se deruleaza toate incasarile de la institutiile statului / plati catre stat. Pentru a putea efectua operatiunii de incasare de la Trezorerie unitatea trebuie sa dobandeasca certificat de negrevare, cum ca si-a achitat toate obligatiile catre stat.
Operatiunile de trezorerie ale unitatii nu sunt directe, ci acestea se realizeaza prin intermediul bancii la care unitatea are contul curent.
Bugetul Local
Bugetul local este reprezentat de organismul Directia de Impozite si Taxe Mehedinti care colecteaza totalitatea impozitelor si taxelor care se prevaleaza Bugetului Local:
impozitul pe salarii
taxa pentru mijloacele de transport
alte impozite colectate de Bugetul Local
Pentru aceste impozite si taxe se depun la Directia de Impozite si
Taxe Mehedinti declaratii pana la 30 ianuarie a fiecarui an.
Bugetul Statului
Bugetul Statului este reprezentat in teritoriu de Administratia Financiara Mehedinti din cadrul Directiei Generale a Finantelor Publice si a Controlului Financiar de Stat Mehedinti.
La sediul Administratiei Financiare Mehedinti se depun urmatoarele documente :
declaratie privind obligatiile de plata la Bugetul de Stat
decont privind taxa pe valoare adaugata
Aceste documente se depun si se platesc lunar pana la 25 a lunii
urmatoare.
La sfarsitul anului, unitatea trebuie sa depuna fisa fiscala numarul 1 pentru veniturile din salarii la functia de baza pentru fiecare angajat conform OG 73/1999.
Bugetul Asigurarilor Sociale de Stat
Unitatea trebuie sa depuna tot la sediul Administratiei Financiare Mehedinti o declaratie lunara privind obligatiile de plata catre Bugetul Asigurarilor Sociale de Stat, declaratie care trebuie depusa, precum si platite obligatiile pana la 20 ale lunii urmatoare, reprezentand contributiile la asigurari sociale si anume:
contributia unitatii la asigurarii sociale (30% si 35% la fondul de salarii)
contributia personalului la pensia suplimentara (5%).
Bugetul Asigurarilor Sociale de Sanatate
Se depune declaratia privind obligatiile de plata la fondul initial al
asigurarilor sociale de sanatate:
contributia unitatii la asigurarile sociale de sanatate (7% la fondul de salarii)
contributia personalului la asigurarile sociale de sanatate (7% la fondul de salarii)
Depunerea, precum si plata obligatiilor se face pana la 20 ale lunii
urmatoare.
Agentia pentru Ocupare a Fortei de Munca Mehedinti si Agentia pentru Ocupare si Formare Profesionala
Catre aceste institutii firma are obligatii privind fondul de somaj:
contibutia unitatii la fondul de somaj (5% la fondul de salarii)
contibutia personalului la fondul de somaj (1% la salariul de baza)
Fondul Special de Solidaritate a Persoanelor cu Handicap
Acest fond se determina prin aplicarea procentului de 3% la
fondul de salarii si reprezinta contributia unitatii. Se depune trimestrial o declaratie de plata la Inspectoratul Teritorial de solidaritate a persoanelor cu handicap .
Fondul Special de Sustinere a Invatamantului de Stat
Ca si fondul de solidaritate, Fondul de Sustinere a Invatamantului
de stat se calculeaza prin aplicarea procentului de 2% la fondul de salarii si se prevaleaza la Bugetul Local
1.4.Studiul structurii organizatorice ale unitatii
1.4.1.Prezentarea organigramei unitatii
1.5. Analiza functionala a activitatii studiate
1.5.1.Prezentarea succinta a functiunii compartimentului farmacie
– activitatea compartimentului studiat
Farmacia are ca obiect de activitate asigurarea asistentei cu medicamente. Ea functioneaza ca :
farmacii de circuit deschis (publice) care asigura asistenta cu medicamente a populatiei, a unitatilor sanitare fara farmacii, precum si a unor institutii si organizatii care au actiuni cu caracter sanitar;
farmacii cu circuit inchis care au laboratoare de produse sterile ce asigura asistenta cu medicamente in unitatile sanitare.
Spatiul farmaciilor de circuit inchis va fi astfel organizat, incat
acestea sa cuprinda obligatoriu incaperile destinate exclusiv prepararii si sterilizarii medicamentelor injectabile precum si prepararii apei distilate.
Conditiile de spatiu si dotare sunt cele stabilite de Ministerul Sanatatii.
Medicamentele si celelalte produse farmaceutice se aranjeaza in ordine alfabetica, grupate pe forme farmaceutice si in raport cu calea de administrare (separate pentru uz intern si separate pentru uz extern).
Programul de functionare al farmaciilor se fixeaza in functie de necesitatile de asistenta cu medicamentele si de incadrare a unitatilor cu personal. Programul farmaciilor de circuit inchis se stabileste de catre conducerea unitatii sanitare in care functioneaza si dupa caz cu avizul Oficiului Farmaceutic. Pentru asigurarea asistentei cu medicamente in cazuri de urgente, in afara programului de serviciu, farmaciile pot organiza garda.
La aprovizionarea farmaciilor se va tine seama si de necesitatea constituirii unui stoc de rezerva, care sa sigure o desfasurare continua si in bune conditii a activitatii acesteia.
– sarcinile activitatii realizate de compartimentul studiat
Farmacistul gestionar are in principal urmatoarele sarcini:
organizeaza spatiul de munca pentru realizarea unui flux tehnologic corespunzator specificului activitatii;
intocmeste planul de munca si repartizeaza sarcinile pe oameni;
raspunde de buna functionare a farmaciei;
organizeaza receptia cantitativa si calitativa a medicamentelor si a celorlalte produse farmaceutice intrate in farmacie;
colaboreaza cu unitatile sanitare din teritoriu;
organizeaza proctica studentilor si a elevilor repartizati pentru stagiu in farmacie.
Farmacistul are in principal urmatoarele sarcini:
supravegheaza si coordoneaza activitatea de eliberare a produselor farmaceutice;
asigura si raspunde de depozitarea, conservarea si gestionarea medicamentelor toxice si stupefiante;
participa la receptiacantitativa a medicamentelor;
executa toate lucrarile incredintate de catre farmacistul gestionar.
1.5.2.Prezentarea modului de conectare si a relatiilor dintre compartimentul farmacie si celelalte compartimente din unitate
Compartimentele cu care intra in legatura compartimentul farmacie sunt:
compartimentul financiar contabil
biroul aprovizionare
sectii – medici
biroul administrativ.
Intre acestea exista fluxuri de informatii (documente) redate prin reprezentarea diagramei de relatii:
Explicarea diagramei de relatii:
biroul aprovizionare – farmacie:
pe baza constatarilor si evidentei din lunile anterioare se calculeaza in consum mediu de medicamente pe baza caruia se emit camenzi catre furnizori, insotite de declaratii pentru taxa drum
farmacie – birou aprovizionare:
in momentul aprovizionarii farmaciei, farmacistul sef accepta la plata avizul pe care il trimite apoi biroului aprovizionare
farmacie – sectii
farmacie trimite la fiecare sectie medicamentele pe baza condicii de prescriptie
farmacie – contabilitate
la sfarsitul lunii se vor preda la contabilitate fisele limita de medicamente cu consumul respectiv
farmacie – oficiul de calcul
farmacia trimite documentele oficiului de calcul spre prelucrare
1.5.3. Actele normative in vigoare ce reglementeaza evidenta medicamentelor intr-un spital
-LEGEA CONTABILITATII nr 82/1991 prin care se reglementeaza inregistrarea veniturilor in evidenta contabila, in clasa 7 de conturi.
-ORDONANTA GUVERNULUI nr 24/1994 –reglementeaza prevederile Farmacopeei Romane.
-ORDONANTA DE URGENTA A GUVERNULUI nr 135 din 12 septembrie 1999 privind nomenclatorul aprobat de Ministerul Sanatatii.
1.6. Analiza documentelor sau altor surse informationale privind activitatea studiata
1.6.4. Reprezentarea fluxului informational
Intocmirea flow-chart
1.6.5. Descirierea fluxului informational privind evidenta medicamentelor
Medicamentele dintr-o farmacie urmeaza un anumit circuit. Predarea medicamentelor catre sectiise face pe baza condicii de prescriptie a programului stabilit de farmacie. O mentiune speciala se va face asupra modificarilor pe care le-a facut farmacia. Odata preluate de la farmacia spitalului, medicamentele se pastreaza, sub cheie la oficiul pentru surori al sectiei.
Medicamentele fiecarui bolnav vor fi distribuite pe priza (tablete si fiolaj) in mici cutii goale de plastic pe care se afla etichete cu ora distribuirii.
Administrarea medicamentelor se va face sub supravegherea medicului, de catre asistenta de tura, in cantitatile, ritmul si calea de administrare fixata de medicul curant.
Administrarea solutiilor perfuzabilein spital revine personalului din sectii sub controlul si indrumarea medicului. Se va confrunta eticheta de pe flacon; se va controla termenul de valabilitate al solutiei.
Medicamentele de orice fel neconsumate de bolnavii internati in spital sau sectii de boli contagioase nu se vor restituii farmaciei ci vor fi depuse la aparatul sectiei respective, intrarea lor inregistrandu-se in condici de aparat. Medicamentele depuse la aparat vor fi utilizate pe masura nevoilor in sectie unde se afla depozitate. Restul medicamentelor for fi supuse casarii.
Situatiile intocmite pe baza datelor culese sunt de mai multe tipuri:
dupa primirea facturii si inregistrarea datelor se intocmeste un fel de copie a documentului cu datele si cu valoarea totala a intrari pentru verificarea corectitudini datelor culese;
dupa culegerea datelor din condica se intocmeste lista cu medicamente care se ataseaza la original.La culegerea datelor din condica se inregistreaza si date despre unitate ,sectia,medicul ce a prescris condica;
lista tuturor intrarilor dintr-o anumita zi ;
centralizatori iesiri pe unitate pe o anumita zi;
lista documentelor de intrare (facturi) cu valoarea fiecaruia si valoarea pe furnizor;
situatia iesirilor, situatia valorica, cu consumul pe medic – sectie – unitate;
lista cu stocul actual;
stocul medicamentelor de la inceputul unei luni;
lista medicamentelor cu stocul 0;
lista medicamentelor cu garantii expirate;
balanta cantitativ – valorica privind stocul de la inceputul perioadei.
1.7. Prezentarea critica a sistemului informational existent
In ultimii ani Spitalul Judetean Mehedinti a alocat fonduri pentru modernizarea si eficientizarea sistemului informational in unitate, prin inlocuirea echipamentelor informatice existente cu altele mai performante.
Fondurile alocate au fost insuficiente pentru achizitionarea tuturor echipamentelor necesare desfasurarii in conditii optime a activitatii in unitate.
Se poate remarca la prima vedere lipsa unei retele unice care sa cuprinda toate calculatoarele din unitate indiferent de compartimentul la care se afla acestea. Astfel prin implementarea unei retele care sa conecteze toate calculatoarele calculatoarele s-ar putea evita efectuarea in paralel a unor operatii de catre diferite compartimente si s-ar putea elimina timpii suplimentari necesari pentru transferarea si instalarea datelor de pe calculatoarele unui compartiment pe cele ale unui alt compartiment.
Spre exemplu in felul acesta Serviciul Contabilitate ar putea accesa direct o serie de informatii si situatii intocmite de Oficiul de Calcul fara a mai fi nevoie de transferul acestora pe un suport de memorie extern prin intermediul caruia sa se poata realiza transmiterea datelor.
Numarul redus de personal de specialitate la Oficiul de Calcul si la Compartimentul financiar-contabil, in conditiile existentei unui volum mare de date ce trebuie prelucrate si analizat, ar putea fi considerat un alt punct slab al intreprinderii.
Extinderea conectarii la reteaua Internet ar crea posibilitatea obtinerii unor informatii suplimentare necesare in desfosurarea activitatii unitatii.
S-ar impune inlocuirea utilajelor existente cu altele mai performante, ceea ce ar duce la cresterea productivitatii muncii.
Capitolul II PROIECTAREA GENERALĂ A SISTEMULUI INFORMATIC
2.1. DEFINIREA OBIECTIVELOR SISTEMULUI INFORMATIC PROPUS
2.1.1. OBIECTIVE GENERALE
Obiectivele generale ale unui sistem informatic pot fi:
Obiective de conducere
Obiective funcționale
Obiective de conducere (manageriale):
Creșterea performanței (reflectata prin distribuirea medica mentelor, organizarea si controlul calitatiii medicamentelor, depozitarea produselor conform normelor in vigoare)
Reducerea costurilor serviciilor
Prescrierea, prepararea si eliberarea corecta a medicamentelor
Creșterea calității serviciilor
Sporirea răspunderii și a cointeresării angajaților
Permanentizarea relațiilor contractuale cu furnizorii și a relatiiloor cu sectiile
Asigurarea conducerii pentru modernizarea unității
Obiective funcționale
Obiective informaționale
Realizarea celei mai potrivite și operative metode de culegere a datelor;
Controlul rezultatelor unitatii prin analize economico-financiare aprofundate, urmărind creșterea performanțelor și informarea oportună a decidenților;
Îmbunătățirea fluxurilor și circuitele informaționale;
Fundamentarea deciziilor pe baza informațiilor pertinente;
Furnizarea selectivă a informațiilor de excepție,
Furnizarea informațiilor sub forme adecvate;
Scăderea timpului de răspuns.
Obiective tehnologice
Vizează modernizarea și îmbunătățirea echipamentului tehnic medical.
Obiective informatice
Adoptarea unor soluții performante de realizare a produselor informatice, în special prin compartimentul specializat în informatică , dar și prin achiziționarea și adaptarea de produse-program create de firme specializate;
Utilizarea rațională și eficientă a tehnicii de calcul;
Utilizarea LAN-urilor astfel să se realizeze o prelucrare distribuită a datelor;
Asigurarea securității datelor în procesul de prelucrare.
Obiective specifice
Această categorie de obiective urmăresc rezolvarea unor probleme dependente strict de activitatea de bază și cea auxiliară. Astfel pot fi identificate:
Obiective specifice activității de bază;
Obiective specifice activității auxiliare.
Obiectivele specifice activității de bază:
Reducerea cheltuielilor pentru depozitare;
Respectarea consumurilor specifice;
Creșterea atributiilor farmaciei.
Obiectivele specifice activității auxiliare:
Reducerea costurilor legate de pastrarea prepararea si difuzarea medicamentelor.
În cazul Spitalul Judetean Mehedinti, nu se poate vorbi de o împărțire a activităților în activități de bază și activități auxiliare.
2.2. PROIECTAREA SITUATIILOR DE IESIRE
Situațiile de ieșire aferente temei propuse sunt:
situatii intocmite pe perioade de 10 zile, lunar, semestrial sautrimestrial :
– Condica de prescriptii medicamente si materiale sanitare;
– Balanta cantitatii-valorica.
CONDICA DE PRESCRIPTII MEDICAMENTE SI MATERIALE SANIARE
Semnatura si parafa medicului Am eliberat Am primit
Loc de obținere: Financiar-contabilitate
Număr de exemplare: 1
Destinația: Sectii
Frecvența: zilnic
Dispozitiv/periferic de ieșire:
Balanta de verificare
Loc obtinere : Serviciul Financiar-Contabil
Destinatia : Serviciul Financiar-Contabil , SPITALUL JUDTEAN MEHEDINTI
Numar de exemplare : 2
Frecventa : Lunar
Dispozitiv / Periferic de iesire :
Situatii intocmite lunar:
stoc actual;
stoc la inceput de luna;
stocuri 0;
garantii expirate.
Proiectarea situatiilor de iesire rezultate din program
Intrarile din ziua /ll/anul
************************************************************** Cod * Denumire * Denumire * Cantitate * Valoare * Data *
* * * Furnizor * Primita * * Exp. *
************************************************************** * * * * * *
*************************************************************
Lista medicamente expirate (valabilitate)
************************************************************** Cod * Denumire * Denumire * Data * Cantitate * Cantitate *
* * * Furnizori * Intrari * Primita * Expirata *
************************************************************** * * * * * *
*************************************************************
Denumire medicament:
Cod:
Pret:
******************************************************************
* Denumire * Data * Cantitate * Valoare * Data *
* Furnizor * Intrarii * Primita * * Expirarii *
******************************************************************
* * * * * *
******************************************************************
2.3. FORMALIZAREA DOCUMENTELOR DE INTRARE
Documentele de intrare sunt:
Factura;
Nota de intrare-receptie
Factura
NOTĂ DE RECEPȚIE ȘI CONSTATARE DE DIFERENȚE
Subsemnații , membrii comisiei de recepție am predat la recepționarea valorilor furnizate de X (20)………………….. din D (8)………………..
cu vagonul/ auto nr. X (10)…………… documentele însoțitoare X (15)……
…………………….
Comisia de recepție
2.4. PROIECTAREA BAZEI INFORMATIONALE
2.4.1. DETERMINAREA CONTINUTULUI BAZEI INFORMATIONALE
Determinarea conținutului bazei informaționale a activității studiate are loc prin structurarea informațiilor și datelor din documentele de intrare, respectiv situațiile de ieșire, sub forma unui tabel, tabel care va include și informațiile suplimentare de natură temporară, care sunt utilizate doar pentru determinarea unor alte informații (de intrare sau de ieșire).
Totalitatea acestor date și informații care compun baza informațională sunt denumite atributele bazei informaționale.
Conținutul bazei informaționale
2.4.2.DEFINIREA ENTITATII BAZEI INFORMATIONALE SI A RELATIILOR DINTRE ACESTEA
Atributele din cadrul bazei informaționale vor fi structurate sub forma unor entități. Denumirea acestor entități și structura lor este prezentată în tabelele următoare.
Entitățile bazei informaționale
Conținutul entităților
Reprezentarea relațiilor dintre entitățile bazei informaționale
IN – MS: 1-1 – Cele două entități, Intrări (IN) și piese și materiale în stoc (MS) au o relație de tipul 1-1 dată de atributul cod material.
MS – IE: relație de tipul 1-1 dată de atributul cod material.
2.4.3.CODIFICAREA ATRIBUTELORBAZEI INFORMATIONALESI DEFINIREA RELATIILOR DINTRE ATRIBUTE
Simbolizarea atributelor
Simbolizarea presupune stabilirea pentru fiecare atribut al bazei informaționale câte un simbol. Simbolurile utilizate pentru atribute vor fi prezentate în tabelul următor:
Codificarea atributelor
A codifica înseamnă a stabili o corespondență biunivocă între elementele a două mulțimi: a datelor și a codurilor. Codificarea atributelor presupune stabilirea unor coduri de identificare pentru atributele care simbolizează mai multe categorii de informații. Astfel, pentru fiecare categorie de informații se stabilește un cod care face parte din codul atributului.
În cazul activității studiate atributul cod material 9(9) este dat manual.
Atribut:
Simbol cont (SIM) 9(9)
9 99 9999
Numar document (NRDOC) 9(10)
99 999 99999
Descrierea atributelor obținute prin calcul
Relațiile dintre atributele entităților bazei informaționale
IN MS IE
2.5. REPROIECTAREA SI ADAPTAREA DOCUMENTELOR DE INTRARE
În cadrul acestei faze unele documente de intrare în funcție de necesitățile viitoare ale sistemului informatic și de specificul activității analizate pot să sufere modificări de formă și de conținut, cum ar fi de exemplu concatenarea mai multor câmpuri din document într-un singur câmp, eliminarea unor câmpuri, refacerea poziției unor câmpuri din document, etc.
În urma analizei activității de organizare nu rezultă necesitatea unei reproiectări.
2.6. STRUCTURA SISTEMULUI SI DETERMINAREA UNITATILOR FUNCTIONALE
Această fază presupune identificarea unităților funcționale ale sistemului informatic proiectat, adică acele grupuri omogene și specifice de prelucrări, care sunt dependente funcțional și care constituie o subfază a sistemului informatic.
Capitolul III PROIECTAREA DE DETALIU A SISTEMULUI INFORMATIC
3.1. PROIECTAREA STRUCTURII BAZEI DE DATE
3.1.1. PROIECTAREA FISIERELOR PERMANENTE
In cadrul activității de evidenta a medicamentelor folosim următorul fișier permanent:
MEDIC 1 (medicamente aflate in stoc)
Structura fișierelui MEDIC 1 este următoarea:
3.1.2. PROIECTAREA FISIERELOR VARIABILE
În cadrul activității de evidenta a medicamentelor se definesc următoarele fișiere variabile:
MEDIC 2. DBF.
3.1.3.PROIECTAREA FISIERELOR TEMPORARE
În cadrul activității de calcul evidenta a medicamentelor se pot identifica o serie de câmpuri de stare (cantitate , preț, valoare, etc ), dar acestea vor fi reținute în fișierele permanente și variabile și deci nu se vor defini fișiere temporare.
3.2.PROIECTAREA PRELUCRARILOR SPECIFICE UNITATILOR FUNCTIONALE
3.2.1. STABILIREA ORDINII DE PRELUCRARE A FISIERELOR
Restricțiile de integritate dintre fișiere determină ordinea de prelucrare a fișierelor de bază, astfel încât crearea sau activarea unui fișier să se facă numai după ce s-a efectuat activarea tuturor fișierelor de care acesta depinde. Aceste restricții de integritate pot fi reprezentate în graficul următor:
MEDIC 1.DBF
MEDIC 2 .DBF
3.2.2. DETERMINAREA UNITATILOR DE PRELUCRARE
Unitatea funcțională de evidența a medicamentelor cuprinde următoarele unități de prelucrare:
UP1 – Intrare
Această primă unitate de prelucrare va indeplini functii de introducere date in fisierele de baza, modificare, actualizare si consultarea fisierelor de baza.
UP2 – Operatii
Această unitate de prelucrare Operatii va face evidenta medicamentelor existente in spital.
UP3 – Iesire
Aceasta unitate de prelucrare va cuprinde toate operatiile necesare in vederea efectuarii livrarii de medicamente spre sectii.
3.3. PRELUCRAREA DIALOGULUI CU UNITATILE DE PRELUCRARE
Proiectarea dialogului cu unitățile de prelucrare presupune proiectarea machetelor ce formează interfața produsului informatic.
În continuare vom prezenta modul de alcătuire al meniurilor , precum și interfața cu utilizatorul.
Meniul principal
Submeniul “INTRARE”
Submeniul “OPERATII”
Submeniul “IESIRE”
INTRĂRI MEDICAMENT
DORITI SA INTRODUCETI UN NOU MEDICAMENT (D/N)
IEȘIRI
TASTAȚI GESTIUNEA PENTRU CARE FACEȚI IEȘIRI
Adăugare ucrări de recondiționare
3.4.PROIECTAREA PRELUCRARILOR SPECIFICE UNITATILOR DE PRELUCRARE
3.4.1. DETERMINAREA MODULELOR DE PRELUCRARE
Programarea modulara presupune descompunerea programelor din faza de proiectare in module usor de inteles si constituit. Astfel se realizeaza o verificare a structurii programului.
Unitatile de prelucrare vor contine urmatoarele module:
UP1 – Intrari:
M1 – Intrare medicamente;
M2 – Modificare pret;
UP2 – Operatii:
M1 – Afisare;
M2 – Modificare;
M3 – Stergere;
M4 – Test de valabilitate;
UP3 – Iesire:
M1 – Iesire in Fox;
M2 – Iesire in Windows.
Reprezentarea schematică :
INTRARI
MEDIC 2 MEDIC 2
OPERATII
MEDIC 2 MEDIC 2 MEDIC2 MEDIC 2
IESIRI
3.4.2. ORGANIGRAMA DE SISTEM A UNITATILOR DE PRELUCRARE
CAP.III
PROIECTAREA DE DETALIU A UNITATILOR FUNCTIONALE
3.1. PROIECTAREA FISIERELOR DE BAZA
3.1.1. PROIECTAREA FISIERELOR PERMANENTE
Fisierele permanente sunt acelea care corespund entitatilor care nu-si schimba caracteristicile o lunga perioada de timp.
In cadrul programului nu exista fisiere permanente.
3.1.2. PROIECTAREA FISIERELOR VARIABILE
Fisierele variabile sunt cele care pastreaza tranzactiile pentru o anumita perioada de timp. Ele corespund entitatilor ce reflecta dinamica proceselor si fenomenelor economice.
In cadrul programului pot fi identificate urmatoarele fisiere variabile:
121.DBF
411.DBF
451.DBF
512.DBF
701.DBF
741.DBF
766.DBF
BALANTA.DBF
FACTURI.DBF
SUBVENTII.DBF
DOBANZI.DBF
3.1.3. PROIECTAREA FISIERELOR TEMPORARE
Fisierele temporare sunt acelea care isi schimba valoarea la intervale regulate de timp.
In cadrul programului poate fi identificat un fisier temporar:
BALANTAS.DBF
3.2. PROIECTAREA PRELUCRARILOR SPECIFICE UNITATILOR FUNCTIONALE
3.2.1. STABILIREA ORDINII DE PRELUCRARE A FISIERELOR
3.2.2. DETERMINAREA UNITATILOR DE PRELUCRARE
UP1 – DATE – Introducere date de pe facturi fiscale, deconturi de subventii si extrase de cont pentru a fi prelucrate
UP2 – BALANTA DE VERIFICARE – Procesarea datelor introduse pentru a evidentia veniturile unitatii
UP3 – AFISARE DATE – Afiseaza continutul bazelor de date in care se face inregistrarea datelor introduse de pe facturi fiscale, deconturi de subventii si extrase de cont.
UP4 – INCHIDERE LUNA – La sfarsitul lunii, operatorul trebuie sa activeze optiunea “Inchidere luna” pentru ca toate sumele intrate sa fie trecute in contul 121. Balanta de verificare este corecta doar pentru lunile inchise.
3.3. PROIECTAREA STRUCTURII UNITATILOR DE PRELUCRARE
3.3.1. DIALOGUL CU UNITATILE DE PRELUCRARE
Presupune proiectarea machetelor ce formeaza interfata produsului informatic.
3.3.2. PROIECTAREA IESIRILOR PE VIDEOFORMAT
Vanzari
Subventii
Dobanzi
3.4.PROIECTAREA PRELUCRARILOR SPECIFICE ALE UNITATILOR DE PRELUCRARE
3.4.1 DETERMINAREA MODULELOR DE PRELUCRARE A FISIERELOR
VANZARE PRODUSE
SUBVENTII
DOBANZI
LUNARA
3.4.2. ORGANIGRAMA DE SISTEM
CAP.IV
ELABORAREA SI TESTAREA PROGRAMULUI
Programul sursa listat:
SET TALK OFF
SET ESCAPE OFF
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _0440rpqem OF _MSYSMENU PROMPT "\<Date" COLOR SCHEME 3 KEY ALT+D, "ALT+D"
DEFINE PAD _0440rpqeo OF _MSYSMENU PROMPT "\<Balanta de verificare" COLOR SCHEME 3 KEY ALT+B, "ALT+B"
DEFINE PAD _0440rpqep OF _MSYSMENU PROMPT "\<Afisare date" COLOR SCHEME 3 KEY ALT+A, "ALT+A"
DEFINE PAD _0440rpqer OF _MSYSMENU PROMPT "\<Inchidere Luna" COLOR SCHEME 3 KEY ALT+I, "ALT+I"
DEFINE PAD _0440rpqeq OF _MSYSMENU PROMPT "Iesire (Alt+X)" COLOR SCHEME 3 KEY ALT+X, "ALT+X"
ON PAD _0440rpqem OF _MSYSMENU ACTIVATE POPUP date
ON PAD _0440rpqeo OF _MSYSMENU ACTIVATE POPUP balantadev
ON PAD _0440rpqep OF _MSYSMENU ACTIVATE POPUP afisaredat
ON SELECTION PAD _0440rpqeq OF _MSYSMENU DO _0440rpqeu IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
ON SELECTION PAD _0440rpqer OF _MSYSMENU DO inluna IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
DEFINE POPUP date MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF date PROMPT "Vanzare Produse"
DEFINE BAR 2 OF date PROMPT "Subventii"
DEFINE BAR 3 OF date PROMPT "Dobanzi"
ON SELECTION BAR 1 OF date DO _0440rpqf0 IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
ON SELECTION BAR 2 OF date DO _0440rpqf2 IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
ON SELECTION BAR 3 OF date DO _0440rpqf5 IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
DEFINE POPUP balantadev MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF balantadev PROMPT "Lunara"
*DEFINE BAR 2 OF balantadev PROMPT "Totala"
ON SELECTION BAR 1 OF balantadev DO _0440rpqfa IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
*ON SELECTION BAR 2 OF balantadev DO _0440rpqfc IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
DEFINE POPUP afisaredat MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF afisaredat PROMPT "Vanzari"
DEFINE BAR 2 OF afisaredat PROMPT "Subventii"
DEFINE BAR 3 OF afisaredat PROMPT "Dobanzi"
ON SELECTION BAR 1 OF afisaredat DO _0440rpqfh IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
ON SELECTION BAR 2 OF afisaredat DO _0440rpqfk IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
ON SELECTION BAR 3 OF afisaredat DO _0440rpqfn IN LOCFILE("\FOX\TEST2" ,"MPX;MPR|FXP;PRG" ,"Where is TEST2?")
define popup luni from 2,1 to 15,12 title 'Luna:' shadow
define bar 1 of luni prompt 'Ianuarie'
define bar 2 of luni prompt 'Februarie' skip for Month(Date())<getbar('Luni',2)
define bar 3 of luni prompt 'Martie' skip for Month(Date())<getbar('Luni',3)
define bar 4 of luni prompt 'Aprilie' skip for Month(Date())<getbar('Luni',4)
define bar 5 of luni prompt 'Mai' skip for Month(Date())<getbar('Luni',5)
define bar 6 of luni prompt 'Iunie' skip for Month(Date())<getbar('Luni',6)
define bar 7 of luni prompt 'Iulie' skip for Month(Date())<getbar('Luni',7)
define bar 8 of luni prompt 'August' skip for Month(Date())<getbar('Luni',8)
define bar 9 of luni prompt 'Septembrie' skip for Month(Date())<getbar('luni',9)
define bar 10 of luni prompt 'Octombrie' skip for Month(Date())<getbar('Luni',10)
define bar 11 of luni prompt 'Noiembrie' skip for Month(Date())<getbar('Luni',11)
define bar 12 of luni prompt 'Decembrie' skip for Month(Date())<getbar('Luni',12)
clear
?' '
?' '
?' '
?' ŰŰŰŰŰŰŰŰ ŰŰ ŰŰ'
?' ŰŰ ŰŰ ŰŰ ŰŰŰŰŰŰ'
?' ŰŰ ŰŰ ŰŰŰŰŰ ŰŰ ŰŰŰŰŰ ŰŰ ŰŰŰŰŰ ŰŰ ŰŰŰŰŰ'
?' ŰŰŰŰŰŰŰŰ ŰŰ ŰŰ ŰŰ ŰŰŰŰ ŰŰ ŰŰ ŰŰ'
?' ŰŰ ŰŰ ŰŰŰŰŰŰŰ ŰŰ ŰŰŰŰŰŰŰ ŰŰ ŰŰ ŰŰ ŰŰŰŰŰŰŰ'
?' ŰŰ ŰŰ ŰŰ ŰŰ ŰŰ ŰŰ ŰŰ ŰŰ ŰŰ ŰŰ ŰŰ ŰŰ'
?' ŰŰŰŰŰŰŰŰ ŰŰŰŰŰŰ ŰŰ ŰŰŰŰŰŰ ŰŰ ŰŰ ŰŰ ŰŰŰŰŰŰ'
?' '
?' DE VERIFICARE ŰŰ'
hide wind all
sm=0
suma=0
denum=''
x=0
dif=0
dt=date()
nrluna=0
close data
PROCEDURE _0440rpqeu
set sysmenu to default
clear wind all
show wind all
close data all
return
*
*
*
procedure Inluna
*defi wind IL from 2,1 to 22,76 title ' Inchidere de luna ';
*system shadow close color scheme 8
on sele popup luni do inchide
*acti wind IL
acti popup luni
*deac wind IL
return
*
*
*
PROCEDURE inchide
suma=0
x=0
dif=0
dt=date()
nrluna=Bar()
use 701 in 1
use 411 in 2
do doinc
close data all
use 741 in 1
use 451 in 2
do doinc
close data all
use 766 in 1
use 512 in 2
do doinc
close data all
deac popup luni
return
*
*
*
PROCEDURE doinc
select 1
suma=0
for i=1 to reccount()
goto i
if month(data)<=nrluna
suma=suma+rlc
endif
endfor
locate for Month(data)=nrluna
if found()
x=rlc
dt=data
replace rld with rlc
replace rcc with suma
replace rcd with rcc
* Introducere Sold Initial
replace tsc with rlc+sic
replace tsd with rld+sid
if tsd>tsc
dif=tsd-tsc
replace sfd with dif
else
dif=tsc-tsd
replace sfc with dif
endif
select 2
locate for Month(data)=nrluna
if not found()
append blank
endif
replace rld with x
replace rcd with suma
replace tsd with rld+sid
replace data with dt
if tsd>tsc
dif=tsd-tsc
replace sfd with dif
else
dif=tsc-tsd
replace sfc with dif
endif
endif
return
PROCEDURE _0440rpqf0
vclient=Replicate(' ',254)
vnr_crt=0
vDen_Prod=Replicate(' ',50)
vum=Replicate(' ',10)
vcantitatea=0
vpret_u=0
vvaloare=0
vnrf=0
vdata=date()
defi wind VP from 2,1 to 21,76 title ' Introducere date factura fiscala ';
system shadow close color scheme 8
acti wind VP
@ 0,1 SAY "Facturi Fiscale" SIZE 1,15, 0
@ 1,0 TO 1,74
@ 2,1 SAY 'Client:'GET vclient SIZE 4,36,0 PICTURE "@K" DEFAULT " "
@ 6,0 TO 6,74
@ 8,1 SAY "Data:" GET vdata SIZE 1,8 DEFAULT { / / }
@ 8,22 SAY "Nr. Factura:" GET vnrf SIZE 1,12 DEFAULT 0
@ 8,55 SAY "Nr. Crt.:" GET vnr_crt SIZE 1,3 DEFAULT 0 PICTURE "@K 999"
@ 10,1 SAY "Denumire Produs:" GET vden_prod SIZE 1,50 DEFAULT " " PICTURE "@K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
@ 12,1 SAY "Unit. masura:" GET vum SIZE 1,10 Default " " Picture "@K XX"
@ 12,33 SAY "Cantitatea:" GET vcantitatea SIZE 1,10 DEFAULT 0 PICTURE "@K 999,999,999.99"
@ 14,1 SAY "Pret Unitar:" GET vpret_u SIZE 1,15 DEFAULT 0 PICTURE "@K 999,999,999,999.99"
@ 16,0 TO 16,74
STORE 2 TO mchoice
@ 17,2 GET mchoice PICTURE '@*H' + ' OK;Renunta' SIZE 1, 9
read cycle
VValoare=vpret_u*vcantitatea
do case
case mchoice=1
use facturi
append blank
replace client with vclient
replace data with vdata
replace nrf with vnrf
replace nr_crt with vnr_crt
replace den_prod with vden_prod
replace um with vum
replace cantitatea with vcantitatea
replace pret_u with vpret_u
replace valoare with vvaloare
close data
case mchoice=2
endcase
use 701 in 1
use 411 in 2
select 1
locate for data=vdata
if found()
replace rlc with rlc+vvaloare
else
append blank
replace data with vdata
replace rlc with vvaloare
endif
select 2
locate for data=vdata
if found()
replace rld with rld+vvaloare
else
append blank
replace data with vdata
replace rld with vvaloare
endif
deac wind vp
close data all
return
PROCEDURE _0440rpqf2
vnr_crt=0
vspec=replicate(' ',20)
vum=replicate(' ',2)
vsbv_um=0
vsbv_t=0
vcantitate=0
vdata=date()
defi wind VS from 2,1 to 18,76 title ' Introducere date subventii ';
system shadow close color scheme 8
acti wind VS
@ 0,2 SAY "Subventii" SIZE 1,9, 0
@ 1,0 TO 1,74
@ 2,10 SAY "Data:" GET vdata SIZE 1,8 DEFAULT { / / }
@ 4,7 SAY "Nr.Crt.:" GET vnr_crt SIZE 1,3 DEFAULT " " PICTURE "@K 999"
@ 6,2 SAY "Specificatie:" GET vspec SIZE 1,20 DEFAULT " " PICTURE "@K XXXXXXXXXXXXXXXXXXXX"
@ 8,12 SAY "Um:" GET vum SIZE 1,2 DEFAULT " " PICTURE "@K XX"
@ 10,5 SAY "Cantitate:" GET vcantitate SIZE 1,12 DEFAULT " " PICTURE "@K 999,999,999.99"
@ 12,0 SAY "Subv. (Lei/UM):" GET vsbv_um SIZE 1,14 DEFAULT " " PICTURE "@K 999,999,999.99"
@ 13,0 TO 13,74
store 2 to mchoice
@ 14,2 GET mchoice PICTURE '@*H' + ' OK;Renunta' SIZE 1, 9
read cycle
vsbv_t=vsbv_um*vcantitate
on escape deac wind vs
do case
case mchoice=1
use subventi
append blank
replace nr_crt with vnr_crt
replace spec with vspec
replace um with vum
replace cantitate with vcantitate
replace sbv_um with vsbv_um
replace sbv_t with vsbv_t
replace data with vdata
close data
deac wind vs
case mchoice=2
deac wind vs
endcase
use 741 in 1
use 451 in 2
select 1
locate for data=vdata
if found()
replace rlc with rlc+vsbv_t
else
append blank
replace data with vdata
replace rlc with vvaloare
endif
select 2
locate for data=vdata
if found()
replace rld with rld+vsbv_t
else
append blank
replace data with vdata
replace rld with vsbv_t
endif
return
PROCEDURE _0440rpqf5
defi wind VD from 2,1 to 18,76 title ' Introducere date dobanzi ';
system shadow close color scheme 8
acti wind VD
vdata=date()
vnr_doc=0
vcont=replicate(' ',15)
vdebit=0
vcredit=0
@ 0,2 SAY "Dobanzi"
@ 1,0 TO 1,74
@ 3,5 SAY "Data:" GET vdata SIZE 1,8 DEFAULT " " PICTURE "@K"
@ 5,1 SAY "Nr. Doc.:" GET vnr_doc SIZE 1,5 DEFAULT " " PICTURE "@K 9,999"
@ 7,5 SAY "Cont:" GET vcont SIZE 1,15 DEFAULT " " PICTURE "@K XXXXXXXXXXXXXXX"
@ 9,4 SAY "Debit:" GET vdebit SIZE 1,18 DEFAULT " " PICTURE "@K 999,999,999,999.99"
@ 11,3 SAY "Credit:" GET vcredit SIZE 1,18 DEFAULT " " PICTURE "@K 999,999,999,999.99"
@ 13,0 TO 13,74
store 2 to mchoice
@ 14,2 GET mchoice PICTURE '@*H' + ' OK;Renunta' SIZE 1, 9
read cycle
on escape deac wind vd
do case
case mchoice=1
use dobanzi
append blank
replace data with vdata
replace nr_doc with vnr_doc
replace cont with vcont
replace debit with vdebit
replace credit with vcredit
close data
deac wind vd
case mchoice=2
deac wind vd
endcase
use 766 in 1
use 512 in 2
select 1
locate for data=vdata
if found()
replace rlc with rlc+vcredit
replace rld with rld+vdebit
else
append blank
replace data with vdata
replace rlc with vcredit
replace rld with vdebit
endif
select 2
locate for data=vdata
if found()
replace rld with rld+vcredit
else
append blank
replace data with vdata
replace rld with vcredit
endif
deac wind VD
return
PROCEDURE _0440rpqfa
on sele popup luni do BLunara
activate popup luni
return
*
*
*
PROCEDURE BLunara
ldat=''
nrluna=bar()
do case
case nrluna=1
ldat='Ianuarie'
case nrluna=2
ldat='Februarie'
case nrluna=3
ldat='Martie'
case nrluna=4
ldat='Aprilie'
case nrluna=5
ldat='Mai'
case nrluna=6
ldat='Iunie'
case nrluna=7
ldat='Iulie'
case nrluna=8
ldat='August'
case nrluna=9
ldat='Septembrie'
case nrluna=10
ldat='Octombrie'
case nrluna=11
ldat='Noiembrie'
case nrluna=12
ldat='Decembrie'
endcase
psi=0
prl=0
prc=0
pts=0
clas=0
use balanta
delete all
pack
close data
use balanta in 1
use 701 in 2 Alias A1
select 2
locate for Month(data)=nrluna
psi=psi+sic
prl=prl+rlc
prc=prc+rcc
pts=pts+tsc
sm=701
clas=7
denum='Venituri din vanzarea produselor'
select 1
append blank
do movedt
close data
use balanta in 1
use 741 in 2 Alias A1
select 2
locate for Month(data)=nrluna
psi=psi+sic
prl=prl+rlc
prc=prc+rcc
pts=pts+tsc
sm=741
clas=7
denum='Venituri din subventii'
select 1
append blank
do movedt
close data
use balanta in 1
use 766 in 2 Alias A1
select 2
locate for Month(data)=nrluna
psi=psi+sic
prl=prl+rlc
prc=prc+rcc
pts=pts+tsc
sm=766
clas=7
denum='Venituri din dobanzi'
select 1
append blank
do movedt
close data
use balanta in 1
use 411 in 2 Alias A1
select 2
locate for Month(data)=nrluna
sm=411
clas=4
denum='Clienti'
select 1
append blank
do movedt
close data
use balanta in 1
use 451 in 2 Alias A1
select 2
locate for Month(data)=nrluna
sm=451
clas=4
denum='Decontari in cadrul grupului'
select 1
append blank
do movedt
close data
use balanta in 1
use 512 in 2 Alias A1
select 2
locate for Month(data)=nrluna
sm=5121
clas=5
denum='Conturi la banci in lei'
select 1
append blank
do movedt
close data
profit=0
sm=121
denum='Profit si pierdere'
use balanta
append blank
replace simbol with sm
replace denumire with denum
replace sic with psi
replace rlc with prl
replace rcc with prc
replace tsc with pts
replace luna with ldat
replace clasa with 1
dif=0
if tsd>tsc
dif=tsd-tsc
replace sfd with dif
else
dif=tsc-tsd
replace sfc with dif
endif
delete file balantas.dbf
SORT TO BALANTAS.DBF ON BALANTA.CLASA
hide popu luni
use balantas.dbf
report form balantav preview
report form balantav to printer
close data
clear
deac popup luni
return
PROCEDURE Movedt
replace simbol with sm
replace denumire with denum
replace luna with ldat
replace sid with A1.sid
replace sic with A1.sic
replace rld with A1.rld
replace rlc with A1.rlc
replace rcd with A1.rcd
replace rcc with A1.rcc
replace tsd with A1.tsd
replace tsc with A1.tsc
replace sfd with A1.sfd
replace sfc with A1.sfc
replace clasa with clas
return
PROCEDURE _0440rpqfc
return
PROCEDURE _0440rpqfh
close data
use facturi
BROWSE FIELDS data :H='Data',;
nrf :H='Nr. Factura',;
client :H='Client',;
nr_crt :H='Nr. Curent',;
den_prod :H='Denumire Produs',;
um :H='UM',;
cantitatea :H='Cantitate',;
pret_u :H='Pret Unitar',;
valoare :H='Valoare Totala' nomodify title 'Facturi Fiscale'
return
PROCEDURE _0440rpqfk
close data
use subventi
BROWSE FIELDS data :H='Data',;
nr_crt :H='Nr. Curent',;
spec :H='Specificatie',;
um :H='UM',;
cantitate :H='Cantitate',;
sbv_um :H='Subventie/UM',;
sbv_t :H='Subventie Totala' nomodify title 'Subventii'
return
PROCEDURE _0440rpqfn
close data
use dobanzi
BROWSE FIELDS data :H='Data',;
nr_doc :H='Nr. Document',;
cont :H='Cont',;
debit :H='Debit',;
credit :H='Credit' nomodify title 'Subventii de stat'
return
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Proiect Bd1 (ID: 161282)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
