feat(service-auto): săpt 3-phase2 — toate ipotezele confirmate + modul funcțional
Backend: - service_auto module complet: router, service, schemas, 5 teste suites (22/22 passed) - 5 endpoints: GET /ping, /firme, /tip-deviz, /masini, POST /comenzi - SP_CREEAZA_COMANDA_PROTOTIP creat în MARIUSM_AUTO (VALID, 5.9ms) - oracle_pool.py: session_callback backward-compat patch - ROA_WEB user: grants SP-only confirmate (H3), mariusm_test pool switchat - pyproject.toml: integration pytest marker înregistrat Frontend: - ComandaNoua.vue: date reale din Oracle (firme/tip-deviz/masini), nu hardcodate - src/modules/service-auto/services/api.js: axios service cu Bearer token - src/router/index.js: rută /service-auto/comanda-noua Docs: - decision-log.md: verdict MERGE, toate 6 ipoteze CONFIRMED - learnings.md: 7 patterns reutilizabile - grants-audit.md: arhitectura multi-tenant + proxy auth analysis + V_NOM_FIRME loop - template-modul-oracle.md: rețetă completă pentru module Oracle noi - TODO-phase2.md: 7 items concrete Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
68
docs/service-auto/SP_CREEAZA_COMANDA_PROTOTIP.sql
Normal file
68
docs/service-auto/SP_CREEAZA_COMANDA_PROTOTIP.sql
Normal file
@@ -0,0 +1,68 @@
|
||||
-- =============================================================================
|
||||
-- SP_CREEAZA_COMANDA_PROTOTIP — Săpt 3 prototype
|
||||
-- =============================================================================
|
||||
-- Creează o comandă minimă de service auto: insert NOM_LUCRARI (parent) +
|
||||
-- DEV_ORDL (child) într-o singură tranzacție.
|
||||
--
|
||||
-- Scope: PROTOTYPE ONLY. Nu înlocuiește pack_auto.dev_adauga_lucrare. Nu
|
||||
-- agreghează norme, nu actualizează DEV_MASINICLIENTI (kmint/ore), nu setează
|
||||
-- inspector/asigurator, nu generează PROC_TVAV prin pack_contafin.
|
||||
--
|
||||
-- Nrord: generat din SEQ_NR_LUCRARE (nefolosită în producție) cu prefix 'P' +
|
||||
-- id_firma — garantat unic, ușor de identificat pentru cleanup.
|
||||
--
|
||||
-- Autor: oracle-agent, team service-auto-sapt3 (2026-04-11)
|
||||
-- =============================================================================
|
||||
|
||||
CREATE OR REPLACE PROCEDURE MARIUSM_AUTO.SP_CREEAZA_COMANDA_PROTOTIP(
|
||||
p_tip IN NUMBER, -- FK DEV_TIP_DEVIZ.ID_TIP
|
||||
p_id_masiniclient IN NUMBER, -- FK DEV_MASINICLIENTI.ID_MASINICLIENT
|
||||
p_solicitari IN VARCHAR2, -- text liber, stored as CLOB
|
||||
p_id_firma IN NUMBER, -- multi-tenant marker (prototype only)
|
||||
p_id_ordl OUT NUMBER, -- new DEV_ORDL.ID_ORDL (from trigger)
|
||||
p_nrord OUT VARCHAR2 -- generated order number (echo)
|
||||
) AS
|
||||
v_id_lucrare NUMBER;
|
||||
v_seq NUMBER;
|
||||
v_exists NUMBER;
|
||||
v_now DATE := SYSDATE;
|
||||
BEGIN
|
||||
-- 1. Generate nrord (atomic via sequence)
|
||||
v_seq := MARIUSM_AUTO.SEQ_NR_LUCRARE.NEXTVAL;
|
||||
p_nrord := 'P' || LPAD(p_id_firma, 2, '0') || '-' || v_seq;
|
||||
|
||||
-- 2. Duplicate guard (paritate cu pack_auto — should never fire)
|
||||
SELECT COUNT(*) INTO v_exists
|
||||
FROM MARIUSM_AUTO.NOM_LUCRARI
|
||||
WHERE sters = 0 AND nrord = p_nrord;
|
||||
IF v_exists > 0 THEN
|
||||
RAISE_APPLICATION_ERROR(-20001,
|
||||
'Mai exista o comanda cu numarul ' || p_nrord);
|
||||
END IF;
|
||||
|
||||
-- 3. Parent INSERT — TRG_NOM_LUCRARI_BEFOINS allocates id_lucrare
|
||||
INSERT INTO MARIUSM_AUTO.NOM_LUCRARI (nrord, id_mod)
|
||||
VALUES (p_nrord, 1200)
|
||||
RETURNING id_lucrare INTO v_id_lucrare;
|
||||
|
||||
-- 4. Child INSERT — minimal columns only (NOT NULL ones + client link)
|
||||
-- id_util_ad=0 for prototype (no real session context)
|
||||
INSERT INTO MARIUSM_AUTO.DEV_ORDL (
|
||||
an, luna,
|
||||
id_lucrare,
|
||||
datai, dataoraad,
|
||||
id_util_ad,
|
||||
id_masiniclient,
|
||||
id_tip,
|
||||
solicitari_client
|
||||
) VALUES (
|
||||
EXTRACT(YEAR FROM v_now), EXTRACT(MONTH FROM v_now),
|
||||
v_id_lucrare,
|
||||
v_now, v_now,
|
||||
0,
|
||||
p_id_masiniclient,
|
||||
p_tip,
|
||||
p_solicitari
|
||||
) RETURNING id_ordl INTO p_id_ordl;
|
||||
END SP_CREEAZA_COMANDA_PROTOTIP;
|
||||
/
|
||||
Reference in New Issue
Block a user