Resolved Conflicts

This commit is contained in:
rajesh
2025-06-03 19:23:46 +05:30
125 changed files with 4072 additions and 541 deletions

View File

@@ -26,7 +26,7 @@ default.hub.uuid=p4lk3bcx1RStqTaIVVbXs
#Login to Odessa, Appointment Creation, Upload document Configuration
appointment.base.url=https://prd.galileonetwork.it/gateway/rest
appointment.portal.user=UtenzaAPIPortal@621
appointment.portal.password=u13nzaAP1P0rtal!
appointment.portal.password=Valeria2016!!
appointment.portal.source=GEPAFINPORTAL
appointment.portal.context=GEPAFINPORTAL

View File

@@ -56,7 +56,10 @@ active.profile.folder=dev
# MailGun API
mailGun_base_url=https://api.eu.mailgun.net/
#Below credentials are only for sending mail to rinaldo
mailGun_apiKey= 398e3dea1911fe941af261906ec99362-07e2c238-8094421f
mailGun_user=comunicazione@paghiamoci.ai
mailGun_domainName=paghiamoci.ai
api.pecUrl=https://ws.pecmassiva.com
#senderEmail=mailer@bflows.net
@@ -72,4 +75,19 @@ spring.cloud.openfeign.client.config.default.readTimeout=300000
spring.rabbitmq.connection-timeout=120000
app.bandi.login.url.suffix=/loginadmin
app.confidi.login.url.suffix=/confidi
app.confidi.login.url.suffix=/confidi
#sviluppumbria protocol
codAoo=SVILUMBRIA-01
sviluppumbria.username=protocollatoresvilumbria
password=8e85ea4265e49497d697168fd3d34916
CLASSIFICA=06.004.3
TIPO_PROTOCOLLAZIONE=E
tipoCorrispondenteCompany=PersonaGiuridica
tipoCorrispondenteWithoutCompany=Persona
mezzo=Altro
indirizzoPec=ufficio01@domain.com
codiceUo=101_10
competente=true
tipoCorrispondente=Amministrazione
sviluppumbriaUuid=t7jh5wfg9QXylNaTZkPoE

View File

