Skip to content

Commit b7904de

Browse files
committed
fix(workplan): Corrige os testes e garante funcionamento correto das implementações
1 parent 85ccb9e commit b7904de

7 files changed

Lines changed: 1055 additions & 26 deletions

File tree

src/modules/OpportunityWorkplan/Entities/Delivery.php

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public function isMetadataRequired(string $metadata_key):bool {
147147
'require' => 'workplan_monitoringRequireAvailabilityType'
148148
],
149149
'numberOfParticipants' => [
150-
'inform' => 'workplan_registrationReportTheNumberOfParticipants',
150+
'inform' => 'workplan_monitoringInformNumberOfParticipants',
151151
'require' => 'workplan_monitoringRequireNumberOfParticipants'
152152
],
153153
'participantProfile' => [
@@ -289,6 +289,43 @@ public function isMetadataRequired(string $metadata_key):bool {
289289
'inform' => 'workplan_monitoringInformCommunicationChannels',
290290
'require' => 'workplan_monitoringRequireCommunicationChannels'
291291
],
292+
'executedRevenueType' => [
293+
'inform' => 'workplan_monitoringInformRevenueType',
294+
'require' => 'workplan_monitoringRequireRevenueType'
295+
],
296+
'executedSegmentDelivery' => [
297+
'inform' => 'workplan_monitoringInformSegmentDelivery',
298+
'require' => 'workplan_monitoringRequireSegmentDelivery'
299+
],
300+
'executedCommunityCoauthorsDetail' => [
301+
'inform' => 'workplan_monitoringInformCommunityCoauthors',
302+
'require' => 'workplan_monitoringRequireCommunityCoauthorsDetail',
303+
'gate' => 'executedHasCommunityCoauthors'
304+
],
305+
'executedTransInclusionActions' => [
306+
'inform' => 'workplan_monitoringInformTransInclusion',
307+
'require' => 'workplan_monitoringRequireTransInclusionActions',
308+
'gate' => 'executedHasTransInclusionStrategy'
309+
],
310+
'executedExpectedAccessibilityMeasures' => [
311+
'inform' => 'workplan_monitoringInformAccessibilityPlan',
312+
'require' => 'workplan_monitoringRequireExpectedAccessibilityMeasures',
313+
'gate' => 'executedHasAccessibilityPlan'
314+
],
315+
'executedEnvironmentalPracticesDescription' => [
316+
'inform' => 'workplan_monitoringInformEnvironmentalPractices',
317+
'require' => 'workplan_monitoringRequireEnvironmentalPracticesDescription',
318+
'gate' => 'executedHasEnvironmentalPractices'
319+
],
320+
'executedInnovationTypes' => [
321+
'inform' => 'workplan_monitoringInformInnovation',
322+
'require' => 'workplan_monitoringRequireInnovationTypes',
323+
'gate' => 'executedHasInnovationAction'
324+
],
325+
'executedDocumentationTypes' => [
326+
'inform' => 'workplan_monitoringInformDocumentationTypes',
327+
'require' => 'workplan_monitoringRequireDocumentationTypes'
328+
],
292329
];
293330

294331
// Campo não está no mapa → não é obrigatório
@@ -381,4 +418,4 @@ protected function validateSelectField(string $field): bool {
381418
$value = $this->$field;
382419
return !is_null($value) && $value !== '';
383420
}
384-
}
421+
}

src/modules/OpportunityWorkplan/Module.php

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,64 @@ function _init(){
194194
}
195195
}
196196

