/*Added for Open array discount Values*/
Ext.define('OpenArrayDisVal', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	},{
		name : 'product',
		type : 'string'
	},{
		name : 'region',
		type : 'string'
	}],
	hasMany :[{
		model : 'OpenArrayDiscQtyPrice',
		name : 'discounts'
	}]
});
Ext.define('OpenArrayDiscQtyPrice', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'qty',
		type : 'string'
	},
	{
		name : 'discval',
		type : 'int'
	}],
	belongsTo: 'OpenArrayDisVal'
	
});

/* Added for Newly Fixed open array panel Accessories Kit on 09/02/2015*/
Ext.define('FixedOpenArrayAccessories', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'Application',
		type : 'string'
	} ,
	{
		name : 'part number',
		type : 'string'
	} ,
	{
		name : 'size',
		type : 'int'
	}]
});
/* Added for Custom Plating miRNA OA*/
Ext.define('CustomPlatingmiRNAOA', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	} ,
	{
		name : 'Type',
		type : 'string'
	} ,
	{
		name : 'Description',
		type : 'string'
	},
	{
		name : 'Assays Plate',
		type : 'string'
	},
	{
		name : 'Samples Plate',
		type : 'string'
	},
	{
		name : 'Min Order',
		type : 'string'
	},
	{
		name : 'InstrumentType',
		type : 'string'
	}],
	hasMany :[{ 
		model : 'Area',
		name : 'regions'
	}]
});
Ext.define('CustomPlating', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'Assay',
		type : 'string'
	} ,
	{
		name : 'PlateType',
		type : 'string'
	} ,
	{
		name : 'Assay Format',
		type : 'string'
	},
	{
		name : 'Format',
		type : 'int'
	}],
	hasMany :[{
		model : 'QtyPrice',
		name : 'QtyPrice'
	}]
});
Ext.define('QtyPrice', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'Qty',
		type : 'string'
	}],
	hasMany : {
		model : 'Area',
		name : 'Regions'
	},
	belongsTo: 'CustomPlating'
	
});
/*
Ext.define('INVAssayPlate', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'INVAssay',
		type : 'string'
	} ,
	{
		name : 'Format',
		type : 'int'
	}],
	hasMany : {
		model : 'CusAssayQtyPr',
		name : 'qtyprice'
	},
	belongsTo: 'CustomPlating'
	
});
Ext.define('CusAssayQtyPr', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'qty',
		type : 'int'
	},
	{
		name : 'price',
		type : 'int'
	}],
	associations: [
        { type: 'belongsTo', model: 'INVAssayPlate' },
		{ type: 'belongsTo', model: 'CusAssayPlate' }
    ]
});*/
/**
 * 
 */
 Ext.define('maxTargetList', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'Application',
		type : 'string'
	}, {
		name : 'ProductName',
		type : 'string'
	}, {
		name : 'Species',
		type : 'string'
	}, {
		name : 'MaximumTarget',
		type : 'int'
	}]
});
Ext.define('unitQtyModel', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'unit',
		type : 'string'
	}, {
		name : 'minQty',
		type : 'string'
	}, {
		name : 'type',
		type : 'string'
	}]
});
Ext.define('Region', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'region',
		type : 'string'
	} ],
	associations : [ {
		type : 'hasMany',
		model : 'Price',
		name : 'prices'
	}, {
		type : 'hasMany',
		model : 'Discount',
		name : 'discounts'
	}, {
		type : 'belongsTo',
		model : 'PlatesCards'
	}, {
		type : 'belongsTo',
		model : 'Tubes'
	} ]
});

Ext.define('ProductURLs', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productURL',
		type : 'string'
	}, {
		name : 'partNumber',
		type : 'string'
	}, {
		name : 'productName',
		type : 'string'
	}, {
		name : 'type',
		type : 'string'
	} ]
});
Ext.define('Price', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'countrycode',
		type : 'string'
	}, {
		name : 'value',
		type : 'int'
	} ],
	belongsTo : 'Region'

});
Ext.define('PriceList', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	} ],
	hasMany : {
		model : 'Area',
		name : 'regions'
	}
});

