Sunteți pe pagina 1din 22

IMPORT PenalizariLunaCrt

Importurile de Penalizari in Scala sunt de 2 tipuri:


A) Generale: PenalizariLunaCrt
B) Viata: PenalizariLunaCrt

PASUL 1: IMPORT TABELE

A) GENERALE: PenalizariLunaCrt

Pentru Generale se merge la S:\SCALA\.ImportScala_Access\Generale\ImportScalaAccess_Generale\an


se deschide fisierul ImportScalaAccess_GEN_Penalizari_an.mdb si se importa local in fisierul Access de
pe \\bd1server\E\Public\evidente contabile asigurari\an\luna din fisierul Access All_luna.mdb
tabelele de tip PenalizariLunaCrtluna_data

1
Se merge la Forms/ ImportScalaPenalizari_Generale si se importa tabela de tip
PenalizariLunaCrtluna_data in tabela Penalizari de pe baza de date InterfataScala.

Formul goleste si tabelele Penalizari si Penalizari_ERORI, seteaza valori de 0 pentru valorile NULL.
Se verifica daca au fost erori in tabela Penalizari_ERORI.

B) VIATA: PenalizariLunaCrt
2
Pentru Viata se merge la S:\SCALA\.ImportScala_Access\Viata\ImportScalaAccess_Viata\an
se deschide fisierul ImportScalaAccess_Viata_Penalizari_an.mdb si se importa local in fisierul Access
de pe \\bd1server\E\Public\evidente contabile life\an\luna din fisierul Access All_luna.mdb
tabelele de tip PenalizariLunaCrtluna_data

Se merge la Forms/ ImportScalaPenalizari_Viata si se importa tabela de tip PenalizariLunaCrtluna_data


in tabela Penalizari de pe baza de date InterfataScala.
3
Formul goleste si tabelele Penalizari si Penalizari_ERORI, seteaza valori de 0 pentru valorile NULL .

Se verifica daca au fost erori in tabela Penalizari_ERORI.

PASUL 2: RULARE PROCEDURI

4
Dupa ce s-au importat tabelele se ruleaza pe baza de date InterfataScala procedura Penalizari_Scala cu
urmatorii parametri:
DataInregContabile: data inregistrarii contabile
DataDocument: data document
CodCompanie: cod companie
AnCompanie: an companie
Corectie: corectia

Procedura se ruleaza de fiecare data cand se face un import de Generale si Viata:

1. Initial fara corectie


Ex: exec Penalizari_Scala '20070531', '20070531', '01', '07', ''

2. Cu corectie pentru rezolvare erori


Ex: exec Penalizari_Scala '20070531' '20071231', '01', '07', '_COR200803'

5
PASUL 3: ACTUALIZARE IN APLICATIA SCALA

Se merge in Scala la men iul "Tiparire Jurnal Inreg. Zilnice" si se urmeaza etapele:

1. Este necesara modificarea tranzactiilor existente? - NU

2. Confirmati Verificare, Sortare si Tiparire? - DA


6
3. Se verifica jurnalul de inregistrari zilnice

7
4. Dupa Verificare se alege Cod Utilizator = "IMPORT ", Format Raport: "ECRAN" si se apasa OK

8
5. Se asteapta pregatirea raportului

9
6. Se inchide fiserul tiparit

10
7. Doriti retiparirea jurnalului - NU

11
8. Confirmati Actualizare Registre - DA

12
9. Fisier Jurnal va fi golit in timp ce se actualizeaza Registrul , OK? - DA

13
10. Incepe actualizarea in Scala

14
ANEXA - DESCRIERE PROCEDURI

15
Procedura Penalizari_Scala are urmatoarele etape:
A) verifica in tabela Penalizari numele clientilor sa nu aiba apostrof, daca da, apare urmatorul mesaj de
eroare 'Aveti ghilimele in Nume in tabela de Penalizari!!!'

B) daca nu sunt nume de clienti cu apostrof, se urmeaza pasii:

1) daca VersiunePenalizare > 1 si CodCompanie = 01 se executa procedura Penalizari_SetFlag_01


cu parametrii @AnLunaPenalizare, @VersiunePenalizare, @TipPenalizare

