/**
 * Created by zhang on 2019/3/18.
 */
import mongoose from "mongoose";

let Schema = mongoose.Schema;

var rationAssItemSchema = mongoose.Schema({
    name: String,
    assistID: Number,
    assistCode: String,
    stdValue: Number,
    actualValue:Number,
    stepValue: String,
    decimal: Number,
    carryBit: String,
    minValue: String,
    maxValue: String,
    paramName:String,//参数名称
    param:String,//参数
    thirdRationCode:String,//第三定额
    isAdjust:Number,//0不调整，1调整
    groupList:[Schema.Types.Mixed],//当有分组的时候用这个
    assRation:Schema.Types.Mixed//存放对应的定额，材料计算时用到
}, { _id: false });

var ration_glj = new Schema({
    ID:{type: String},
    GLJID:Number,
    repositoryId:Number,
    rationID:String,
    projectGLJID:Number,
    name:String,
    code:String,
    //原始的编码
    original_code: {type: String},
    rcode:String,
    //新结构，计录替换前的工料机信息，对于混凝土，替换，计算等问题处理,替换时保存旧数据的5大项信息
    mIndexObj: Schema.Types.Mixed,
    specs:String,
    unit:String,
    shortName:String,
    type:Number,
    // 机型
    model: Number,
    // 调整系数ID
    adjCoe: Number,
    quantity:String,
    customQuantity:String,
    rationItemQuantity:String,
    tenderQuantity:String,//调整后消耗量
    createType: {type: String,default:'normal'},//normal、add、replace  正常、添加工料机、替换工料机
    from:{type: String,default:'std'}//std, cpt  来自标准工料机库、补充工料机库
},{versionKey:false,_id: false});

let ration_schema = new Schema({
    ID: {type: String},
    projectID: Number,
    code: String,
    name: String,
    unit: String,
    quantity: String,
    feeType:String,
    caption:String,
    libID:Number,
    stdID:Number,
    from:String,
    rationAssList: [rationAssItemSchema]
},{versionKey:false,_id: false});


let freightSchema = {
    ID:{type:String,index: true},
    unit_price_file_id: Number,
    connect_key: {type: String, index: true},// 关联项目工料机的key 不能关联id，因为单价文件导入别的项目后项目工料机id不同
    start:String,//起讫地点
    conveyance:String,//运输工具
    unitFreight:String,//单位运价
    kmDistance:String,//km运距
    unitLoadingFee:String,//装卸费单价
    loadingTimes:String,//装卸次数
    otherFee:String,//其它费用
    freightIncreaseRate:String,//运价增加率
    heightFee:String,//高原增加费
    weightCoe:String,//加权系数
    rations:[ration_schema],
    ration_gljs:[ration_glj],
    calcType:String,//计算方式
    exp:String,//计算式
    materialType:String//材料类型
};
mongoose.model("freight_calc", new Schema(freightSchema, {versionKey: false, collection: "freight_calc"}));


let originalSchema = {
    ID:{type:String,index: true},
    unit_price_file_id: Number,
    connect_key: {type: String, index: true},// 关联项目工料机的key 不能关联id，因为单价文件导入别的项目后项目工料机id不同
    supplyLocation:String,//供应地点
    supplyPrice:String,//供应价
    coe:String,//加权系数
    heightFee:String,//高原增加费
    rations:[ration_schema],
    ration_gljs:[ration_glj]
};

mongoose.model("original_calc", new Schema(originalSchema, {versionKey: false, collection: "original_calc"}));


let userfreightSchema = mongoose.Schema({
    ID:String,
    unit_price_file_id: Number,
    connect_key: String,// 关联项目工料机的key 不能关联id，因为单价文件导入别的项目后项目工料机id不同
    start:String,//起讫地点
    conveyance:String,//运输工具
    unitFreight:String,//单位运价
    kmDistance:String,//km运距
    unitLoadingFee:String,//装卸费单价
    loadingTimes:String,//装卸次数
    otherFee:String,//其它费用
    freightIncreaseRate:String,//运价增加率
    weightCoe:String,//加权系数
    rations:[ration_schema],
    ration_gljs:[ration_glj],
    calcType:String,//计算方式
    materialType:String//材料类型
}, { _id: false });

let user_freights = {
    ID:{type:String,index: true},
    userID:{type:String,index: true},
    compilationID:{type:String,index: true},
    rootProjectID:Number,
    freight:userfreightSchema
};
mongoose.model("user_freights", new Schema(user_freights, {versionKey: false, collection: "user_freights"}));