Ext.define('OpenArrayRuntimes', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'type',
		type : 'string'
	}, {
		name : 'noofplatesperrun',
		type : 'int'
	}, , {
		name : 'sampleloadingtime',
		type : 'int'
	}, , {
		name : 'samplepreprocessingtime',
		type : 'int'
	}, , {
		name : 'runtimemin',
		type : 'int'
	}, , {
		name : 'totalmin',
		type : 'int'
	} ]
});

Ext.define('Area', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'price',
		type : 'string'
	}, {
		name : 'region',
		type : 'string'
	} ],
	associations : [ 
	{
		type : 'belongsTo',
		model : 'PriceList'
	} , {
		type : 'belongsTo',
		model : 'QtyPrice'
	} ]
});

Ext.define('Discount', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'volume',
		type : 'int'
	}, {
		name : 'value',
		type : 'int'
	} ],
	belongsTo : 'Region'

});

Ext.define('PlatesCards', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'description',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'producttype',
		type : 'string'
	}, {
		name : 'sample',
		type : 'int'
	}, {
		name : 'assay',
		type : 'int'
	}, {
		name : 'rxn',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});

Ext.define('QuantStudio', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'number of Assays or Plate',
		type : 'string'
	}, {
		name : 'number of Samples or Plate',
		type : 'string'
	}, {
		name : 'min',
		type : 'int'
	}, {
		name : 'Min Order',
		type : 'string'
	}, {
		name : 'Pricing or Min Order',
		type : 'float'
	} ]
});

Ext.define('OpenArray', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'formatno',
		type : 'int'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'min',
		type : 'int'
	}, {
		name : 'sampleplates',
		type : 'float'
	}, {
		name : 'mmxperunit',
		type : 'float'
	}, {
		name : 'tipsperunit',
		type : 'float'
	}, {
		name : 'samples',
		type : 'float'
	}, {
		name : 'effectivesamplesperunit',
		type : 'float'
	}, {
		name : 'mastermix',
		type : 'string'
	}, {
		name : 'dataperunit',
		type : 'int'
	}, {
		name : 'minsamplesperorder',
		type : 'int'
	}, {
		name : 'primerspoolsperunit',
		type : 'float'
	}, {
		name : 'preampmmxperunit',
		type : 'float'
	}, {
		name : 'rtkitperunit',
		type : 'float'
	}, {
		name : 'accessorieskitperunit',
		type : 'float'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});

Ext.define('OpenArrayFixed', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'formatno',
		type : 'int'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'min',
		type : 'int'
	}, {
		name : 'Species',
		type : 'string'
	},{
		name : 'sampleplates',
		type : 'float'
	},{
		name : 'numberofsamples',
		type : 'int'
	},{
		name : 'totalreactions',
		type : 'int'
	}, {
		name : 'numberofreactions',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});

Ext.define('TaqManArrayPlatesFixed', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'formatno',
		type : 'int'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'min',
		type : 'int'
	}, {
		name : 'Species',
		type : 'string'
	}, {
		name : 'Type',
		type : 'string'
	},{
		name : 'sampleplates',
		type : 'float'
	},{
		name : 'numberofsamples',
		type : 'int'
	},{
		name : 'totalreactions',
		type : 'int'
	}, {
		name : 'numberofreactions',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});

Ext.define('Accessories', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'product',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'listprice',
		type : 'int'
	}, {
		name : 'min',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});

Ext.define('TssTable', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'product',
		type : 'string'
	} ],
	hasMany : {
		type : 'hasMany',
		model : 'Discount',
		name : 'discounts'
	}
});

Ext.define('ManagerTable', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'product',
		type : 'string'
	} ],
	hasMany : {
		type : 'hasMany',
		model : 'Discount',
		name : 'discounts'
	}
});

Ext.define('TssTableMirna', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'product',
		type : 'string'
	} ],
	hasMany : {
		type : 'hasMany',
		model : 'Discount',
		name : 'discounts'
	}
});

Ext.define('ManagerTableMirna', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'product',
		type : 'string'
	} ],
	hasMany : {
		type : 'hasMany',
		model : 'Discount',
		name : 'discounts'
	}
});

