Witam,
Ponieważ pierwszy raz zajmuje się logiką biznesową proszę o przykład w jaki sposób mógłbym zaimplementować funkcje ObliczMarze() oraz ObliczCeneSprzedazy() żeby obliczało mi poprawnie pola z bazy danych. Oczywiście mogą być różne pomysły
Z góry dziękuję i Pozdrawiam
Poniżej klasa dodająca towary z właściwościami odpowiadającymi polom w bazie danych.
using MVVMFirma.Model.Entities;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MVVMFirma.ViewModel
{
public class NowyTowarViewModel : JedenViewModel<TowaryWMagazynie>, IDataErrorInfo
{
#region Konstruktor
public NowyTowarViewModel()
{
base.DisplayName = "Nowy Towar";
item = new TowaryWMagazynie();
}
#endregion Konstruktor
//public decimal? ObliczMarze()
//{
// return
// (
// from pozycja in fakturyEntities.TowaryWMagazynie
// select pozycja.CenaZakupuBrutto * pozycja.Marza / 100
// ).Sum();
//}
//public decimal? ObliczCeneSprzedazy()
//{
// return
// (
// from pozycja in fakturyEntities.TowaryWMagazynie
// select pozycja.CenaZakupuBrutto + pozycja.Marza
// ).Sum();
//}
#region Propertis
//Dla każdego pola edytowalnego dla widoku należy utworzyć propertisa.
public int IdJednostkiMiary
{
get
{
return item.IdJednostkiMiary; //Najerzdzamy na pole i sprawdzamy czy z znakiem zapytania.
}
set
{
if(item.IdJednostkiMiary != value)
{
item.IdJednostkiMiary = value;
OnPropertyChanged(() => IdJednostkiMiary);
}
}
}
public IQueryable<Asortyment_JM> JednostkiMiaryComboboxItems
{
get
{
return
(
from jednostkiMiary in fakturyEntities.Asortyment_JM
where jednostkiMiary.Active == true
select jednostkiMiary
).ToList().AsQueryable(); //Wypełnienie comboBox-a Jednostkami Miary.
}
}
public int IdStawkiVat
{
get
{
return item.IdStawkiVat;
}
set
{
if (item.IdStawkiVat != value)
{
item.IdStawkiVat = value;
OnPropertyChanged(() => IdStawkiVat);
}
}
}
//Zrobimy teraz propertisa obsługującego ComboBoxa.
public IQueryable<Asortyment_KODVAT> StawkiVATComboboxItems
{
get
{
return
(
from stawkaVAT in fakturyEntities.Asortyment_KODVAT
where stawkaVAT.Active == true
select stawkaVAT
).ToList().AsQueryable();
}
}
public string KodTowaru
{
get
{
return item.KodTowaru;
}
set
{
if (item.KodTowaru != value)
{
item.KodTowaru = value;
OnPropertyChanged(() => KodTowaru);
}
}
}
public string NazwaTowaru
{
get
{
return item.NazwaTowaru;
}
set
{
if(item.NazwaTowaru !=value)
{
item.NazwaTowaru = value;
OnPropertyChanged(() => NazwaTowaru);
}
}
}
public decimal Stan
{
get
{
return item.Stan;
}
set
{
if(item.Stan != value)
{
item.Stan = value;
OnPropertyChanged(()=> Stan);
}
}
}
public decimal? CenaZakupuBrutto
{
get
{
return item.CenaZakupuBrutto;
}
set
{
if (item.CenaZakupuBrutto != value)
{
item.CenaZakupuBrutto = value;
OnPropertyChanged(() => CenaZakupuBrutto);
}
}
}
public decimal? Marza
{
get
{
return item.Marza;
}
set
{
if (item.Marza != value)
{
item.Marza = value;
OnPropertyChanged(() => Marza);
}
}
}
public decimal? CenaSprzedazyBrutto
{
get
{
return item.CenaSprzedazyBrutto;
}
set
{
if (item.CenaSprzedazyBrutto != value)
{
item.CenaSprzedazyBrutto = value;
OnPropertyChanged(() => CenaSprzedazyBrutto);
}
}
}
public bool Active
{
get
{
return item.Active;
}
set
{
if(item.Active !=value)
{
item.Active = value;
OnPropertyChanged(() => Active);
}
}
}
#endregion Propertis
#region Validation
public string Error
{
get
{
return null;
}
}
#region Helpers
public override void save()
{
fakturyEntities.TowaryWMagazynie.Add(item);
fakturyEntities.SaveChanges();
}
#endregion Helpers
}
}