Skip to content

Commit

Permalink
feat: revamp application step 2
Browse files Browse the repository at this point in the history
  • Loading branch information
sirtawast committed Sep 11, 2023
1 parent 7fd0636 commit eea9162
Show file tree
Hide file tree
Showing 15 changed files with 439 additions and 641 deletions.
16 changes: 9 additions & 7 deletions backend/benefit/applications/api/v1/serializers/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -561,6 +561,7 @@ def _get_handler_attachment_requirements(application):
return []

def get_attachment_requirements(self, obj):
print(obj.benefit_type)
if obj.apprenticeship_program:
return (
[
Expand All @@ -580,6 +581,7 @@ def get_attachment_requirements(self, obj):
elif obj.benefit_type in [
BenefitType.EMPLOYMENT_BENEFIT,
BenefitType.SALARY_BENEFIT,
BenefitType.UNCLARIFIED_BENEFIT,
]:
return (
[
Expand Down Expand Up @@ -862,7 +864,7 @@ def _validate_benefit_type(
apprenticeship_program,
pay_subsidy_granted,
):
if benefit_type == "":
if benefit_type == "unclarified_benefit":
return
if (
benefit_type
Expand All @@ -888,7 +890,7 @@ def _get_available_benefit_types(
Make the logic of determining available benefit types available both for generating the list of
benefit types and validating the incoming data
"""

return [BenefitType.UNCLARIFIED_BENEFIT]
if (
OrganizationType.resolve_organization_type(company.company_form_code)
== OrganizationType.ASSOCIATION
Expand Down Expand Up @@ -979,11 +981,11 @@ def validate(self, data):
data.get("co_operation_negotiations"),
data.get("co_operation_negotiations_description"),
)
self._validate_pay_subsidy(
data.get("pay_subsidy_granted"),
data.get("pay_subsidy_percent"),
data.get("additional_pay_subsidy_percent"),
)
# self._validate_pay_subsidy(
# data.get("pay_subsidy_granted"),
# data.get("pay_subsidy_percent"),
# data.get("additional_pay_subsidy_percent"),
# )
self._validate_de_minimis_aid_set(
company,
data.get("de_minimis_aid"),
Expand Down
1 change: 1 addition & 0 deletions backend/benefit/applications/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class BenefitType(models.TextChoices):
EMPLOYMENT_BENEFIT = "employment_benefit", _("Employment Benefit")
SALARY_BENEFIT = "salary_benefit", _("Salary Benefit")
COMMISSION_BENEFIT = "commission_benefit", _("Commission Benefit")
UNCLARIFIED_BENEFIT = "unclarified_benefit", _("Unclarified Benefit")


class ApplicationStep(models.TextChoices):
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Generated by Django 3.2.18 on 2023-09-11 11:28

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('applications', '0039_alter_paysubsidy_percentages'),
]

operations = [
migrations.AlterField(
model_name='application',
name='benefit_type',
field=models.CharField(blank=True, choices=[('employment_benefit', 'Employment Benefit'), ('salary_benefit', 'Salary Benefit'), ('commission_benefit', 'Commission Benefit'), ('unclarified_benefit', 'Unclarified Benefit')], max_length=64),
),
migrations.AlterField(
model_name='application',
name='pay_subsidy_granted',
field=models.CharField(blank=True, choices=[('aged', 'aged'), ('default', 'default'), ('none', 'none')], max_length=128, null=True),
),
migrations.AlterField(
model_name='historicalapplication',
name='benefit_type',
field=models.CharField(blank=True, choices=[('employment_benefit', 'Employment Benefit'), ('salary_benefit', 'Salary Benefit'), ('commission_benefit', 'Commission Benefit'), ('unclarified_benefit', 'Unclarified Benefit')], max_length=64),
),
migrations.AlterField(
model_name='historicalapplication',
name='pay_subsidy_granted',
field=models.CharField(blank=True, choices=[('aged', 'aged'), ('default', 'default'), ('none', 'none')], max_length=128, null=True),
),
]
12 changes: 10 additions & 2 deletions backend/benefit/applications/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
("en", "english"),
)

PAY_SUBSIDY_TYPES = (("aged", "aged"), ("default", "default"), ("none", "none"))

PAY_SUBSIDY_PERCENT_CHOICES = (
(50, "50%"),
(70, "70%"),
Expand Down Expand Up @@ -255,7 +257,9 @@ class Application(UUIDModel, TimeStampedModel, DurationMixin):
blank=True,
)

pay_subsidy_granted = models.BooleanField(null=True)
pay_subsidy_granted = models.CharField(
null=True, choices=PAY_SUBSIDY_TYPES, max_length=128, blank=True
)

# The PaySubsidy model stores the values entered by handlers for the calculation.
# This field is filled by the applicant.
Expand Down Expand Up @@ -306,12 +310,16 @@ def get_available_benefit_types(self):
self.is_association_application()
and not self.association_has_business_activities
):
return [BenefitType.SALARY_BENEFIT]
return [
BenefitType.SALARY_BENEFIT,
BenefitType.UNCLARIFIED_BENEFIT,
]
else:
return [
BenefitType.SALARY_BENEFIT,
BenefitType.COMMISSION_BENEFIT,
BenefitType.EMPLOYMENT_BENEFIT,
BenefitType.UNCLARIFIED_BENEFIT,
]

"""
Expand Down
15 changes: 8 additions & 7 deletions frontend/benefit/applicant/public/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -185,16 +185,16 @@
}
},
"employee": {
"heading1": "Person to be employed with the Helsinki benefit",
"heading1Short": "Person to be hired",
"heading2": "Pay subsidy decision",
"heading1": "Person to be employed",
"heading1Short": "Person to be employed",
"heading2": "TODO",
"heading3": "Type of benefit applied for",
"heading3Long": "Form and date of the applied benefit",
"heading4": "Applied for the period",
"heading5Employment": "Employment relationship",
"heading5Assignment": "Commission",
"heading5EmploymentSub1": "Salary costs",
"salaryExpensesExplanation": "The gross salary and indirect labour costs are indicated in EUR per month, holiday bonus as a lump sum",
"salaryExpensesExplanation": "TODO",
"tooltips": {
"heading5Employment": "Collective agreement applied: e.g. Collective Agreement for the Commercial Sector. If there is no binding collective agreement in the sector, put in a dash.",
"heading5EmploymentSub1": "The gross salary is the salary paid to the subsidised employee before the deduction of the employee’s statutory contributions (the employee’s unemployment insurance and pension insurance contributions) and taxes. If the subsidised employee is paid remuneration bonuses (e.g. evening, night or shift work bonus), take the estimated amount into account in the gross salary. The employers’ statutory indirect labour costs include social security expenses, pension insurance, accident insurance and unemployment insurance premiums as well as the mandatory group life insurance premium.\r\n\r\nIndirect labour costs refer to the amount of the employer’s statutory indirect labour costs paid for the salary per month.\r\n\r\nThe holiday bonus is a salary cost to be covered by the subsidy when it is paid for holiday pay during the subsidy period. Estimate the amount of holiday bonus to be paid during the subsidy period. Holiday compensation is not covered by the Helsinki benefit.",
Expand Down Expand Up @@ -255,7 +255,7 @@
"error": "To be eligible for the subsidy, the municipality of residence must be Helsinki."
},
"paySubsidyGranted": {
"label": "Has pay subsidy been granted for the employment relationship?",
"label": "TODO",
"yes": "Yes",
"no": "No"
},
Expand All @@ -281,9 +281,10 @@
"placeholder": "Job title"
},
"workingHours": {
"label": "Working hours per week",
"label": "Working hours",
"placeholder": "Hours",
"view": "Working hours: {{workingHours}} hours per week"
"view": "Working hours: {{workingHours}} hours per week",
"helperText": "hours per week"
},
"collectiveBargainingAgreement": {
"label": "Collective agreement applied",
Expand Down
41 changes: 23 additions & 18 deletions frontend/benefit/applicant/public/locales/fi/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -150,10 +150,6 @@
"yes": "Kyllä",
"no": "Ei"
},
"associationImmediateManagerCheck": {
"label": "Lähiesihenkilö palkattavalle henkilölle",
"placeholder": "Työnantajalla on asianmukaiset työtilat ja työnjohdollinen, ei-palkkatuettu esihenkilö palkattavalle henkilölle."
},
"deMinimisAid": {
"label": "Onko työnantajalle myönnetty kuluvan vuoden ja kahden edellisen verovuoden aikana de minimis -tukea?",
"yes": "Kyllä",
Expand Down Expand Up @@ -185,16 +181,16 @@
}
},
"employee": {
"heading1": "Henkilö, jonka työllistämiseen Helsinki-lisää haetaan",
"heading1Short": "Palkattava henkilö",
"heading2": "Palkkatukipäätös",
"heading1": "Työllistettävä henkilö",
"heading1Short": "Työllistettävä henkilö",
"heading2": "Työsuhteeseen myönnetyt valtion tuet",
"heading3": "Haettava tukimuoto",
"heading3Long": "Haettava tukimuoto ja ajankohta",
"heading4": "Haetaan ajalle",
"heading4": "Mille ajalle haet Helsinki-lisää?",
"heading5Employment": "Työsuhde",
"heading5Assignment": "Toimeksianto",
"heading5EmploymentSub1": "Palkkauskustannukset",
"salaryExpensesExplanation": "Bruttopalkka ja sivukulut ilmoitetaan euroina kuukaudessa, lomaraha kertasummana",
"salaryExpensesExplanation": "Ilmoita bruttopalkka, sivukulut ja lomaraha euroina kuukaudessa.",
"tooltips": {
"heading5Employment": "Sovellettava työehtosopimus: esim. Kaupan työehtosopimus. Jos alalla ei ole velvoittavaa työehtosopimusta, merkitse viiva.",
"heading5EmploymentSub1": "Bruttopalkalla tarkoitetaan tuella palkattavalle maksettavaa palkkaa ennen työntekijän lakisääteisten maksujen (työntekijän työttömyysvakuutus- ja eläkevakuutusmaksu) ja verojen pidätystä. Jos tuella palkattavalle maksetaan palkan lisiä (esim. ilta-, yö- tai vuorotyölisä), ota niiden arvioitu määrä huomioon bruttopalkassa. Työnantajan lakisääteisiin sivukuluihin luetaan sosiaaliturva-, työeläkevakuutus-, tapaturmavakuutus- ja työttömyysvakuutusmaksu sekä pakollinen ryhmähenkivakuutusmaksu.\r\n\r\nSivukulut tarkoittavat palkasta maksettavien työnantajan lakisääteisten sivukulujen määrä kuukaudessa.\r\n\r\nLomaraha on tuella katettava palkkauskustannus silloin, kun se maksetaan tukijakson aikana pidetystä vuosilomapalkasta. Arvioi tukijakson aikana maksettavan lomarahan määrä. Lomakorvaus ei ole Helsinki-lisällä katettava korvaus.",
Expand Down Expand Up @@ -248,16 +244,21 @@
"placeholder": "040 1234567"
},
"isLivingInHelsinki": {
"label": "Työllistetyn kotikunta on Helsinki",
"label": "Onko työllistettävän kotikunta Helsinki työsuhteen alkaessa?",
"placeholder": "Kyllä, työllistettävä on kirjoilla Helsingissä viimeistään työsuhteen alkaessa",
"yes": "Kyllä",
"no": "Ei",
"error": "Jotta tukea voidaan myöntää, kotikunnan tulee olla Helsinki."
},
"associationImmediateManagerCheck": {
"label": "Onko työllistettävälle osoitettu työnjohdollinen esihenkilö?",
"placeholder": "Kyllä, työllistettävällä on työnjohdollinen esihenkilö."
},
"paySubsidyGranted": {
"label": "Onko työsuhteeseen myönnetty palkkatuki?",
"yes": "Kyllä",
"no": "Ei"
"label": "Onko työsuhteeseen myönnetty jokin seuraavista tuista?",
"paySubsidyDefault": "Palkkatuki",
"paySubsidyAged": "55 vuotta täyttäneiden työllistämistuki",
"paySubsidyNone": "Työsuhteeseen ei ole myönnetty mitään edeltävistä tuista"
},
"paySubsidyPercent": {
"label": "Päätöksessä oleva palkkatukiprosentti"
Expand All @@ -281,9 +282,10 @@
"placeholder": "Tehtävänimike"
},
"workingHours": {
"label": "Työaika tuntia viikossa",
"label": "Työaika",
"placeholder": "Tunteja",
"view": "Työaika: {{workingHours}} tuntia viikossa"
"view": "Työaika: {{workingHours}} tuntia viikossa",
"helperText": "tuntia viikossa"
},
"collectiveBargainingAgreement": {
"label": "Sovellettava työehtosopimus",
Expand All @@ -292,17 +294,20 @@
"monthlyPay": {
"label": "Bruttopalkka",
"placeholder": "Palkka",
"view": "Bruttopalkka {{monthlyPay}} euroa kuukaudessa"
"view": "Bruttopalkka {{monthlyPay}} euroa kuukaudessa",
"helperText": "euroa kuukaudessa"
},
"otherExpenses": {
"label": "Sivukulut",
"placeholder": "Sivukulut",
"view": "Sivukulut {{otherExpenses}} euroa kuukaudessa"
"view": "Sivukulut {{otherExpenses}} euroa kuukaudessa",
"helperText": "euroa kuukaudessa"
},
"vacationMoney": {
"label": "Lomaraha",
"placeholder": "Lomaraha",
"view": "Lomaraha {{vacationMoney}} euroa"
"view": "Lomaraha {{vacationMoney}} euroa",
"helperText": "euroa kuukaudessa"
},
"commissionDescription": {
"label": "Toimeksiannon kuvaus",
Expand Down
15 changes: 8 additions & 7 deletions frontend/benefit/applicant/public/locales/sv/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -185,16 +185,16 @@
}
},
"employee": {
"heading1": "Person för vars anställning man ansöker om Helsingforstillägg",
"heading1Short": "Person som ska anställas",
"heading2": "Beslut om lönesubvention",
"heading1": "TODO",
"heading1Short": "TODO",
"heading2": "TODO",
"heading3": "Den stödform som söks",
"heading3Long": "Form och datum för stöd som ska sökas",
"heading4": "Ansöks för perioden",
"heading5Employment": "Anställningsförhållande",
"heading5Assignment": "Uppdrag",
"heading5EmploymentSub1": "Lönekostnader",
"salaryExpensesExplanation": "Bruttolön och bikostnader anges i euro per månad, semesterpenning som ett engångsbelopp",
"salaryExpensesExplanation": "TODO",
"tooltips": {
"heading5Employment": "Kollektivavtal som tillämpas: t.ex. kollektivavtal för handeln. Sätt streck om branschen inte har ett bindande kollektivavtal.",
"heading5EmploymentSub1": "Med bruttolön avses lönen till den person som anställs med subventionen före innehållande av arbetsgivarens lagstadgade kostnader (arbetslöshets- och pensionsförsäkringspremier för arbetstagaren) och skatter. Om den person som anställs med subventionen får lönetillägg (t.ex. kvälls-, natt- eller skiftarbetstillägg), ska det uppskattade beloppet från dessa beaktas i bruttolönen. Till arbetsgivarens lagstadgade bikostnader räknas socialskyddsavgifterna och premierna för arbetspensionsförsäkringen, olycksfallsförsäkringen och arbetslöshetsförsäkringen samt den obligatoriska grupplivförsäkringen.\r\n\r\nMed bikostnader avses arbetsgivarens lagstadgade bikostnader per månad.\r\n\r\nSemesterpenning är en lönekostnad som kan täckas med subventionen till den del som semesterpenning betalas för semesterlön som används under subventionsperioden. Uppskatta semesterpenningen som betalas under subventionsperioden. Semesterpenning kan inte täckas med Helsingforstillägg.",
Expand Down Expand Up @@ -255,7 +255,7 @@
"error": "Stöd kan beviljas endast om hemkommunen är Helsingfors."
},
"paySubsidyGranted": {
"label": "Har lönesubvention beviljats för anställningsförhållandet?",
"label": "TODO",
"yes": "Ja",
"no": "Nej"
},
Expand All @@ -281,9 +281,10 @@
"placeholder": "Titel"
},
"workingHours": {
"label": "Arbetstid timmar på vecka",
"label": "Arbetstid",
"placeholder": "Timmar",
"view": "Arbetstid timmar: {{workingHours}} timmar på vecka"
"view": "Arbetstid timmar: {{workingHours}} timmar på vecka",
"helperText": "timmar på vecka"
},
"collectiveBargainingAgreement": {
"label": "Kollektivavtal som tillämpas",
Expand Down
Loading

0 comments on commit eea9162

Please sign in to comment.