Ext.define('ManagerTableDigitalPcr', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'product',
		type : 'string'
	} ],
	hasMany : {
		type : 'hasMany',
		model : 'Discount',
		name : 'discounts'
	}
});

Ext.define('TssTableDigitalPcr', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'product',
		type : 'string'
	} ],
	hasMany : {
		type : 'hasMany',
		model : 'Discount',
		name : 'discounts'
	}
});

Ext.define('Tubes', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'numberofreactions',
		type : 'int'
	}, {
		name : '96-wellnumberofreactions',
		type : 'int'
	}, {
		name : '384-wellnumberofreactions',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});
Ext.define('Copy', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'numberofreactions',
		type : 'int'
	}, {
		name : '96-wellnumberofreactions',
		type : 'int'
	}, {
		name : '384-wellnumberofreactions',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});
Ext.define('Plusrna', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'numberofreactions',
		type : 'int'
	}, {
		name : '96-wellnumberofreactions',
		type : 'int'
	}, {
		name : '384-wellnumberofreactions',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});
Ext.define('MutationDetection', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'numberofreactions',
		type : 'int'
	}, {
		name : '96-wellnumberofreactions',
		type : 'int'
	}, {
		name : '384-wellnumberofreactions',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});
Ext.define('Copyrefassay', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'concatenate',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'numberofreactions',
		type : 'int'
	}, {
		name : '96-wellnumberofreactions',
		type : 'int'
	}, {
		name : '384-wellnumberofreactions',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});
Ext.define('GenoTypeTubes', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'product type',
		type : 'string'
	}, {
		name : 'subtype',
		type : 'string'
	}, {
		name : 'species',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'min',
		type : 'int'
	}, {
		name : 'no of targets',
		type : 'int'
	}, {
		name : 'no of samples',
		type : 'int'
	}, {
		name : 'no of items in part',
		type : 'int'
	}, {
		name : 'no of reactions',
		type : 'int'
	}, {
		name : 'no of reactions in 96-well tube',
		type : 'int'
	}, {
		name : 'no of reactions in 384-well tube',
		type : 'int'
	}, {
		name : 'master mix needed per unit for 96-well',
		type : 'int'
	}, {
		name : 'master mix needed per unit for 384-well',
		type : 'int'
	}, {
		name : 'master mix needed per unit',
		type : 'int'
	}, {
		name : 'mastermix volume perreaction for 96-well',
		type : 'float'
	}, {
		name : 'mastermix volume perreaction for 384-well',
		type : 'float'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'open array tips per unit',
		type : 'float'
	}, {
		name : 'open array sample plates per unit',
		type : 'float'
	} ]
});

Ext.define('Mirnaassay', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'productname',
		type : 'string'
	}, {
		name : 'producttype',
		type : 'string'
	}, {
		name : 'subtype',
		type : 'string'
	}, {
		name : 'species',
		type : 'string'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'min',
		type : 'int'
	}, {
		name : 'nooftargets',
		type : 'int'
	}, {
		name : 'noofsamplespercard',
		type : 'int'
	}, {
		name : 'noofitemsinpart',
		type : 'int'
	}, {
		name : 'noofreactionsperunit',
		type : 'int'
	}, {
		name : 'noofreactonsintube(96-well format)',
		type : 'int'
	}, {
		name : 'noofreactonsintube(384-well format)',
		type : 'int'
	}, {
		name : 'volumeperreaction(96-well format)',
		type : 'float'
	}, {
		name : 'volumeperreaction(384-well format)',
		type : 'float'
	}, {
		name : 'mastermixneededperunit(96-well format)',
		type : 'float'
	}, {
		name : 'mastermixneededperunit(384-well format)',
		type : 'float'
	}, {
		name : 'mastermixneededperunit',
		type : 'float'
	}, {
		name : 'openarraytipsperunit',
		type : 'float'
	}, {
		name : 'openarraysampleplatesperunit',
		type : 'float'
	}, {
		name : 'accessorieskitperunit',
		type : 'float'
	}, {
		name : 'primerpoolsperunit',
		type : 'float'
	}, {
		name : 'rtkitperunit',
		type : 'float'
	}, {
		name : 'preampmmxperunit',
		type : 'float'
	} ]
});