@@ -2653,6 +2653,8 @@
<column name="file_path" value="https://mementoresources.s3.eu-west-1.amazonaws.com/gepafin/local/template/PROCURA_BANDI_TEMPLATE_CONFIDI.docx"></column>
<column name="type" value="DOCUMENT"></column>
<column name="source" value="DELEGATION_TEMPLATE_CONFIDI"></column>
<column name="created_date" value="2025-05-21 03:00:00"/>
<column name="updated_date" value="2025-05-21 03:00:00"/>
</insert>
</changeSet>
@@ -2666,14 +2668,27 @@
<column name="file_path" value="https://mementoresources.s3.eu-west-1.amazonaws.com/gepafin/local/template/true.png"></column>
<column name="type" value="IMAGE"></column>
<column name="source" value="PDF_TRUE"></column>
<column name="created_date" value="2025-05-21 03:00:00"/>
<column name="updated_date" value="2025-05-21 03:00:00"/>
</insert>
<insert tableName="document">
<column name="file_name" value="GEPAFIN_PDF_FALSE.PNG"></column>
<column name="file_path" value="https://mementoresources.s3.eu-west-1.amazonaws.com/gepafin/local/template/false.png"></column>
<column name="type" value="IMAGE"></column>
<column name="source" value="PDF_FALSE"></column>
<column name="created_date" value="2025-05-21 03:00:00"/>
<column name="updated_date" value="2025-05-21 03:00:00"/>
</insert>
</changeSet>
<changeSet id="14-04-2025_RK_161000" author="Rajesh Khore">
<sqlFile dbms="postgresql"
path="db/dump/update_form_field_data_14_04_2025.sql"/>
</changeSet>
<changeSet id="09-04-2025_NK_172550" author="Nisha Kashyap">
<sqlFile
dbms="postgresql"
path="db/dump/create_application_form_view.sql"/>
</changeSet>
<changeSet id="25-03-2025_NK_160730" author="Nisha Kashyap">
<sqlFile dbms="postgresql"
@@ -2849,12 +2864,95 @@
</addColumn>
</changeSet>
<changeSet id="05-05-2025_PK_191415" author="Piyush Kag">
<changeSet id="08-04-2025_PK_160730" author="Piyush kag">
<sqlFile dbms="postgresql"
path="db/dump/create_assigned_application_view.sql"/>
</changeSet>
<changeSet id="28-04-2025_PK_154315" author="Piyush Kag">
<sqlFile dbms="postgresql"
path="db/dump/update_json_template_for_notification_28_04_2025.sql"/>
</changeSet>
<changeSet id="28-04-2025_PK_163615" author="Piyush Kag">
<sqlFile dbms="postgresql"
path="db/dump/update_system_email_template_28_04_2025.sql"/>
</changeSet>
<changeSet id="22-04-2025_PK_192400" author="Piyush Kag">
<sqlFile dbms="postgresql"
path="db/dump/update_json_template_for_notification_22_04_2025.sql"/>
</changeSet>
<changeSet id="24-04-2025_PK_121820" author="Piyush Kag">
<addColumn tableName="email_log">
<column name="user_action_id" type="INTEGER">
<constraints foreignKeyName="fk_email_log_user_action" references="user_action(id)"/>
</column>
</addColumn>
</changeSet>
<changeSet id="30-04-2025_PK_125515" author="Piyush Kag">
<sqlFile dbms="postgresql"
path="db/dump/insert_system_email_template_for_application_submission_failure_30_04_2025.sql"/>
</changeSet>
<changeSet id="06-05-2025_PK_193412" author="Piyush Kag">
<addColumn tableName="application_amendment_request">
<column name="email_send_response" type="TEXT">
<constraints nullable="true"/>
</column>
</addColumn>
<addColumn tableName="application_evaluation">
<column name="email_send_response" type="TEXT">
<constraints nullable="true"/>
</column>
</addColumn>
<addColumn tableName="gepafin_user">
<column name="email_send_response" type="TEXT">
<constraints nullable="true"/>
</column>
</addColumn>
</changeSet>
<changeSet id="07-05-2025_PK_195815" author="Piyush Kag">
<sqlFile dbms="postgresql"
path="db/dump/update_application_amendment_request_view.sql"/>
</changeSet>
<changeSet id="07-05-2025_PK_201518" author="Piyush Kag">
<sqlFile dbms="postgresql"
path="db/dump/update_assigned_application_view.sql"/>
</changeSet>
<changeSet id="08-05-2025_PK_203515" author="Piyush Kag">
<sqlFile dbms="postgresql"
path="db/dump/update_system_email_template_for_application_submission_failure_08_05_2025.sql"/>
</changeSet>
<changeSet id="14-05-2025_NK_163815" author="Nisha Kashyap">
<sqlFile dbms="postgresql"
path="db/dump/update_assigned_application_view_14_5_2025.sql"/>
</changeSet>
<changeSet id="26-05-2025_RK_184320" author="Rajesh Khore">
<addColumn tableName="application_signed_document">
<column name="file_hash" type="VARCHAR(255)"></column>
</addColumn>
<addColumn tableName="protocol">
<column name="external_protocol_number" type="VARCHAR(255)"/>
<column name="external_protocol_year" type="INTEGER"/>
<column name="external_protocol_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
</addColumn>
<addColumn tableName="company">
<column name="pec" type="VARCHAR(255)"></column>
</addColumn>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,125 @@
CREATE OR REPLACE VIEW gepafin_schema.application_form_view AS
SELECT app_data.id,
app_data.call_id,
app_data.application_form_id,
app_data.form_id,
app_data.application_id,
field_data.value ->> 'id' AS field_id,
COALESCE(
(SELECT s.value ->> 'value'
FROM jsonb_array_elements(field_data.value -> 'settings') s(value)
WHERE s.value ->> 'name' = 'label'
LIMIT 1),
field_data.value ->> 'label'
) AS field_label,
(
SELECT (s.value ->> 'value')::boolean
FROM jsonb_array_elements(field_data.value -> 'settings') s(value)
WHERE s.value ->> 'name' = 'reportEnable'
LIMIT 1
) AS report_enable,
COALESCE( (SELECT s.value ->> 'value'
FROM jsonb_array_elements(field_data.value -> 'settings') s(value)
WHERE s.value ->> 'name' = 'reportHeader'
LIMIT 1),
field_data.value ->> 'reportHeader'
) AS report_header,
field_data.value ->> 'name' AS field_type,
CASE
WHEN field_data.value ->> 'name' = 'fileupload' THEN
to_jsonb((
SELECT string_agg(d.file_name, ', ')
FROM unnest(string_to_array(app_data.field_value, ',')) file_ids(file_id)
JOIN gepafin_schema.document d ON d.id::text = file_ids.file_id
WHERE d.is_deleted = false
))
WHEN field_data.value ->> 'name' IN ('checkboxes', 'select', 'radio') THEN
CASE
WHEN app_data.field_value ~~ '[%' THEN
to_jsonb((
SELECT string_agg(opt.value ->> 'label', ', ')
FROM jsonb_array_elements_text(app_data.field_value::jsonb) selected_id(value)
CROSS JOIN LATERAL (
SELECT s.value
FROM jsonb_array_elements(field_data.value -> 'settings') s(value)
WHERE s.value ->> 'name' = 'options'
) options_setting,
LATERAL jsonb_array_elements(options_setting.value -> 'value') opt(value)
WHERE opt.value ->> 'name' = selected_id.value
))
ELSE
to_jsonb((
SELECT opt.value ->> 'label'
FROM (
SELECT s.value
FROM jsonb_array_elements(field_data.value -> 'settings') s(value)
WHERE s.value ->> 'name' = 'options'
) options_setting,
LATERAL jsonb_array_elements(options_setting.value -> 'value') opt(value)
WHERE opt.value ->> 'name' = app_data.field_value
LIMIT 1
))
END
ELSE
to_jsonb(app_data.field_value)
END AS field_value,
app_data.status,
app_data.amount_requested,
app_data.amount_accepted,
app_data.is_deleted,
app_data.hub_id,
app_data.user_id,
app_data.evaluation_version,
app_data.company_id,
c.company_name,
c.vat_number AS company_vat_number,
c.codice_ateco,
c.codice_fiscale AS company_codice_fiscale,
p.protocol_number,
b.codice_fiscale AS user_codice_fiscale,
COALESCE(NULLIF(TRIM(BOTH FROM CONCAT(COALESCE(u.first_name, ''), ' ', COALESCE(u.last_name, ''))), ''), '') AS user_name,
uwc.is_legal_representant AS legal_representative,
cl.name AS call_title,
cl.end_date AS call_end_date,
cl.end_time AS call_end_time,
cl.start_date AS call_start_date,
cl.start_time AS call_start_time
FROM (
SELECT a.id AS application_id,
a.call_id,
a.protocol_number,
af.id AS application_form_id,
af.form_id AS form_id,
aff.id AS id,
aff.field_value,
a.status,
a.amount_requested,
a.amount_accepted,
a.is_deleted,
a.hub_id,
a.user_id,
a.evaluation_version,
a.created_date,
a.company_id,
aff.field_id,
f.content
FROM gepafin_schema.application a
JOIN gepafin_schema.application_form af ON af.application_id = a.id
JOIN gepafin_schema.application_form_field aff ON aff.application_form_id = af.id
JOIN gepafin_schema.form f ON f.id = af.form_id
WHERE a.is_deleted = false
) app_data
CROSS JOIN LATERAL (
SELECT jsonb_array_elements.value
FROM jsonb_array_elements(app_data.content::jsonb) jsonb_array_elements(value)
WHERE jsonb_array_elements.value ->> 'id' = app_data.field_id::text
) field_data(value)
LEFT JOIN gepafin_schema.call cl ON app_data.call_id = cl.id
LEFT JOIN gepafin_schema.company c ON app_data.company_id = c.id
LEFT JOIN gepafin_schema.protocol p ON app_data.protocol_number = p.id
LEFT JOIN gepafin_schema.gepafin_user u ON app_data.user_id = u.id
LEFT JOIN gepafin_schema.user_with_company uwc ON app_data.user_id = uwc.user_id AND app_data.company_id = uwc.company_id AND uwc.is_deleted = false
LEFT JOIN gepafin_schema.beneficiary b ON u.beneficiary_id = b.id
WHERE app_data.id IS NOT NULL
AND app_data.status NOT IN ('DRAFT', 'AWAITING', 'READY')
ORDER BY app_data.id, field_data.value ->> 'id';

