1.修改采购订单相关缺陷;

This commit is contained in:
chenlin 2024-03-18 19:53:42 +08:00
parent d6b993d23e
commit fcf0f41bcf
7 changed files with 750 additions and 366 deletions

View File

@ -178,6 +178,15 @@ func ErpPurchaseDetail(c *gin.Context) {
return
}
// 校验时间如果为01-01-01 08:05则赋值为空
if purchaseOrder.MakerTime != nil && purchaseOrder.MakerTime.IsZero() {
purchaseOrder.MakerTime = nil
}
if purchaseOrder.AuditTime != nil && purchaseOrder.AuditTime.IsZero() {
purchaseOrder.AuditTime = nil
}
var purchaseCommodities []model.ErpPurchaseCommodity
err = orm.Eloquent.Table("erp_purchase_commodity").Where("erp_purchase_order_id=?", req.ErpPurchaseOrderId).
Find(&purchaseCommodities).Error
@ -216,6 +225,9 @@ func ErpPurchaseDetail(c *gin.Context) {
purchaseOrder.Commodities = commodityList
// 添加最新入库人信息
purchaseOrder.InventoryId, purchaseOrder.InventoryName, _ = model.GetInventoryIdAndName(purchaseOrder.ID)
app.OK(c, purchaseOrder, "")
return
}
@ -511,11 +523,11 @@ func ErpPurchaseTerminate(c *gin.Context) {
// @Tags 采购管理, V1.3.0
// @Produce json
// @Accept json
// @Param request body models.ErpPurchaseInventoryReq true "执行(入库/退货)模型"
// @Param request body models.ErpPurchaseExecuteReq true "执行(入库/退货)模型"
// @Success 200 {object} models.ErpPurchaseExecuteResp
// @Router /api/v1/erp_purchase/execute [post]
func ErpPurchaseExecute(c *gin.Context) {
req := new(model.ErpPurchaseInventoryReq)
req := new(model.ErpPurchaseExecuteReq)
if err := c.ShouldBindJSON(&req); err != nil {
logger.Error("ShouldBindJSON err:", logger.Field("err", err))
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")

View File

@ -75,7 +75,7 @@ type ErpStockCommodity struct {
StorageType uint32 `json:"storage_type"` // 入库方式1-系统入库 2-采购入库
FirstStockTime time.Time `json:"first_stock_time"` // 首次入库时间
StockSn string `json:"stock_sn"` // 库存订单编号
OriginalSn string `json:"original_sn" gorm:"index"` // 首次入库订单编号
OriginalSn string `json:"original_sn" gorm:"index"` // 首次入库订单编号(单据编号)
StockStartTime time.Time `json:"stock_start_time" gorm:"-"` // 最近入库开始时间
StockEndTime time.Time `json:"stock_end_time" gorm:"-"` // 最近入库结束时间
Age uint32 `json:"age" gorm:"-"` // 最近库龄

View File

@ -108,7 +108,8 @@ type ErpOrderCommodity struct {
VmDiscount float64 `json:"vm_discount"` // 会员积分抵扣
Amount float64 `json:"amount"` // 实际零售价
ReceivedAmount float64 `json:"received_amount"` // 商品实收金额
Remark string `json:"remark"` // 备注
Remark string `json:"remark"` // 销售备注
RejectedRemark string `json:"rejected_remark"` // 退货备注
RejectedPrice float64 `json:"rejected_price"` // 退货单价
RejectedCount uint32 `json:"rejected_count"` // 退货数量
RejectedAmount float64 `json:"rejected_amount"` // 退货金额
@ -2908,6 +2909,9 @@ func checkOrderData(req *ErpOrderCreateReq, sysUser *SysUser) (*ErpOrder, error)
return nil, errors.New("rejected order commodity id is null")
}
v.ID = 0
v.Remark = req.ErpOrderCommodities[i].Remark // 备注
v.RejectedRemark = req.ErpOrderCommodities[i].RejectedRemark // 退货备注
req.ErpOrderCommodities[i] = v
if req.ErpOrderCommodities[i].RejectedPrice > req.ErpOrderCommodities[i].Amount { // 退货单价不能大于实际零售价
logger.Error("rejected price gt retail price ")
@ -2941,7 +2945,6 @@ func checkOrderData(req *ErpOrderCreateReq, sysUser *SysUser) (*ErpOrder, error)
req.ErpOrderCommodities[i].StaffProfit = StaffProfit // 员工毛利
erpOrder.TotalSalesProfit += salesProfit
erpOrder.TotalStaffProfit += StaffProfit
} else if req.RetailType == RetailTypeSale { // 零售订单
var v ErpStockCommodity
var ok bool
@ -3065,7 +3068,7 @@ func updateCommodityData(gdb *gorm.DB, orderId uint32, req *ErpOrderCreateReq) e
if reqCommodity.ErpCommodityId == dbCommodity.ErpCommodityId {
found = true
// 找到匹配的商品,加入匹配列表
matchingCommodities = append(matchingCommodities, dbCommodity)
matchingCommodities = append(matchingCommodities, reqCommodity)
break
}
}

View File

@ -35,31 +35,33 @@ const (
// ErpPurchaseOrder 采购订单表
type ErpPurchaseOrder struct {
Model
SerialNumber string `json:"serial_number" gorm:"index"` // 单据编号
PurchaseType string `json:"purchase_type"` // 类型:procure-采购 reject-退货
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
StoreName string `json:"store_name"` // 门店名称
ErpSupplierId uint32 `json:"erp_supplier_id" gorm:"index"` // 供应商id
ErpSupplierName string `json:"erp_supplier_name"` // 供应商名称
HandlerId uint32 `json:"handler_id" gorm:"index"` // 经手人id
HandlerName string `json:"handler_name"` // 经手人名称
MakerTime time.Time `json:"maker_time"` // 制单时间
MakerId uint32 `json:"maker_id" gorm:"index"` // 制单人id
MakerName string `json:"maker_name"` // 制单人名称
AuditTime time.Time `json:"audit_time"` // 审核时间
AuditorId uint32 `json:"auditor_id" gorm:"index"` // 审核人id
AuditorName string `json:"auditor_name"` // 审核人名称
State uint32 `json:"state"` // 1-待审核 2-待入库 3-待退货 4-已完成 5-已终止
RejectedPurchaseOrderId uint32 `json:"rejected_purchase_order_id"` // 退货采购订单id
ErpCashierId uint32 `json:"erp_cashier_id"` // 付款方式/收款方式id
ErpCashierName string `json:"erp_cashier_name"` // 付款方式/收款方式名称
AccountHolder string `json:"account_holder"` // 收款人
OpeningBank string `json:"opening_bank"` // 开户行
BankAccount string `json:"bank_account"` // 银行卡号
DeliveryTime string `json:"delivery_time"` // 交货日期2024-02-23
DeliveryAddress string `json:"delivery_address"` // 交货地址
Remark string `json:"remark"` // 备注
Commodities []ErpPurchaseCommodity `json:"commodities" gorm:"-"`
SerialNumber string `json:"serial_number" gorm:"index"` // 单据编号
PurchaseType string `json:"purchase_type"` // 类型:procure-采购 reject-退货
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
StoreName string `json:"store_name"` // 门店名称
ErpSupplierId uint32 `json:"erp_supplier_id" gorm:"index"` // 供应商id
ErpSupplierName string `json:"erp_supplier_name"` // 供应商名称
HandlerId uint32 `json:"handler_id" gorm:"index"` // 经手人id
HandlerName string `json:"handler_name"` // 经手人名称
MakerTime *time.Time `json:"maker_time"` // 制单时间
MakerId uint32 `json:"maker_id" gorm:"index"` // 制单人id
MakerName string `json:"maker_name"` // 制单人名称
AuditTime *time.Time `json:"audit_time"` // 审核时间
AuditorId uint32 `json:"auditor_id" gorm:"index"` // 审核人id
AuditorName string `json:"auditor_name"` // 审核人名称
State uint32 `json:"state"` // 1-待审核 2-待入库 3-待退货 4-已完成 5-已终止 6-入库中 7-退货中
RejectedSerialNumber string `json:"rejected_serial_number"` // 退货的采购订单单据编号
ErpCashierId uint32 `json:"erp_cashier_id"` // 付款方式/收款方式id
ErpCashierName string `json:"erp_cashier_name"` // 付款方式/收款方式名称
AccountHolder string `json:"account_holder"` // 收款人
OpeningBank string `json:"opening_bank"` // 开户行
BankAccount string `json:"bank_account"` // 银行卡号
DeliveryTime string `json:"delivery_time"` // 交货日期2024-02-23
DeliveryAddress string `json:"delivery_address"` // 交货地址
Remark string `json:"remark"` // 备注
Commodities []ErpPurchaseCommodity `json:"commodities" gorm:"-"` //
InventoryId uint32 `json:"inventory_id" gorm:"-"` // 最近入库人id
InventoryName string `json:"inventory_name" gorm:"-"` // 最近入库人名称
}
// ErpPurchaseCommodity 采购订单商品表
@ -105,6 +107,8 @@ type ErpPurchaseInventory struct {
ImplementationPrice float64 `json:"implementation_price"` // 执行单价
Amount float64 `json:"amount"` // 执行金额
EmployeePrice float64 `json:"employee_price"` // 员工成本价
InventoryId uint32 `json:"inventory_id"` // 最近入库人id
InventoryName string `json:"inventory_name"` // 最近入库人名称
}
// ErpPurchaseCreateReq 新建采购订单入参
@ -172,8 +176,17 @@ type ErpPurchaseDetailReq struct {
ErpPurchaseOrderId uint32 `json:"erp_purchase_order_id" binding:"required"` // 采购订单id
}
// ErpPurchaseInventoryReq 入库(退货)入参;执行(入库/退货)入参
// ErpPurchaseInventoryReq 入库(退货)入参
type ErpPurchaseInventoryReq struct {
ErpPurchaseOrderId uint32 `json:"erp_purchase_order_id" binding:"required"` // 采购订单id
PurchaseType string `json:"purchase_type" binding:"required"` // 采购类型:procure-采购 reject-退货
InventoryId uint32 `json:"inventory_id" binding:"required"` // 最近入库人id
InventoryName string `json:"inventory_name" binding:"required"` // 最近入库人名称
Inventories []ErpPurchaseInventory `json:"inventories" binding:"required"` // 采购入库执行信息
}
// ErpPurchaseExecuteReq 执行(入库/退货)入参
type ErpPurchaseExecuteReq struct {
ErpPurchaseOrderId uint32 `json:"erp_purchase_order_id" binding:"required"` // 采购订单id
PurchaseType string `json:"purchase_type" binding:"required"` // 采购类型:procure-采购 reject-退货
Inventories []ErpPurchaseInventory `json:"inventories" binding:"required"` // 采购入库执行信息
@ -292,19 +305,19 @@ type FinishErpPurchaseDemandReq struct {
// ErpPurchaseReportByOrderReq 采购报表(按单)入参
type ErpPurchaseReportByOrderReq struct {
SerialNumber string `json:"serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 采购类型procure-采购 reject-退货
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
ErpCategoryID uint32 `json:"erp_category_id"` // 商品分类id
StoreId uint32 `json:"store_id"` // 门店id
HandlerId uint32 `json:"handler_id"` // 经手人id
ErpSupplierId uint32 `json:"erp_supplier_id"` // 供应商id
State uint32 `json:"state"` // 1-待审核 2-待入库 3-待退货 4-已完成 5-已终止
AuditTimeStart string `json:"audit_time_start"` // 审核开始时间
AuditTimeEnd string `json:"audit_time_end"` // 审核结束时间
IsExport uint32 `json:"is_export"` // 1-导出
PageIndex int `json:"pageIndex"` // 页码
PageSize int `json:"pageSize"` // 页面条数
SerialNumber string `json:"serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 采购类型procure-采购 reject-退货
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
ErpCategoryID uint32 `json:"erp_category_id"` // 商品分类id
StoreId []uint32 `json:"store_id"` // 门店id
HandlerId uint32 `json:"handler_id"` // 经手人id
ErpSupplierId []uint32 `json:"erp_supplier_id"` // 供应商id
State uint32 `json:"state"` // 1-待审核 2-待入库 3-待退货 4-已完成 5-已终止
AuditTimeStart string `json:"audit_time_start"` // 审核开始时间
AuditTimeEnd string `json:"audit_time_end"` // 审核结束时间
IsExport uint32 `json:"is_export"` // 1-导出
PageIndex int `json:"pageIndex"` // 页码
PageSize int `json:"pageSize"` // 页面条数
}
// ErpPurchaseReportByOrderResp 采购报表(按单)出参
@ -336,20 +349,21 @@ type CommodityData struct {
}
type CommonData struct {
SerialNumber string `json:"serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 单据类型:procure-采购 reject-退货
StoreId uint32 `json:"store_id"` // 门店id
StoreName string `json:"store_name"` // 门店名称
ErpSupplierId uint32 `json:"erp_supplier_id"` // 供应商id
ErpSupplierName string `json:"erp_supplier_name"` // 供应商名称
HandlerId uint32 `json:"handler_id"` // 经手人id
HandlerName string `json:"handler_name"` // 经手人名称
MakerTime time.Time `json:"maker_time"` // 制单时间
MakerId uint32 `json:"maker_id"` // 制单人id
MakerName string `json:"maker_name"` // 制单人名称
AuditTime time.Time `json:"audit_time"` // 审核时间
AuditorId uint32 `json:"auditor_id"` // 审核人id
AuditorName string `json:"auditor_name"` // 审核人名称
ErpPurchaseOrderId uint32 `json:"erp_purchase_order_id"` // 采购订单id
SerialNumber string `json:"serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 单据类型:procure-采购 reject-退货
StoreId uint32 `json:"store_id"` // 门店id
StoreName string `json:"store_name"` // 门店名称
ErpSupplierId uint32 `json:"erp_supplier_id"` // 供应商id
ErpSupplierName string `json:"erp_supplier_name"` // 供应商名称
HandlerId uint32 `json:"handler_id"` // 经手人id
HandlerName string `json:"handler_name"` // 经手人名称
MakerTime *time.Time `json:"maker_time"` // 制单时间
MakerId uint32 `json:"maker_id"` // 制单人id
MakerName string `json:"maker_name"` // 制单人名称
AuditTime *time.Time `json:"audit_time"` // 审核时间
AuditorId uint32 `json:"auditor_id"` // 审核人id
AuditorName string `json:"auditor_name"` // 审核人名称
}
// ErpPurchaseCommodityData 采购订单商品信息
@ -362,19 +376,19 @@ type ErpPurchaseCommodityData struct {
// ErpPurchaseReportByCommodityReq 采购报表(按商品)入参
type ErpPurchaseReportByCommodityReq struct {
SerialNumber string `json:"serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 采购类型procure-采购 reject-退货
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
ErpCategoryID uint32 `json:"erp_category_id"` // 商品分类id
StoreId uint32 `json:"store_id"` // 门店id
HandlerId uint32 `json:"handler_id"` // 经手人id
ErpSupplierId uint32 `json:"erp_supplier_id"` // 供应商id
State uint32 `json:"state"` // 1-待审核 2-待入库 3-待退货 4-已完成 5-已终止
AuditTimeStart string `json:"audit_time_start"` // 审核开始时间
AuditTimeEnd string `json:"audit_time_end"` // 审核结束时间
IsExport uint32 `json:"is_export"` // 1-导出
PageIndex int `json:"pageIndex"` // 页码
PageSize int `json:"pageSize"` // 页面条数
SerialNumber string `json:"serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 采购类型procure-采购 reject-退货
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
ErpCategoryID uint32 `json:"erp_category_id"` // 商品分类id
StoreId []uint32 `json:"store_id"` // 门店id
HandlerId uint32 `json:"handler_id"` // 经手人id
ErpSupplierId []uint32 `json:"erp_supplier_id"` // 供应商id
State uint32 `json:"state"` // 1-待审核 2-待入库 3-待退货 4-已完成 5-已终止
AuditTimeStart string `json:"audit_time_start"` // 审核开始时间
AuditTimeEnd string `json:"audit_time_end"` // 审核结束时间
IsExport uint32 `json:"is_export"` // 1-导出
PageIndex int `json:"pageIndex"` // 页码
PageSize int `json:"pageSize"` // 页面条数
}
// ErpPurchaseReportByCommodityResp 采购报表(按商品)出参
@ -461,21 +475,17 @@ type ErpPurchaseReportBySupplierResp struct {
// ErpPurchaseReportDetailReq 采购明细入参
type ErpPurchaseReportDetailReq struct {
SerialNumber string `json:"serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 采购类型procure-采购 reject-退货
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
ErpCategoryID uint32 `json:"erp_category_id"` // 商品分类id
ErpSupplierId uint32 `json:"erp_supplier_id"` // 供应商id
StartTime string `json:"startTime"` // 入/出库,开始时间
EndTime string `json:"endTime"` // 入/出库,结束时间
IsExport uint32 `json:"is_export"` // 1-导出
PageIndex int `json:"pageIndex"` // 页码
PageSize int `json:"pageSize"` // 页面条数
StoreList []struct {
StoreID uint32 `json:"store_id"` // 门店id
StoreName string `json:"store_name"` // 门店名称
} `json:"store_list"` // 门店复选
SerialNumber string `json:"serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 采购类型procure-采购 reject-退货
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
ErpCategoryID uint32 `json:"erp_category_id"` // 商品分类id
ErpSupplierId uint32 `json:"erp_supplier_id"` // 供应商id
StartTime string `json:"startTime"` // 入/出库,开始时间
EndTime string `json:"endTime"` // 入/出库,结束时间
IsExport uint32 `json:"is_export"` // 1-导出
PageIndex int `json:"pageIndex"` // 页码
PageSize int `json:"pageSize"` // 页面条数
StoreId []uint32 `json:"store_id"` // 门店id
}
// ErpPurchaseReportDetailResp 采购明细出参
@ -489,23 +499,24 @@ type ErpPurchaseReportDetailResp struct {
DifferencePrice float64 `json:"difference_price"` // 差价
ExportUrl string `json:"export_url"` // 导出excel路径
List []struct {
OrderSerialNumber string `json:"order_serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 单据类型:procure-采购 reject-退货
ExecuteTime *time.Time `json:"execute_time"` // 出/入库时间
StoreId uint32 `json:"store_id"` // 门店id
StoreName string `json:"store_name"` // 门店名称
ErpSupplierId uint32 `json:"erp_supplier_id"` // 供应商id
ErpSupplierName string `json:"erp_supplier_name"` // 供应商名称
ErpCommodityId uint32 `json:"erp_commodity_id"` // 商品id
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
ErpCategoryID uint32 `json:"erp_category_id"` // 商品分类id
ErpCategoryName string `json:"erp_category_name"` // 商品分类名称
IMEIType uint32 `json:"imei_type"` // 1-无串码 2-串码
IMEI string `json:"imei"` // 商品串码
Price float64 `json:"price"` // 采购价
EmployeePrice float64 `json:"employee_price"` // 员工成本价
RejectPrice float64 `json:"reject_price"` // 退货价
DifferencePrice float64 `json:"difference_price"` // 差价
ErpPurchaseOrderId uint32 `json:"erp_purchase_order_id"` // 采购订单id
OrderSerialNumber string `json:"order_serial_number"` // 单据编号
PurchaseType string `json:"purchase_type"` // 单据类型:procure-采购 reject-退货
ExecuteTime *time.Time `json:"execute_time"` // 出/入库时间
StoreId uint32 `json:"store_id"` // 门店id
StoreName string `json:"store_name"` // 门店名称
ErpSupplierId uint32 `json:"erp_supplier_id"` // 供应商id
ErpSupplierName string `json:"erp_supplier_name"` // 供应商名称
ErpCommodityId uint32 `json:"erp_commodity_id"` // 商品id
ErpCommodityName string `json:"erp_commodity_name"` // 商品名称
ErpCategoryID uint32 `json:"erp_category_id"` // 商品分类id
ErpCategoryName string `json:"erp_category_name"` // 商品分类名称
IMEIType uint32 `json:"imei_type"` // 1-无串码 2-串码
IMEI string `json:"imei"` // 商品串码
Price float64 `json:"price"` // 采购价
EmployeePrice float64 `json:"employee_price"` // 员工成本价
RejectPrice float64 `json:"reject_price"` // 退货价
DifferencePrice float64 `json:"difference_price"` // 差价
} `json:"list"` // 采购明细信息
}
@ -527,6 +538,7 @@ func (m *ErpPurchaseOrderListReq) List() (*ErpPurchaseOrderListResp, error) {
if m.AuditFlag == "ON" { //2-待入库 4-已完成 5-已终止
stateList = []int{2, 4, 5}
qs = qs.Where("state IN ?", stateList)
qs = qs.Where("purchase_type=?", ErpProcureOrder)
}
if m.SerialNumber != "" {
qs = qs.Where("serial_number=?", m.SerialNumber)
@ -579,6 +591,17 @@ func (m *ErpPurchaseOrderListReq) List() (*ErpPurchaseOrderListResp, error) {
return resp, err
}
// 校验时间如果为01-01-01 08:05则赋值为空
for i, v := range orders {
if v.MakerTime != nil && v.MakerTime.IsZero() {
orders[i].MakerTime = nil
}
if v.AuditTime != nil && v.AuditTime.IsZero() {
orders[i].AuditTime = nil
}
}
resp.List = orders
return resp, nil
}
@ -775,7 +798,7 @@ func CreateErpPurchaseOrder(req *ErpPurchaseCreateReq, sysUser *SysUser) (*ErpPu
PurchaseType: req.PurchaseType,
StoreId: req.StoreId,
ErpSupplierId: req.ErpSupplierId,
MakerTime: nowTime,
MakerTime: &nowTime,
HandlerId: req.HandlerId,
HandlerName: req.HandlerName,
MakerId: uint32(sysUser.UserId),
@ -802,18 +825,19 @@ func CreateErpPurchaseOrder(req *ErpPurchaseCreateReq, sysUser *SysUser) (*ErpPu
}
purchaseOrder = &ErpPurchaseOrder{
SerialNumber: "cgt" + NewErpPurchaseSn(),
PurchaseType: req.PurchaseType,
StoreId: erpPurchaseOrder.StoreId,
ErpSupplierId: erpPurchaseOrder.ErpSupplierId,
MakerTime: nowTime,
HandlerId: req.HandlerId,
HandlerName: req.HandlerName,
MakerId: uint32(sysUser.UserId),
MakerName: sysUser.NickName,
State: ErpPurchaseOrderUnAudit, // 1-待审核
ErpCashierId: req.ErpCashierId,
Remark: req.Remark,
SerialNumber: "cgt" + NewErpPurchaseSn(),
PurchaseType: req.PurchaseType,
StoreId: erpPurchaseOrder.StoreId,
ErpSupplierId: erpPurchaseOrder.ErpSupplierId,
MakerTime: &nowTime,
HandlerId: req.HandlerId,
HandlerName: req.HandlerName,
MakerId: uint32(sysUser.UserId),
MakerName: sysUser.NickName,
State: ErpPurchaseOrderUnAudit, // 1-待审核
ErpCashierId: req.ErpCashierId,
Remark: req.Remark,
RejectedSerialNumber: req.PurchaseOrderSn,
}
err = purchaseOrder.IdInit()
} else {
@ -1018,7 +1042,9 @@ func InventoryErpPurchase(req *ErpPurchaseInventoryReq) error {
logger.Error("update inventory count err:", logger.Field("err", err))
return err
}
v.PurchaseType = req.PurchaseType // 记录采购类型
v.PurchaseType = req.PurchaseType // 记录采购类型
v.InventoryId = req.InventoryId // 记录入库人id
v.InventoryName = req.InventoryName // 记录入库人姓名
// 新建采购入库记录
err = begin.Create(&v).Error
if err != nil {
@ -1036,10 +1062,13 @@ func InventoryErpPurchase(req *ErpPurchaseInventoryReq) error {
return err
}
var orderState int
// 更新库存信息表
if purchaseOrder.PurchaseType == ErpProcureOrder { //采购入库订单
orderState = ErpPurchaseOrderInInventory
err = InventoryErpPurchaseUpdateStock(begin, req, purchaseOrder)
} else if purchaseOrder.PurchaseType == ErpRejectOrder { // 采购退货订单
orderState = ErpPurchaseOrderInReject
err = InventoryErpPurchaseUpdateRejectStock(begin, req, purchaseOrder)
} else {
return errors.New("订单类型有误")
@ -1050,6 +1079,18 @@ func InventoryErpPurchase(req *ErpPurchaseInventoryReq) error {
return err
}
// 更新采购订单状态
if purchaseOrder.State != uint32(orderState) {
err = begin.Table("erp_purchase_order").Where("id = ?", purchaseOrder.ID).Updates(map[string]interface{}{
"state": orderState,
}).Error
if err != nil {
begin.Rollback()
logger.Error("update erp_purchase_order err:", logger.Field("err", err))
return err
}
}
err = begin.Commit().Error
if err != nil {
begin.Rollback()
@ -1060,6 +1101,19 @@ func InventoryErpPurchase(req *ErpPurchaseInventoryReq) error {
return nil
}
// GetInventoryIdAndName 获取采购单最近入库人信息
func GetInventoryIdAndName(orderId uint32) (uint32, string, error) {
var purchaseInventory ErpPurchaseInventory
err := orm.Eloquent.Table("erp_purchase_inventory").Where("erp_purchase_order_id=?", orderId).
First(&purchaseInventory).Order("created_at DESC").Error
if err != nil {
logger.Error("purchase order err:", logger.Field("err", err))
return 0, "", err
}
return purchaseInventory.InventoryId, purchaseInventory.InventoryName, nil
}
// InventoryErpPurchaseUpdateStock 采购订单入库更新库存信息
func InventoryErpPurchaseUpdateStock(gdb *gorm.DB, req *ErpPurchaseInventoryReq, purchaseOrder ErpPurchaseOrder) error {
// 遍历采购入库商品信息
@ -1131,6 +1185,7 @@ func InventoryErpPurchaseUpdateStock(gdb *gorm.DB, req *ErpPurchaseInventoryReq,
MemberDiscount: commodityInfo.MemberDiscount,
MinRetailPrice: commodityInfo.MinRetailPrice,
RetailPrice: commodityInfo.RetailPrice,
OriginalSn: purchaseOrder.SerialNumber,
}
stockList = append(stockList, stockCommodity)
}
@ -1180,7 +1235,7 @@ func InventoryErpPurchaseUpdateRejectStock(gdb *gorm.DB, req *ErpPurchaseInvento
logger.Error("RetailTypeRejected commodities err:", logger.Field("err", err))
return err
}
} else { // 非串码商品
} else { // todo 非串码商品,需要判断下更新的数量和库存数量是否相同,如果库存数量不够不支持退货
var stockCommodity []ErpStockCommodity
// 通过门店id商品id查找状态为1-在库的非串码商品
err := orm.Eloquent.Table("erp_stock_commodity").Where("erp_commodity_id = ? and store_id = ? "+
@ -1293,8 +1348,13 @@ func checkPurchaseInventory(req *ErpPurchaseInventoryReq) error {
}
// ExecuteErpPurchase 执行(入库/退货)
func ExecuteErpPurchase(req *ErpPurchaseInventoryReq) (*ErpPurchaseExecuteResp, error) {
err := checkPurchaseInventory(req)
func ExecuteErpPurchase(req *ErpPurchaseExecuteReq) (*ErpPurchaseExecuteResp, error) {
reqParam := &ErpPurchaseInventoryReq{
ErpPurchaseOrderId: req.ErpPurchaseOrderId,
PurchaseType: req.PurchaseType,
Inventories: req.Inventories,
}
err := checkPurchaseInventory(reqParam)
if err != nil {
logger.Error("checkPurchaseInventoryReq err:", logger.Field("err", err))
return nil, err
@ -1410,7 +1470,18 @@ func CreateErpPurchaseDemand(req *CreateErpPurchaseDemandReq, sysUser *SysUser)
}
}
err := begin.Commit().Error
// 更新备注
err := begin.Model(&ErpPurchaseDemand{}).Where("erp_commodity_id = ? and state = 1",
req.ErpCommodityID).Updates(map[string]interface{}{
"remark": req.Remark,
}).Error
if err != nil {
begin.Rollback()
logger.Error("update erp_order remark err:", logger.Field("err", err))
return err
}
err = begin.Commit().Error
if err != nil {
begin.Rollback()
logger.Error("commit err:", logger.Field("err", err))
@ -2748,6 +2819,7 @@ func getReportByOrderFromCommodityOrCategory(req *ErpPurchaseReportByOrderReq) (
if req.ErpCategoryID != 0 {
qs = qs.Where("erp_category_id=?", req.ErpCategoryID)
}
var inventoryList []ErpPurchaseInventory
var err error
if req.IsExport == 1 { // 导出excel
@ -2777,11 +2849,30 @@ func getReportByOrderFromCommodityOrCategory(req *ErpPurchaseReportByOrderReq) (
for _, v := range commodityMap {
var purchaseOrder ErpPurchaseOrder
var commodityList []ErpPurchaseCommodityData
err = orm.Eloquent.Table("erp_purchase_order").Where("id = ?", v).Find(&purchaseOrder).Error
query := orm.Eloquent.Table("erp_purchase_order")
if len(req.ErpSupplierId) > 0 { // 供应商复选
var supplierIDs []uint32
for _, supplier := range req.ErpSupplierId {
supplierIDs = append(supplierIDs, supplier)
}
query = query.Where("erp_purchase_order.erp_supplier_id IN (?)", supplierIDs)
}
if len(req.StoreId) > 0 { // 门店复选
var storeIDs []uint32
for _, store := range req.StoreId {
storeIDs = append(storeIDs, store)
}
query = query.Where("erp_purchase_order.store_id IN (?)", storeIDs)
}
err = query.Where("id = ?", v).Find(&purchaseOrder).Error
if err != nil {
return nil, err
}
var reportByOrderData ReportByOrderData
reportByOrderData.ErpPurchaseOrderId = purchaseOrder.ID
reportByOrderData.SerialNumber = purchaseOrder.SerialNumber
reportByOrderData.PurchaseType = purchaseOrder.PurchaseType
reportByOrderData.StoreId = purchaseOrder.StoreId
@ -2799,6 +2890,18 @@ func getReportByOrderFromCommodityOrCategory(req *ErpPurchaseReportByOrderReq) (
reportByOrderData.State = purchaseOrder.State
reportByOrderData.Remark = purchaseOrder.Remark
if purchaseOrder.MakerTime != nil && purchaseOrder.MakerTime.IsZero() {
reportByOrderData.MakerTime = nil
} else {
reportByOrderData.MakerTime = purchaseOrder.MakerTime
}
if purchaseOrder.AuditTime != nil && purchaseOrder.AuditTime.IsZero() {
reportByOrderData.AuditTime = nil
} else {
reportByOrderData.AuditTime = purchaseOrder.AuditTime
}
var nAmount float64
var nCount uint32
for _, inventory := range inventoryList {
@ -2865,11 +2968,19 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq) (*ErpPurchaseR
if req.PurchaseType != "" { // 采购类型
qs = qs.Where("purchase_type=?", req.PurchaseType)
}
if req.StoreId != 0 { // 门店id
qs = qs.Where("store_id=?", req.StoreId)
if len(req.ErpSupplierId) > 0 { // 供应商复选
var supplierIDs []uint32
for _, supplier := range req.ErpSupplierId {
supplierIDs = append(supplierIDs, supplier)
}
qs = qs.Where("erp_supplier_id IN (?)", supplierIDs)
}
if req.ErpSupplierId != 0 { // 供应商id
qs = qs.Where("erp_supplier_id=?", req.ErpSupplierId)
if len(req.StoreId) > 0 { // 门店复选
var storeIDs []uint32
for _, store := range req.StoreId {
storeIDs = append(storeIDs, store)
}
qs = qs.Where("store_id IN (?)", storeIDs)
}
if req.HandlerId != 0 { // 经手人id
qs = qs.Where("handler_id=?", req.HandlerId)
@ -2922,6 +3033,7 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq) (*ErpPurchaseR
var reportByOrderData ReportByOrderData
var nAmount float64
var nCount uint32
reportByOrderData.ErpPurchaseOrderId = v.ID
reportByOrderData.SerialNumber = v.SerialNumber
reportByOrderData.PurchaseType = v.PurchaseType
reportByOrderData.StoreId = v.StoreId
@ -2930,14 +3042,27 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq) (*ErpPurchaseR
reportByOrderData.ErpSupplierName = v.ErpSupplierName
reportByOrderData.HandlerId = v.HandlerId
reportByOrderData.HandlerName = v.HandlerName
reportByOrderData.MakerTime = v.MakerTime
//reportByOrderData.MakerTime = v.MakerTime
reportByOrderData.MakerId = v.MakerId
reportByOrderData.MakerName = v.MakerName
reportByOrderData.AuditorId = v.AuditorId
reportByOrderData.AuditTime = v.AuditTime
//reportByOrderData.AuditTime = v.AuditTime
reportByOrderData.AuditorName = v.AuditorName
reportByOrderData.State = v.State
reportByOrderData.Remark = v.Remark
if v.MakerTime != nil && v.MakerTime.IsZero() {
reportByOrderData.MakerTime = nil
} else {
reportByOrderData.MakerTime = v.MakerTime
}
if v.AuditTime != nil && v.AuditTime.IsZero() {
reportByOrderData.AuditTime = nil
} else {
reportByOrderData.AuditTime = v.AuditTime
}
reportByOrderData.CommodityData, nAmount, nCount, err = getOrderInventoryInfo(v.ID)
if err != nil {
return nil, err
@ -3230,7 +3355,7 @@ func getReportByCommodityFromCommodityOrCategory(req *ErpPurchaseReportByCommodi
var totalPurchaseData PurchaseData
var purchaseOrderDataList []ErpCommodityPurchaseOrderData
for orderId := range orderIdSet {
purchaseOrderData, err := getPurchaseOrderData(orderId)
purchaseOrderData, err := getPurchaseOrderData(orderId, req)
if err != nil {
return nil, err
}
@ -3288,11 +3413,27 @@ func getReportByCommodityFromCommodityOrCategory(req *ErpPurchaseReportByCommodi
}
// 查询采购订单信息
func getPurchaseOrderData(orderID uint32) (ErpCommodityPurchaseOrderData, error) {
func getPurchaseOrderData(orderID uint32, req *ErpPurchaseReportByCommodityReq) (ErpCommodityPurchaseOrderData, error) {
var purchaseOrderData ErpCommodityPurchaseOrderData
// 查询采购订单信息
var purchaseOrder ErpPurchaseOrder
err := orm.Eloquent.Table("erp_purchase_order").Where("id = ?", orderID).Find(&purchaseOrder).Error
qs := orm.Eloquent.Table("erp_purchase_order")
if len(req.ErpSupplierId) > 0 { // 供应商复选
var supplierIDs []uint32
for _, supplier := range req.ErpSupplierId {
supplierIDs = append(supplierIDs, supplier)
}
qs = qs.Where("erp_supplier_id IN (?)", supplierIDs)
}
if len(req.StoreId) > 0 { // 门店复选
var storeIDs []uint32
for _, store := range req.StoreId {
storeIDs = append(storeIDs, store)
}
qs = qs.Where("store_id IN (?)", storeIDs)
}
err := qs.Where("id = ?", orderID).Find(&purchaseOrder).Error
if err != nil {
return purchaseOrderData, err
}
@ -3304,6 +3445,7 @@ func getPurchaseOrderData(orderID uint32) (ErpCommodityPurchaseOrderData, error)
}
// 组合数据
purchaseOrderData.ErpPurchaseOrderId = purchaseOrder.ID
purchaseOrderData.SerialNumber = purchaseOrder.SerialNumber
purchaseOrderData.PurchaseType = purchaseOrder.PurchaseType
purchaseOrderData.StoreId = purchaseOrder.StoreId
@ -3312,13 +3454,24 @@ func getPurchaseOrderData(orderID uint32) (ErpCommodityPurchaseOrderData, error)
purchaseOrderData.ErpSupplierName = purchaseOrder.ErpSupplierName
purchaseOrderData.HandlerId = purchaseOrder.HandlerId
purchaseOrderData.HandlerName = purchaseOrder.HandlerName
purchaseOrderData.MakerTime = purchaseOrder.MakerTime
//purchaseOrderData.MakerTime = purchaseOrder.MakerTime
purchaseOrderData.MakerId = purchaseOrder.MakerId
purchaseOrderData.MakerName = purchaseOrder.MakerName
purchaseOrderData.AuditorId = purchaseOrder.AuditorId
purchaseOrderData.AuditTime = purchaseOrder.AuditTime
//purchaseOrderData.AuditTime = purchaseOrder.AuditTime
purchaseOrderData.AuditorName = purchaseOrder.AuditorName
if purchaseOrder.MakerTime != nil && purchaseOrder.MakerTime.IsZero() {
purchaseOrderData.MakerTime = nil
} else {
purchaseOrderData.MakerTime = purchaseOrder.MakerTime
}
if purchaseOrder.AuditTime != nil && purchaseOrder.AuditTime.IsZero() {
purchaseOrderData.AuditTime = nil
} else {
purchaseOrderData.AuditTime = purchaseOrder.AuditTime
}
purchaseOrderData.PlanCount = purchaseData.PlanCount
purchaseOrderData.PlanPrice = purchaseData.PlanPrice
purchaseOrderData.PlanAmount = purchaseData.PlanAmount
@ -3384,11 +3537,19 @@ func getReportByCommodityFromCommon(req *ErpPurchaseReportByCommodityReq) (*ErpP
if req.PurchaseType != "" { // 采购类型
qs = qs.Where("purchase_type=?", req.PurchaseType)
}
if req.StoreId != 0 { // 门店id
qs = qs.Where("store_id=?", req.StoreId)
if len(req.ErpSupplierId) > 0 { // 供应商复选
var supplierIDs []uint32
for _, supplier := range req.ErpSupplierId {
supplierIDs = append(supplierIDs, supplier)
}
qs = qs.Where("erp_supplier_id IN (?)", supplierIDs)
}
if req.ErpSupplierId != 0 { // 供应商id
qs = qs.Where("erp_supplier_id=?", req.ErpSupplierId)
if len(req.StoreId) > 0 { // 门店复选
var storeIDs []uint32
for _, store := range req.StoreId {
storeIDs = append(storeIDs, store)
}
qs = qs.Where("store_id IN (?)", storeIDs)
}
if req.HandlerId != 0 { // 经手人id
qs = qs.Where("handler_id=?", req.HandlerId)
@ -3495,20 +3656,21 @@ func getReportByCommodityFromCommon(req *ErpPurchaseReportByCommodityReq) (*ErpP
purchaseOrderData := ErpCommodityPurchaseOrderData{
CommonData{
SerialNumber: v.SerialNumber,
PurchaseType: v.PurchaseType,
StoreId: v.StoreId,
StoreName: v.StoreName,
ErpSupplierId: v.ErpSupplierId,
ErpSupplierName: v.ErpSupplierName,
HandlerId: v.HandlerId,
HandlerName: v.HandlerName,
MakerTime: v.MakerTime,
MakerId: v.MakerId,
MakerName: v.MakerName,
AuditorId: v.AuditorId,
AuditTime: v.AuditTime,
AuditorName: v.AuditorName,
ErpPurchaseOrderId: v.ErpPurchaseOrderId,
SerialNumber: v.SerialNumber,
PurchaseType: v.PurchaseType,
StoreId: v.StoreId,
StoreName: v.StoreName,
ErpSupplierId: v.ErpSupplierId,
ErpSupplierName: v.ErpSupplierName,
HandlerId: v.HandlerId,
HandlerName: v.HandlerName,
//MakerTime: v.MakerTime,
MakerId: v.MakerId,
MakerName: v.MakerName,
AuditorId: v.AuditorId,
//AuditTime: v.AuditTime,
AuditorName: v.AuditorName,
},
PurchaseData{
PlanCount: v.PlanCount,
@ -3521,6 +3683,19 @@ func getReportByCommodityFromCommon(req *ErpPurchaseReportByCommodityReq) (*ErpP
NonExecutionCount: v.NonExecutionCount,
},
}
if v.MakerTime != nil && v.MakerTime.IsZero() {
purchaseOrderData.MakerTime = nil
} else {
purchaseOrderData.MakerTime = v.MakerTime
}
if v.AuditTime != nil && v.AuditTime.IsZero() {
purchaseOrderData.AuditTime = nil
} else {
purchaseOrderData.AuditTime = v.AuditTime
}
reportData.OrderInfo = append(reportData.OrderInfo, purchaseOrderData)
}
@ -3596,6 +3771,7 @@ func getPurchaseOrderAndCommodityData(orderID, commodityId uint32) (ErpCommodity
}
// 组合数据
purchaseOrderData.ErpPurchaseOrderId = purchaseOrder.ID
purchaseOrderData.SerialNumber = purchaseOrder.SerialNumber
purchaseOrderData.PurchaseType = purchaseOrder.PurchaseType
purchaseOrderData.StoreId = purchaseOrder.StoreId
@ -3604,13 +3780,24 @@ func getPurchaseOrderAndCommodityData(orderID, commodityId uint32) (ErpCommodity
purchaseOrderData.ErpSupplierName = purchaseOrder.ErpSupplierName
purchaseOrderData.HandlerId = purchaseOrder.HandlerId
purchaseOrderData.HandlerName = purchaseOrder.HandlerName
purchaseOrderData.MakerTime = purchaseOrder.MakerTime
purchaseOrderData.MakerId = purchaseOrder.MakerId
purchaseOrderData.MakerName = purchaseOrder.MakerName
purchaseOrderData.AuditorId = purchaseOrder.AuditorId
purchaseOrderData.AuditTime = purchaseOrder.AuditTime
purchaseOrderData.AuditorName = purchaseOrder.AuditorName
if purchaseOrder.MakerTime != nil && purchaseOrder.MakerTime.IsZero() {
purchaseOrderData.MakerTime = nil
} else {
purchaseOrderData.MakerTime = purchaseOrder.MakerTime
}
if purchaseOrder.AuditTime != nil && purchaseOrder.AuditTime.IsZero() {
purchaseOrderData.AuditTime = nil
} else {
purchaseOrderData.AuditTime = purchaseOrder.AuditTime
}
purchaseOrderData.PlanCount = purchaseData.PlanCount
purchaseOrderData.PlanPrice = purchaseData.PlanPrice
purchaseOrderData.PlanAmount = purchaseData.PlanAmount
@ -3982,7 +4169,7 @@ func GetReportBySupplier(req *ErpPurchaseReportBySupplierReq) (*ErpPurchaseRepor
if req.PurchaseType != "" {
query = query.Where("erp_purchase_inventory.purchase_type = ?", req.PurchaseType)
}
if len(req.ErpCommodityName) != 0 {
if len(req.ErpCommodityName) > 0 {
var commodityNameList []string
for _, commodityName := range req.ErpCommodityName {
commodityNameList = append(commodityNameList, commodityName)
@ -3990,7 +4177,7 @@ func GetReportBySupplier(req *ErpPurchaseReportBySupplierReq) (*ErpPurchaseRepor
query = query.Where("erp_purchase_inventory.erp_commodity_name IN (?)", commodityNameList)
}
if len(req.ErpCategoryID) != 0 {
if len(req.ErpCategoryID) > 0 {
var erpCategoryIDs []uint32
for _, categoryID := range req.ErpCategoryID {
erpCategoryIDs = append(erpCategoryIDs, categoryID)
@ -3998,7 +4185,7 @@ func GetReportBySupplier(req *ErpPurchaseReportBySupplierReq) (*ErpPurchaseRepor
query = query.Where("erp_purchase_inventory.erp_category_id IN (?)", erpCategoryIDs)
}
if len(req.ErpSupplierId) != 0 {
if len(req.ErpSupplierId) > 0 {
var supplierIDs []uint32
for _, supplier := range req.ErpSupplierId {
supplierIDs = append(supplierIDs, supplier)
@ -4038,10 +4225,14 @@ func GetReportBySupplier(req *ErpPurchaseReportBySupplierReq) (*ErpPurchaseRepor
resp.Total = int(total)
// 分页查询
var err error
if req.IsExport == 1 { // 导出excel
query.Find(&resp.List)
err = query.Find(&resp.List).Error
} else {
query.Offset((req.PageIndex - 1) * req.PageSize).Limit(req.PageSize).Find(&resp.List)
err = query.Offset((req.PageIndex - 1) * req.PageSize).Limit(req.PageSize).Find(&resp.List).Error
}
if err != nil {
return nil, err
}
// 补充关联的供应商和店铺信息
@ -4187,28 +4378,30 @@ func GetReportDetail(req *ErpPurchaseReportDetailReq) (*ErpPurchaseReportDetailR
PageIndex: page + 1,
PageSize: req.PageSize,
List: make([]struct {
OrderSerialNumber string `json:"order_serial_number"`
PurchaseType string `json:"purchase_type"`
ExecuteTime *time.Time `json:"execute_time"`
StoreId uint32 `json:"store_id"`
StoreName string `json:"store_name"`
ErpSupplierId uint32 `json:"erp_supplier_id"`
ErpSupplierName string `json:"erp_supplier_name"`
ErpCommodityId uint32 `json:"erp_commodity_id"`
ErpCommodityName string `json:"erp_commodity_name"`
ErpCategoryID uint32 `json:"erp_category_id"`
ErpCategoryName string `json:"erp_category_name"`
IMEIType uint32 `json:"imei_type"`
IMEI string `json:"imei"`
Price float64 `json:"price"`
EmployeePrice float64 `json:"employee_price"`
RejectPrice float64 `json:"reject_price"`
DifferencePrice float64 `json:"difference_price"`
ErpPurchaseOrderId uint32 `json:"erp_purchase_order_id"` // 采购订单id
OrderSerialNumber string `json:"order_serial_number"`
PurchaseType string `json:"purchase_type"`
ExecuteTime *time.Time `json:"execute_time"`
StoreId uint32 `json:"store_id"`
StoreName string `json:"store_name"`
ErpSupplierId uint32 `json:"erp_supplier_id"`
ErpSupplierName string `json:"erp_supplier_name"`
ErpCommodityId uint32 `json:"erp_commodity_id"`
ErpCommodityName string `json:"erp_commodity_name"`
ErpCategoryID uint32 `json:"erp_category_id"`
ErpCategoryName string `json:"erp_category_name"`
IMEIType uint32 `json:"imei_type"`
IMEI string `json:"imei"`
Price float64 `json:"price"`
EmployeePrice float64 `json:"employee_price"`
RejectPrice float64 `json:"reject_price"`
DifferencePrice float64 `json:"difference_price"`
}, 0),
}
qs := orm.Eloquent.Debug().Table("erp_purchase_order").
Select("erp_purchase_order.serial_number as order_serial_number, "+
Select("erp_purchase_order.id as erp_purchase_order_id, "+
"erp_purchase_order.serial_number as order_serial_number, "+
"erp_purchase_order.purchase_type, "+
"erp_purchase_inventory.created_at as execute_time, "+
"erp_purchase_order.store_id, "+
@ -4229,26 +4422,35 @@ func GetReportDetail(req *ErpPurchaseReportDetailReq) (*ErpPurchaseReportDetailR
"WHEN erp_purchase_order.purchase_type = 'procure' THEN 0 "+
"WHEN erp_purchase_order.purchase_type = 'reject' THEN erp_purchase_inventory.implementation_price "+
"ELSE 0 END AS reject_price, "+
"erp_purchase_inventory.implementation_price as price, "+
"erp_purchase_inventory.employee_price, "+
"(erp_purchase_inventory.implementation_price - erp_purchase_inventory.employee_price) as difference_price").
Joins("JOIN erp_purchase_inventory ON erp_purchase_order.id = erp_purchase_inventory.erp_purchase_order_id").
Where("erp_purchase_order.state <> ?", 5) // 排除已终止的订单
// 创建一个新的查询对象,用于 count 查询
countQuery := orm.Eloquent.Debug().Table("erp_purchase_order").
Joins("JOIN erp_purchase_inventory ON erp_purchase_order.id = erp_purchase_inventory.erp_purchase_order_id").
Where("erp_purchase_order.state <> ?", 5) // 排除已终止的订单
if req.SerialNumber != "" {
qs = qs.Where("erp_purchase_order.serial_number = ?", req.SerialNumber)
countQuery = countQuery.Where("erp_purchase_order.serial_number = ?", req.SerialNumber)
}
if req.PurchaseType != "" {
qs = qs.Where("erp_purchase_order.purchase_type = ?", req.PurchaseType)
countQuery = countQuery.Where("erp_purchase_order.purchase_type = ?", req.PurchaseType)
}
if req.ErpCommodityName != "" {
qs = qs.Where("erp_purchase_inventory.erp_commodity_name LIKE ?", "%"+req.ErpCommodityName+"%")
countQuery = countQuery.Where("erp_purchase_inventory.erp_commodity_name LIKE ?", "%"+req.ErpCommodityName+"%")
}
if req.ErpCategoryID != 0 {
qs = qs.Where("erp_purchase_inventory.erp_category_id = ?", req.ErpCategoryID)
countQuery = countQuery.Where("erp_purchase_inventory.erp_category_id = ?", req.ErpCategoryID)
}
if req.ErpSupplierId != 0 {
qs = qs.Where("erp_purchase_order.erp_supplier_id = ?", req.ErpSupplierId)
countQuery = countQuery.Where("erp_purchase_order.erp_supplier_id = ?", req.ErpSupplierId)
}
if req.StartTime != "" { // 入/出库开始时间
parse, err := time.Parse(QueryTimeFormat, req.StartTime)
@ -4257,6 +4459,7 @@ func GetReportDetail(req *ErpPurchaseReportDetailReq) (*ErpPurchaseReportDetailR
return nil, err
}
qs = qs.Where("erp_purchase_inventory.created_at >= ?", parse)
countQuery = countQuery.Where("erp_purchase_inventory.created_at >= ?", parse)
}
if req.EndTime != "" { // 入/出库结束时间
parse, err := time.Parse(QueryTimeFormat, req.EndTime)
@ -4265,19 +4468,27 @@ func GetReportDetail(req *ErpPurchaseReportDetailReq) (*ErpPurchaseReportDetailR
return nil, err
}
qs = qs.Where("erp_purchase_inventory.created_at <= ?", parse)
countQuery = countQuery.Where("erp_purchase_inventory.created_at <= ?", parse)
}
if len(req.StoreList) > 0 {
if len(req.StoreId) > 0 {
var storeIDs []uint32
for _, store := range req.StoreList {
storeIDs = append(storeIDs, store.StoreID)
for _, store := range req.StoreId {
storeIDs = append(storeIDs, store)
}
qs = qs.Where("erp_purchase_order.store_id IN (?)", storeIDs)
countQuery = countQuery.Where("erp_purchase_order.store_id IN (?)", storeIDs)
}
var count int64
err := countQuery.Count(&count).Error
if err != nil {
logger.Errorf("GetReportDetail count err:", err)
return nil, err
}
es := qs
offset := (req.PageIndex - 1) * req.PageSize
err := qs.Order("erp_purchase_inventory.created_at desc").
err = qs.Order("erp_purchase_inventory.created_at desc").
Offset(offset).
Limit(req.PageSize).
Scan(&resp.List).Error
@ -4295,13 +4506,6 @@ func GetReportDetail(req *ErpPurchaseReportDetailReq) (*ErpPurchaseReportDetailR
}
}
var count int64
err = es.Count(&count).Error
if err != nil {
logger.Errorf("GetReportDetail count err:", err)
return nil, err
}
resp.Total = int(count)
resp.Price, resp.EmployeePrice, resp.RejectPrice, resp.DifferencePrice = calculatePrices(resp.List)
@ -4319,23 +4523,24 @@ func GetReportDetail(req *ErpPurchaseReportDetailReq) (*ErpPurchaseReportDetailR
// 计算价格信息
func calculatePrices(list []struct {
OrderSerialNumber string `json:"order_serial_number"`
PurchaseType string `json:"purchase_type"`
ExecuteTime *time.Time `json:"execute_time"`
StoreId uint32 `json:"store_id"`
StoreName string `json:"store_name"`
ErpSupplierId uint32 `json:"erp_supplier_id"`
ErpSupplierName string `json:"erp_supplier_name"`
ErpCommodityId uint32 `json:"erp_commodity_id"`
ErpCommodityName string `json:"erp_commodity_name"`
ErpCategoryID uint32 `json:"erp_category_id"`
ErpCategoryName string `json:"erp_category_name"`
IMEIType uint32 `json:"imei_type"`
IMEI string `json:"imei"`
Price float64 `json:"price"`
EmployeePrice float64 `json:"employee_price"`
RejectPrice float64 `json:"reject_price"`
DifferencePrice float64 `json:"difference_price"`
ErpPurchaseOrderId uint32 `json:"erp_purchase_order_id"` // 采购订单id
OrderSerialNumber string `json:"order_serial_number"`
PurchaseType string `json:"purchase_type"`
ExecuteTime *time.Time `json:"execute_time"`
StoreId uint32 `json:"store_id"`
StoreName string `json:"store_name"`
ErpSupplierId uint32 `json:"erp_supplier_id"`
ErpSupplierName string `json:"erp_supplier_name"`
ErpCommodityId uint32 `json:"erp_commodity_id"`
ErpCommodityName string `json:"erp_commodity_name"`
ErpCategoryID uint32 `json:"erp_category_id"`
ErpCategoryName string `json:"erp_category_name"`
IMEIType uint32 `json:"imei_type"`
IMEI string `json:"imei"`
Price float64 `json:"price"`
EmployeePrice float64 `json:"employee_price"`
RejectPrice float64 `json:"reject_price"`
DifferencePrice float64 `json:"difference_price"`
}) (price, employeePrice, rejectPrice, differencePrice float64) {
for _, item := range list {
price += item.Price

View File

@ -2433,7 +2433,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.ErpPurchaseInventoryReq"
"$ref": "#/definitions/models.ErpPurchaseExecuteReq"
}
}
],
@ -6707,6 +6707,10 @@ const docTemplate = `{
"description": "已执行数量",
"type": "integer"
},
"erp_purchase_order_id": {
"description": "采购订单id",
"type": "integer"
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"
@ -7082,8 +7086,12 @@ const docTemplate = `{
"description": "退货单价",
"type": "number"
},
"rejected_remark": {
"description": "退货备注",
"type": "string"
},
"remark": {
"description": "备注",
"description": "销售备注",
"type": "string"
},
"retail_price": {
@ -7855,33 +7863,26 @@ const docTemplate = `{
"models.ErpPurchaseCreateReq": {
"type": "object",
"required": [
"account_holder",
"bank_account",
"delivery_address",
"delivery_time",
"erp_cashier_id",
"erp_purchase_commodity",
"erp_supplier_id",
"handler_id",
"opening_bank",
"purchase_type",
"store_id"
"purchase_type"
],
"properties": {
"account_holder": {
"description": "收款人",
"description": "收款人:入库必传",
"type": "string"
},
"bank_account": {
"description": "银行卡号",
"description": "银行卡号:入库必传",
"type": "string"
},
"delivery_address": {
"description": "交货地址",
"description": "交货地址:入库必传",
"type": "string"
},
"delivery_time": {
"description": "交货日期",
"description": "交货日期:入库必传",
"type": "string"
},
"erp_cashier_id": {
@ -7896,7 +7897,7 @@ const docTemplate = `{
}
},
"erp_supplier_id": {
"description": "供应商id",
"description": "供应商id:入库必传",
"type": "integer"
},
"handler_id": {
@ -7908,11 +7909,11 @@ const docTemplate = `{
"type": "string"
},
"opening_bank": {
"description": "开户行",
"description": "开户行:入库必传",
"type": "string"
},
"purchase_order_sn": {
"description": "采购退货订单号",
"description": "采购退货订单号:出库必传",
"type": "string"
},
"purchase_type": {
@ -7924,7 +7925,7 @@ const docTemplate = `{
"type": "string"
},
"store_id": {
"description": "门店id",
"description": "门店id:入库必传",
"type": "integer"
}
}
@ -7956,32 +7957,27 @@ const docTemplate = `{
"models.ErpPurchaseEditReq": {
"type": "object",
"required": [
"bank_account",
"delivery_address",
"delivery_time",
"erp_cashier_id",
"erp_purchase_commodity",
"erp_purchase_order_id",
"erp_supplier_id",
"opening_bank",
"purchase_type",
"store_id"
"handler_id",
"purchase_type"
],
"properties": {
"account_holder": {
"description": "收款人",
"description": "收款人:入库必传",
"type": "string"
},
"bank_account": {
"description": "银行卡号",
"description": "银行卡号:入库必传",
"type": "string"
},
"delivery_address": {
"description": "交货地址",
"description": "交货地址:入库必传",
"type": "string"
},
"delivery_time": {
"description": "交货日期",
"description": "交货日期:入库必传",
"type": "string"
},
"erp_cashier_id": {
@ -8000,7 +7996,7 @@ const docTemplate = `{
"type": "integer"
},
"erp_supplier_id": {
"description": "供应商id",
"description": "供应商id:入库必传",
"type": "integer"
},
"handler_id": {
@ -8012,11 +8008,11 @@ const docTemplate = `{
"type": "string"
},
"opening_bank": {
"description": "开户行",
"description": "开户行:入库必传",
"type": "string"
},
"purchase_order_sn": {
"description": "采购退货订单号",
"description": "采购退货订单号:出库必传",
"type": "string"
},
"purchase_type": {
@ -8028,11 +8024,36 @@ const docTemplate = `{
"type": "string"
},
"store_id": {
"description": "门店id",
"description": "门店id:入库必传",
"type": "integer"
}
}
},
"models.ErpPurchaseExecuteReq": {
"type": "object",
"required": [
"erp_purchase_order_id",
"inventories",
"purchase_type"
],
"properties": {
"erp_purchase_order_id": {
"description": "采购订单id",
"type": "integer"
},
"inventories": {
"description": "采购入库执行信息",
"type": "array",
"items": {
"$ref": "#/definitions/models.ErpPurchaseInventory"
}
},
"purchase_type": {
"description": "采购类型:procure-采购 reject-退货",
"type": "string"
}
}
},
"models.ErpPurchaseExecuteResp": {
"type": "object",
"properties": {
@ -8114,6 +8135,14 @@ const docTemplate = `{
"description": "执行单价",
"type": "number"
},
"inventory_id": {
"description": "最近入库人id",
"type": "integer"
},
"inventory_name": {
"description": "最近入库人名称",
"type": "string"
},
"purchase_type": {
"description": "采购类型:procure-采购 reject-退货",
"type": "string"
@ -8129,6 +8158,8 @@ const docTemplate = `{
"required": [
"erp_purchase_order_id",
"inventories",
"inventory_id",
"inventory_name",
"purchase_type"
],
"properties": {
@ -8143,6 +8174,14 @@ const docTemplate = `{
"$ref": "#/definitions/models.ErpPurchaseInventory"
}
},
"inventory_id": {
"description": "最近入库人id",
"type": "integer"
},
"inventory_name": {
"description": "最近入库人名称",
"type": "string"
},
"purchase_type": {
"description": "采购类型:procure-采购 reject-退货",
"type": "string"
@ -8218,6 +8257,14 @@ const docTemplate = `{
"description": "数据库记录编号",
"type": "integer"
},
"inventory_id": {
"description": "最近入库人id",
"type": "integer"
},
"inventory_name": {
"description": "最近入库人名称",
"type": "string"
},
"maker_id": {
"description": "制单人id",
"type": "integer"
@ -8238,9 +8285,9 @@ const docTemplate = `{
"description": "类型:procure-采购 reject-退货",
"type": "string"
},
"rejected_purchase_order_id": {
"description": "退货采购订单id",
"type": "integer"
"rejected_serial_number": {
"description": "退货的采购订单单据编号",
"type": "string"
},
"remark": {
"description": "备注",
@ -8251,7 +8298,7 @@ const docTemplate = `{
"type": "string"
},
"state": {
"description": "1-待审核 2-待入库 3-待退货 4-已完成 5-已终止",
"description": "1-待审核 2-待入库 3-待退货 4-已完成 5-已终止 6-入库中 7-退货中",
"type": "integer"
},
"store_id": {
@ -8283,6 +8330,10 @@ const docTemplate = `{
"description": "供应商id",
"type": "integer"
},
"handler_id": {
"description": "经手人id",
"type": "integer"
},
"pageIndex": {
"description": "页码",
"type": "integer"
@ -8353,7 +8404,10 @@ const docTemplate = `{
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"
"type": "array",
"items": {
"type": "integer"
}
},
"handler_id": {
"description": "经手人id",
@ -8385,7 +8439,10 @@ const docTemplate = `{
},
"store_id": {
"description": "门店id",
"type": "integer"
"type": "array",
"items": {
"type": "integer"
}
}
}
},
@ -8474,7 +8531,10 @@ const docTemplate = `{
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"
"type": "array",
"items": {
"type": "integer"
}
},
"handler_id": {
"description": "经手人id",
@ -8506,7 +8566,10 @@ const docTemplate = `{
},
"store_id": {
"description": "门店id",
"type": "integer"
"type": "array",
"items": {
"type": "integer"
}
}
}
},
@ -8748,21 +8811,11 @@ const docTemplate = `{
"description": "入/出库,开始时间",
"type": "string"
},
"store_list": {
"description": "门店复选",
"store_id": {
"description": "门店id",
"type": "array",
"items": {
"type": "object",
"properties": {
"store_id": {
"description": "门店id",
"type": "integer"
},
"store_name": {
"description": "门店名称",
"type": "string"
}
}
"type": "integer"
}
}
}
@ -8812,6 +8865,10 @@ const docTemplate = `{
"description": "商品名称",
"type": "string"
},
"erp_purchase_order_id": {
"description": "采购订单id",
"type": "integer"
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"
@ -9045,7 +9102,7 @@ const docTemplate = `{
"type": "integer"
},
"original_sn": {
"description": "首次入库订单编号",
"description": "首次入库订单编号(单据编号)",
"type": "string"
},
"remark": {
@ -10797,6 +10854,10 @@ const docTemplate = `{
"description": "已执行数量",
"type": "integer"
},
"erp_purchase_order_id": {
"description": "采购订单id",
"type": "integer"
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"

View File

@ -2422,7 +2422,7 @@
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/models.ErpPurchaseInventoryReq"
"$ref": "#/definitions/models.ErpPurchaseExecuteReq"
}
}
],
@ -6696,6 +6696,10 @@
"description": "已执行数量",
"type": "integer"
},
"erp_purchase_order_id": {
"description": "采购订单id",
"type": "integer"
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"
@ -7071,8 +7075,12 @@
"description": "退货单价",
"type": "number"
},
"rejected_remark": {
"description": "退货备注",
"type": "string"
},
"remark": {
"description": "备注",
"description": "销售备注",
"type": "string"
},
"retail_price": {
@ -7844,33 +7852,26 @@
"models.ErpPurchaseCreateReq": {
"type": "object",
"required": [
"account_holder",
"bank_account",
"delivery_address",
"delivery_time",
"erp_cashier_id",
"erp_purchase_commodity",
"erp_supplier_id",
"handler_id",
"opening_bank",
"purchase_type",
"store_id"
"purchase_type"
],
"properties": {
"account_holder": {
"description": "收款人",
"description": "收款人:入库必传",
"type": "string"
},
"bank_account": {
"description": "银行卡号",
"description": "银行卡号:入库必传",
"type": "string"
},
"delivery_address": {
"description": "交货地址",
"description": "交货地址:入库必传",
"type": "string"
},
"delivery_time": {
"description": "交货日期",
"description": "交货日期:入库必传",
"type": "string"
},
"erp_cashier_id": {
@ -7885,7 +7886,7 @@
}
},
"erp_supplier_id": {
"description": "供应商id",
"description": "供应商id:入库必传",
"type": "integer"
},
"handler_id": {
@ -7897,11 +7898,11 @@
"type": "string"
},
"opening_bank": {
"description": "开户行",
"description": "开户行:入库必传",
"type": "string"
},
"purchase_order_sn": {
"description": "采购退货订单号",
"description": "采购退货订单号:出库必传",
"type": "string"
},
"purchase_type": {
@ -7913,7 +7914,7 @@
"type": "string"
},
"store_id": {
"description": "门店id",
"description": "门店id:入库必传",
"type": "integer"
}
}
@ -7945,32 +7946,27 @@
"models.ErpPurchaseEditReq": {
"type": "object",
"required": [
"bank_account",
"delivery_address",
"delivery_time",
"erp_cashier_id",
"erp_purchase_commodity",
"erp_purchase_order_id",
"erp_supplier_id",
"opening_bank",
"purchase_type",
"store_id"
"handler_id",
"purchase_type"
],
"properties": {
"account_holder": {
"description": "收款人",
"description": "收款人:入库必传",
"type": "string"
},
"bank_account": {
"description": "银行卡号",
"description": "银行卡号:入库必传",
"type": "string"
},
"delivery_address": {
"description": "交货地址",
"description": "交货地址:入库必传",
"type": "string"
},
"delivery_time": {
"description": "交货日期",
"description": "交货日期:入库必传",
"type": "string"
},
"erp_cashier_id": {
@ -7989,7 +7985,7 @@
"type": "integer"
},
"erp_supplier_id": {
"description": "供应商id",
"description": "供应商id:入库必传",
"type": "integer"
},
"handler_id": {
@ -8001,11 +7997,11 @@
"type": "string"
},
"opening_bank": {
"description": "开户行",
"description": "开户行:入库必传",
"type": "string"
},
"purchase_order_sn": {
"description": "采购退货订单号",
"description": "采购退货订单号:出库必传",
"type": "string"
},
"purchase_type": {
@ -8017,11 +8013,36 @@
"type": "string"
},
"store_id": {
"description": "门店id",
"description": "门店id:入库必传",
"type": "integer"
}
}
},
"models.ErpPurchaseExecuteReq": {
"type": "object",
"required": [
"erp_purchase_order_id",
"inventories",
"purchase_type"
],
"properties": {
"erp_purchase_order_id": {
"description": "采购订单id",
"type": "integer"
},
"inventories": {
"description": "采购入库执行信息",
"type": "array",
"items": {
"$ref": "#/definitions/models.ErpPurchaseInventory"
}
},
"purchase_type": {
"description": "采购类型:procure-采购 reject-退货",
"type": "string"
}
}
},
"models.ErpPurchaseExecuteResp": {
"type": "object",
"properties": {
@ -8103,6 +8124,14 @@
"description": "执行单价",
"type": "number"
},
"inventory_id": {
"description": "最近入库人id",
"type": "integer"
},
"inventory_name": {
"description": "最近入库人名称",
"type": "string"
},
"purchase_type": {
"description": "采购类型:procure-采购 reject-退货",
"type": "string"
@ -8118,6 +8147,8 @@
"required": [
"erp_purchase_order_id",
"inventories",
"inventory_id",
"inventory_name",
"purchase_type"
],
"properties": {
@ -8132,6 +8163,14 @@
"$ref": "#/definitions/models.ErpPurchaseInventory"
}
},
"inventory_id": {
"description": "最近入库人id",
"type": "integer"
},
"inventory_name": {
"description": "最近入库人名称",
"type": "string"
},
"purchase_type": {
"description": "采购类型:procure-采购 reject-退货",
"type": "string"
@ -8207,6 +8246,14 @@
"description": "数据库记录编号",
"type": "integer"
},
"inventory_id": {
"description": "最近入库人id",
"type": "integer"
},
"inventory_name": {
"description": "最近入库人名称",
"type": "string"
},
"maker_id": {
"description": "制单人id",
"type": "integer"
@ -8227,9 +8274,9 @@
"description": "类型:procure-采购 reject-退货",
"type": "string"
},
"rejected_purchase_order_id": {
"description": "退货采购订单id",
"type": "integer"
"rejected_serial_number": {
"description": "退货的采购订单单据编号",
"type": "string"
},
"remark": {
"description": "备注",
@ -8240,7 +8287,7 @@
"type": "string"
},
"state": {
"description": "1-待审核 2-待入库 3-待退货 4-已完成 5-已终止",
"description": "1-待审核 2-待入库 3-待退货 4-已完成 5-已终止 6-入库中 7-退货中",
"type": "integer"
},
"store_id": {
@ -8272,6 +8319,10 @@
"description": "供应商id",
"type": "integer"
},
"handler_id": {
"description": "经手人id",
"type": "integer"
},
"pageIndex": {
"description": "页码",
"type": "integer"
@ -8342,7 +8393,10 @@
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"
"type": "array",
"items": {
"type": "integer"
}
},
"handler_id": {
"description": "经手人id",
@ -8374,7 +8428,10 @@
},
"store_id": {
"description": "门店id",
"type": "integer"
"type": "array",
"items": {
"type": "integer"
}
}
}
},
@ -8463,7 +8520,10 @@
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"
"type": "array",
"items": {
"type": "integer"
}
},
"handler_id": {
"description": "经手人id",
@ -8495,7 +8555,10 @@
},
"store_id": {
"description": "门店id",
"type": "integer"
"type": "array",
"items": {
"type": "integer"
}
}
}
},
@ -8737,21 +8800,11 @@
"description": "入/出库,开始时间",
"type": "string"
},
"store_list": {
"description": "门店复选",
"store_id": {
"description": "门店id",
"type": "array",
"items": {
"type": "object",
"properties": {
"store_id": {
"description": "门店id",
"type": "integer"
},
"store_name": {
"description": "门店名称",
"type": "string"
}
}
"type": "integer"
}
}
}
@ -8801,6 +8854,10 @@
"description": "商品名称",
"type": "string"
},
"erp_purchase_order_id": {
"description": "采购订单id",
"type": "integer"
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"
@ -9034,7 +9091,7 @@
"type": "integer"
},
"original_sn": {
"description": "首次入库订单编号",
"description": "首次入库订单编号(单据编号)",
"type": "string"
},
"remark": {
@ -10786,6 +10843,10 @@
"description": "已执行数量",
"type": "integer"
},
"erp_purchase_order_id": {
"description": "采购订单id",
"type": "integer"
},
"erp_supplier_id": {
"description": "供应商id",
"type": "integer"

View File

@ -1267,6 +1267,9 @@ definitions:
count:
description: 已执行数量
type: integer
erp_purchase_order_id:
description: 采购订单id
type: integer
erp_supplier_id:
description: 供应商id
type: integer
@ -1544,8 +1547,11 @@ definitions:
rejected_price:
description: 退货单价
type: number
rejected_remark:
description: 退货备注
type: string
remark:
description: 备注
description: 销售备注
type: string
retail_price:
description: 指导零售价
@ -2105,16 +2111,16 @@ definitions:
models.ErpPurchaseCreateReq:
properties:
account_holder:
description: 收款人
description: 收款人:入库必传
type: string
bank_account:
description: 银行卡号
description: 银行卡号:入库必传
type: string
delivery_address:
description: 交货地址
description: 交货地址:入库必传
type: string
delivery_time:
description: 交货日期
description: 交货日期:入库必传
type: string
erp_cashier_id:
description: 付款方式
@ -2125,7 +2131,7 @@ definitions:
$ref: '#/definitions/models.ErpPurchaseCommodity'
type: array
erp_supplier_id:
description: 供应商id
description: 供应商id:入库必传
type: integer
handler_id:
description: 经手人id
@ -2134,10 +2140,10 @@ definitions:
description: 经手人名称
type: string
opening_bank:
description: 开户行
description: 开户行:入库必传
type: string
purchase_order_sn:
description: 采购退货订单号
description: 采购退货订单号:出库必传
type: string
purchase_type:
description: 采购类型procure-采购 reject-退货
@ -2146,20 +2152,13 @@ definitions:
description: 备注
type: string
store_id:
description: 门店id
description: 门店id:入库必传
type: integer
required:
- account_holder
- bank_account
- delivery_address
- delivery_time
- erp_cashier_id
- erp_purchase_commodity
- erp_supplier_id
- handler_id
- opening_bank
- purchase_type
- store_id
type: object
models.ErpPurchaseDeleteReq:
properties:
@ -2180,16 +2179,16 @@ definitions:
models.ErpPurchaseEditReq:
properties:
account_holder:
description: 收款人
description: 收款人:入库必传
type: string
bank_account:
description: 银行卡号
description: 银行卡号:入库必传
type: string
delivery_address:
description: 交货地址
description: 交货地址:入库必传
type: string
delivery_time:
description: 交货日期
description: 交货日期:入库必传
type: string
erp_cashier_id:
description: 付款方式
@ -2203,7 +2202,7 @@ definitions:
description: 采购订单id
type: integer
erp_supplier_id:
description: 供应商id
description: 供应商id:入库必传
type: integer
handler_id:
description: 经手人id
@ -2212,10 +2211,10 @@ definitions:
description: 经手人名称
type: string
opening_bank:
description: 开户行
description: 开户行:入库必传
type: string
purchase_order_sn:
description: 采购退货订单号
description: 采购退货订单号:出库必传
type: string
purchase_type:
description: 采购类型procure-采购 reject-退货
@ -2224,19 +2223,32 @@ definitions:
description: 备注
type: string
store_id:
description: 门店id
description: 门店id:入库必传
type: integer
required:
- bank_account
- delivery_address
- delivery_time
- erp_cashier_id
- erp_purchase_commodity
- erp_purchase_order_id
- erp_supplier_id
- opening_bank
- handler_id
- purchase_type
type: object
models.ErpPurchaseExecuteReq:
properties:
erp_purchase_order_id:
description: 采购订单id
type: integer
inventories:
description: 采购入库执行信息
items:
$ref: '#/definitions/models.ErpPurchaseInventory'
type: array
purchase_type:
description: 采购类型:procure-采购 reject-退货
type: string
required:
- erp_purchase_order_id
- inventories
- purchase_type
- store_id
type: object
models.ErpPurchaseExecuteResp:
properties:
@ -2295,6 +2307,12 @@ definitions:
implementation_price:
description: 执行单价
type: number
inventory_id:
description: 最近入库人id
type: integer
inventory_name:
description: 最近入库人名称
type: string
purchase_type:
description: 采购类型:procure-采购 reject-退货
type: string
@ -2314,12 +2332,20 @@ definitions:
items:
$ref: '#/definitions/models.ErpPurchaseInventory'
type: array
inventory_id:
description: 最近入库人id
type: integer
inventory_name:
description: 最近入库人名称
type: string
purchase_type:
description: 采购类型:procure-采购 reject-退货
type: string
required:
- erp_purchase_order_id
- inventories
- inventory_id
- inventory_name
- purchase_type
type: object
models.ErpPurchaseOrder:
@ -2373,6 +2399,12 @@ definitions:
id:
description: 数据库记录编号
type: integer
inventory_id:
description: 最近入库人id
type: integer
inventory_name:
description: 最近入库人名称
type: string
maker_id:
description: 制单人id
type: integer
@ -2388,9 +2420,9 @@ definitions:
purchase_type:
description: 类型:procure-采购 reject-退货
type: string
rejected_purchase_order_id:
description: 退货采购订单id
type: integer
rejected_serial_number:
description: 退货的采购订单单据编号
type: string
remark:
description: 备注
type: string
@ -2398,7 +2430,7 @@ definitions:
description: 单据编号
type: string
state:
description: 1-待审核 2-待入库 3-待退货 4-已完成 5-已终止
description: 1-待审核 2-待入库 3-待退货 4-已完成 5-已终止 6-入库中 7-退货中
type: integer
store_id:
description: 门店id
@ -2421,6 +2453,9 @@ definitions:
erp_supplier_id:
description: 供应商id
type: integer
handler_id:
description: 经手人id
type: integer
pageIndex:
description: 页码
type: integer
@ -2472,7 +2507,9 @@ definitions:
type: string
erp_supplier_id:
description: 供应商id
type: integer
items:
type: integer
type: array
handler_id:
description: 经手人id
type: integer
@ -2496,7 +2533,9 @@ definitions:
type: integer
store_id:
description: 门店id
type: integer
items:
type: integer
type: array
type: object
models.ErpPurchaseReportByCommodityResp:
properties:
@ -2561,7 +2600,9 @@ definitions:
type: string
erp_supplier_id:
description: 供应商id
type: integer
items:
type: integer
type: array
handler_id:
description: 经手人id
type: integer
@ -2585,7 +2626,9 @@ definitions:
type: integer
store_id:
description: 门店id
type: integer
items:
type: integer
type: array
type: object
models.ErpPurchaseReportByOrderResp:
properties:
@ -2761,17 +2804,10 @@ definitions:
startTime:
description: 入/出库,开始时间
type: string
store_list:
description: 门店复选
store_id:
description: 门店id
items:
properties:
store_id:
description: 门店id
type: integer
store_name:
description: 门店名称
type: string
type: object
type: integer
type: array
type: object
models.ErpPurchaseReportDetailResp:
@ -2807,6 +2843,9 @@ definitions:
erp_commodity_name:
description: 商品名称
type: string
erp_purchase_order_id:
description: 采购订单id
type: integer
erp_supplier_id:
description: 供应商id
type: integer
@ -2979,7 +3018,7 @@ definitions:
description: 最低零售价
type: integer
original_sn:
description: 首次入库订单编号
description: 首次入库订单编号(单据编号)
type: string
remark:
description: 备注
@ -4236,6 +4275,9 @@ definitions:
count:
description: 已执行数量
type: integer
erp_purchase_order_id:
description: 采购订单id
type: integer
erp_supplier_id:
description: 供应商id
type: integer
@ -7020,7 +7062,7 @@ paths:
name: request
required: true
schema:
$ref: '#/definitions/models.ErpPurchaseInventoryReq'
$ref: '#/definitions/models.ErpPurchaseExecuteReq'
produces:
- application/json
responses: