239 lines
11 KiB
Go
239 lines
11 KiB
Go
package shipment
|
|
|
|
import (
|
|
"context"
|
|
"git.kumo.work/shama/service/client"
|
|
"github.com/shopspring/decimal"
|
|
"time"
|
|
)
|
|
|
|
type saleProduct struct {
|
|
}
|
|
|
|
type SaleProductItem struct {
|
|
Id int64 `json:"id"`
|
|
Mold int64 `json:"mold"`
|
|
ParentSaleProductId int64 `json:"parentSaleProductId"`
|
|
SaleProductId int64 `json:"saleProductId"`
|
|
PiSerial string `json:"piSerial"`
|
|
Sort int64 `json:"sort"`
|
|
Po string `json:"po"`
|
|
Serial string `json:"serial"`
|
|
ImgFilePaths []string `json:"imgFilePaths"`
|
|
CustomSerial string `json:"customSerial"`
|
|
PackageDescription string `json:"packageDescription"`
|
|
PackageEngDescription string `json:"packageEngDescription"`
|
|
EngName string `json:"engName"`
|
|
Name string `json:"name"`
|
|
CustomsName string `json:"customsName"`
|
|
CustomsSerial string `json:"customsSerial"`
|
|
CustomsMeasureUnit string `json:"customsMeasureUnit"`
|
|
CustomsInvoiceUnit string `json:"customsInvoiceUnit"`
|
|
CustomsDetail string `json:"customsDetail"`
|
|
BlEngName string `json:"blEngName"`
|
|
BoxCount int64 `json:"boxCount"`
|
|
InnerNum int64 `json:"innerNum"`
|
|
InnerBoxCount *int64 `json:"innerBoxCount"`
|
|
BoxNumUnit string `json:"boxNumUnit"`
|
|
OuterNum int64 `json:"outerNum"`
|
|
ShipmentCount int64 `json:"shipmentCount"`
|
|
ShipmentCountUnit string `json:"shipmentCountUnit"`
|
|
Length decimal.Decimal `json:"length"`
|
|
Width decimal.Decimal `json:"width"`
|
|
Height decimal.Decimal `json:"height"`
|
|
Volume decimal.Decimal `json:"volume"`
|
|
TotalVolume decimal.Decimal `json:"totalVolume"`
|
|
NetGrossVolume int64 `json:"netGrossVolume"`
|
|
GrossWeight decimal.Decimal `json:"grossWeight"`
|
|
TotalGrossWeight decimal.Decimal `json:"totalGrossWeight"`
|
|
NetWeight decimal.Decimal `json:"netWeight"`
|
|
TotalNetWeight decimal.Decimal `json:"totalNetWeight"`
|
|
CustomsVolume decimal.Decimal `json:"customsVolume"`
|
|
TotalCustomsVolume decimal.Decimal `json:"totalCustomsVolume"`
|
|
CustomsNetWeight decimal.Decimal `json:"customsNetWeight"`
|
|
TotalCustomsNetWeight decimal.Decimal `json:"totalCustomsNetWeight"`
|
|
CustomsGrossWeight decimal.Decimal `json:"customsGrossWeight"`
|
|
TotalCustomsGrossWeight decimal.Decimal `json:"totalCustomsGrossWeight"`
|
|
SalePrice decimal.Decimal `json:"salePrice"`
|
|
SaleAmount decimal.Decimal `json:"saleAmount"`
|
|
FactoryName string `json:"factoryName"`
|
|
CurrencyRate decimal.Decimal `json:"currencyRate"`
|
|
Brand string `json:"brand"`
|
|
DomesticSupply string `json:"domesticSupply"`
|
|
EpmNo string `json:"epmNo"`
|
|
HsSerial int64 `json:"hsSerial"`
|
|
TaxExemption string `json:"taxExemption"`
|
|
ItemNumber string `json:"itemNumber"`
|
|
Texture string `json:"texture"`
|
|
Remark1 string `json:"remark1"`
|
|
Remark2 string `json:"remark2"`
|
|
Remark3 string `json:"remark3"`
|
|
Remark4 string `json:"remark4"`
|
|
Remark5 string `json:"remark5"`
|
|
Remark6 string `json:"remark6"`
|
|
ContainerNumber string `json:"containerNumber"`
|
|
SealNumber string `json:"sealNumber"`
|
|
PurchasePrice decimal.Decimal `json:"purchasePrice"`
|
|
PurchaseAmount decimal.Decimal `json:"purchaseAmount"`
|
|
IsSerial int64 `json:"isSerial"`
|
|
IsCustoms int64 `json:"isCustoms"`
|
|
CreatedAt *time.Time `json:"createdAt"`
|
|
UpdatedAt *time.Time `json:"updatedAt"`
|
|
Children []*SaleProductItem `json:"children"`
|
|
}
|
|
type ArgsSaleProductSearch struct {
|
|
ShipmentId int64 // 出舱单
|
|
SaleIds []int64 // 销售合同
|
|
PiSerial string // pi号
|
|
ShipmentSaleProductIds []int64 // 出舱单商品id
|
|
}
|
|
|
|
// All @TITLE 获取商品
|
|
func (s *saleProduct) All(ctx context.Context, search ArgsSaleProductSearch) (reply []SaleProductItem, err error) {
|
|
xClient, err := client.GetClient(s)
|
|
if err != nil {
|
|
return
|
|
}
|
|
err = xClient.Call(ctx, "All", search, &reply)
|
|
return
|
|
}
|
|
|
|
type ArgsSaleProductAdd struct {
|
|
ShipmentId int64 // 出舱单id
|
|
Products []SaleProductAdd // 产品信息
|
|
}
|
|
type SaleProductAdd struct {
|
|
SaleProductId int64 // 销售商品id
|
|
CustomSerial string // 客户货号
|
|
PackageEngDescription string // 包装英文描述
|
|
Name string // 中文品名
|
|
EngName string // 英文品名
|
|
CustomsSerial string // 海关编码
|
|
CustomsName string // 中文报关名称
|
|
CustomsMeasureUnit string // 报关单位
|
|
CustomsInvoiceUnit string // 开票单位
|
|
CustomsDetail string // 申报要素
|
|
BlEngName string // 提单英文名
|
|
InnerNum *int64 // 内盒入数
|
|
BoxNumUnit string // 箱数单位
|
|
OuterNum *int64 // 装箱单数
|
|
ShipmentCount int64 // 出运数量
|
|
ShipmentCountUnit string // 数量单位
|
|
Length *decimal.Decimal // 长
|
|
Width *decimal.Decimal // 宽
|
|
Height *decimal.Decimal // 高
|
|
NetWeight *decimal.Decimal // 净重
|
|
GrossWeight *decimal.Decimal // 毛重
|
|
NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱
|
|
CustomsVolume decimal.Decimal // 报关体积
|
|
TotalCustomsVolume decimal.Decimal // 报关总体积
|
|
CustomsNetWeight decimal.Decimal // 报关净重
|
|
TotalCustomsNetWeight decimal.Decimal // 报关总净重
|
|
CustomsGrossWeight decimal.Decimal // 报关毛重
|
|
TotalCustomsGrossWeight decimal.Decimal // 报关总毛重
|
|
CustomsBrand string // 品牌
|
|
DomesticSupply string // 货源地
|
|
FactoryName string // 工厂名称
|
|
HsSerial int64 // 是否商检 1=商检 2=未商检
|
|
Texture string // 材质
|
|
EpmNo string // EPM NO
|
|
TaxExemption string // 免征税
|
|
ItemNumber string // 项号
|
|
Remark1 string // 备注1
|
|
Remark2 string // 备注2
|
|
Remark3 string // 备注3
|
|
Remark4 string // 备注4
|
|
Remark5 string // 备注5
|
|
Remark6 string // 备注6
|
|
ContainerNumber string // 箱号
|
|
SealNumber string // 封号
|
|
}
|
|
|
|
// Add @TITLE 添加
|
|
func (s *saleProduct) Add(ctx context.Context, args ArgsSaleProductAdd) (err error) {
|
|
xClient, err := client.GetClient(s)
|
|
if err != nil {
|
|
return
|
|
}
|
|
reply := 0
|
|
return xClient.Call(ctx, "Add", args, &reply)
|
|
}
|
|
|
|
type ArgsSaleProductEdit struct {
|
|
ShipmentId int64 // 订舱单id
|
|
Products []SaleProductEdit
|
|
}
|
|
type SaleProductEdit struct {
|
|
ShipmentSaleProductId int64 // 出舱单商品id
|
|
Sort int64 // 排序
|
|
CustomSerial string // 客户货号
|
|
PackageEngDescription string // 包装英文描述
|
|
Name string // 中文品名
|
|
EngName string // 英文品名
|
|
CustomsSerial string // 海关编码
|
|
CustomsName string // 中文报关名称
|
|
CustomsMeasureUnit string // 报关单位
|
|
CustomsInvoiceUnit string // 开票单位
|
|
CustomsDetail string // 申报要素
|
|
BlEngName string // 提单英文名
|
|
InnerNum *int64 // 内盒入数
|
|
BoxNumUnit string // 箱数单位
|
|
OuterNum *int64 // 装箱单数
|
|
ShipmentCount int64 // 出运数量
|
|
ShipmentCountUnit string // 数量单位
|
|
Length *decimal.Decimal // 长
|
|
Width *decimal.Decimal // 宽
|
|
Height *decimal.Decimal // 高
|
|
NetWeight *decimal.Decimal // 净重
|
|
GrossWeight *decimal.Decimal // 毛重
|
|
NetGrossVolume int64 // 净毛体计算类型 1=内盒 2=外箱
|
|
CustomsVolume decimal.Decimal // 报关体积
|
|
TotalCustomsVolume decimal.Decimal // 报关总体积
|
|
CustomsNetWeight decimal.Decimal // 报关净重
|
|
TotalCustomsNetWeight decimal.Decimal // 报关总净重
|
|
CustomsGrossWeight decimal.Decimal // 报关毛重
|
|
TotalCustomsGrossWeight decimal.Decimal // 报关总毛重
|
|
SalePrice decimal.Decimal // 销售单价
|
|
CustomsBrand string // 品牌
|
|
DomesticSupply string // 货源地
|
|
FactoryName string // 工厂名称
|
|
HsSerial int64 // 是否商检 1=商检 2=未商检
|
|
Texture string // 材质
|
|
EpmNo string // EPM NO
|
|
TaxExemption string // 免征税
|
|
ItemNumber string // 项号
|
|
Remark1 string // 备注1
|
|
Remark2 string // 备注2
|
|
Remark3 string // 备注3
|
|
Remark4 string // 备注4
|
|
Remark5 string // 备注5
|
|
Remark6 string // 备注6
|
|
ContainerNumber string // 箱号
|
|
SealNumber string // 封号
|
|
}
|
|
|
|
// Edit @TITLE 编辑
|
|
func (s *saleProduct) Edit(ctx context.Context, args ArgsSaleProductEdit) (err error) {
|
|
xClient, err := client.GetClient(s)
|
|
if err != nil {
|
|
return
|
|
}
|
|
reply := 0
|
|
return xClient.Call(ctx, "Edit", args, &reply)
|
|
}
|
|
|
|
type ArgsSaleProductDelete struct {
|
|
ShipmentId int64 // 订舱单id
|
|
ShipmentSaleProductIds []int64 // 出运参评id
|
|
}
|
|
|
|
// Delete @TITLE 删除出运产品
|
|
func (s *saleProduct) Delete(ctx context.Context, args ArgsSaleProductDelete) (err error) {
|
|
xClient, err := client.GetClient(s)
|
|
if err != nil {
|
|
return
|
|
}
|
|
reply := 0
|
|
return xClient.Call(ctx, "Delete", args, &reply)
|
|
}
|