Ext.define('MirnaAccessories', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'type',
		type : 'string'
	}, {
		name : 'assaytype',
		type : 'string'
	}, {
		name : 'price',
		type : 'int'
	}, {
		name : 'noofitemsinpack',
		type : 'int'
	} ]
});

Ext.define('MirnaMasterMix', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'assaytype',
		type : 'string'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'volume',
		type : 'int'
	} ]
});

Ext.define('Copymastermix', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'assaytype',
		type : 'string'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'volume',
		type : 'int'
	} ]
});

Ext.define('MirnaPreAmp', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'type',
		type : 'string'
	}, {
		name : 'assaytype',
		type : 'string'
	}, {
		name : 'species',
		type : 'string'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'reactions',
		type : 'int'
	} ]
});

Ext.define('MirnaRT', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'type',
		type : 'string'
	}, {
		name : 'assaytype',
		type : 'string'
	}, {
		name : 'species',
		type : 'string'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'reactions',
		type : 'int'
	} ]
});

Ext.define('TacTapHelper', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'nooftargets',
		type : 'int'
	}, {
		name : 'tacformat',
		type : 'string'
	}, {
		name : 'numberofsamplespercard',
		type : 'int'
	}, {
		name : 'numberoftacreplicates',
		type : 'int'
	}, {
		name : 'tacname',
		type : 'string'
	}, {
		name : 'tapformat',
		type : 'string'
	}, {
		name : 'numberofsamplesperplate',
		type : 'float'
	}, {
		name : 'numberoftapreplicates',
		type : 'float'
	}, {
		name : 'tapname',
		type : 'string'
	} ]
});

Ext.define('MasterMix', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'product',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'quantity',
		type : 'int'
	}, {
		name : 'volume',
		type : 'int'
	} ],
	hasMany : {
		model : 'Region',
		name : 'regions'
	}
});

Ext.define('GenoMasterMix', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'assaytype',
		type : 'string'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'volume',
		type : 'int'
	} ]
});

/* Added for Tubes MM combination on 22-08-2014*/
Ext.define('TubesMasterMix', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'assaytype',
		type : 'string'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'volume',
		type : 'int'
	} ]
});

Ext.define('CNVMasterMix', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'assaytype',
		type : 'string'
	}, {
		name : 'price',
		type : 'float'
	}, {
		name : 'volume',
		type : 'int'
	} ]
});

Ext.define('ExperimentInfo', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'type',
		type : 'string'
	}, {
		name : 'method',
		type : 'string'
	}, {
		name : 'equipment',
		type : 'string'
	}, {
		name : 'species',
		type : 'string'
	}, {
		name : 'throughput',
		type : 'string'
	}, {
		name : 'nooftargets',
		type : 'int'
	}, {
		name : 'noofsamples',
		type : 'int'
	}, {
		name : 'noofreplicates',
		type : 'int'
	}, {
		name : 'noofsubarrays',
		type : 'int'
	} ],
	proxy : {
		type : 'localstorage',
		id : 'exp-info'
	}
});

Ext.define('DetailsPageInfo', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'id',
		type : 'integer'
	},{
		name : 'product',
		type : 'string'
	}, {
		name : 'type',
		type : 'string'
	}, {
		name : 'noofreactions',
		type : 'float'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'quantity',
		type : 'int'
	}, {
		name : 'unitprice',
		type : 'float'
	}, {
		name : 'volumediscount2',
		type : 'float'
	}, {
		name : 'discount',
		type : 'float'
	}, {
		name : 'priceperreaction',
		type : 'float'
	}, {
		name : 'pricepersample',
		type : 'float'
	}, {
		name : 'netprice',
		type : 'float'
	}, {
		name : 'volumediscount',
		type : 'int'
	}, {
		name : 'fnName',
		type : 'string'
	}, {
		name : 'formattype',
		type : 'string'
	}],
	proxy : {
		type : 'localstorage',
		id : 'detailspage-info'
	}		
});



