docs: planurile, proiectarile si rapoartele de lucru intra in versionare

Folderul docs\ era pana acum in afara oricarui control de versiuni - nici git,
nici SVN - desi contine planurile pe puncte, proiectarile si rapoartele de
cercetare pe care se sprijina modificarile din cod. O stergere acolo era
definitiva.

Fisierele intermediare (handoff-uri intre sesiuni, diff-uri deja aplicate) au
fost sterse inainte, nu versionate: ce era durabil in ele a intrat in antetele
fisierelor de test la care se refereau.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SN8snvkk94KuhWwoXUUey3
This commit is contained in:
2026-08-11 22:17:17 +03:00
parent 40933df3c8
commit d9f5ca4226
145 changed files with 43431 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
-- verificare_vfacturi.sql
-- Compara valoare calculata (FACT_VFACTURI) cu valoare denormalizata (FACT_VFACTURI2)
-- pentru fiecare coloana comuna, pe toate facturile din schema curenta.
-- Testul de regresie al planului #8 (docs\plan_08_denormalizare_vanzari.md).
--
-- Rulare (schema de dezvoltare, conform COMUN\docs\scripturi-migrare-db.md):
-- & 'D:\ROA\instantclient_19_18\sqlplus.exe' -L -S 'MARIUSM_AUTO/<parola>@ROA_CENTRAL' '@verificare_vfacturi.sql'
--
-- Rezultatul: o linie per coloana cu diferente, in ordinea descrescatoare a numarului de facturi.
-- Coloanele identice nu se afiseaza.
set serveroutput on size unlimited
set linesize 200 pagesize 0 feedback off heading off verify off
declare
lcSel clob := 'select ';
lcCol varchar2(30);
lnPrim number := 1;
lcRez varchar2(32767);
type t_nume is table of varchar2(30);
laNume t_nume := t_nume();
begin
for c in (select c.column_name
from all_tab_columns c
where c.owner = user
and c.table_name = 'FACT_VFACTURI'
and c.data_type in ('NUMBER','VARCHAR2','CHAR','DATE')
and c.column_name <> 'ID_VANZARE'
and exists (select 1 from all_tab_columns d
where d.owner = c.owner and d.table_name = 'FACT_VFACTURI2'
and d.column_name = c.column_name)
order by c.column_id)
loop
lcCol := c.column_name;
laNume.extend; laNume(laNume.count) := lcCol;
if lnPrim = 0 then lcSel := lcSel || q'[||','||]'; end if;
-- decode trateaza NULL = NULL ca egalitate
lcSel := lcSel || 'sum(decode(a.'||lcCol||',b.'||lcCol||',0,1))';
lnPrim := 0;
end loop;
lcSel := lcSel || ' from fact_vfacturi a join fact_vfacturi2 b on a.id_vanzare = b.id_vanzare';
execute immediate lcSel into lcRez;
dbms_output.put_line('--- coloane cu diferente intre FACT_VFACTURI (calculat) si FACT_VFACTURI2 (denormalizat) ---');
declare
lnPoz number := 1;
lnVirg number;
lcVal varchar2(50);
lnTotal number := 0;
begin
for i in 1 .. laNume.count loop
lnVirg := instr(lcRez, ',', lnPoz);
if lnVirg = 0 then
lcVal := substr(lcRez, lnPoz);
else
lcVal := substr(lcRez, lnPoz, lnVirg - lnPoz);
lnPoz := lnVirg + 1;
end if;
if to_number(lcVal) > 0 then
dbms_output.put_line(lpad(lcVal, 8) || ' ' || laNume(i));
lnTotal := lnTotal + 1;
end if;
end loop;
dbms_output.put_line('--- ' || lnTotal || ' coloane diferite din ' || laNume.count || ' comparate ---');
end;
end;
/
select '--- perechi comparate: ' || count(*) || ' ---'
from fact_vfacturi a join fact_vfacturi2 b on a.id_vanzare = b.id_vanzare;
exit