Initial in tabela Penalizari coloana Flag=0 iar in tabela Penalizari_Istoric_01 coloana Flag=2.
Procedura Penalizari_SetFlag_01 cauta:

- politele identice din tabela Penalizari (versiune n) si tabela Penalizari_Istoric_01 (versiune n-1), le
insereaza intr-o tabela temporara #conflict1 si apoi seteaza coloana Flag=1 in ambele tabele

- politele din tabelele Penalizari si Penalizari_Istoric_01 care au coloanele AnLuna, Versiune, KPolita,
CodAsig, AnAniv, TipPBS, ClasaNrProd, Sucursala, CodAgent, TipPenalizare identice dar restul coloanelor
diferite (CNPClient, PenalizareROL, PenalizareROLCoasig), le insereaza intr-o tabela temporara #conflict3
si apoi si seteaza in tabela Penalizari coloana Flag=3 iar in tabela Penalizari_Istoric_01 coloana Flag=4.

Concluzie:
In tabela Penalizari vom avea:
-Flag=1 pt penalizarile pe care le-am gasit identic in Penalizari_istoric_01 pe versiune=n-1
-Flag= 3 pt penalizarile pe care le-am gasit dar sunt modificate in Penalizari_istoric_01 pe versiune=n-1
-Flag= 0 pt penalizarile noi care nu se regasesc in Penalizari_istoric_01 pe versiune=n-1 si deci sunt noi

In tabela Penalizari _istoric_01 pe versiune=n-1:


- Flag = 1 pt penalizarile identice cu cele din Penalizari
- Flag = 4 pt penalizarile gasite in Penalizari dar nu sunt identice
- Flag = 2 pt penalizarile care nu se mai regasesc si trebuie stornate

2) se executa procedura Penalizari_Recodificare cu parametrii


@AnLunaPenalizare, @VersiunePenalizare, @TipPenalizare, @CodCompanie, @AnCompanie

2.1) La inceput procedura sterge tot din tabela Penalizari_Recodificate


16
2.2) Se selecteaza in cursorul Tranz1 coloanele AnLuna, Versiune, KPolita, Sucursala, CodAgent, Flag,
ClasaNrProd,PenalizareROL ,PenalizareROLCoasig,NumeClient,CNPClient
din tabela Penalizari cu conditia ca Flag sa fie 0 sau 3 si TipPenalizare=@TipPenalizare
impreuna cu aceleasi coloane din tabela Penalizari_Istoric_01 cu conditia ca Flag sa fie 2 sau 4
si AnLuna = @AnLunaPenalizare si Versiune = @VersiunePenalizare-1 si TipPenalizare=@TipPenalizare
(adica penalizarile care sunt noi sau sunt modificate)

2.3) se executa procedura ClientiAsigurari cu parametrii


@CNPClient, @NumeClient, @CodCompanie, @AnCompanie, @CodClient OUTPUT

Procedura cauta @CodClient = SL01001 in tabela SL010100 din baza de date iScala unde coloana
SL01129 este egala cu @CNP.
- daca gaseste @CodClient, atunci actualizeaza tabela SL010100 si seteaza campurile SL01002, SL01109
cu @Nume cu conditia ca SL01001 sa fie egal cu @CodClient, dar si tabela GL030108 unde seteaza
campurile GL03003, GL03004 cu @Nume cu conditia ca GL03001=’H' si GL03002 = @CodClient.
- daca nu gaseste @CodClient,se insereaza in tabela SL010100 inregistrarea dintemplate-ul din
SL190100 de pe SL19001=’A’ apoi se updateaza tabela SL010100 pt campurile SL01001 cu @CodClient,
SL01002, SL01109 cu @Nume si SL01129 cu @CNP. Insereaza in tabela GL030108 valorile ‘H’,
@CodClient, @Nume, @CNP.

2.4) Executa procedura MapareSucursale cu parametrii @Sucursala,@ClasaNrProd, @Sucursala_map


care seteaza codurile din Scala aferente codurilor de sucursale din Asigurari ( vezi tabela MapSucursale
de pe InterefataScala)
Seteaza valorile @Sucursala_map ca BR000, BX000, BP000, PS000, AT000 pentru valorile de
@Sucursala BR, BX, BP, P, AT.

2.5) Se seteaza TipTranz in functie de Flag


