From 37f69801a2b0e9d9f7da1dafa659a6884f7703e0 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Tue, 18 Feb 2025 11:39:48 +0530 Subject: [PATCH] GWM --- main.go | 5 ++--- pb_data/logs.db | Bin 770048 -> 770048 bytes utils/card_calculation.go | 36 +++++++++++++++++++++++++++++++++++- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index afe4998..d601b63 100644 --- a/main.go +++ b/main.go @@ -605,9 +605,9 @@ func main() { cardLogo, ) } - // log.Println("Gowtham", chartData) + cResRaw := utils.ProcessChartData(chartData, languageSourceConverted, langKey) - log.Println("Gowtham", "loop") + //responce data structure chartHeadingKey := "chart_heading_" + language chartSubHeadingKey := "chart_sub_heading_" + language @@ -635,7 +635,6 @@ func main() { } // card data calculation - // Convert cResRaw ([]map[string]interface{}) to []utils.Observation var cRes []utils.Observation cResJSON, err := json.Marshal(cResRaw) if err != nil { diff --git a/pb_data/logs.db b/pb_data/logs.db index a285f56a0153d23bd89e8cf013ee09636783a3e2..8e05d54766d6fceae1ee9e44e49af14852a2d44b 100644 GIT binary patch delta 2323 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 E4-p~cm;e9( diff --git a/utils/card_calculation.go b/utils/card_calculation.go index b5fc9c7..aa1835c 100644 --- a/utils/card_calculation.go +++ b/utils/card_calculation.go @@ -7,6 +7,7 @@ import ( "math" "sort" "strconv" + "strings" ) // Observation struct with json.Number for flexible value handling @@ -177,6 +178,25 @@ func difference(data []Observation) float64 { // } // } +// Function to add commas to a number string +func addCommas(num string) string { + n := len(num) + if n <= 3 { + return num + } + var sb strings.Builder + start := n % 3 + if start == 0 { + start = 3 + } + sb.WriteString(num[:start]) + + for i := start; i < n; i += 3 { + sb.WriteString("," + num[i:i+3]) + } + return sb.String() +} + func applyConversion(value float64, conversion string, numberFormat string) string { if numberFormat == "T" { value *= 1000000000000 @@ -189,8 +209,22 @@ func applyConversion(value float64, conversion string, numberFormat string) stri } // Helper function to format the number properly + // formatNumber := func(v float64, suffix string) string { + // if v == float64(int(v)) { // Check if v has no decimal part + // return fmt.Sprintf("%d%s", int(v), suffix) + // } + // return fmt.Sprintf("%.2f%s", v, suffix) + // } + + // Helper function to format numbers with a thousands separator only in the default case formatNumber := func(v float64, suffix string) string { - if v == float64(int(v)) { // Check if v has no decimal part + if suffix == "" { // Apply comma formatting only in default case + if v == float64(int(v)) { // No decimal part + return addCommas(strconv.Itoa(int(v))) + } + return addCommas(fmt.Sprintf("%.2f", v)) + } + if v == float64(int(v)) { // No decimal part return fmt.Sprintf("%d%s", int(v), suffix) } return fmt.Sprintf("%.2f%s", v, suffix)