197+
$monitoring_simple_fields = [
198+
'availabilityType',
199+
'participantProfile',
200+
'numberOfParticipants',
201+
'executedRevenue',
202+
'executedNumberOfCities',
203+
'executedNumberOfNeighborhoods',
204+
'executedMediationActions',
205+
'executedCommercialUnits',
206+
'executedUnitPrice',
207+
'executedArtChainLink',
208+
'executedSegmentDelivery',
209+
'executedCommunityCoauthorsDetail',
210+
'executedTransInclusionActions',
211+
'executedEnvironmentalPracticesDescription',
212+
];
213+
foreach ($monitoring_simple_fields as $field) {
214+
if ($delivery->isMetadataRequired($field) && !self::validateSelectField($delivery, $field)) {
215+
$label = self::getFieldLabel($field);
216+
$errors['delivery'][] = i::__("Campo '{$label}' obrigatório na entrega '{$delivery->name}'");
217+
}
218+
}
219+
220+
$monitoring_json_array_fields = ['executedPaidStaffByRole'];
221+
foreach ($monitoring_json_array_fields as $field) {
222+
if ($delivery->isMetadataRequired($field) && !self::validateJsonArrayField($delivery, $field)) {
223+
$label = self::getFieldLabel($field);
224+
$errors['delivery'][] = i::__("Campo '{$label}' obrigatório na entrega '{$delivery->name}'");
225+
}
226+
}
227+
228+
$monitoring_json_object_fields = [
229+
'executedTeamCompositionGender',
230+
'executedTeamCompositionRace',
231+
];
232+
foreach ($monitoring_json_object_fields as $field) {
233+
if ($delivery->isMetadataRequired($field) && !self::validateJsonObjectField($delivery, $field)) {
234+
$label = self::getFieldLabel($field);
235+
$errors['delivery'][] = i::__("Campo '{$label}' obrigatório na entrega '{$delivery->name}'");
236+
}
237+
}
238+
239+
$monitoring_multiselect_fields = [
240+
'accessibilityMeasures',
241+
'priorityAudience',
242+
'executedCommunicationChannels',
243+
'executedRevenueType',
244+
'executedExpectedAccessibilityMeasures',
245+
'executedInnovationTypes',
246+
'executedDocumentationTypes',
247+
];
248+
foreach ($monitoring_multiselect_fields as $field) {
249+
if ($delivery->isMetadataRequired($field) && !self::validateMultiselectField($delivery, $field)) {
250+
$label = self::getFieldLabel($field);
251+
$errors['delivery'][] = i::__("Campo '{$label}' obrigatório na entrega '{$delivery->name}'");
252+
}
253+
}
254+
197255
}
198256
}
199257
}
@@ -383,6 +441,12 @@ function register()
383441
'default_value' => false
384442
]);
385443

444+
$this->registerOpportunityMetadata('workplan_monitoringInformNumberOfParticipants', [
445+
'label' => i::__('Informar número de participantes executado'),
446+
'type' => 'boolean',
447+
'default_value' => false
448+
]);
449+
386450
$this->registerOpportunityMetadata('workplan_monitoringReportExecutedRevenue', [
387451
'label' => i::__('Informar receita executada'),
388452
'type' => 'boolean',
@@ -535,6 +599,60 @@ function register()
535599
'default_value' => false
536600
]);
537601

602+
$this->registerOpportunityMetadata('workplan_monitoringInformRevenueType', [
603+
'label' => i::__('Informar tipo de receita executada'),
604+
'type' => 'boolean',
605+
'default_value' => false
606+
]);
607+
608+
$this->registerOpportunityMetadata('workplan_monitoringInformCommunityCoauthors', [
609+
'label' => i::__('Informar envolvimento executado de comunidades/coletivos como coautores/coexecutores'),
610+
'type' => 'boolean',
611+
'default_value' => false
612+
]);
613+
614+
$this->registerOpportunityMetadata('workplan_monitoringInformTransInclusion', [
615+
'label' => i::__('Informar estratégias executadas de inclusão Trans e Travestis'),
616+
'type' => 'boolean',
617+
'default_value' => false
618+
]);
619+
620+
$this->registerOpportunityMetadata('workplan_monitoringInformAccessibilityPlan', [
621+
'label' => i::__('Informar plano de acessibilidade executado'),
622+
'type' => 'boolean',
623+
'default_value' => false
624+
]);
625+
626+
$this->registerOpportunityMetadata('workplan_monitoringInformEnvironmentalPractices', [
627+
'label' => i::__('Informar práticas socioambientais executadas'),
628+
'type' => 'boolean',
629+
'default_value' => false
630+
]);
631+
632+
$this->registerOpportunityMetadata('workplan_monitoringInformPressStrategy', [
633+
'label' => i::__('Informar estratégia executada de relacionamento com imprensa'),
634+
'type' => 'boolean',
635+
'default_value' => false
636+
]);
637+
638+
$this->registerOpportunityMetadata('workplan_monitoringInformInnovation', [
639+
'label' => i::__('Informar ações executadas de experimentação/inovação'),
640+
'type' => 'boolean',
641+
'default_value' => false
642+
]);
643+
644+
$this->registerOpportunityMetadata('workplan_monitoringInformDocumentationTypes', [
645+
'label' => i::__('Informar tipos de documentação produzida (executado)'),
646+
'type' => 'boolean',
647+
'default_value' => false
648+
]);
649+
650+
$this->registerOpportunityMetadata('workplan_monitoringInformSegmentDelivery', [
651+
'label' => i::__('Informar segmento artístico-cultural executado da entrega'),
652+
'type' => 'boolean',
653+
'default_value' => false
654+
]);
655+
538656
// ============================================
539657
// METADADOS DE OBRIGATORIEDADE (REQUIRE)
540658
// ============================================
@@ -754,6 +872,54 @@ function register()
754872
'default_value' => false
755873
]);
756874