- daca Flag este 0 sau 3 atunci TipTranz = 0
- daca Flag este 2 sau 4 atunci TipTranz = 1

2.6) Se insereaza penalizarile normale; daca @PenalizareROL + @PenalizareROLCoasig diferit de 0


se insereaza in tabela Penalizari_Recodificate valorile
@AnLuna,@Versiune, @KPolita, @TipPenalizare,@TipTranz, @Sucursala_map, @CodAgent_map,
convert(varchar(5),@ClasaNrProd),@PenalizareROL, @PenalizareROLCoasig, @CodClient

Se inchide cursorul

2.7) Se insereaza in tabela Penalizari_Istoric_01 coloanele


AnLuna, Versiune, KPolita,TipPenalizare, Sucursala, CodAgent, NumeTabelAccess, ''2'', ClasaNrProd,
PenalizareROL , PenalizareROLCoasig, NumeClient, CNPClient
din tabela Penalizari
17
2.8) se sterge tot din tabela Penalizari_Ultimile_01

2.9) se insereaza in tabela Penalizari_Ultimile_01


AnLuna, Versiune, KPolita,TipPenalizare, Sucursala, CodAgent, NumeTabelAccess, ''2'', ClasaNrProd,
PenalizareROL , PenalizareROLCoasig, NumeClient, CNPClient
din tabela Penalizari

3) se executa procedura Penalizari_IncasFactTranz cu parametrii


@DataInregContabile, @DataDocument, @TipPBS, @CodCompanie, @AnCompanie, @Corectie

3.1) Pentru inceput se sterg datele din tabela Tranzactii.

Se selecteaza in cursorul Tranz2 coloanele AnLuna, Versiune, KPolita,TipPenalizare,TipTranz,


Sucursala, CodAgent,CodClient,ClasaNrProd,PenalizareROL ,PenalizareROLCoasig
din tabela Penalizari_Recodificate

3.2) se seteaza
@ValoareROL = @PenalizareROL + @PenalizareROLCoasig
@ValoareValuta = @ValoareROL
@Sign = sign(@PenalizareROL + @PenalizareROLCoasig)
@ValoareROL = round (@ValoareROL,2)
@ValoareValuta = round (@ValoareValuta,2)

3.3) se executa procedura Penalizari_Tranzactii cu parametrii


@AnLuna,@NrTranz,@KPolita ,@TipPenalizare, @TipTranz, @Sucursala, @CodAgent,@CodClient,
@ClasaNrProd,@PenalizareROL,@PenalizareROLCoasig,@DataInregContabile, @Corectie

3.3.1) se seteaza @StrNrTranz_Penalizare in functie de @TipPenalizare


- daca @TipPenalizare='GPen' se seteaza
@StrNrTranz_Penalizare = 'UG' + right(@NrTranz+100000,5)
- altfel daca @TipPenalizare='VPen' se seteaza
@StrNrTranz_Penalizare = 'UV' + right(@NrTranz+100000,5)

3.3.2) se executa procedura Penalizari_Penalizare cu parametrii


@StrNrTranz_Penalizare,@DataInregContabile, @ClasaNrProd ,@CodAgent, @CodClient,
@Sucursala,@PenalizareROL, @PenalizareROLCoasig, @TipTranz, @AnLuna, @TipPenalizare, @Corectie

3.3.2.1) se fac setarile


- daca @SalesChannel='G' se seteaza @TipCont='2'
altfel daca @SalesChannel='V' se seteaza @TipCont='1'
- daca @TipPenalizare='GPen' sau @TipPenalizare='VPen'
18
se seteaza @TipJurnal ='DIV'

3.3.2.2) se seteaza @Valoare = (@PenalizareROL + @PenalizareROLCoasig)


si se face stornare in rosu
- daca @Valoare>0
* si daca @TipTranz='0' seteaza @TipTranzFinal='0'
* altfel daca @TipTranz='1' seteaza @Valoare = (-1) * @Valoare si @TipTranzFinal= '1'
- altfel daca @Valoare<0
* si daca @TipTranz='0' seteaza @TipTranzFinal='1'
* altfel daca @TipTranz='1' seteaza @Valoare = (-1) * @Valoare si @TipTranzFinal= '0'
- altfel daca @Valoare=0 seteaza @TipTranzFinal='0'

