Skip to content

Commit 58f7494

Browse files
committed
measurement fixes
1 parent 60a32d1 commit 58f7494

3 files changed

Lines changed: 51 additions & 20 deletions

File tree

projects/budgetkey/src/app/item/items/item-soproc/item-social-service-gov-unit/item-social-service-gov-unit.component.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,17 +164,17 @@ <h3>ממצאי מדידת הרכש החברתי, {{MEASUREMENT_YEAR}}</h3>
164164
<div class='principle-bars'>
165165
<div class='principle-bar-row' *ngFor='let p of principleData'>
166166
<div class='stacked-bar'>
167-
<div class='bar-high' [style.width.%]='p.highPct' *ngIf='p.highPct > 0'></div>
168-
<div class='bar-med' [style.width.%]='p.medPct' *ngIf='p.medPct > 0'></div>
169-
<div class='bar-low' [style.width.%]='p.lowPct' *ngIf='p.lowPct > 0'></div>
167+
<div class='bar-high' [style.width.%]='p.highPct' *ngIf='p.highPct > 0' [title]='"מספר מכרזים: " + p.highCount'><div class='bar-text'>{{p.highPct}}<small *ngIf='p.highPct>=10'>%</small></div></div>
168+
<div class='bar-med' [style.width.%]='p.medPct' *ngIf='p.medPct > 0' [title]='"מספר מכרזים: " + p.medCount'><div class='bar-text'>{{p.medPct}}<small *ngIf='p.medPct>=10'>%</small></div></div>
169+
<div class='bar-low' [style.width.%]='p.lowPct' *ngIf='p.lowPct > 0' [title]='"מספר מכרזים: " + p.lowCount'><div class='bar-text'>{{p.lowPct}}<small *ngIf='p.lowPct>=10'>%</small></div></div>
170170
</div>
171171
<span class='principle-label'>{{p.name}}</span>
172172
</div>
173173
</div>
174174
</div>
175175

176176
<div class='measurement-aspects'>
177-
<h3>פירוט ההיבטים שנבדקו עבור כל עיקרון</h3>
177+
<h3>פירוט ההיבטים שנבדקו עבור כל עיקרון באחוזים</h3>
178178
<div class='measurement-legend'>
179179
<span class='legend-item legend-high'>במידה רבה</span>
180180
<span class='legend-item legend-med'>במידה בינונית</span>
@@ -186,9 +186,9 @@ <h4>{{p.principleTitle}}</h4>
186186
<ng-container *ngFor='let a of p.aspects'>
187187
<div class='aspect-row' [class.aspect-core]='a.isCore'>
188188
<div class='stacked-bar'>
189-
<div class='bar-high' [style.width.%]='a.highPct' *ngIf='a.highPct > 0'>{{a.highPct}}%</div>
190-
<div class='bar-med' [style.width.%]='a.medPct' *ngIf='a.medPct > 0'>{{a.medPct}}%</div>
191-
<div class='bar-low' [style.width.%]='a.lowPct' *ngIf='a.lowPct > 0'>{{a.lowPct}}%</div>
189+
<div class='bar-high' [style.width.%]='a.highPct' *ngIf='a.highPct > 0' [title]='"מספר מכרזים: " + a.highCount'><div class='bar-text'>{{a.highPct}}<small *ngIf='a.highPct>=10'>%</small></div></div>
190+
<div class='bar-med' [style.width.%]='a.medPct' *ngIf='a.medPct > 0' [title]='"מספר מכרזים: " + a.medCount'><div class='bar-text'>{{a.medPct}}<small *ngIf='a.medPct>=10'>%</small></div></div>
191+
<div class='bar-low' [style.width.%]='a.lowPct' *ngIf='a.lowPct > 0' [title]='"מספר מכרזים: " + a.lowCount'><div class='bar-text'>{{a.lowPct}}<small *ngIf='a.lowPct>=10'>%</small></div></div>
192192
</div>
193193
<div class='aspect-label-col'>
194194
<div class='core-header' *ngIf='a.isCore'>

