public static void Run(Dictionary <string, SctMoving> movingList, string outputFilePath) { using (StreamWriter tw = new StreamWriter(outputFilePath, false, Encoding.UTF8)) { Sum nOst = new Sum(); Sum deb = new Sum(); Sum krd = new Sum(); Sum kOst = new Sum(); List <string> keys = new List <string>(movingList.Keys); keys.Sort(); foreach (string key in keys) { SctMoving moving = movingList[key]; tw.WriteLine("{0,-20} {1,12:0.00} {2,12:0.00} {3,12:0.00} {4,12:0.00}", key, moving.SNach, moving.SDebt, moving.SKred, moving.SKont); nOst += moving.SNach; deb += moving.SDebt; krd += moving.SKred; kOst += moving.SKont; } tw.WriteLine(new string('-', 72)); tw.WriteLine("{0,-20} {1,12:0.00} {2,12:0.00} {3,12:0.00} {4,12:0.00}", "Amount", nOst, deb, krd, kOst); } }
private static void SctReport(string sctName, TextWriter tw, SctMoving sctMoving) { Sum amount = sctMoving.SNach; tw.WriteLine("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>"); tw.WriteLine(); tw.WriteLine("{0,-52} {1,20:0.00}", sctName, amount); List <WirePrint> wiers = new List <WirePrint>(); foreach (Wire wier in sctMoving.DebList) { WirePrint wirePrint = new WirePrint(wier.Date, wier.KrdSct, wier.Sum, wier.Remark, wier.RunNumber); wiers.Add(wirePrint); } foreach (Wire wier in sctMoving.KrdList) { WirePrint wirePrint = new WirePrint(wier.Date, wier.DebSct, -wier.Sum, wier.Remark, wier.RunNumber); wiers.Add(wirePrint); } if (wiers.Count == 0) { return; } tw.WriteLine("--------------------------------------------------------------------------"); Comparison <WirePrint> comparison = delegate(WirePrint p1, WirePrint p2) { int tmp = p1.Date.CompareTo(p2.Date); return(tmp != 0 ? tmp : p1.RunNumber.CompareTo(p2.RunNumber)); }; wiers.Sort(comparison); foreach (WirePrint wier in wiers) { amount += wier.Sum; tw.Write("{0:00} {1,-31}", wier.Date, wier.Sct); if (!wier.Sum.IsMinus) { tw.WriteLine("{0,12:0.00} {1,25:0.00} {2}", wier.Sum, amount, wier.Remark); } else { tw.WriteLine("{0,25:0.00} {1,12:0.00} {2}", -wier.Sum, amount, wier.Remark); } } }
public static Dictionary <string, SctMoving> GetMovingList(IEnumerable <Amount> amounts, IEnumerable <WiresFile> wireFiles) { Dictionary <string, SctMoving> movings = new Dictionary <string, SctMoving>(); foreach (Amount amount in amounts) { SctMoving sctMovie; if (!movings.TryGetValue(amount.Sct, out sctMovie)) { sctMovie = new SctMoving(); movings[amount.Sct] = sctMovie; } sctMovie.SNach += amount.Sum; } foreach (WiresFile file in wireFiles) { foreach (Wire wier in file.Wires.Where(wier => wier != null && wier.GetType() == typeof(Wire)).Select(wier => (Wire)wier)) { SctMoving sctMovie; if (!movings.TryGetValue(wier.DebSct, out sctMovie)) { sctMovie = new SctMoving(); movings[wier.DebSct] = sctMovie; } sctMovie.DebList.Add(wier); if (!movings.TryGetValue(wier.KrdSct, out sctMovie)) { sctMovie = new SctMoving(); movings[wier.KrdSct] = sctMovie; } sctMovie.KrdList.Add(wier); } } return(movings); }
public static void Run(Dictionary<string, SctMoving> movingList) { using (StreamWriter tw = new StreamWriter("vd002.txt", false, Encoding.UTF8)) { Sum sNach = new Sum(); Sum sDebt = new Sum(); Sum sKred = new Sum(); Sum sKont = new Sum(); List<string> sctNames = new List<string>(movingList.Keys); sctNames.Sort(); foreach (string key in sctNames) { SctMoving moving = movingList[key]; tw.WriteLine("{0,-20} {1,12:0.00} {2,12:0.00} {3,12:0.00} {4,12:0.00}", key, moving.SNach, moving.SDebt, moving.SKred, moving.SKont); sNach += moving.SNach; sDebt += moving.SDebt; sKred += moving.SKred; sKont += moving.SKont; List<WirePrint> wierPrintList = new List<WirePrint>(); foreach (Wire wier in moving.DebList) { wierPrintList.Add(new WirePrint(wier.Date, wier.KrdSct, wier.Sum, wier.Remark, wier.RunNumber)); } foreach (Wire wier in moving.KrdList) { wierPrintList.Add(new WirePrint(wier.Date, wier.DebSct, -wier.Sum, wier.Remark, wier.RunNumber)); } if (wierPrintList.Count > 0) { tw.WriteLine(new string('-', 72)); Comparison<WirePrint> comparison = delegate(WirePrint w1, WirePrint w2) { int compare = w1.Date.CompareTo(w2.Date); return compare != 0 ? compare : w1.RunNumber.CompareTo(w2.RunNumber); }; wierPrintList.Sort(comparison); for (int i = 0; i < wierPrintList.Count; i++) { WirePrint wire = wierPrintList[i]; tw.Write("{0:00} {1,-31}", wire.Date, wire.Sct); if (!wire.Sum.IsMinus) { tw.WriteLine("{0,12:0.00} {1}", wire.Sum, wire.Remark); } else { tw.WriteLine("{0,25:0.00} {1}", -wire.Sum, wire.Remark); } } } tw.WriteLine(new string('=', 72)); } tw.WriteLine("{0,-20} {1,12:0.00} {2,12:0.00} {3,12:0.00} {4,12:0.00}", "Amount", sNach, sDebt, sKred, sKont); } }