3.3.2.3) Tranzactia 1 - se seteaza


@ContROLDebit = '422' + @TipCont + '0' + left(@ClasaNrProd,2) + '001'
@ContROLCredit = '422' + @TipCont + '0' + left(@ClasaNrProd,2) + '002'

a) se face insert debit


- se seteaza
@SirContROL = @ContROLDebit + @Sucursala + @ClasaNrProd + @SalesChannel + @CodAgent + ' '+
@CodClient
@ValoareROL = (@Valoare)
@SirContValuta = ''
@ValoareValuta = @ValoareROL
@Flag = '0'

- se insereaza in tabela de Tranzactii pe coloanele


NrTranzIntern,GL07002, GL07004, GL07005, GL07006, GL07007, GL07008, GL07009,GL07010, GL07011,
GL07012, GL07013, GL07014, GL07022, GL07034
valorile
@NrTranz,'', @DataInregContabile, @Flag, @SirContROL, @ValoareROL, '00', @SirContValuta,
@ValoareValuta, @SalesChannel + 'PEN' + @AnLuna + @Corectie, '', '', @TipJurnal, @TipTranzFinal,
@DataInregContabile

b) se face insert credit


- se seteaza
@SirContROL = @ContROLCredit + @Sucursala + @ClasaNrProd + @SalesChannel + @CodAgent + ' '
+ @CodClient
@ValoareROL = - (@Valoare)
@SirContValuta = ''
@ValoareValuta = @ValoareROL
@Flag = '0'

- se insereaza in tabela de Tranzactii pe coloanele


NrTranzIntern,GL07002, GL07004, GL07005, GL07006, GL07007, GL07008, GL07009,GL07010, GL07011,
GL07012, GL07013, GL07014, GL07022, GL07034
valorile
19
@NrTranz,'', @DataInregContabile, @Flag, @SirContROL, @ValoareROL, '00', @SirContValuta,
@ValoareValuta, @SalesChannel + 'PEN' + @AnLuna + @Corectie, '','',@TipJurnal, @TipTranzFinal,
@DataInregContabile

3.3.2.4) Tranzactia 2 - se seteaza


@ContROLDebit = '422' + @TipCont + '0' + left(@ClasaNrProd,2) + '002'
@ContROLCredit = '758' + @TipCont + '1010'

a) se face insert debit


- se seteaza
@SirContROL = @ContROLDebit + @Sucursala + @ClasaNrProd + @SalesChannel + @CodAgent + ' '+
@CodClient
@ValoareROL = (@Valoare)
@SirContValuta = ''
@ValoareValuta = @ValoareROL
@Flag = '0'

- se insereaza in tabela de Tranzactii pe coloanele


NrTranzIntern,GL07002, GL07004, GL07005, GL07006, GL07007, GL07008, GL07009,GL07010, GL07011,
GL07012, GL07013, GL07014, GL07022, GL07034
valorile
@NrTranz,'', @DataInregContabile, @Flag, @SirContROL, @ValoareROL, '00', @SirContValuta,
@ValoareValuta, @SalesChannel + 'PEN' + @AnLuna + @Corectie, '', '', @TipJurnal, @TipTranzFinal,
@DataInregContabile

b) se face insert credit


- se seteaza
@SirContROL = @ContROLCredit + @Sucursala + @ClasaNrProd + @SalesChannel + @CodAgent + ' '+
'I' + @CodClient
@ValoareROL = - (@Valoare)
@SirContValuta = ''
@ValoareValuta = @ValoareROL
@Flag = '0'

- se insereaza in tabela de Tranzactii pe coloanele


NrTranzIntern,GL07002, GL07004, GL07005, GL07006, GL07007, GL07008, GL07009,GL07010, GL07011,
GL07012, GL07013, GL07014, GL07022, GL07034
valorile

@NrTranz,'', @DataInregContabile, @Flag, @SirContROL, @ValoareROL, '00', @SirContValuta,


@ValoareValuta, @SalesChannel + 'PEN' + @AnLuna + @Corectie, '','',@TipJurnal, @TipTranzFinal,
@DataInregContabile

3.3.3) se incrementeaza @NrTranz

20
4) se executa procedura AlocareNrTranz cu parametrii @CodCompanie, @AnCompanie
care aloca numarul de Tranzactii in Scala

