From 6995f73627836357b095ff973524690648c010ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Schr=C3=B6pfer?= Date: Wed, 23 Dec 2020 08:35:18 +0100 Subject: [PATCH] documentation an json-tags --- MatrixBerechnung.ods | Bin 0 -> 16164 bytes goodcalc.go | 69 ++++++++++++++++++++++++++++++------------- 2 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 MatrixBerechnung.ods diff --git a/MatrixBerechnung.ods b/MatrixBerechnung.ods new file mode 100644 index 0000000000000000000000000000000000000000..fbbf201209060bff58579913b3f9de9485950bd9 GIT binary patch literal 16164 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 literal 0 HcmV?d00001 diff --git a/goodcalc.go b/goodcalc.go index 1fff7d2..4c53256 100644 --- a/goodcalc.go +++ b/goodcalc.go @@ -1,42 +1,69 @@ // Package goodcalc is a good balance calculator +// The logic of the calculation is based on the +// excel calculator. The simple steps can be found +// inside the MatrixBerechnung.ods file inside this +// repository. package goodcalc +// Matrix contains the stakeholders and the maximal +// allowed points of the calculation. The calculation +// is pretty simple. Inside each aspect ValuationPoints +// can be defined. Over the maximal possible points +// the balancePoints are calculated. +// +// It is possible to define different weights on different +// layers (stakeholder, theme and aspect). +// This type does not contain any businesslogic of the version +// of the matrix. type Matrix struct { - MaxPoints int - Stakeholders []Stakeholder + MaxPoints int `json:"max_points,omitempty"` + Stakeholders []Stakeholder `json:"stakeholders,omitempty"` } +// Stakeholder can define a weight, which is calculated to +// all containing themes. +// No is the id like in the excel +// For example A for Suppliers type Stakeholder struct { - No string - Weight float32 + No string `json:"no,omitempty"` + Weight float32 `json:"weight,omitempty"` + Themes []Theme `json:"themes,omitempty"` } +// Theme is the basic element of the matrix. +// No defines the id of the excel balance. +// A1 for Human dignity in the supply chain type Theme struct { - No string - Weight float32 - Aspects []Aspect - NegativeAspects []NegativeAspect - ThemeCalc // calculatet values + No string `json:"no,omitempty"` + Weight float32 `json:"weight,omitempty"` + Aspects []Aspect `json:"aspects,omitempty"` + NegativeAspects []NegativeAspect `json:"negative_aspects,omitempty"` + Calculation ThemeCalc `json:"calculation,omitempty"` } +// Aspect does contain the valuation of the company. type Aspect struct { - No string - Weight float32 - Points int + No string `json:"no,omitempty"` + Weight float32 `json:"weight,omitempty"` + ValuationPoints int `json:"valuation_points,omitempty"` } +// NegativeAspect has the same fields like Aspect. But the +// business logic requieres a different handling. type NegativeAspect struct { Aspect } +// ThemeCalc contains the different calculation +// steps. type ThemeCalc struct { - CalcWeight float32 - WeightFactor float32 - MaxPoints float32 - NrPositiveAspects int - ValuationPoints int - EstPercentage float32 - blancePoints int - NegativeValuationPoints int - NegativeBlancePoints int + CalcWeight float32 `json:"calc_weight,omitempty"` + WeightFactor float32 `json:"weight_factor,omitempty"` + MaxPoints float32 `json:"max_points,omitempty"` + NrPositiveAspects int `json:"nr_positive_aspects,omitempty"` + ValuationPoints int `json:"valuation_points,omitempty"` + EstPercentage float32 `json:"est_percentage,omitempty"` + BalancePoints int `json:"balance_points,omitempty"` + NegativeValuationPoints int `json:"negative_valuation_points,omitempty"` + NegativeBlancePoints int `json:"negative_blance_points,omitempty"` }