View File

@@ -0,0 +1,52 @@
CREATE OR REPLACE VIEW assigned_applications_view AS
SELECT
-- From assigned_applications
aa.id AS id,
aa.user_id AS user_id,
aa.status AS status,
aa.created_date AS created_date,
aa.updated_date AS updated_date,
aa.is_deleted AS is_deleted,
-- From application
a.id AS application_id,
a.status AS application_status,
a.submission_date AS submission_date,
ae.end_date AS evaluation_end_date,
a.ndg AS ndg,
a.appointment_id AS appointment_id,
-- From protocol (OneToOne)
p.protocol_number AS protocol_number,
-- From call (ManyToOne)
cl.name AS call_name,
-- From company (ManyToOne)
c.company_name AS company_name
FROM gepafin_schema.assigned_applications aa
-- Join application (ManyToOne from assigned_applications)
LEFT JOIN gepafin_schema.application a
ON aa.application_id = a.id
AND (a.is_deleted IS FALSE OR a.is_deleted IS NULL)
-- Join application_evaluation (application_id matches + not deleted)
LEFT JOIN gepafin_schema.application_evaluation ae
ON ae.application_id = a.id
AND (ae.is_deleted IS FALSE OR ae.is_deleted IS NULL)
-- Join protocol (OneToOne from application)
LEFT JOIN gepafin_schema.protocol p
ON a.protocol_number = p.id
-- Join call (ManyToOne from application)
LEFT JOIN gepafin_schema.call cl
ON a.call_id = cl.id
-- Join company (ManyToOne from application)
LEFT JOIN gepafin_schema.company c
ON a.company_id = c.id
WHERE aa.is_deleted IS FALSE OR aa.is_deleted IS NULL;

View File

@@ -0,0 +1,46 @@
INSERT INTO gepafin_schema.system_email_template (
template_name,
"type",
html_content,
subject,
"json",
"system",
is_deleted,
created_date,
updated_date,
email_scenario)
VALUES (
'Application submission failure notification',
'APPLICATION_SUBMISSION_FAILURE_NOTIFICATION',
'<html>
<body style="font-family: Arial, sans-serif; color: #333; line-height: 1.6;">
<div style="padding: 20px; border: 1px solid #ddd; border-radius: 8px; max-width: 650px; margin: auto;">
<p>Buongiorno,</p>
<p>
Si prega di notare che si è verificato un errore durante linvio dell email "{{scenario}}" per la chiamata: <strong>{{call_name}}</strong>. </p>
<p>
<strong>Dettagli:</strong><br/>
- ID Applicazione: {{application_id}}<br/>
- Nome Azienda: {{company_name}}<br/>
- Numero Protocollo: {{protocol_number}}<br/>
- ID Azione Utente: {{user_action_id}}
</p>
<p>
Si prega di effettuare i controlli appropriati e di adottare le misure correttive necessarie.
</p>
<p>Cordiali saluti,</p>
<p><strong>Gepafin S.p.a.</strong></p>
</div>
</body>
</html>',
'ERRORE INVIO EMAIL - BANDO {{call_name}}',
NULL,
true,
false,
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP,
'APPLICATION_SUBMISSION_FAILURE'
);

View File

@@ -0,0 +1,27 @@
CREATE OR REPLACE VIEW application_amendment_request_view AS
SELECT a.id,
a.application_id,
p.protocol_number,
cl.name AS call_name,
c.company_name,
a.start_date,
a.end_date AS expiration_date,
COALESCE(NULLIF(TRIM(BOTH FROM concat(COALESCE(u.first_name, ''), ' ', COALESCE(u.last_name, ''))), ''), '') AS assigned_user_name,
aa.user_id AS assigned_user_id,
a.status,
a.note,
a.internal_note,
app.user_id AS application_user_id,
a.created_date,
a.updated_date,
a.is_deleted,
a.email_send_response
FROM gepafin_schema.application_amendment_request a
LEFT JOIN gepafin_schema.application app ON a.application_id = app.id AND (app.is_deleted IS FALSE OR app.is_deleted IS NULL)
LEFT JOIN gepafin_schema.call cl ON app.call_id = cl.id
LEFT JOIN gepafin_schema.company c ON app.company_id = c.id
LEFT JOIN gepafin_schema.protocol p ON a.protocol_id = p.id
LEFT JOIN gepafin_schema.assigned_applications aa ON app.id = aa.application_id AND (aa.is_deleted IS FALSE OR aa.is_deleted IS NULL)
LEFT JOIN gepafin_schema.gepafin_user u ON aa.user_id = u.id
WHERE a.is_deleted IS FALSE OR a.is_deleted IS NULL ORDER BY id;

View File

@@ -0,0 +1,53 @@
CREATE OR REPLACE VIEW assigned_applications_view AS
SELECT
-- From assigned_applications
aa.id AS id,
aa.user_id AS user_id,
aa.status AS status,
aa.created_date AS created_date,
aa.updated_date AS updated_date,
aa.is_deleted AS is_deleted,
-- From application
a.id AS application_id,
a.status AS application_status,
a.submission_date AS submission_date,
ae.end_date AS evaluation_end_date,
a.ndg AS ndg,
a.appointment_id AS appointment_id,
-- From protocol (OneToOne)
p.protocol_number AS protocol_number,
-- From call (ManyToOne)
cl.name AS call_name,
-- From company (ManyToOne)
c.company_name AS company_name,
ae.email_send_response AS email_send_response
FROM gepafin_schema.assigned_applications aa
-- Join application (ManyToOne from assigned_applications)
LEFT JOIN gepafin_schema.application a
ON aa.application_id = a.id
AND (a.is_deleted IS FALSE OR a.is_deleted IS NULL)
-- Join application_evaluation (application_id matches + not deleted)
LEFT JOIN gepafin_schema.application_evaluation ae
ON ae.application_id = a.id
AND (ae.is_deleted IS FALSE OR ae.is_deleted IS NULL)
-- Join protocol (OneToOne from application)
LEFT JOIN gepafin_schema.protocol p
ON a.protocol_number = p.id
-- Join call (ManyToOne from application)
LEFT JOIN gepafin_schema.call cl
ON a.call_id = cl.id
-- Join company (ManyToOne from application)
LEFT JOIN gepafin_schema.company c
ON a.company_id = c.id
WHERE aa.is_deleted IS FALSE OR aa.is_deleted IS NULL;

View File

