fix: cannot include bean file #46
This commit is contained in:
parent
7375c2b7d4
commit
222dc6af3a
|
|
@ -48,6 +48,10 @@ func GetLedgerMonthsFilePath(dataPath string) string {
|
||||||
return dataPath + "/month/months.bean"
|
return dataPath + "/month/months.bean"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetLedgerMonthFilePath(dataPath string, month string) string {
|
||||||
|
return dataPath + "/month/" + month + ".bean"
|
||||||
|
}
|
||||||
|
|
||||||
func GetLedgerIndexFilePath(dataPath string) string {
|
func GetLedgerIndexFilePath(dataPath string) string {
|
||||||
LogInfo(dataPath, dataPath+"/index.bean")
|
LogInfo(dataPath, dataPath+"/index.bean")
|
||||||
return dataPath + "/index.bean"
|
return dataPath + "/index.bean"
|
||||||
|
|
|
||||||
|
|
@ -239,8 +239,17 @@ func BalanceAccount(c *gin.Context) {
|
||||||
line := fmt.Sprintf("\r\n%s pad %s Equity:OpeningBalances", yesterdayStr, accountForm.Account)
|
line := fmt.Sprintf("\r\n%s pad %s Equity:OpeningBalances", yesterdayStr, accountForm.Account)
|
||||||
line += fmt.Sprintf("\r\n%s balance %s %s %s", todayStr, accountForm.Account, accountForm.Number, acc.Currency)
|
line += fmt.Sprintf("\r\n%s balance %s %s %s", todayStr, accountForm.Account, accountForm.Number, acc.Currency)
|
||||||
|
|
||||||
filePath := fmt.Sprintf("%s/month/%s.bean", ledgerConfig.DataPath, month)
|
// check month bean file exist
|
||||||
err = script.AppendFileInNewLine(filePath, line)
|
err = CreateMonthBeanFileIfNotExist(ledgerConfig.DataPath, month)
|
||||||
|
if err != nil {
|
||||||
|
if c != nil {
|
||||||
|
InternalError(c, err.Error())
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// append padding content to month bean file
|
||||||
|
err = script.AppendFileInNewLine(script.GetLedgerMonthFilePath(ledgerConfig.DataPath, month), line)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
InternalError(c, err.Error())
|
InternalError(c, err.Error())
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package service
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"github.com/beancount-gs/script"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CreateMonthBeanFileIfNotExist create month bean file if not exist, otherwise return.
|
||||||
|
func CreateMonthBeanFileIfNotExist(ledgerDataPath string, month string) error {
|
||||||
|
// 文件不存在,则创建
|
||||||
|
filePath := fmt.Sprintf("%s/month/%s.bean", ledgerDataPath, month)
|
||||||
|
if !script.FileIfExist(filePath) {
|
||||||
|
err := script.CreateFile(filePath)
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("failed to create file")
|
||||||
|
}
|
||||||
|
// include ./2021-11.bean
|
||||||
|
err = script.AppendFileInNewLine(script.GetLedgerMonthsFilePath(ledgerDataPath), fmt.Sprintf("include \"./%s.bean\"", month))
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("failed to append content to months.bean")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
@ -205,29 +205,18 @@ func saveTransaction(c *gin.Context, addTransactionForm AddTransactionForm, ledg
|
||||||
}
|
}
|
||||||
return errors.New("internal error")
|
return errors.New("internal error")
|
||||||
}
|
}
|
||||||
monthStr := month.Format("2006-01")
|
|
||||||
filePath := fmt.Sprintf("%s/month/%s.bean", ledgerConfig.DataPath, monthStr)
|
|
||||||
|
|
||||||
// 文件不存在,则创建
|
// 交易的月份信息
|
||||||
if !script.FileIfExist(filePath) {
|
monthStr := month.Format("2006-01")
|
||||||
err = script.CreateFile(filePath)
|
err = CreateMonthBeanFileIfNotExist(ledgerConfig.DataPath, monthStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if c != nil {
|
if c != nil {
|
||||||
InternalError(c, err.Error())
|
InternalError(c, err.Error())
|
||||||
}
|
|
||||||
return errors.New("internal error")
|
|
||||||
}
|
|
||||||
// include ./2021-11.bean
|
|
||||||
err = script.AppendFileInNewLine(script.GetLedgerMonthsFilePath(ledgerConfig.DataPath), fmt.Sprintf("include \"./%s.bean\"", monthStr))
|
|
||||||
if err != nil {
|
|
||||||
if c != nil {
|
|
||||||
InternalError(c, err.Error())
|
|
||||||
}
|
|
||||||
return errors.New("internal error")
|
|
||||||
}
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = script.AppendFileInNewLine(filePath, line)
|
err = script.AppendFileInNewLine(script.GetLedgerMonthFilePath(ledgerConfig.DataPath, monthStr), line)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if c != nil {
|
if c != nil {
|
||||||
InternalError(c, err.Error())
|
InternalError(c, err.Error())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue