package domain

import (
	"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/util"
)

type AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto struct {
	/*
	   可指定库位，可空（按照需求附值）     */
	CabinetCode *string `json:"cabinet_code,omitempty" `

	/*
	   采购单位     */
	Unit *string `json:"unit,omitempty" `

	/*
	   库存单位     */
	InventoryUnit *string `json:"inventory_unit,omitempty" `

	/*
	   规格     */
	Spec *string `json:"spec,omitempty" `

	/*
	   部门code，该商品所属的部门编码     */
	DeptCode *string `json:"dept_code,omitempty" `

	/*
	   商品 价格单位分     */
	Price *string `json:"price,omitempty" `

	/*
	   库存单位     */
	PlanPackageQuantity *string `json:"plan_package_quantity,omitempty" `

	/*
	   数量     */
	Count *string `json:"count,omitempty" `

	/*
	   生产日期： 1、 基础规则：生产日期不得超过或等于今日； 2、 商品未设置保质期管理的，生产日期为可选项，UMS存储但不校验禁收时限： a) 单据传输中提供了生产日期的，按单据生产日期通过收货； b) 单据传输中未提供生产日期的，不存储生产日期通过收货； 3、 商品已设置保质期管理的，并且已经设置了禁收时限的： a) 单据传输中提供了生产日期的，校验是否符合禁收时限，通过收货，不通过整单不收货； b) 单据传输中未提供生产日期的，按生产日期＝入库时间－禁收时限，通过收货； 4、 商品已设置保质期管理的，但未设置禁收时限的： a) 单据传输中提供了生产日期的，按单据生产日期，通过收货； b) 单据传输中未提供生产日期的，按生产日期＝入库时间－1（天），通过收货。     */
	ProduceDate *util.LocalTime `json:"produce_date,omitempty" `

	/*
	   商品条码     */
	BarCode *string `json:"bar_code,omitempty" `

	/*
	   商品code，盒马系统中的商品编码     */
	ItemCode *string `json:"item_code,omitempty" `
}

func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetCabinetCode(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.CabinetCode = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetUnit(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.Unit = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetInventoryUnit(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.InventoryUnit = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetSpec(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.Spec = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetDeptCode(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.DeptCode = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetPrice(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.Price = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetPlanPackageQuantity(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.PlanPackageQuantity = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetCount(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.Count = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetProduceDate(v util.LocalTime) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.ProduceDate = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetBarCode(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.BarCode = &v
	return s
}
func (s *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto) SetItemCode(v string) *AlibabaWdkUmsInventoryPublishErpArrivalNoticeDetailDto {
	s.ItemCode = &v
	return s
}