@@ -0,0 +1,57 @@
DROP VIEW IF EXISTS gepafin_schema.assigned_applications_view ;
CREATE OR REPLACE VIEW gepafin_schema.assigned_applications_view AS
SELECT
-- From assigned_applications
aa.id AS id,
aa.user_id AS user_id,
aa.status AS status,
aa.created_date AS created_date,
aa.updated_date AS updated_date,
aa.is_deleted AS is_deleted,
-- From application
a.id AS application_id,
a.hub_id as hub_id,
a.status AS application_status,
a.submission_date AS submission_date,
ae.end_date AS evaluation_end_date,
a.ndg AS ndg,
a.appointment_id AS appointment_id,
-- From protocol (OneToOne)
p.protocol_number AS protocol_number,
-- From call (ManyToOne)
cl.name AS call_name,
-- From company (ManyToOne)
c.company_name AS company_name,
ae.email_send_response AS email_send_response
FROM gepafin_schema.assigned_applications aa
-- Join application (ManyToOne from assigned_applications)
LEFT JOIN gepafin_schema.application a
ON aa.application_id = a.id
AND (a.is_deleted IS FALSE OR a.is_deleted IS NULL)
-- Join application_evaluation (application_id matches + not deleted)
LEFT JOIN gepafin_schema.application_evaluation ae
ON ae.application_id = a.id
AND (ae.is_deleted IS FALSE OR ae.is_deleted IS NULL)
-- Join protocol (OneToOne from application)
LEFT JOIN gepafin_schema.protocol p
ON a.protocol_number = p.id
-- Join call (ManyToOne from application)
LEFT JOIN gepafin_schema.call cl
ON a.call_id = cl.id
-- Join company (ManyToOne from application)
LEFT JOIN gepafin_schema.company c
ON a.company_id = c.id
WHERE aa.is_deleted IS FALSE OR aa.is_deleted IS NULL;

View File

@@ -0,0 +1,84 @@
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Testo Breve"},{"name":"placeholder","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 1;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Testo Lungo"},{"name":"placeholder","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 2;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Testo Formattato"},{"name":"placeholder","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]',
validators = '{"isRequired":false,"minLength":null,"maxLength":null,"custom":null}'
WHERE id = 3;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Numero"},{"name":"placeholder","value":0},{"name":"step","value":0},{"name":"isRequestedAmount","value":false},{"name":"variable","value":[]},{"name":"formula","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 4;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Scelta Singola"},{"name":"options","value":[]},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 5;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Menu a Tendina"},{"name":"options","value":[]},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 6;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Scelta Multipla"},{"name":"options","value":[]},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 7;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Casella di Spunta"},{"name":"isChecklistItem","value":false},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 8;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Data"},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]',
validators = '{"isRequired":false,"custom":null}'
WHERE id = 9;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Caricamento File"},{"name":"mime","value":[]},{"name":"isDelegation","value":false}]',
validators = '{"isRequired":false,"maxSize":100000,"custom":null}'
WHERE id = 10;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Partita IVA"},{"name":"placeholder","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 11;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Codice Fiscale"},{"name":"placeholder","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 12;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"CAP"},{"name":"placeholder","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 13;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"IBAN"},{"name":"placeholder","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 14;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Campo Email"},{"name":"placeholder","value":"nome@esempio.it"},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 15;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Campo PEC"},{"name":"placeholder","value":"nome@pec.it"},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 16;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Indirizzo URL"},{"name":"placeholder","value":""},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 17;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Marca da bollo"},{"name":"placeholder","value":"Numero identificativo"},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 18;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Tabella"},{"name":"table_columns","value":{}},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]',
validators = '{"custom":"nonEmptyTables"}'
WHERE id = 20;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Tabella"},{"name":"criteria_table_columns","value":{}},{"name":"variable","value":[]},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 21;
UPDATE FORM_FIELD
SET settings = '[{"name":"label","value":"Casella di Spunta"},{"name":"isChecklistItem","value":true},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""}]'
WHERE id = 22;

