Пример #1
0
func genererBilanSimple(userData InfosUser, infos depart.InfosDepartEnRetraite) {
	log.Debugln("genererBilanSimple : start")

	t, _ := template.New("BilanSimple").Funcs(template.FuncMap{
		"timeToString": depart.TimeToString,
	}).Parse(BilanDateDeNaissance)

	trimestresDecote := 16 // au maximum pension.DECOTE_MAX_TRIMESTRES = 20 trimestres
	decote, _ := depart.CalculerDécotePourTrimestresManquants(trimestresDecote, userData.Naissance)
	simuDecote := Simulation{
		// la décote est limitée à 20 trimestres
		Trimestres:       infos.TrimestresTauxPlein - trimestresDecote,
		DeltaTrimestres:  trimestresDecote,
		EvolParTrimestre: fmt.Sprintf("%.3f", decote.Decote.Diminution),
		TauxPension:      decote.TauxPension,
	}

	deltaTrimestres := 8
	simuSurcote := Simulation{
		// la surcote n'est pas limitée
		Trimestres:       infos.TrimestresTauxPlein + deltaTrimestres,
		DeltaTrimestres:  deltaTrimestres,
		EvolParTrimestre: fmt.Sprintf("%.3f", depart.SurcotePourTrimestreSupplementaire()),
		TauxPension:      depart.CalculerSurcotePourTrimestresSupplementaires(deltaTrimestres),
	}

	data := TemplateSimpleData{
		User:        userData,
		Infos:       infos,
		SimuDecote:  simuDecote,
		SimuSurcote: simuSurcote,
	}

	if err := t.Execute(os.Stdout, data); err != nil {
		log.Fatalf("Le bilan n'a pas pu être généré, err: ", err)
	}
	log.Debugln("genererBilanSimple : ok !")
}
Пример #2
0
func preparerDonneesPourTemplate(user InfosUser, dep depart.InfosDepartEnRetraite, tauxPlein depart.CalculDépart) (TemplateReleveData, error) {

	dateRelevé, err := depart.VérifierRelevé(user.AnnéeRelevé)
	if err != nil {
		log.Debugf("Impossible de calculer le nombre de trimestres cotisés, à cause de la date du relevé: %v, err: %v", user.AnnéeRelevé, err)
		return TemplateReleveData{}, fmt.Errorf("Impossible de calculer le nombre de trimestres cotisés, err: %v", err)
	}

	nbTrimestresRestants, err := depart.NombreDeTrimestresEntre(dateRelevé, dep.DateDépartMin)
	if err != nil {
		log.Debugf("Impossible de calculer le nombre de trimestres cotisés, à cause de la date du relevé: %v, err: %v", user.AnnéeRelevé, err)
		return TemplateReleveData{}, fmt.Errorf("Impossible de calculer le nombre de trimestres cotisés, err: %v", err)
	}

	departMinTrimestresCotises := nbTrimestresRestants + user.TrimestresCotisés
	departMinTrimestresManquants := dep.TrimestresTauxPlein - departMinTrimestresCotises

	calcul, _ := depart.CalculerDécotePourTrimestresManquants(departMinTrimestresManquants, user.Naissance)
	min := InfosDepartMin{
		InfosDepart: InfosDepart{
			DateDépart:        depart.TimeToString(dep.DateDépartMin),
			AgeDépart:         dep.AgeDépartMin,
			TrimestresCotisés: departMinTrimestresCotises,
		},
		TrimestresManquants: departMinTrimestresManquants,
		Decote:              calcul,
	}

	return TemplateReleveData{
		User:      user,
		Infos:     dep,
		DepartMin: min,
		//TauxPlein:plein,
	}, nil

}