You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
678 lines
16 KiB
678 lines
16 KiB
'use strict';
|
|
|
|
module.exports = app => {
|
|
const mongoose = app.mongoose;
|
|
const Schema = mongoose.Schema;
|
|
|
|
const ChanpinSchema = new Schema({
|
|
// 创建时间
|
|
create_at: {
|
|
type: Date,
|
|
default: Date.now
|
|
},
|
|
// 更新时间
|
|
update_at: {
|
|
type: Date,
|
|
default: Date.now
|
|
},
|
|
// 代码
|
|
daima: {
|
|
type: String,
|
|
default: "",
|
|
index: true,
|
|
unique: true
|
|
},
|
|
// 品名
|
|
pinming: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 规格型号
|
|
guigexinghao: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 助记符
|
|
zhujifu: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 计量单位
|
|
jiliangdanwei: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 条形码
|
|
tiaoxingma: {
|
|
type: String,
|
|
default: "",
|
|
index: true,
|
|
},
|
|
// 箱装量
|
|
xiangzhuangliang: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱装单位
|
|
xiangzhuangdanwei: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 最大单位箱装量
|
|
zuidadanweixiangzhuangliang: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大箱装单位
|
|
zuidaxiangzhuangdanwei: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 产地
|
|
chandi: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 主供应商
|
|
zhugongyingshang: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 经销商
|
|
jingxiaoshang: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 所属类别
|
|
suoshuleibie: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 最高采购价
|
|
zuigaocaigoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 商超价1
|
|
shangchaojia1: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 现金价
|
|
xianjinjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 二批流通价
|
|
erpiliutongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 商超价
|
|
shangchaojia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 现金零售价
|
|
xianjinlingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 商超零售价
|
|
shangchaolingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 特通价
|
|
tetongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 分公司价
|
|
fengongsijia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 零食店价
|
|
shangchaolingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 初中高中价
|
|
chuzhonggaozhongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 车销价
|
|
chexiaojia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 发货价11
|
|
shangchaolingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 发货价12
|
|
fahuojia12: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 进货税率%
|
|
jinhuoshuilv: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 发货税率%
|
|
fahuoshuilv: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 包装
|
|
baozhuang: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 毛利率
|
|
maolilv: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 主存放仓库
|
|
zhucunfangcangku: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 有保质期
|
|
youbaozhiqi: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 保质期(天)
|
|
baozhiqi: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 有效?
|
|
youxiao: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 采销类型
|
|
caixiaoleixing: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 商品类型
|
|
shangpinleixing: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 备注
|
|
beizhu: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 单位重量
|
|
danweizhongliang: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 品牌
|
|
pinpai: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 单位体积(立方米)
|
|
danweitiji: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 箱重量(kg)
|
|
xiangzhongliang: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 最大单位重量(kg)
|
|
zuidadanweizhongliang: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 箱体积(立方米)
|
|
xiangtiji: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 最大单位体积(立方米)
|
|
zuidadanweitiji: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 描述
|
|
miaoshu: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 仓库出入库时,以‘箱装单位’为依准
|
|
yixiangzhuangdanweiweiyizhun: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 打印‘流通随行单’
|
|
liutongsuixingdan: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 发货产品
|
|
fahuochanpin: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 标准核算价
|
|
biaozhunhesuanjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 建议零售价
|
|
jianyilingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最近一次采购价
|
|
zuijinyicicaigoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最近一次销售价
|
|
zuijinyicixiaoshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱条形码
|
|
xiangtiaoxingma: {
|
|
type: String,
|
|
default: "",
|
|
index: true,
|
|
},
|
|
// 最大箱装条码
|
|
zuidaxiangzhuangtiaoma: {
|
|
type: String,
|
|
default: "",
|
|
index: true,
|
|
},
|
|
// 接口编码1
|
|
jiekoubianma1: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 接口编码2
|
|
jiekoubianma2: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 接口编码3
|
|
jiekoubianma3: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 发货产品基数
|
|
fahuochanpinjishu: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 采购最少数量
|
|
caigouzuishaoshuliang: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 采购倍数
|
|
caigoubeishu: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 采购滚动基数
|
|
caigougundongjishu: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最小单位产品
|
|
zuixiaodanweichanpin: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 最小单位倍数
|
|
zuixiaodanweibeishu: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 产品归类
|
|
chanpinguilei: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 产品归类II
|
|
chanpinguilei2: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 箱单位最高采购价
|
|
xiangdanweizuigaocaigoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位商超价1
|
|
xiangdanweishangchaojia1: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位现金价
|
|
xiangdanweixianjinjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位二批流通价
|
|
xiangdanweierpiliutongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位商超价
|
|
xiangdanweishangchaojia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位现金零售价
|
|
xiangdanweixianjinlingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位商超零售价
|
|
xiangdanweishangchaolingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位特通价
|
|
xiangdanweitetongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位分公司价
|
|
xiangdanweifengongsijia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位零食店价
|
|
xiangdanweilingshidianjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位初中高中价
|
|
xiangdanweichuzhonggaozhongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位车销价
|
|
xiangdanweichexiaojia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位发货价11
|
|
xiangdanweifahuojia11: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 箱单位发货价12
|
|
xiangdanweifahuojia12: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位最高采购价
|
|
zuidadanweizuigaocaigoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位商超价1
|
|
zuidadanweishangchaojia1: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位现金价
|
|
zuidadanweixianjinjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位二批流通价
|
|
zuidadanweierpiliutongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位商超价
|
|
zuidadanweishangchaojia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位现金零售价
|
|
zuidadanweixianjinlingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位商超零售价
|
|
zuidadanweishangchaolingshoujia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位特通价
|
|
zuidadanweitetongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位分公司价
|
|
zuidadanweifengongsijia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位零食店价
|
|
zuidadanweilingshidianjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位初中高中价
|
|
zuidadanweichuzhonggaozhongjia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位车销价
|
|
zuidadanweichexiaojia: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位发货价11
|
|
zuidadanweifahuojia11: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单位发货价12
|
|
zuidadanweifahuojia12: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 默认单据单位
|
|
morendanjudanwei: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 不封箱单位
|
|
bufengxiangdanwei: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 仓库提成类别
|
|
cangkutichengleibie: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 强制批次管理
|
|
qiangzhipiciguanli: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 立库存放区域
|
|
likucunfangquyu: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 建档日期
|
|
jiandangriqi: {
|
|
type: Date,
|
|
default: ""
|
|
},
|
|
// 出货是否加工
|
|
chuhuoshifujiagong: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 保质期天数需大于
|
|
baozhiqitianshuxudayu: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 单品重量误差
|
|
danpinzhongliangwucha: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大单品重量误差百分比%
|
|
zuidadanpinzhongliangwuchabaifenbi: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 最大箱重量误差
|
|
zuidaxiangzhongliangwucha: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 价格调整时间
|
|
jiagediaozhengshijian: {
|
|
type: Date,
|
|
default: ""
|
|
},
|
|
// 录入人
|
|
lururen: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 允收天数
|
|
yunshoutianshu: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
// 强制序列号管理
|
|
qiangzhixuliehaoguanli: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 国标条形码
|
|
guobiaotiaoxingma: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
// 长(cm)
|
|
chang: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 宽(cm)
|
|
kuan: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 高(cm)
|
|
gao: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(4)) }
|
|
},
|
|
// 每托盘件数
|
|
meituopanjianshu: {
|
|
type: Number,
|
|
default: 0,
|
|
set: (val) => { return Number(Number(val).toFixed(2)) }
|
|
},
|
|
//数据是否删除
|
|
isExit: {
|
|
type: Number,
|
|
default: 1,
|
|
index: true
|
|
},
|
|
}, { strict: false });
|
|
return mongoose.model('Chanpin', ChanpinSchema);
|
|
};
|
|
|