4.1 goleste si apoi insereaza in tabela TranzConcat pe coloanele NrTranzIntern, Prefix, TipTranz, Debit,
Credit urmatoarele coloane din tabela de Tranzactii
NrTranzIntern ,Left(NrTranzIntern, 2), max(GL07022) TipTranz, 'Debit', 'Credit'
cu conditia ca GL07007 sa fie diferit de 0.

4.2 urmeaza un cursor care construieste un tabel temporar pt concatenare debite si credite;
el face update pe coloanele urmatoare din tabela TranzConcat
Debi t = dbo.ConcatenateCont(@NrTranzIntern, 1)
Credit = dbo.ConcatenateCont(@NrTranzIntern, -1)

4.3 al doilea cursor grupeaza tranzactiile dupa Tip ( AG, BG..), Semn (0, 1), Debit si Credit.
Daca apare vreo schimbare trebuie alocat urmatorul numar de tranzactie:
se executa procedura GetTranzCounter cu parametrii @CodCompanie, @AnCompanie, @Prefix,
@Contor out

care
-selecteaza @CodContor = CodContor, @PrefixTranzScala = PrefixTranzScala din tabela
MapPrefixNrTranz
- selecteaza @Counter = SY68002 din tabela SY680108 cu conditia ca SY68001 = @CodContor
- face update pe tabela SY680108 si incrementeaza coloana SY68002 cu conditia ca
SY68001=@CodContor

4.4 face update pe tabela Tranzactii seteaza GL07002 = @Contor cu conditia ca


NrTranzIntern = @NrTranzIntern

5) se executa Penalizari_VerificareSumaPenalizarImportTranzactii
cu parametrii @TipPenalizare, @OK OUTPUT

5.1) se seteaza @TipAsig


- daca @SC = 'G' se seteaza @TipAsig='2'
altfel daca @SC ='V' se seteaza @TipAsig='1'

21
5.2) se seteaza
- @SumPenalizareDirect = round(Sum(round(PenalizareROL,8) + round(PenalizareROLCoasig,8)),6)
din tabela Penalizari_Recodificate cu conditia ca TipTranz=0 si TipPenalizare = @SC + 'Pen'

- @SumPenalizareStorno = round(Sum(round(PenalizareROL,8) + round(PenalizareROLCoasig,8)),6)


din tabela Penalizari_Recodificate cu conditia ca TipTranz=1 si TipPenalizare = @SC + 'Pen'

- @SumPenalizare = @SumPenalizareDirect - @SumPenalizareStorno

- @SumPenalizareTranz1 = round(Sum(GL07007),6)
din tabela Tranzactii cu conditia ca GL07006 sa fie gen ( '422' + @TipAsig + '0__001%')

- @SumPenalizareTranz2 = (-1) *round(Sum(GL07007),6)


din tabela Tranzactii cu conditia ca GL07006 sa fie gen ('758' + @TipAsig + '1010%')

5.3) daca @SumPenalizare diferit de @SumPenalizareTranz1 atunci


se printeaza 'Eroare pe SumPenalizareTranz! Suma nu este corecta ! *** '

altfel se printeaza 'OK pe SumPenalizareTranz!! *** '

5.4) daca @SumPenalizare diferit de @SumPenalizareTranz2 atunci


se printeaza 'Eroare pe SumPenalizareTranz! Suma nu este corecta ! *** '

altfel se 'OK pe SumPenalizareTranz!! *** '

6) se executa procedura TranzGL07 cu parametrii


@CodCompanie, @AnCompanie

Selecteaza din tabela Tranzactii coloanele GL07002, GL07004,GL07005, GL07006, sum(GL07007),


GL07008, GL07009, SUM(GL07010), GL07011, GL07012, GL07013, GL07014, GL07022, GL07034

Insereaza in tabela GL07 valorile


'0', @GL07002, @cntf, @GL07004, @GL07005, @GL07006, @GL07007, @GL07008, @GL07009,
@GL07010, @GL07011, @GL07012, @GL07013, @GL07014, '', '' , '', 0, 0, 0, 0, @GL07022,
0 , '', 0, 0, 0, '', 0, '', '', '', 'IMPORT', @GL07034, '', '19000101', @GL07011

22

S-ar putea să vă placă și