Ext.define('OutputList', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'pno',
		type : 'int'
	}, {
		name : 'title',
		type : 'string'
	}, {
		name : 'format',
		type : 'string'
	}, {
		name : 'rtproduct',
		type : 'string'
	}, {
		name : 'rtproduct1',
		type : 'string'
	}, {
		name : 'preampproduct',
		type : 'string'
	}, {
		name : 'rtpartnumber',
		type : 'string'
	}, {
		name : 'rtnoofunits',
		type : 'int'
	}, {
		name : 'rtpartnumber',
		type : 'int'
	}, {
		name : 'rtcostperunit',
		type : 'float'
	}, {
		name : 'rtcostpersample',
		type : 'float'
	}, {
		name : 'rtcostpersample',
		type : 'float'
	}, {
		name : 'totalrtcost',
		type : 'float'
	}, , {
		name : 'rtpartnumber1',
		type : 'string'
	}, {
		name : 'rtnoofunits1',
		type : 'int'
	}, {
		name : 'rtpartnumber1',
		type : 'int'
	}, {
		name : 'rtcostperunit1',
		type : 'float'
	}, {
		name : 'rtcostpersample1',
		type : 'float'
	}, {
		name : 'rtcostpersample1',
		type : 'float'
	}, {
		name : 'totalrtcost1',
		type : 'float'
	}, {
		name : 'noofunits',
		type : 'int'
	}, {
		name : 'noofreactions',
		type : 'float'
	}, {
		name : 'mastermix',
		type : 'string'
	}, {
		name : 'mastermix1',
		type : 'string'
	}, {
		name : 'mnoofunits',
		type : 'int'
	}, {
		name : 'mnoofunits1',
		type : 'int'
	}, {
		name : 'totalcost',
		type : 'float'
	}, {
		name : 'volumediscount',
		type : 'int'
	}, {
		name : 'mvolumediscount',
		type : 'int'
	}, {
		name : 'assayscost',
		type : 'float'
	}, {
		name : 'assayscostperunit',
		type : 'float'
	}, {
		name : 'assayscostwithvoldisc',
		type : 'float'
	}, {
		name : 'mastermixvol',
		type : 'float'
	}, {
		name : 'mastermixcostperunit',
		type : 'float'
	}, {
		name : 'mastermixcostperunit1',
		type : 'float'
	}, {
		name : 'mastermixcostwithvoldisc',
		type : 'float'
	}, {
		name : 'mastermixcostpredisc',
		type : 'float'
	}, {
		name : 'mastermixcostpredisc1',
		type : 'float'
	}, {
		name : 'mastermixcost',
		type : 'float'
	}, {
		name : 'mastermixcost1',
		type : 'float'
	}, {
		name : 'reorderingcost',
		type : 'float'
	}, {
		name : 'additionalmastermix',
		type : 'int'
	}, {
		name : 'additionalmastermixcost',
		type : 'float'
	}, {
		name : 'additionallabourcost',
		type : 'float'
	}, {
		name : 'optimizedcost',
		type : 'float'
	}, {
		name : 'noofhours',
		type : 'int'
	}, {
		name : 'rtcostperreaction',
		type : 'float'
	}, {
		name : 'rtcostperreaction1',
		type : 'float'
	}, {
		name : 'preampcostperreaction',
		type : 'float'
	}, {
		name : 'assaycostperreaction',
		type : 'float'
	}, {
		name : 'mastermixcostperreaction',
		type : 'float'
	}, {
		name : 'mastermixcostperreaction1',
		type : 'float'
	}, {
		name : 'accessoriescostperreaction',
		type : 'float'
	}, {
		name : 'optimizationcostperreaction',
		type : 'float'
	}, {
		name : 'totalcostperreaction',
		type : 'float'
	}, {
		name : 'producturl',
		type : 'string'
	}, {
		name : 'openarray384wellsampleplatescost',
		type : 'float'
	}, {
		name : 'openarrayaccufillsystemtipscost',
		type : 'float'
	}, {
		name : 'openarrayaccufillsystemtips10packcost',
		type : 'float'
	}, {
		name : 'openarray384wellsampleplatesunits',
		type : 'int'
	}, {
		name : 'openarrayaccufillsystemtips10packunits',
		type : 'int'
	}, {
		name : 'openarrayaccufillsystemtipsunits',
		type : 'int'
	}, {
		name : 'openarrayrealtimepcraccessorieskitunits',
		type : 'int'
	}, {
		name : 'openarrayrealtimepcraccessorieskitcost',
		type : 'float'
	}, {
		name : 'megaplexprimerpoolshumanunits',
		type : 'int'
	}, {
		name : 'megaplexprimerpoolshumancost',
		type : 'float'
	}, {
		name : 'accessoriescost',
		type : 'float'
	}, {
		name : 'assaycostpersample',
		type : 'float'
	}, {
		name : 'rtcostpersample',
		type : 'float'
	}, {
		name : 'preampcostpersample',
		type : 'float'
	}, {
		name : 'accessoriescostpersample',
		type : 'float'
	}, {
		name : 'mastermixdisc',
		type : 'float'
	}, {
		name : 'accessoriesdisc',
		type : 'float'
	}, {
		name : 'mmxcostpersample',
		type : 'float'
	}, {
		name : 'mmxcostpersample1',
		type : 'float'
	}, {
		name : 'totalcostpredisc',
		type : 'float'
	}, {
		name : 'totaldiscount',
		type : 'float'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'accessory1partnumber',
		type : 'string'
	}, {
		name : 'accessory2partnumber',
		type : 'string'
	}, {
		name : 'accessory3partnumber',
		type : 'string'
	}, {
		name : 'mastermixpartnumber',
		type : 'string'
	}, {
		name : 'mastermixpartnumber1',
		type : 'string'
	}, {
		name : 'rtprimerpools',
		type : 'string'
	}, {
		name : 'rtprimerpoolsnoofunits',
		type : 'int'
	}, {
		name : 'rtprimerpoolpartnumber',
		type : 'string'
	}, {
		name : 'rtprimerpoolspriceperunit',
		type : 'float'
	}, {
		name : 'totalrtprimerpoolspricecost',
		type : 'float'
	}, {
		name : 'preampprimerpools',
		type : 'string'
	}, {
		name : 'preampprimerpoolsnoofunits',
		type : 'int'
	}, {
		name : 'preampprimerpoolpartnumber',
		type : 'string'
	}, {
		name : 'preampprimerpoolspriceperunit',
		type : 'float'
	}, {
		name : 'totalpreampprimerpoolspricecost',
		type : 'float'
	}, {
		name : 'preampprimerpoolsreaction',
		type : 'float'
	},{
		name : 'preampprimerpoolspricepersample',
		type : 'float'
	},{
		name : 'type',
		type : 'string'
	}, {
		name : 'min',
		type : 'int'
	}, {
		name : 'ismin',
		type : 'int'
	}, {
		name : 'oneunit',
		type : 'int'
	},{
		name: 'reqnoofunits',
		type: 'int'	
	
	},{
		name : 'digitalchips',
		type : 'string'
	}, {
		name : 'digitalchipspartnumber',
		type : 'string'
	}, {
		name : 'digitalchipsnoofunits',
		type : 'int'
	}, {
		name : 'digitalchipspriceperunit',
		type : 'float'
	}, {
		name : 'digitalchipscostperreaction',
		type : 'float'
	}, {
		name : 'digitalchipspersample',
		type : 'float'
	} , {
		name : 'digitalchipscostwithdisc',
		type : 'float'
	},{
		name : 'totaldigitalchipscost',
		type : 'float'
	},{
		name : 'multiplexnoofreactions',
		type : 'float'
	},{
		name : 'isMultiplex',
		type : 'boolean'
	},{
		name : 'uvproduct',
		type : 'string'
	}, {
		name : 'uvpartno',
		type : 'string'
	}, {
		name : 'uvchipsnoofunits',
		type : 'int'
	}, {
		name : 'uvchipscostperunit',
		type : 'float'
	}, {
		name : 'UvChipsCostPerReaction',
		type : 'float'
	}, {
		name : 'uvCostPerSample',
		type : 'float'
	} , {
		name : 'uvcostwithvoldisc',
		type : 'float'
	},{
		name : 'uvchipscost',
		type : 'float'
	},{
		name : 'noofuvrxns',
		type : 'float'
	},{
		name : 'uvproduct1',
		type : 'string'
	},{
		name : 'uvchipsnoofunits1',
		type : 'int'
	},{
		name : 'uvchipscostperunit1',
		type : 'float'
	}, {
		name : 'UvChipsCostPerReaction1',
		type : 'float'
	}, {
		name : 'uvCostPerSample1',
		type : 'float'
	}, {
		name : 'uvcostwithvoldisc1',
		type : 'float'
	}, {
		name : 'fnName',
		type : 'string'
	}, {
		name : 'imageType',
		type : 'string'
	}],
	proxy : {
		type : 'localstorage',
		id : 'exp-output'
	}
});


