feat(payment): 添加预付款功能支持

- 在Payment结构体中添加Prepaid字段
- 新增prepaid.go文件实现预付款相关功能
- 添加PrepaidItem结构体定义预付款项目
- 实现All方法获取费用列表
- 实现Add方法添加预付款功能
- 实现Edit方法编辑预付款功能
- 实现Delete方法删除预付款功能
- 定义ArgsPrepaidAdd和PrepaidAdd参数结构体
- 定义ArgsPrepaidEdit参数结构体用于编辑操作
This commit is contained in:
2026-05-25 15:31:56 +08:00
parent f9f92f2f9e
commit 72724ff9fb
2 changed files with 79 additions and 1 deletions

View File

@@ -1,5 +1,6 @@
package payment
type Payment struct {
Audit audit
Audit audit
Prepaid prepaid
}

77
erp/payment/prepaid.go Normal file
View File

@@ -0,0 +1,77 @@
package payment
import (
"context"
"time"
"git.kumo.work/shama/service/client"
"github.com/shopspring/decimal"
)
type prepaid struct {
}
type PrepaidItem struct {
Id int64 `json:"id"`
InvoiceSerial string `json:"invoiceSerial"`
Amount decimal.Decimal `json:"amount"`
Remark string `json:"remark"`
CreatedAt *time.Time `json:"createdAt"`
UpdatedAt *time.Time `json:"updatedAt"`
}
// All @TITLE 获取费用
func (c *prepaid) All(ctx context.Context, paymentId int64) (reply []PrepaidItem, err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
err = xClient.Call(ctx, "All", paymentId, &reply)
return
}
type ArgsPrepaidAdd struct {
PurchaseId int64 // 采购合同ID
PrepaidAdd
}
type PrepaidAdd struct {
InvoiceSerial string // 发票编号
Amount decimal.Decimal // 金额
Remark string // 备注
}
// Add @TITLE 添加费用
func (c *prepaid) Add(ctx context.Context, args ArgsPrepaidAdd) (err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
reply := 0
return xClient.Call(ctx, "Add", args, &reply)
}
type ArgsPrepaidEdit struct {
PrepaidId int64 // 费用ID
PrepaidAdd
}
// Edit @TITLE 编辑费用
func (c *prepaid) Edit(ctx context.Context, args ArgsPrepaidEdit) (err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
reply := 0
return xClient.Call(ctx, "Edit", args, &reply)
}
// Delete @TITLE 删除费用
func (c *prepaid) Delete(ctx context.Context, prepaidIds []int64) (err error) {
xClient, err := client.GetClient(c)
if err != nil {
return
}
reply := 0
return xClient.Call(ctx, "Delete", prepaidIds, &reply)
}