private void GoToSpare() { if (dgAnalogues.SelectedItem == null) { return; } SpareView SpareViewToGo = (dgAnalogues.SelectedItem as SpareView); int SpareID = SpareViewToGo.id; ParentWindow.LastSearch = ""; if (ParentWindow.edtSearchText.Text != "") { ParentWindow.edtSearchText.Text = ""; } //ParentWindow.edtSearchText. _searchText = ""; _brandName = ""; _groupID = 0; _remainsOnly = false; if (ParentWindow.edtShowRests.IsChecked.HasValue) { if (ParentWindow.edtShowRests.IsChecked.Value) { ParentWindow.edtShowRests.IsChecked = false; } } LoadSpares(); SpareView s = SpareContainer.Instance.Spares.FirstOrDefault(x => x.id == SpareID); dgSpares.SelectedItem = s; dgSpares.ScrollIntoView(s); }
public void AddSpareToBasket(SpareView sv) { if (sv.QRest <= 0) { return; } int SpareID = sv.id; // если такой товар в корзине есть if (BasketItems.Where(x => x.SpareID == SpareID).Count() > 0) { if ((decimal)sv.QRest.Value > BasketItems.FirstOrDefault(x => x.SpareID == SpareID).Q) { BasketItems.FirstOrDefault(x => x.SpareID == SpareID).Q++; } } else { SpareInSpareIncomeView income = da.GetLastIncome(SpareID); AddIncomeToBasket(income); } // обновим грид LoadBasket(); }
private void OfferingAdd(int SpareID) { SpareInSpareIncomeView sisi = new SpareInSpareIncomeView(); if (Income.currency == null) { Income.currencyReference.Load(); } sisi.num = offerings.Count + 1; sisi.CurrencyID = Income.currency.id; sisi.description = ""; sisi.Markup = 0; sisi.PIn = 1; sisi.PInBasic = 1; sisi.POut = 1; sisi.POutBasic = 1; sisi.QIn = 1; sisi.QRest = 1; sisi.S = 1; sisi.SBasic = 1; DataAccess db = new DataAccess(); sisi.SpareID = SpareID; SpareView sv = db.GetSpareView(SpareID); sisi.SpareName = sv.name; sisi.SpareCode = sv.code; sisi.SpareCodeShatem = sv.codeShatem; sisi.BrandName = sv.BrandName; sisi.SpareIncomeID = Income.id; sisi.VatRateName = "0%"; sisi.GroupName = db.GetSpareGroup(sv.GroupID).name; sisi.ParentGroupName = db.GetSpareGroup(sv.spare_group1_id.Value).name; offerings.Add(sisi); }
private void OfferingAdd(int SpareID, decimal Q, decimal Pusd, string GroupName, string ParentGroupName) { SpareInSpareIncomeView sisi = new SpareInSpareIncomeView(); if (Income.currency == null) { Income.currencyReference.Load(); } sisi.num = offerings.Count + 1; sisi.CurrencyID = Income.currency.id; sisi.description = ""; sisi.Markup = 0; sisi.PIn = Pusd; sisi.PInBasic = Pusd; sisi.POut = Pusd; sisi.POutBasic = Pusd; sisi.QIn = Q; sisi.QRest = Q; sisi.S = Q * Pusd; sisi.SBasic = sisi.S; sisi.GroupName = GroupName; sisi.ParentGroupName = ParentGroupName; DataAccess db = new DataAccess(); sisi.SpareID = SpareID; SpareView sv = db.GetSpareView(SpareID); sisi.SpareName = sv.name; sisi.SpareCode = sv.code; sisi.SpareCodeShatem = sv.codeShatem; sisi.BrandName = sv.BrandName; sisi.SpareIncomeID = Income.id; sisi.VatRateName = "0%"; offerings.Add(sisi); }
private void EditSelectedAnalogue() { int id = 0; SpareView b = null; if (dgAnalogues.SelectedItem != null) { object sel = dgAnalogues.SelectedItem; b = (SpareView)(sel); id = b.id; string spareName1 = this._oldName; string spareName2 = b.name; if (id > 0) { SpareAnalogueEditView v = new SpareAnalogueEditView(); DataAccess da = new DataAccess(); spare_analogue sp = da.getSpareAnalogue(spareName1, spareName2); v._id = sp.id; v._spareId1 = _id; v._spareId2 = b.id;; v.edtIsBoth.IsChecked = sp.is_equal > 0 ? true : false; v.result = b; v.ShowDialog(); loadAnalogues(this._id); } } }
private void SpareSearch() { string SearchCode = code; SpareView sv = null; code = ""; List <SpareView> tmp = SpareContainer.Instance.GetSparesStrict(0, SearchCode); if (tmp.Count > 0) { sv = tmp[0]; } else { edtSearchString.Content = "НЕ НАЙДЕНО!"; if (MessageBox.Show("Товар не найден. Добавить сейчас новый?", "Добавление товара", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { sv = Marvin.Instance.SpareCreate(); } else { return; } } if (sv != null) { OfferingAdd(sv.id); LoadOfferings(); } else { edtSearchString.Content = "error"; } }
private void FixCurrentSpareQuantity() { int SelectedSpareID = 0; SpareView spare = null; if (dgSpares.SelectedItem != null) { spare = dgSpares.SelectedItem as SpareView; } else { return; } SelectedSpareID = spare.id; decimal NewQuantity = spare.q_rest.HasValue ? spare.q_rest.Value : 0; try { SpareContainer.Instance.FixQuantity(SelectedSpareID, NewQuantity); LoadSpares(); MessageBox.Show("Изменения сохранены."); } catch (Exception e) { MessageBox.Show(e.Message); } }
private void dgSpares_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (dgSpares.SelectedItem != null) { SV = dgSpares.SelectedItem as SpareView; } Close(); }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (IsNew && TemporarySaved) { DataAccess db = new DataAccess(); SpareViewItem = db.GetSpareView(this._id); Marvin.Instance.SpareDelete(SpareViewItem); } }
private void ScrollToFirstSpare() { if (dgSpares.Items.Count > 0) { SpareView s = dgSpares.Items[0] as SpareView; dgSpares.SelectedItem = s; dgSpares.UpdateLayout(); dgSpares.ScrollIntoView(s); } }
private void BackgroundLoad_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { dgSpares.DataContext = items; if (dgSpares.HasItems && GotoMode != 4) { SpareView s = dgSpares.Items[0] as SpareView; dgSpares.SelectedItem = s; dgSpares.UpdateLayout(); dgSpares.ScrollIntoView(s); } GotoMode = 0; ParentWindow.edtStatus.Content = "ok"; }
public ReportViewSpareSalesByPeriod(DateTime df, DateTime dt, int SpareID, int WID) { InitializeComponent(); dateTo = dt; dateFrom = df; WarehouseID = WID; DataAccess db = new DataAccess(); Spare = db.GetSpareView(SpareID); if (Spare == null) { return; } }
private void SparePlus() { if (dgSpares.SelectedItem != null) { if ((dgSpares.SelectedItem as SpareView) != null) { SpareView i = (dgSpares.SelectedItem as SpareView); if (!(dgSpares.SelectedItem as SpareView).q_rest.HasValue) { (dgSpares.SelectedItem as SpareView).q_rest = 0; } (dgSpares.SelectedItem as SpareView).q_rest++; da.SpareUpdateQReal(i.id, i.q_rest.Value); } } }
private void dgSpares_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { HandleMainDataGridCellEditEnding(sender, e); SpareView sv = (SpareView)e.Row.DataContext; if (sv.id > 0) { if (sv.q_demand.HasValue) { sv.demand = (int)sv.q_demand - (int)sv.QRest; if (sv.demand < 0) { sv.demand = 0; } } } }
public static string CalculateQRests(int SpareID) { SpareView spare = SpareContainer.Instance.GetSpare(SpareID); DataAccess da = new DataAccess(); string xml = ""; List <warehouse> warehouses = da.GetWarehouses(); List <double> Qs = new List <double>(); xml += "<r>"; // Q total double q0 = spare.QRest.HasValue ? spare.QRest.Value : 0; Qs.Add(q0); // all actual incomes List <SpareInSpareIncomeView> incomes = da.GetActualIncomes(); // Q by warehouses foreach (warehouse w in warehouses) { // incomes by warehouse decimal?q = incomes.Where(i => (i.WarehouseID == w.id && i.SpareID == SpareID)).Sum(i => i.QRest); if (q.HasValue) { Qs.Add((double)q.Value); } else { Qs.Add(0); } } foreach (double q in Qs) { xml += "<w q=\"" + q.ToString() + "\"/>"; } xml += @"</r>"; // save sml to db da.SpareEdit(SpareID, xml); return(xml); }
public SpareView SpareCreateSilent(string Name, string CodeShatem, string GroupName, string ParentGroupName, string BrandName, string UnitName, string Description) { DataAccess da = new DataAccess(); spare s = da.SpareCreateSilent(Name, CodeShatem, GroupName, ParentGroupName, BrandName, UnitName, Description); SpareView SpareViewItem = da.GetSpareView(s.id); SpareContainer.Instance.Update(s.id); int BrandID = SpareViewItem.BrandID; int GroupID = SpareViewItem.GroupID; if (SpareContainer.Instance.Spares.Where(i => i.BrandID == BrandID && i.GroupID == GroupID).Count() == 1) { if (s.brand == null) { s.brandReference.Load(); } da.SpareGroupCreate(GroupID, s.brand.name); } return(SpareViewItem); }
private void dgSpares_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { HandleMainDataGridCellEditEnding(sender, e); SpareView i = (SpareView)e.Row.DataContext; if (i.id > 0) { if (i.q_rest.HasValue) { if (i.q_rest.Value >= 0) { da.SpareUpdateQReal(i.id, i.q_rest.Value); } else { i.q_rest = 0; } } } }
/* * OLD * public void Update(SpareView spare) * { * if (Spares.Where(x => x!= null).Where(x => x.id != null).Where(x => x.id == spare.id).Count() > 0) * { * SpareView sv = spares.Where(x => x != null).Where(x => x.id != null).FirstOrDefault(x => x.id == spare.id); * if(sv != null) * Spares.Remove(sv); * } * Spares.Add(spare); * }*/ /* dec2012 * public void Update(SpareView NewSpareInstance, bool UpdateFromDB = true) // обновление без удаления * { * if (UpdateFromDB) * { * DataAccess da = new DataAccess(); * SpareView OldSpareInstance = Spares.Where(x => x != null).FirstOrDefault(x => x.id == NewSpareInstance.id); * * // если в кэше такая есть, запоминает индекс и перезаписываем * if (OldSpareInstance != null) * { * int i = Spares.IndexOf(OldSpareInstance); * spares[i] = NewSpareInstance; * } * else * { * spares.Add(NewSpareInstance); * } * } * else * { * List<SpareView> items = this.Spares; * SpareView ind = items.Where(x => x != null).FirstOrDefault(x => x.id == NewSpareInstance.id); * if (ind != null) * { * int i = spares.IndexOf(ind); * spares[i] = NewSpareInstance; * } * else * { * spares.Add(NewSpareInstance); * } * } * } */ public void Update(int SpareID, bool UpdateFromDB = true, bool SkipQRestsCalculation = false) { if (UpdateFromDB) { DataAccess da = new DataAccess(); SpareView OldSpareInstance = Spares.Where(x => x != null).FirstOrDefault(x => x.id == SpareID); SpareView NewSpareInstance = da.GetSpareView(SpareID); // если в кэше такая есть, запоминает индекс и перезаписываем if (OldSpareInstance != null) { int i = Spares.IndexOf(OldSpareInstance); spares[i] = NewSpareInstance; } else { spares.Add(NewSpareInstance); } } else { List <SpareView> items = this.Spares.ToList(); SpareView ind = items.Where(x => x != null).FirstOrDefault(x => x.id == SpareID); if (ind != null) { int i = spares.IndexOf(ind); spares[i] = ind; } else { DataAccess db = new DataAccess(); SpareView sv = db.GetSpareView(SpareID); spares.Add(sv); } } if (!SkipQRestsCalculation) { Helper.CalculateQRests(SpareID); Update(SpareID, true, true); } }
private void SpareMinus() { if (dgSpares.SelectedItem != null) { if ((dgSpares.SelectedItem as SpareView) != null) { SpareView i = (dgSpares.SelectedItem as SpareView); if (!(dgSpares.SelectedItem as SpareView).q_rest.HasValue) { (dgSpares.SelectedItem as SpareView).q_rest = 0; } else { if ((dgSpares.SelectedItem as SpareView).q_rest.Value > 0) { (dgSpares.SelectedItem as SpareView).q_rest--; } da.SpareUpdateQReal(i.id, i.q_rest.Value); } } } }
private int getSelectedSpareId() { int result = 0; try { if (dgSpares.SelectedItem != null) { object sel = dgSpares.SelectedItem; result = ((SpareView)sel).id; } else { MessageBox.Show("Сначала выберите деталь из списка"); } } catch (Exception) { loadSpares(); } return(result); }
private string getSelectedSpareName() { string result = ""; try { if (dgSpares.SelectedItem != null) { object sel = dgSpares.SelectedItem; result = ((SpareView)sel).name; } else { MessageBox.Show("Сначала выберите деталь из списка"); } } catch (Exception) { loadSpares(); } return(result); }
private void DeleteSelectedSpare() { int id = 0; SpareView b = null; if (dgSpares.SelectedItem != null) { object sel = dgSpares.SelectedItem; b = (SpareView)sel; id = b.id; } if (id > 0) { MessageBoxResult res = MessageBox.Show("Вы действительно хотите удалить выделенную запись?", "Удаление!", MessageBoxButton.YesNo); if (res == MessageBoxResult.Yes) { DataAccess da = new DataAccess(); da.SpareDelete(id); loadSpares(); } } }
// ЗАПЧАСТЬ - ДОБАВИТЬ public SpareView SpareCreate() { if (!ready()) { return(null);// null; } SpareView result = null; SpareEditView v = new SpareEditView(); v._id = -1; v.ParentWorkspace = mainWindowObj; v.ShowDialog(); if (v._spare != null) { DataAccess db = new DataAccess(); result = db.GetSpareView(v._spare.id); mainWindowObj.LoadSpares(); mainWindowObj.LoadGroups(false); } return(result); }
//private string code = ""; private void SmartSpareSearch() { if (uc_Spares.grBasket.Visibility != System.Windows.Visibility.Visible) { return; } string SearchCode = edtSearchText.Text; SpareView sv = null; edtSearchText.Clear(); List <SpareView> tmp = SpareContainer.Instance.GetSparesStrict(0, SearchCode); if (tmp.Count > 0) { sv = tmp[0]; } else { //edtSearchString.Content = "НЕ НАЙДЕНО!"; if (MessageBox.Show("Товар не найден. Добавить сейчас новый?", "Добавление товара", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { sv = Marvin.Instance.SpareCreate(); } else { return; } } if (sv != null) { uc_Spares.AddSpareToBasket(sv); } else { //edtSearchString.Content = "error"; } }
// ЗАПЧАСТЬ - УДАЛИТЬ public void SpareDelete(SpareView item) { if (!ready()) { return; } //try { DataAccess da = new DataAccess(); int cnt = SpareContainer.Instance.Spares.Where(s => s.BrandID == item.BrandID && s.GroupID == item.GroupID).Count(); spare sp = da.GetSpare(item.id); if (sp.spare_group == null) { sp.spare_groupReference.Load(); } if (sp.brand == null) { sp.brandReference.Load(); } int BrandID = item.BrandID; int GroupID = item.GroupID; da.SpareDelete(item.id); SpareContainer.Instance.Remove(item.id); // проверить, не последняя ли это деталь в брэнде в данной группе if (cnt < 2) { da.SpareGroupDelete(BrandID, GroupID); } } //catch (Exception ex) { // this.Log(ex.Message); } }
public void Remove(int id) { SpareView sv = Spares.FirstOrDefault(x => x.id == id); spares.Remove(sv); }
public SpareIncomeSmart(int IncID, string filename) { //try { InitializeComponent(); DataAccess db = new DataAccess(); Income = db.SpareIncomeGet(IncID); // readinf csv string[] source = File.ReadAllLines(filename, System.Text.Encoding.Default); int i = 0; foreach (string s in source) { if (i != 0) { string[] fields = s.Split(';'); // 0 код_брэнд string[] f1 = fields[0].Split('_'); string CodeShatem = f1[0]; string BrandName = f1[1]; // 1 количество decimal Q = 0; decimal.TryParse(fields[1], out Q); // 2 код_брэнд_ string[] f2 = fields[2].Split('_'); // string CodeShatem = f1[0]; // string Brand = f1[1]; // string Code = f2[2]; // 3 Цена, доллар decimal Pusd = 0; string p = fields[3].Replace(',', '.'); decimal.TryParse(p, out Pusd); // 4 Цена, евро decimal Peuro = 0; decimal.TryParse(fields[4], out Peuro); // 5 группа string ParentGroup = fields[5]; // 6 группа string Group = fields[6]; // 7 группа string name = fields[7]; // 8 единица измерения string UnitName = fields[8]; // поиск запчасти по коду и брэнду SpareView FoundSpare = null; int searchFieldIndex = 2; // код шате-м List <SpareView> FoundList = SpareContainer.Instance.GetSparesStrict(searchFieldIndex, CodeShatem); if (FoundList.Count == 0) { // если запчасть не найдена, предложить создать новую string mess = "Товар с кодом [" + CodeShatem + "] не найден в базе.\n"; mess += "Название: " + name + "\n"; mess += "Подгруппа: " + Group + "\n"; mess += "Группа: " + ParentGroup + "\n"; mess += "Брэнд: " + BrandName + "\n"; mess += "Создать новый?"; MessageBoxResult answer = MessageBox.Show(mess, "Импорт новой детали", MessageBoxButton.YesNo); if (answer == MessageBoxResult.Yes) { // если создать новую, создать новую деталь FoundSpare = Marvin.Instance.SpareCreateSilent(name, CodeShatem, Group, ParentGroup, BrandName, UnitName, "Импортировано"); } } else if (FoundList.Count == 1) { FoundSpare = FoundList[0]; } else { FoundList = FoundList.Where(x => x.BrandName == BrandName).ToList(); // если есть детали с одинаковым кодом, выбрать по брэнду (группе) if (FoundList.Count == 1) { FoundSpare = FoundList[0]; } } if (FoundSpare != null) { // добавить в список, подставиви количество и цену OfferingAdd(FoundSpare.id, Q, Pusd, Group, ParentGroup); } } i++; } LoadOfferings(); Stage++; dgSpares.IsEnabled = true; } //catch(Exception e) //{ // MessageBox.Show("Ошибка импорта: " + e.Message + "\n" + e.InnerException); //} }
private void BackgroundShowDetails_DoWork(object sender, DoWorkEventArgs e) { // DETAILED INFO IList selectedItems = e.Argument as IList; if (selectedItems.Count == 0) { DetailSpareInfo_Brand = ""; DetailSpareInfo_Group = ""; DetailSpareInfo_Name = ""; Detail_Incomes = null; Detail_Analogues = null; } else { SpareView selected = selectedItems[0] as SpareView; DetailSpareInfo_Brand = selected.BrandName; DetailSpareInfo_Name = selected.name; // построим путь по группам к запчасти // текущая группа DataAccess db = new DataAccess(); spare s = db.GetSpare(selected.id); string gp = s.spare_group.name; // родительская if (s.spare_group1 != null) { gp = s.spare_group1.name + "/" + gp; } // дедушка if (s.spare_group2 != null) { gp = s.spare_group2.name + "/" + gp; } // прадедушка if (s.spare_group3 != null) { gp = s.spare_group3.name + "/" + gp; } DetailSpareInfo_Group = gp; // INCOMES & ANALOGS WINDOWS // anlogues Detail_Analogues = db.GetAnalogues(selected.id); // incomes Detail_Incomes = db.GetIncomes(selected.id); foreach (SpareInSpareIncomeView i in Detail_Incomes) { decimal POutBasic = 0; decimal PInBasic = 0; if (!i.POutBasic.HasValue) { string IncomeCurrencyCode = i.CurrencyCode; decimal PIn = i.PIn.Value; POutBasic = CurrencyHelper.GetBasicPrice(IncomeCurrencyCode, PIn); } else { POutBasic = i.POutBasic.Value; } if (i.PInBasic.HasValue) { PInBasic = i.PInBasic.Value; } else { string IncomeCurrencyCode = i.CurrencyCode; decimal PIn = i.PIn.Value; PInBasic = CurrencyHelper.GetBasicPrice(IncomeCurrencyCode, PIn); } i.DF_PriceInCurrency = CurrencyHelper.GetPrice(currentCurrencyName, POutBasic); i.DF_PriceInCurrencyIn = CurrencyHelper.GetPrice(currentCurrencyName, PInBasic); string strDate = ""; if (i.SpareIncomeDate.Value.Day < 10) { strDate += "0"; } strDate += i.SpareIncomeDate.Value.Day + "."; if (i.SpareIncomeDate.Value.Month < 10) { strDate += "0"; } strDate += i.SpareIncomeDate.Value.Month + "."; strDate += i.SpareIncomeDate.Value.Year; i.DF_Date = strDate; } } }