Ext.define('listOfInstrument', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'InstrumentID',
		type : 'string'
	}, {
		name : 'InstrumentName',
		type : 'string'
	}, {
		name : 'Throughput',
		type : 'string'
	}, {
		name : 'ProductOptions',
		type : 'string'
	}]
});


Ext.define('CustommiRNAPreAmp', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'productname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'price',
		type : 'int'
	}, {
		name : 'unit',
		type : 'string'
	}, {
		name : 'preampformat',
		type : 'string'
	}, {
		name : 'specie',
		type : 'string'
	}]
});
Ext.define('listOfInstruments', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'InstrumentID',
		type : 'string'
	}],
	hasMany : {
		model : 'Types',
		name : 'types'
	}
});

Ext.define('Types', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'type',
		type : 'string'
	}]
});
//Added on Jan 23rd-2014
Ext.define('PgxInstruExtraction', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'samples',
		type : 'string'
	}, {
		name : 'process',
		type : 'string'
	} ],
	hasMany : {
		model : 'PgxconsumablesProducts',
		name : 'magmaxconsumables'
	},
	hasMany : {
		model : 'PgxinstrumentProducts',
		name : 'magmaxinstrument'
	},
	hasMany : {
		model : 'PgxreagentsProducts',
		name : 'magmaxreagents'
	}
});
//Added on Jan 23rd-2014
Ext.define('PgxconsumablesProducts', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'wellsamples',
		type : 'string'
	}, {
		name : 'produtname',
		type : 'string'
	}, {
		name : 'listprice',
		type : 'string'
	}, {
		name : 'basedonprotocol',
		type : 'string'
	},{
		name : 'noofsamples',
		type : 'string'
	},{
		name : 'noofreagents',
		type : 'string'
	}],
	associations : [ {
		type : 'belongsTo',
		model : 'PgxInstruExtraction'
	} ]
});
Ext.define('PgxinstrumentProducts', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'wellsamples',
		type : 'string'
	}, {
		name : 'produtname',
		type : 'string'
	}, {
		name : 'listprice',
		type : 'string'
	}, {
		name : 'basedonprotocol',
		type : 'string'
	}, {
		name : 'type',
		type : 'string'
	} ],
	associations : [ {
		type : 'belongsTo',
		model : 'PgxInstruExtraction'
	} ]
});
Ext.define('PgxreagentsProducts', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'wellsamples',
		type : 'string'
	}, {
		name : 'produtname',
		type : 'string'
	}, {
		name : 'listprice',
		type : 'string'
	}, {
		name : 'basedonprotocol',
		type : 'string'
	} ],
	associations : [ {
		type : 'belongsTo',
		model : 'PgxInstruExtraction'
	} ]
});

