Implement unified Oracle mode support with auto-detection

- Unified Dockerfile with thick/thin mode auto-detection
- Single docker-compose.yaml with build arguments
- Auto-detect logic: thick mode for Oracle 10g/11g, thin mode for 12.1+
- Simplified .env configuration with clear mode selection
- Updated admin.py with FORCE_THIN_MODE and INSTANTCLIENTPATH support
- Added comprehensive documentation for both deployment modes
- Container tested successfully with thick mode for Oracle 11g compatibility

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-09 11:44:31 +03:00
parent 3f654cd771
commit 4da36593da
7 changed files with 234 additions and 102 deletions

View File

@@ -13,22 +13,21 @@ CREATE TABLE ARTICOLE_TERTI (
data_creare DATE DEFAULT SYSDATE, -- Timestamp creare
data_modif DATE DEFAULT SYSDATE, -- Timestamp ultima modificare
id_util_creare NUMBER(10) DEFAULT -3, -- ID utilizator care a creat
id_util_modif NUMBER(10) DEFAULT -3, -- ID utilizator care a modificat
-- Primary key compus
CONSTRAINT pk_articole_terti PRIMARY KEY (sku, codmat),
-- Validări
CONSTRAINT chk_art_terti_cantitate CHECK (cantitate_roa > 0),
CONSTRAINT chk_art_terti_procent CHECK (procent_pret >= 0 AND procent_pret <= 100),
CONSTRAINT chk_art_terti_activ CHECK (activ IN (0, 1))
id_util_modif NUMBER(10) DEFAULT -3 -- ID utilizator care a modificat
);
-- Adaugare constraint-uri ca instructiuni separate
ALTER TABLE ARTICOLE_TERTI ADD CONSTRAINT pk_articole_terti PRIMARY KEY (sku, codmat);
ALTER TABLE ARTICOLE_TERTI ADD CONSTRAINT chk_art_terti_cantitate CHECK (cantitate_roa > 0);
ALTER TABLE ARTICOLE_TERTI ADD CONSTRAINT chk_art_terti_procent CHECK (procent_pret >= 0 AND procent_pret <= 100);
ALTER TABLE ARTICOLE_TERTI ADD CONSTRAINT chk_art_terti_activ CHECK (activ IN (0, 1));
-- Index pentru performanță pe căutări frecvente după SKU
CREATE INDEX idx_articole_terti_sku ON ARTICOLE_TERTI (sku, activ);
-- Index pentru audit și raportare
CREATE INDEX idx_articole_terti_data ON ARTICOLE_TERTI (data_creare, activ);
-- Comentarii pentru documentație
COMMENT ON TABLE ARTICOLE_TERTI IS 'Mapări SKU-uri web → CODMAT ROA pentru reîmpachetări și seturi';
@@ -39,40 +38,6 @@ COMMENT ON COLUMN ARTICOLE_TERTI.procent_pret IS 'Procent din preț web alocat a
COMMENT ON COLUMN ARTICOLE_TERTI.activ IS '1=mapare activă, 0=dezactivată';
-- Date de test pentru validare
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES
('CAFE100', 'CAF01', 10, 100, 1); -- Reîmpachetare: 1 web = 10 ROA
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES
('SET01', 'CAF01', 2, 60, 1); -- Set compus partea 1
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES
('SET01', 'FILT01', 1, 40, 1); -- Set compus partea 2
COMMIT;
-- Verificare creare tabel
SELECT 'ARTICOLE_TERTI creat cu succes' AS STATUS,
COUNT(*) AS NR_RECORDS
FROM ARTICOLE_TERTI;
-- Test integritate constraintelor
BEGIN
-- Test cantitate invalidă
BEGIN
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa) VALUES ('TEST', 'TST01', -1);
DBMS_OUTPUT.PUT_LINE('ERROR: Constraint cantitate nu funcționează!');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('OK: Constraint cantitate funcționează');
END;
-- Test procent invalid
BEGIN
INSERT INTO ARTICOLE_TERTI (sku, codmat, procent_pret) VALUES ('TEST2', 'TST02', 150);
DBMS_OUTPUT.PUT_LINE('ERROR: Constraint procent nu funcționează!');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('OK: Constraint procent funcționează');
END;
END;
/
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES ('CAFE100', 'CAF01', 10, 100, 1);
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES ('SET01', 'CAF01', 2, 60, 1);
INSERT INTO ARTICOLE_TERTI (sku, codmat, cantitate_roa, procent_pret, activ) VALUES ('SET01', 'FILT01', 1, 40, 1);