public static decimal GetTotalPrice() { decimal getTotalPrice; RepositoryCheck.C = XDocument.Parse(RepositoryCheck.DocumentProductCheck.ToString()); RepositoryCheck.C = RepositoryActionHashBox.MergeProductsInCheck(RepositoryCheck.C); if (RepositoryCheck.C == null) { getTotalPrice = RepositoryCheck.DocumentProductCheck != null ? Convert.ToDecimal(RepositoryCheck.DocumentProductCheck.GetXElements("check", "product").Sum(l => l.GetXElementValue("total").ToDouble())) : 0.0m; } else { getTotalPrice = RepositoryCheck.C != null ? Convert.ToDecimal(RepositoryCheck.C.GetXElements("check", "product").Sum(l => l.GetXElementValue("total").ToDouble())) : 0.0m; } RepositoryCheck.C = null; if (RepositoryDiscount.Client.Barcode != null && getTotalPrice >= RepositoryDiscount.Client.MoneyMax) { if ((getTotalPrice >= RepositoryDiscount.Client.MoneyMax) && !RepositoryDiscount.Client.AddPoints) { if ((DateTime.Now.Day == RepositoryDiscount.Client.LastDateUpd.Day) && (DateTime.Now.Month == RepositoryDiscount.Client.LastDateUpd.Month) && (DateTime.Now.Year == RepositoryDiscount.Client.LastDateUpd.Year)) { if (RepositoryDiscount.Client.ShowMessaget) { FunctionsService.ShowMessageSb("Cette carte a déjà été utilisé aujourd'hui! " + Environment.NewLine + RepositoryDiscount.Client.LastDateUpd); } RepositoryDiscount.Client.ShowMessaget = false; } else { if (RepositoryDiscount.Client.Points < RepositoryDiscount.Client.MaxPoints) { RepositoryDiscount.Client.AddPoints = true; RepositoryDiscount.Client.Points += 1; } } } else { if ((getTotalPrice < RepositoryDiscount.Client.MoneyMax) && RepositoryDiscount.Client.AddPoints) { RepositoryDiscount.Client.AddPoints = false; RepositoryDiscount.Client.Points -= 1; } } } return(getTotalPrice); }
public static void MegaSync() { // check tables var syncTask = Task <bool> .Factory.StartNew( () => { RepositoryActionHashBox.Sync(); //RepositoryCheck RepositoryCheckTicket.Sync(); RepositoryCheckTicketTmp.Sync(); RepositoryPro.Sync(); RepositoryClientInfo.Sync(); RepositoryCloseTicket.Sync(); RepositoryCloseTicketCheckDiscount.Sync(); RepositoryCloseTicketG.Sync(); RepositoryCloseTicketTmp.Sync(); RepositoryCountry.Sync(); RepositoryCurrency.Sync(); //RepositoryCurrencyRelations RepositoryDevisId.Sync(); RepositoryDevisWeb.Sync(); //RepositoryDiscount RepositoryDiscountCard.Sync(); RepositoryEstablishment.Sync(); RepositoryGeneral.Sync(); RepositoryGroupProduct.Sync(); //RepositoryHistoryChangeProduct RepositoryInfoClientsDiscountsType.Sync(); RepositoryLastUpdate.Sync(); RepositoryOpenTicketWindow.Sync(); RepositoryPayProduct.Sync(); RepositoryPayProductTmp.Sync(); //RepositoryPriceGros RepositoryProduct.Sync(); RepositoryProductBc.Sync(); RepositoryStatNation.Sync(); RepositoryStatNationPopup.Sync(); RepositoryStatPlaceArrond.Sync(); //RepositoryStockLogs RepositoryStockReal.Sync(); RepositorySyncPlus.Sync(); RepositorySyncPlusProduct.Sync(); //RepositoryTes RepositoryTva.Sync(); RepositoryTypePay.Sync(); //RepositoryXmlFile return(true); }); syncTask.ContinueWith( s => { }); }
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 отсутвует или структура не правильная"); } }
public static void SyncAll(Dispatcher dispatcher) { var progressCount = Config.IsUseServer ? 7 + RepositorySyncIsLoading.CheckedCount() : 7; ProgressHelper.Instance.Start(progressCount, Resources.LabelDataLoading); var progressValue = 0; ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelConnectionTest); SyncData.SetConnect(Config.IsUseServer && DbService.Connect()); ProgressHelper.Instance.SetValue(progressValue++, Resources.MenuUsers); RepositoryAccountUser.Set(); ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelTypesPays); RepositoryTypePay.Sync(); SetDefoultTypesPays(); ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelCurrency); RepositoryCurrency.Sync(); if (RepositoryCurrency.Currencys.Count == 0) { LogService.LogText(TraceLevel.Error, "Currencus count is 0"); GlobalVar.IsOpen = false; } ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelCassieData); RepositoryGeneral.Set(); RepositoryOpenTicketWindow.Sync(); RepositoryCloseTicketG.Sync(); RepositorySyncIsLoading.LoadFile(); RepositoryEstablishment.Sync(); if (RepositoryEstablishment.Establishment != null) { LogService.EstablishmentInfo = "Ville = " + RepositoryEstablishment.Establishment.Ville + "\r\n" + "Adress = " + RepositoryEstablishment.Establishment.Adress + "\r\n" + "Name = " + RepositoryEstablishment.Establishment.Name + "\r\n" + "Type = " + RepositoryEstablishment.Establishment.Type + "\r\n" + "Mail = " + RepositoryEstablishment.Establishment.Mail + "\r\n" + "Phone = " + RepositoryEstablishment.Establishment.Phone + "\r\n" + "Fax = " + RepositoryEstablishment.Establishment.Fax + "\r\n" + "CodeNaf = " + RepositoryEstablishment.Establishment.CodeNaf + "\r\n" + "Cp = " + RepositoryEstablishment.Establishment.Cp + "\r\n" + "Ntva = " + RepositoryEstablishment.Establishment.Ntva + "\r\n" + "Siret = " + RepositoryEstablishment.Establishment.Siret; } ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelProducts); RepositoryProduct.Set(); if (Config.IsUseServer) { if (RepositorySyncIsLoading.IsLoading(SyncEnum.PayProduct)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelPayProduct); RepositoryPayProduct.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.CloseTicket)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelCloseTicket); RepositoryCloseTicket.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.PayProductTmp)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelPayProductTmp); RepositoryPayProductTmp.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.CheckTicketTmp)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelCheckTicketTmp); RepositoryCheckTicketTmp.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.CheckTicket)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelCheckTicket); RepositoryCheckTicket.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.ClientInfo)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelClientInfo); RepositoryClientInfo.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.Pro)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelProviders); RepositoryPro.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.DiscountCard)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelDiscountCard); RepositoryDiscountCard.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.DevisWeb)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelDevisWeb); RepositoryDevisWeb.Sync(); } if (RepositorySyncIsLoading.IsLoading(SyncEnum.XmlFile)) { ProgressHelper.Instance.SetValue(progressValue++, Resources.LabelXmlFile); RepositoryXmlFile.SetAllFromDb(); } } ProgressHelper.Instance.SetValue(progressValue, Resources.LabelDataLoading); ClassGridGroup.Initialize(); ClassGridProduct.Initialize(); ClassGridStatistiqueRegionEtPays.Initialize(); ProgressHelper.Instance.Stop(); if (SyncData.IsConnect) { if (ClassDataTimeSrv.GetDateTimeFromSrv()) { var text = Resources.LabelServerTime + " : " + ClassDataTimeSrv.DateTimeFromSrv + Environment.NewLine + Resources.LabelCashboxTime + " : " + DateTime.Now + Environment.NewLine; var window = new WDateTimeSrv(text); window.ShowDialog(); } } if (!Config.Bureau) { var generalEstablishment = RepositoryGeneral.Generals.Find(l => l.EstablishmentCustomerId == Config.IdEstablishment); GlobalVar.TicketWindowG = generalEstablishment.TicketWindowGeneral; //SQL.OCC.cassieInf.idTicketWindowG; var openTicketWindow = RepositoryOpenTicketWindow.OpenTicketWindows.FirstOrDefault(l => l.CustomerId == Config.CustomerId); if (openTicketWindow != null) { GlobalVar.TicketWindow = openTicketWindow.IdTicketWindow; GlobalVar.IsOpen = openTicketWindow.IsOpen; if (!GlobalVar.IsOpen) { openTicketWindow = null; } } else { GlobalVar.IsOpen = false; } // окно закрытия кассы if (generalEstablishment.Date.Date != DateTime.Now.Date && generalEstablishment.TicketWindowGeneral != Guid.Empty ) { var errorlist = Resources.LabelNow + " : " + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString() + Environment.NewLine + "--------------------------------" + Environment.NewLine + Environment.NewLine; errorlist += " " + Resources.LabelOpenTotalTW + " : " + RepositoryGeneral.Generals.First().Date.ToLongDateString() + Environment.NewLine; errorlist += Resources.LabelOpenLocal + " : "; errorlist += openTicketWindow?.DateOpen.ToLongDateString() ?? string.Empty + Environment.NewLine; var tickedWindowId = GlobalVar.TicketWindow != Guid.Empty ? GlobalVar.TicketWindow.ToString() : string.Empty; var window = new WCloseTicketWindow(errorlist) { BtnCloseLocal = { IsEnabled = tickedWindowId != string.Empty } }; window.ShowDialog(); RepositoryGeneral.Set(); RepositoryOpenTicketWindow.Sync(); } if (!GlobalVar.IsBreak) { // окно открытия кассы if (!RepositoryGeneral.IsOpen) { if (GlobalVar.TicketWindowG == Guid.Empty) { var status = Environment.NewLine + "--------------------------------" + Environment.NewLine + Resources.LabelCashBox + " : " + Config.NameTicket + Environment.NewLine + Resources.LabelPost + " : " + Config.NumberTicket + Environment.NewLine + Resources.LabelOpenedBy + " : " + Config.User + Environment.NewLine + Environment.NewLine + "--------------------------------" + Environment.NewLine + Environment.NewLine + Resources.LabelTotalOpeningKey + " : " + GlobalVar.TicketWindowG + Environment.NewLine + Environment.NewLine + Resources.LabelLocalOpeningKey + " : " + GlobalVar.TicketWindow + Environment.NewLine; var window = new WOpenTicletG(status); window.ShowDialog(); } } if (GlobalVar.TicketWindow == Guid.Empty) { var status = Environment.NewLine + "--------------------------------" + Environment.NewLine + Resources.LabelCashBox + " : " + Config.NameTicket + Environment.NewLine + Resources.LabelPost + " : " + Config.NumberTicket + Environment.NewLine + Resources.LabelOpenedBy + " : " + Config.User + Environment.NewLine + Environment.NewLine + "--------------------------------" + Environment.NewLine + Resources.LabelTotalOpeningKey + " : " + GlobalVar.TicketWindowG + Environment.NewLine + Resources.LabelLocalOpeningKey + " : " + GlobalVar.TicketWindow + Environment.NewLine; var window = new WOpenTicket(status); window.ShowDialog(); } } } DotLiquidService.SetPath(0); DotLiquidService.SetPath(1); DotLiquidService.SetPath(2); RepositoryActionHashBox.Sync(); CassieService.LoadProductCheckFromFile(); }