// Added for PGx Training 01-04-2014
Ext.define('PgxTraining', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'title',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	},{
		name : 'qty',
		type : 'int'
	}, {
		name : 'unitprice',
		type : 'string'
	},{
		name : 'discount',
		type : 'string'
	}, {
		name : 'unitsellprice',
		type : 'string'
	}, {
		name : 'totalsellprice',
		type : 'string'
	} ]
});

// Added for PGx Installation instrument 02-04-2014
Ext.define('PgxInstallInstrument', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'instrumenttype',
		type : 'string'
	}, {
		name : 'format',
		type : 'string'
	},{
		name : 'type',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	},{
		name : 'listprice',
		type : 'string'
	}, {
		name : 'description',
		type : 'string'
	} ]
});

// Added for PGx Installation instrument 07-04-2014
Ext.define('PgxService', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'instrument',
		type : 'string'
	}, {
		name : 'servicetype',
		type : 'string'
	},{
		name : 'service',
		type : 'string'
	}, {
		name : 'partno',
		type : 'string'
	},{
		name : 'price',
		type : 'string'
	}]
});

// Added for PGx SNP instrument 15-04-2014
Ext.define('PgxSnpInstrument', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'instrumenttype',
		type : 'string'
	}, {
		name : 'format',
		type : 'string'
	},{
		name : 'instrumentname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	},{
		name : 'listprice',
		type : 'string'
	}]
});

