feat(registratura): revert intrat full categories + add urbanism deadlines
- Revert: only iesit+cerere/aviz gets full permitting categories - Urbanism: furnizare date retele (15z cal, doar autoritati publice) - Urbanism: aviz oportunitate PUZ — verificare (30z) + convocare CTATU (30z, chain) + emitere dupa comisie (15z, auto-track) - Urbanism: aviz arhitect sef PUD/PUZ — convocare CTATU (30z, chain) + emitere (15z, auto-track) - Urbanism: promovare CL (30z) + vot CL (45z dupa dezbatere publica) - None of the urbanism deadlines have tacit approval Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -510,13 +510,31 @@ export const DEADLINE_CATALOG: DeadlineTypeDef[] = [
|
|||||||
},
|
},
|
||||||
|
|
||||||
// ═══════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════
|
||||||
// URBANISM (PUD/PUZ/PUG) — renamed from "Analiza"
|
// URBANISM (PUD/PUZ/PUG) — nu se aplica acordul tacit
|
||||||
// ═══════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════
|
||||||
{
|
{
|
||||||
id: "ctatu-analiza",
|
id: "retele-furnizare-date",
|
||||||
label: "Analiza CTATU",
|
label: "Furnizare date detinatori retele",
|
||||||
description:
|
description:
|
||||||
"Termen de analiza in Comisia Tehnica de Amenajare a Teritoriului si Urbanism.",
|
"Detinatorii de retele tehnico-edilitare furnizeaza gratuit datele solicitate de autoritate, in 15 zile de la solicitare. Aplicabil doar proiectelor cu autoritati publice.",
|
||||||
|
days: 15,
|
||||||
|
dayType: "calendar",
|
||||||
|
startDateLabel: "Data solicitarii de la autoritate",
|
||||||
|
requiresCustomStartDate: true,
|
||||||
|
startDateHint:
|
||||||
|
"Data la care autoritatea a solicitat datele de la detinatorii de retele",
|
||||||
|
tacitApprovalApplicable: false,
|
||||||
|
category: "urbanism",
|
||||||
|
legalReference: "Legea 350/2001",
|
||||||
|
directionFilter: ["iesit"],
|
||||||
|
},
|
||||||
|
|
||||||
|
// ── Aviz de oportunitate (PUZ privat) ──
|
||||||
|
{
|
||||||
|
id: "aviz-oportunitate-verificare",
|
||||||
|
label: "Aviz oportunitate — verificare / completare",
|
||||||
|
description:
|
||||||
|
"Autoritatea verifica documentatia si solicita completari in max. 30 de zile de la depunere. Daca nu solicita completari, documentatia intra in comisie.",
|
||||||
days: 30,
|
days: 30,
|
||||||
dayType: "calendar",
|
dayType: "calendar",
|
||||||
startDateLabel: "Data depunerii",
|
startDateLabel: "Data depunerii",
|
||||||
@@ -527,9 +545,10 @@ export const DEADLINE_CATALOG: DeadlineTypeDef[] = [
|
|||||||
directionFilter: ["iesit"],
|
directionFilter: ["iesit"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "consiliu-promovare",
|
id: "aviz-oportunitate-ctatu",
|
||||||
label: "Promovare Consiliu Local",
|
label: "Aviz oportunitate — convocare CTATU",
|
||||||
description: "Termen de promovare in sedinta Consiliului Local.",
|
description:
|
||||||
|
"Documentatia trebuie introdusa in Comisia Tehnica (CTATU) in maximum 30 de zile de la depunere. Se inchide cu event de tip Convocare sedinta.",
|
||||||
days: 30,
|
days: 30,
|
||||||
dayType: "calendar",
|
dayType: "calendar",
|
||||||
startDateLabel: "Data depunerii",
|
startDateLabel: "Data depunerii",
|
||||||
@@ -538,17 +557,89 @@ export const DEADLINE_CATALOG: DeadlineTypeDef[] = [
|
|||||||
category: "urbanism",
|
category: "urbanism",
|
||||||
legalReference: "Legea 350/2001",
|
legalReference: "Legea 350/2001",
|
||||||
directionFilter: ["iesit"],
|
directionFilter: ["iesit"],
|
||||||
|
chainNextTypeId: "aviz-oportunitate-emitere",
|
||||||
|
chainNextActionLabel:
|
||||||
|
"Adauga termen emitere aviz oportunitate (15 zile cal.)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "aviz-oportunitate-emitere",
|
||||||
|
label: "Aviz oportunitate — emitere dupa comisie",
|
||||||
|
description:
|
||||||
|
"Se emite avizul de oportunitate in maximum 15 zile de la analiza favorabila in comisia tehnica CTATU.",
|
||||||
|
days: 15,
|
||||||
|
dayType: "calendar",
|
||||||
|
startDateLabel: "Data analizei in comisie",
|
||||||
|
requiresCustomStartDate: true,
|
||||||
|
startDateHint:
|
||||||
|
"Data la care comisia CTATU a analizat favorabil documentatia",
|
||||||
|
tacitApprovalApplicable: false,
|
||||||
|
category: "urbanism",
|
||||||
|
legalReference: "Legea 350/2001",
|
||||||
|
directionFilter: ["iesit"],
|
||||||
|
autoTrack: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// ── Aviz arhitect sef PUD/PUZ ──
|
||||||
|
{
|
||||||
|
id: "aviz-arh-sef-ctatu",
|
||||||
|
label: "Aviz arhitect sef — convocare CTATU",
|
||||||
|
description:
|
||||||
|
"Documentatia PUD/PUZ trebuie introdusa in Comisia Tehnica (CTATU) in maximum 30 de zile de la depunere. Se inchide cu event de tip Convocare sedinta.",
|
||||||
|
days: 30,
|
||||||
|
dayType: "calendar",
|
||||||
|
startDateLabel: "Data depunerii",
|
||||||
|
requiresCustomStartDate: false,
|
||||||
|
tacitApprovalApplicable: false,
|
||||||
|
category: "urbanism",
|
||||||
|
legalReference: "Legea 350/2001",
|
||||||
|
directionFilter: ["iesit"],
|
||||||
|
chainNextTypeId: "aviz-arh-sef-emitere",
|
||||||
|
chainNextActionLabel: "Adauga termen emitere aviz arh. sef (15 zile cal.)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "aviz-arh-sef-emitere",
|
||||||
|
label: "Aviz arhitect sef — emitere dupa comisie",
|
||||||
|
description:
|
||||||
|
"Se emite avizul arhitectului sef in maximum 15 zile de la analiza in comisia tehnica CTATU.",
|
||||||
|
days: 15,
|
||||||
|
dayType: "calendar",
|
||||||
|
startDateLabel: "Data analizei in comisie",
|
||||||
|
requiresCustomStartDate: true,
|
||||||
|
startDateHint:
|
||||||
|
"Data la care comisia CTATU a analizat documentatia PUD/PUZ",
|
||||||
|
tacitApprovalApplicable: false,
|
||||||
|
category: "urbanism",
|
||||||
|
legalReference: "Legea 350/2001",
|
||||||
|
directionFilter: ["iesit"],
|
||||||
|
autoTrack: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
// ── Consiliul Local ──
|
||||||
|
{
|
||||||
|
id: "consiliu-promovare",
|
||||||
|
label: "Promovare Consiliu Local",
|
||||||
|
description:
|
||||||
|
"Primarul promoveaza documentatia completa si avizata catre Consiliul Local in maximum 30 de zile de la inregistrare.",
|
||||||
|
days: 30,
|
||||||
|
dayType: "calendar",
|
||||||
|
startDateLabel: "Data inregistrarii documentatiei complete",
|
||||||
|
requiresCustomStartDate: false,
|
||||||
|
tacitApprovalApplicable: false,
|
||||||
|
category: "urbanism",
|
||||||
|
legalReference: "Legea 350/2001",
|
||||||
|
directionFilter: ["iesit"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "consiliu-vot",
|
id: "consiliu-vot",
|
||||||
label: "Vot Consiliu Local",
|
label: "Vot Consiliu Local",
|
||||||
description:
|
description:
|
||||||
"Termen de vot in Consiliu Local de la finalizarea dezbaterii publice.",
|
"Consiliul Local emite hotararea (aprobare sau respingere) in maximum 45 de zile de la finalizarea dezbaterii publice si inaintarea rapoartelor.",
|
||||||
days: 45,
|
days: 45,
|
||||||
dayType: "calendar",
|
dayType: "calendar",
|
||||||
startDateLabel: "Data finalizare dezbatere",
|
startDateLabel: "Data finalizare dezbatere publica",
|
||||||
requiresCustomStartDate: true,
|
requiresCustomStartDate: true,
|
||||||
startDateHint: "Data finalizarii dezbaterii publice",
|
startDateHint:
|
||||||
|
"Data finalizarii dezbaterii publice si inaintarii rapoartelor catre Consiliu",
|
||||||
tacitApprovalApplicable: false,
|
tacitApprovalApplicable: false,
|
||||||
category: "urbanism",
|
category: "urbanism",
|
||||||
legalReference: "Legea 350/2001",
|
legalReference: "Legea 350/2001",
|
||||||
@@ -710,22 +801,12 @@ export const CATEGORY_LABELS: Record<DeadlineCategory, string> = {
|
|||||||
contestatie: "Contestatie",
|
contestatie: "Contestatie",
|
||||||
};
|
};
|
||||||
|
|
||||||
/** All permitting categories — shown for cerere/aviz doc types regardless of direction */
|
/** Full categories available per direction (before doc type filtering) */
|
||||||
const ALL_PERMITTING_CATEGORIES: DeadlineCategory[] = [
|
|
||||||
"certificat",
|
|
||||||
"avize",
|
|
||||||
"urbanism",
|
|
||||||
"autorizare",
|
|
||||||
"completari",
|
|
||||||
"contestatie",
|
|
||||||
];
|
|
||||||
|
|
||||||
/** Restricted categories per direction (for non-permitting doc types) */
|
|
||||||
export const DIRECTION_CATEGORIES: Record<
|
export const DIRECTION_CATEGORIES: Record<
|
||||||
RegistryDirection,
|
RegistryDirection,
|
||||||
DeadlineCategory[]
|
DeadlineCategory[]
|
||||||
> = {
|
> = {
|
||||||
iesit: ["completari"],
|
iesit: ["certificat", "avize", "urbanism", "autorizare", "completari"],
|
||||||
intrat: ["completari", "contestatie"],
|
intrat: ["completari", "contestatie"],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -737,19 +818,21 @@ const FULL_DEADLINE_DOC_TYPES = new Set(["cerere", "aviz"]);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the ordered list of deadline categories for a given direction + document type.
|
* Get the ordered list of deadline categories for a given direction + document type.
|
||||||
* - "cerere" / "aviz" doc types → full permitting set (certificat, avize, urbanism, autorizare, completari, contestatie)
|
* - iesit + cerere/aviz → full set (certificat, avize, urbanism, autorizare, completari)
|
||||||
* - All other doc types (scrisoare, notificare, etc.) → direction-dependent limited set
|
* - intrat → completari + contestatie (always, regardless of doc type)
|
||||||
|
* - iesit + other doc types → only completari
|
||||||
*/
|
*/
|
||||||
export function getCategoriesForDirection(
|
export function getCategoriesForDirection(
|
||||||
direction: RegistryDirection,
|
direction: RegistryDirection,
|
||||||
documentType?: string,
|
documentType?: string,
|
||||||
): DeadlineCategory[] {
|
): DeadlineCategory[] {
|
||||||
// cerere / aviz unlock ALL permitting categories regardless of direction
|
const all = DIRECTION_CATEGORIES[direction];
|
||||||
|
// If doc type triggers full permitting flow, show all categories for this direction
|
||||||
if (!documentType || FULL_DEADLINE_DOC_TYPES.has(documentType)) {
|
if (!documentType || FULL_DEADLINE_DOC_TYPES.has(documentType)) {
|
||||||
return ALL_PERMITTING_CATEGORIES;
|
return all;
|
||||||
}
|
}
|
||||||
// Other doc types get direction-specific limited categories
|
// Otherwise, only completari + contestatie
|
||||||
return DIRECTION_CATEGORIES[direction];
|
return all.filter((c) => c === "completari" || c === "contestatie");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user