pos_cfp_bundle_2022_01.reviews.inc
Sat Oct 01 2022 10:53:16 GMT+0000 (Coordinated Universal Time)
<?php
use Drupal\Core\Entity\EntityTypeInterface;
/**
* Implements hook_entity_bundle_field_info_alter().
*/
function pos_cfp_bundle_2022_01_entity_bundle_field_info_alter(&$fields, EntityTypeInterface $entity_type, $bundle) {
if ($entity_type->id() === 'review' && $bundle === 'acceptance_2022_01') {
$fields['cf_acceptable_application']->addConstraint('ConditionalValues', [
'conditions' => [
[
'required_choice' => 'no',
'on_values' => [
'cf_submit_ontime' => ['no'],
'cf_submit_original_ontime' => ['no'],
'cf_scanned_application' => ['no'],
'cf_application_submitt' => ['no'],
'cf_liquidation_applicant' => ['no'],
'cf_rpg_registration' => ['no'],
'cf_anti_labour_protection' => ['no'],
'cf_disqualification_conditions' => ['no'],
],
'conjunction' => 'OR',
'error_message' => 'Ukoliko su polja iz prve dve sekcije "Ne", ovo polje mora biti Ne.',
],
[
'required_choice' => 'yes',
'on_values' => [
'cf_submit_ontime' => ['yes'],
'cf_submit_original_ontime' => ['yes'],
'cf_scanned_application' => ['yes'],
'cf_application_submitt' => ['yes'],
'cf_liquidation_applicant' => ['yes'],
'cf_rpg_registration' => ['yes'],
'cf_anti_labour_protection' => ['yes'],
'cf_disqualification_conditions' => ['yes'],
],
'conjunction' => 'AND',
'error_message' => 'Ukoliko su sva polja iz prve dve sekcije "Da", ovo polje mora biti Da.',
]
],
]);
}
}
/**
* Implements hook_review_passed_alter().
*/
function pos_cfp_bundle_2022_01_review_passed_alter(&$passed, $entity) {
if ($entity->bundle() === 'technical_review_2022_01') {
$passed = $entity->isPrintConfirmed();
}
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function pos_entity_review_form_review_acceptance_2022_01_edit_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
if (isset($form['cf_application_identifier'])) {
$form['cf_application_identifier']['#states'] = [
'visible' => [
':input[name="cf_only_one_request"]' => ['value' => 'no']
],
'required' => [
':input[name="cf_only_one_request"]' => ['value' => 'no']
]
];
}
$form['#validate'][] = 'custom_field_validation';
}
function custom_field_validation($form, \Drupal\Core\Form\FormStateInterface $form_state) {
$only_request_field = !empty($form_state->getValue('cf_only_one_request')) ? $form_state->getValue('cf_only_one_request')[0]['value'] : '';
$cf_application_identifier = $form_state->getValue('cf_application_identifier');
if ($only_request_field === 'no' && empty($cf_application_identifier[0]['value'])) {
$form_state->setErrorByName('cf_application_identifier', t('Identifikator aplikacije je obavezan ako je podnosioc zahtjeva podnio više od jednog zahtjeva'));
}
}
/**
* Implements hook_form_FORM_ID_alter().
*/
function pos_cfp_bundle_2022_01_form_review_legal_check_2022_01_edit_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
$form_object = $form_state->getFormObject();
$review = $form_object->getEntity();
foreach ($review->getFields() as $machine_name => $field) {
if ($field->getFieldDefinition()->getType() === 'options_correction') {
if ($review->get($machine_name)->value === 'replacement') {
$form[$machine_name]['#attributes'] = [
'class' => ['red_field'],
];
}
}
}
}



Comments