} // end WriteUnitGroup private void loadExportOutputList(LogStockDO justLog, string currSort, string currGrade, bool errFound) { // EX2 exportToOutput eto = new exportToOutput(); eto.errorFound = errFound; eto.export1 = justLog.Tree.Stratum.Code; eto.export2 = justLog.Tree.CuttingUnit.Code; eto.export3 = justLog.Tree.Plot.PlotNumber.ToString(); eto.export4 = justLog.Tree.TreeNumber.ToString(); eto.export5 = justLog.LogNumber; eto.export6 = justLog.Tree.Species; eto.export7 = justLog.ExportGrade; eto.export8 = justLog.Grade; eto.export9 = currSort; eto.export10 = currGrade; eto.export11 = justLog.Length; eto.export12 = justLog.SeenDefect; eto.export13 = justLog.Length;; eto.export14 = justLog.SmallEndDiameter; eto.export15 = justLog.NetBoardFoot; eto.export16 = justLog.SeenDefect; exToOutput.Add(eto); return; } // end loadExportOutputList
} // end CreateEX4and5 private void CreateEX6orEX7(StratumDO currST, string currCU) { // EX6 and EX7 string currSpecies = ""; //List<PRODO> proList = Global.BL.getPRO(); // get correct acres double strAcres = Utilities.ReturnCorrectAcres(currST.Code, (long)currST.Stratum_CN); // first pull unique sort and grade codes //List<LogStockDO> justSorts = Global.BL.getLogSorts(""); logStockList = Global.BL.getCutLogs().ToList(); // then loop through sort codes to get logs List <LogStockDO> justLogs = new List <LogStockDO>(); foreach (LogStockDO js in Global.BL.getLogSorts("")) { // pull logs for this group based on report if (currentReport == "EX6") { justLogs = logStockList.FindAll( l => l.Tree.Stratum.Code == currST.Code && l.Tree.CuttingUnit.Code == currCU && l.ExportGrade == js.ExportGrade && l.Grade == js.Grade); } else if (currentReport == "EX7") { justLogs = logStockList.FindAll( l => l.Tree.Stratum.Code == currST.Code && l.ExportGrade == js.ExportGrade && l.Grade == js.Grade); } // endif // sum values into output list double proratFactor = 0; double sumExpFac = 0; double sumGrossBDFT = 0; double sumGrossCUFT = 0; double sumNetBDFT = 0; double sumNetCUFT = 0; double sumDefect = 0; double sumLength = 0; foreach (LogStockDO jl in justLogs) { // find proration factor for the group PRODO prodo = Global.BL.getPRO().FirstOrDefault( p => p.Stratum == jl.Tree.Stratum.Code && p.CuttingUnit == jl.Tree.CuttingUnit.Code && p.SampleGroup == jl.Tree.SampleGroup.Code); if (prodo != null) { proratFactor = prodo.ProrationFactor; } else { proratFactor = 1.0; } // save species currSpecies = jl.Tree.Species; // Board foot volumes sumGrossBDFT += jl.GrossBoardFoot * jl.Tree.ExpansionFactor * proratFactor; sumNetBDFT += jl.NetBoardFoot * jl.Tree.ExpansionFactor * proratFactor; // Cubic foot volumes sumGrossCUFT += jl.GrossCubicFoot * jl.Tree.ExpansionFactor * proratFactor; sumNetCUFT += jl.NetCubicFoot * jl.Tree.ExpansionFactor * proratFactor; // these values are summed differently for 100% method if (currST.Method == "100") { sumExpFac += jl.Tree.ExpansionFactor; sumDefect += jl.SeenDefect; sumLength += jl.Length * jl.Tree.ExpansionFactor; } else { sumExpFac += jl.Tree.ExpansionFactor * strAcres; sumDefect += jl.SeenDefect * jl.Tree.ExpansionFactor * strAcres; sumLength += jl.Length * jl.Tree.ExpansionFactor * strAcres; } // endif on method } // end foreach loop // load group into output list exportToOutput eto = new exportToOutput(); eto.export1 = currST.Code.PadLeft(2, ' '); eto.export2 = currCU.PadLeft(3, ' '); eto.export3 = currSpecies.PadRight(6, ' '); eto.export4 = js.ExportGrade; eto.export5 = js.Grade; eto.export11 = sumExpFac; eto.export12 = sumGrossBDFT; eto.export13 = sumNetBDFT; eto.export14 = sumGrossCUFT; eto.export15 = sumNetCUFT; eto.export16 = sumDefect; eto.export17 = sumLength; exToOutput.Add(eto); } // end foreach loop return; } // end CreateEX6