View File

@@ -0,0 +1,9 @@
INSERT INTO notification_type (notification_name, title, json_template, created_date, updated_date, is_deleted)
VALUES
('PEC_EMAIL_SENDING_FAILURE',
'Invio Email Fallito',
'Non è stato possibile inviare lemail per lo scenario: {{email_scenario}}.',
'2025-01-03T10:16:26.472Z',
'2025-01-03T10:16:26.472Z',
'false'
);

View File

@@ -0,0 +1,9 @@
UPDATE notification_type
SET
title = regexp_replace(title, 'emendamento', 'soccorso istruttorio', 'gi'),
json_template = regexp_replace(json_template, 'emendamento', 'soccorso istruttorio', 'gi')
WHERE
title ~* 'emendamento'
OR json_template ~* 'emendamento';

View File

@@ -0,0 +1,7 @@
UPDATE gepafin_schema.system_email_template
SET
html_content = regexp_replace(html_content, 'emendamento', 'Soccorso Istruttorio', 'gi'),
subject = regexp_replace(subject, 'emendamento', 'Soccorso Istruttorio', 'gi')
WHERE
html_content ~* 'emendamento'
OR subject ~* 'emendamento';

View File

@@ -0,0 +1,29 @@
UPDATE gepafin_schema.system_email_template
SET html_content = '<html>
<body style="font-family: Arial, sans-serif; color: #333; line-height: 1.6;">
<div style="padding: 20px; border: 1px solid #ddd; border-radius: 8px; max-width: 650px; margin: auto;">
<p>Buongiorno,</p>
<p>
<p>
Si prega di notare che si è verificato un errore durante linvio dell e-mail nello scenario "{{scenario}}" per la chiamata: <strong>{{call_name}}</strong>.
</p>
</p>
<p>
<strong>Dettagli:</strong><br/>
- ID Applicazione: {{application_id}}<br/>
- Nome Azienda: {{company_name}}<br/>
- Numero Protocollo: {{protocol_number}}<br/>
- ID Azione Utente: {{user_action_id}}
</p>
<p>Si prega di effettuare i controlli appropriati e di adottare le misure correttive necessarie.</p>
<p>Cordiali saluti,</p>
<p><strong>Gepafin S.p.a.</strong></p>
</div>
</body>
</html>'
WHERE template_name = 'Application submission failure notification';

View File

@@ -400,3 +400,11 @@ insufficient.score.msg = Insufficient score to pass to the technical and economi
password.expired.for.login.to.odessa = Odessa login password has been expired.
invalid.user=Invalid user.
reminder.email.sent.failed.msg = Failed to send reminder email
resend.email.sent.success.msg = Email resend successfully
resend.email.sent.failed.msg = Failed to resend the email.
application.readmit.success=Application has been readmitted successfully.
no.email.log.msg = No failed emails found for given userActionId.
user.action.id.not.found = User Action id not found.

View File

@@ -53,7 +53,7 @@ call.update.successfully=Chiamata aggiornata con successo.
call.fetch.success=Dettagli della chiamata recuperati con successo.
call.not.found=Chiamata non trovata.
score.not.null=Il punteggio non pu? essere nullo o zero.
field.not.null={0} non può essere vuoto.
field.not.null={0} non pu<EFBFBD> essere vuoto.
field.not.empty=la {0} non pu? essere vuota.
update_call_status_success_msg=Lo stato della chiamata ? stato aggiornato con successo.
status.same.error=Lo stato ? gi? impostato.
@@ -288,22 +288,22 @@ application.not.in.draft.status=La domanda non ? in stato DRAFT.
get.error.s3=Impossibile recuperare il file da S3.
application.data.amendment.success = Recupero riuscito dei dati dell'applicazione per il processo di modifica
delete.application.amendment.success =Emendamento all'applicazione eliminato con successo.
delete.application.amendment.success =Soccorso Istruttorio all'applicazione eliminato con successo.
application.amendment.not.found = Richiesta di modifica dell'applicazione non trovata con l'ID indicato.
application.amendment.get.success = Dettagli della modifica dell'applicazione recuperati correttamente con l'ID fornito.
application.amendment.update.successfully = Emendamento all'applicazione aggiornato con successo.
application.amendment.closed.successfully = Emendamento alla domanda chiuso con successo.
application.amendment.update.successfully = Soccorso Istruttorio all'applicazione aggiornato con successo.
application.amendment.closed.successfully = Soccorso Istruttorio alla domanda chiuso con successo.
response.days.extended.success=Giorni di risposta estesi con successo.
added.comment.to.amendment.request.success = Commento aggiunto con successo alla richiesta di emendamento.
added.comment.to.amendment.request.success = Commento aggiunto con successo alla richiesta di soccorso istruttorio.
comment.not.found = Commento non trovato.
comment.updated.successfully = Commento aggiornato con successo.
comment.deleted.successfully = Commento eliminato con successo.
comment.not.associate.with.amendment = Il commento non ? associato alla richiesta di emendamento.
amendment.found.success = Richiesta di emendamento trovata con successo.
invalid.amendment.for.comment = Richiesta di emendamento non valida per il commento fornito.
comment.not.associate.with.amendment = Il commento non ? associato alla richiesta di soccorso istruttorio.
amendment.found.success = Richiesta di soccorso istruttorio trovata con successo.
invalid.amendment.for.comment = Richiesta di soccorso istruttorio non valida per il commento fornito.
DD_MM_YYYY_HH_MM = dd_MM_yyyy HH:mm
create.application.data.amendment.msg =Emendamento alla domanda inviato con successo
create.application.data.amendment.msg =soccorso istruttorio alla domanda inviato con successo
beneficiary.email.not.found.msg=L'indirizzo email per il beneficiario non ? stato trovato. Si prega di assicurarsi che il beneficiario abbia un indirizzo email valido.
reminder.email.sent.success.msg=Email di promemoria inviata con successo!
application.documents.not.found=Nessun documento trovato per la domanda.
@@ -312,7 +312,7 @@ user.must.be.associated.with.company.to.create.application=Devi essere associato
company.id.required.for.preferred.call=ID azienda obbligatorio quando si richiedono solo chiamate preferite.
response.days.not.null=I giorni di risposta non devono essere nulli e maggiori di zero.
valid.vatnumber.message=Il numero di partita IVA <20> valido.
application.cannot.approved.or.rejected=La domanda non pu? essere approvata o rifiutata perch? l'emendamento ? attivo.
application.cannot.approved.or.rejected=La domanda non pu? essere approvata o rifiutata perch? Il Soccorso Istruttorio ? attivo.
atleast.one.id.required=Almeno uno tra companyId o applicationId deve essere fornito.
@@ -389,5 +389,13 @@ error.invalid.limit=Il limite dovrebbe essere compreso tra 1 e 3000.
insufficient.score.msg = Punteggio non sufficiente per passaggio alla valutazione tecnica ed economico finanziaria
validation.table.message=I dati per il campo {0} non sono presenti.
password.expired.for.login.to.odessa = La password di accesso a Odessa è scaduta
invalid.user=Utente non valido.
password.expired.for.login.to.odessa = La password di accesso a Odessa <EFBFBD> scaduta
invalid.user=Utente non valido.
reminder.email.sent.failed.msg = Impossibile inviare l'e-mail di promemoria
resend.email.sent.success.msg = Email reinviata con successo
resend.email.sent.failed.msg = Impossibile inviare nuovamente l'e-mail.
application.readmit.success=L'applicazione è stata riammessa con successo.
no.email.log.msg = Nessuna email trovata per userActionId specificato.
user.action.id.not.found = ID azione utente non trovato.