public static decimal RenduCalc() { var rendu = 0.0m; var noRendu = 0.0m; var sum = RepositoryCurrencyRelations.GetSumMoney(); foreach (var tm in RepositoryTypePay.TypePays) { rendu += tm.RenduAvoir ?? false?RepositoryCurrencyRelations.GetMoneyFromType(tm) : 0.0m; noRendu += !tm.RenduAvoir ?? false?RepositoryCurrencyRelations.GetMoneyFromType(tm) : 0.0m; } return(sum - noRendu < 0 ? -rendu : sum - noRendu - rendu); }
public static void Bay() { RepositoryCheck.GetDucument(); if (RepositoryCheck.Document.Element("checks") != null && RepositoryCheck.DocumentProductCheck.GetXElements("check", "product").Any()) { RepositoryCheck.DocumentProductCheck = RepositoryActionHashBox.MergeProductsInCheck(RepositoryCheck.DocumentProductCheck); try { foreach (var type in RepositoryTypePay.TypePays) { var money = RepositoryCurrencyRelations.GetMoneyFromType(type); RepositoryCheck.DocumentProductCheck.GetXElement("check").Add(new XAttribute(type.NameCourt.TrimEnd(), money)); } } catch (System.Exception ex) { var text = ex.Message; FunctionsService.ShowMessageSb(text); LogService.Log(TraceLevel.Error, 1, text + RepositoryCheck.DocumentProductCheck); } var rendu = ClassEtcFun.RenduCalc(); try { RepositoryCheck.DocumentProductCheck.GetXElement("check").Add(new XAttribute("Rendu", rendu.ToString("0.00"))); } catch (System.Exception ex) { var text = ex.Message; FunctionsService.ShowMessageSb(text); LogService.Log(TraceLevel.Error, 2, text + RepositoryCheck.DocumentProductCheck + "."); } try { RepositoryCheck.DocumentProductCheck.GetXElement("check").Add( new XAttribute("sum", RepositoryCurrencyRelations.GetSumMoney()), new XAttribute("date", DateTime.Now)); } catch (System.Exception ex) { var text = ex.Message; FunctionsService.ShowMessageSb(text); LogService.Log(TraceLevel.Error, 3, text + RepositoryCheck.DocumentProductCheck + "."); } try { if (RepositoryDiscount.Client.Barcode != null && !ClassProMode.ModePro) { AddSetDiscountCardBareCode( RepositoryDiscount.Client.Barcode, RepositoryDiscount.Client.Points - (RepositoryDiscount.Client.AddPoints ? 1 : 0) + (RepositoryDiscount.Client.DiscountSet ? RepositoryDiscount.Client.MaxPoints : 0), RepositoryDiscount.Client.AddPoints ? 1 : 0, RepositoryDiscount.Client.DiscountSet ? 8 : 0, RepositoryDiscount.Client.NameFirst + " " + RepositoryDiscount.Client.NameLast); } } catch (System.Exception ex) { var text = ex.Message; FunctionsService.ShowMessageSb(text); LogService.Log(TraceLevel.Error, 4, text + RepositoryCheck.DocumentProductCheck + "."); } if (ClassProMode.ModePro || ClassProMode.Devis) { ClassProMode.Move(ClassProMode.Devis); } else { var element = RepositoryCheck.DocumentProductCheck.Element("check"); element.GetXAttribute("barcodeCheck").SetValue(RepositoryCheck.GetBarCodeCheck()); RepositoryCheck.Document.GetXElement("checks").Add(element); } if (!ClassProMode.ModePro && !ClassProMode.Devis) { new ClassPrintCheck(RepositoryCheck.DocumentProductCheck, false); } try { var worker = new BackgroundWorker(); if (!ClassProMode.ModePro && !ClassProMode.Devis) { worker.DoWork += WorkerDoWork; worker.RunWorkerCompleted += WorkerRunWorkerCompleted; worker.RunWorkerAsync(); } } catch (System.Exception ex) { var text = ex.Message; LogService.Log(TraceLevel.Error, 7, text + RepositoryCheck.DocumentProductCheck + "."); } try { if (!ClassProMode.ModePro && !ClassProMode.Devis) { RepositoryCheck.Document.Save(RepositoryCheck.Path); RepositoryCheck.DocumentProductCheck = null; CassieService.OpenProductsCheck(); RepositoryDiscount.RestoreDiscount(); DiscountCalc(); FunctionsService.WriteTotal(); } } catch (System.Exception ex) { var text = ex.Message; FunctionsService.ShowMessageSb(text); LogService.Log(TraceLevel.Error, 8, text + RepositoryCheck.DocumentProductCheck + "."); } } else { FunctionsService.ShowMessageSb("файл check.xml отсутвует или структура не правильная"); } }