875+
$this->registerOpportunityMetadata('workplan_monitoringRequireRevenueType', [
876+
'label' => i::__('Tipo de receita executada é obrigatório'),
877+
'type' => 'boolean',
878+
'default_value' => false
879+
]);
880+
881+
$this->registerOpportunityMetadata('workplan_monitoringRequireCommunityCoauthorsDetail', [
882+
'label' => i::__('Detalhamento de coautoria/coexecução executada é obrigatório'),
883+
'type' => 'boolean',
884+
'default_value' => false
885+
]);
886+
887+
$this->registerOpportunityMetadata('workplan_monitoringRequireTransInclusionActions', [
888+
'label' => i::__('Ações executadas de inclusão Trans e Travestis são obrigatórias'),
889+
'type' => 'boolean',
890+
'default_value' => false
891+
]);
892+
893+
$this->registerOpportunityMetadata('workplan_monitoringRequireExpectedAccessibilityMeasures', [
894+
'label' => i::__('Medidas de acessibilidade executadas são obrigatórias'),
895+
'type' => 'boolean',
896+
'default_value' => false
897+
]);
898+
899+
$this->registerOpportunityMetadata('workplan_monitoringRequireEnvironmentalPracticesDescription', [
900+
'label' => i::__('Práticas socioambientais executadas são obrigatórias'),
901+
'type' => 'boolean',
902+
'default_value' => false
903+
]);
904+
905+
$this->registerOpportunityMetadata('workplan_monitoringRequireInnovationTypes', [
906+
'label' => i::__('Tipos de experimentação/inovação executados são obrigatórios'),
907+
'type' => 'boolean',
908+
'default_value' => false
909+
]);
910+
911+
$this->registerOpportunityMetadata('workplan_monitoringRequireDocumentationTypes', [
912+
'label' => i::__('Tipos de documentação produzida são obrigatórios'),
913+
'type' => 'boolean',
914+
'default_value' => false
915+
]);
916+
917+
$this->registerOpportunityMetadata('workplan_monitoringRequireSegmentDelivery', [
918+
'label' => i::__('Segmento artístico-cultural executado é obrigatório'),
919+
'type' => 'boolean',
920+
'default_value' => false
921+
]);
922+
757923
$this->registerOpportunityMetadata('workplan_monitoringInformArtChainLink', [
758924
'label' => i::__('Informar principal elo das artes acionado (executado)'),
759925
'type' => 'boolean',
@@ -1601,6 +1767,20 @@ public static function getFieldLabel(string $field): string {
16011767
'participantProfile' => 'Perfil do público',
16021768
'priorityAudience' => 'Territórios prioritários',
16031769
'executedRevenue' => 'Receita executada',
1770+
'executedRevenueType' => 'Tipo de receita executada',
1771+
'executedSegmentDelivery' => 'Segmento artístico-cultural executado',
1772+
'executedHasCommunityCoauthors' => 'Envolvimento executado de comunidades',
1773+
'executedCommunityCoauthorsDetail' => 'Detalhamento executado de coautoria',
1774+
'executedHasTransInclusionStrategy' => 'Estratégia executada de inclusão Trans/Travestis',
1775+
'executedTransInclusionActions' => 'Ações executadas de inclusão Trans/Travestis',
1776+
'executedHasAccessibilityPlan' => 'Plano de acessibilidade executado',
1777+
'executedExpectedAccessibilityMeasures' => 'Medidas de acessibilidade executadas',
1778+
'executedHasEnvironmentalPractices' => 'Práticas socioambientais executadas',
1779+
'executedEnvironmentalPracticesDescription' => 'Descrição de práticas socioambientais executadas',
1780+
'executedHasPressStrategy' => 'Estratégia executada de relacionamento com imprensa',
1781+
'executedHasInnovationAction' => 'Ação executada de experimentação/inovação',
1782+
'executedInnovationTypes' => 'Tipos de experimentação/inovação executados',
1783+
'executedDocumentationTypes' => 'Tipos de documentação produzida',
16041784
];
16051785

16061786
return $labels[$field] ?? $field;

src/modules/OpportunityWorkplan/components/opportunity-enable-workplan/script.js

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@ app.component('opportunity-enable-workplan', {
135135
'entity.workplan_monitoringProvideTheProfileOfParticipants'(_new) {
136136
if (!_new) this.entity.workplan_monitoringRequireParticipantProfile = false;
137137
},
138+
'entity.workplan_monitoringInformNumberOfParticipants'(_new) {
139+
if (!_new) this.entity.workplan_monitoringRequireNumberOfParticipants = false;
140+
},
138141
'entity.workplan_monitoringInformThePriorityAudience'(_new) {
139142
if (!_new) this.entity.workplan_monitoringRequirePriorityAudience = false;
140143
},
@@ -172,6 +175,30 @@ app.component('opportunity-enable-workplan', {
172175
'entity.workplan_monitoringInformCommunicationChannels'(_new) {
173176
if (!_new) this.entity.workplan_monitoringRequireCommunicationChannels = false;
174177
},
178+
'entity.workplan_monitoringInformRevenueType'(_new) {
179+
if (!_new) this.entity.workplan_monitoringRequireRevenueType = false;
180+
},
181+
'entity.workplan_monitoringInformCommunityCoauthors'(_new) {
182+
if (!_new) this.entity.workplan_monitoringRequireCommunityCoauthorsDetail = false;
183+
},
184+
'entity.workplan_monitoringInformTransInclusion'(_new) {
185+
if (!_new) this.entity.workplan_monitoringRequireTransInclusionActions = false;
186+
},
187+
'entity.workplan_monitoringInformAccessibilityPlan'(_new) {
188+
if (!_new) this.entity.workplan_monitoringRequireExpectedAccessibilityMeasures = false;
189+
},
190+
'entity.workplan_monitoringInformEnvironmentalPractices'(_new) {
191+
if (!_new) this.entity.workplan_monitoringRequireEnvironmentalPracticesDescription = false;
192+
},
193+
'entity.workplan_monitoringInformInnovation'(_new) {
194+
if (!_new) this.entity.workplan_monitoringRequireInnovationTypes = false;
195+
},
196+
'entity.workplan_monitoringInformDocumentationTypes'(_new) {
197+
if (!_new) this.entity.workplan_monitoringRequireDocumentationTypes = false;
198+
},
199+
'entity.workplan_monitoringInformSegmentDelivery'(_new) {
200+
if (!_new) this.entity.workplan_monitoringRequireSegmentDelivery = false;
201+
},
175202
},
176203
computed: {
177204
getWorkplanLabelDefault() {
@@ -277,6 +304,8 @@ app.component('opportunity-enable-workplan', {
277304
this.entity.workplan_monitoringRequireAccessibilityMeasures = false;
278305
this.entity.workplan_monitoringProvideTheProfileOfParticipants = false;
279306
this.entity.workplan_monitoringRequireParticipantProfile = false;
307+
this.entity.workplan_monitoringInformNumberOfParticipants = false;
308+
this.entity.workplan_monitoringRequireNumberOfParticipants = false;
280309
this.entity.workplan_monitoringInformThePriorityAudience = false;
281310
this.entity.workplan_monitoringRequirePriorityAudience = false;
282311
this.entity.workplan_monitoringReportExecutedRevenue = false;
@@ -301,6 +330,23 @@ app.component('opportunity-enable-workplan', {
301330
this.entity.workplan_monitoringRequireArtChainLink = false;
302331
this.entity.workplan_monitoringInformCommunicationChannels = false;
303332
this.entity.workplan_monitoringRequireCommunicationChannels = false;
333+
this.entity.workplan_monitoringInformRevenueType = false;
334+
this.entity.workplan_monitoringRequireRevenueType = false;
335+
this.entity.workplan_monitoringInformCommunityCoauthors = false;
336+
this.entity.workplan_monitoringRequireCommunityCoauthorsDetail = false;
337+
this.entity.workplan_monitoringInformTransInclusion = false;
338+
this.entity.workplan_monitoringRequireTransInclusionActions = false;
339+
this.entity.workplan_monitoringInformAccessibilityPlan = false;
340+
this.entity.workplan_monitoringRequireExpectedAccessibilityMeasures = false;
341+
this.entity.workplan_monitoringInformEnvironmentalPractices = false;
342+
this.entity.workplan_monitoringRequireEnvironmentalPracticesDescription = false;
343+
this.entity.workplan_monitoringInformPressStrategy = false;
344+
this.entity.workplan_monitoringInformInnovation = false;
345+
this.entity.workplan_monitoringRequireInnovationTypes = false;
346+
this.entity.workplan_monitoringInformDocumentationTypes = false;
347+
this.entity.workplan_monitoringRequireDocumentationTypes = false;
348+
this.entity.workplan_monitoringInformSegmentDelivery = false;
349+
this.entity.workplan_monitoringRequireSegmentDelivery = false;
304350
},
305351
pluralParaSingular(texto) {
306352
const palavras = texto.split(' ');
@@ -332,4 +378,4 @@ app.component('opportunity-enable-workplan', {
332378
return palavrasNoSingular.join(' ');
333379
}
334380
},
335-
})
381+
})

0 commit comments

Comments
 (0)