// Added for PGx CNV instrument 15-04-2014
Ext.define('PgxCnvInstrument', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'instrumenttype',
		type : 'string'
	}, {
		name : 'format',
		type : 'string'
	},{
		name : 'instrumentname',
		type : 'string'
	}, {
		name : 'partnumber',
		type : 'string'
	},{
		name : 'listprice',
		type : 'string'
	}]
});

/*
//Added on Jan 23rd-2014
Ext.define('PgxInstruExtraction', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'samples',
		type : 'string'
	}, {
		name : 'process',
		type : 'string'
	} ],
	hasMany : {
		model : 'PgxInstruProducts',
		name : 'produts'
	}
});

Ext.define('PgxOutputInstruExtraction', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'samples',
		type : 'string'
	}, {
		name : 'process',
		type : 'string'
	} ],
	hasMany : {
		model : 'PgxOutputInstruProducts',
		name : 'produts'
	}
});
//Added on Jan 24rd-2014
Ext.define('PgxOutputInstruProducts', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'wellsamples',
		type : 'string'
	}, {
		name : 'produtname',
		type : 'string'
	}, {
		name : 'listprice',
		type : 'string'
	}, {
		name : 'basedonprotocol',
		type : 'string'
	} ],
	associations : [ {
		type : 'belongsTo',
		model : 'PgxInstruExtraction'
	} ]
});

var bulidPgxOutputListModel =  function() {
	var model = Ext.create('Ext.data.Store', {
		model : 'PgxOutputInstruExtraction'
	});
	model.load();
	return model;
};*/


Ext.define('methods', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'methods',
		type : 'string'
	}]
});


var buildModel = function(modelType, data) {
		
	var model = Ext.create('Ext.data.Store', {
		model : modelType,
		data : data,
		proxy : {
			type : 'memory',
			reader : {
				type : 'json'
			},
			autoLoad : true
		}
	});
	model.load();
	return model;
};

var buildExperimentModel = function() {
		
	var model = Ext.create('Ext.data.Store', {
		model : 'ExperimentInfo'
	});
	
	model.load();
	model.add({
		type : 'Gene Expression',
		method : 'Fast',
		equipment : '96-well',
		nooftargets : 24,
		noofsamples : 20,
		noofreplicates : 2,
		noofsubarrays : 2,
		throughput : 'All',
		species : 'Human',
		openarrayinstrument : ''
	});
	model.sync();
	return model;
};




var buildOutputListModel = function() {
	var model = Ext.create('Ext.data.Store', {
		model : 'OutputList'
	});
	model.load();
	return model;
};

var buildDetailsPageInfoModel = function() {
	var model = Ext.create('Ext.data.Store', {
		model : 'DetailsPageInfo'
	});
	model.load();
	return model;
};
Ext.define('CustommiRNACards', {
	extend : 'Ext.data.Model',
	fields : [ {
		name : 'nooftargets',
		type : 'int'
	}, {
		name : 'tacformat',
		type : 'string'
	}, {
		name : 'numberofsamplespercard',
		type : 'int'
	}, {
		name : 'numberoftacreplicates',
		type : 'int'
	}, {
		name : 'tacname',
		type : 'string'
	}, {
		name : 'min',
		type : 'int'
	}, {
		name : 'partnumber',
		type : 'string'
	}, {
		name : 'mastermixneededperunit',
		type : 'int'
	} ]
});