- 在 ProductInfo 结构中添加 ContainerNumber 和 ContainerNumberBoxCount 字段 - 在 ProductEdit 结构中添加 ContainerNumber 和 ContainerNumberBoxCount 字段 - 这些新增字段用于记录产品的箱号和装箱数信息
		
			
				
	
	
		
			123 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package accounting
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"git.kumo.work/shama/service/client"
 | |
| 	"github.com/shopspring/decimal"
 | |
| )
 | |
| 
 | |
| type product struct {
 | |
| }
 | |
| 
 | |
| type ProductItem struct {
 | |
| 	Id                         int64            `json:"id"`
 | |
| 	PurchaseProductId          int64            `json:"purchaseProductId"`
 | |
| 	SaleProductId              int64            `json:"saleProductId"`
 | |
| 	Sort                       int64            `json:"sort"`
 | |
| 	Serial                     string           `json:"serial"`
 | |
| 	CustomSerial               string           `json:"customSerial"`
 | |
| 	Name                       string           `json:"name"`
 | |
| 	CustomsSerial              string           `json:"customsSerial"`
 | |
| 	CustomsName                string           `json:"customsName"`
 | |
| 	CustomsInvoiceUnit         string           `json:"customsInvoiceUnit"`
 | |
| 	CustomsUnit                string           `json:"customsUnit"`
 | |
| 	RealCustomsInvoiceUnit     string           `json:"realCustomsInvoiceUnit"`
 | |
| 	InvoiceType                int64            `json:"invoiceType"`
 | |
| 	InvoiceCount               decimal.Decimal  `json:"invoiceCount"`
 | |
| 	AccountingCount            int64            `json:"accountingCount"`
 | |
| 	OuterNum                   *int64           `json:"outerNum"`
 | |
| 	BoxCount                   int64            `json:"boxCount"`
 | |
| 	PurchasePrice              decimal.Decimal  `json:"purchasePrice"`
 | |
| 	Amount                     decimal.Decimal  `json:"amount"`
 | |
| 	Volume                     *decimal.Decimal `json:"volume"`
 | |
| 	TotalVolume                decimal.Decimal  `json:"totalVolume"`
 | |
| 	GrossWeight                *decimal.Decimal `json:"grossWeight"`
 | |
| 	TotalGrossWeight           decimal.Decimal  `json:"totalGrossWeight"`
 | |
| 	NetWeight                  *decimal.Decimal `json:"netWeight"`
 | |
| 	TotalNetWeight             decimal.Decimal  `json:"totalNetWeight"`
 | |
| 	PackageDescription         string           `json:"packageDescription"`
 | |
| 	FactoryId                  int64            `json:"factoryId"`
 | |
| 	FactoryName                string           `json:"factoryName"`
 | |
| 	SaleProductAccountingCount int64            `json:"saleProductAccountingCount"`
 | |
| 	SaleProductPurchasedCount  int64            `json:"saleProductPurchasedCount"`
 | |
| 	ContainerNumber            string           `json:"containerNumber"`
 | |
| 	ContainerNumberBoxCount    int64            `json:"containerNumberBoxCount"`
 | |
| }
 | |
| 
 | |
| // All @TITLE 获取产品
 | |
| func (p *product) All(ctx context.Context, accountingId int64) (reply []ProductItem, err error) {
 | |
| 	xClient, err := client.GetClient(p)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	err = xClient.Call(ctx, "All", accountingId, &reply)
 | |
| 	return
 | |
| }
 | |
| 
 | |
| type ArgsProductAdd struct {
 | |
| 	AccountingId int64 // 做账合同ID
 | |
| 	Products     []ProductAdd
 | |
| }
 | |
| 
 | |
| type ProductAdd struct {
 | |
| 	PurchaseProductId int64           // 采购产品id
 | |
| 	AccountingCount   int64           // 做账数量
 | |
| 	InvoiceType       int64           // 开票方式 1=按净重 2=按数量
 | |
| 	InvoiceCount      decimal.Decimal // 开票数量
 | |
| }
 | |
| 
 | |
| // Add @TITLE 添加产品
 | |
| func (p *product) Add(ctx context.Context, args ArgsProductAdd) (err error) {
 | |
| 	xClient, err := client.GetClient(p)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	reply := 0
 | |
| 	return xClient.Call(ctx, "Add", args, &reply)
 | |
| }
 | |
| 
 | |
| type ArgsProductEdit struct {
 | |
| 	AccountingId int64 // 做账合同ID
 | |
| 	Products     []ProductEdit
 | |
| }
 | |
| 
 | |
| type ProductEdit struct {
 | |
| 	AccountingProductId     int64           // 做账产品id
 | |
| 	Sort                    int64           // 排序
 | |
| 	AccountingCount         int64           // 做账数量
 | |
| 	CustomsSerial           string          // hs编码
 | |
| 	CustomsName             string          // 报关名称
 | |
| 	CustomsInvoiceUnit      string          // 开票单位
 | |
| 	MeasureUnit             string          // 报关单位
 | |
| 	InvoiceType             int64           // 开票方式 1=按净重 2=按数量
 | |
| 	InvoiceCount            decimal.Decimal // 开票数量
 | |
| 	ContainerNumber         string          // 箱号
 | |
| 	ContainerNumberBoxCount int64           // 装箱数
 | |
| }
 | |
| 
 | |
| // Edit @TITLE 编辑费用
 | |
| func (p *product) Edit(ctx context.Context, args ArgsProductEdit) (err error) {
 | |
| 	xClient, err := client.GetClient(p)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	reply := 0
 | |
| 	return xClient.Call(ctx, "Edit", args, &reply)
 | |
| }
 | |
| 
 | |
| type ArgsProductDelete struct {
 | |
| 	AccountingId         int64   // 做账合同ID
 | |
| 	AccountingProductIds []int64 // 做账产品id
 | |
| }
 | |
| 
 | |
| // Delete @TITLE 删除费用
 | |
| func (p *product) Delete(ctx context.Context, args ArgsProductDelete) (err error) {
 | |
| 	xClient, err := client.GetClient(p)
 | |
| 	if err != nil {
 | |
| 		return
 | |
| 	}
 | |
| 	reply := 0
 | |
| 	return xClient.Call(ctx, "Delete", args, &reply)
 | |
| }
 |