package erp import ( "context" "git.kumo.work/shama/service/client" shipment2 "git.kumo.work/shama/service/erp/shipment" "git.kumo.work/shama/service/lib/bean" "github.com/shopspring/decimal" "time" ) type shipment struct { shipment2.Shipment } type ArgsShipmentList struct { Page bean.Page Search ShipmentSearch } type ShipmentSearch struct { InvoiceSerial string // 出运发票号 CustomIds []int64 // 客户筛选 StaffIds []int64 // 业务员筛选 } type ReplyShipmentList struct { List []ShipmentItem `json:"list"` Total int64 `json:"total"` } type ShipmentItem struct { Id int64 `json:"id"` PiSerials string `json:"piSerials"` InvoiceSerial string `json:"invoiceSerial"` ContractDate *time.Time `json:"contractDate"` InvoiceDate time.Time `json:"invoiceDate"` CustomName string `json:"customName"` CustomShortName string `json:"customShortName"` EstSailingDate *time.Time `json:"estSailingDate"` ShipPort string `json:"shipPort"` DischargePort string `json:"dischargePort"` CreatedStaffId int64 `json:"createdStaffId"` CreatedAt *time.Time `json:"createdAt"` UpdatedAt *time.Time `json:"updatedAt"` } // List @TITLE 列表 func (s *shipment) List(ctx context.Context, args ArgsShipmentList) (reply ReplyShipmentList, err error) { xClient, err := client.GetClient(s) if err != nil { return } err = xClient.Call(ctx, "List", args, &reply) return } type ArgsShipmentAdd struct { StaffId int64 // 员工id ShipmentAdd ShipmentAdd } type ShipmentAdd struct { CustomID int64 // 客户id EstSailingDate *time.Time // 预计船期 InvoiceSerial string // 发票号 InvoiceDate time.Time // 发票日期 ContractDate *time.Time // 合同日期 TradeType string // 贸易类型 OurCompany string // 我方公司 PaymentType string // 付款方式 PaymentDepositRate *decimal.Decimal // 付款定金比例 PaymentDepositAmount *decimal.Decimal // 定价金额 PaymentCycle *int64 // 付款周期 PaymentTerms string // 条款 CommissionRate *decimal.Decimal // 佣金比例 TradeCountry string // 贸易国别 RecBank string // 收汇银行 RecBankEng string // 收汇银行英文 RecBankName string // 收汇银行名称 RecBankNameEng string // 收汇银行名称英文 RecBankCardNo string // 收汇银行卡号 RecBankCardName string // 收汇银行户名 Shipper string // 托运人 Consignee string // 收货人 Notifier string // 通知人 ShipMode string // 运输方式 ContainerType string // 货柜类型 ReadyDate *time.Time // 货好时间 ShipPort string // 出运口岸 DischargePort string // 卸货港 DischargePortEng string // 卸货港英文 DeliveryCountry string // 运抵国 DeliveryCountryEng string // 运抵国英文 Destination string // 目的地 FactoryHaulAdress string // 工厂拖柜地址 LogisticsCompanyId int64 // 物流公司id LogisticsCompany string // 物流公司 LogisticsCompanyContactName string // 物流公司联系人 LogisticsCompanyContactPhone string // 物流公司手机号 LogisticsCompanyContactTel string // 物流公司固定电话 LogisticsCompanyContactEmail string // 物流公司邮箱 SeparableFlag int64 // 可分批标记(1=可分 2=不可分) CopyCount *int64 // 提单份数 InsuranceRatio *int64 // 保险比率 CreditSerial string // 信用证号 CreditDate *time.Time // 开证日期 InlandShipWay string // 内陆运输 PackagingType string // 包装种类 ShipmentNo string // shipmentNO CnoSno string // CONTAINER NO./SEAL NO. Declare1 string // 声明1 Declare2 string // 声明2 Info string // 备注 RegulatoryMethods string // 监管方式 TaxExemptionNature string // 征免性质 MarkText string // 唛头文字 MarkImg string // 唛头图片 SaleIds []int64 // 销售合同 } // Add @TITLE 添加 func (s *shipment) Add(ctx context.Context, args ArgsShipmentAdd) (shipmentId int64, err error) { xClient, err := client.GetClient(s) if err != nil { return } err = xClient.Call(ctx, "Add", args, &shipmentId) return } type ReplyShipmentInfo struct { Id int64 `json:"id"` CustomName string `json:"customName"` CustomShortName string `json:"customShortName"` EstSailingDate *time.Time `json:"estSailingDate"` InvoiceSerial string `json:"invoiceSerial"` InvoiceDate time.Time `json:"invoiceDate"` ContractDate *time.Time `json:"contractDate"` TradeType string `json:"tradeType"` OurCompany string `json:"ourCompany"` PaymentType string `json:"paymentType"` PaymentDepositRate *decimal.Decimal `json:"paymentDepositRate"` PaymentDepositAmount *decimal.Decimal `json:"paymentDepositAmount"` PaymentCycle *int64 `json:"paymentCycle"` PaymentTerms string `json:"paymentTerms"` CommissionRate *decimal.Decimal `json:"commissionRate"` TradeCountry string `json:"tradeCountry"` RecBank string `json:"recBank"` RecBankEng string `json:"recBankEng"` RecBankName string `json:"recBankName"` RecBankNameEng string `json:"recBankNameEng"` RecBankCardNo string `json:"recBankCardNo"` RecBankCardName string `json:"recBankCardName"` Shipper string `json:"shipper"` Consignee string `json:"consignee"` Notifier string `json:"notifier"` DueRecDate *time.Time `json:"dueRecDate"` ShipMode string `json:"shipMode"` ContainerType string `json:"containerType"` ReadyDate *time.Time `json:"readyDate"` ShipPort string `json:"shipPort"` DischargePort string `json:"dischargePort"` DischargePortEng string `json:"dischargePortEng"` DeliveryCountry string `json:"deliveryCountry"` DeliveryCountryEng string `json:"deliveryCountryEng"` Destination string `json:"destination"` FactoryHaulAdress string `json:"factoryHaulAdress"` LogisticsCompanyId int64 `json:"logisticsCompanyId"` LogisticsCompany string `json:"logisticsCompany"` LogisticsCompanyContactName string `json:"logisticsCompanyContactName"` LogisticsCompanyContactPhone string `json:"logisticsCompanyContactPhone"` LogisticsCompanyContactTel string `json:"logisticsCompanyContactTel"` LogisticsCompanyContactEmail string `json:"logisticsCompanyContactEmail"` SeparableFlag int64 `json:"separableFlag"` CopyCount *int64 `json:"copyCount"` InsuranceRatio *int64 `json:"insuranceRatio"` CreditSerial string `json:"creditSerial"` CreditDate *time.Time `json:"creditDate"` InlandShipWay string `json:"inlandShipWay"` PackagingType string `json:"packagingType"` ShipmentNo string `json:"shipmentNo"` CnoSno string `json:"cnoSno"` Declare1 string `json:"declare1"` Declare2 string `json:"declare2"` Info string `json:"info"` RegulatoryMethods string `json:"regulatoryMethods"` TaxExemptionNature string `json:"taxExemptionNature"` MarkText string `json:"markText"` MarkImg string `json:"markImg"` WorkflowId int64 `json:"workflowId"` WorkflowStatus int64 `json:"workflowStatus"` WorkflowReason string `json:"workflowReason"` CreatedStaffId int64 `json:"createdStaffId"` CreatedAt *time.Time `json:"createdAt"` } // Info @TITLE 详情 func (s *shipment) Info(ctx context.Context, shipmentId int64) (reply ReplyShipmentInfo, err error) { xClient, err := client.GetClient(s) if err != nil { return } err = xClient.Call(ctx, "Info", shipmentId, &reply) return } type ArgsShipmentEdit struct { ShipmentId int64 // 订舱单id ArgsShipmentData } type ArgsShipmentData struct { EstSailingDate *time.Time // 预计发运日期 InvoiceSerial string // 发票编号 InvoiceDate *time.Time // 发票日期 ContractDate *time.Time // 合同日期 TradeType string // 贸易类型 OurCompany string // 我方公司 RecBank string // 收款银行 RecBankEng string // 收款银行英文 RecBankName string // 收款银行名称 RecBankNameEng string // 收款银行名称英文 RecBankCardNo string // 收款银行卡号 RecBankCardName string // 收款银行卡名 PaymentTerms string // 付款条件 TradeCountry string // 贸易国 PaymentType string // 付款方式 PaymentDepositRate decimal.Decimal // 定金比例 PaymentCycle int64 // 付款周期 CommissionRate decimal.Decimal // 佣金比例 DueRecDate *time.Time // 预计收汇日期日期 Shipper string // 发货方 Consignee string // 收货方 Notifier string // 通知方 ShipMode string // 运输方式 ContainerType string // 柜型 ReadyDate *time.Time // 预计发运日期 ShipPort string // 港口 DischargePort string // 卸货港口 DischargePortEng string // 卸货港口英文 DeliveryCountry string // 运抵国 DeliveryCountryEng string // 运抵国英文 Destination string // 目的地 FactoryHaulAdress string // 工厂拖柜地址 SeparableFlag int64 // 可分批标记(1=可分 2=不可分) LogisticsCompanyId int64 // 物流公司id LogisticsCompany string // 物流公司 LogisticsCompanyContactName string // 物流公司联系人 LogisticsCompanyContactPhone string // 物流公司联系人电话 LogisticsCompanyContactTel string // 物流公司联系人固定电话 LogisticsCompanyContactEmail string // 物流公司联系人邮箱 CopyCount int64 // 提单份数 InsuranceRatio int64 // 保险比率 CreditSerial string // 信用证号 CreditDate *time.Time // 开证日期 InlandShipWay string // 内陆运输 PackagingType string // 包装种类 ShipmentNo string // shipmentNO CnoSno string // CONTAINER NO./SEAL NO. Declare1 string // 声明1 Declare2 string // 声明2 Info string // 备注 RegulatoryMethods string // 监管方式 TaxExemptionNature string // 征免性质 MarkText string // 唛头文字 MarkImg string // 唛头图片 } // Edit @TITLE 编辑 func (s *shipment) Edit(ctx context.Context, args ArgsShipmentEdit) (err error) { xClient, err := client.GetClient(s) if err != nil { return } reply := 0 err = xClient.Call(ctx, "Edit", args, &reply) return }