feat: remove DirectAccessReport, keep only LegalAid entity
Complete removal of the old DirectAccessReport entity and all related files. LegalAid is now the sole entity for legal aid data management. - Remove DirectAccessReport: controller, service, hooks, entity defs, scopes, clientDefs, layouts, i18n (all 3 locales) - Remove directAccessReports link from Case - Rewrite GenerateInitialReport tool to work directly with LegalAid - Clean up Case i18n (remove old field translations) - Bump version to 1.5.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Espo\Modules\LegalAssistance\Controllers;
|
|
||||||
|
|
||||||
use Espo\Core\Controllers\Record;
|
|
||||||
|
|
||||||
class DirectAccessReport extends Record
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Espo\Modules\LegalAssistance\Hooks\Case;
|
|
||||||
|
|
||||||
use Espo\ORM\Entity;
|
|
||||||
use Espo\ORM\EntityManager;
|
|
||||||
use Espo\Core\Utils\Log;
|
|
||||||
|
|
||||||
class CreateDirectAccessTasks
|
|
||||||
{
|
|
||||||
public function __construct(
|
|
||||||
private EntityManager $entityManager,
|
|
||||||
private Log $log
|
|
||||||
) {}
|
|
||||||
|
|
||||||
public function afterSave(Entity $entity, array $options): void
|
|
||||||
{
|
|
||||||
if (!empty($options['skipHooks'])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$entity->isAttributeChanged('cLegalAidType')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$newValue = $entity->get('cLegalAidType');
|
|
||||||
$oldValue = $entity->getFetched('cLegalAidType');
|
|
||||||
|
|
||||||
if ($newValue !== 'DirectAccess' || $oldValue === 'DirectAccess') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->log->info("LegalAssistance: Creating direct access tasks for case {$entity->getId()}");
|
|
||||||
|
|
||||||
$assignedUserId = $entity->get('assignedUserId');
|
|
||||||
$now = new \DateTime('now', new \DateTimeZone('Asia/Jerusalem'));
|
|
||||||
|
|
||||||
$tasks = [
|
|
||||||
[
|
|
||||||
'name' => 'שיחת טלפון ראשונה עם הלקוח',
|
|
||||||
'dateEnd' => (clone $now)->modify('+2 days')->format('Y-m-d'),
|
|
||||||
'priority' => 'High',
|
|
||||||
'description' => 'יש ליצור קשר ראשוני עם הלקוח תוך 48 שעות ממועד קבלת המינוי.',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'פגישה עם הלקוח',
|
|
||||||
'dateEnd' => (clone $now)->modify('+7 days')->format('Y-m-d'),
|
|
||||||
'priority' => 'Normal',
|
|
||||||
'description' => 'לקבוע ולקיים פגישה ראשונה עם הלקוח. לתעד נוכחים ותוכן הפגישה.',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'שליחת דוח גישה ישירה',
|
|
||||||
'dateEnd' => (clone $now)->modify('+14 days')->format('Y-m-d'),
|
|
||||||
'priority' => 'High',
|
|
||||||
'description' => 'למלא ולשלוח דוח דיווח ראשוני לסיוע המשפטי. ניתן לבקש משירה: "תיצרי דוח גישה ישירה".',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($tasks as $taskData) {
|
|
||||||
$task = $this->entityManager->getNewEntity('Task');
|
|
||||||
$task->set([
|
|
||||||
'name' => $taskData['name'],
|
|
||||||
'status' => 'Not Started',
|
|
||||||
'priority' => $taskData['priority'],
|
|
||||||
'dateEnd' => $taskData['dateEnd'],
|
|
||||||
'description' => $taskData['description'],
|
|
||||||
'parentType' => 'Case',
|
|
||||||
'parentId' => $entity->getId(),
|
|
||||||
'assignedUserId' => $assignedUserId,
|
|
||||||
]);
|
|
||||||
$this->entityManager->saveEntity($task, ['skipHooks' => false]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->log->info("LegalAssistance: Created 3 direct access tasks for case {$entity->getId()}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,36 +5,7 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"LegalAssistance": "Legal Assistance"
|
"LegalAssistance": "Legal Assistance"
|
||||||
},
|
},
|
||||||
"fields": {
|
|
||||||
"cLegalAidType": "Legal Aid Type",
|
|
||||||
"cAppointmentDate": "Appointment Date",
|
|
||||||
"cAidType": "Aid Type",
|
|
||||||
"cUrgencyLevel": "Urgency Level",
|
|
||||||
"cFilingDeadline": "Filing Deadline"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"cLegalAidType": {
|
|
||||||
"": "",
|
|
||||||
"DirectAccess": "Direct Access",
|
|
||||||
"Regular": "Regular",
|
|
||||||
"Duty": "Duty"
|
|
||||||
},
|
|
||||||
"cAidType": {
|
|
||||||
"": "",
|
|
||||||
"הגשת ערעור": "Filing Appeal",
|
|
||||||
"יעוץ והדרכה": "Counseling & Guidance",
|
|
||||||
"סיוע נוסף ביטוח לאומי": "Additional NI Aid",
|
|
||||||
"סיוע נוסף תחום אחר": "Additional Aid Other",
|
|
||||||
"אי מתן סיוע": "No Aid Provided"
|
|
||||||
},
|
|
||||||
"cUrgencyLevel": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "Normal",
|
|
||||||
"דחוף": "Urgent",
|
|
||||||
"בהול": "Critical"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"links": {
|
"links": {
|
||||||
"directAccessReports": "Direct Access Reports"
|
"legalAids": "Legal Aid"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-150
@@ -1,150 +0,0 @@
|
|||||||
{
|
|
||||||
"scopeName": "Direct Access Report",
|
|
||||||
"scopeNamesPlural": "Direct Access Reports",
|
|
||||||
"labels": {
|
|
||||||
"Create DirectAccessReport": "Create Direct Access Report"
|
|
||||||
},
|
|
||||||
"fields": {
|
|
||||||
"name": "Report Name",
|
|
||||||
"number": "Number",
|
|
||||||
"status": "Status",
|
|
||||||
"case": "Case",
|
|
||||||
"aidType": "Aid Type",
|
|
||||||
"urgencyLevel": "Urgency Level",
|
|
||||||
"appointmentDate": "Appointment Date",
|
|
||||||
"filingDeadline": "Filing Deadline",
|
|
||||||
"additionalUrgency": "Additional Urgency",
|
|
||||||
"additionalDeadline": "Additional Deadline",
|
|
||||||
"firstContactDate": "First Contact Date",
|
|
||||||
"contactDelayReason": "Contact Delay Reason",
|
|
||||||
"meetingDate": "Meeting Date",
|
|
||||||
"meetingDelayReason": "Meeting Delay Reason",
|
|
||||||
"meetingAttendees": "Meeting Attendees",
|
|
||||||
"contactStatus": "Contact Status",
|
|
||||||
"contactStatusDetail": "Contact Status Detail",
|
|
||||||
"proceedingNumber": "Proceeding Number",
|
|
||||||
"courtName": "Court Name",
|
|
||||||
"proceedingSubject": "Proceeding Subject",
|
|
||||||
"claimSummary": "Claim Summary",
|
|
||||||
"defenseClaims": "Defense Claims",
|
|
||||||
"q1DocsReviewed": "Committee Reviewed All Documents?",
|
|
||||||
"q1DocsDetail": "Documents Detail",
|
|
||||||
"q2Reasoned": "Decision Reasoned?",
|
|
||||||
"q2ReasonDetail": "Missing Reasoning Detail",
|
|
||||||
"q3PanelMatch": "Panel Matches Impairments?",
|
|
||||||
"q4PanelComposition": "Panel Composition",
|
|
||||||
"q5ComplaintsAddressed": "All Complaints Addressed?",
|
|
||||||
"q6ComplaintsDetail": "Missing Complaints Detail",
|
|
||||||
"q7ClinicalExam": "Clinical Exam Performed?",
|
|
||||||
"q8ClinicalGap": "Clinical vs Documents Gap",
|
|
||||||
"q9MoharaApplied": "Mohara Doctrine Applied?",
|
|
||||||
"q9MoharaDetail": "Missing Mohara Data",
|
|
||||||
"q10RehabGap": "Rehab Officer vs Committee Gap?",
|
|
||||||
"q10RehabDetail": "Gap Detail",
|
|
||||||
"q11ScoreGap": "Score vs Condition Gap?",
|
|
||||||
"q11ScoreDetail": "Score Gap Detail",
|
|
||||||
"q12UniqueAspects": "Unique Aspects Addressed?",
|
|
||||||
"q12UniqueDetail": "Unique Aspects Detail",
|
|
||||||
"recommendationType": "Recommendation Type",
|
|
||||||
"recommendationDetail": "Recommendation Detail",
|
|
||||||
"additionalAidNeeded": "Additional Aid Needed",
|
|
||||||
"additionalAidNIDetail": "Additional NI Aid Detail",
|
|
||||||
"additionalAidOtherDetail": "Additional Other Aid Detail",
|
|
||||||
"additionalAidUrgency": "Additional Aid Urgency",
|
|
||||||
"additionalAidDeadlines": "Additional Aid Deadlines",
|
|
||||||
"willingToRepresent": "Willing to Represent?",
|
|
||||||
"notes": "General Notes",
|
|
||||||
"assignedUser": "Assigned User",
|
|
||||||
"teams": "Teams",
|
|
||||||
"createdAt": "Created At",
|
|
||||||
"modifiedAt": "Modified At",
|
|
||||||
"createdBy": "Created By",
|
|
||||||
"modifiedBy": "Modified By"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"status": {
|
|
||||||
"Draft": "Draft",
|
|
||||||
"Submitted": "Submitted",
|
|
||||||
"Approved": "Approved",
|
|
||||||
"Rejected": "Rejected"
|
|
||||||
},
|
|
||||||
"aidType": {
|
|
||||||
"": "",
|
|
||||||
"הגשת ערעור": "Filing Appeal",
|
|
||||||
"יעוץ והדרכה": "Counseling & Guidance",
|
|
||||||
"סיוע נוסף ביטוח לאומי": "Additional NI Aid",
|
|
||||||
"סיוע נוסף תחום אחר": "Additional Aid Other",
|
|
||||||
"אי מתן סיוע": "No Aid Provided"
|
|
||||||
},
|
|
||||||
"urgencyLevel": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "Normal",
|
|
||||||
"דחוף": "Urgent",
|
|
||||||
"בהול": "Critical"
|
|
||||||
},
|
|
||||||
"additionalUrgency": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "Normal",
|
|
||||||
"דחוף": "Urgent",
|
|
||||||
"בהול": "Critical"
|
|
||||||
},
|
|
||||||
"contactStatus": {
|
|
||||||
"": "",
|
|
||||||
"תקין": "Normal",
|
|
||||||
"לא תקין": "Not Normal"
|
|
||||||
},
|
|
||||||
"courtName": {
|
|
||||||
"": "",
|
|
||||||
"בית הדין האזורי לעבודה ירושלים": "Regional Labor Court Jerusalem",
|
|
||||||
"בית הדין האזורי לעבודה תל אביב": "Regional Labor Court Tel Aviv",
|
|
||||||
"בית הדין האזורי לעבודה חיפה": "Regional Labor Court Haifa",
|
|
||||||
"בית הדין האזורי לעבודה באר שבע": "Regional Labor Court Be'er Sheva",
|
|
||||||
"בית הדין האזורי לעבודה נצרת": "Regional Labor Court Nazareth",
|
|
||||||
"בית הדין הארצי לעבודה": "National Labor Court"
|
|
||||||
},
|
|
||||||
"proceedingSubject": {
|
|
||||||
"": "",
|
|
||||||
"נכות כללית": "General Disability",
|
|
||||||
"נכות מעבודה": "Work Disability",
|
|
||||||
"נכות איבה": "Hostility Disability",
|
|
||||||
"ניידות": "Mobility",
|
|
||||||
"אי כושר": "Incapacity",
|
|
||||||
"שירותים מיוחדים": "Special Services",
|
|
||||||
"סיעוד": "Nursing Care",
|
|
||||||
"גמלת הבטחת הכנסה": "Income Support",
|
|
||||||
"דמי אבטלה": "Unemployment Benefits",
|
|
||||||
"אחר": "Other"
|
|
||||||
},
|
|
||||||
"recommendationType": {
|
|
||||||
"": "",
|
|
||||||
"ייעוץ והדרכה חלף ייצוג": "Counseling Instead of Representation",
|
|
||||||
"ויתור הלקוח": "Client Waiver",
|
|
||||||
"החלפת ייצוג": "Change Representation",
|
|
||||||
"לא נוצר קשר": "No Contact Made",
|
|
||||||
"לא התקיימה פגישה": "No Meeting Held",
|
|
||||||
"עדיין לא ניתן להחליט": "Cannot Decide Yet",
|
|
||||||
"נדרשים מסמכים נוספים": "Additional Documents Required",
|
|
||||||
"המלצה לסירוב": "Recommendation to Refuse"
|
|
||||||
},
|
|
||||||
"additionalAidNeeded": {
|
|
||||||
"": "",
|
|
||||||
"לא נחוץ": "Not Needed",
|
|
||||||
"נחוץ בתחום ביטוח לאומי": "Needed - NI Field",
|
|
||||||
"נחוץ בתחום אחר": "Needed - Other Field"
|
|
||||||
},
|
|
||||||
"additionalAidUrgency": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "Normal",
|
|
||||||
"דחוף": "Urgent",
|
|
||||||
"בהול": "Critical"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"links": {
|
|
||||||
"case": "Case"
|
|
||||||
},
|
|
||||||
"presetFilters": {
|
|
||||||
"draft": "Draft",
|
|
||||||
"submitted": "Submitted",
|
|
||||||
"approved": "Approved"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
{
|
{
|
||||||
"scopeNames": {
|
"scopeNames": {
|
||||||
"DirectAccessReport": "Direct Access Report",
|
|
||||||
"LegalAid": "Legal Aid"
|
"LegalAid": "Legal Aid"
|
||||||
},
|
},
|
||||||
"scopeNamesPlural": {
|
"scopeNamesPlural": {
|
||||||
"DirectAccessReport": "Direct Access Reports",
|
|
||||||
"LegalAid": "Legal Aid Records"
|
"LegalAid": "Legal Aid Records"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,22 +5,7 @@
|
|||||||
"tabs": {
|
"tabs": {
|
||||||
"LegalAssistance": "סיוע משפטי"
|
"LegalAssistance": "סיוע משפטי"
|
||||||
},
|
},
|
||||||
"fields": {
|
|
||||||
"cLegalAidType": "סוג מינוי סיוע משפטי",
|
|
||||||
"cAppointmentDate": "מועד קבלת המינוי",
|
|
||||||
"cAidType": "מהות הסיוע",
|
|
||||||
"cUrgencyLevel": "דחיפות",
|
|
||||||
"cFilingDeadline": "מועד אחרון להגשה"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"cLegalAidType": {
|
|
||||||
"": "",
|
|
||||||
"DirectAccess": "גישה ישירה",
|
|
||||||
"Regular": "מינוי רגיל",
|
|
||||||
"Duty": "תורנות"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"links": {
|
"links": {
|
||||||
"directAccessReports": "דוחות גישה ישירה"
|
"legalAids": "סיוע משפטי"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-150
@@ -1,150 +0,0 @@
|
|||||||
{
|
|
||||||
"scopeName": "דוח גישה ישירה",
|
|
||||||
"scopeNamesPlural": "דוחות גישה ישירה",
|
|
||||||
"labels": {
|
|
||||||
"Create DirectAccessReport": "צור דוח גישה ישירה"
|
|
||||||
},
|
|
||||||
"fields": {
|
|
||||||
"name": "שם הדוח",
|
|
||||||
"number": "מספר",
|
|
||||||
"status": "סטטוס",
|
|
||||||
"case": "תיק",
|
|
||||||
"aidType": "מהות הסיוע",
|
|
||||||
"urgencyLevel": "דחיפות הליך",
|
|
||||||
"appointmentDate": "מועד קבלת המינוי",
|
|
||||||
"filingDeadline": "מועד אחרון להגשה",
|
|
||||||
"additionalUrgency": "דחיפות הליך נוסף",
|
|
||||||
"additionalDeadline": "מועדים להליך נוסף",
|
|
||||||
"firstContactDate": "תאריך יצירת קשר ראשוני",
|
|
||||||
"contactDelayReason": "סיבת עיכוב (אם לא תוך 48 שעות)",
|
|
||||||
"meetingDate": "תאריך פגישה עם הלקוח",
|
|
||||||
"meetingDelayReason": "סיבת עיכוב פגישה",
|
|
||||||
"meetingAttendees": "נוכחים בפגישה",
|
|
||||||
"contactStatus": "מצב קשר עם הלקוח",
|
|
||||||
"contactStatusDetail": "פירוט מצב קשר",
|
|
||||||
"proceedingNumber": "מספר הליך",
|
|
||||||
"courtName": "בית הדין",
|
|
||||||
"proceedingSubject": "עניין ההליך",
|
|
||||||
"claimSummary": "תמצית התביעה/הערעור",
|
|
||||||
"defenseClaims": "טענות ההגנה",
|
|
||||||
"q1DocsReviewed": "הוועדה התייחסה לכל המסמכים?",
|
|
||||||
"q1DocsDetail": "פירוט מסמכים",
|
|
||||||
"q2Reasoned": "ההחלטה מנומקת?",
|
|
||||||
"q2ReasonDetail": "פירוט הנמקה חסרה",
|
|
||||||
"q3PanelMatch": "הרכב תואם ליקויים?",
|
|
||||||
"q4PanelComposition": "הרכב הוועדה / הרכב חסר",
|
|
||||||
"q5ComplaintsAddressed": "התייחסו לכל התלונות?",
|
|
||||||
"q6ComplaintsDetail": "פירוט תלונות חסרות",
|
|
||||||
"q7ClinicalExam": "בדיקה קלינית נערכה?",
|
|
||||||
"q8ClinicalGap": "פער בדיקה קלינית vs מסמכים",
|
|
||||||
"q9MoharaApplied": "בחינת הלכת מוהרה (גיל, רקע, השכלה)?",
|
|
||||||
"q9MoharaDetail": "נתונים חסרים (מוהרה)",
|
|
||||||
"q10RehabGap": "פער פקיד שיקום vs ועדה?",
|
|
||||||
"q10RehabDetail": "פירוט הפער",
|
|
||||||
"q11ScoreGap": "פער ניקוד vs מצב ומסמכים?",
|
|
||||||
"q11ScoreDetail": "פירוט פער הניקוד",
|
|
||||||
"q12UniqueAspects": "התייחסות להיבטים ייחודיים?",
|
|
||||||
"q12UniqueDetail": "פירוט היבטים ייחודיים",
|
|
||||||
"recommendationType": "סוג ההמלצה",
|
|
||||||
"recommendationDetail": "פירוט ההמלצה",
|
|
||||||
"additionalAidNeeded": "צורך בסיוע נוסף",
|
|
||||||
"additionalAidNIDetail": "פירוט סיוע נוסף (ביטוח לאומי)",
|
|
||||||
"additionalAidOtherDetail": "פירוט סיוע נוסף (תחום אחר)",
|
|
||||||
"additionalAidUrgency": "דחיפות הסיוע הנוסף",
|
|
||||||
"additionalAidDeadlines": "מועדים (סיוע נוסף)",
|
|
||||||
"willingToRepresent": "בתחום התמחות + מעוניין לייצג?",
|
|
||||||
"notes": "הערות כלליות",
|
|
||||||
"assignedUser": "אחראי",
|
|
||||||
"teams": "צוותים",
|
|
||||||
"createdAt": "נוצר ב",
|
|
||||||
"modifiedAt": "עודכן ב",
|
|
||||||
"createdBy": "נוצר על ידי",
|
|
||||||
"modifiedBy": "עודכן על ידי"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"status": {
|
|
||||||
"Draft": "טיוטה",
|
|
||||||
"Submitted": "נשלח",
|
|
||||||
"Approved": "אושר",
|
|
||||||
"Rejected": "נדחה"
|
|
||||||
},
|
|
||||||
"aidType": {
|
|
||||||
"": "",
|
|
||||||
"הגשת ערעור": "הגשת ערעור",
|
|
||||||
"יעוץ והדרכה": "יעוץ והדרכה",
|
|
||||||
"סיוע נוסף ביטוח לאומי": "סיוע נוסף ביטוח לאומי",
|
|
||||||
"סיוע נוסף תחום אחר": "סיוע נוסף תחום אחר",
|
|
||||||
"אי מתן סיוע": "אי מתן סיוע"
|
|
||||||
},
|
|
||||||
"urgencyLevel": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "רגיל",
|
|
||||||
"דחוף": "דחוף",
|
|
||||||
"בהול": "בהול"
|
|
||||||
},
|
|
||||||
"additionalUrgency": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "רגיל",
|
|
||||||
"דחוף": "דחוף",
|
|
||||||
"בהול": "בהול"
|
|
||||||
},
|
|
||||||
"contactStatus": {
|
|
||||||
"": "",
|
|
||||||
"תקין": "תקין",
|
|
||||||
"לא תקין": "לא תקין"
|
|
||||||
},
|
|
||||||
"courtName": {
|
|
||||||
"": "",
|
|
||||||
"בית הדין האזורי לעבודה ירושלים": "בית הדין האזורי לעבודה ירושלים",
|
|
||||||
"בית הדין האזורי לעבודה תל אביב": "בית הדין האזורי לעבודה תל אביב",
|
|
||||||
"בית הדין האזורי לעבודה חיפה": "בית הדין האזורי לעבודה חיפה",
|
|
||||||
"בית הדין האזורי לעבודה באר שבע": "בית הדין האזורי לעבודה באר שבע",
|
|
||||||
"בית הדין האזורי לעבודה נצרת": "בית הדין האזורי לעבודה נצרת",
|
|
||||||
"בית הדין הארצי לעבודה": "בית הדין הארצי לעבודה"
|
|
||||||
},
|
|
||||||
"proceedingSubject": {
|
|
||||||
"": "",
|
|
||||||
"נכות כללית": "נכות כללית",
|
|
||||||
"נכות מעבודה": "נכות מעבודה",
|
|
||||||
"נכות איבה": "נכות איבה",
|
|
||||||
"ניידות": "ניידות",
|
|
||||||
"אי כושר": "אי כושר",
|
|
||||||
"שירותים מיוחדים": "שירותים מיוחדים",
|
|
||||||
"סיעוד": "סיעוד",
|
|
||||||
"גמלת הבטחת הכנסה": "גמלת הבטחת הכנסה",
|
|
||||||
"דמי אבטלה": "דמי אבטלה",
|
|
||||||
"אחר": "אחר"
|
|
||||||
},
|
|
||||||
"recommendationType": {
|
|
||||||
"": "",
|
|
||||||
"ייעוץ והדרכה חלף ייצוג": "ייעוץ והדרכה חלף ייצוג",
|
|
||||||
"ויתור הלקוח": "ויתור הלקוח",
|
|
||||||
"החלפת ייצוג": "החלפת ייצוג",
|
|
||||||
"לא נוצר קשר": "לא נוצר קשר",
|
|
||||||
"לא התקיימה פגישה": "לא התקיימה פגישה",
|
|
||||||
"עדיין לא ניתן להחליט": "עדיין לא ניתן להחליט",
|
|
||||||
"נדרשים מסמכים נוספים": "נדרשים מסמכים נוספים",
|
|
||||||
"המלצה לסירוב": "המלצה לסירוב"
|
|
||||||
},
|
|
||||||
"additionalAidNeeded": {
|
|
||||||
"": "",
|
|
||||||
"לא נחוץ": "לא נחוץ",
|
|
||||||
"נחוץ בתחום ביטוח לאומי": "נחוץ בתחום ביטוח לאומי",
|
|
||||||
"נחוץ בתחום אחר": "נחוץ בתחום אחר"
|
|
||||||
},
|
|
||||||
"additionalAidUrgency": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "רגיל",
|
|
||||||
"דחוף": "דחוף",
|
|
||||||
"בהול": "בהול"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"links": {
|
|
||||||
"case": "תיק"
|
|
||||||
},
|
|
||||||
"presetFilters": {
|
|
||||||
"draft": "טיוטות",
|
|
||||||
"submitted": "נשלחו",
|
|
||||||
"approved": "אושרו"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
{
|
{
|
||||||
"scopeNames": {
|
"scopeNames": {
|
||||||
"DirectAccessReport": "דוח גישה ישירה",
|
|
||||||
"LegalAid": "סיוע משפטי"
|
"LegalAid": "סיוע משפטי"
|
||||||
},
|
},
|
||||||
"scopeNamesPlural": {
|
"scopeNamesPlural": {
|
||||||
"DirectAccessReport": "דוחות גישה ישירה",
|
|
||||||
"LegalAid": "סיוע משפטי"
|
"LegalAid": "סיוע משפטי"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
"LegalAssistance": "סיוע משפטי"
|
"LegalAssistance": "סיוע משפטי"
|
||||||
},
|
},
|
||||||
"links": {
|
"links": {
|
||||||
"directAccessReports": "דוחות גישה ישירה",
|
|
||||||
"legalAids": "סיוע משפטי"
|
"legalAids": "סיוע משפטי"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-150
@@ -1,150 +0,0 @@
|
|||||||
{
|
|
||||||
"scopeName": "דוח גישה ישירה",
|
|
||||||
"scopeNamesPlural": "דוחות גישה ישירה",
|
|
||||||
"labels": {
|
|
||||||
"Create DirectAccessReport": "צור דוח גישה ישירה"
|
|
||||||
},
|
|
||||||
"fields": {
|
|
||||||
"name": "שם הדוח",
|
|
||||||
"number": "מספר",
|
|
||||||
"status": "סטטוס",
|
|
||||||
"case": "תיק",
|
|
||||||
"aidType": "מהות הסיוע",
|
|
||||||
"urgencyLevel": "דחיפות הליך",
|
|
||||||
"appointmentDate": "מועד קבלת המינוי",
|
|
||||||
"filingDeadline": "מועד אחרון להגשה",
|
|
||||||
"additionalUrgency": "דחיפות הליך נוסף",
|
|
||||||
"additionalDeadline": "מועדים להליך נוסף",
|
|
||||||
"firstContactDate": "תאריך יצירת קשר ראשוני",
|
|
||||||
"contactDelayReason": "סיבת עיכוב (אם לא תוך 48 שעות)",
|
|
||||||
"meetingDate": "תאריך פגישה עם הלקוח",
|
|
||||||
"meetingDelayReason": "סיבת עיכוב פגישה",
|
|
||||||
"meetingAttendees": "נוכחים בפגישה",
|
|
||||||
"contactStatus": "מצב קשר עם הלקוח",
|
|
||||||
"contactStatusDetail": "פירוט מצב קשר",
|
|
||||||
"proceedingNumber": "מספר הליך",
|
|
||||||
"courtName": "בית הדין",
|
|
||||||
"proceedingSubject": "עניין ההליך",
|
|
||||||
"claimSummary": "תמצית התביעה/הערעור",
|
|
||||||
"defenseClaims": "טענות ההגנה",
|
|
||||||
"q1DocsReviewed": "הוועדה התייחסה לכל המסמכים?",
|
|
||||||
"q1DocsDetail": "פירוט מסמכים",
|
|
||||||
"q2Reasoned": "ההחלטה מנומקת?",
|
|
||||||
"q2ReasonDetail": "פירוט הנמקה חסרה",
|
|
||||||
"q3PanelMatch": "הרכב תואם ליקויים?",
|
|
||||||
"q4PanelComposition": "הרכב הוועדה / הרכב חסר",
|
|
||||||
"q5ComplaintsAddressed": "התייחסו לכל התלונות?",
|
|
||||||
"q6ComplaintsDetail": "פירוט תלונות חסרות",
|
|
||||||
"q7ClinicalExam": "בדיקה קלינית נערכה?",
|
|
||||||
"q8ClinicalGap": "פער בדיקה קלינית vs מסמכים",
|
|
||||||
"q9MoharaApplied": "בחינת הלכת מוהרה (גיל, רקע, השכלה)?",
|
|
||||||
"q9MoharaDetail": "נתונים חסרים (מוהרה)",
|
|
||||||
"q10RehabGap": "פער פקיד שיקום vs ועדה?",
|
|
||||||
"q10RehabDetail": "פירוט הפער",
|
|
||||||
"q11ScoreGap": "פער ניקוד vs מצב ומסמכים?",
|
|
||||||
"q11ScoreDetail": "פירוט פער הניקוד",
|
|
||||||
"q12UniqueAspects": "התייחסות להיבטים ייחודיים?",
|
|
||||||
"q12UniqueDetail": "פירוט היבטים ייחודיים",
|
|
||||||
"recommendationType": "סוג ההמלצה",
|
|
||||||
"recommendationDetail": "פירוט ההמלצה",
|
|
||||||
"additionalAidNeeded": "צורך בסיוע נוסף",
|
|
||||||
"additionalAidNIDetail": "פירוט סיוע נוסף (ביטוח לאומי)",
|
|
||||||
"additionalAidOtherDetail": "פירוט סיוע נוסף (תחום אחר)",
|
|
||||||
"additionalAidUrgency": "דחיפות הסיוע הנוסף",
|
|
||||||
"additionalAidDeadlines": "מועדים (סיוע נוסף)",
|
|
||||||
"willingToRepresent": "בתחום התמחות + מעוניין לייצג?",
|
|
||||||
"notes": "הערות כלליות",
|
|
||||||
"assignedUser": "אחראי",
|
|
||||||
"teams": "צוותים",
|
|
||||||
"createdAt": "נוצר ב",
|
|
||||||
"modifiedAt": "עודכן ב",
|
|
||||||
"createdBy": "נוצר על ידי",
|
|
||||||
"modifiedBy": "עודכן על ידי"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"status": {
|
|
||||||
"Draft": "טיוטה",
|
|
||||||
"Submitted": "נשלח",
|
|
||||||
"Approved": "אושר",
|
|
||||||
"Rejected": "נדחה"
|
|
||||||
},
|
|
||||||
"aidType": {
|
|
||||||
"": "",
|
|
||||||
"הגשת ערעור": "הגשת ערעור",
|
|
||||||
"יעוץ והדרכה": "יעוץ והדרכה",
|
|
||||||
"סיוע נוסף ביטוח לאומי": "סיוע נוסף ביטוח לאומי",
|
|
||||||
"סיוע נוסף תחום אחר": "סיוע נוסף תחום אחר",
|
|
||||||
"אי מתן סיוע": "אי מתן סיוע"
|
|
||||||
},
|
|
||||||
"urgencyLevel": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "רגיל",
|
|
||||||
"דחוף": "דחוף",
|
|
||||||
"בהול": "בהול"
|
|
||||||
},
|
|
||||||
"additionalUrgency": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "רגיל",
|
|
||||||
"דחוף": "דחוף",
|
|
||||||
"בהול": "בהול"
|
|
||||||
},
|
|
||||||
"contactStatus": {
|
|
||||||
"": "",
|
|
||||||
"תקין": "תקין",
|
|
||||||
"לא תקין": "לא תקין"
|
|
||||||
},
|
|
||||||
"courtName": {
|
|
||||||
"": "",
|
|
||||||
"בית הדין האזורי לעבודה ירושלים": "בית הדין האזורי לעבודה ירושלים",
|
|
||||||
"בית הדין האזורי לעבודה תל אביב": "בית הדין האזורי לעבודה תל אביב",
|
|
||||||
"בית הדין האזורי לעבודה חיפה": "בית הדין האזורי לעבודה חיפה",
|
|
||||||
"בית הדין האזורי לעבודה באר שבע": "בית הדין האזורי לעבודה באר שבע",
|
|
||||||
"בית הדין האזורי לעבודה נצרת": "בית הדין האזורי לעבודה נצרת",
|
|
||||||
"בית הדין הארצי לעבודה": "בית הדין הארצי לעבודה"
|
|
||||||
},
|
|
||||||
"proceedingSubject": {
|
|
||||||
"": "",
|
|
||||||
"נכות כללית": "נכות כללית",
|
|
||||||
"נכות מעבודה": "נכות מעבודה",
|
|
||||||
"נכות איבה": "נכות איבה",
|
|
||||||
"ניידות": "ניידות",
|
|
||||||
"אי כושר": "אי כושר",
|
|
||||||
"שירותים מיוחדים": "שירותים מיוחדים",
|
|
||||||
"סיעוד": "סיעוד",
|
|
||||||
"גמלת הבטחת הכנסה": "גמלת הבטחת הכנסה",
|
|
||||||
"דמי אבטלה": "דמי אבטלה",
|
|
||||||
"אחר": "אחר"
|
|
||||||
},
|
|
||||||
"recommendationType": {
|
|
||||||
"": "",
|
|
||||||
"ייעוץ והדרכה חלף ייצוג": "ייעוץ והדרכה חלף ייצוג",
|
|
||||||
"ויתור הלקוח": "ויתור הלקוח",
|
|
||||||
"החלפת ייצוג": "החלפת ייצוג",
|
|
||||||
"לא נוצר קשר": "לא נוצר קשר",
|
|
||||||
"לא התקיימה פגישה": "לא התקיימה פגישה",
|
|
||||||
"עדיין לא ניתן להחליט": "עדיין לא ניתן להחליט",
|
|
||||||
"נדרשים מסמכים נוספים": "נדרשים מסמכים נוספים",
|
|
||||||
"המלצה לסירוב": "המלצה לסירוב"
|
|
||||||
},
|
|
||||||
"additionalAidNeeded": {
|
|
||||||
"": "",
|
|
||||||
"לא נחוץ": "לא נחוץ",
|
|
||||||
"נחוץ בתחום ביטוח לאומי": "נחוץ בתחום ביטוח לאומי",
|
|
||||||
"נחוץ בתחום אחר": "נחוץ בתחום אחר"
|
|
||||||
},
|
|
||||||
"additionalAidUrgency": {
|
|
||||||
"": "",
|
|
||||||
"רגיל": "רגיל",
|
|
||||||
"דחוף": "דחוף",
|
|
||||||
"בהול": "בהול"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"links": {
|
|
||||||
"case": "תיק"
|
|
||||||
},
|
|
||||||
"presetFilters": {
|
|
||||||
"draft": "טיוטות",
|
|
||||||
"submitted": "נשלחו",
|
|
||||||
"approved": "אושרו"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
{
|
{
|
||||||
"scopeNames": {
|
"scopeNames": {
|
||||||
"DirectAccessReport": "דוח גישה ישירה",
|
|
||||||
"LegalAid": "סיוע משפטי"
|
"LegalAid": "סיוע משפטי"
|
||||||
},
|
},
|
||||||
"scopeNamesPlural": {
|
"scopeNamesPlural": {
|
||||||
"DirectAccessReport": "דוחות גישה ישירה",
|
|
||||||
"LegalAid": "סיוע משפטי"
|
"LegalAid": "סיוע משפטי"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-36
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"controller": "controllers/record",
|
|
||||||
"boolFilterList": ["onlyMy"],
|
|
||||||
"iconClass": "fas fa-file-alt",
|
|
||||||
"color": "#6C3483",
|
|
||||||
"kanbanViewMode": true,
|
|
||||||
"statusField": "status",
|
|
||||||
"filterList": [
|
|
||||||
{
|
|
||||||
"name": "draft",
|
|
||||||
"style": "default"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "submitted",
|
|
||||||
"style": "warning"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "approved",
|
|
||||||
"style": "success"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"menu": {
|
|
||||||
"list": {
|
|
||||||
"buttons": []
|
|
||||||
},
|
|
||||||
"detail": {
|
|
||||||
"buttons": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"relationshipPanels": {
|
|
||||||
"case": {
|
|
||||||
"select": true,
|
|
||||||
"create": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +1,5 @@
|
|||||||
{
|
{
|
||||||
"links": {
|
"links": {
|
||||||
"directAccessReports": {
|
|
||||||
"type": "hasMany",
|
|
||||||
"entity": "DirectAccessReport",
|
|
||||||
"foreign": "case",
|
|
||||||
"layoutRelationshipsDisabled": false
|
|
||||||
},
|
|
||||||
"legalAids": {
|
"legalAids": {
|
||||||
"type": "hasMany",
|
"type": "hasMany",
|
||||||
"entity": "LegalAid",
|
"entity": "LegalAid",
|
||||||
|
|||||||
-269
@@ -1,269 +0,0 @@
|
|||||||
{
|
|
||||||
"fields": {
|
|
||||||
"name": {
|
|
||||||
"type": "varchar",
|
|
||||||
"required": true,
|
|
||||||
"pattern": "$noBadCharacters"
|
|
||||||
},
|
|
||||||
"number": {
|
|
||||||
"type": "autoincrement",
|
|
||||||
"index": true
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["Draft", "Submitted", "Approved", "Rejected"],
|
|
||||||
"default": "Draft",
|
|
||||||
"audited": true,
|
|
||||||
"displayAsLabel": true,
|
|
||||||
"style": {
|
|
||||||
"Draft": "default",
|
|
||||||
"Submitted": "warning",
|
|
||||||
"Approved": "success",
|
|
||||||
"Rejected": "danger"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"case": {
|
|
||||||
"type": "link",
|
|
||||||
"required": true
|
|
||||||
},
|
|
||||||
|
|
||||||
"aidType": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "הגשת ערעור", "יעוץ והדרכה", "סיוע נוסף ביטוח לאומי", "סיוע נוסף תחום אחר", "אי מתן סיוע"],
|
|
||||||
"audited": true
|
|
||||||
},
|
|
||||||
"urgencyLevel": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "רגיל", "דחוף", "בהול"],
|
|
||||||
"default": "רגיל",
|
|
||||||
"displayAsLabel": true,
|
|
||||||
"style": {
|
|
||||||
"רגיל": "default",
|
|
||||||
"דחוף": "warning",
|
|
||||||
"בהול": "danger"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"appointmentDate": {
|
|
||||||
"type": "date"
|
|
||||||
},
|
|
||||||
"filingDeadline": {
|
|
||||||
"type": "date"
|
|
||||||
},
|
|
||||||
"additionalUrgency": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "רגיל", "דחוף", "בהול"]
|
|
||||||
},
|
|
||||||
"additionalDeadline": {
|
|
||||||
"type": "varchar",
|
|
||||||
"maxLength": 150
|
|
||||||
},
|
|
||||||
|
|
||||||
"firstContactDate": {
|
|
||||||
"type": "date"
|
|
||||||
},
|
|
||||||
"contactDelayReason": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"meetingDate": {
|
|
||||||
"type": "date"
|
|
||||||
},
|
|
||||||
"meetingDelayReason": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"meetingAttendees": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"contactStatus": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "תקין", "לא תקין"]
|
|
||||||
},
|
|
||||||
"contactStatusDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
|
|
||||||
"proceedingNumber": {
|
|
||||||
"type": "varchar",
|
|
||||||
"maxLength": 50
|
|
||||||
},
|
|
||||||
"courtName": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "בית הדין האזורי לעבודה ירושלים", "בית הדין האזורי לעבודה תל אביב", "בית הדין האזורי לעבודה חיפה", "בית הדין האזורי לעבודה באר שבע", "בית הדין האזורי לעבודה נצרת", "בית הדין הארצי לעבודה"]
|
|
||||||
},
|
|
||||||
"proceedingSubject": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "נכות כללית", "נכות מעבודה", "נכות איבה", "ניידות", "אי כושר", "שירותים מיוחדים", "סיעוד", "גמלת הבטחת הכנסה", "דמי אבטלה", "אחר"]
|
|
||||||
},
|
|
||||||
"claimSummary": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"defenseClaims": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
|
|
||||||
"q1DocsReviewed": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q1DocsDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"q2Reasoned": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q2ReasonDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"q3PanelMatch": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q4PanelComposition": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"q5ComplaintsAddressed": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q6ComplaintsDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"q7ClinicalExam": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q8ClinicalGap": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
|
|
||||||
"q9MoharaApplied": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q9MoharaDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"q10RehabGap": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q10RehabDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
|
|
||||||
"q11ScoreGap": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q11ScoreDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"q12UniqueAspects": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"q12UniqueDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
|
|
||||||
"recommendationType": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "ייעוץ והדרכה חלף ייצוג", "ויתור הלקוח", "החלפת ייצוג", "לא נוצר קשר", "לא התקיימה פגישה", "עדיין לא ניתן להחליט", "נדרשים מסמכים נוספים", "המלצה לסירוב"]
|
|
||||||
},
|
|
||||||
"recommendationDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
|
|
||||||
"additionalAidNeeded": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "לא נחוץ", "נחוץ בתחום ביטוח לאומי", "נחוץ בתחום אחר"]
|
|
||||||
},
|
|
||||||
"additionalAidNIDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"additionalAidOtherDetail": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
"additionalAidUrgency": {
|
|
||||||
"type": "enum",
|
|
||||||
"options": ["", "רגיל", "דחוף", "בהול"]
|
|
||||||
},
|
|
||||||
"additionalAidDeadlines": {
|
|
||||||
"type": "varchar",
|
|
||||||
"maxLength": 150
|
|
||||||
},
|
|
||||||
"willingToRepresent": {
|
|
||||||
"type": "bool",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
|
|
||||||
"notes": {
|
|
||||||
"type": "text"
|
|
||||||
},
|
|
||||||
|
|
||||||
"createdAt": {
|
|
||||||
"type": "datetime",
|
|
||||||
"readOnly": true
|
|
||||||
},
|
|
||||||
"modifiedAt": {
|
|
||||||
"type": "datetime",
|
|
||||||
"readOnly": true
|
|
||||||
},
|
|
||||||
"createdBy": {
|
|
||||||
"type": "link",
|
|
||||||
"readOnly": true,
|
|
||||||
"view": "views/fields/user"
|
|
||||||
},
|
|
||||||
"modifiedBy": {
|
|
||||||
"type": "link",
|
|
||||||
"readOnly": true,
|
|
||||||
"view": "views/fields/user"
|
|
||||||
},
|
|
||||||
"assignedUser": {
|
|
||||||
"type": "link",
|
|
||||||
"view": "views/fields/assigned-user"
|
|
||||||
},
|
|
||||||
"teams": {
|
|
||||||
"type": "linkMultiple",
|
|
||||||
"view": "views/fields/teams"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"links": {
|
|
||||||
"case": {
|
|
||||||
"type": "belongsTo",
|
|
||||||
"entity": "Case",
|
|
||||||
"foreign": "directAccessReports"
|
|
||||||
},
|
|
||||||
"createdBy": {
|
|
||||||
"type": "belongsTo",
|
|
||||||
"entity": "User"
|
|
||||||
},
|
|
||||||
"modifiedBy": {
|
|
||||||
"type": "belongsTo",
|
|
||||||
"entity": "User"
|
|
||||||
},
|
|
||||||
"assignedUser": {
|
|
||||||
"type": "belongsTo",
|
|
||||||
"entity": "User"
|
|
||||||
},
|
|
||||||
"teams": {
|
|
||||||
"type": "hasMany",
|
|
||||||
"entity": "Team",
|
|
||||||
"relationName": "entityTeam",
|
|
||||||
"layoutRelationshipsDisabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"collection": {
|
|
||||||
"orderBy": "createdAt",
|
|
||||||
"order": "desc",
|
|
||||||
"textFilterFields": ["name", "number"]
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"status": {
|
|
||||||
"columns": ["status", "deleted"]
|
|
||||||
},
|
|
||||||
"createdAt": {
|
|
||||||
"columns": ["createdAt"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-81
@@ -1,81 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"label": "כותרת ופרטי תיק",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "name"}, {"name": "number"}],
|
|
||||||
[{"name": "case"}, {"name": "status"}],
|
|
||||||
[{"name": "assignedUser"}, {"name": "teams"}]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "מהות הסיוע",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "aidType"}, {"name": "urgencyLevel"}],
|
|
||||||
[{"name": "appointmentDate"}, {"name": "filingDeadline"}],
|
|
||||||
[{"name": "additionalUrgency"}, {"name": "additionalDeadline"}]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "קשר עם הלקוח",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "firstContactDate"}, {"name": "contactDelayReason"}],
|
|
||||||
[{"name": "meetingDate"}, {"name": "meetingDelayReason"}],
|
|
||||||
[{"name": "meetingAttendees"}, {"name": "contactStatus"}],
|
|
||||||
[{"name": "contactStatusDetail"}, false]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "פרטי ההליך",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "proceedingNumber"}, {"name": "courtName"}],
|
|
||||||
[{"name": "proceedingSubject"}, false],
|
|
||||||
[{"name": "claimSummary", "fullWidth": true}],
|
|
||||||
[{"name": "defenseClaims", "fullWidth": true}]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "בחינת סיכוי משפטי — נכות",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "q1DocsReviewed"}, {"name": "q1DocsDetail"}],
|
|
||||||
[{"name": "q2Reasoned"}, {"name": "q2ReasonDetail"}],
|
|
||||||
[{"name": "q3PanelMatch"}, {"name": "q4PanelComposition"}],
|
|
||||||
[{"name": "q5ComplaintsAddressed"}, {"name": "q6ComplaintsDetail"}],
|
|
||||||
[{"name": "q7ClinicalExam"}, {"name": "q8ClinicalGap"}]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "בחינת סיכוי משפטי — אי כושר",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "q9MoharaApplied"}, {"name": "q9MoharaDetail"}],
|
|
||||||
[{"name": "q10RehabGap"}, {"name": "q10RehabDetail"}]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "בחינת סיכוי משפטי — שירותים מיוחדים/סיעוד",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "q11ScoreGap"}, {"name": "q11ScoreDetail"}],
|
|
||||||
[{"name": "q12UniqueAspects"}, {"name": "q12UniqueDetail"}]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "המלצה",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "recommendationType"}, false],
|
|
||||||
[{"name": "recommendationDetail", "fullWidth": true}]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "מיצוי זכויות",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "additionalAidNeeded"}, {"name": "additionalAidUrgency"}],
|
|
||||||
[{"name": "additionalAidNIDetail"}, {"name": "additionalAidOtherDetail"}],
|
|
||||||
[{"name": "additionalAidDeadlines"}, {"name": "willingToRepresent"}]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "הערות",
|
|
||||||
"rows": [
|
|
||||||
[{"name": "notes", "fullWidth": true}]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
-11
@@ -1,11 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"rows": [
|
|
||||||
[{"name": "name"}],
|
|
||||||
[{"name": "case"}],
|
|
||||||
[{"name": "status"}],
|
|
||||||
[{"name": "aidType"}],
|
|
||||||
[{"name": "recommendationType"}]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
-10
@@ -1,10 +0,0 @@
|
|||||||
[
|
|
||||||
{"name": "number", "width": 8},
|
|
||||||
{"name": "name", "link": true},
|
|
||||||
{"name": "case", "width": 20},
|
|
||||||
{"name": "status", "width": 12},
|
|
||||||
{"name": "aidType", "width": 15},
|
|
||||||
{"name": "recommendationType", "width": 15},
|
|
||||||
{"name": "createdAt", "width": 15},
|
|
||||||
{"name": "assignedUser", "width": 15}
|
|
||||||
]
|
|
||||||
-15
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"entity": true,
|
|
||||||
"object": true,
|
|
||||||
"stream": true,
|
|
||||||
"tab": false,
|
|
||||||
"acl": true,
|
|
||||||
"aclPortal": false,
|
|
||||||
"disabled": false,
|
|
||||||
"module": "LegalAssistance",
|
|
||||||
"isCustom": false,
|
|
||||||
"notifications": true,
|
|
||||||
"calendar": false,
|
|
||||||
"activity": false,
|
|
||||||
"kanbanStatusIgnoreList": ["Approved", "Rejected"]
|
|
||||||
}
|
|
||||||
@@ -1,211 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Espo\Modules\LegalAssistance\Services;
|
|
||||||
|
|
||||||
use Espo\Core\Exceptions\Error;
|
|
||||||
use Espo\Core\InjectableFactory;
|
|
||||||
use Espo\ORM\EntityManager;
|
|
||||||
use Espo\Core\Utils\Log;
|
|
||||||
use Espo\Core\Utils\DateTime as DateTimeUtil;
|
|
||||||
use Espo\Entities\User;
|
|
||||||
|
|
||||||
class DirectAccessReportService
|
|
||||||
{
|
|
||||||
public function __construct(
|
|
||||||
private EntityManager $entityManager,
|
|
||||||
private InjectableFactory $injectableFactory,
|
|
||||||
private Log $log,
|
|
||||||
private User $user,
|
|
||||||
private DateTimeUtil $dateTimeUtil
|
|
||||||
) {}
|
|
||||||
|
|
||||||
public function generateReport(string $caseId, string $userId, array $params): array
|
|
||||||
{
|
|
||||||
$case = $this->entityManager->getEntityById('Case', $caseId);
|
|
||||||
if (!$case) {
|
|
||||||
throw new Error("Case {$caseId} not found.");
|
|
||||||
}
|
|
||||||
|
|
||||||
$contact = null;
|
|
||||||
$contactId = $case->get('contactId');
|
|
||||||
if ($contactId) {
|
|
||||||
$contact = $this->entityManager->getEntityById('Contact', $contactId);
|
|
||||||
}
|
|
||||||
|
|
||||||
$contactName = $contact
|
|
||||||
? trim($contact->get('firstName') . ' ' . $contact->get('lastName'))
|
|
||||||
: 'ללא איש קשר';
|
|
||||||
|
|
||||||
// Extract legal analysis from nested object
|
|
||||||
$legalAnalysis = $params['legalAnalysis'] ?? [];
|
|
||||||
if (is_string($legalAnalysis)) {
|
|
||||||
$legalAnalysis = json_decode($legalAnalysis, true) ?? [];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find or create LegalAid entity for this case
|
|
||||||
$legalAid = $this->findOrCreateLegalAid($case, $contact, $contactName, $userId, $params, $legalAnalysis);
|
|
||||||
|
|
||||||
// Generate DOCX using template from LegalAid entity
|
|
||||||
$reportName = "דוח גישה ישירה — {$contactName}";
|
|
||||||
$docxResult = $this->generateDocx($legalAid, $reportName);
|
|
||||||
|
|
||||||
$msg = "✅ דוח גישה ישירה נוצר בהצלחה: \"{$reportName}\"";
|
|
||||||
if (!empty($docxResult['fileName'])) {
|
|
||||||
$msg .= "\n📄 מסמך DOCX נוצר: {$docxResult['fileName']}";
|
|
||||||
}
|
|
||||||
|
|
||||||
return [
|
|
||||||
'success' => true,
|
|
||||||
'message' => $msg,
|
|
||||||
'entityType' => 'LegalAid',
|
|
||||||
'entityId' => $legalAid->getId(),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
private function findOrCreateLegalAid($case, $contact, string $contactName, string $userId, array $params, array $legalAnalysis)
|
|
||||||
{
|
|
||||||
$caseId = $case->getId();
|
|
||||||
|
|
||||||
// Look for existing LegalAid record for this case
|
|
||||||
$legalAid = $this->entityManager
|
|
||||||
->getRDBRepository('LegalAid')
|
|
||||||
->where(['caseId' => $caseId])
|
|
||||||
->findOne();
|
|
||||||
|
|
||||||
if (!$legalAid) {
|
|
||||||
$legalAid = $this->entityManager->getNewEntity('LegalAid');
|
|
||||||
}
|
|
||||||
|
|
||||||
$legalAid->set([
|
|
||||||
'name' => "סיוע משפטי — {$contactName}",
|
|
||||||
'status' => 'Active',
|
|
||||||
'caseId' => $caseId,
|
|
||||||
'contactId' => $contact ? $contact->getId() : null,
|
|
||||||
'contactName' => $contactName,
|
|
||||||
'assignedUserId' => $userId,
|
|
||||||
'legalAidNumber' => $case->get('cLegalAidNumber') ?? '',
|
|
||||||
'reportDate' => date('Y-m-d'),
|
|
||||||
|
|
||||||
// מהות הסיוע
|
|
||||||
'aidType' => $params['aidType'] ?? $legalAid->get('aidType'),
|
|
||||||
'urgencyLevel' => $params['urgencyLevel'] ?? $legalAid->get('urgencyLevel'),
|
|
||||||
'appointmentDate' => $this->normalizeDate($params['appointmentDate'] ?? null) ?? $legalAid->get('appointmentDate'),
|
|
||||||
'filingDeadline' => $this->normalizeDate($params['filingDeadline'] ?? null) ?? $legalAid->get('filingDeadline'),
|
|
||||||
'additionalUrgency' => $params['additionalUrgency'] ?? $legalAid->get('additionalUrgency'),
|
|
||||||
'additionalDeadline' => $params['additionalDeadline'] ?? $legalAid->get('additionalDeadline'),
|
|
||||||
|
|
||||||
// קשר עם הלקוח
|
|
||||||
'firstContactDate' => $this->normalizeDate($params['firstContactDate'] ?? null) ?? $legalAid->get('firstContactDate'),
|
|
||||||
'contactDelayReason' => $params['contactDelayReason'] ?? $legalAid->get('contactDelayReason'),
|
|
||||||
'meetingDate' => $this->normalizeDate($params['meetingDate'] ?? null) ?? $legalAid->get('meetingDate'),
|
|
||||||
'meetingDelayReason' => $params['meetingDelayReason'] ?? $legalAid->get('meetingDelayReason'),
|
|
||||||
'meetingAttendees' => $params['meetingAttendees'] ?? $legalAid->get('meetingAttendees'),
|
|
||||||
'contactStatus' => $params['contactStatus'] ?? $legalAid->get('contactStatus'),
|
|
||||||
'contactStatusDetail' => $params['contactStatusDetail'] ?? $legalAid->get('contactStatusDetail'),
|
|
||||||
|
|
||||||
// פרטי ההליך
|
|
||||||
'proceedingNumber' => $params['proceedingNumber'] ?? $legalAid->get('proceedingNumber') ?? $case->get('cCourtCaseNumber'),
|
|
||||||
'courtName' => $params['courtName'] ?? $legalAid->get('courtName'),
|
|
||||||
'proceedingSubject' => $params['proceedingSubject'] ?? $legalAid->get('proceedingSubject'),
|
|
||||||
'claimSummary' => $params['claimSummary'] ?? $legalAid->get('claimSummary'),
|
|
||||||
'defenseClaims' => $params['defenseClaims'] ?? $legalAid->get('defenseClaims'),
|
|
||||||
|
|
||||||
// בחינת סיכוי משפטי
|
|
||||||
'q1DocsReviewed' => $legalAnalysis['q1DocsReviewed'] ?? $legalAid->get('q1DocsReviewed') ?? false,
|
|
||||||
'q1DocsDetail' => $legalAnalysis['q1DocsDetail'] ?? $legalAid->get('q1DocsDetail'),
|
|
||||||
'q2Reasoned' => $legalAnalysis['q2Reasoned'] ?? $legalAid->get('q2Reasoned') ?? false,
|
|
||||||
'q2ReasonDetail' => $legalAnalysis['q2ReasonDetail'] ?? $legalAid->get('q2ReasonDetail'),
|
|
||||||
'q3PanelMatch' => $legalAnalysis['q3PanelMatch'] ?? $legalAid->get('q3PanelMatch') ?? false,
|
|
||||||
'q4PanelComposition' => $legalAnalysis['q4PanelComposition'] ?? $legalAid->get('q4PanelComposition'),
|
|
||||||
'q5ComplaintsAddressed' => $legalAnalysis['q5ComplaintsAddressed'] ?? $legalAid->get('q5ComplaintsAddressed') ?? false,
|
|
||||||
'q6ComplaintsDetail' => $legalAnalysis['q6ComplaintsDetail'] ?? $legalAid->get('q6ComplaintsDetail'),
|
|
||||||
'q7ClinicalExam' => $legalAnalysis['q7ClinicalExam'] ?? $legalAid->get('q7ClinicalExam') ?? false,
|
|
||||||
'q8ClinicalGap' => $legalAnalysis['q8ClinicalGap'] ?? $legalAid->get('q8ClinicalGap'),
|
|
||||||
'q9MoharaApplied' => $legalAnalysis['q9MoharaApplied'] ?? $legalAid->get('q9MoharaApplied') ?? false,
|
|
||||||
'q9MoharaDetail' => $legalAnalysis['q9MoharaDetail'] ?? $legalAid->get('q9MoharaDetail'),
|
|
||||||
'q10RehabGap' => $legalAnalysis['q10RehabGap'] ?? $legalAid->get('q10RehabGap') ?? false,
|
|
||||||
'q10RehabDetail' => $legalAnalysis['q10RehabDetail'] ?? $legalAid->get('q10RehabDetail'),
|
|
||||||
'q11ScoreGap' => $legalAnalysis['q11ScoreGap'] ?? $legalAid->get('q11ScoreGap') ?? false,
|
|
||||||
'q11ScoreDetail' => $legalAnalysis['q11ScoreDetail'] ?? $legalAid->get('q11ScoreDetail'),
|
|
||||||
'q12UniqueAspects' => $legalAnalysis['q12UniqueAspects'] ?? $legalAid->get('q12UniqueAspects') ?? false,
|
|
||||||
'q12UniqueDetail' => $legalAnalysis['q12UniqueDetail'] ?? $legalAid->get('q12UniqueDetail'),
|
|
||||||
|
|
||||||
// המלצה
|
|
||||||
'recommendationType' => $params['recommendationType'] ?? $legalAid->get('recommendationType'),
|
|
||||||
'recommendationDetail' => $params['recommendationDetail'] ?? $legalAid->get('recommendationDetail'),
|
|
||||||
|
|
||||||
// מיצוי זכויות
|
|
||||||
'additionalAidNeeded' => $params['additionalAidNeeded'] ?? $legalAid->get('additionalAidNeeded'),
|
|
||||||
'additionalAidNIDetail' => $params['additionalAidNIDetail'] ?? $legalAid->get('additionalAidNIDetail'),
|
|
||||||
'additionalAidOtherDetail' => $params['additionalAidOtherDetail'] ?? $legalAid->get('additionalAidOtherDetail'),
|
|
||||||
'additionalAidUrgency' => $params['additionalAidUrgency'] ?? $legalAid->get('additionalAidUrgency'),
|
|
||||||
'additionalAidDeadlines' => $params['additionalAidDeadlines'] ?? $legalAid->get('additionalAidDeadlines'),
|
|
||||||
'willingToRepresent' => $params['willingToRepresent'] ?? $legalAid->get('willingToRepresent') ?? false,
|
|
||||||
|
|
||||||
// הערות
|
|
||||||
'notes' => $params['notes'] ?? $legalAid->get('notes'),
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->entityManager->saveEntity($legalAid);
|
|
||||||
|
|
||||||
$this->log->info("LegalAssistance: Saved LegalAid {$legalAid->getId()} for case {$case->getId()}");
|
|
||||||
|
|
||||||
return $legalAid;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function generateDocx($legalAid, string $documentSubject): array
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$templateServiceClass = 'Espo\\Modules\\LocalDocuments\\Services\\LocalDocumentTemplateService';
|
|
||||||
if (!class_exists($templateServiceClass)) {
|
|
||||||
$templateServiceClass = 'Espo\\Modules\\NetworkStorageIntegration\\Services\\DocumentTemplateService';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!class_exists($templateServiceClass)) {
|
|
||||||
$this->log->warning("LegalAssistance: No template service available for DOCX generation");
|
|
||||||
return ['success' => false, 'error' => 'No template service'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$template = $this->entityManager
|
|
||||||
->getRDBRepository('DocumentTemplate')
|
|
||||||
->where(['name' => 'דוח גישה ישירה'])
|
|
||||||
->findOne();
|
|
||||||
|
|
||||||
if (!$template) {
|
|
||||||
$this->log->warning("LegalAssistance: Template 'דוח גישה ישירה' not found");
|
|
||||||
return ['success' => false, 'error' => 'Template not found'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$templateService = $this->injectableFactory->create($templateServiceClass);
|
|
||||||
|
|
||||||
$result = $templateService->createFromTemplate(
|
|
||||||
$template->getId(),
|
|
||||||
'LegalAid',
|
|
||||||
$legalAid->getId(),
|
|
||||||
$documentSubject
|
|
||||||
);
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
} catch (\Throwable $e) {
|
|
||||||
$this->log->error("LegalAssistance: DOCX generation failed: " . $e->getMessage());
|
|
||||||
return ['success' => false, 'error' => $e->getMessage()];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function normalizeDate(?string $value): ?string
|
|
||||||
{
|
|
||||||
if (!$value) return null;
|
|
||||||
|
|
||||||
// Handle DD/MM/YYYY format
|
|
||||||
if (preg_match('/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/', $value, $m)) {
|
|
||||||
return "{$m[3]}-{$m[2]}-{$m[1]}";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle YYYY-MM-DD format (already correct)
|
|
||||||
if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $value)) {
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+121
-4
@@ -6,7 +6,6 @@ use Espo\Core\Exceptions\Error;
|
|||||||
use Espo\Core\InjectableFactory;
|
use Espo\Core\InjectableFactory;
|
||||||
use Espo\ORM\EntityManager;
|
use Espo\ORM\EntityManager;
|
||||||
use Espo\Core\Utils\Log;
|
use Espo\Core\Utils\Log;
|
||||||
use Espo\Modules\LegalAssistance\Services\DirectAccessReportService;
|
|
||||||
|
|
||||||
class GenerateInitialReport
|
class GenerateInitialReport
|
||||||
{
|
{
|
||||||
@@ -24,10 +23,128 @@ class GenerateInitialReport
|
|||||||
|
|
||||||
$this->log->info("LegalAssistance: Generating initial report for case {$caseId}");
|
$this->log->info("LegalAssistance: Generating initial report for case {$caseId}");
|
||||||
|
|
||||||
$service = $this->injectableFactory->create(DirectAccessReportService::class);
|
$case = $this->entityManager->getEntityById('Case', $caseId);
|
||||||
|
if (!$case) {
|
||||||
|
throw new Error("Case {$caseId} not found.");
|
||||||
|
}
|
||||||
|
|
||||||
$result = $service->generateReport($caseId, $userId, $params);
|
// Get contact
|
||||||
|
$contact = null;
|
||||||
|
$contactId = $case->get('contactId');
|
||||||
|
if (!$contactId) {
|
||||||
|
$contactsIds = $case->getLinkMultipleIdList('contacts');
|
||||||
|
if (!empty($contactsIds)) {
|
||||||
|
$contactId = $contactsIds[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($contactId) {
|
||||||
|
$contact = $this->entityManager->getEntityById('Contact', $contactId);
|
||||||
|
}
|
||||||
|
|
||||||
return $result;
|
$contactName = $contact
|
||||||
|
? trim($contact->get('firstName') . ' ' . $contact->get('lastName'))
|
||||||
|
: 'ללא איש קשר';
|
||||||
|
|
||||||
|
// Extract legal analysis from nested object
|
||||||
|
$legalAnalysis = $params['legalAnalysis'] ?? [];
|
||||||
|
if (is_string($legalAnalysis)) {
|
||||||
|
$legalAnalysis = json_decode($legalAnalysis, true) ?? [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find or create LegalAid
|
||||||
|
$legalAid = $this->entityManager
|
||||||
|
->getRDBRepository('LegalAid')
|
||||||
|
->where(['caseId' => $caseId])
|
||||||
|
->findOne();
|
||||||
|
|
||||||
|
if (!$legalAid) {
|
||||||
|
$legalAid = $this->entityManager->getNewEntity('LegalAid');
|
||||||
|
}
|
||||||
|
|
||||||
|
$legalAid->set([
|
||||||
|
'name' => "סיוע משפטי — {$contactName}",
|
||||||
|
'status' => 'Active',
|
||||||
|
'caseId' => $caseId,
|
||||||
|
'contactId' => $contactId,
|
||||||
|
'contactName' => $contactName,
|
||||||
|
'assignedUserId' => $userId,
|
||||||
|
'legalAidNumber' => $case->get('cLegalAidNumber') ?? '',
|
||||||
|
'reportDate' => date('Y-m-d'),
|
||||||
|
|
||||||
|
'aidType' => $params['aidType'] ?? $legalAid->get('aidType'),
|
||||||
|
'urgencyLevel' => $params['urgencyLevel'] ?? $legalAid->get('urgencyLevel'),
|
||||||
|
'appointmentDate' => $this->normalizeDate($params['appointmentDate'] ?? null) ?? $legalAid->get('appointmentDate'),
|
||||||
|
'filingDeadline' => $this->normalizeDate($params['filingDeadline'] ?? null) ?? $legalAid->get('filingDeadline'),
|
||||||
|
'additionalUrgency' => $params['additionalUrgency'] ?? $legalAid->get('additionalUrgency'),
|
||||||
|
'additionalDeadline' => $params['additionalDeadline'] ?? $legalAid->get('additionalDeadline'),
|
||||||
|
|
||||||
|
'firstContactDate' => $this->normalizeDate($params['firstContactDate'] ?? null) ?? $legalAid->get('firstContactDate'),
|
||||||
|
'contactDelayReason' => $params['contactDelayReason'] ?? $legalAid->get('contactDelayReason'),
|
||||||
|
'meetingDate' => $this->normalizeDate($params['meetingDate'] ?? null) ?? $legalAid->get('meetingDate'),
|
||||||
|
'meetingDelayReason' => $params['meetingDelayReason'] ?? $legalAid->get('meetingDelayReason'),
|
||||||
|
'meetingAttendees' => $params['meetingAttendees'] ?? $legalAid->get('meetingAttendees'),
|
||||||
|
'contactStatus' => $params['contactStatus'] ?? $legalAid->get('contactStatus'),
|
||||||
|
'contactStatusDetail' => $params['contactStatusDetail'] ?? $legalAid->get('contactStatusDetail'),
|
||||||
|
|
||||||
|
'proceedingNumber' => $params['proceedingNumber'] ?? $legalAid->get('proceedingNumber') ?? $case->get('cCourtCaseNumber'),
|
||||||
|
'courtName' => $params['courtName'] ?? $legalAid->get('courtName'),
|
||||||
|
'proceedingSubject' => $params['proceedingSubject'] ?? $legalAid->get('proceedingSubject'),
|
||||||
|
'claimSummary' => $params['claimSummary'] ?? $legalAid->get('claimSummary'),
|
||||||
|
'defenseClaims' => $params['defenseClaims'] ?? $legalAid->get('defenseClaims'),
|
||||||
|
|
||||||
|
'q1DocsReviewed' => $legalAnalysis['q1DocsReviewed'] ?? $legalAid->get('q1DocsReviewed') ?? false,
|
||||||
|
'q1DocsDetail' => $legalAnalysis['q1DocsDetail'] ?? $legalAid->get('q1DocsDetail'),
|
||||||
|
'q2Reasoned' => $legalAnalysis['q2Reasoned'] ?? $legalAid->get('q2Reasoned') ?? false,
|
||||||
|
'q2ReasonDetail' => $legalAnalysis['q2ReasonDetail'] ?? $legalAid->get('q2ReasonDetail'),
|
||||||
|
'q3PanelMatch' => $legalAnalysis['q3PanelMatch'] ?? $legalAid->get('q3PanelMatch') ?? false,
|
||||||
|
'q4PanelComposition' => $legalAnalysis['q4PanelComposition'] ?? $legalAid->get('q4PanelComposition'),
|
||||||
|
'q5ComplaintsAddressed' => $legalAnalysis['q5ComplaintsAddressed'] ?? $legalAid->get('q5ComplaintsAddressed') ?? false,
|
||||||
|
'q6ComplaintsDetail' => $legalAnalysis['q6ComplaintsDetail'] ?? $legalAid->get('q6ComplaintsDetail'),
|
||||||
|
'q7ClinicalExam' => $legalAnalysis['q7ClinicalExam'] ?? $legalAid->get('q7ClinicalExam') ?? false,
|
||||||
|
'q8ClinicalGap' => $legalAnalysis['q8ClinicalGap'] ?? $legalAid->get('q8ClinicalGap'),
|
||||||
|
'q9MoharaApplied' => $legalAnalysis['q9MoharaApplied'] ?? $legalAid->get('q9MoharaApplied') ?? false,
|
||||||
|
'q9MoharaDetail' => $legalAnalysis['q9MoharaDetail'] ?? $legalAid->get('q9MoharaDetail'),
|
||||||
|
'q10RehabGap' => $legalAnalysis['q10RehabGap'] ?? $legalAid->get('q10RehabGap') ?? false,
|
||||||
|
'q10RehabDetail' => $legalAnalysis['q10RehabDetail'] ?? $legalAid->get('q10RehabDetail'),
|
||||||
|
'q11ScoreGap' => $legalAnalysis['q11ScoreGap'] ?? $legalAid->get('q11ScoreGap') ?? false,
|
||||||
|
'q11ScoreDetail' => $legalAnalysis['q11ScoreDetail'] ?? $legalAid->get('q11ScoreDetail'),
|
||||||
|
'q12UniqueAspects' => $legalAnalysis['q12UniqueAspects'] ?? $legalAid->get('q12UniqueAspects') ?? false,
|
||||||
|
'q12UniqueDetail' => $legalAnalysis['q12UniqueDetail'] ?? $legalAid->get('q12UniqueDetail'),
|
||||||
|
|
||||||
|
'recommendationType' => $params['recommendationType'] ?? $legalAid->get('recommendationType'),
|
||||||
|
'recommendationDetail' => $params['recommendationDetail'] ?? $legalAid->get('recommendationDetail'),
|
||||||
|
|
||||||
|
'additionalAidNeeded' => $params['additionalAidNeeded'] ?? $legalAid->get('additionalAidNeeded'),
|
||||||
|
'additionalAidNIDetail' => $params['additionalAidNIDetail'] ?? $legalAid->get('additionalAidNIDetail'),
|
||||||
|
'additionalAidOtherDetail' => $params['additionalAidOtherDetail'] ?? $legalAid->get('additionalAidOtherDetail'),
|
||||||
|
'additionalAidUrgency' => $params['additionalAidUrgency'] ?? $legalAid->get('additionalAidUrgency'),
|
||||||
|
'additionalAidDeadlines' => $params['additionalAidDeadlines'] ?? $legalAid->get('additionalAidDeadlines'),
|
||||||
|
'willingToRepresent' => $params['willingToRepresent'] ?? $legalAid->get('willingToRepresent') ?? false,
|
||||||
|
|
||||||
|
'notes' => $params['notes'] ?? $legalAid->get('notes'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->entityManager->saveEntity($legalAid);
|
||||||
|
|
||||||
|
$this->log->info("LegalAssistance: Saved LegalAid {$legalAid->getId()} for case {$caseId}");
|
||||||
|
|
||||||
|
return [
|
||||||
|
'success' => true,
|
||||||
|
'message' => "✅ רשומת סיוע משפטי נוצרה/עודכנה: \"{$contactName}\"",
|
||||||
|
'entityType' => 'LegalAid',
|
||||||
|
'entityId' => $legalAid->getId(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function normalizeDate(?string $value): ?string
|
||||||
|
{
|
||||||
|
if (!$value) return null;
|
||||||
|
if (preg_match('/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/', $value, $m)) {
|
||||||
|
return "{$m[3]}-{$m[2]}-{$m[1]}";
|
||||||
|
}
|
||||||
|
if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $value)) {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
return $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "LegalAssistance",
|
"name": "LegalAssistance",
|
||||||
"version": "1.4.1",
|
"version": "1.5.0",
|
||||||
"acceptableVersions": [">=8.0.0"],
|
"acceptableVersions": [">=8.0.0"],
|
||||||
"php": [">=8.1"],
|
"php": [">=8.1"],
|
||||||
"releaseDate": "2026-04-07",
|
"releaseDate": "2026-04-07",
|
||||||
|
|||||||
Reference in New Issue
Block a user