package erp import ( "context" "time" "git.kumo.work/shama/service/client" "git.kumo.work/shama/service/lib/bean" "github.com/shopspring/decimal" ) type receivable struct { } type ArgsReceivableList struct { Page bean.Page Search ReceivableSearch } type ReceivableSearch struct { ReceivableSerial string // 收款单据号 CustomId int64 // 客户id InvoiceSerial string // 出运发票号 CreatedAtStart *time.Time // 创建开始时间 CreatedAtEnd *time.Time // 创建结束时间 } type ReplyReceivableList struct { List []ReceivableItem `json:"list"` Total int64 `json:"total"` } type ReceivableItem struct { Id int64 `json:"id"` ReceivableSerial string `json:"receivableSerial"` CustomName string `json:"customName"` InvoiceSerial string `json:"invoiceSerial"` ReceivableAmount decimal.Decimal `json:"receivableAmount"` ReceivedAmount decimal.Decimal `json:"receivedAmount"` OutstandingAmount decimal.Decimal `json:"outstandingAmount"` Currency string `json:"currency"` CurrencyName string `json:"currencyName"` CurrencyRate decimal.Decimal `json:"currencyRate"` CurrencySymbol string `json:"currencySymbol"` CreatedStaffID int64 `json:"createdStaffID"` CreatedAt *time.Time `json:"createdAt"` UpdatedAt *time.Time `json:"updatedAt"` } // List @TITLE 列表 func (p *receivable) List(ctx context.Context, args ArgsReceivableList) (reply ReplyReceivableList, err error) { xClient, err := client.GetClient(p) if err != nil { return } err = xClient.Call(ctx, "List", args, &reply) return } type ReplyReceivableInfo struct { Id int64 `json:"id"` ReceivableSerial string `json:"receivableSerial"` CustomName string `json:"customName"` InvoiceSerial string `json:"invoiceSerial"` ReceivableAmount decimal.Decimal `json:"receivableAmount"` ReceivedAmount decimal.Decimal `json:"receivedAmount"` OutstandingAmount decimal.Decimal `json:"outstandingAmount"` Currency string `json:"currency"` CurrencyName string `json:"currencyName"` CurrencyRate decimal.Decimal `json:"currencyRate"` CurrencySymbol string `json:"currencySymbol"` CreatedStaffID int64 `json:"createdStaffID"` CreatedAt *time.Time `json:"createdAt"` UpdatedAt *time.Time `json:"updatedAt"` Products []ReceivableProductItem `json:"products"` } type ReceivableProductItem struct { Id int64 `json:"id"` ShipmentProductId int64 `json:"shipmentProductId"` Name string `json:"name"` Serial string `json:"serial"` ReceivableCount int64 `json:"receivableCount"` AddTaxRate decimal.Decimal `json:"addTaxRate"` UnitPrice decimal.Decimal `json:"unitPrice"` ExTaxUnitPrice decimal.Decimal `json:"exTaxUnitPrice"` UnitAmount decimal.Decimal `json:"unitAmount"` ExTaxUnitAmount decimal.Decimal `json:"exTaxUnitAmount"` TaxAmount decimal.Decimal `json:"taxAmount"` } // Info @TITLE 详情 func (p *receivable) Info(ctx context.Context, receivableId int64) (reply ReplyReceivableInfo, err error) { xClient, err := client.GetClient(p) if err != nil { return } err = xClient.Call(ctx, "List", receivableId, &reply) return }