"col-sm-8", "LOT_NO" => "col-sm-4", "OFFICIALNAME" => "col-sm-12", "NATIONALID" => 'col-sm-3', "ADDRESS" => 'col-sm-6', "POSTAL_CODE" => 'col-sm-3', "COUNTRY" => 'col-sm-3', "PHONE" => 'col-sm-3', "FAX" => 'col-sm-3', "EMAIL" => 'col-sm-6', "URL_GENERAL" => 'col-sm-12', "URL_BUYER" => 'col', "URL" => 'col', "E_MAIL" => 'col-sm-6', "EU_PROG_RELATED" => 'col-sm-12', "URL_TOOL" => 'col-sm-12', "AC_CRITERION" => 'col-sm-8', "AC_WEIGHTING" => 'col', "DATE_START" => 'col', "DATE_END" => 'col', "DATE_OPENING_TENDERS" => 'col-sm-6', "TIME_OPENING_TENDERS" => 'col-sm-12', "LOW" => 'col-sm-6', "HIGH" => 'col-sm-6', "NB_TENDERS_RECEIVED" => 'col-sm-6', "NB_TENDERS_RECEIVED_SME" => 'col-sm-6', "NB_TENDERS_RECEIVED_OTHER_EU" => 'col-sm-6', "NB_TENDERS_RECEIVED_NON_EU" => 'col-sm-6', "NB_TENDERS_RECEIVED_EMEANS" => 'col-sm-6', "SECTION" => 'col-12' ]; public $v = false; /** * Get all fields * * @param String $section * @param SimpleXMLElement $node * @param Array $name * @param Bool $isAttribute * @return void */ public function getField(String $section, SimpleXMLIterator $node, Array $settings = [], Bool $isAttribute = false, bool $apply_title = true) { if($section == $this->sections[0]["name"] && empty($this->check_legal_basis)) { $this->check_legal_basis = true; $this->getLegalBasis($settings, $section); } $input = []; $child = null; $ignore = false; if(! isset($settings["required"])) { $settings["required"] = true; } if(empty($settings["name"]) || ! is_array($settings["name"])) { $settings["name"] = []; } if(isset($node->annotation->documentation) && strpos($node->annotation->documentation->__toString(), "Possible values:") !== false) { $settings["restriction"] = str_replace("Possible values:", "", $node->annotation->documentation->__toString()); $settings["restriction"] = explode(",", $settings["restriction"]); $settings["restriction"] = array_map('trim', $settings["restriction"]); } if ($apply_title && !$this->deferred) { $key = null; if (! empty($node->attributes())) { if (isset($node->attributes()["minOccurs"]) && !isset($node->attributes()["name"]) && !isset($node->attributes()["ref"]) && !isset($node->attributes()["base"])) { if (isset($node->element)){ if(!empty($node->element->attributes()["ref"])) { $key = "RADIO_{$node->element->attributes()["ref"]->__toString()}"; } } } else if (! empty($node->attributes()["name"])) { $key = $node->attributes()["name"]->__toString(); } else if (! empty($node->attributes()["ref"])) { $key = $node->attributes()["ref"]->__toString(); } else if (! empty($node->attributes()["base"])) { $key = $node->attributes()["base"]->__toString(); } } if ($this->applyTitle($key, $settings, $section)) { $ignore = $ignore_child_element = true; $child = null; $this->getField($section, $node, $settings, $isAttribute, false); } } if(! empty($node->attributes()["name"])) { $name = $node->attributes()["name"]->__toString(); if($node->getName() == "element" && ! in_array($name, $settings["name"])) { $settings["name"] = array_merge($settings["name"], [$node->attributes()["name"]->__toString()]); } else if($node->getName() == "attribute") { $settings["name"] = array_merge($settings["name"], ["_attributes", $node->attributes()["name"]->__toString()]); } if (method_exists($this, "{$name}_node")) { $ignore = $ignore_child_element = ! $this->{"{$name}_node"}($node, $settings, $section); $child = null; } } if ($node->getName() == "sequence") { if (! empty($node->element->count())) { if (!empty($node->element->attributes()["ref"])) { if ((string) $node->element->attributes()["ref"] == "PARTICULAR_PROFESSION") { if (empty($settings["skip-particular-profession"])) { $child = null; $ignore = $ignore_child_element = ! $this->particular_profession_section($node, $settings, $section); } } else if ((string) $node->element->attributes()["ref"] == "LIKELY_SUBCONTRACTED") { $child = null; $ignore = $ignore_child_element = ! $this->likely_subcontracted_section($node, $settings, $section); } else if (!empty($node->attributes()) && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { #region SEQUENCE FOLLOWED BY GROUP if(isset($node->group) && (string) $node->group->attributes()["ref"] == "document_url_man") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_document_url_man($node, $settings, $section); } #endregion } } } } if( isset($node->complexType) ) { if ((string) ($node->attributes()["name"] ?? "") == "QUALIFICATION" && $settings["name"][count($settings["name"]) - 1] == "QUALIFICATION") { $child = null; $ignore = $ignore_child_element = !$this->section_for_qualification($node, $settings, $section); } } if($node->getName() == "choice") { #region [CHOICE FOLLOWED BY SEQUENCE WITH GROUP] if (!empty($node->sequence) && isset($node->sequence->group)) { if ($node->sequence->group->attributes()["ref"] == "receipt_tenders") { $child = null; $ignore = $ignore_child_element = !$this->radio_for_receipt_tenders($node, $settings, $section); } else if ($node->sequence->group->attributes()["ref"] == "time_frame") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_time_frame($node, $settings, $section); } else if (isset($node->sequence->element) && (string) $node->sequence->element->attributes()["ref"] == "AWARDED_TO_GROUP") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_awarded_to_group($node, $settings, $section); } } #endregion #region [CHOICE FOLLOWED BY SEQUENCE WITH CHOICE] else if(! empty($node->sequence) && ! empty($node->sequence->choice->count())) { if (isset($node->sequence->choice->element) && (string) $node->sequence->choice->element->attributes()["ref"] == "PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION") { $child = null; $ignore = $ignore_child_element = !$this->radio_for_pt_award_contract_with_prior_publication_sequence($node, $settings, $section); } else if (isset($node->sequence->choice->element) && (string) $node->sequence->choice->element->attributes()["name"] == "ORIGINAL_ENOTICES") { $child = null; $ignore = $ignore_child_element = !$this->radio_for_original_other_means($node, $settings, $section); } } #region [CHOICE FOLLOWED BY SEQUENCE WITH ELEMENTS] else if(! empty($node->sequence) && ! empty($node->sequence->element->count())) { #region [WHERE FIRST ELEMENT HAS NAME] if(! empty($node->sequence->element->attributes()["name"])) { if ((string) $node->sequence->element->attributes()["name"] == "LOT_DIVISION") { $child = null; $ignore = $ignore_child_element = ! $this->lot_division_custom_section($node, $settings, $section); } else if ((string) $node->sequence->element->attributes()["name"] == "NB_MIN_PARTICIPANTS") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_nb_participants($node, $settings, $section); } else if ((string) $node->sequence->element->attributes()["name"] == "PRIZE_AWARDED") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_prize_awarded($node, $settings, $section); } else if ((string) $node->sequence->element->attributes()["name"] == "CHANGE") { $child = null; $ignore = $ignore_child_element = ! $this->section_for_change($node, $settings, $section); } } #endregion #region [WHERE FIRST ELEMENT HAS REF] else if (! empty($node->sequence->element->attributes()["ref"])) { if ((string) $node->sequence->element->attributes()["ref"] == "RECURRENT_PROCUREMENT") { $child = null; $ignore = $ignore_child_element = ! $this->recurrent_procurement_section($node, $settings, $section); } else if ((string) $node->sequence->element->attributes()["name"] == "INDEFINITE_DURATION") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_time_frame_indefinite($node, $settings, $section); } else if ((string) $node->sequence->element->attributes()["ref"] == "LOT_DIVISION") { $child = null; $ignore = $ignore_child_element = ! $this->lot_division_custom_section($node, $settings, $section); } else if ( $node->sequence->element->count() > 1 && (string) $node->sequence->element[0]->attributes()["ref"] == "DATE_START" && (string) $node->sequence->element[1]->attributes()["ref"] == "DATE_END" && isset($node->element) && $node->element->attributes()["name"] == "INDEFINITE_DURATION" ) { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_time_frame_indefinite($node, $settings, $section); } } #endregion } #endregion #region [CHOICE FOLLOWED BY SEQUENCE WITH SEQUENCES] else if (! empty($node->sequence) && ! empty($node->sequence->sequence) && ! empty($node->sequence->sequence->count())) { if ($node->sequence->count() > 0 && !empty($node->sequence[1]->element) && $node->sequence[1]->element->attributes()["name"] == "ORIGINAL_OTHER_MEANS") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_original_other_means($node, $settings, $section); } } #endregion #region [CHOICE FOLLOWED BY ELEMENT] else if (! empty($node->element->count())) { if(isset($node->element[1]) && $node->element[1]->attributes()["ref"] == "VAL_RANGE_TOTAL") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_val_total($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["ref"] == "NO_AWARDED_CONTRACT") { $child = null; $ignore = $ignore_child_element = ! $this->awarded_contract_section($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["ref"] == "D_PROC_OPEN") { $child = null; $ignore = $ignore_child_element = ! $this->d_proc_open_section($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["ref"] == "D_TECHNICAL") { $child = null; $ignore = $ignore_child_element = ! $this->d_technical_section($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["ref"] == "D_ARTISTIC") { $child = null; $ignore = $ignore_child_element = ! $this->d_artistic_section($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["ref"] == "D_FROM_WINDING_PROVIDER") { $child = null; $ignore = $ignore_child_element = ! $this->d_from_winding_provider_section($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["name"] == "AWARDED_TENDERER_VARIANT") { if (in_array($this->form_section,["F06_2014"])) { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_awarded_tenderer_variant($node, $settings, $section); } } else if (isset($node->element) && $node->element->attributes()["name"] == "TENDERS_EXCLUDED") { if (in_array($this->form_section,["F06_2014"])) { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_tenders_excluded($node, $settings, $section); } } else if (isset($node->element) && $node->element->attributes()["name"] == "VAL_TOTAL") { if (in_array($this->form_section, ["F06_2014", "F15_2014"])) { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_val_total($node, $settings, $section); } } else if (isset($node->element) && $node->element->attributes()["name"] == "PARTICULAR_PROFESSION") { if (empty($settings["skip-particular-profession"])) { $child = null; $ignore = $ignore_child_element = ! $this->particular_profession_section($node, $settings, $section); } } else if (isset($node->element) && $node->element->attributes()["name"] == "FOLLOW_UP_CONTRACTS") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_follow_up_contracts($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["name"] == "DECISION_BINDING_CONTRACTING") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_decision_binding_contract($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["name"] == "NO_AWARDED_PRIZE") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_no_awarded_prize($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["ref"] == "SME") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_sme($node, $settings, $section); } else if (isset($node->element) && $node->element->attributes()["name"] == "ORIGINAL_ENOTICES") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_enotices($node, $settings, $section); } else if ((string) $node->element->attributes()["name"] == "MODIFICATION_ORIGINAL") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_modification_original($node, $settings, $section); } else if ((string) $node->element->attributes()["ref"] == "ADDITIONAL_NEED") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_additional_need($node, $settings, $section); } else if ((string) $node->element->attributes()["ref"] == "AC_PROCUREMENT_DOC") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_ac_procurement_doc($node, $settings, $section); } else if ((string) $node->element->attributes()["name"] == "CONTRACT_COVERED_GPA") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_gpa($node, $settings, $section); } else if ((string) $node->element->attributes()["ref"] == "PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_pt_award_contract_with_prior_publication($node, $settings, $section); } else if ((string) $node->element->attributes()["name"] == "D_FROM_WINDING_PROVIDER") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_d_from_winding_provider($node, $settings, $section); } else if ((string) $node->element->attributes()["name"] == "D_ACCORDANCE_ARTICLE") { $child = null; $ignore = $ignore_child_element = !$this->radio_for_d_accordance_article($node, $settings, $section); } else if ((string) $node->element->attributes()["ref"] == "VAL_ESTIMATED_TOTAL") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_val_estimated_total($node, $settings, $section); } else if ((string) $node->element->attributes()["name"] == "DIRECTIVE_2014_23_EU") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_directives($node, $settings, $section); } else if ((string) $node->element->attributes()["name"] == "AC_PRICE") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_ac_price($node, $settings, $section); } else if ((string) $node->element->attributes()["name"] == "PT_AWARD_CONTRACT_WITHOUT_PUBLICATION") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_pt_award_contract_without_prior_publication($node, $settings, $section); } else if ((string) $node->element->attributes()["name"] == "PT_NEGOTIATED_WITHOUT_PUBLICATION") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_pt_negotiated_without_publication($node, $settings, $section); } else if ((string) $node->element->attributes()["ref"] == "D_PROC_RESTRICTED") { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_d_proc_restricted($node, $settings, $section); } } #endregion #region [CHOICE FOLLOWED BY GROUP] else if (! empty($node->group->count())) { if ( (string) $node->group->attributes()["ref"] == "authority" ) { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_authority($node, $settings, $section); } else if ( (string) $node->group->attributes()["ref"] == "annex_d4_part1" ) { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_annex_d4_part_1($node, $settings, $section); } else if ( (string) $node->group->attributes()["ref"] == "annex_d2_part1" ) { $child = null; $ignore = $ignore_child_element = ! $this->radio_for_annex_d2_part1($node, $settings, $section); } } #endregion } if($node->enumeration->count() > 0) { $child = $node->enumeration; $ignore = true; } if($node->attributes() && ! $ignore) { if(isset($node->attributes()["minOccurs"])) { if((int) $node->attributes()["minOccurs"] === 0) { $settings["required"] = false; } } if(! empty($node->attributes()["ref"])) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); } if(! empty($node->attributes()["type"]) || ! empty($node->attributes()["base"]) || $node->attributes()["ref"] ) { $type = (string) $node->attributes()["type"]; $base = (string) $node->attributes()["base"]; $name = (string) $node->attributes()["name"]; $ref = str_replace(":", "_", (string) $node->attributes()["ref"]); if(method_exists($this, "{$type}_fields")) { $this->{"{$type}_fields"}($node, $settings, $section); $child = null; } else if (method_exists($this, "{$ref}_ref")) { $this->{"{$ref}_ref"}($node, $settings, $section); $child = null; } else if (method_exists($this, "{$base}_base")) { $this->{"{$base}_base"}($node, $settings, $section); $child = null; } else { if((! empty($type) && in_array($type, $this->elements)) || (! empty($base) && in_array($base, $this->elements))) { $key = implode(".", $settings["name"]); $exist = ! empty(self::get($this->fields, $key)); if(! $exist) { $settings["object"] = ! empty($type) ? $type : (! empty($base) ? $base : ""); $input["size"] = $this->estimateSize($settings); $input["name"] = $this->arrayName2StringName($settings["name"]); $input["object"] = $settings["object"]; $input["required"] = $settings["required"]; switch ($input["object"]) { case 'empty': $input["type"] = "checkbox"; break; case 'phone': $input["type"] = "text"; $input["rel"] = ["PN"]; break; case 'date': $input["type"] = "datetime"; break; case 'time': $input["type"] = "datetime"; $input["class"] = "timepick"; break; case "text_ft_multi_lines": case "text_ft_multi_lines_or_string": $input["type"] = "textarea"; break; case "nonNegativeInteger": case "decimal": $input["type"] = "text"; $input["rel"] = ["S", "1", "0", "N"]; break; case "url": $input["type"] = "url"; break; case "email": $input["type"] = "email"; break; case "weight": $input["type"] = "weight"; default: $input["type"] = "text"; break; } $this->fields = $this->makeArray($settings["name"], $input, $this->fields); unset($settings["required"]); } return; } else if(! empty($type)) { $child = $this->getTypeElement($type); } } } } if($node->getName() == "restriction") { if($node->enumeration) { $input["name"] = $this->arrayName2StringName($settings["name"]); $input["type"] = "select"; $input["required"] = $settings["required"]; foreach ($node as $children) { if(! empty($settings["restriction"])) { if(in_array($children["value"], $settings["restriction"])) { $input["options"][(string) $children["value"]] = (string) $children["value"]; if(isset($children->annotation->documentation)) { $input["options"][(string) $children["value"]] = (string) $children->annotation->documentation; $input["options"][(string) $children["value"]] = str_replace(" / adm.status[current]", "", $input["options"][(string) $children["value"]]); $input["options"][(string) $children["value"]] = $this->translate($input["options"][(string) $children["value"]], $input["name"]); $input["options"] = array_map("trim", $input["options"]); } } } else { $input["options"][(string) $children["value"]] = (string) $children["value"]; $input["options"][(string) $children["value"]] = $this->translate($input["options"][(string) $children["value"]], $input["name"]); } } $this->fields = $this->makeArray($settings["name"], $input, $this->fields); unset($settings["required"]); return; } } if(! empty($child)) { $this->getField($section, $child, $settings); } if(is_a($node, "SimpleXMLIterator") && $node->count() > 0 && empty($ignore_child_element)) { foreach ($node as $child) { $this->getField($section, $child, $settings); } } } /** * Genera automaticamente una radio nel caso in cui il nodo sia facoltativo * * @param SimpleXMLIterator $node * @param Array $settings * @param String $section * @param String $tag * @param String $title * * @return bool */ private function minOccursRadio(SimpleXMLIterator $node, Array $settings = [], String $section, String $tag, String $title, Array $options = null) : bool { $s = $settings; if (isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $s["name"] = array_merge($s["name"], ["RADIO_FOR_{$tag}"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); unset($node->attributes()["minOccurs"]); $object = $this->makeAdd2GUUEObject(["child" => $node->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $selected = "empty"; $value = self::get($this->info["valori"], $key); if ($value == "YES_{$tag}") { $selected = $object; } if ( empty($options["title"]) ) { $inputs[] = [ "info" => [ "title" => $this->translate($title , $name), "style" => "subtitle", ] ]; } else { $inputs[] = $options["title"]; } $inputs[] = [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "value" => "YES_$tag", "title" => $this->translate("YES"), "required" => false, "attrs" => [ "onChange" => "eForms2.add2GUUE('#{$id}', '{$object}')", ] ]; $inputs[] = [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_{$tag}", "title" => $this->translate("NO"), "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => !empty($options["container"]) ? $options["container"]["class"] ?? "" : "" , "id" => $id, ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return true; } return false; } /** * Get currency option * * @return array */ private function getCurrencyOptions() : array { return [ "EUR" => $this->translate("EUR"), "AED" => $this->translate("AED"), "AED" => $this->translate("AED"), "AFN" => $this->translate("AFN"), "ALL" => $this->translate("ALL"), "AMD" => $this->translate("AMD"), "ANG" => $this->translate("ANG"), "AOA" => $this->translate("AOA"), "ARS" => $this->translate("ARS"), "AUD" => $this->translate("AUD"), "AWG" => $this->translate("AWG"), "AZN" => $this->translate("AZN"), "BAM" => $this->translate("BAM"), "BBD" => $this->translate("BBD"), "BDT" => $this->translate("BDT"), "BGN" => $this->translate("BGN"), "BHD" => $this->translate("BHD"), "BIF" => $this->translate("BIF"), "BMD" => $this->translate("BMD"), "BND" => $this->translate("BND"), "BOB" => $this->translate("BOB"), "BRL" => $this->translate("BRL"), "BSD" => $this->translate("BSD"), "BTN" => $this->translate("BTN"), "BWP" => $this->translate("BWP"), "BYN" => $this->translate("BYN"), "BZD" => $this->translate("BZD"), "CAD" => $this->translate("CAD"), "CDF" => $this->translate("CDF"), "CHF" => $this->translate("CHF"), "CLP" => $this->translate("CLP"), "CNY" => $this->translate("CNY"), "COP" => $this->translate("COP"), "CRC" => $this->translate("CRC"), "CUC" => $this->translate("CUC"), "CUP" => $this->translate("CUP"), "CVE" => $this->translate("CVE"), "CZK" => $this->translate("CZK"), "DJF" => $this->translate("DJF"), "DKK" => $this->translate("DKK"), "DOP" => $this->translate("DOP"), "DZD" => $this->translate("DZD"), "EGP" => $this->translate("EGP"), "ERN" => $this->translate("ERN"), "ETB" => $this->translate("ETB"), "FJD" => $this->translate("FJD"), "FKP" => $this->translate("FKP"), "GBP" => $this->translate("GBP"), "GEL" => $this->translate("GEL"), "GHS" => $this->translate("GHS"), "GIP" => $this->translate("GIP"), "GMD" => $this->translate("GMD"), "GNF" => $this->translate("GNF"), "GTQ" => $this->translate("GTQ"), "GYD" => $this->translate("GYD"), "HKD" => $this->translate("HKD"), "HNL" => $this->translate("HNL"), "HRK" => $this->translate("HRK"), "HTG" => $this->translate("HTG"), "HUF" => $this->translate("HUF"), "IDR" => $this->translate("IDR"), "ILS" => $this->translate("ILS"), "INR" => $this->translate("INR"), "IQD" => $this->translate("IQD"), "IRR" => $this->translate("IRR"), "ISK" => $this->translate("ISK"), "JMD" => $this->translate("JMD"), "JOD" => $this->translate("JOD"), "JPY" => $this->translate("JPY"), "KES" => $this->translate("KES"), "KGS" => $this->translate("KGS"), "KHR" => $this->translate("KHR"), "KMF" => $this->translate("KMF"), "KPW" => $this->translate("KPW"), "KRW" => $this->translate("KRW"), "KWD" => $this->translate("KWD"), "KYD" => $this->translate("KYD"), "KZT" => $this->translate("KZT"), "LAK" => $this->translate("LAK"), "LBP" => $this->translate("LBP"), "LKR" => $this->translate("LKR"), "LRD" => $this->translate("LRD"), "LSL" => $this->translate("LSL"), "LYD" => $this->translate("LYD"), "MAD" => $this->translate("MAD"), "MDL" => $this->translate("MDL"), "MGA" => $this->translate("MGA"), "MKD" => $this->translate("MKD"), "MMK" => $this->translate("MMK"), "MNT" => $this->translate("MNT"), "MOP" => $this->translate("MOP"), "MRU" => $this->translate("MRU"), "MUR" => $this->translate("MUR"), "MVR" => $this->translate("MVR"), "MWK" => $this->translate("MWK"), "MXN" => $this->translate("MXN"), "MYR" => $this->translate("MYR"), "MZN" => $this->translate("MZN"), "NAD" => $this->translate("NAD"), "NGN" => $this->translate("NGN"), "NIO" => $this->translate("NIO"), "NOK" => $this->translate("NOK"), "NPR" => $this->translate("NPR"), "NZD" => $this->translate("NZD"), "OMR" => $this->translate("OMR"), "PAB" => $this->translate("PAB"), "PEN" => $this->translate("PEN"), "PGK" => $this->translate("PGK"), "PHP" => $this->translate("PHP"), "PKR" => $this->translate("PKR"), "PLN" => $this->translate("PLN"), "PYG" => $this->translate("PYG"), "QAR" => $this->translate("QAR"), "RON" => $this->translate("RON"), "RSD" => $this->translate("RSD"), "RUB" => $this->translate("RUB"), "RWF" => $this->translate("RWF"), "SAR" => $this->translate("SAR"), "SBD" => $this->translate("SBD"), "SCR" => $this->translate("SCR"), "SDG" => $this->translate("SDG"), "SEK" => $this->translate("SEK"), "SGD" => $this->translate("SGD"), "SHP" => $this->translate("SHP"), "SLL" => $this->translate("SLL"), "SOS" => $this->translate("SOS"), "SRD" => $this->translate("SRD"), "SSP" => $this->translate("SSP"), "STN" => $this->translate("STN"), "SVC" => $this->translate("SVC"), "SYP" => $this->translate("SYP"), "SZL" => $this->translate("SZL"), "THB" => $this->translate("THB"), "TJS" => $this->translate("TJS"), "TMT" => $this->translate("TMT"), "TND" => $this->translate("TND"), "TOP" => $this->translate("TOP"), "TRY" => $this->translate("TRY"), "TTD" => $this->translate("TTD"), "TWD" => $this->translate("TWD"), "TZS" => $this->translate("TZS"), "UAH" => $this->translate("UAH"), "UGX" => $this->translate("UGX"), "USD" => $this->translate("USD"), "USN" => $this->translate("USN"), "UYU" => $this->translate("UYU"), "UZS" => $this->translate("UZS"), "VES" => $this->translate("VES"), "VND" => $this->translate("VND"), "VUV" => $this->translate("VUV"), "WST" => $this->translate("WST"), "XAF" => $this->translate("XAF"), "XCD" => $this->translate("XCD"), "XOF" => $this->translate("XOF"), "XPF" => $this->translate("XPF"), "YER" => $this->translate("YER"), "ZAR" => $this->translate("ZAR"), "ZMW" => $this->translate("ZMW") ]; } /** * Extract form elements * * @param SimpleXMLIterator $node * @param array $name * @param array $elements * @return void */ private function extractElements(SimpleXMLIterator $node, Array $name = [], Array $elements = []) { if($node->getName() == "element" && ! empty($node->attributes()["name"])) { $name[] = $node->attributes()["name"]->__toString(); $elements = $this->makeArray($name, null, $elements); } if($node->attributes()) { if(! empty($node->attributes()["type"])) { $son = $this->getTypeElement($node->attributes()["type"]->__toString()); } if(! empty($node->attributes()["ref"])) { $son = $this->getTypeElement($node->attributes()["ref"]->__toString()); } if(! empty($node->attributes()["base"])) { $base = $node->attributes()["base"]->__toString(); if(! empty($base) && ! in_array($base, $this->elements)) { $son = $this->getTypeElement($base); } } if(! empty($son)) { $elements = $this->extractElements($son, $name, $elements); } } if(is_a($node, "SimpleXMLIterator") && $node->count() > 0) { foreach ($node as $son) { $elements = $this->extractElements($son, $name, $elements); } } return $elements; } /** * Input array name to string * * @param array $name * @return String */ private function arrayName2StringName(Array $name = []) { if(! empty($name)) { return "guue[" . implode("][", array_filter($name)) . "]"; } return ''; } /** * Apply a static publication attribute to field * * @param array $settings * @return void */ private function applyStaticPublicationAttribute(array $settings) : void { $s = $settings; $s["name"] = array_merge($settings["name"], ["_attributes", "PUBLICATION"]); $key = $this->arrayName2StringName($settings["name"]); $inputs = [ "key" => $key, "name" => $this->arrayName2StringName($s["name"],["_attributes", "PUBLICATION"]), "type" => "hidden", "value" => "NO" ]; $this->fields[] = $this->makeArray(array_merge($settings["name"]), $inputs, $this->fields); } private function applyTitle(?String $key, array $settings = [], String $section) { if (!empty($key) && !empty($this->settings["titles"][$this->form_section][$section][$key])) { $s = $settings; $inputs = [ "info" => ["title" => $this->translate($this->settings["titles"][$this->form_section][$section][$key])] ]; $this->fields = $this->makeArray(array_merge($s["name"],["TITLE_FOR_". $key, "T"]), $inputs, $this->fields); return true; } return false; } /*********************************** * METODI PER LA PERSONALIZZAZIONE * * DEI CONTENUTI DEI FORM * ***********************************/ private function getLegalBasis(Array $settings = [], String $section) { $n = $this->getTypeElement("LEGAL_BASIS"); if(! empty($n) && ! empty($n->complexType->attribute->attributes()["name"]) && ! empty($n->complexType->attribute->attributes()["type"])) { $s = $settings; array_pop($s["name"]); $s1 = $s2 = $s; $s1["name"][] = "LEGAL_BASIS"; $s2["name"][] = "LEGAL_BASIS_OTHER"; $s1["name"][] = "_attributes"; $s1["name"][] = (String) $n->complexType->attribute->attributes()["name"]; $keys = array_values($settings["name"]); if (in_array($keys[count($keys) - 1], ["CONTRACTING_BODY", "NOTICE"]) && (empty($settings["skip-legal-basis"]) || !$settings["skip-legal-basis"])) { switch ($this->form_section) { case 'F01_2014': case 'F02_2014': case 'F03_2014': $inputs = [ "LEGAL_BASIS" => [ "name" => $this->arrayName2StringName($s1["name"]), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => [ "32014L0024" => "Directive 2014/24/EU", ], "title" => $this->translate("LEGAL_BASIS"), "required" => true ] ]; break; case 'F15_2014': $inputs = [ "LEGAL_BASIS" => [ "name" => $this->arrayName2StringName($s1["name"]), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => [ "32014L0023" => "Directive 2014/23/EU", "32014L0024" => "Directive 2014/24/EU", "32014L0025" => "Directive 2014/25/EU", "32009L0081" => "Directive 2009/81/EC" ], "title" => $this->translate("LEGAL_BASIS"), "required" => true ] ]; break; case 'F04_2014': case 'F05_2014': case 'F06_2014': case 'F07_2014': case 'F22_2014': $inputs = [ [ "name" => $this->arrayName2StringName($s1["name"]), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => ["32014L0025" => "Directive 2014/25/EU"], "title" => $this->translate("LEGAL_BASIS"), "required" => true ] ]; break; case 'F08_2014': $inputs = [ "LEGAL_BASIS" => [ "name" => $this->arrayName2StringName($s1["name"]), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => [ "32014L0024" => "Directive 2014/24/EU", "32014L0025" => "Directive 2014/25/EU", "32009L0081" => "Directive 2009/81/EC" ], "title" => $this->translate("LEGAL_BASIS"), "required" => true ] ]; break; case 'F12_2014': case 'F13_2014': $inputs = [ "LEGAL_BASIS" => [ "name" => $this->arrayName2StringName($s1["name"]), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => [ "32014L0024" => "Directive 2014/24/EU", "32014L0025" => "Directive 2014/25/EU", ], "title" => $this->translate("LEGAL_BASIS"), "required" => true ] ]; break; case 'F14_2014': case 'F20_2014': $inputs = [ "LEGAL_BASIS" => [ "name" => $this->arrayName2StringName($s1["name"]), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => [ "32014L0023" => "Directive 2014/23/EU", "32014L0024" => "Directive 2014/24/EU", "32014L0025" => "Directive 2014/25/EU", ], "title" => $this->translate("LEGAL_BASIS"), "required" => true ] ]; break; case 'F21_2014': $inputs = [ "LEGAL_BASIS" => [ "name" => $this->arrayName2StringName($s1["name"]), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => [ "32014L0024" => "Directive 2014/24/EU", ], "title" => $this->translate("LEGAL_BASIS"), "required" => true ] ]; break; case 'F23_2014': case 'F24_2014': case 'F25_2014': $inputs = [ "LEGAL_BASIS" => [ "name" => $this->arrayName2StringName($s1["name"]), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => [ "32014L0023" => "Directive 2014/23/EU", ], "title" => $this->translate("LEGAL_BASIS"), "required" => true ] ]; default: # code... break; } } if(! empty($inputs)) { $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } } } private function d_contract_awarded_design_contest_node(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_D_CONTRACT_AWARDED_DESIGN_CONTEST"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $selected = "empty"; $object = $this->makeAdd2GUUEObject([ "child" => "", "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"],$key); if ($value == "CHOICE_D_CONTRACT_AWARDED_DESIGN_CONTEST") { $selected = $object; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "CHOICE_D_CONTRACT_AWARDED_DESIGN_CONTEST", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true, "group_validate" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_CHOICE_D_CONTRACT_AWARDED_DESIGN_CONTEST", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true, "group_validate" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "d-none", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_D_CONTRACT_AWARDED_DESIGN_CONTEST"]), $inputs, $this->fields); return false; } private function d_commodity_market_node(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_D_COMMODITY_MARKET"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $object = $this->makeAdd2GUUEObject([ "child" => "", "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $key = $this->getKeyFromNameString($name); $selected = "empty"; $value = self::get($this->info["valori"],$key); if ($value == "CHOICE_D_COMMODITY_MARKET") { $selected = $object; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "CHOICE_D_COMMODITY_MARKET", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true, "group_validate" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_CHOICE_COMMODITY_MARKET", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true, "group_validate" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "d-none", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_D_COMMODITY_MARKET"]), $inputs, $this->fields); return false; } private function supplies_fields($node, $settings, $section) { $name = $settings["name"][count($settings["name"])-1]; $options["title"] = [ "info" => [ "title" => $this->translate($name), "style" => "subtitle", "hidden" => true ] ]; $options["container"] = [ "class" => "d-none" ]; if ($this->minOccursRadio($node, $settings, $section, $name, $this->translate($name), $options)) { return; } $s = $settings; $s["name"] = array_merge($settings["name"], ["_attributes", "CTYPE"]); $key = $this->arrayName2StringName($settings["name"]); $inputs = [ "key" => $key, "name" => $this->arrayName2StringName($s["name"],["_attributes", "CTYPE"]), "type" => "hidden", "value" => "SUPPLIES" ]; $this->fields = $this->makeArray(array_merge($settings["name"]), $inputs, $this->fields); } private function services_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["_attributes", "CTYPE"]); $key = $this->arrayName2StringName($settings["name"]); $inputs = [ "key" => $key, "name" => $this->arrayName2StringName($s["name"],["_attributes", "CTYPE"]), "type" => "hidden", "value" => "SERVICES" ]; $this->fields = $this->makeArray(array_merge($settings["name"]), $inputs, $this->fields); } private function cpv_main_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $settings["name"] = array_merge($settings["name"], ["CPV_MAIN"]); $name = array_merge($settings["name"], ["CPV_CODE", "@CODE"]); $value = $this->get($this->info["valori"], implode(".", $name)); $inputs = [ [ "name" => $this->arrayName2StringName($name), "type" => "cpv", "title" => $this->translate("CPV_MAIN",$this->arrayName2StringName($name)), "attrs" => [ "class" => "row" ], "val" => $value, "required" => true, "rel" => ["S","1","0","A"] ] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function cpv_additional_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $settings["name"] = array_merge($settings["name"], ["CPV_ADDITIONAL"]); $name = array_merge($settings["name"], ["CPV_CODE", "@CODE"]); $value = $this->get($this->info["valori"], implode(".", $name)); $inputs = [ [ "name" => $this->arrayName2StringName($name), "type" => "cpv", "minlength" => 3, "macro" => $this->get($this->info["valori"], "TED_ESENDERS.FORM_SECTION.{$this->form_section}.OBJECT_CONTRACT.CPV_MAIN.CPV_CODE.@CODE"), "title" => $this->translate("CPV_ADDITIONAL",$this->arrayName2StringName($name)), "attrs" => [ "class" => "row" ], "val" => $value, "required" => false, "rel" => ["N", "1", "0", "A"] ] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function lot_division_choice_custom_section(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_LOT_DIVISION"]); $name = $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_LOT_DIVISION"])); $id = $this->getId($name); $lot_division = $this->arrayName2StringName($settings["name"]); $lot_division = $this->getKeyFromNameString($lot_division); $child = $node->xpath("//*[@name='LOT_DIVISION']"); $child = $child[count($child) - 1]; if ($child->attributes()["type"]->__toString() == "empty") { $child = $this->getTypeElement("lot_numbers")->asXML(); } else { $child = $child->asXML(); } $lot_division_object = $this->makeAdd2GUUEObject([ "child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $s = $settings; $s["name"] = array_merge($settings["name"], ["OBJECT_DESCR"]); $search = "//*[@name='OBJECT_DESCR']"; $object_ftype = $this->dom->xpath($search)[0]->attributes()["type"]->__toString(); $no_lot_division = $this->arrayName2StringName($s["name"]); $no_lot_division = $this->getKeyFromNameString($no_lot_division); $no_lot_division_object = $this->makeAdd2GUUEObject([ "child" => $this->getTypeElement($object_ftype)->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], "TED_ESENDERS.FORM_SECTION.{$this->form_section}.OBJECT_CONTRACT.RADIO_FOR_LOT_DIVISION"); $v = "LOT_DIVISION"; if (in_array($this->form_section,["F01_2014","F02_2014","F04_2014","F05_2014","F21_2014","F22_2014","F23_2014","F24_2014"])) { $v = "__£__"; } if ($node->sequence->count() == 2 || $node->sequence->element->attributes()["name"] == "LOT_DIVISION") { $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => $v, "title" => $this->translate("LOT_DIVISION"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$lot_division_object}');", ], "required" => true, "group_validate" => true ]; } if ($node->sequence->count() == 2 || $node->sequence->element->attributes()["name"] == "NO_LOT_DIVISION" || in_array($this->form_section,["F22_2014"])) { $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_LOT_DIVISION", "title" => $this->translate("NO_LOT_DIVISION"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$no_lot_division_object}');" ], "required" => true, "group_validate" => true ]; } $inputs[] = [ "name" => "container", "type" => "div", "key" => ($value == $v) ? $lot_division : $no_lot_division, "object" => ($value == $v) ? $lot_division_object : $no_lot_division_object, "attrs" => [ "class" => "", "id" => $id, ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_LOT_DIVISION"]), $inputs, $this->fields); return false; } private function lot_division_overrided_single_not_divided(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $inputs[] = [ "info" => [ "title" => $this->translate("OBJECT_DESCR") ] ]; if (in_array($this->form_section,["F22_2014"])){ $this->getField($section, $node->sequence->element[1], $settings); return; } $inputs[] = [ "type" => "hidden", "name" => $this->arrayName2StringName(array_merge($settings["name"],["NO_LOT_DIVISION"])), "object" => "empty", "required" => true ]; $this->fields = $this->makeArray(array_merge($settings["name"],["NO_LOT_DIVISION"]), $inputs, $this->fields); $this->getField($section, $node->sequence[1]->element[1], $settings); } private function lot_division_custom_section(SimpleXMLIterator $node, Array $settings = [], String $section) { if (in_array($this->form_section,["F04_2014","F21_2014","F22_2014"])) { return $this->lot_division_overrided_single_not_divided($node, $settings, $section); } return $this->lot_division_choice_custom_section($node, $settings, $section); } private function title_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $input = self::get($this->fields, $key); $input["TITLE"]["name"] = "{$input["TITLE"]["name"]}[P]"; $input["TITLE"]["required"] = true; $input["TITLE"]["rel"] = ["S","2","380","RT"]; self::set($this->fields, $key, $input); } private function lot_max_number_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"],["LOT_MAX_NUMBER"]); $name = $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_NUMBER"])); $inputs = [ "title" => $this->translate("LOTS_MAX"), "name" => $this->arrayName2StringName($s["name"]), "object" => "nb_lot", "value" => "LOT_MAX_NUMBER", "type" => "text", "size" => "col-12" ]; $this->fields = $this->makeArray(array_merge($s["name"],["LOT_MAX_NUMBER"]), $inputs, $this->fields); return false; } private function lot_division_f01_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $name = $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_NUMBER"])); $id = $this->getId($name); $key = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $name)), '.'); $lot_max_number_object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, "multiple" => false, ]); $s2 = $settings; array_pop($s2["name"]); $inputs[] = [ [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["NUMBER_OF_LOTS"])), "size" => "col-sm-12", "type" => "text", "object" => "empty", "value" => "", "rel" => ["S", "1", "0", "N"], "title" => $this->translate("LOT_COUNT"), "required" => true, ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("LOT_NONE"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_ALL", "title" => $this->translate("LOT_ALL"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_ONE_ONLY", "title" => $this->translate("LOT_ONE_ONLY"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_MAX_NUMBER", "title" => $this->translate("LOT_MAX_NUMBER"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$lot_max_number_object}');" ], "required" => true ], [ "title" => "", "name" => "container", "type" => "div", "key" => $key, "object" => $lot_max_number_object, "attrs" => [ "class" => "", "id" => $id, ] ], [ "title" => $this->translate("LOT_MAX_ONE_TENDERER"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_ONE_TENDERER"])), "object" => "nb_lot", "type" => "text", "rel" => ["N","0","0","N"], "size" => "col-12" ], [ "title" => $this->translate("LOT_COMBINING_CONTRACT_RIGHT"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["LOT_COMBINING_CONTRACT_RIGHT"])), "object" => "text_ft_multi_lines", "required" => false, "type" => "textarea", ], [ "type" => "hidden", "name" => $this->arrayName2StringName(array_merge($s2["name"], ["OBJECT_DESCR"])), "value" => "SUBSECTION-HERE" ] ]; $this->fields = $this->makeArray(array_merge($s["name"], ["RADIO_FOR_LOT_DIVISION"]), $inputs, $this->fields); return false; } private function lot_division_f02_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $name = $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_NUMBER"])); $id = $this->getId($name); $key = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $name)), '.'); $lot_max_number_object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, "multiple" => false, ]); $s2 = $settings; array_pop($s2["name"]); $inputs[] = [ [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["NUMBER_OF_LOTS"])), "size" => "col-sm-12", "type" => "text", "object" => "empty", "value" => "", "rel" => ["S", "1", "0", "N"], "title" => $this->translate("LOT_COUNT"), "required" => true, ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_ALL", "title" => $this->translate("LOT_ALL"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_ONE_ONLY", "title" => $this->translate("LOT_ONE_ONLY"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_MAX_NUMBER", "title" => $this->translate("LOT_MAX_NUMBER"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$lot_max_number_object}');" ], "required" => true ], [ "title" => "", "name" => "container", "type" => "div", "key" => $key, "object" => $lot_max_number_object, "attrs" => [ "class" => "", "id" => $id, ] ], [ "title" => $this->translate("LOT_MAX_ONE_TENDERER"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_ONE_TENDERER"])), "object" => "nb_lot", "rel" => ["N","0","0","N"], "type" => "text", "size" => "col-12" ], [ "title" => $this->translate("LOT_COMBINING_CONTRACT_RIGHT"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["LOT_COMBINING_CONTRACT_RIGHT"])), "object" => "text_ft_multi_lines", "required" => false, "type" => "textarea", ], [ "type" => "hidden", "name" => $this->arrayName2StringName(array_merge($s2["name"], ["OBJECT_DESCR"])), "value" => "SUBSECTION-HERE" ] ]; $this->fields = $this->makeArray(array_merge($s["name"], ["RADIO_FOR_LOT_DIVISION"]), $inputs, $this->fields); return false; } private function lot_division_f04_fields(SimpleXMLIterator $node, array $settings = [], String $section) { return $this->lot_division_f01_fields($node, $settings, $section); } private function lot_division_f05_fields(SimpleXMLIterator $node, array $settings = [], String $section) { return $this->lot_division_f02_fields($node, $settings, $section); } private function lot_division_f21_fields(SimpleXMLIterator $node, array $settings = [], String $section) { return $this->lot_division_f01_fields($node, $settings, $section); } private function lot_division_f22_fields(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $name = $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_NUMBER"])); $id = $this->getId($name); $key = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $name)), '.'); $lot_max_number_object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, "multiple" => false, ]); $s2 = $settings; array_pop($s2["name"]); $inputs[] = [ [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["NUMBER_OF_LOTS"])), "size" => "col-sm-12", "type" => "text", "object" => "empty", "value" => "", "rel" => ["S", "1", "0", "N"], "title" => $this->translate("LOT_COUNT"), "required" => true, ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_ALL", "title" => $this->translate("LOT_ALL"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_ONE_ONLY", "title" => $this->translate("LOT_ONE_ONLY"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_MAX_NUMBER", "title" => $this->translate("LOT_MAX_NUMBER"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$lot_max_number_object}');" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_LOT", "title" => $this->translate("NOT_SPECIFIED"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "title" => "", "name" => "container", "type" => "div", "key" => $key, "object" => $lot_max_number_object, "attrs" => [ "class" => "", "id" => $id, ] ], [ "title" => $this->translate("LOT_MAX_ONE_TENDERER"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_ONE_TENDERER"])), "object" => "nb_lot", "rel" => ["N","0","0","N"], "type" => "text", "size" => "col-12" ], [ "title" => $this->translate("LOT_COMBINING_CONTRACT_RIGHT"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["LOT_COMBINING_CONTRACT_RIGHT"])), "object" => "text_ft_multi_lines", "required" => false, "type" => "textarea", ], [ "type" => "hidden", "name" => $this->arrayName2StringName(array_merge($s2["name"], ["OBJECT_DESCR"])), "value" => "SUBSECTION-HERE" ] ]; $this->fields = $this->makeArray(array_merge($s["name"], ["RADIO_FOR_LOT_DIVISION"]), $inputs, $this->fields); return false; } private function lot_division_f24_fields(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $name = $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_NUMBER"])); $id = $this->getId($name); $key = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $name)), '.'); $lot_max_number_object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, "multiple" => false, ]); $inputs[] = [ [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["NUMBER_OF_LOTS"])), "size" => "col-sm-12", "type" => "text", "object" => "empty", "value" => "", "rel" => ["S", "1", "0", "N"], "title" => $this->translate("LOT_COUNT"), "required" => true, ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_ALL", "title" => $this->translate("LOT_ALL"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_ONE_ONLY", "title" => $this->translate("LOT_ONE_ONLY"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LOT_PARTICIPATION"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "LOT_MAX_NUMBER", "title" => $this->translate("LOT_MAX_NUMBER"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$lot_max_number_object}');" ], "required" => true ], [ "title" => "", "name" => "container", "type" => "div", "key" => $key, "object" => $lot_max_number_object, "attrs" => [ "class" => "", "id" => $id, ] ], [ "title" => $this->translate("LOT_MAX_ONE_TENDERER"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["LOT_MAX_ONE_TENDERER"])), "object" => "nb_lot", "rel" => ["N","0","0","N"], "type" => "text", "size" => "col-12" ], [ "title" => $this->translate("LOT_COMBINING_CONTRACT_RIGHT"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["LOT_COMBINING_CONTRACT_RIGHT"])), "object" => "text_ft_multi_lines", "required" => false, "type" => "textarea", ] ]; $this->fields = $this->makeArray(array_merge($s["name"], ["RADIO_FOR_LOT_DIVISION"]), $inputs, $this->fields); return false; } private function lot_division_f23_fields(SimpleXMLIterator $node, array $settings = [], String $section) { return $this->lot_division_f01_fields($node, $settings, $section); } private function lot_numbers_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"],["LOT_DIVISION"]); $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["NUMBER_OF_LOTS"])), "size" => "col-sm-12", "type" => "text", "object" => "empty", "value" => "", "rel" => ["S", "1", "0", "N"], "title" => $this->translate("LOT_COUNT"), "required" => true, ]; $this->fields = $this->makeArray(array_merge($s["name"], ["RADIO_FOR_LOT_DIVISION"]), $inputs, $this->fields); return false; } private function radio_for_pt_award_contract_with_prior_publication_sequence(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION_SEQUENCE"]); $id = strtolower(str_replace(["][", "[", "]"], ["_", "", ""], $this->arrayName2StringName($s["name"]))); $object1 = $this->makeAdd2GUUEObject([ "child" => $node->sequence[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object2 = $this->makeAdd2GUUEObject([ "child" => $node->sequence[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], implode(".", $s["name"])); $k = $this->arrayName2StringName($s["name"]); $k = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $k)), '.'); $selected = "empty"; if ($value == "PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION_SEQUENCE") { $selected = $object1; } else if ($value == "NO_PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION_SEQUENCE") { $selected = $object2; } $inputs = [ [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION_SEQUENCE", "title" => __guue("Specifica la procedura"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object1}')", ], "required" => true ], [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION_SEQUENCE", "title" => __guue("Specifica le informazioni di carattere amministrativo"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object2}')", ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $k, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function officialname_ref(SimpleXMLIterator $node, array $settings = [], String $section) { if (!$settings["required"]) { $settings["required"] = true; } $n = $this->getTypeElement((string) $node->attributes()["ref"]); $this->getField($section, $n, $settings); } private function procurement_address_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $this->applyTitle("RADIO_FOR_PROCUREMENT_ADDRESS", $settings, $section); #region FACOLTATIVE $settings["skip-legal-basis"] = true; if (!empty($node->attributes()) && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_PROCUREMENT_ADDRESS"]); $id = strtolower(str_replace(["][", "[", "]"], ["_", "", ""], $this->arrayName2StringName($s["name"]))); unset($node->attributes()["minOccurs"]); $settings["required"] = true; $object = $this->makeAdd2GUUEObject([ "child" => $node->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], implode(".", $s["name"])); $k = $this->arrayName2StringName($s["name"]); $k = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $k)), '.'); $selected = "empty"; if ($value == "PROCUREMENT_ADDRESS") { $selected = $object; } $inputs = [ [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PROCUREMENT_ADDRESS", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true ], [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_PROCUREMENT_ADDRESS", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $k, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } #endregion #region SINGLE ELEMENT $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_CONTRACTING_BODY_ADDITIONAL"]); $id = strtolower(str_replace(["][", "[", "]"], ["_", "", ""], $this->arrayName2StringName($s["name"]))); $child = $this->getTypeElement($node->attributes()["ref"]->__toString())->sequence->sequence; $object = $this->makeAdd2GUUEObject([ "child" => $child->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], implode(".", $s["name"])); $k = $this->arrayName2StringName($s["name"]); $k = $this->getKeyFromNameString($k); $selected = "empty"; if ($value == "CONTRACTING_BODY_ADDITIONAL") { $selected = $object; } $inputs = [ [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "CONTRACTING_BODY_ADDITIONAL", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true ], [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_CONTRACTING_BODY_ADDITIONAL", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $k, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); $this->getField($section, $this->getTypeElement($node->attributes()["ref"]->__toString())->sequence->element, $settings); #endregion return false; } private function address_contracting_body_additional_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["required"] = true; $s["name"] = array_merge($settings["name"],["ADDRESS_CONTRACTING_BODY_ADDITIONAL"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $child = $this->getTypeElement($node->attributes()["ref"]->__toString())->asXML(); if ($this->form_section == "F08_2014") { $child = $this->getTypeElement("contact_buyer")->asXML(); } $object = $this->makeAdd2GUUEObject([ "child" => $child, "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true ]); $content = self::get($this->info["valori"], $key); $inputs = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi i riferimenti di un\'altra stazione appaltante'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function contact_contracting_body_f14_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $node = $this->getTypeElement($node->attributes()["type"]->__toString())->complexContent->restriction->sequence; $this->getField($section, $node, $settings); } private function contact_add_contracting_body_f14_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["required"] = true; $s["name"] = $settings["name"]; $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $object = $this->makeAdd2GUUEObject([ "child" => $this->getTypeElement("contact_contracting_body_f14")->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true ]); $content = self::get($this->info["valori"], $key); $inputs = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi i riferimenti di un\'altra stazione appaltante'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function information_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["required"] = true; $settings["skip-legal-basis"] = true; if ($this->minOccursRadio($node, $settings, $section, "INFORMATION", __guue("Specifica dove sono reperibili ulteriori informazioni"))) { return; } $s["name"] = array_merge($settings["name"], ["ADDRESS_FURTHER_INFO"]); $id = strtolower(str_replace(["][", "[", "]"], ["_", "", ""], $this->arrayName2StringName($s["name"]))); $child = $this->getTypeElement("contact_contracting_body")->asXML(); $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $value = self::get($this->info["valori"], implode(".", array_merge($settings["name"], ["RADIO_FOR_INFORMATION_OPT"]))); $selected = "empty"; if ($value == "ADDRESS_FURTHER_INFO") { $selected = $object; } $input = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_INFORMATION_OPT"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "ADDRESS_FURTHER_INFO_IDEM", "title" => $this->translate("ADDRESS_FURTHER_INFO_IDEM"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_INFORMATION_OPT"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "ADDRESS_FURTHER_INFO", "title" => $this->translate("ADDRESS_FURTHER_INFO"), "attrs" => [ "onChange" => "eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ], ]; $settings["name"][] = "address_furtherinfo"; $this->fields = $this->makeArray($settings["name"], $input, $this->fields); } private function tenders_request_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { if ($this->minOccursRadio($node, $settings, $section, "ADDESS_PARTICIPATION", __guue("Specifica l'invio delle offerte o domande di partecipazione"))){ return; } $s = $settings; unset($s["required"]); $s["name"] = array_merge($s["name"], ["ADDRESS_PARTICIPATION"]); $id = strtolower(str_replace(["][", "[", "]"], ["_", "", ""], $this->arrayName2StringName($s["name"]))); $child = $this->getTypeElement("ADDRESS_PARTICIPATION")->asXML(); $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $k = $this->arrayName2StringName(array_merge($settings["name"], ["ADDRESS_PARTICIPATION"])); $k = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $k)), '.'); $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["URL_PARTICIPATION"])), "size" => "col-sm-12", "type" => "text", "title" => $this->translate("URL_PARTICIPATION"), "required" => false, "rel" => ["N","8","0","L"], "hidden-label" => true ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_ADDRESS_SEND_TENDERS_REQUEST"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "ADDRESS_PARTICIPATION_IDEM", "title" => $this->translate("ADDRESS_PARTICIPATION_IDEM"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_ADDRESS_SEND_TENDERS_REQUEST"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("ADDRESS_PARTICIPATION"), "attrs" => [ "onChange" => "eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $k, "object" => $object, "attrs" => [ "class" => "", "id" => $id, ] ], ]; $this->ignored_keys[] = ["address_send_tenders_request"]; $this->fields = $this->makeArray(array_merge($settings["name"], ["address_send_tenders_request"]), $inputs, $this->fields); } private function document_url_man_ref(SimpleXMLIterator $node, array $settings = [], String $section) { if ($this->debug && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $this->radio_for_document_url_man($node, $settings, $section); return; } $s = $settings; $s["name"] = array_merge($s["name"],["RADIO_FOR_DOCUMENT_FULL"]); $inputs[] = [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "title" => $this->translate("DOCUMENT_FULL"), "value" => "DOCUMENT_FULL", "group_validate" => true, "required" => true ]; $inputs[] = [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "title" => $this->translate("DOCUMENT_RESTRICTED"), "value" => "DOCUMENT_RESTRICTED", "group_validate" => true, "required" => true ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); $this->getField($section, (($this->getTypeElement($node->attributes()["ref"]->__toString()))->sequence->element), $settings); return false; } private function radio_for_document_url_man(SimpleXMLIterator $node, array $settings = [], String $section) { $settings["skip-legal-basis"] = true; $settings["required"] = true; $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_DOCUMENT_URL_MAN"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); if (isset($node->group)) { $node->group->attributes()["ref"] = "document_url_opt"; } unset($node->attributes()["minOccurs"]); $object = $this->makeAdd2GUUEObject(["child" => $node->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $selected = "empty"; $value = self::get($this->info["valori"], $key); if ($value == "CHOICE_DOCUMENT_URL_MAN") { $selected = $object; } $inputs[] = [ [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "title" => $this->translate("YES"), "value" => "CHOICE_DOCUMENT_URL_MAN", "group_validate" => true, "required" => false, "attrs" => [ "onChange" => "eForms2.add2GUUE('#{$id}', '{$object}')", ] ], [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "CHOICE_NO_DOCUMENT_URL_MAN", "title" => $this->translate("NO"), "group_validate" => true, "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function document_url_opt_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; if($this->minOccursRadio($node, $settings, $section, "DOCUMENT_URL_OPT_SECTION", __guue("Specifica la comunicazione dei documenti di gara"))) { return; } $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["RADIO_FOR_DOCUMENT_FULL"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "DOCUMENT_FULL", "title" => $this->translate("DOCUMENT_FULL"), "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["RADIO_FOR_DOCUMENT_FULL"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "DOCUMENT_RESTRICTED", "title" => $this->translate("DOCUMENT_RESTRICTED"), "required" => true, "group_validate" => true ], "URL_DOCUMENT" => [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["URL_DOCUMENT"])), "size" => "col-sm-12", "type" => "text", "object" => "empty", "required" => true, "rel" => ["S","8","0","L"] ] ]; $this->fields = $this->makeArray(array_merge($s["name"],["RADIO_FOR_DOCUMENT_FULL"]), $inputs, $this->fields); } private function authority_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["CA_TYPE", "_attributes", "VALUE"])), "size" => "col-sm-4", "type" => "select", "object" => "empty", "options" => [ "BODY_PUBLIC" => $this->translate("maintype_publicbody"), "EU_INSTITUTION" => $this->translate("maintype_euinst"), "MINISTRY" => $this->translate("maintype_ministry"), "NATIONAL_AGENCY" => $this->translate("maintype_natagency"), "REGIONAL_AGENCY" => $this->translate("maintype_localagency"), "REGIONAL_AUTHORITY" => $this->translate("maintype_localauth"), ], "title" => $this->translate("CA_TYPE"), "required" => false, ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["CA_TYPE_OTHER"])), "size" => "col-sm-8", "type" => "text", "object" => "empty", "title" => $this->translate("CA_TYPE_OTHER"), "required" => true ] ]; $this->ignored_keys[] = ["ca_type_selection"]; $this->fields = $this->makeArray(array_merge($settings["name"], ["ca_type_selection"]), $inputs, $this->fields); $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["CA_ACTIVITY", "_attributes", "VALUE"])), "size" => "col-sm-4", "type" => "select", "object" => "empty", "options" => [ "DEFENCE" => $this->translate("mainactiv_defence"), "ECONOMIC_AND_FINANCIAL_AFFAIRS" => $this->translate("mainactiv_economic"), "EDUCATION" => $this->translate("mainactiv_education"), "ENVIRONMENT" => $this->translate("mainactiv_environment"), "GENERAL_PUBLIC_SERVICES" => $this->translate("mainactiv_general"), "HEALTH" => $this->translate("mainactiv_health"), "HOUSING_AND_COMMUNITY_AMENITIES" => $this->translate("mainactiv_housing"), "PUBLIC_ORDER_AND_SAFETY" => $this->translate("mainactiv_safety"), "RECREATION_CULTURE_AND_RELIGION" => $this->translate("mainactiv_culture"), "SOCIAL_PROTECTION" => $this->translate("mainactiv_social"), ], "title" => $this->translate("CA_ACTIVITY"), "required" => false ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["CA_ACTIVITY_OTHER"])), "size" => "col-sm-8", "type" => "text", "object" => "empty", "title" => $this->translate("CA_ACTIVITY_OTHER"), "required" => true ] ]; $this->ignored_keys[] = ["ca_activity_selection"]; $this->fields = $this->makeArray(array_merge($settings["name"], ["ca_activity_selection"]), $inputs, $this->fields); } private function nuts_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $input["type"] = "select"; $input["required"] = $settings["required"]; $settings["object"] = "nuts"; $input["title"] = $this->translate("NUTS"); $input["name"] = $this->arrayName2StringName($settings["name"]); $input["size"] = $this->size["NUTS"] ?? "col-sm-12"; $where = null; if(empty($this->info["codice"])) { $where = "WHERE data_fine_validita = ''"; } else if (!empty($this->info["data_creazione"])){ $where = "WHERE data_fine_validita = '' OR DATE(data_fine_validita) > '{$this->info['data_creazione']}' "; } $nuts = $this->pdo->go("SELECT nuts, descrizione, data_fine_validita FROM b_nuts {$where}")->fetchAll(PDO::FETCH_ASSOC); foreach ($nuts as $nut) { $validity = ""; if (!empty($nut["data_fine_validita"])) { $validity = "(".__guue("scaduto il") . ": " . Datetime::createFromFormat('Y-m-d',$nut["data_fine_validita"])->format("d/m/Y") .")"; } $input["options"][$nut["nuts"]] = $nut["descrizione"] . " " . $validity; } $this->fields = $this->makeArray($settings["name"], $input, $this->fields); } private function country_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { if (isset($node->attributes()["maxOccurs"])) { $s = $settings; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($s["name"])))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); unset($node->attributes()["maxOccurs"]); $object = $this->makeAdd2GUUEObject(["child" => $node->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true]); $input = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => $object, "attrs" => [ "id" => $id, ] ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["NON_COMMUNITY_BODY_ADDITIONAL_BUTTON"])), "required" => false, "type" => "button", "title" => __guue('Aggiungi un paese'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ] ]; } else { $input["title"] = $this->translate("COUNTRY"); $input["type"] = "select"; $input["required"] = $settings["required"]; $input["name"] = $this->arrayName2StringName(array_merge($settings["name"], ["_attributes", "VALUE"])); $input["size"] = $this->estimateSize($settings); $input["attrs"] = ["rel" => [($input["required"] ? "S" : "N"),"A","2","2"]]; $stati = $this->pdo->go("SELECT sigla, stato FROM b_stati")->fetchAll(PDO::FETCH_ASSOC); foreach ($stati as $stato) { $input["options"][$stato["sigla"]] = $stato["stato"]; } } $this->fields = $this->makeArray($settings["name"], $input, $this->fields); } private function eu_progr_related_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = $this->arrayName2StringName($settings["name"]); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "textarea", "title" => $this->translate("EU_PROGR_RELATED",$this->arrayName2StringName($settings["name"])), "rel" => [$settings["required"] ? "S" : "N", "0", "400", "RT"], "required" => $settings["required"] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function short_descr_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = $this->arrayName2StringName($settings["name"]); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "textarea", "title" => $this->translate("SHORT_DESCR",$this->arrayName2StringName($settings["name"])), "rel" => [$settings["required"] ? "S" : "N", "0", "4000", "RT"], "required" => $settings["required"] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function award_criteria_doc_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_AWARD_CRITERIA_DOC"])))); $object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("award_criteria")->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true]); $key = $this->arrayName2StringName(array_merge($s["name"], ["AC_QUALITY_SECTION"])); $key = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $key)), '.'); $content = self::get($this->info["valori"], implode(".", array_merge($s["name"], ["RADIO_FOR_AWARD_CRITERIA_DOC"]))); $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_AWARD_CRITERIA_DOC"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "AC_PROCUREMENT_DOC", "title" => $this->translate("AC_PROCUREMENT_DOC"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_AWARD_CRITERIA_DOC"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__" , "title" => $this->translate("award_criteria"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true, "group_validate" => true ], [ "name" => "container", "type" => "div", "key" => $content == "__£__" ? $key : null, "object" => $content == "__£__" ? $object : null, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($s["name"],["RADIO_FOR_AWARD_CRITERIA_DOC"]), $inputs, $this->fields); } private function ac_weighting_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs[] = [ "title" => $this->translate("AC_WEIGHTING"), "name" => $this->arrayName2StringName($settings["name"]), "size" => "col-sm-12", "type" => "weight", "attrs" => [], "label-attrs" => [ "class" => "mt-auto mx-auto" ], "required" => $settings["required"], "rel" => [ $settings["required"] ? "S" : "N","0","100","N" ] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function award_criteria_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["AC_QUALITY"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["AWARD_CRITERIA_NODE"])))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("AC_QUALITY")->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true]); if (in_array($this->form_section, ["F06_2014"]) || in_array($this->form_section,["F15_2014"]) && count($settings["name"]) > 2 && $settings["name"][count($settings["name"]) - 2] != "DIRECTIVE_2014_24_EU") { $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["_attributes","PUBLICATION"])), "size" => "col-12", "type" => "select", "object" => "empty", "options" => [ "NO" => $this->translate("NO"), "YES" => $this->translate("YES"), ], "title" => $this->translate("PUBLICATION"), "required" => true ]; } $inputs[] = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi un criterio di qualità'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ], ]; $inputs[] = [ "info" => ["title" => __guue("Criteri sull'offerta economica")] ]; $s["name"] = array_merge($settings["name"], ["AC_COST"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["AC_COST_PRICE_CRITERION"])))); $cost_key = $this->arrayName2StringName($s["name"]); $cost_key = $this->getKeyFromNameString($cost_key); $cost_content = self::get($this->info["valori"], $cost_key); $cost_object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("AC_COST")->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true]); $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_AWARD_CRITERIA_SECTION"])), "size" => "col-sm-12", "type" => "radio", "value" => "AC_COST", "title" => $this->translate("AC_COST"), "required" => true, "group-validate" => true, "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$cost_object}');" ] ]; $s["name"] = array_merge($settings["name"], ["AC_PRICE"]); $price_key = $this->arrayName2StringName($s["name"]); $price_key = $this->getKeyFromNameString($price_key); $price_content = self::get($this->info["valori"], $price_key); $price_object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("AC_PRICE")->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_AWARD_CRITERIA_SECTION"])), "size" => "col-sm-12", "type" => "radio", "value" => "AC_PRICE", "title" => $this->translate("AC_PRICE"), "required" => true, "group-validate" => true, "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$price_object}');" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => !empty($cost_content) ? $cost_key : (! empty($price_content) ? $price_key : null), "object" => !empty($cost_content) ? $cost_object : (! empty($price_content) ? $price_object : "empty"), "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function ac_cost_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["required"] = false; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["AC_COST_CRITERION"])))); $object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("ac_definition")->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true]); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $inputs = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id, ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi un criterio di prezzo'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}');", "class" => "btn btn-block btn-primary" ] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function ac_definition_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $inputs = [ [ "size" => "col-12", "name" => $this->arrayName2StringName(array_merge($s["name"], ["AC_CRITERION"])), "title" => $this->translate("AC_CRITERION"), "type" => "text", "required" => $settings["required"] ], [ "size" => "col-12", "name" => $this->arrayName2StringName(array_merge($s["name"], ["AC_WEIGHTING"])), "title" => $this->translate("AC_WEIGHTING"), "type" => "weight", "required" => $settings["required"] ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function date_start_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $inputs = [ [ "size" => "col-12", "name" => $this->arrayName2StringName($s["name"]), "title" => $this->translate("DATE_START"), "type" => "date", "required" => $settings["required"], ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function date_end_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $inputs = [ [ "size" => "col-12", "name" => $this->arrayName2StringName($s["name"]), "title" => $this->translate("DATE_END"), "type" => "date", "required" => $settings["required"], ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function val_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $req = true; $rel = ["S","1","0","2D"]; if (isset($node->attributes()["minOccurs"]) && $node->attributes()["minOccurs"] == 0) { $req = false; $rel = ["N", "0", "0", "2D"]; } $inputs = [ [ [ "size" => "col-sm-4", "name" => $this->arrayName2StringName(array_merge($s["name"], ["_attributes", "CURRENCY"])), "object" => "empty", "title" => $this->translate("CURRENCY"), "required" => $req, "type" => "select", "options" => $this->getCurrencyOptions() ], [ "size" => "col-sm-8", "title" => $this->translate("VALUE"), "name" => $this->arrayName2StringName(array_merge($s["name"],["_value"])), "object" => "empty", "required" => $req, "type" => "number", "rel" => $rel ] ] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function time_frame_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $options["title"] = [ "info" => [ "title" => $this->translate("RADIO_FOR_TIME_FRAME"), "style" => "subtitle", "hidden" => true ] ]; if ($this->minOccursRadio($node, $settings, $section, "TIME_FRAME","RADIO_FOR_TIME_FRAME",$options)) { return; } $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["SECTION_FOR_TIME_FRAME"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_TIME_FRAME"])); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $obj = null; $search = "//*[@name='DURATION']"; $child = $this->dom->xpath($search)[0]; $object = $this->makeAdd2GUUEObject(["child" => $child->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_TIME_FRAME"])), "object" => "empty", "title" => $this->translate("DURATION"), "required" => true, "type" => "radio", "value" => "DURATION", "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$object}')" ] ]; if($content == "DURATION") { $obj = $object; } $object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("time_frame")->choice->sequence->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_TIME_FRAME"])), "object" => "empty", "title" => $this->translate("DATE_START_AND_DATE_END"), "required" => true, "type" => "radio", "value" => "DATE_START_AND_DATE_END", "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$object}')" ] ]; if($content == "DATE_START_AND_DATE_END") { $obj = $object; } $object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("DATE_END")->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_TIME_FRAME"])), "object" => "empty", "title" => $this->translate("DATE_END"), "required" => true, "type" => "radio", "value" => "DATE_END", "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$object}')" ] ]; if($content == "DATE_END") { $obj = $object; } $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $obj, "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function duration_m_d_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = [ [ "size" => "col-sm-4", "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_attributes", "TYPE"])), "object" => "empty", "title" => __guue("Tipo di durata"), "required" => true, "type" => "select", "options" => [ "MONTH" => __guue("Mesi"), "DAY" => __guue("Giorni") ] ], [ "size" => "col-sm-8", "title" => $this->translate("DURATION"), "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_value"])), "type" => "text", "object" => "empty", "value" => "DURATION", "attrs" => [ "class" => "datetime" ] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function renewal_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_RENEWAL"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("RENEWAL_DESCR")->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("RENEWAL"), "required" => true, "type" => "radio", "value" => "RENEWAL", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_RENEWAL"), "required" => true, "type" => "radio", "value" => "NO_RENEWAL", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $key = $this->arrayName2StringName(array_merge($settings["name"], ["RENEWAL_DESCR"])); $key = $this->getKeyFromNameString($key); $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "RENEWAL" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function renewal_descr_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function accepted_variants_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $inputs["ACCEPTED_VARIANTS"]["title"] = $this->translate("ACCEPTED_VARIANTS"); $inputs["VARIANTS_INFO"] = [$inputs["ACCEPTED_VARIANTS"]]; unset($inputs["ACCEPTED_VARIANTS"]); self::set($this->fields, $key, $inputs); } private function variants_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_VARIANTS"]); $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("ACCEPTED_VARIANTS"), "required" => true, "type" => "radio", "value" => "ACCEPTED_VARIANTS" ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_ACCEPTED_VARIANTS"), "required" => true, "type" => "radio", "value" => "NO_ACCEPTED_VARIANTS" ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function ecatalogue_required_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $ecatalogue_required = $inputs["ECATALOGUE_REQUIRED"]; $ecatalogue_required["title"] = $this->translate("ECATALOGUE_REQUIRED"); unset($inputs["ECATALOGUE_REQUIRED"]); $inputs = array_merge($inputs, [ "ECATALOGUE_REQUIRED_CHECKBOX" => [ $ecatalogue_required ] ]); self::set($this->fields, $key, $inputs); } private function options_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_OPTIONS"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("OPTIONS_DESCR")->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("OPTIONS"), "required" => true, "type" => "radio", "value" => "OPTIONS", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_OPTIONS"), "required" => true, "type" => "radio", "value" => "NO_OPTIONS", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "OPTIONS" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function options_descr_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function eu_union_funds_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $settings["required"] = true; $options = []; $options["title"] = [ "info" => [ "title" => $this->translate("EU_UNION_FUNDS"), "style" => "subtitle", "hidden" => true ] ]; if ($this->minOccursRadio($node, $settings, $section, "EU_UNION_FUNDS", __guue("Specifica le informazioni relative ai fondi dell'unione europea"), $options)) { return; } $s["name"] = array_merge($settings["name"],["RADIO_FOR_EU_UNION_FOUNDS"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $child = $this->getTypeElement("EU_PROGR_RELATED"); $object = $this->makeAdd2GUUEObject(["child" => $child->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $content = self::get($this->info["valori"], $key); $inputs = [ [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("CHOICE_EU_PROGR_RELATED"), "required" => true, "group_vaidate" => true, "type" => "radio", "value" => "__£__", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')" ] ], [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_EU_PROGR_RELATED"), "required" => true, "group_vaidate" => true, "type" => "radio", "value" => "NO_EU_PROGR_RELATED", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ] ]; $key = $this->arrayName2StringName(array_merge($settings["name"], ["EU_PROGR_RELATED"])); $key = $this->getKeyFromNameString($key); $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "__£__" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function suitability_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); #FIX_ME: causa un problema grafico sull'F04, per il momento lo lascio commentato #$inputs = array_merge(["info" => ["title" => $this->translate("SECTION_III_LEFTI")]], $inputs); self::set($this->fields, $key, $inputs); } private function economic_criteria_doc_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_ECONOMIC_CRITERIA_DOC"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("ECONOMIC_CRITERIA_DOC"), "required" => true, "type" => "radio", "value" => "ECONOMIC_CRITERIA_DOC", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_ECONOMIC_CRITERIA_DOC"), "required" => true, "type" => "radio", "value" => "__£__", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "__£__" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $s["name"] = array_merge($s["name"], ["ECONOMIC_FINANCIAL_STANDING"]); $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function economic_financial_info_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function economic_financial_min_level_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function technical_criteria_doc_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_TECHNICAL_CRITERIA_DOC"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("TECHNICAL_CRITERIA_DOC"), "required" => true, "type" => "radio", "value" => "TECHNICAL_CRITERIA_DOC", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_TECHNICAL_CRITERIA_DOC"), "required" => true, "type" => "radio", "value" => "__£__", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "__£__" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $s["name"] = array_merge($s["name"], ["TECHNICAL_CAPACITY"]); $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function technical_professional_info_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function technical_professional_min_level_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function restricted_sheltered_workshop_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $inputs["RESTRICTED_SHELTERED_WORKSHOP"]["title"] = $this->translate("RESTRICTED_SHELTERED_WORKSHOP"); $inputs["CONTRACTS_RESERVED"] = [$inputs["RESTRICTED_SHELTERED_WORKSHOP"]]; unset($inputs["RESTRICTED_SHELTERED_WORKSHOP"]); self::set($this->fields, $key, $inputs); } private function pt_restricted_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $parent = $node->xpath("parent::*")[0]; if($parent->element->count() == 2 && strpos($parent->asXML(), "PT_COMPETITIVE_NEGOTIATION") !== false) { $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_PT_RESTRICTED"]); $inputs = [ [ "info" => [ "title" => "IV_PROCEDURE_DESCRIPTION" ] ], "TYPE_PROCEDURE" => [ [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("PT_RESTRICTED"), "required" => true, "type" => "radio", "value" => "PT_RESTRICTED" ], [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("PT_COMPETITIVE_NEGOTIATION"), "required" => true, "type" => "radio", "value" => "PT_COMPETITIVE_NEGOTIATION" ] ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } } private function pt_competitive_negotiation_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function justification_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = $this->arrayName2StringName($settings["name"]); $inputs = [ [ "info" => [ "title" => "* ". $this->translate("JUSTIFICATION"), "style" => "annotation", ] ], [ "name" => $name, "size" => "col-sm-12", "type" => "textarea", "title" => $this->translate("MOTIVAZIONE"), "required" => $settings["required"] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function framework_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $options = []; $options["title"] = [ "info" => [ "title" => $this->translate("FRAMEWORK"), "style" => "subtitle", "hidden" => true ] ]; if (isset($node->complexType) && $this->minOccursRadio($node, $settings, $section, "FRAMEWORK", $this->translate("FRAMEWORK"), $options)) { return; } $s = $settings; if (isset($node->complexType)){ $this->getField($section, $node->complexType, $settings); } else { $s["name"] = array_merge($s["name"], ["FRAMEWORK"]); unset($node->attributes()["name"]); $this->getField($section, $node, $settings); } } private function framework_info_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_FRAMEWORK_INFO"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $value = self::get($this->info["valori"], $key); array_pop($settings["name"]); $settings["name"][] = "RADIO_FOR_FRAMEWORK_INFO"; $child = ' '; $s2 = $s; array_pop($s2["name"]); $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $selected = "empty"; if ($value == "NOTICE_INVOLVES_FRAMEWORK") { $selected = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NOTICE_INVOLVES_FRAMEWORK"), "required" => true, "type" => "radio", "value" => "NOTICE_INVOLVES_FRAMEWORK", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NOTICE_INVOLVES_NO_FRAMEWORK"), "required" => true, "type" => "radio", "value" => "NOTICE_INVOLVES_NO_FRAMEWORK", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; if (isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_FRAMEWORK_INFO"), "required" => true, "type" => "radio", "value" => "NO_FRAMEWORK_INFO", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; } $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function several_operators_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs[] = [ "name" => $this->arrayName2StringName($settings["name"]), "size" => "col-sm-12", "type" => "text", "val" => "__£__", "attrs" => ["hidden" => true], "hidden-label" => true ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function several_operators_choice_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_SEVERAL_OPERATORS"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); //$settings["name"][] = "RADIO_FOR_SEVERAL_OPERATORS"; $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $value = self::get($this->info["valori"], $key); $selected = "empty"; if ($value == "SEVERAL_OPERATORS_CHECK") { $selected = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("SEVERAL_OPERATORS"), "required" => true, "group_validate" => true, "type" => "radio", "value" => "SEVERAL_OPERATORS_CHECK", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("SINGLE_OPERATOR"), "required" => true, "group_validate" => true, "type" => "radio", "value" => "SINGLE_OPERATOR", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function dps_purchasers_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_DPS_PURCHASERS"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("DPS"), "required" => true, "type" => "radio", "value" => "DPS", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_DPS"), "required" => true, "type" => "radio", "value" => "__£__", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "DPS" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function eauction_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_EAUCTION"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("EAUCTION_USED"), "required" => true, "type" => "radio", "value" => "EAUCTION_USED", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_EAUCTION_USED"), "required" => true, "type" => "radio", "value" => "__£__", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "EAUCTION_USED" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function radio_for_gpa(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_GPA_COVERED"]); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $s2 = $settings; $s2["name"] = array_merge($settings["name"],["CONTRACT_COVERED_GPA"]); $s3 = $settings; $s3["name"] = array_merge($settings["name"], ["NO_CONTRACT_COVERED_GPA"]); $obj1 = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement((string) $node->element[0]->attributes()["type"])->asXML(), "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $obj2 = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement((string) $node->element[1]->attributes()["type"])->asXML(), "settings" => $s3, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $name = $this->arrayName2StringName($s["name"]); $value = self::get($this->info["valori"], implode(".", array_merge($settings["name"],["RADIO_FOR_GPA_COVERED"]))); $selected = "empty"; if ($value == "CONTRACT_COVERED_GPA") { $selected = $obj1; } else if ($value == "NO_CONTRACT_COVERED_GPA") { $selected = $obj2; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "CONTRACT_COVERED_GPA", "title" => $this->translate("CONTRACT_COVERED_GPA"), "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$obj1}')" ] ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "NO_CONTRACT_COVERED_GPA", "title" => $this->translate("NO_CONTRACT_COVERED_GPA"), "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$obj2}')" ] ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "__£__", "title" => __guue('Non previsto'), "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_GPA_COVERED"]), $inputs, $this->fields); return false; } private function gpa_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_GPA_COVERED"]); $covered = "CONTRACT_COVERED_GPA"; $not_covered = "NO_CONTRACT_COVERED_GPA"; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("CONTRACT_COVERED_GPA"), "required" => $settings["required"] ?? true, "group_validate" => $settings["required"] ?? true, "type" => "radio", "value" => $covered ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_CONTRACT_COVERED_GPA"), "required" => $settings["required"] ?? true, "group_validate" => $settings["required"] ?? true, "type" => "radio", "value" => $not_covered ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function receipt_tenders_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["DATE_RECEIPT_TENDERS"]); $inputs = [ "RECEIPT_TENDERS_SECTION" => [ [ "size" => "col-sm-6", "name" => $this->arrayName2StringName(array_merge($settings["name"], ["DATE_RECEIPT_TENDERS"])), "object" => "", "title" => $this->translate("DATE_RECEIPT_TENDERS"), "required" => true, "type" => "date", "value" => "" ], [ "size" => "col-sm-6", "name" => $this->arrayName2StringName(array_merge($settings["name"], ["TIME_RECEIPT_TENDERS"])), "object" => "time", "title" => $this->translate("TIME_RECEIPT_TENDERS"), "required" => false, "type" => "datetime", "value" => "" ] ] ]; #$inputs = array_merge(["info" => ["title" => $this->translate("info_admin", $this->arrayName2StringName($settings["name"]))]], $inputs); $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function date_award_scheduled_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $date_award_scheduled = $inputs["DATE_AWARD_SCHEDULED"]; unset($inputs["DATE_AWARD_SCHEDULED"]); $inputs = array_merge($inputs, [ "LANGUAGES" => [ "size" => "col-sm-6", "name" => $this->arrayName2StringName(array_merge($settings["name"], ["LANGUAGES", "LANGUAGE", "@VALUE"])), "object" => "text", "title" => $this->translate("LANGUAGE: ITA"), "required" => true, "type" => "hidden", "value" => "IT" ], "DATE_AWARD_SCHEDULED" => $date_award_scheduled ]); self::set($this->fields, $key, $inputs); } private function languages_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { if ( isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0 ) { return; } $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["LANGUAGES", "LANGUAGE", "_attributes", "VALUE"])), "size" => "col-sm-12", "object" => "text", "type" => "hidden", "value" => "IT", "required" => true ] ]; $this->ignored_keys[] = "VALUE"; $this->fields = $this->makeArray(array_merge($settings["name"], ["LANGUAGES", "LANGUAGE", "_attributes", "VALUE"]), $inputs, $this->fields); return false; } private function n2021_NUTS_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"],["NUTS"]); $s["required"] = true; $this->nuts_fields($node, $s, $section); } private function phone_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"], ["PHONE"]); $input = [ "name" => $this->arrayName2StringName($name), "size" => "col-sm-3", "type" => "text", "title" => $this->translate('PHONE'), "override" => [ "rel" => "N;0;0;PN;" ] ]; $this->fields = $this->makeArray($name, $input, $this->fields); } private function fax_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"],["FAX"]); $input = [ "name" => $this->arrayName2StringName($name), "size" => "col-sm-3", "type" => "text", "title" => $this->translate('FAX'), "override" => [ "rel" => "N;0;0;PN;" ] ]; $this->fields = $this->makeArray($name, $input, $this->fields); } private function limit_candidate_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_LIMIT_CANDIDATE"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("LIMIT_CANDIDATE"), "required" => true, "type" => "radio", "value" => "LIMIT_CANDIDATE", "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$object}')" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_LIMIT_CANDIDATE"), "required" => true, "type" => "radio", "value" => "NO_LIMIT_CANDIDATE", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "LIMIT_CANDIDATE" ? $object : 'empty', "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function nb_limit_candidate_type_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"][] = "RADIO_FOR_NB_LIMIT_CANDIDATE_TYPE"; $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $obj = null; $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); if($content == "NB_ENVISAGED_CANDIDATE") { $obj = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NB_ENVISAGED_CANDIDATE"), "required" => true, "type" => "radio", "value" => "NB_ENVISAGED_CANDIDATE", "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$object}')" ] ]; $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); if($content == "NB_MIN_AND_MAX_LIMIT_CANDIDATE") { $obj = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NB_MIN_AND_MAX_LIMIT_CANDIDATE"), "required" => true, "type" => "radio", "value" => "NB_MIN_AND_MAX_LIMIT_CANDIDATE", "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$object}')" ] ]; $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); if($content == "NB_MAX_LIMIT_CANDIDATE") { $obj = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NB_MAX_LIMIT_CANDIDATE"), "required" => true, "type" => "radio", "value" => "NB_MAX_LIMIT_CANDIDATE", "attrs" => [ "onChange" => "$('#{$id}').empty(); eForms2.add2GUUE('#{$id}','{$object}')" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $obj, "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function nb_lot_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function reduction_recourse_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $reduction_recourse = $inputs["REDUCTION_RECOURSE"]; $reduction_recourse["title"] = $this->translate("REDUCTION_RECOURSE"); unset($inputs["REDUCTION_RECOURSE"]); $inputs = array_merge($inputs, [ "REDUCTION_RECOURSE_SECTION" => [ "REDUCTION_RECOURSE" => $reduction_recourse ] ]); self::set($this->fields, $key, $inputs); } private function right_contract_initial_tenders_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $right_contract_initial_tenders = $inputs["RIGHT_CONTRACT_INITIAL_TENDERS"]; $right_contract_initial_tenders["title"] = $this->translate("RIGHT_CONTRACT_INITIAL_TENDERS"); unset($inputs["RIGHT_CONTRACT_INITIAL_TENDERS"]); $inputs = array_merge($inputs, [ "RIGHT_CONTRACT_INITIAL_TENDERS_SECTION" => [ "RIGHT_CONTRACT_INITIAL_TENDERS" => $right_contract_initial_tenders ] ]); self::set($this->fields, $key, $inputs); } private function notice_number_oj_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { #region [ShowToGaetano] #Nell'F20, nella sezione PROCEDURE è presente solo questo campo, ma la sezione è facoltativa #endregion $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $notice_number_oj = $inputs["NOTICE_NUMBER_OJ"]; $notice_number_oj["title"] = $this->translate("NOTICE_NUMBER_OJ"); unset($inputs["NOTICE_NUMBER_OJ"]); $inputs = array_merge($inputs, [ "NOTICE_NUMBER_OJ_SECTION" => [ "NOTICE_NUMBER_OJ" => $notice_number_oj ] ]); self::set($this->fields, $key, $inputs); } public function date_dispatch_invitations_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $date_dispatch_invitations = $inputs["DATE_DISPATCH_INVITATIONS"][0]; $date_dispatch_invitations["title"] = $this->translate("DATE_DISPATCH_INVITATIONS"); unset($inputs["DATE_DISPATCH_INVITATIONS"]); $inputs = array_merge($inputs, [ "DATE_DISPATCH_INVITATIONS_SECTION" => [ "DATE_DISPATCH_INVITATIONS" => $date_dispatch_invitations ] ]); self::set($this->fields, $key, $inputs); } public function time_frame_tender_valid_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_TIME_FRAME_TENDER"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $obj = "empty"; $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); if($value == "DATE_TENDER_VALID") { $obj = $object; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "DATE_TENDER_VALID", "title" => $this->translate("DATE_END"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true, "group_validate" => true ]; $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); if($value == "DURATION_TENDER_VALID") { $obj = $object; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "DURATION_TENDER_VALID", "title" => $this->translate("DURATION"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true, "group_validate" => true ]; if(isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("NOT_SPECIFIED"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true, "group_validate" => true ]; } $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $obj, "attrs" => [ "class" => "", "id" => $id, ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_TIME_FRAME_TENDER"]), $inputs, $this->fields); return false; } private function month_duration_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $inputs[] = [ "size" => "col-sm-12", "title" => $this->translate("DURATION_TENDER_VALID"), "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_attributes", "TYPE"])), "type" => "hidden", "value" => "MONTH", "required" => true ]; $inputs[] = [ "size" => "col-sm-12", "title" => $this->translate("DURATION_TENDER_VALID"), "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_value"])), "type" => "text", "object" => "empty", "attrs" => [ "class" => "datetime" ], "required" => true ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function recurrent_procurement_section(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_RECURRENT_PROCUREMENT"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "RECURRENT_PROCUREMENT", "title" => $this->translate("RECURRENT_PROCUREMENT"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_RECURRENT_PROCUREMENT", "title" => $this->translate("NO_RECURRENT_PROCUREMENT"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $value == "RECURRENT_PROCUREMENT" ? $key : null, "object" => $value == "RECURRENT_PROCUREMENT" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_RECURRENT_PROCUREMENT"]), $inputs, $this->fields); return false; } private function val_base(SimpleXMLIterator $node, array $settings = [], String $section) { $this->val_fields($node, $settings, $section); } private function val_range_base(SimpleXMLIterator $node, array $settings = [], String $section) { array_pop($settings["name"]); $this->val_range_total_ref($node, $settings, $section); } private function val_range_total_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"],["VAL_RANGE_TOTAL"]); $cost_object = $this->makeAdd2GUUEObject(["child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); //NOTE: questo input viene preso pari pari dal val_fields, forse converrebbe riutilizzarlo in qualche maniera $inputs[] = [ "size" => "col-sm-4", "name" => $this->arrayName2StringName(array_merge($name, ["_attributes", "CURRENCY"])), "object" => "empty", "title" => $this->translate("CURRENCY"), "required" => true, "type" => "select", "options" => $this->getCurrencyOptions() ]; $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($name, ["LOW"])), "size" => "col-sm-12 col-md-4", "type" => "text", "object" => $cost_object, "value" => "LOW", "title" => $this->translate("LOW"), "required" => true ]; $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($name, ["HIGH"])), "size" => "col-sm-12 col-md-4", "type" => "text", "object" => $cost_object, "value" => "HIGH", "title" => $this->translate("HIGH"), "required" => true ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["VAL_RANGE_TOTAL"]), $inputs, $this->fields); return false; } private function termination_dps_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $termination_dps = $inputs["TERMINATION_DPS"]; $termination_dps["title"] = $this->translate("TERMINATION_DPS", $this->arrayName2StringName($settings["name"])); unset($inputs["TERMINATION_DPS"]); $inputs = array_merge($inputs, [ "TERMINATION_DPS_SECTION" => [ "TERMINATION_DPS" => $termination_dps ] ]); self::set($this->fields, $key, $inputs); } private function termination_pin_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); $termination_pin = $inputs["TERMINATION_PIN"]; $termination_pin["title"] = $this->translate("TERMINATION_PIN"); unset($inputs["TERMINATION_PIN"]); $inputs = array_merge($inputs, [ "TERMINATION_PIN_SECTION" => [ "TERMINATION_PIN" => $termination_pin ] ]); self::set($this->fields, $key, $inputs); } private function contract_number_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $this->sizes["CONTRACT_NO"] = 'col-md-12 col-lg-3'; $this->sizes["LOT_NO"] = 'col-md-12 col-lg-2'; $this->sizes["TITLE"] = 'col-md-12 col-lg-7'; $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); } private function text_ft_multi_lines_base(SimpleXMLIterator $node, Array $settings = [], String $section) { $attr = []; if ( isset($node->attribute) && isset($node->attribute->attributes()["name"]) && $node->attribute->attributes()["name"] == "PUBLICATION" ) { $attr = ["P"]; } $node_name = $settings["name"][count($settings["name"])-1]; $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"],$attr)), "title" => $this->translate($node_name), "size" => "col-sm-12", "type" => "textarea", "required" => $settings["required"] ] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function awarded_contract_section(SimpleXMLIterator $node, Array $settings = [], String $section) { $settings["required"] = true; $name = array_merge($settings["name"], ["RADIO_FOR_AWARDED_CONTRACT_SECTION"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject(["child" => '',"settings" => $settings,"section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => false]); $k = null; $obj = "empty"; if($value == "NO_AWARDED_CONTRACT") { $k = $key; $obj = $object; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_AWARDED_CONTRACT", "title" => $this->translate("NO_AWARDED_CONTRACT"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "group_validate" => true, "required" => true, ]; $search = "//element[@name='AWARDED_CONTRACT']"; $child = $this->dom->xpath($search)[0]->asXML(); $object = $this->makeAdd2GUUEObject(["child" => $child,"settings" => $settings,"section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => false]); if($value == "AWARDED_CONTRACT") { $k = $key; $obj = $object; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "AWARDED_CONTRACT", "title" => $this->translate("AWARDED_CONTRACT"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "group_validate" => true, "required" => true ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $k, "object" => $obj, "attrs" => [ "class" => "", "id" => $id, ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_AWARDED_CONTRACT_SECTION"]), $inputs, $this->fields); return false; } private function no_award_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_NO_AWARD_SECTION"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child,"settings" => $settings,"section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => false]); $k = null; $obj = "empty"; if($value == "PROCUREMENT_DISCONTINUED") { $k = $key; $obj = $object; } $r = $settings["required"]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PROCUREMENT_DISCONTINUED", "title" => $this->translate("PROCUREMENT_DISCONTINUED"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "group_validate" => $r, "required" => $r ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PROCUREMENT_UNSUCCESSFUL", "title" => $this->translate("PROCUREMENT_UNSUCCESSFUL"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "group_validate" => $r, "required" => $r ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $k, "object" => $obj, "attrs" => [ "class" => "", "id" => $id, ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_NO_AWARD_SECTION"]), $inputs, $this->fields); return false; } private function procurement_discontinued_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = []; $name = array_merge($settings["name"], ["RADIO_FOR_ORIGINAL_OTHER_MEANS_SECTION"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child,"settings" => $settings,"section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => false]); $k = null; $obj = "empty"; if($value == "NO_ORIGINAL_OTHER_MEANS") { $k = $key; $obj = $object; } $r = $settings["required"]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_ORIGINAL_OTHER_MEANS", "title" => $this->translate("NO_ORIGINAL_OTHER_MEANS"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "group_validate" => $r, "required" => $r ]; $s = $settings; $s["name"] = array_merge($s["name"],["PROCUREMENT_DISCONTINUED"]); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child,"settings" => $s, "section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => false]); if($value == "ORIGINAL_OTHER_MEANS") { $k = $key; $obj = $object; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "ORIGINAL_OTHER_MEANS", "title" => $this->translate("ORIGINAL_OTHER_MEANS"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "group_validate" => $r, "required" => $r ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $k, "object" => $obj, "attrs" => [ "class" => "", "id" => $id, ] ]; $inputs[] = [ "size" => "col-sm-8", "title" => $this->translate("DATE_DISPATCH_ORIGINAL"), "name" => $this->arrayName2StringName(array_merge($settings["name"], ["PROCUREMENT_DISCONTINUED","DATE_DISPATCH_ORIGINAL", "_value"])), "type" => "date", "object" => "date", "value" => "", "attrs" => [ "class" => "datetimepicker" ], "group_validate" => $r, "required" => $r ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($settings["name"], ["PROCUREMENT_DISCONTINUED","DATE_DISPATCH_ORIGINAL", "_attributes", "PUBLICATION"])), ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_ORIGINAL_OTHER_MEANS_SECTION"]), $inputs, $this->fields); return false; } private function no_original_other_means_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $s = $settings; $s["name"][] = "PROCUREMENT_DISCONTINUED"; $this->auth(); $ente = $_SESSION["ente"]->getInfo(); $inputs = []; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($s["name"], ["ORIGINAL_ENOTICES", "_attributes", "PUBLICATION"])), ]; $inputs[] = [ "type" => "hidden", "value" => $this->username, "name" => $this->arrayName2StringName(array_merge($s["name"], ["ESENDER_LOGIN", "_value"])), ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($s["name"], ["ESENDER_LOGIN", "_attributes", "PUBLICATION"])), ]; $inputs[] = [ "type" => "hidden", "value" => $ente["id_guue"] ?? "__£__", "name" => $this->arrayName2StringName(array_merge($s["name"], ["CUSTOMER_LOGIN", "_value"])), ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($s["name"], ["CUSTOMER_LOGIN", "_attributes", "PUBLICATION"])), ]; $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["NO_DOC_EXT", "_value"])), "size" => "col-sm-12", "type" => "text", "object" => "empty", "value" => "", "rel" => ["S", "1", "0", "A"], "title" => $this->translate("NO_DOC_EXT"), "required" => true, ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($s["name"], ["NO_DOC_EXT", "_attributes", "PUBLICATION"])), ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["PROCUREMENT_DISCONTINUED"]), $inputs, $this->fields); return false; } private function original_other_means_node(SimpleXMLIterator $node, array $settings = [], String $section) { if ( !empty($node->complexType) && !empty($node->complexType->simpleContent) && !empty($node->complexType->simpleContent->extension) && isset($node->complexType->simpleContent->extension->attribute) && !empty($node->complexType->simpleContent->extension->attribute->attributes()["name"]) ) { $attributes = $node->complexType->simpleContent->extension->attribute->attributes(); if ($attributes["name"] == "PUBLICATION" && !empty($attributes["fixed"]) && $attributes["fixed"] == "NO") { $inputs[] = [ "title" => __guue("Dettagli"), "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_value"])), "object" => "text_ft_multi_lines", "required" => true, "type" => "textarea", "rel" => ["S",1,200,"RT"] ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_attributes", "PUBLICATION"])), ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } } else { return $this->getField($section, $node->complexType, $settings); } } private function original_other_means_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $settings["name"][] = "ORIGINAL_OTHER_MEANS"; $inputs[] = [ "title" => __guue("Dettagli"), "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_value"])), "object" => "text_ft_multi_lines", "required" => true, "type" => "textarea", ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_attributes", "PUBLICATION"])), ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function contractor_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_AWARDED_TO_SECTION"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject(["child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $k = null; $obj = "empty"; if($value == "AWARDED_TO_GROUP") { $k = $key; $obj = $object; } $r = $settings["required"]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "AWARDED_TO_GROUP", "title" => $this->translate("AWARDED_TO_GROUP"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "group_validate" => $r, "required" => $r, ]; $object = $this->makeAdd2GUUEObject(["child" => '',"settings" => $settings,"section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => false]); if($value == "NO_AWARDED_TO_GROUP") { $k = $key; $obj = $object; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_AWARDED_TO_GROUP", "title" => $this->translate("NO_AWARDED_TO_GROUP"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "group_validate" => $r, "required" => $r ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $k, "object" => $obj, "attrs" => [ "class" => "", "id" => $id, ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_AWARDED_TO_SECTION"]), $inputs, $this->fields); return false; } private function multiple_contractor_sme_man_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { if (in_array($this->form_section,["F15_2014"])) { $this->publication_fields($node, $settings, $section); } $s = $settings; $s["name"] = array_merge($settings["name"],["CONTRACTOR"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $object = $this->makeAdd2GUUEObject(["child" => '',"settings" => $s,"section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => true]); $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $object, "attrs" => [ "id" => $id ] ]; $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["CONTRACTOR_SME_MAN_ADDITIONAL_BUTTON"])), "required" => false, "type" => "button", "title" => __guue('Aggiungi Aggiudicatario'), "object" => $object, "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}','{$object}')", "class" => "btn btn-block btn-primary" ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } #region[ShowToGaetano] #Qui è stata rimossa gran parte della funzione #i nodi sono stati gestiti singolarmente durante la stesura di qualcuno dei form #tenerla invariata causava anche problemi di generazione del form #endregion private function contractor_sme_man_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $fields = self::get($this->fields, $key); unset($fields["SME"], $fields["NO_SME"]); self::set($this->fields, $key, $fields); $name = array_merge($settings["name"], ["RADIO_FOR_SME_SECTION"]); $name = $this->arrayName2StringName($name); $key = $this->getKeyFromNameString($name); return false; } private function nb_contract_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function date_full_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = $settings["name"]; $name = $this->arrayName2StringName($name); $inputs[] = [ "title" => $this->translate("DATE"), "name" => $name, "type" => "date", "object" => "empty", "size" => "col-sm-12", "required" => $settings["required"] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } public function date_dispatch_notice_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $child = $this->getTypeElement($node->attributes()["ref"]->__toString()); $this->getField($section, $child, $settings); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $inputs = self::get($this->fields, $key); if (is_array($inputs["DATE_DISPATCH_NOTICE"]) && count($inputs["DATE_DISPATCH_NOTICE"]) > 0 && strpos($inputs["DATE_DISPATCH_NOTICE"][0]["name"], "DATE_DISPATCH_NOTICE") !== false) { $inputs["DATE_DISPATCH_NOTICE"][0]["required"] = true; $inputs["DATE_DISPATCH_NOTICE"][0]["title"] = $this->translate("DATE_DISPATCH_NOTICE", $this->arrayName2StringName($settings["name"])); } else if($this->debug) { $backtrace = debug_backtrace(); $backtrace = array_shift($backtrace); echo ("ERROR - DATE_DISPATCH_NOTICE
ƒ({$backtrace['file']}@{$backtrace['line']}):
input non presente all'interno dell'array
"); die(); } self::set($this->fields, $key, $inputs); } private function entity_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["CE_ACTIVITY", "_attributes", "VALUE"])), "size" => "col-sm-4", "type" => "select", "object" => "empty", "options" => [ "AIRPORT_RELATED_ACTIVITIES" => $this->translate("AIRPORT_RELATED_ACTIVITIES"), "ELECTRICITY" => $this->translate("ELECTRICITY"), "EXPLORATION_EXTRACTION_COAL_OTHER_SOLID_FUEL" => $this->translate("EXPLORATION_EXTRACTION_COAL_OTHER_SOLID_FUEL"), "EXPLORATION_EXTRACTION_GAS_OIL" => $this->translate("EXPLORATION_EXTRACTION_GAS_OIL"), "PORT_RELATED_ACTIVITIES" => $this->translate("PORT_RELATED_ACTIVITIES"), "POSTAL_SERVICES" => $this->translate("POSTAL_SERVICES"), "PRODUCTION_TRANSPORT_DISTRIBUTION_GAS_HEAT" => $this->translate("PRODUCTION_TRANSPORT_DISTRIBUTION_GAS_HEAT"), "RAILWAY_SERVICES" => $this->translate("RAILWAY_SERVICES"), "URBAN_RAILWAY_TRAMWAY_TROLLEYBUS_BUS_SERVICES" => $this->translate("URBAN_RAILWAY_TRAMWAY_TROLLEYBUS_BUS_SERVICES"), "WATER" => $this->translate("WATER"), ], "title" => $this->translate("CE_ACTIVITY"), "required" => false ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["CE_ACTIVITY_OTHER"])), "size" => "col-sm-8", "type" => "text", "object" => "empty", "title" => $this->translate("CA_TYPE_OTHER"), "required" => true ] ]; $this->ignored_keys[] = ["ce_activity_selection"]; $this->fields = $this->makeArray(array_merge($settings["name"], ["ce_activity_selection"]), $inputs, $this->fields); } private function nb_object_contract_fields(SimpleXMLIterator $node, Array $settings = [], String $section) { return; } private function lefti_f04_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $n = $node; unset($n->attributes()["name"]); $s = $settings; $s["required"] = false; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_LEFTI"])))); $object = $this->makeAdd2GUUEObject(["child" => $node->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true]); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $value = self::get($this->info["valori"], implode(".", array_merge($s["name"], ["RADIO_FOR_LEFTI"]))); $selected = "empty"; if ($value == "__£__") { $selected = $object; } $inputs = [ "info" => [ "title" => $this->translate("RADIO_FOR_LEFTI", $this->arrayName2StringName($settings["name"])) ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LEFTI"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_LEFTI"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_LEFTI", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function lefti_f21_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $this->lefti_f04_node($node, $settings, $section); } private function lefti_f23_node(SimpleXMLIterator $node, Array $settings = [], String $section) { return $this->lefti_f04_node($node, $settings, $section); } private function lefti_f22_node(SimpleXMLIterator $node, Array $settings = [], String $section) { return $this->lefti_f04_node($node, $settings, $section); } private function custom_procedure_f21_node(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]); $name = $this->arrayName2StringName($name); unset($node->sequence->choice[0]); unset($node->attributes()["name"]); $id = $this->getId($name); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $s2 = $settings; $s2["name"][] = "PT_AWARD_CONTRACT_WITHOUT_CALL"; $value = self::get($this->info["valori"], implode(".",array_merge($settings["name"],["RADIO_FOR_PROCEDURE_TYPE"]))); $object = $this->makeAdd2GUUEObject([ "child" => $this->getTypeElement("annex_d1_f21")->asXML(), "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; if ($value == "PT_AWARD_CONTRACT_WITHOUT_CALL") { $selected = $object; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_OPEN", "title" => $this->translate("PT_OPEN"), "required" => true, "group_validate" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();" ], ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "required" => true, "group_validate" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();" ], ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_INVOLVING_NEGOTIATION", "title" => $this->translate("PT_INVOLVING_NEGOTIATION"), "required" => true, "group_validate" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();" ], ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_AWARD_CONTRACT_WITHOUT_CALL", "title" => $this->translate("PT_AWARD_CONTRACT_WITHOUT_CALL",$this->arrayName2StringName($settings["name"])), "required" => true, "group_validate" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); $this->getField($section, $node, $settings); return false; } private function val_revenue_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $options["title"] = [ "info" => [ "title" => $this->translate("SPECIFY_VAL_REVENUE"), "style" => "subtitle", "hidden" => true ] ]; unset($node->attributes()["name"]); if ($this->minOccursRadio($node, $settings, $section, "VAL_REVENUE", "SPECIFY_VAL_REVENUE", $options)) { return; } $this->getField($section, $node, $settings); } private function val_price_payment_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $options["title"] = [ "info" => [ "title" => $this->translate("SPECIFY_VAL_PRICE_PAYMENT_NODE"), "style" => "subtitle", "hidden" => true ] ]; unset($node->attributes()["name"]); if ($this->minOccursRadio($node, $settings, $section, "VAL_PRICE_PAYMENT", "SPECIFY_VAL_PRICE_PAYMENT_NODE", $options)) { return; } $this->getField($section, $node, $settings); } private function procedure_f21_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $n = $node; unset($n->attributes()["name"]); $s = $settings; $s["required"] = false; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE"])))); $node->addAttribute("name","custom_procedure_f21"); $object = $this->makeAdd2GUUEObject(["child" => $node->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true]); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $value = self::get($this->info["valori"], implode(".", array_merge($s["name"], ["RADIO_FOR_PROCEDURE"]))); $selected = "empty"; if ($value == "__£__") { $selected = $object; } $inputs = [ "info" => [ "title" => $this->translate("RADIO_FOR_PROCEDURE", $this->arrayName2StringName($s["name"])) ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}')", ], "group_validate" => true, "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_PROCEDURE", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "group_validate" => true, "required" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function procedure_f01_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $this->applyTitle("PROCEDURE", $settings, $section); $n = $node; unset($n->attributes()["name"]); $s = $settings; $s["required"] = false; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"])))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); unset($n->sequence->choice[0]); $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_COMPETITIVE_NEGOTIATION", "title" => $this->translate("PT_COMPETITIVE_NEGOTIATION"), "attrs" => [ "onChange" => "$('#{$id}').empty();", ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "attrs" => [ "onChange" => "$('#{$id}').empty();", ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("NOT_SPECIFIED"), "attrs" => [ "onChange" => "$('#{$id}').empty();", ], "required" => true, "group_validate" => true ], ]; $this->fields = $this->makeArray(array_merge($s["name"],["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); $this->getField($section, $n, $settings); } private function custom_procedure_f22_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $n = $node; unset($n->attributes()["name"]); $s = $settings; $s["required"] = true; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"])))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $s2 = $settings; $s2["name"] = array_merge($settings["name"], ["PT_AWARD_CONTRACT_WITHOUT_CALL"]); $child = $this->getTypeElement($node->sequence->choice->element[3]->attributes()["type"]->__toString())->asXML(); $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true]); unset($n->sequence->choice[0]); $value = self::get($this->info["valori"], implode(".", array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"]))); $selected = "empty"; if ($value == "PT_AWARD_CONTRACT_WITHOUT_CALL") { $selected = $object; } $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_OPEN", "title" => $this->translate("PT_OPEN"), "attrs" => [ "onChange" => "$('#{$id}').empty();", ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "attrs" => [ "onChange" => "$('#{$id}').empty();", ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_INVOLVING_NEGOTIATION", "title" => $this->translate("PT_INVOLVING_NEGOTIATION"), "attrs" => [ "onChange" => "$('#{$id}').empty();", ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_AWARD_CONTRACT_WITHOUT_CALL", "title" => $this->translate("PT_AWARD_CONTRACT_WITHOUT_CALL",$this->arrayName2StringName($s["name"])), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("NOT_SPECIFIED"), "attrs" => [ "onChange" => "$('#{$id}').empty();", ], "required" => true, "group_validate" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($s["name"],["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); $this->getField($section, $n, $settings); } private function procedure_f22_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $n = $node; $n->attributes()["name"] = "CUSTOM_PROCEDURE_F22"; $s = $settings; $s["required"] = false; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE"])))); $object = $this->makeAdd2GUUEObject(["child" => $node->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true]); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $value = self::get($this->info["valori"], implode(".", array_merge($s["name"], ["RADIO_FOR_PROCEDURE"]))); $selected = "empty"; if ($value == "__£__") { $selected = $object; } $inputs = [ "info" => [ "title" => $this->translate("Specifica informazioni sulla procedura") ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_PROCEDURE"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_LEFTI", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function award_contract_f03_node(SimpleXMLIterator $node, Array $settings = [], String $section) { if (array_search("£", $settings["name"]) === false) { $s = $settings; array_pop($s["name"]); $s["name"][] = "NUMBER_OF_AWARD_CONTRACT"; $name = $this->arrayName2StringName($s["name"]); $content = self::get($this->info["valori"],"TED_ESENDERS.FORM_SECTION.{$this->form_section}.NUMBER_OF_AWARD_CONTRACT"); $inputs = []; $inputs[] = [ [ "name" => $name, "size" => "col-12", "type" => "number", "title" => $this->translate("AWARD_CONTRACT_QUANTITY"), "object" => "empty", "required" => true, "rel" => ["S", "1", "100", "N"], "val" => $content ?? "" ] ]; $inputs[] = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["AWARD_CONTRACT"])), "type" => "hidden", "value" => "__£__" ] ]; $this->fields = $this->makeArray(array_merge($settings["name"]), $inputs, $this->fields); return false; } unset($node->attributes()["name"]); $this->getField($section, $node, $settings); } private function award_contract_f06_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $this->award_contract_f03_node($node, $settings, $section); } private function award_contract_f15_node(SimpleXMLIterator $node, array $settings = [], String $section) { $this->award_contract_f03_node($node, $settings, $section); } private function award_contract_f21_node(SimpleXMLIterator $node, Array $settings = [], String $section) { if (array_search("£", $settings["name"]) === false) { $s = $settings; $s["required"] = true; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_AWARD_CONTRACT"])))); $object = $this->makeAdd2GUUEObject(["child" => '', "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true]); $value = self::get($this->info["valori"], implode(".", array_merge($s["name"], ["RADIO_FOR_AWARD_CONTRACT"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $selected = "empty"; if ($value == "__£__") { $selected = $object; } $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_AWARD_CONTRACT"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["RADIO_FOR_AWARD_CONTRACT"])), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_AWARD_CONTRACT", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true, "group_validate" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($s["name"],["RADIO_FOR_AWARD_CONTRACT"]), $inputs, $this->fields); return; } unset($node->attributes()["name"]); $this->getField($section, $node, $settings); } private function award_contract_f22_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $this->award_contract_f21_node($node, $settings, $section); } private function award_contract_f23_node(SimpleXMLIterator $node, array $settings = [], String $section) { $this->award_contract_f21_node($node, $settings, $section); } private function award_contract_f25_node(SimpleXMLIterator $node, Array $settings = [], String $section) { $this->award_contract_f21_node($node, $settings, $section); } private function object_contract_f21_node(SimpleXMLIterator $node, Array $settings = [], String $section) { if (array_search("£",$settings["name"]) === false) { $s = $settings; array_pop($s["name"]); $s["name"][] = "NUMBER_OF_OBJECT_CONTRACT"; $name = $this->arrayName2StringName($s["name"]); $inputs = []; $inputs[] = [ [ "name" => $name, "size" => "col-12", "type" => "number", "title" => __guue('Quantità Oggetti del Contratto'), "object" => "empty", "required" => true, "rel" => ["S","1","100","N"] ] ]; $inputs[] = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["OBJECT_CONTRACT"])), "type" => "hidden", "value" => "__£__" ] ]; $this->fields = $this->makeArray(array_merge($settings["name"]), $inputs, $this->fields); return false; } unset($node->attributes()["name"]); $this->getField($section, $node, $settings); } private function object_contract_f04_node(SimpleXMLIterator $node, array $settings = [], String $section) { $this->object_contract_f21_node($node, $settings, $section); } private function object_contract_f22_node(SimpleXMLIterator $node, array $settings = [], String $section) { $this->object_contract_f21_node($node, $settings, $section); } private function procedure_f20_node(SimpleXMLIterator $node, array $settings = [], String $section) { $node->sequence->element->attributes()["minOccurs"] = 0; unset($node->attributes()["name"]); $this->getField($section, $node, $settings); } private function pt_negotiated_with_prior_call_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_PT_RESTRICTED"]); $name = $this->arrayName2StringName($name); $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "group_validate" => false, "required" => false, ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_NEGOTIATED_WITH_PRIOR_CALL", "title" => $this->translate("PT_NEGOTIATED_WITH_PRIOR_CALL"), "group_validate" => false, "required" => false, ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PT_RESTRICTED"]), $inputs, $this->fields); } private function d_justification_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"],["D_JUSTIFICATION"]); $name = $this->arrayName2StringName($name); $required = true; if(isset($this->attributes()["minOccurs"]) && (int) $this->attributes()["minOccurs"] == 0) { $required = false; } $inputs[] = [ "name" => $name, "title" => $this->translate("D_JUSTIFICATION"), "size" => "col-sm-12", "type" => "textarea", "required" => $required ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["D_JUSTIFICATION"]), $inputs, $this->fields); } private function town_ref(SimpleXMLIterator $node, Array $settings = [], String $section) { $name = array_merge($settings["name"],["TOWN"]); $name = $this->arrayName2StringName($name); $inputs[] = [ "name" => $name, "type" => "text", "size" => "col-sm-3", "object" => "empty", "title" => $this->translate("TOWN"), "rel" => [$settings["required"] ? "S" : "N","2","100","ALPHA"], "required" => $settings["required"] ]; $this->fields = $this->makeArray(array_merge($settings["name"],["TOWN"]), $inputs, $this->fields); return false; } private function deposit_guarantee_required_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_DEPOSIT_GUARANTEE_REQUIRED"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs[] = [ "info" => [ "title" => $this->translate("RADIO_FOR_DEPOSIT_GUARANTEE_REQUIRED",$this->arrayName2StringName($settings["name"])), "style" => "subtitle" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("RADIO_FOR_DEPOSIT_GUARANTEE_REQUIRED"), "required" => true, "type" => "radio", "value" => "RADIO_FOR_DEPOSIT_GUARANTEE_REQUIRED", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_RADIO_FOR_DEPOSIT_GUARANTEE_REQUIRED"), "required" => true, "type" => "radio", "value" => "NO_RADIO_FOR_DEPOSIT_GUARANTEE_REQUIRED", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "RADIO_FOR_DEPOSIT_GUARANTEE_REQUIRED" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function main_financing_condition_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_MAIN_FINANCING_CONDITION"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs = []; $inputs[] = [ "info" => [ "title" => $this->translate("MAIN_FINANCING_CONDITION", $this->arrayName2StringName($settings["name"])), "style" => "subtitle" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("RADIO_FOR_MAIN_FINANCING_CONDITION"), "required" => true, "type" => "radio", "value" => "RADIO_FOR_MAIN_FINANCING_CONDITION", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_RADIO_FOR_MAIN_FINANCING_CONDITION"), "required" => true, "type" => "radio", "value" => "NO_RADIO_FOR_MAIN_FINANCING_CONDITION", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "RADIO_FOR_MAIN_FINANCING_CONDITION" ? $object : "empty", "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function legal_form_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_LEGAL_FORM"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs = []; $inputs[] = [ "info" => [ "title" => $this->translate("RADIO_FOR_LEGAL_FORM", $this->arrayName2StringName($settings["name"])), "style" => "subtitle" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("YES"), "required" => true, "type" => "radio", "value" => "RADIO_FOR_LEGAL_FORM", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO"), "required" => true, "type" => "radio", "value" => "__£__", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $content == "__£__" ? "empty" : $object, "attrs" => [ "class" => "", "id" => $id ] ]; $s["name"] = array_merge($s["name"], ["LEGAL_FORM"]); $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function particular_profession_section(SimpleXMLIterator $node, array $settings = [], String $section) { $this->applyTitle("RADIO_FOR_PARTICULAR_PROFESSION_SECTION",$settings,$section); $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_PARTICULAR_PROFESSION_SECTION"]); $id = uniqid($this->slugify($this->arrayName2StringName($settings["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $settings["skip-particular-profession"] = true; if ($this->form_section == "F12_2014") { unset($node->element[1]); } $child = $node->asXML(); $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $inputs = []; $selected = "empty"; $value = self::get($this->info["valori"], $key); if ($value == "RADIO_FOR_PARTICULAR_PROFESSION_SECTION") { $selected = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("CHOICE_RADIO_FOR_PARTICULAR_PROFESSION_SECTION", $this->arrayName2StringName($s["name"])), "required" => true, "type" => "radio", "value" => "RADIO_FOR_PARTICULAR_PROFESSION_SECTION", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}');" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_RADIO_FOR_PARTICULAR_PROFESSION_SECTION"), "required" => true, "type" => "radio", "value" => (in_array($this->form_section,["F12_2014"])) ? "NO_PARTICULAR_PROFESSION" : "__£__", "attrs" => [ "onChange" => "$('#{$id}').empty();" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id ] ]; $s["name"] = array_merge($s["name"], ["PARTICULAR_PROFESSION"]); $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function annex_d3_part2_node(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($s["name"],["RADIO_FOR_D_SERVICES_LISTED"]); $name = array_merge($s["name"]); $name = $this->arrayName2StringName($name); unset($node->choice); unset($node->attributes()["name"]); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "D_SERVICES_LISTED", "title" => $this->translate("D_SERVICES_LISTED"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "D_OUTSIDE_SCOPE", "title" => $this->translate("D_OUTSIDE_SCOPE"), "required" => true ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); $this->getField($section, $node, $settings); return false; } private function annex_d1_fields(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($s["name"],["RADIO_FOR_ANNEX_D1_PART1"]); $id = $this->getId($this->arrayName2StringName($s["name"])); $key = $this->getKeyFromNameString($this->arrayName2StringName($s["name"])); $value = self::get($this->info["valori"], $key); $s2 = $settings; if ($s2["name"][count($s2["name"])-1] != "PT_AWARD_CONTRACT_WITHOUT_CALL") { $s2["name"] = array_merge($s2["name"],["PT_AWARD_CONTRACT_WITHOUT_CALL","D_ACCORDANCE_ARTICLE"]); } else { $s2["name"] = array_merge($s2["name"],["D_ACCORDANCE_ARTICLE"]); } $annex_d1_object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $annex_part2_object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; if ($value == "ANNEX_D1_PART_1") { $selected = $annex_d1_object; } else if ($value == "ANNEX_PART2") { $selected = $annex_part2_object; } $settings_merge = ["D_JUSTIFICATION"]; if ($settings["name"][count($settings["name"]) - 1] != "PT_AWARD_CONTRACT_WITHOUT_CALL") { $settings_merge = ["PT_AWARD_CONTRACT_WITHOUT_CALL","D_JUSTIFICATION"]; } $inputs = [ [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "ANNEX_D1_PART_1", "title" => $this->translate("ANNEX_D1_PART_1"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$annex_d1_object}');" ], "required" => true, "group_validate" => true ], [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "ANNEX_PART2", "title" => $this->translate("ANNEX_PART2"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$annex_part2_object}');" ], "required" => true, "group_validate" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], $settings_merge)), "size" => "col-sm-12", "type" => "textarea", "object" => "empty", "value" => "D_JUSTIFICATION", "title" => $this->translate("D_JUSTIFICATION"), "required" => true, "group_validate" => true ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_ANNEX_D1_PART1"]), $inputs, $this->fields); return false; } private function procedure_f02_node(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_OPEN", "title" => $this->translate("PT_OPEN"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_COMPETITIVE_NEGOTIATION", "title" => $this->translate("PT_COMPETITIVE_NEGOTIATION"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_COMPETITIVE_DIALOGUE", "title" => $this->translate("PT_COMPETITIVE_DIALOGUE"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_INNOVATION_PARTNERSHIP", "title" => $this->translate("PT_INNOVATION_PARTNERSHIP"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => in_array($value, ["PT_OPEN", "PT_RESTRICTED", "PT_COMPETITIVE_NEGOTIATION", "PT_COMPETITIVE_DIALOGUE"]) ? $key : null, "object" => in_array($value, ["PT_OPEN", "PT_RESTRICTED", "PT_COMPETITIVE_NEGOTIATION", "PT_COMPETITIVE_DIALOGUE"]) ? $object : "empty", "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); unset($node->sequence->choice); foreach ($node->sequence as $n) { $this->getField($section, $n, $settings); } return false; } private function procedure_f03_node(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($s["name"],["RADIO_FOR_PROCEDURE_TYPE"]); $id = $this->getId($this->arrayName2StringName($s["name"])); $key = $this->getKeyFromNameString($this->arrayName2StringName($s["name"])); $value = self::get($this->info["valori"], $key); $name = $this->arrayName2StringName($s["name"]); $s = $settings; $s2 = $settings; $pt_award_without_call_object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; if (in_array($value, ["PT_OPEN", "PT_RESTRICTED", "PT_COMPETITIVE_NEGOTIATION", "PT_COMPETITIVE_DIALOGUE"])) { $selected = $object; } else if ($value == "PT_AWARD_CONTRACT_WITHOUT_CALL") { $selected = $pt_award_without_call_object; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_OPEN", "title" => $this->translate("PT_OPEN"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_COMPETITIVE_NEGOTIATION", "title" => $this->translate("PT_COMPETITIVE_NEGOTIATION"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_COMPETITIVE_DIALOGUE", "title" => $this->translate("PT_COMPETITIVE_DIALOGUE"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_INNOVATION_PARTNERSHIP", "title" => $this->translate("PT_INNOVATION_PARTNERSHIP"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_AWARD_CONTRACT_WITHOUT_CALL", "title" => $this->translate("PT_AWARD_CONTRACT_WITHOUT_CALL",$this->arrayName2StringName($s["name"])), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$pt_award_without_call_object}');" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); unset($node->sequence->choice); foreach ($node->sequence as $n) { $this->getField($section, $n, $settings); } return false; } private function procedure_f04_node(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]); $name = $this->arrayName2StringName($name); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_NEGOTIATED_WITH_PRIOR_CALL", "title" => $this->translate("PT_NEGOTIATED_WITH_PRIOR_CALL"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_NONE", "title" => $this->translate("NOT_SPECIFIED"), "required" => true ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); unset($node->sequence->choice); foreach ($node->sequence as $n) { $this->getField($section, $n, $settings); } return false; } private function procedure_f05_node(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]); $name = $this->arrayName2StringName($name); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_OPEN", "title" => $this->translate("PT_OPEN"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_NEGOTIATED_WITH_PRIOR_CALL", "title" => $this->translate("PT_NEGOTIATED_WITH_PRIOR_CALL"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_COMPETITIVE_DIALOGUE", "title" => $this->translate("PT_COMPETITIVE_DIALOGUE"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_INNOVATION_PARTNERSHIP", "title" => $this->translate("PT_INNOVATION_PARTNERSHIP"), "required" => true ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); unset($node->sequence->choice); foreach ($node->sequence as $n) { $this->getField($section, $n, $settings); } return false; } private function procedure_f06_node(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_PROCEDURE_TYPE"]); $id = $this->getId($this->arrayName2StringName($s["name"])); $key = $this->getKeyFromNameString($this->arrayName2StringName($s["name"])); $value = self::get($this->info["valori"], $key); $name = $this->arrayName2StringName($s["name"]); $object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; if ($value == "YES_PT_AWARD_CONTRACT_WITHOUT_CALL") { $selected = $object; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_OPEN", "title" => $this->translate("PT_OPEN"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_NEGOTIATED_WITH_PRIOR_CALL", "title" => $this->translate("PT_NEGOTIATED_WITH_PRIOR_CALL"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_COMPETITIVE_DIALOGUE", "title" => $this->translate("PT_COMPETITIVE_DIALOGUE"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_INNOVATION_PARTNERSHIP", "title" => $this->translate("PT_INNOVATION_PARTNERSHIP"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "YES_PT_AWARD_CONTRACT_WITHOUT_CALL", "title" => $this->translate("PT_AWARD_CONTRACT_WITHOUT_CALL", $this->arrayName2StringName($s["name"])), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); unset($node->sequence->choice); foreach ($node->sequence as $n) { $this->getField($section, $n, $settings); } return false; } private function procedure_f07_node(SimpleXMLIterator $node, array $settings = [], String $section) { $this->getField($section, $node->annotation, $settings); $this->getField($section, $node->sequence, $settings); $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["LANGUAGES","LANGUAGE","_attributes","VALUE"])), "size" => "col-sm-12", "type" => "text", "val" => "IT", "attrs" => ["hidden" => true] ] ]; $this->ignored_keys[] = "VALUE"; $this->fields = $this->makeArray(array_merge($settings["name"],["LANGUAGES","LANGUAGE","_attributes","VALUE"]), $inputs, $this->fields); return false; } private function procedure_f12_node(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]); $name = $this->arrayName2StringName($name); $child = $node->sequence->choice[0]->sequence->asXML(); unset($node->sequence->choice[0]); unset($node->attributes()["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $object = $this->makeAdd2GUUEObject([ "child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; $content = self::get($this->info["valori"], $key); if ($content == "PT_RESTRICTED") { $selected = $object; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_OPEN", "title" => $this->translate("PT_OPEN"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); $this->getField($section, $node, $settings); return false; } private function procedure_f13_node(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]); $name = $this->arrayName2StringName($name); unset($node->sequence->choice[0]); unset($node->attributes()["name"]); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_OPEN", "title" => $this->translate("PT_OPEN"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "PT_RESTRICTED", "title" => $this->translate("PT_RESTRICTED"), "required" => true ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_PROCEDURE_TYPE"]), $inputs, $this->fields); $this->getField($section, $node, $settings); return false; } private function award_contract_multiple_section(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($s["name"], [TedEsender::MUL])))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject(["child" => $node->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true]); $input = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi un aggiudicazione d\'Appalto'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ] ]; $this->fields = $this->makeArray($s["name"], $input, $this->fields); return false; } private function d_proc_open_sel_node(SimpleXMLIterator $node, array $settings = [], String $section) { array_pop($settings["name"]); $name = array_merge($settings["name"], ["D_PROC_OPEN"]); $name = $this->arrayName2StringName($name); $inputs = [ "name" => $name, "size" => "col-sm-12", "type" => "text", "val" => "__£__", "title" => $this->translate("D_PROC_OPEN"), ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function d_proc_restricted_sel_node(SimpleXMLIterator $node, array $settings = [], String $section) { array_pop($settings["name"]); $name = array_merge($settings["name"], ["D_PROC_RESTRICTED"]); $name = $this->arrayName2StringName($name); $inputs = [ "name" => $name, "size" => "col-sm-12", "type" => "text", "val" => "__£__", "title" => $this->translate("D_PROC_RESTRICTED"), ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function d_proc_open_section(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_D_PROC_OPEN"]); $name = $this->arrayName2StringName($name); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_AWARD_CRITERIA_DOC"])))); $obj1 = $this->makeAdd2GUUEObject( ["child" => "", "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true ]); $obj2 = $this->makeAdd2GUUEObject( ["child" => "", "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'force-show' => true ]); $key = $this->arrayName2StringName(array_merge($settings["name"],["RADIO_FOR_D_PROC_OPEN"])); $key = $this->getKeyFromNameString($key); $selected = "empty"; $value = self::get($this->info["valori"],$key); if ($value == "CHOICE_D_PROC_RESTRICTED") { $selected = $obj2; } else if ($value == "CHOICE_D_PROC_OPEN") { $selected = $obj1; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "CHOICE_D_PROC_OPEN", "title" => $this->translate("D_PROC_OPEN"), "required" => true, "group_validate" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}')", ] ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "CHOICE_D_PROC_RESTRICTED", "title" => $this->translate("D_PROC_RESTRICTED"), "required" => true, "group_validate" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}')", ] ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "CHOICE_NO_RADIO_FOR_D_PROC_OPEN", "title" => $this->translate("NO_RADIO_FOR_D_PROC_OPEN"), "required" => true, "group_validate" => true, "group_validate" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();", ] ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "d-none", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_D_PROC_OPEN"]), $inputs, $this->fields); return false; } private function d_technical_section(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_D_TECHNICAL"]); $name = $this->arrayName2StringName($name); foreach ($node->element as $element) { $inputs[] = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "title" => $this->translate((string) $element->attributes()["ref"]), "value" => (string) $element->attributes()["ref"], "required" => true ] ]; } if (isset($node->attributes()["minOccurs"]) && $node->attributes()["minOccurs"] == 0) { $inputs[] = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "title" => $this->translate("NO_RADIO_FOR_D_TECHNICAL"), "value" => "NO_RADIO_FOR_D_TECHNICAL", "required" => true ], ]; } $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_D_TECHNICAL"]), $inputs, $this->fields); return false; } private function d_artistic_section(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_D_TECHNICAL"]); $name = $this->arrayName2StringName($name); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "title" => $this->translate("D_ARTISTIC"), "value" => "D_ARTISTIC", "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "title" => $this->translate("D_TECHNICAL"), "value" => "D_TECHNICAL", "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "title" => $this->translate("D_EXCLUSIVE_RIGHT"), "value" => "D_EXCLUSIVE_RIGHT", "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "title" => $this->translate("D_PROTECT_RIGHTS"), "value" => "D_PROTECT_RIGHTS", "required" => true ] /* Dalle risposte del SIMAP il campo non risulta facoltativo [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "title" => __guue("Nessuno dei precedenti"), "value" => "__£__", "required" => true ] */ ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_D_TECHNICAL"]), $inputs, $this->fields); return false; } private function d_from_winding_provider_section(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"],["RADIO_FOR_D_FROM_WINDING_PROVIDER"]); $name = $this->arrayName2StringName($name); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $obj1 = $this->makeAdd2GUUEObject([ "child" => $node->element[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, "multiple" => false, ]); $obj2 = $this->makeAdd2GUUEObject([ "child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, "multiple" => false ]); $selected = "empty"; if ($value == "D_FROM_WINDING_PROVIDER") { $selected = $obj1; } else if ($value == "D_FROM_LIQUIDATOR_CREDITOR") { $selected = $obj2; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "D_FROM_WINDING_PROVIDER", "title" => $this->translate("D_FROM_WINDING_PROVIDER"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');" ], "group_validate" => true, "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "D_FROM_LIQUIDATOR_CREDITOR", "title" => $this->translate("D_FROM_LIQUIDATOR_CREDITOR"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');" ], "group_validate" => true, "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_RADIO_FOR_D_FROM_WINDING_PROVIDER", "title" => $this->translate("NO_RADIO_FOR_D_FROM_WINDING_PROVIDER"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "group_validate" => true, "required" => true, ], [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_D_FROM_WINDING_PROVIDER"]), $inputs, $this->fields); return false; } private function agree_to_publication_man_fields(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["_attributes","PUBLICATION"])), "size" => "col-sm-12", "type" => "select", "object" => "empty", "options" => [ "YES" => $this->translate("YES"), "NO" => $this->translate("NO"), ], "title" => $this->translate("AGREE_TO_PUBLICATION_MAN"), "required" => true ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function agree_to_publication_man_base(SimpleXMLIterator $node, array $settings = [], String $section) { $this->agree_to_publication_man_fields($node, $settings, $section); $n = null; if (isset($node->group)) { $n = $node->group; } else if (isset($node->choice)) { $n = $node->choice; } if ($n !== null) { $this->getField($section, $n, $settings); } else if ($this->debug) { dd("Content node not managed inside ƒ agree_to_publication_man_base"); } return false; } private function likely_subcontracted_section(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"],["RADIO_FOR_LIKELY_SUBCONTRACTED"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); unset($node->attributes()->minOccurs); unset($node->element); $child = $node->asXML(); $object = $this->makeAdd2GUUEObject([ "child" => $child, "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $value = self::get($this->info["valori"],implode(".",$s["name"])); $inputs[] = [ "info" => [ "title" => $this->translate("V_2_5_SUBCONTR_INFO",$name), "style" => "subtitle" ] ]; $inputs[] = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "LIKELY_SUBCONTRACTED", "title" => $this->translate("LIKELY_SUBCONTRACTED"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$object}');", ], "required" => true, ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "NO_RADIO_FOR_LIKELY_SUBCONTRACTED", "title" => $this->translate("NO_RADIO_FOR_LIKELY_SUBCONTRACTED"), "attrs" => [ "onChange" => "$('#{$id}').empty()", ], "required" => true, ], [ "name" => "container", "type" => "div", "key" => $key, "object" => ($value == "LIKELY_SUBCONTRACTED") ? $object : "empty", "attrs" => [ "class" => "", "id" => $id, ], ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_LIKELY_SUBCONTRACTED"]), $inputs, $this->fields); return false; } private function nb_contract_awarded_node(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_value"])), "size" => "col-12", "type" => "text", "value" => "NB_CONTRACT_AWARDED", "title" => $this->translate("NB_CONTRACT_AWARDED"), "required" => true ]; $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_attributes", "PUBLICATION"])), "type" => "hidden", "value" => "NO", ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function non_published_node(SimpleXMLIterator $node, array $settings = [], String $section, array $inputs = []) { $s = $settings; $inputs[] = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_attributes", "PUBLICATION"])), "type" => "hidden", "value" => "NO" ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function awarded_tenderer_variant_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $settings["name"][] = "AWARDED_TENDERER_VARIANT"; $this->non_published_node($node, $settings, $section); } private function no_awarded_tenderer_variant_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $settings["name"][] = "NO_AWARDED_TENDERER_VARIANT"; $this->non_published_node($node, $settings, $section); } private function radio_for_awarded_tenderer_variant(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_AWARDED_TENDERER_VARIANT"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $obj1 = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $obj2 = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"],$key); $selected = "empty"; if ($value == "AWARDED_TENDERER_VARIANT_CHOICE") { $selected = $obj1; } else if ($value == "NO_AWARDED_TENDERER_VARIANT_CHOICE") { $selected = $obj2; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "title" => $this->translate("YES"), "value" => "AWARDED_TENDERER_VARIANT_CHOICE", "group_validate" => true, "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');", ] ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "title" => $this->translate("NO"), "value" => "NO_AWARDED_TENDERER_VARIANT_CHOICE", "group_validate" => true, "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "hidden" => true, "attrs" => [ "class" => "", "id" => $id, ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_AWARDED_TENDERER_VARIANT"]), $inputs, $this->fields); return false; } private function tenders_excluded_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $settings["name"][] = "TENDERS_EXCLUDED"; $this->non_published_node($node, $settings, $section); } private function no_tenders_excluded_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $settings["name"][] = "NO_TENDERS_EXCLUDED"; $this->non_published_node($node, $settings, $section); } private function radio_for_tenders_excluded(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_TENDERS_EXCLUDED"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $obj1 = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $obj2 = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], $key); $selected = "empty"; if ($value == "TENDERS_EXCLUDED_CHOICE") { $selected = $obj1; } else if ($value == "NO_TENDERS_EXCLUDED_CHOICE") { $selected = $obj2; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "title" => $this->translate("YES"), "value" => "TENDERS_EXCLUDED_CHOICE", "group_validate" => true, "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');", ] ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "title" => $this->translate("NO"), "value" => "NO_TENDERS_EXCLUDED_CHOICE", "group_validate" => true, "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "hidden" => true, "attrs" => [ "class" => "", "id" => $id, ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_TENDERS_EXCLUDED"]), $inputs, $this->fields); return false; } private function radio_for_val_total(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_VAL_TOTAL"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $obj1 = $this->makeAdd2GUUEObject(["child" => $node->element[0]->asXML(),"settings" => $settings,"section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => false]); $obj2 = $this->makeAdd2GUUEObject(["child" => $node->element[1]->asXML(),"settings" => $settings,"section" => $section,"xsd" => $this->xsd,"hidden-header" => true,'multiple' => false]); $selected = "empty"; if ($value == "VAL_TOTAL") { $selected = $obj1; } else if ($value == "VAL_RANGE_TOTAL") { $selected = $obj2; } $inputs[] = [ "name" =>$name, "size" => "col-sm-12", "type" => "radio", "value" => "VAL_TOTAL", "title" => $this->translate("VAL_TOTAL"), "required" => true, "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');" ] ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "VAL_RANGE_TOTAL", "title" => $this->translate("VAL_RANGE_TOTAL"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');"] ]; if (isset($node->attributes()["minOccurs"]) && (int) ($node->attributes()["minOccurs"] == 0) ) { $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "__£__", "title" => $this->translate("NO_RADIO_FOR_VAL_TOTAL"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();"] ]; } $inputs[] = [ "name" => "container", "type" => "div", "key" => $this->getKeyFromNameString($name), "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_VAL_TOTAL"]), $inputs, $this->fields); } #region [ShowToGaetano] //anche questa radio potrebbe essere sottointesa #endregion private function radio_for_time_frame_indefinite(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_TIME_FRAME_INDEFINITE"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $key = $this->getKeyFromNameString($this->arrayName2StringName($s["name"])); $no_indefinite_duration_obj = $this->makeAdd2GUUEObject([ "child" => $node->sequence->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; if ($value == "NO_INDEFINITE_DURATION") { $selected = $no_indefinite_duration_obj; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "INDEFINITE_DURATION", "title" => $this->translate("INDEFINITE_DURATION"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "group_validate" => true, "required" => true ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_INDEFINITE_DURATION", "title" => $this->translate("NO_INDEFINITE_DURATION"), "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$no_indefinite_duration_obj}');" ], "group_validate" => true, "required" => true ]; if ((int) ($node->attributes()["minOccurs"] ?? 1) == 0) { $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_SPECIFIED_DURATION", "title" => $this->translate("NO_SPECIFIED_DURATION"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "group_validate" => true, "required" => true ]; } $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id ] ]; $this->fields = $this->makeArray(array_merge($settings["name"],["RADIO_FOR_TIME_FRAME_INDEFINITE"]), $inputs, $this->fields); return false; } private function performance_staff_qualification_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = [ "info" => [ "title" => $this->translate("III_2_3_STAFF_RESPONSIBLE",$this->arrayName2StringName($settings["name"])) ] ]; $this->fields = $this->makeArray(array_merge($settings["name"],["T"]), $inputs, $this->fields); $node = $this->getTypeElement($node->attributes()["ref"]); $this->getField($section, $node, $settings); } private function section_for_qualification(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = $settings["name"]; $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $s["required"] = true; $child = ''; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true]); $content = self::get($this->info["valori"], $key); $inputs[] = [ "info" => [ "title" => __guue("Sezione III) 1.9 Qualifica per il sistema") ] ]; $inputs[] = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi un criterio di qualità'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function notice_f07_node(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["_attributes", "TYPE"])), "size" => "col-sm-12", "type" => "text", "val" => "QSU_CALL_COMPETITION", "attrs" => ["hidden" => true] ] ]; $this->ignored_keys[] = "TYPE"; $this->fields = $this->makeArray(array_merge($settings["name"], ["_attributes", "TYPE"]), $inputs, $this->fields); return false; } private function notice_f21_node(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["_attributes", "TYPE"])), "size" => "col-12", "type" => "select", "object" => "empty", "options" => [ "PRI_ONLY" => $this->translate("PRI_ONLY"), "PRI_CALL_COMPETITION" => $this->translate("PRI_CALL_COMPETITION"), "CONTRACT" => __guue("Bando di gara"), "AWARD_CONTRACT" => __guue('Avviso aggiudicazione d\'appalto') ], "title" => $this->translate("TYPE"), "required" => true ]; $this->ignored_keys[] = "TYPE"; $this->fields = $this->makeArray(array_merge($settings["name"],["_attributes","TYPE"]), $inputs, $this->fields); return false; } private function notice_f22_node(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["_attributes", "TYPE"])), "size" => "col-12", "type" => "select", "object" => "empty", "options" => [ "PER_ONLY" => __guue("Avviso periodico indicativo"), "PER_CALL_COMPETITION" => __guue("Avviso periodico indicativo - Indizione di gara"), "QSU_ONLY" => __guue("Sistema di qualificazione"), "QSU_CALL_COMPETITION" => __guue("Sistema di qualificazione - Indizione di gara"), "CONTRACT" => __guue("Bando di gara"), "AWARD_CONTRACT" => __guue('Avviso aggiudicazione d\'appalto') ], "title" => $this->translate("TYPE"), "required" => true ]; $this->ignored_keys[] = "TYPE"; $this->fields = $this->makeArray(array_merge($settings["name"],["_attributes","TYPE"]), $inputs, $this->fields); return false; } private function radio_for_authority(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $name = $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_AUTHORITY"])); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $key); $s["skip-legal-basis"] = true; $obj1 = $this->makeAdd2GUUEObject(["child" => $node->group[0]->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $obj2 = $this->makeAdd2GUUEObject(["child" => $node->group[1]->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $selected = "empty"; if ($value == "CHOICE_CONTRACTING_AUTHORITY") { $selected = $obj1; } else if ($value = "CHOICE_CONTRACTING_ENTITY") { $selected = $obj2; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "CHOICE_CONTRACTING_AUTHORITY", "title" => $this->translate("CONTRACTING_AUTHORITY"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');"] ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "CHOICE_CONTRACTING_ENTITY", "title" => $this->translate("CONTRACTING_ENTITY"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');"] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_AUTHORITY"]), $inputs, $this->fields); return false; } private function radio_for_nb_participants(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $name = $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_NB_PARTICIPANTS"])); $id = $this->getId($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $s["skip-legal-basis"] = true; $child1 = $node->element[0]->asXML(); $child2 = $node->sequence->asXML(); $child3 = $node->element[1]->asXML(); $obj1 = $this->makeAdd2GUUEObject(["child" => $child1, "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $obj2 = $this->makeAdd2GUUEObject(["child" => $child2, "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $obj3 = $this->makeAdd2GUUEObject(["child" => $child3, "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $selected = "empty"; if ($value == "NB_PARTICIPANTS") { $selected = $obj1; } else if ($value == "NB_RANGE") { $selected = $obj2; } else if ($value == "NB_MAX_PARTICIPANTS") { $selected = $obj3; } $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "NB_PARTICIPANTS", "title" => $this->translate("NB_PARTICIPANTS"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');"] ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "NB_RANGE", "title" => $this->translate("NB_RANGE"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');"] ]; $inputs[] = [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "NB_MAX_PARTICIPANTS", "title" => $this->translate("NB_MAX_PARTICIPANTS"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj3}');"] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $this->getKeyFromNameString($name), "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_AUTHORITY"]), $inputs, $this->fields); return false; } private function radio_for_prize_awarded(SimpleXMLIterator $node, array $settings = [], String $section) { $this->applyTitle("RADIO_FOR_PRIZE_AWARDED", $settings, $section); $name = array_merge($settings["name"], ["RADIO_FOR_PRIZE_AWARDED"]); $name = $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_PRIZE_AWARDED"])); $id = $this->getId($name); unset($node->sequence->element[0]); $obj = $this->makeAdd2GUUEObject(["child" => $node->sequence->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "PRIZE_AWARDED", "title" => $this->translate("PRIZE_AWARDED"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj}');"] ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "NO_PRIZE_AWARDED", "title" => $this->translate("NO_PRIZE_AWARDED"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();"] ], [ "name" => "container", "type" => "div", "key" => $this->getKeyFromNameString($name), "object" => (empty($value) || $value == "NO_PRIZE_AWARDED") ? "empty" : $obj, "attrs" => [ "class" => "", "id" => $id ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"],["RADIO_FOR_PRIZE_AWARDED"]), $inputs, $this->fields); return false; } private function radio_for_no_awarded_prize(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_NO_AWARDED_PRIZE"]); $name = $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_NO_AWARDED_PRIZE"])); $id = $this->getId($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $obj1 = $this->makeAdd2GUUEObject([ "child" => $node->element[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $obj2 = $this->makeAdd2GUUEObject([ "child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; if ($value == "NO_AWARDED_PRIZE") { $selected = $obj1; } else if ($value == "AWARDED_PRIZE") { $selected = $obj2; } $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "NO_AWARDED_PRIZE", "title" => $this->translate("NO_AWARDED_PRIZE"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');"] ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "value" => "AWARDED_PRIZE", "title" => $this->translate("AWARDED_PRIZE"), "required" => true, "attrs" => ["onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');"] ], [ "name" => "container", "type" => "div", "key" => $this->getKeyFromNameString($name), "object" => $selected, "attrs" => [ "class" => "", "id" => $id ] ] ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_NO_AWARDED_PRIZE"]), $inputs, $this->fields); return false; } private function radio_for_follow_up_contracts(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_FOLLOW_UP_CONTRACTS"])), "size" => "col-sm-12", "type" => "radio", "value" => "FOLLOW_UP_CONTRACTS", "title" => $this->translate("FOLLOW_UP_CONTRACTS"), "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_FOLLOW_UP_CONTRACTS"])), "size" => "col-sm-12", "type" => "radio", "value" => "NO_FOLLOW_UP_CONTRACTS", "title" => $this->translate("NO_FOLLOW_UP_CONTRACTS"), "required" => true ] ]; $this->fields = $this->makeArray(array_merge($settings["name"],["RADIO_FOR_FOLLOW_UP_CONTRACTS"]), $inputs, $this->fields); return false; } private function radio_for_decision_binding_contract(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["RADIO_FOR_DECISION_BINDING_CONTRACTING"])), "size" => "col-sm-12", "type" => "radio", "value" => "DECISION_BINDING_CONTRACTING", "title" => $this->translate("DECISION_BINDING_CONTRACTING"), "required" => true ], [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_DECISION_BINDING_CONTRACTING"])), "size" => "col-sm-12", "type" => "radio", "value" => "NO_DECISION_BINDING_CONTRACTING", "title" => $this->translate("NO_DECISION_BINDING_CONTRACTING"), "required" => true ] ]; $this->fields = $this->makeArray(array_merge($settings["name"],["RADIO_FOR_DECISION_BINDING_CONTRACTING"]), $inputs, $this->fields); return false; } private function publication_fields(SimpleXMLIterator $node, array $settings = [], String $section, bool $additive = false) { $attribute = ["_attributes","PUBLICATION"]; if ( $settings["name"][count($settings["name"])-1] == "PUBLICATION" && $settings["name"][count($settings["name"])-2] == "_attributes" ) { $attribute = []; } $name = array_merge($settings["name"], $attribute); $no = "NO"; if (in_array($this->form_section,["F15_2014"])) { $no = "__£__"; } $inputs[] = [ "name" => $this->arrayName2StringName($name), "size" => "col-12", "type" => "select", "object" => "empty", "options" => [ "{$no}" => $this->translate("NO"), "YES" => $this->translate("YES"), ], "title" => $this->translate("PUBLICATION"), "required" => true ]; if ($additive) { $this->fields[] = $this->makeArray($settings["name"], $inputs, $this->fields); return true; } $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return true; } private function agree_to_publication_opt_base(SimpleXMLIterator $node, array $settings = [], String $section) { $this->publication_fields($this->getTypeElement("agree_to_publication_opt"), $settings, $section); unset($node->attributes()["base"]); $this->getField($section, $node, $settings); return false; } private function winner_node(SimpleXMLIterator $node, array $settings = [], String $section) { #region MULTIPLE WINNERS if (isset($node->attributes()["maxOccurs"])) { $name = $settings["name"]; $id = uniqid($this->slugify($this->arrayName2StringName($name))); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); unset($node->attributes()["maxOccurs"]); $object = $this->makeAdd2GUUEObject([ "child" => $node->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true ]); unset($node->complexType->sequence->element); unset($node->complexType->sequence->choice); $inputs = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "class" => "", "id" => $id, ] ], [ "name" => "button", "required" => true, "type" => "button", "title" => __guue('Aggiungi un vincitore'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}');", "class" => "btn btn-block btn-primary" ] ] ]; $this->fields = $this->makeArray($name, $inputs, $this->fields); return false; } #endregion $this->getField($section, $node->complexType, $settings); return false; } private function address_winner_node(SimpleXMLIterator $node, array $settings = [], String $section) { $node = $this->getTypeElement("contact_contractor"); unset($node->element[6]); //rimuove il contact point unset($node->element[10]); //rimuove l'url_general unset($node->element[10]); //rimuove l'url_buyer $this->getField($section, $node, $settings); } #region[ShowToGaetano] #BUGFIX: questo è da sistemare. Non va il group validate. #endregion private function radio_for_sme(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_SME"]); $inputs = [ [ "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("SME"), "group_validate" => true, "required" => true, "type" => "radio", "value" => "SME" ], [ "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_SME"), "group_validate" => true, "required" => true, "type" => "radio", "value" => "NO_SME" ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_original_other_means(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"],["RADIO_FOR_OTHER_MEANS"]); $name = $this->arrayName2StringName($s["name"]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $key = $this->getKeyFromNameString($name); $id = $this->getId($name); $obj1 = $this->makeAdd2GUUEObject([ "child" => $node->sequence[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $obj2 = $this->makeAdd2GUUEObject([ "child" => $node->sequence[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; if ($value == "NO_ORIGINAL_OTHER_MEANS") { $selected = $obj1; } else if ($value == "ORIGINAL_OTHER_MEANS") { $selected = $obj2; } $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("NO_ORIGINAL_OTHER_MEANS"), "required" => true, "type" => "radio", "value" => "NO_ORIGINAL_OTHER_MEANS", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');", ], "required" => true, ]; $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("ORIGINAL_OTHER_MEANS"), "required" => true, "type" => "radio", "value" => "ORIGINAL_OTHER_MEANS", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');", ], "required" => true, ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function radio_for_enotices(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_ENOTICES"]); $name = $this->arrayName2StringName($s["name"]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $key = $this->getKeyFromNameString($name); $s1 = $s; $s2 = $s; $s1["name"] = array_merge($settings["name"],["ORIGINAL_ENOTICES"]); $s2["name"] = array_merge($settings["name"], ["ORIGINAL_TED_ESENDER"]); $obj1 = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s1, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $obj2 = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $selected = "empty"; if ($value == "ORIGINAL_ENOTICES") { $selected = $obj1; } else if ($value == "ORIGINAL_TED_ESENDER") { $selected = $obj2; } $id = $this->getId($name); $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("ORIGINAL_ENOTICES"), "required" => true, "type" => "radio", "value" => "ORIGINAL_ENOTICES", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');", ], "required" => true, ]; $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("ORIGINAL_TED_ESENDER"), "required" => true, "type" => "radio", "value" => "ORIGINAL_TED_ESENDER", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');", ], "required" => true, ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "class" => "d-none", "id" => $id, ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function esender_login_base(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $this->auth(); $ente = $_SESSION["ente"]->getInfo(); $inputs[] = [ "type" => "hidden", "value" => $this->username, "name" => $this->arrayName2StringName(array_merge($s["name"], ["_value"])), ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($s["name"], ["_attributes", "PUBLICATION"])), ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function customer_login_base(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $ente = $_SESSION["ente"]->getInfo(); $inputs[] = [ "type" => "hidden", "value" => $ente["id_guue"] ?? "__£__", "name" => $this->arrayName2StringName(array_merge($s["name"],["_value"])), ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($s["name"], ["_attributes", "PUBLICATION"])), ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function no_doc_ext_base(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($s["name"], ["_value"])), "size" => "col-sm-12", "type" => "text", "object" => "empty", "value" => "", "rel" => ["S", "1", "0", "A"], "title" => $this->translate("NO_DOC_EXT"), "required" => true, ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($s["name"], ["_attributes", "PUBLICATION"])), ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); } private function radio_for_additional_need(SimpleXMLIterator $node, array $settings = [], String $section) { #region[ShowToGaetano] #Bisognerebbe nascondere la stampa dei titoli per il contenuto dela selezione #endregion $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_ADDITIONAL_NEED"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $object1 = $this->makeAdd2GUUEObject(["child" => $node->element[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $object2 = $this->makeAdd2GUUEObject(["child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $selected = "empty"; $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); if ($value == "ADDITIONAL_NEED") { $selected = $object1; } else if ($value == "UNFORESEEN_CIRCUMSTANCE") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("ADDITIONAL_NEED"), "required" => true, "type" => "radio", "value" => "ADDITIONAL_NEED", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("UNFORESEEN_CIRCUMSTANCE"), "required" => true, "type" => "radio", "value" => "UNFORESEEN_CIRCUMSTANCE", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_modification_original(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_MODIFICATION_ORIGINAL"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $child = ""; $s1 = $s; $s2 = $s; $s1["name"] = array_merge($settings["name"], ["MODIFICATION_ORIGINAL"]); $s2["name"] = array_merge($settings["name"], ["PUBLICATION_TED"]); $object1 = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $s1, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $object2 = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $selected = "empty"; $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); if ($value == "CHOICE_MODIFICATION_ORIGINAL") { $selected = $object1; } else if ($value == "CHOICE_PUBLICATION_TED") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("MODIFICATION_ORIGINAL"), "required" => true, "type" => "radio", "value" => "CHOICE_MODIFICATION_ORIGINAL", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("PUBLICATION_TED"), "required" => true, "type" => "radio", "value" => "CHOICE_PUBLICATION_TED", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "hidden" => true, "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function section_for_change(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"],["CHANGE"]); $name = $this->arrayName2StringName($s["name"]); $id = $this->getId($name); $key = $this->getKeyFromNameString($name); $child = $node->sequence->element->complexType->sequence->asXML(); $child = " "; $object = $this->makeAdd2GUUEObject(["child" => $child, "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true]); $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $object, "attrs" => [ "id" => $id ] ]; $inputs[] = [ "name" => $this->arrayName2StringName(array_merge($settings["name"], ["CHANGE_ADDITIONAL_BUTTON"])), "required" => false, "type" => "button", "title" => __guue('Aggiungi Modifica'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}','{$object}')", "class" => "btn btn-block btn-primary" ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); $this->getField($section, $node->sequence->element[1], $settings); return false; } private function data_node(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; if ($settings["name"][count($settings["name"]) -1] == "OLD_VALUE") { $radio_name = "RADIO_FOR_DATA_OLD"; } else { $radio_name = "RADIO_FOR_DATA_NEW"; } $s["name"] = array_merge($settings["name"], [$radio_name]); $s1 = $s; $s2 = $s; $s3 = $s; $s4 = $s; $s1["name"] = array_merge($settings["name"], ["CPV_MAIN"]); $s2["name"] = $settings["name"]; $s3["name"] = array_merge($settings["name"], ["TEXT"]); $s4["name"] = array_merge($settings["name"]); $ignored = [$settings["name"][count($settings["name"])-2], "DATE", "DATA_DATE"]; $obj1 = $this->makeAdd2GUUEObject([ "child" => $node->choice->element[1]->asXML(), "settings" => $s1, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'ignored_keys' => $ignored]); $obj2 = $this->makeAdd2GUUEObject([ "child" => $node->choice->element[2]->asXML(), "settings" => $s2, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'ignored_keys' => $ignored]); $obj3 = $this->makeAdd2GUUEObject([ "child" => $node->choice->element[3]->asXML(), "settings" => $s3, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'ignored_keys' => $ignored]); $obj4 = $this->makeAdd2GUUEObject([ "child" => $node->choice->sequence->asXML(), "settings" => $s4, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false, 'ignored_keys' => $ignored]); $name = $this->arrayName2StringName(array_merge($settings["name"],["SELECTION"])); $id = $this->getId($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "CPV_MAIN") { $selected = $obj1; } else if ($value == "CPV_ADDITIONAL") { $selected = $obj2; } else if ($value == "TEXT") { $selected = $obj3; } else if ($value == "SEL_DATA_DATE") { $selected = $obj4; } $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("CPV_MAIN_SEL"), "required" => true, "type" => "radio", "value" => "CPV_MAIN", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj1}');", ], "required" => true, "group_validate" => true ]; $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("CPV_ADDITIONAL",$name), "required" => true, "type" => "radio", "value" => "CPV_ADDITIONAL", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj2}');", ], "required" => true, "group_validate" => true ]; $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("TEXT"), "required" => true, "type" => "radio", "value" => "TEXT", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj3}');", ], "required" => true, "group_validate" => true ]; $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("DATA_DATE"), "required" => true, "type" => "radio", "value" => "SEL_DATA_DATE", "attrs" => [ "onChange" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}', '{$obj4}');", ], "required" => true, "group_validate" => true ]; $inputs[] = [ "size" => "col-sm-12", "name" => $name, "object" => "empty", "title" => $this->translate("NOTHING"), "required" => true, "type" => "radio", "value" => "NOTHING", "attrs" => [ "onChange" => "$('#{$id}').empty();", ], "required" => true, "group_validate" => true ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $this->getKeyFromNameString($name), "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ], "ignored_keys" => $ignored ]; $this->fields = $this->makeArray(array_merge($settings["name"],[$radio_name]), $inputs, $this->fields); } private function joint_procurement_involved_ref(SimpleXMLIterator $node, array $settings = [], String $section){ $s = $settings; $s["name"][] = "JOINT_PROCUREMENT_INVOLVED"; $inputs[] = [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "text", "val" => "__£__", "attrs" => ["hidden" => true], "hidden-label" => true ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function body_f08_node(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"][] = "ADDRESS_CONTRACTING_BODY_ADDITIONAL"; $this->getField($section, $node->sequence->element[0], $settings); $this->radio_for_address_contracting_body_additional($node->sequence->sequence, $settings, $section); $this->getField($section, $node->sequence->element[1], $settings); $this->getField($section, $node->sequence->group[0], $settings); $this->getField($section, $node->sequence->group[1], $settings); $this->getField($section, $node->sequence->element[2], $settings); $this->getField($section, $node->sequence->choice, $settings); } private function radio_for_address_contracting_body_additional(SimpleXMLIterator $node, array $settings = [], String $section) { #region FACOLTATIVE if (!empty($node->attributes()) && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $this->applyTitle("RADIO_FOR_CONTRACTING_BODY_ADDITIONAL",$settings,$section); $s = $settings; $s["name"] = array_merge($s["name"], ["RADIO_FOR_CONTRACTING_BODY_ADDITIONAL"]); $id = strtolower(str_replace(["][", "[", "]"], ["_", "", ""], $this->arrayName2StringName($s["name"]))); unset($node->attributes()["minOccurs"]); $object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], implode(".", $s["name"])); $k = $this->arrayName2StringName($s["name"]); $k = trim(str_replace(['][', '[', ']'], '.', str_replace("guue", "", $k)), '.'); $selected = "empty"; if ($value == "ADDRESS_CONTRACTING_BODY_ADDITIONAL") { $selected = $object; } $inputs = [ [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "ADDRESS_CONTRACTING_BODY_ADDITIONAL", "title" => $this->translate("YES"), "attrs" => [ "onChange" => "eForms2.add2GUUE('#{$id}', '{$object}')", ], "required" => true ], [ "name" => $this->arrayName2StringName($s["name"]), "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "NO_ADDRESS_CONTRACTING_BODY_ADDITIONAL", "title" => $this->translate("NO"), "attrs" => [ "onChange" => "$('#{$id}').empty();" ], "required" => true ], [ "name" => "container", "type" => "div", "key" => $k, "object" => $selected, "attrs" => [ "class" => "", "id" => $id, ] ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } #endregion #region SINGLE ELEMENT $this->address_contracting_body_additional_ref($node,$settings,$section); #endregion return false; } private function custom_document_url_section_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_DOCUMENT_URL_SECTION"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_DOCUMENT_URL_SECTION"])))); $key = $this->getKeyFromNameString($name); unset($node->attributes()["ref"]); $object = $this->makeAdd2GUUEObject(["child" => $node->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "DOCUMENT_URL_MAN") { $selected = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("DOCUMENT_URL_MAN"), "required" => true, "type" => "radio", "value" => "DOCUMENT_URL_MAN", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_DOCUMENT_URL_MAN"), "required" => true, "type" => "radio", "value" => "NO_DOCUMENT_URL_MAN", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function date_dispatch_original_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"][] = "DATE_DISPATCH_ORIGINAL"; $inputs[] = [ "size" => "col-sm-8", "title" => $this->translate("DATE_DISPATCH_ORIGINAL"), "name" => $this->arrayName2StringName(array_merge($s["name"], ["_value"])), "type" => "date", "object" => "date", "value" => "", "attrs" => [ "class" => "datetimepicker" ], "required" => true ]; $inputs[] = [ "type" => "hidden", "value" => "NO", "name" => $this->arrayName2StringName(array_merge($s["name"], ["_attributes", "PUBLICATION"])), ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function ac_node(SimpleXMLIterator $node, array $settings = [], String $section) { $options["title"] = [ "info" => [ "title" => $this->translate("RADIO_FOR_AC", $this->arrayName2StringName($settings["name"])), "style" => "subtitle", "hidden" => true ] ]; if ($this->minOccursRadio($node, $settings, $section, "AC", $this->translate("RADIO_FOR_AC", $this->arrayName2StringName($settings["name"])), $options)) { return; $settings["required"] = true; } $this->getField($section, $node->complexType, $settings); } private function ac_criterion_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $name = $this->arrayName2StringName($s["name"]); #region MULTIPLE AC_CRITERION if (!empty($node->attributes()["maxOccurs"]) && ((int) $node->attributes()["maxOccurs"]) > 0) { $s["name"] = array_merge($s["name"], ["AC_CRITERION"]); $name = $this->arrayName2StringName($s["name"]); $n = $node; $id = uniqid($this->slugify($name)); unset($n->attributes()["maxOccurs"]); $key = $this->getKeyFromNameString($name); $content = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject([ "child" => $n->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true ]); $inputs = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi un criterio di qualità'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } #endregion $inputs[] = [ [ "name" => $name, "size" => "col-sm-12", "type" => "text", "title" => $this->translate("AC_CRITERION"), "rel" => ["S","1","1000","ALFA"], "required" => true, ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function multiple_ac_criterion_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["AC_CRITERION"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["AC_CRITERION"])))); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $object = $this->makeAdd2GUUEObject([ "child" => '', "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true ]); $inputs = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi un criterio di qualità'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_ac_procurement_doc(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_AC_PROCUREMENT_DOC"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_AC_PROCUREMENT_DOC"])))); $key = $this->getKeyFromNameString($name); $object = $this->makeAdd2GUUEObject(["child" => '', "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "MULTIPLE_AC_CRITERION") { $selected = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("AC_PROCUREMENT_DOC"), "required" => true, "type" => "radio", "value" => "AC_PROCUREMENT_DOC", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("MULTIPLE_AC_CRITERION"), "required" => true, "type" => "radio", "value" => "MULTIPLE_AC_CRITERION", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_annex_d4_part_1(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_ANNEX_D4_PART_1"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_ANNEX_D4_PART_1"])))); $key = $this->getKeyFromNameString($name); $object1 = $this->makeAdd2GUUEObject(["child" => $node->group[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $object2 = $this->makeAdd2GUUEObject(["child" => $node->group[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "ANNEX_D4_PART1") { $selected = $object1; } else if ($value = "ANNEX_PART2") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("ANNEX_D4_PART1"), "required" => true, "type" => "radio", "value" => "ANNEX_D4_PART1", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("ANNEX_PART2"), "required" => true, "type" => "radio", "value" => "ANNEX_PART2", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_annex_d2_part1(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_ANNEX_D2_PART1"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_ANNEX_D2_PART1"])))); $key = $this->getKeyFromNameString($name); $object1 = $this->makeAdd2GUUEObject(["child" => $node->group[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $object2 = $this->makeAdd2GUUEObject(["child" => $node->group[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "ANNEX_D2_PART1") { $selected = $object1; } else if ($value = "ANNEX_PART2") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("ANNEX_D2_PART1"), "required" => true, "type" => "radio", "value" => "ANNEX_D2_PART1", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("ANNEX_PART2"), "required" => true, "type" => "radio", "value" => "ANNEX_PART2", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_pt_award_contract_with_prior_publication(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION"])))); $key = $this->getKeyFromNameString($name); $object = $this->makeAdd2GUUEObject(["child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "PT_AWARD_CONTRACT_WITHOUT_PUBLICATION") { $selected = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION"), "required" => true, "type" => "radio", "value" => "PT_AWARD_CONTRACT_WITH_PRIOR_PUBLICATION", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("PT_AWARD_CONTRACT_WITHOUT_PUBLICATION",$this->arrayName2StringName($s["name"])), "required" => true, "type" => "radio", "value" => "PT_AWARD_CONTRACT_WITHOUT_PUBLICATION", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_d_from_winding_provider(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_D_FROM_WINDING_PROVIDER"]); $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("D_FROM_WINDING_PROVIDER"), "required" => true, "type" => "radio", "value" => "D_FROM_WINDING_PROVIDER", ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("D_FROM_LIQUIDATOR_CREDITOR"), "required" => true, "type" => "radio", "value" => "D_FROM_LIQUIDATOR_CREDITOR", ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => __guue('Nessuna delle scelte precedenti'), "required" => true, "type" => "radio", "value" => "__£__", ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function radio_for_d_accordance_article(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_D_ACCORDANCE_ARTICLE"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_D_ACCORDANCE_ARTICLE"])))); $key = $this->getKeyFromNameString($name); $object1 = $this->makeAdd2GUUEObject([ "child" => $node->element->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object2 = $this->makeAdd2GUUEObject([ "child" => $node->group->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "D_ACCORDANCE_ARTICLE") { $selected = $object1; } else if ($value == "ANNEX_PART2") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("D_ACCORDANCE_ARTICLE"), "required" => true, "type" => "radio", "value" => "D_ACCORDANCE_ARTICLE", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("ANNEX_PART2"), "required" => true, "type" => "radio", "value" => "ANNEX_PART2", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_val_estimated_total(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_VAL_ESTIMATED_TOTAL"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_VAL_ESTIMATED_TOTAL"])))); $key = $this->getKeyFromNameString($name); $obj1 = $this->makeAdd2GUUEObject([ "child" => $node->element[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $obj2 = $this->makeAdd2GUUEObject([ "child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $obj3 = $this->makeAdd2GUUEObject([ "child" => $node->element[2]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "VAL_ESTIMATED_TOTAL") { $selected = $obj1; } else if ($value == "VAL_TOTAL") { $selected = $obj2; } else if ($value == "VAL_RANGE_TOTAL") { $selected = $obj3; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("VAL_ESTIMATED_TOTAL"), "required" => true, "type" => "radio", "value" => "VAL_ESTIMATED_TOTAL", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$obj1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("VAL_TOTAL"), "required" => true, "type" => "radio", "value" => "VAL_TOTAL", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$obj2}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("VAL_RANGE_TOTAL"), "required" => true, "type" => "radio", "value" => "VAL_RANGE_TOTAL", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$obj3}')", ] ]; if (isset($node->attributes()["minOccurs"]) && ((int) $node->attributes()["minOccurs"]) == 0) { $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => __guue('Nessuna delle scelte precedenti'), "required" => true, "type" => "radio", "value" => "__£__", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; } $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function receipt_tenders_f21(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_RECEIPT_TENDERS"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_RECEIPT_TENDERS"])))); $key = $this->getKeyFromNameString($name); $object = $this->makeAdd2GUUEObject([ "child" => $node->sequence->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "D_ACCORDANCE_ARTICLE") { $selected = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("YES"), "required" => true, "type" => "radio", "value" => "D_ACCORDANCE_ARTICLE", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO"), "required" => true, "type" => "radio", "value" => "TERMINATION_PIN", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function receipt_tenders_f22(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_RECEIPT_TENDERS"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_RECEIPT_TENDERS"])))); $key = $this->getKeyFromNameString($name); $object = $this->makeAdd2GUUEObject([ "child" => $node->sequence->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "D_ACCORDANCE_ARTICLE") { $selected = $object; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("SPECIFY_RECEIPT_TENDERS"), "required" => true, "type" => "radio", "value" => "D_ACCORDANCE_ARTICLE", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("TERMINATION_PIN"), "required" => true, "type" => "radio", "value" => "TERMINATION_PIN", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NOT_SPECIFIED"), "required" => true, "type" => "radio", "value" => "__£__", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function radio_for_receipt_tenders(SimpleXMLIterator $node, array $settings = [], String $section) { if (in_array($this->form_section,["F21_2014"])) { $this->receipt_tenders_f21($node, $settings, $section); } else if (in_array($this->form_section,["F22_2014"])) { $this->receipt_tenders_f22($node, $settings, $section); } } private function radio_for_time_frame(SimpleXMLIterator $node, array $settings = [], String $section) { $inputs = []; $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_TIME_FRAME_SECTION"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["RADIO_FOR_TIME_FRAME_SECTION"])))); $key = $this->getKeyFromNameString($name); $object1 = $this->makeAdd2GUUEObject([ "child" => $node->sequence->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object2 = $this->makeAdd2GUUEObject([ "child" => $node->element->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "CHOICE_TIME_FRAME") { $selected = $object1; } else if ($value == "CHOICE_QS") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("CHOICE_TIME_FRAME"), "required" => true, "type" => "radio", "value" => "CHOICE_TIME_FRAME", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("QS"), "required" => true, "type" => "radio", "value" => "CHOICE_QS", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NOT_SPECIFIED"), "required" => true, "type" => "radio", "value" => "CHOICE_NO", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } private function qs_node(SimpleXMLIterator $node, array $settings = [], String $section) { $this->getField($section, $node->complexType->sequence->group, $settings); $this->renewal_ref($node, $settings, $section); } private function address_review_body_ref(SimpleXMLIterator $node, array $settings = [], String $section) { if (!empty($node->attributes()) && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_ADDRESS_REVIEW_BODY"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $n = $node; unset($n->attributes()["minOccurs"]); $settings["required"] = true; $object = $this->makeAdd2GUUEObject([ "child" => $this->getTypeElement("ADDRESS_REVIEW_BODY")->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "ADDRESS_REVIEW_BODY") { $selected = $object; } $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("YES"), "required" => true, "type" => "radio", "value" => "ADDRESS_REVIEW_BODY", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO"), "required" => true, "type" => "radio", "value" => "NO_ADDRESS_REVIEW_BODY", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } $this->getField($section, $this->getTypeElement($node->attributes()["ref"]->__toString()), $settings); } private function address_mediation_body_ref(SimpleXMLIterator $node, array $settings = [], String $section) { if (!empty($node->attributes()) && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_ADDRESS_MEDIATION_BODY"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $n = $node; unset($n->attributes()["minOccurs"]); $settings["required"] = true; $object = $this->makeAdd2GUUEObject([ "child" => $this->getTypeElement("ADDRESS_MEDIATION_BODY")->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "ADDRESS_MEDIATION_BODY") { $selected = $object; } $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("YES"), "required" => true, "type" => "radio", "value" => "ADDRESS_MEDIATION_BODY", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO"), "required" => true, "type" => "radio", "value" => "NO_ADDRESS_MEDIATION_BODY", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } $this->getField($section, $this->getTypeElement($node->attributes()["ref"]->__toString()), $settings); } private function review_procedure_ref(SimpleXMLIterator $node, array $settings = [], String $section) { if (!empty($node->attributes()) && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_REVIEW_PROCEDURE"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $n = $node; unset($n->attributes()["minOccurs"]); $object = $this->makeAdd2GUUEObject([ "child" => $this->getTypeElement($node->attributes()["ref"]->__toString())->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "REVIEW_PROCEDURE") { $selected = $object; } $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("YES"), "required" => true, "type" => "radio", "value" => "REVIEW_PROCEDURE", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO"), "required" => true, "type" => "radio", "value" => "NO_REVIEW_PROCEDURE", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } $this->getField($section, $this->getTypeElement($node->attributes()["ref"]->__toString()), $settings); } private function address_review_info_ref(SimpleXMLIterator $node, array $settings = [], String $section) { if (!empty($node->attributes()) && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_ADDRESS_REVIEW_INFO"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $n = $node; unset($n->attributes()["minOccurs"]); $settings["required"] = true; $object = $this->makeAdd2GUUEObject([ "child" => $this->getTypeElement("ADDRESS_REVIEW_INFO")->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "ADDRESS_REVIEW_INFO") { $selected = $object; } $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("YES"), "required" => true, "type" => "radio", "value" => "ADDRESS_REVIEW_INFO", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO"), "required" => true, "type" => "radio", "value" => "NO_REVIEW_PROCEDURE", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } $this->getField($section, $this->getTypeElement($node->attributes()["ref"]->__toString()), $settings); } private function radio_for_awarded_to_group(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_AWARDED_TO_GROUP"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $node->sequence->group->attributes()["ref"] = "multiple_contractor_sme_opt"; $object1 = $this->makeAdd2GUUEObject([ "child" => $node->sequence->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object2 = $this->makeAdd2GUUEObject([ "child" => $node->group->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; if ($value == "AWARDED_TO_GROUP") { $selected = $object1; } else if ($value == "NO_AWARDED_TO_GROUP") { $selected = $object2; } $inputs = []; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("YES"), "required" => true, "type" => "radio", "value" => "AWARDED_TO_GROUP", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO"), "required" => true, "type" => "radio", "value" => "NO_AWARDED_TO_GROUP", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function multiple_contractor_sme_opt_ref(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["required"] = false; $id = uniqid($this->slugify($this->arrayName2StringName(array_merge($settings["name"], ["CONTRACTOR_SME_OPT"])))); $s["name"][] = "CONTRACTOR"; $s["required"] = true; $object = $this->makeAdd2GUUEObject(["child" => $this->getTypeElement("contractor_sme_opt")->asXML(), "settings" => $s, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true]); $key = $this->arrayName2StringName($s["name"]); $key = $this->getKeyFromNameString($key); $content = self::get($this->info["valori"], $key); $inputs = [ [ "name" => $this->arrayName2StringName(array_merge($settings["name"],["AWARDED_TO_GROUP"])), "size" => "col-sm-12", "type" => "hidden", "value" => "__£__" ], [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id, ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi operatore economico'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}');", "class" => "btn btn-block btn-primary" ] ] ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } private function opening_condition_ref(SimpleXMLIterator $node, array $settings = [], String $section) { if (!empty($node->attributes()) && isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_OPENING_CONDITION"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $n = $node; unset($n->attributes()["minOccurs"]); $object = $this->makeAdd2GUUEObject([ "child" => $this->getTypeElement($node->attributes()["ref"]->__toString())->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "OPENING_CONDITION") { $selected = $object; } $inputs = []; $inputs[] = [ "info" => [ "title" => $this->translate("SPECIFY_OPENING_CONDITION",$this->arrayName2StringName($s["name"])), "style" => "subtitle" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("YES"), "required" => true, "type" => "radio", "value" => "OPENING_CONDITION", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO"), "required" => true, "type" => "radio", "value" => "NO_OPENING_CONDITION", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } $this->getField($section, $this->getTypeElement($node->attributes()["ref"]->__toString()), $settings); } private function val_prize_node(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; if ($this->minOccursRadio($node, $settings, $section, "VAL_PRIZE", __guue("Specifica il valore dei premi"))) { return; } unset($node->complexType->simpleContent->extension->attribute); $this->getField($section, $node->complexType, $settings); $publication_node = $node = new SimpleXMLIterator(''); $this->publication_fields($publication_node, $settings, $section, true); } private function participant_name_node(SimpleXMLIterator $node, array $settings = [], String $section) { if (isset($node->attributes()["maxOccurs"])) { $s = $settings; $s["name"] = array_merge($settings["name"], ["PARTICIPANT_NAME_ADDITIONAL"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->arrayName2StringName($settings["name"]); $key = $this->getKeyFromNameString($key); $n = $node; unset($n->attributes()["maxOccurs"]); $child = $n; $object = $this->makeAdd2GUUEObject([ "child" => $child->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => true ]); $content = self::get($this->info["valori"], $key); $inputs = [ [ "name" => "container", "type" => "div", "key" => $key, "object" => !empty($content) ? $object : "empty", "attrs" => [ "id" => $id ] ], [ "name" => "button", "required" => false, "type" => "button", "title" => __guue('Aggiungi partecipante'), "attrs" => [ "onClick" => "eForms2.add2GUUE('#{$id}', '{$object}')", "class" => "btn btn-block btn-primary" ] ], ]; $this->fields = $this->makeArray($settings["name"], $inputs, $this->fields); return false; } else { $s = $settings; $inputs = [ [ "info" => [ "title" => __guue('Partecipante'), "style" => "subtitle" ] ], [ "size" => "col-12", "name" => $this->arrayName2StringName(array_merge($s["name"])), "title" => $this->translate("PARTICIPANT_NAME"), "type" => "text", "required" => true ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } } private function radio_for_directives(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_DIRECTIVES"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $object1 = $this->makeAdd2GUUEObject([ "child" => $node->element[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object2 = $this->makeAdd2GUUEObject([ "child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object3 = $this->makeAdd2GUUEObject([ "child" => $node->element[2]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object4 = $this->makeAdd2GUUEObject([ "child" => $node->element[3]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "DIRECTIVE_2014_23_EU") { $selected = $object1; } else if ($value == "DIRECTIVE_2014_24_EU") { $selected = $object2; } else if ($value == "DIRECTIVE_2014_25_EU") { $selected = $object3; } else if ($value == "DIRECTIVE_2009_81_EC") { $selected = $object4; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("DIRECTIVE_2014_23_EU"), "required" => true, "group_validate" => true, "type" => "radio", "value" => "DIRECTIVE_2014_23_EU", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("DIRECTIVE_2014_24_EU"), "required" => true, "group_validate" => true, "type" => "radio", "value" => "DIRECTIVE_2014_24_EU", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')" ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("DIRECTIVE_2014_25_EU"), "required" => true, "group_validate" => true, "type" => "radio", "value" => "DIRECTIVE_2014_25_EU", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object3}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("DIRECTIVE_2009_81_EC"), "required" => true, "group_validate" => true, "type" => "radio", "value" => "DIRECTIVE_2009_81_EC", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object4}')", ] ]; if (isset($node->attributes()["minOccurs"]) && (int) $node->attributes()["minOccurs"] == 0) { $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("NO_DIRECTIVE"), "required" => true, "group_validate" => true, "type" => "radio", "value" => "NO_DIRECTIVE", "attrs" => [ "onClick" => "$('#{$id}').empty();", ] ]; } $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function ac_price_node(SimpleXMLIterator $node, array $settings = [], String $section) { $this->ignored_keys[] = "AC_PRICE"; $this->ignored_keys[] = "RADIO_FOR_AC_PRICE"; if (isset($node->complexType)) { if ($this->minOccursRadio($node->complexType->sequence, $settings, $section, "AC_PRICE", __guue('Specifica peso'))) { return false; } $this->getField($section, $node->complexType->sequence, $settings); } else { $s = $settings; $inputs = [ [ "size" => "col-12", "name" => $this->arrayName2StringName($s["name"]), "title" => $this->translate("AC_PRICE"), "type" => "checkbox", "required" => true, "rel" => ["S","0","0","Checked"] ], ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); } } private function radio_for_ac_price(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_AC_PRICE"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $object1 = $this->makeAdd2GUUEObject([ "child" => $node->element[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object2 = $this->makeAdd2GUUEObject([ "child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "AC_PRICE") { $selected = $object1; } else if ($value == "AC_CRITERIA") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName(array_merge($s["name"])), "object" => "empty", "title" => $this->translate("AC_PRICE"), "required" => true, "type" => "radio", "value" => "AC_PRICE", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("AC_CRITERIA"), "required" => true, "type" => "radio", "value" => "AC_CRITERIA", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function radio_for_pt_award_contract_without_prior_publication(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_PT_AWARD_CONTRACT_WITHOUT_PUBLICATION"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $object1 = $this->makeAdd2GUUEObject([ "child" => $node->element[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object2 = $this->makeAdd2GUUEObject([ "child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "PT_AWARD_CONTRACT_WITHOUT_PUBLICATION") { $selected = $object1; } else if ($value == "PT_AWARD_CONTRACT_WITHOUT_CALL") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName(array_merge($s["name"])), "object" => "empty", "title" => $this->translate("PT_AWARD_CONTRACT_WITHOUT_PUBLICATION",$this->arrayName2StringName($s["name"])), "required" => true, "group_validate" => true, "type" => "radio", "value" => "PT_AWARD_CONTRACT_WITHOUT_PUBLICATION", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("PT_AWARD_CONTRACT_WITHOUT_CALL",$this->arrayName2StringName($s["name"])), "required" => true, "group_validate" => true, "type" => "radio", "value" => "PT_AWARD_CONTRACT_WITHOUT_CALL", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function radio_for_pt_negotiated_without_publication(SimpleXMLIterator $node, array $settings = [], String $section) { $s = $settings; $s["name"] = array_merge($settings["name"], ["RADIO_FOR_PT_NEGOTIATED_WITHOUT_PUBLICATION"]); $name = $this->arrayName2StringName($s["name"]); $id = uniqid($this->slugify($this->arrayName2StringName($s["name"]))); $key = $this->getKeyFromNameString($name); $value = self::get($this->info["valori"], $this->getKeyFromNameString($name)); $selected = "empty"; $object1 = $this->makeAdd2GUUEObject([ "child" => $node->element[0]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); $object2 = $this->makeAdd2GUUEObject([ "child" => $node->element[1]->asXML(), "settings" => $settings, "section" => $section, "xsd" => $this->xsd, "hidden-header" => true, 'multiple' => false ]); if ($value == "PT_NEGOTIATED_WITHOUT_PUBLICATION") { $selected = $object1; } else if ($value == "PT_AWARD_CONTRACT_WITHOUT_CALL") { $selected = $object2; } $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("PT_NEGOTIATED_WITHOUT_PUBLICATION", $this->arrayName2StringName($s["name"])), "required" => true, "type" => "radio", "value" => "PT_NEGOTIATED_WITHOUT_PUBLICATION", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object1}')", ] ]; $inputs[] = [ "size" => "col-sm-12", "name" => $this->arrayName2StringName($s["name"]), "object" => "empty", "title" => $this->translate("PT_AWARD_CONTRACT_WITHOUT_CALL",$this->arrayName2StringName($s["name"])), "required" => true, "type" => "radio", "value" => "PT_AWARD_CONTRACT_WITHOUT_CALL", "attrs" => [ "onClick" => "$('#{$id}').empty();eForms2.add2GUUE('#{$id}','{$object2}')" ] ]; $inputs[] = [ "name" => "container", "type" => "div", "key" => $key, "object" => $selected, "attrs" => [ "id" => $id ] ]; $this->fields = $this->makeArray($s["name"], $inputs, $this->fields); return false; } private function radio_for_d_proc_restricted(SimpleXMLIterator $node, array $settings = [], String $section) { $name = array_merge($settings["name"], ["RADIO_FOR_D_PROC_RESTRICTED"]); $name = $this->arrayName2StringName($name); $inputs = [ [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("D_PROC_RESTRICTED"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("D_PROC_NEGOTIATED_PRIOR_CALL_COMPETITION"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("D_PROC_COMPETITIVE_DIALOGUE"), "required" => true ], [ "name" => $name, "size" => "col-sm-12", "type" => "radio", "object" => "empty", "value" => "__£__", "title" => $this->translate("NO_RADIO_FOR_D_PROC_RESTRICTED"), "required" => true ], ]; $this->fields = $this->makeArray(array_merge($settings["name"], ["RADIO_FOR_D_PROC_OPEN"]), $inputs, $this->fields); return false; } private function cond_for_opening_tenders_node(SimpleXMLIterator $node, array $settings = [], String $section) { $settings["required"] = true; $this->getField($section, $node->sequence, $settings); } private function country_origin_node(SimpleXMLIterator $node, array $settings = [], $section) { $inputs = [ "info" => [ "title" => $this->translate("COUNTRY_ORIGIN"), "style" => "subtitle" ] ]; $this->non_published_node($node, $settings, $section, $inputs); $this->getField($section, $node->complexType, $settings); } }