projects/budgetkey/src/app/item/items/item-soproc/item-social-service-gov-unit/item-social-service-gov-unit.component.less

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,7 @@
191191

192192
.measurement-intro {
193193
margin-bottom: 36px;
194-
max-width: 820px;
195-
text-align: justify;
194+
text-align: center;
196195
p {
197196
font-size: 16px;
198197
line-height: 1.8;
@@ -297,7 +296,7 @@
297296
gap: 20px;
298297

299298
.principle-label {
300-
flex: 1 1 0;
299+
flex: 1 1 33%;
301300
font-size: 16px;
302301
font-weight: 400;
303302
color: #2c2c2c;
@@ -308,7 +307,7 @@
308307
}
309308

310309
.stacked-bar {
311-
flex: 1 1 0;
310+
flex: 1 1 66%;
312311
display: flex;
313312
flex-flow: row;
314313
height: 42px;
@@ -387,6 +386,14 @@
387386
flex: 0 0 42%;
388387
height: 30px;
389388
border-radius: 4px;
389+
390+
text-align: base;
391+
.bar-text {
392+
display: inline-block;
393+
small {
394+
font-size: 75%;
395+
}
396+
}
390397
}
391398
}
392399

projects/budgetkey/src/app/item/items/item-soproc/item-social-service-gov-unit/item-social-service-gov-unit.component.ts

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,25 @@ const MEASUREMENT_QUERY = `SELECT
5353
sum(case when principle_score_6_2 >= 0.70 then 1 else 0 end) as p6_2_high,
5454
sum(case when principle_score_6_3 < 0.35 then 1 else 0 end) as p6_3_low,
5555
sum(case when principle_score_6_3 >= 0.35 and principle_score_6_3 < 0.70 then 1 else 0 end) as p6_3_med,
56-
sum(case when principle_score_6_3 >= 0.70 then 1 else 0 end) as p6_3_high
56+
sum(case when principle_score_6_3 >= 0.70 then 1 else 0 end) as p6_3_high,
57+
sum(case when core_aspect_score_1 <= 2 then 1 else 0 end) as ca1_low,
58+
sum(case when core_aspect_score_1 = 3 then 1 else 0 end) as ca1_med,
59+
sum(case when core_aspect_score_1 >= 4 then 1 else 0 end) as ca1_high,
60+
sum(case when core_aspect_score_2 <= 2 then 1 else 0 end) as ca2_low,
61+
sum(case when core_aspect_score_2 = 3 then 1 else 0 end) as ca2_med,
62+
sum(case when core_aspect_score_2 >= 4 then 1 else 0 end) as ca2_high,
63+
sum(case when core_aspect_score_3 <= 2 then 1 else 0 end) as ca3_low,
64+
sum(case when core_aspect_score_3 = 3 then 1 else 0 end) as ca3_med,
65+
sum(case when core_aspect_score_3 >= 4 then 1 else 0 end) as ca3_high,
66+
sum(case when core_aspect_score_4 <= 2 then 1 else 0 end) as ca4_low,
67+
sum(case when core_aspect_score_4 = 3 then 1 else 0 end) as ca4_med,
68+
sum(case when core_aspect_score_4 >= 4 then 1 else 0 end) as ca4_high,
69+
sum(case when core_aspect_score_5 <= 2 then 1 else 0 end) as ca5_low,
70+
sum(case when core_aspect_score_5 = 3 then 1 else 0 end) as ca5_med,
71+
sum(case when core_aspect_score_5 >= 4 then 1 else 0 end) as ca5_high,
72+
sum(case when core_aspect_score_6 <= 2 then 1 else 0 end) as ca6_low,
73+
sum(case when core_aspect_score_6 = 3 then 1 else 0 end) as ca6_med,
74+
sum(case when core_aspect_score_6 >= 4 then 1 else 0 end) as ca6_high
5775
FROM soproc_measurement
5876
WHERE :where`;
5977
import { Subscription, ReplaySubject, from, mergeMap, map, first, switchMap, delay, fromEvent, throttleTime, forkJoin, interval, animationFrameScheduler } from 'rxjs';
@@ -521,10 +539,10 @@ export class ItemSocialServiceGovUnitComponent implements OnInit, AfterViewInit
521539
}
522540

