package banksync import ( "fmt" "fuj-management/go/internal/io/fio" "io" "text/tabwriter" ) func printFioTable(w io.Writer, txns []fio.Transaction, syncIDs []string, existing map[string]bool) { tw := tabwriter.NewWriter(w, 0, 0, 2, ' ', 0) fmt.Fprintln(tw, "DATE\tAMOUNT\tSENDER\tVS\tMESSAGE\tBANKID\tSTATUS") for i, tx := range txns { status := "NEW" if existing[syncIDs[i]] { status = "DUP" } fmt.Fprintf(tw, "%s\t%.2f\t%s\t%s\t%s\t%s\t%s\n", tx.Date, tx.Amount, tx.Sender, tx.VS, truncRunes(tx.Message, 40), tx.BankID, status) } _ = tw.Flush() } func truncRunes(s string, n int) string { rs := []rune(s) if len(rs) <= n { return s } return string(rs[:n-1]) + "…" }