quoteCalculator.service("finishingsParseService",function(){var finishingsParse=this;this.Parse=function(finishingArray){for(var fDataBuilder=new BlankFData,i=0;i<finishingArray.length;i++){var obj=finishingArray[i],finId=obj.finishingTypeId;1==finId?finishingsParse.addLamination(fDataBuilder,obj):2==finId?finishingsParse.addBinding(fDataBuilder,obj):3==finId||29==finId?finishingsParse.addFoiling(fDataBuilder,obj):4==finId?finishingsParse.addFold(fDataBuilder,obj):5==finId?finishingsParse.addLamination(fDataBuilder,obj):7==finId?finishingsParse.addSpotUv(fDataBuilder,obj):10==finId?finishingsParse.addPackSize(fDataBuilder,obj):11==finId?finishingsParse.addHole(fDataBuilder,obj):12==finId?finishingsParse.addHandFinishing(fDataBuilder,obj):13==finId||(14==finId?finishingsParse.addNcrGlueAndStick(fDataBuilder,obj):16==finId?finishingsParse.addScratchCard(fDataBuilder,obj):17==finId?finishingsParse.addEmboss(fDataBuilder,obj):20==finId?finishingsParse.addStringType(fDataBuilder,obj):21==finId?finishingsParse.addStringSupplyOption(fDataBuilder,obj):23==finId?finishingsParse.addPerforation(fDataBuilder,obj):35==finId?finishingsParse.addVariableData(fDataBuilder,obj):36==finId?finishingsParse.addKissCut(fDataBuilder,obj):37==finId?finishingsParse.addDeboss(fDataBuilder,obj):39==finId?finishingsParse.addAssembly(fDataBuilder,obj):40==finId?finishingsParse.addCorners(fDataBuilder,obj):41==finId?finishingsParse.addNcrSheetCount(fDataBuilder,obj):42==finId?finishingsParse.addNcrSuppliedAs(fDataBuilder,obj):43==finId?finishingsParse.addBannerHem(fDataBuilder,obj):44==finId?finishingsParse.addBannerMetalEyelet(fDataBuilder,obj):45==finId?finishingsParse.addPolePocket(fDataBuilder,obj):46==finId?finishingsParse.addWindSlot(fDataBuilder,obj):47==finId?finishingsParse.addScratchOverprint(fDataBuilder,obj):48==finId?finishingsParse.addBuntingLength(fDataBuilder,obj):49==finId?finishingsParse.addBuntingDensity(fDataBuilder,obj):51==finId?finishingsParse.addSampleBoard(fDataBuilder,obj):52==finId?finishingsParse.addVariableDataColour(fDataBuilder,obj):53==finId?finishingsParse.addScoring(fDataBuilder,obj):55==finId?console.warn("Data sent for brochure rivetting (finishingTypeId 55) and nothing is done with this data"):57==finId?finishingsParse.addFlagSpacing(fDataBuilder,obj):58==finId||(60==finId?finishingsParse.addLargeFormatCutting(fDataBuilder,obj):61==finId&&finishingsParse.addLargeFormatDrillHoles(fDataBuilder,obj)))}return fDataBuilder},this.addObjectsAttemptCounter=0,this.addLamination=function(fDataBuilder,obj){5!=obj.finishingTypeId||obj.finishName||(obj.finishName="Lamination"),obj.finishName&&"Front lamination"!=obj.finishName&&"Lamination"!=obj.finishName?"Back lamination"==obj.finishName?(fDataBuilder.laminationBack&&console.error("Multiple finishing objects sent for lamination back, forced to overwrite"),fDataBuilder.laminationBack=obj):console.error("Lamination object sent with no finish name, forced to discard"):(fDataBuilder.lamination&&console.error("Multiple finishing objects sent for lamination front, forced to overwrite"),fDataBuilder.lamination=obj)},this.addBinding=function(fDataBuilder,obj){fDataBuilder.binding&&console.error("Multiple finishing objects sent for binding, forced to overwrite"),fDataBuilder.binding=obj},this.addFoiling=function(fDataBuilder,obj){fDataBuilder.foilOne?fDataBuilder.foilTwo?console.error("Too many foiling objects present, disregarding additional objects"):fDataBuilder.foilTwo=obj:fDataBuilder.foilOne=obj},this.addFold=function(fDataBuilder,obj){fDataBuilder.folding&&console.error("Multiple finishing objects sent for folding, forced to overwrite"),fDataBuilder.folding=obj},this.addSpotUv=function(fDataBuilder,obj){"Spot UV front"==obj.finishName?(fDataBuilder.spotUv&&console.error("Multiple finishing objects sent for Spot UV front, forced to overwrite"),fDataBuilder.spotUv=obj):"Spot UV back"==obj.finishName?(fDataBuilder.spotUvBack&&console.error("Multiple finishing objects sent for Spot UV back, forced to overwrite"),fDataBuilder.spotUvBack=obj):console.error('Unrecognised finishName "'+obj.finishName+'" in spot Uv object')},this.addPackSize=function(fDataBuilder,obj){},this.addHole=function(fDataBuilder,obj){fDataBuilder.drillHoles&&console.error("Multiple finishing objects sent for drill holes, forced to overwrite"),fDataBuilder.drillHoles=obj},this.addHandFinishing=function(fDataBuilder,obj){},this.addScratchCard=function(fDataBuilder,obj){fDataBuilder.scratchLatex&&console.error("Multiple finishing objects sent for scratch latex, forced to overwrite"),fDataBuilder.scratchLatex=obj},this.addScratchOverprint=function(fDataBuilder,obj){fDataBuilder.scratchOverPrint&&console.error("Multiple finishing objects sent for scratch latex overprinting, forced to overwrite"),fDataBuilder.scratchOverPrint=obj},this.addEmboss=function(fDataBuilder,obj){fDataBuilder.embossOne?fDataBuilder.embossTwo?console.error("Too many embossing objects sent, disregarding most recent"):fDataBuilder.embossTwo=obj:fDataBuilder.embossOne=obj},this.addStringType=function(fDataBuilder,obj){fDataBuilder.stringType?console.error("Too many string type objects sent, disregarding most recent"):fDataBuilder.stringType=obj},this.addStringSupplyOption=function(fDataBuilder,obj){fDataBuilder.stringSupplyOption?console.error("Too many string supply option objects sent, disregarding most recent"):fDataBuilder.stringSupplyOption=obj},this.addPerforation=function(fDataBuilder,obj){fDataBuilder.perf&&console.error("Multiple finishing objects sent for perforation, forced to overwrite"),fDataBuilder.perf=obj},this.addVariableData=function(fDataBuilder,obj){104==obj.finishingId?fDataBuilder.variableDataNumbering?console.error("Too many finishing objects sent for variable data with finishingTypeId 104 - expected zero or one"):fDataBuilder.variableDataNumbering=obj:105==obj.finishingId?fDataBuilder.variableDataQrCode?console.error("Too many finishing objects sent for variable data with finishingTypeId 105 - expected zero or one"):fDataBuilder.variableDataQrCode=obj:106==obj.finishingId?fDataBuilder.variableDataBarcode?console.error("Too many finishing objects sent for variable data with finishingTypeId 106 - expected zero or one"):fDataBuilder.variableDataBarcode=obj:107==obj.finishingId&&(fDataBuilder.variableDataMergedData?console.error("Too many finishing objects sent for variable data with finishingTypeId 107 - expected zero or one"):fDataBuilder.variableDataMergedData=obj)},this.addVariableDataColour=function(fDataBuilder,obj){fDataBuilder.variableDataColour?console.error("Multiple variable data colour objects present"):fDataBuilder.variableDataColour=obj},this.addKissCut=function(fDataBuilder,obj){},this.addDeboss=function(fDataBuilder,obj){fDataBuilder.debossOne?fDataBuilder.debossTwo?console.error("Too many debossing objects sent, disregarding most recent"):fDataBuilder.debossTwo=obj:fDataBuilder.debossOne=obj},this.addCorners=function(fDataBuilder,obj){fDataBuilder.corners?console.error("Too many corner objects sent, disregarding most recent"):fDataBuilder.corners=obj},this.addBannerHem=function(fDataBuilder,obj){fDataBuilder.bannerHem&&console.error("Multiple finishing objects sent for banner eyelets, forced to overwrite"),fDataBuilder.bannerHem=obj},this.addBannerMetalEyelet=function(fDataBuilder,obj){fDataBuilder.bannerEyelets&&console.error("Multiple finishing objects sent for banner eyelets, forced to overwrite"),fDataBuilder.bannerEyelets=obj},this.addPolePocket=function(fDataBuilder,obj){fDataBuilder.bannerPolePockets&&console.error("Multiple finishing objects sent for banner pole pockets, forced to overwrite"),fDataBuilder.bannerPolePockets=obj},this.addWindSlot=function(fDataBuilder,obj){fDataBuilder.bannerWindSlots&&console.error("Multiple finishing objects sent for banner wind slots, forced to overwrite"),fDataBuilder.bannerWindSlots=obj},this.addBuntingLength=function(fDataBuilder,obj){fDataBuilder.buntingLength&&console.error("Multiple finishing objects sent for bunting length, forced to overwrite"),fDataBuilder.buntingLength=obj},this.addBuntingDensity=function(fDataBuilder,obj){fDataBuilder.buntingFlagDensity&&console.error("Multiple finishing objects sent for bunting flag density, forced to overwrite"),fDataBuilder.buntingFlagDensity=obj},this.addFlagSpacing=function(fDataBuilder,obj){fDataBuilder.buntingFlagSpacing&&console.error("Multiple finishing objects sent for bunting flag spacing, forced to overwrite"),fDataBuilder.buntingFlagSpacing=obj},this.addSampleBoard=function(fDataBuilder,obj){185==obj.finishingId?(fDataBuilder.sampleBoardWeight&&console.error("Multiple finishing objects sent for sample board weight, forced to overwrite"),fDataBuilder.sampleBoardWeight=obj):(fDataBuilder.sampleBoard&&console.error("Multiple finishing objects sent for sample board, forced to overwrite"),fDataBuilder.sampleBoard=obj)},this.addNcrGlueAndStick=function(fDataBuilder,obj){fDataBuilder.ncrGluing&&console.error("Multiple finishing objects sent for NCR Gluing, forced to overwrite"),fDataBuilder.ncrGluing=obj},this.addNcrSheetCount=function(fDataBuilder,obj){fDataBuilder.ncrSheetCount&&console.error("Multiple finishing objects sent for NCR sheet count, forced to overwrite"),fDataBuilder.ncrSheetCount=obj},this.addNcrSuppliedAs=function(fDataBuilder,obj){fDataBuilder.ncrSuppliedAs&&console.error("Multiple finishing objects sent for NCR supplied as, forced to overwrite"),fDataBuilder.ncrSuppliedAs=obj},this.addAssembly=function(fDataBuilder,obj){fDataBuilder.assembly.push(obj)},this.addScoring=function(fDataBuilder,obj){fDataBuilder.score&&console.error("Multiple finishing objects sent for scoring, forced to overwrite"),fDataBuilder.score=obj},this.addLargeFormatCutting=function(fDataBuilder,obj){fDataBuilder.largeFormatCutting&&console.error("Multiple finishing objects sent for scoring, forced to overwrite"),fDataBuilder.largeFormatCutting=obj},this.addLargeFormatDrillHoles=function(fDataBuilder,obj){fDataBuilder.largeFormatDrilling&&console.error("Multiple finishing objects sent for scoring, forced to overwrite"),fDataBuilder.largeFormatDrilling=obj}});