523541
private tierPcts(total: number, low: number, med: number, high: number) {
524-
if (!total) return {lowPct: 0, medPct: 0, highPct: 0};
542+
if (!total) return {lowPct: 0, medPct: 0, highPct: 0, lowCount: 0, medCount: 0, highCount: 0};
525543
const lowPct = Math.round(low / total * 100);
526544
const medPct = Math.round(med / total * 100);
527-
return {lowPct, medPct, highPct: 100 - lowPct - medPct};
545+
return {lowPct, medPct, highPct: 100 - lowPct - medPct, lowCount: low, medCount: med, highCount: high};
528546
}
529547

530548
get principleData(): any[] {
@@ -549,44 +567,50 @@ export class ItemSocialServiceGovUnitComponent implements OnInit, AfterViewInit
549567
{
550568
principleTitle: 'עקרון ראשון: מקבל השירות במרכז',
551569
aspects: [
570+
{name: 'השירות מותאם לצרכי כלל מקבלי השירות', isCore: false, ...this.tierPcts(t, +d.p1_1_low, +d.p1_1_med, +d.p1_1_high)},
552571
{name: 'למקבלי השירות יש קול בתהליך עיצוב השירות ולאורך מתן השירותים', isCore: false, ...this.tierPcts(t, +d.p1_2_low, +d.p1_2_med, +d.p1_2_high)},
553572
{name: 'המידע על השירות מונגש למקבלי השירות כך שיוכלו למצות את זכויותיהם בשירות', isCore: false, ...this.tierPcts(t, +d.p1_3_low, +d.p1_3_med, +d.p1_3_high)},
554573
{name: 'נשמרת רציפות ויציבות במתן שירותים או קשר טיפולי', isCore: false, ...this.tierPcts(t, +d.p1_4_low, +d.p1_4_med, +d.p1_4_high)},
555-
{name: 'השירות מותאם לצרכי כלל מקבלי השירות', isCore: true, ...this.tierPcts(t, +d.p1_1_low, +d.p1_1_med, +d.p1_1_high)},
574+
{name: 'המכרז קובע הליכים הנותנים קול למקבלי השירות או משפחותיהם בעת הפעלת השירות', isCore: true, ...this.tierPcts(t, +d.ca1_low, +d.ca1_med, +d.ca1_high)},
556575
]
557576
},
558577
{
559578
principleTitle: 'עקרון שני: ניהול מוכוון תוצאות',
560579
aspects: [
580+
{name: 'השירות מוכוון להשגת תוצאות מוגדרות', isCore: false, ...this.tierPcts(t, +d.p2_1_low, +d.p2_1_med, +d.p2_1_high)},
561581
{name: 'יש לשירות מערך מדידה לבחינת מידת השגת התוצאות ומתבצע ניהול שירות מוכוון תוצאות', isCore: false, ...this.tierPcts(t, +d.p2_2_low, +d.p2_2_med, +d.p2_2_high)},
562-
{name: 'השירות מוכוון להשגת תוצאות מוגדרות', isCore: true, ...this.tierPcts(t, +d.p2_1_low, +d.p2_1_med, +d.p2_1_high)},
582+
{name: 'המכרז כולל הגדרה של המדדים על בסיסם יימדד מפעיל השירות כולל מדדי תוצאה מרכזיים', isCore: true, ...this.tierPcts(t, +d.ca2_low, +d.ca2_med, +d.ca2_high)},
563583
]
564584
},
565585
{
566586
principleTitle: 'עקרון שלישי: חדשנות וגמישות',
567587
aspects: [
588+
{name: 'מודל השירות משקף את חזית הידע', isCore: false, ...this.tierPcts(t, +d.p3_1_low, +d.p3_1_med, +d.p3_1_high)},
568589
{name: 'מתאפשרת גמישות בהתאמת השירות לצרכים משתנים', isCore: false, ...this.tierPcts(t, +d.p3_2_low, +d.p3_2_med, +d.p3_2_high)},
569-
{name: 'מודל השירות משקף את חזית הידע', isCore: true, ...this.tierPcts(t, +d.p3_1_low, +d.p3_1_med, +d.p3_1_high)},
590+
{name: 'המודל המכרזי מאפשר גמישות באופן אספקת השירות בהתאם לצרכים משתנים, בהלימה להנחיות המקצועיות', isCore: true, ...this.tierPcts(t, +d.ca3_low, +d.ca3_med, +d.ca3_high)},
570591
]
571592
},
572593
{
573594
principleTitle: 'עקרון רביעי: פיתוח ושימור ידע',
574595
aspects: [
575-
{name: 'ידע המפותח והנצבר במהלך ההתקשרות מתועד באופן המאפשר שימור, שיתוף ולמידה ומועבר במלואו למשרד ו/או למפעיל מחליף', isCore: true, ...this.tierPcts(t, +d.p4_low, +d.p4_med, +d.p4_high)},
596+
{name: 'ידע המפותח והנצבר במהלך ההתקשרות מתועד באופן המאפשר שימור, שיתוף ולמידה ומועבר במלואו למשרד ו/או למפעיל מחליף', isCore: false, ...this.tierPcts(t, +d.p4_low, +d.p4_med, +d.p4_high)},
597+
{name: 'במכרז מעוגנת חובת המפעיל בנוגע לתיעוד ידע הנצבר אצלו וכולל סוגי הידע ואופן העברתם למשרד ו/או למפעיל המחליף במהלך ובתום התקשרות', isCore: true, ...this.tierPcts(t, +d.ca4_low, +d.ca4_med, +d.ca4_high)},
576598
]
577599
},
578600
{
579601
principleTitle: 'עקרון חמישי: המפעיל כשותף',
580602
aspects: [
581-
{name: 'מתקיים שיח מקצועי רציף בין המשרד למפעילים בשלבי תכנון השירות ובמהלך מתן השירותים', isCore: true, ...this.tierPcts(t, +d.p5_low, +d.p5_med, +d.p5_high)},
603+
{name: 'מתקיים שיח מקצועי רציף בין המשרד למפעילים בשלבי תכנון השירות ובמהלך מתן השירותים', isCore: false, ...this.tierPcts(t, +d.p5_low, +d.p5_med, +d.p5_high)},
604+
{name: 'המכרז כולל הליכים סדורים הנותנים קול למפעיל השירות לניהול שיח מקצועי ולהצפת צרכים מול המשרד', isCore: true, ...this.tierPcts(t, +d.ca5_low, +d.ca5_med, +d.ca5_high)},
582605
]
583606
},
584607
{
585608
principleTitle: 'עקרון שישי: תכנון כלכלי ותחרות בשירות האיכות',
586609
aspects: [
610+
{name: 'הגברת התחרות בין מתמודדים בתקופת המכרוז', isCore: false, ...this.tierPcts(t, +d.p6_1_low, +d.p6_1_med, +d.p6_1_high)},
587611
{name: 'הגברת תחרות בין מפעילים במהלך חיי ההתקשרות', isCore: false, ...this.tierPcts(t, +d.p6_2_low, +d.p6_2_med, +d.p6_2_high)},
588612
{name: 'תכנון כלכלי ההולם את הצרכים הנדרשים למתן שירות איכותי', isCore: false, ...this.tierPcts(t, +d.p6_3_low, +d.p6_3_med, +d.p6_3_high)},
589-
{name: 'הגברת התחרות בין מתמודדים בתקופת המכרוז', isCore: true, ...this.tierPcts(t, +d.p6_1_low, +d.p6_1_med, +d.p6_1_high)},
613+
{name: 'המכרז כולל מודל תמרוץ למפעיל לעידוד שיפור איכות ויעילות השירות במהלך חיי ההתקשרות', isCore: true, ...this.tierPcts(t, +d.ca6_low, +d.ca6_med, +d.ca6_high)},
590614
]
591615
},
592616
];

0 commit comments

Comments
 (0)