Skocz do zawartości

cena pozycji

Polecane posty

Witam

Tworze zk na usluge. Usluga nie ma wypelnionej ceny.

Dopiero na zk ma sie pojawiac cena pozycji. Kombinuje jak kon pod gore i nic.

W GUI mozna tak zrobic, tzn dodac pozycje i ustalic cene, kod tez dziala, ale cena/wartosc jest zawsze zero.

 

                Asortyment a = asortyment.Dane.Wszystkie().Where(t => t.Symbol == excelSymbolTowaru).FirstOrDefault();
                if (a is null)
                {
                    Tworze_Towar(excelSymbolTowaru);
                    a = asortyment.Dane.Wszystkie().Where(t => t.Symbol == excelSymbolTowaru).FirstOrDefault();
                    a.WalutaCenyEwidencyjnej = walutyDD.EUR;
                    a.CenaEwidencyjna = 400;
                }
                PozycjaDokumentu poz = new PozycjaDokumentu();
                Wartosc wartosc = new Wartosc();
                wartosc.BruttoPoRabacie = 400;
                //wartosc.NettoPoRabacie = 400;
                //wartosc.BruttoPrzedRabatem = 400;
                //wartosc.BruttoPoRabacie = 400;
                //wartosc.VatPrzedRabatem = 0;
                //wartosc.VatPoRabacie = 0;
                poz.Wartosc = wartosc;
                poz = zk.Pozycje.Dodaj(a, 1, a.JednostkaSprzedazy);
                zk.Przelicz();

 

Link to postu

Po pierwsze to najpierw Pan tworzy pozycję w linii:

PozycjaDokumentu poz = new PozycjaDokumentu();

a następnie tworzy Pan jeszcze raz nową pozycję w linii:

poz = zk.Pozycje.Dodaj(a, 1, a.JednostkaSprzedazy);

Więc te zmiany, które są wprowadzane między tymi liniami i tak nie są w ogóle uwzględniane. Najlepiej po prostu skorzystać z tej metody dodającej pozycję, z której Pan skorzystał i pozycję zwracaną przez tę metodę edytować wedle własnych potrzeb. Na przykład tak:

PozycjaDokumentu poz = zk.Pozycje.Dodaj(a, 1, a.JednostkaSprzedazy);
poz.Cena.BruttoPrzedRabatem = 123m;

Nie ma konieczności tworzenia nowych obiektów typu Wartosc lub Cena czyli własności PozycjaDokumentu.Wartosc lub PozycjaDokumentu.Cena tak jak Pan to robi w linii:

Wartosc wartosc = new Wartosc();

Te własności będą utworzone zawsze po utworzeniu pozycji.

Dodatkowo nie do końca wiem jaki jest cel tych dwóch linii w Pańskim kodzie:

                    a.WalutaCenyEwidencyjnej = walutyDD.EUR;
                    a.CenaEwidencyjna = 400;

Te zmiany nigdy nie zostaną zaaplikowane ponieważ nie został utworzony obiekt IAsortyment, który odpowiada za edycję asortymentu. Wydaje mi się, że to powinno być zawarte wewnątrz funkcji:

Tworze_Towar

Gdzie zapewne coś takiego się odbywa.

  • Lubię to 1
Link to postu
×
×
  • Dodaj nową pozycję...