public void DodajPozycjeFakturyZakupu(PozycjaFakturyZakupu pozycjaFakturyZakupu)
 {
     db.PozycjaFakturyZakupus.InsertOnSubmit(pozycjaFakturyZakupu);
 }
 public void UsunPozycjeFaktury(PozycjaFakturyZakupu PozycjaFaktury)
 {
     db.PozycjaFakturyZakupus.DeleteOnSubmit(PozycjaFaktury);
 }
        public ActionResult DodajPozycjeFakturyZakupu(int id, FormCollection collection)
        {
            PozycjaFakturyZakupu PozycjaFakturyZakupu = new PozycjaFakturyZakupu()
            {
                IdFaktury = id
            };

            if (collection["BruttoNettoRadio"] != null && collection["BruttoNettoRadio"].ToString() == "Brutto")
            {
                //Decimal Brutto = Decimal.Parse(collection["CenaJednostkowa"]);
                //// B = N + N*S/100 => N = B/(1 + S/100)
                //Int32 StawkaVat = Int32.Parse(collection["StawkaVat"]);
                //Decimal Netto = Brutto / (1 + new Decimal(StawkaVat) / 100);
                //PozycjaFakturyZakupu.CenaJednostkowa = Netto;
                PozycjaFakturyZakupu.CzyBrutto = true;
            }
            //else
            //{
            //    PozycjaFakturyZakupu.CenaJednostkowa = Decimal.Parse(collection["CenaJednostkowa"]);
            //}

            PozycjaFakturyZakupu.CenaJednostkowa = Decimal.Parse(collection["CenaJednostkowa"]);

            PozycjaFakturyZakupu.StawkaVat        = Int32.Parse(collection["StawkaVat"]);
            PozycjaFakturyZakupu.IdInwestycji     = Int32.Parse(collection["IdInwestycji"]);
            PozycjaFakturyZakupu.IdJednostkiMiary = Int32.Parse(collection["IdJednostkiMiary"]);
            PozycjaFakturyZakupu.Ilosc            = Int32.Parse(collection["Ilosc"]);
            PozycjaFakturyZakupu.Opis             = collection["Opis"];
            string DialogElementId = collection["DialogElementId"];
            string GridElementId   = collection["GridElementId"];

            // nadanie kolejnego numeru pozycji
            FakturaZakupu Faktura = FakturyZakupuRepository.FakturaZakupu(id);

            if (Faktura == null)
            {
                return(Content("Nie powiodło się dodawane pozycji faktury")); // TODO: zwracac content?
            }

            if (Faktura.PozycjaFakturyZakupus != null && Faktura.PozycjaFakturyZakupus.Count > 0)
            {
                PozycjaFakturyZakupu.NumerPozycji = (Faktura.PozycjaFakturyZakupus.Max(p => p.NumerPozycji)) + 1;
            }
            else
            {
                PozycjaFakturyZakupu.NumerPozycji = 1;
            }

            if (PozycjaFakturyZakupu.IsValid)
            {
                // lista pozycji przed dodaniem tej nowej do bazy
                var Model = FakturyZakupuRepository.FakturaZakupu(id);

                // dodanie nowej pozycji do bazy
                FakturyZakupuRepository.DodajPozycjeFakturyZakupu(PozycjaFakturyZakupu);
                FakturyZakupuRepository.Save();

                // dodanie nowej do juz wyciagnietej listy - takie sztuczki, bo zaciagniecie listy pozycji zaraz po DodajPozycjeFakturyZakupu
                // nie zawsze zwracalo nowa pozycje - baza nie zdazyla przetworzyc INSERTa i zwracala liste bez nowej pozycji
                Model.PozycjaFakturyZakupus.Add(PozycjaFakturyZakupu);

                return(PartialView("_GridPozycjeFakturyZakupu", new ReadOnlyAbleModel <FakturaZakupu>(Model, false, DialogElementId, GridElementId)));
            }

            return(Content("Nie powiodło się dodawane pozycji faktury"));
        }