service/erp/shipment.go
2024-10-18 16:37:14 +08:00

232 lines
10 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package erp
import (
"context"
"git.kumo.work/shama/service/client"
bean2 "git.kumo.work/shama/service/erp/bean"
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 // 业务员筛选
CreatedStaffIds []int64 // 业务员筛选
WorkflowStatus []int64 // 审核状态
IsAudit int64 // 审核状态 是否审核 1=是 2=否
ShipmentIds []int64 // 出舱id
InvoiceDateStart *time.Time // 发票日期
InvoiceDateEnd *time.Time // 发票日期
ContractDateStart *time.Time // 合同日期
ContractDateEnd *time.Time // 合同日期
}
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"`
WorkflowStatus int64 `json:"workflowStatus"`
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
VouchingClerkId 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 // 收汇银行户名
RecBankAddress 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
}
// Info @TITLE 详情
func (s *shipment) Info(ctx context.Context, shipmentId int64) (reply shipment2.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 // 收款银行卡名
RecBankAddress 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 // 唛头图片
VouchingClerkId int64 // 单证id
}
// 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
}
// Customs @TITLE 报关信息
func (s *shipment) Customs(ctx context.Context, shipmentId int64) (reply bean2.ReplyCustoms, err error) {
xClient, err := client.GetClient(s)
if err != nil {
return
}
err = xClient.Call(ctx, "Customs", shipmentId, &reply)
return
}