protected override void TaksitOlustur() { if (_faturaPlaniKartlari != null) { TopluFaturaPlani(); return; } var tahakkukId = _alinanHizmetlerSource.Select(x => x.TahakkukId).First(); var alinanHizmetler = _alinanHizmetlerSource.Select(x => x.HizmetAdi).ToList(); var hizmetlerToplami = _alinanHizmetlerSource.Sum(x => x.BrutUcret); var indirimlerToplami = _alinanHizmetlerSource.Sum(x => x.Indirim); var ilkFaturaTarih = txtIlkFaturaTarih.DateTime.Date; var faturaAdet = (int)txtAdet.Value; var sabitTutar = txtSabitTutar.Value; var ozelTahakkuk = txtOzetTahakkuk.Text.GetEnum <EvetHayir>(); var ozetAciklama = txtOzetTahakkukAciklama.Text; var girilenBrutTutarToplami = _faturaPlaniSource.Cast <FaturaPlaniL>().Where(x => !x.Delete).Sum(x => x.PlanTutar); var girilenIndirimTutarToplami = _faturaPlaniSource.Cast <FaturaPlaniL>().Where(x => !x.Delete).Sum(x => x.PlanIndirimTutar); var girilecekBrutTutar = sabitTutar > 0 ? sabitTutar : Math.Round((hizmetlerToplami - girilenBrutTutarToplami) / faturaAdet, AnaForm.DonemParametreleri.FaturaTahakkukKurusKullan ? 2 : 0); var girilecekIndirimTutar = sabitTutar > 0 ? 0 : Math.Round((indirimlerToplami - girilenIndirimTutarToplami) / faturaAdet, AnaForm.DonemParametreleri.FaturaTahakkukKurusKullan ? 2 : 0); var girilecekNetTutar = (girilecekBrutTutar - girilecekIndirimTutar); if (girilecekBrutTutar <= 0) { Messages.UyariMesaji("Verilen Hizmetler Toplamı Kadar Fatura Planı Zaten Oluşturulmuş."); return; } for (int i = 0; i < faturaAdet; i++) { var row = new FaturaPlaniL { TahakkukId = tahakkukId, Aciklama = ozelTahakkuk == EvetHayir.Evet ? ozetAciklama : AlinanHizmetler(alinanHizmetler) + " Bedeli", PlanTarih = ilkFaturaTarih.AddMonths(i), PlanTutar = girilecekBrutTutar, PlanIndirimTutar = girilecekIndirimTutar, PlanNetTutar = girilecekNetTutar, Insert = true, }; if (txtOzetTahakkuk.Text.GetEnum <EvetHayir>() == EvetHayir.Evet) { row.Aciklama = ozetAciklama; } if (txtAyBilgisi.Text.GetEnum <EvetHayir>() == EvetHayir.Evet) { var ay = (Aylar)row.PlanTarih.Month; row.Aciklama = ay.ToName() + "-" + row.PlanTarih.Year + " Ayı" + row.Aciklama; } if (i + 1 == faturaAdet && sabitTutar == 0) { row.PlanTutar = hizmetlerToplami - _faturaPlaniSource.Cast <FaturaPlaniL>().Where(x => !x.Delete).Sum(x => x.PlanTutar); row.PlanIndirimTutar = indirimlerToplami - _faturaPlaniSource.Cast <FaturaPlaniL>().Where(x => !x.Delete).Sum(x => x.PlanIndirimTutar); row.PlanNetTutar = row.PlanTutar - row.PlanIndirimTutar; } _faturaPlaniSource.Add(row); } DialogResult = DialogResult.OK; Close(); }
private void TopluFaturaPlani() { if (Messages.HayirSeciliEvetHayir("Toplu Fatura Planı Oluşturulacaktır. Onaylıyor musunuz?", "Onay") != DialogResult.Yes) { return; } var ilkFaturaTarih = txtIlkFaturaTarih.DateTime.Date; var faturaAdet = (int)txtAdet.Value; var sabitTutar = txtSabitTutar.Value; var ozelTahakkuk = txtOzetTahakkuk.Text.GetEnum <EvetHayir>(); var ozetAciklama = txtOzetTahakkukAciklama.Text; var position = 0.0; using (var faturaBll = new FaturaBll()) { using (var hizmetBilgileriBll = new HizmetBilgileriBll()) { _faturaPlaniKartlari.ForEach(x => { var yuzde = 100.0 / _faturaPlaniKartlari.Count; position += yuzde; var hizmetTutar = x.HizmetTutar; var hizmetIndirim = x.HizmetIndirim; var planTutar = x.PlanTutar; var planIndirim = x.PlanIndirim; var alinanHizmetler = AlinanHizmetler(hizmetBilgileriBll.FaturaPlaniList(y => y.TahakkukId == x.Id).Select(y => y.HizmetAdi).ToList()); var girilecekBrutTutar = sabitTutar > 0 ? sabitTutar : Math.Round((hizmetTutar - planTutar) / faturaAdet, AnaForm.DonemParametreleri.FaturaTahakkukKurusKullan ? 2 : 0); var girilecekIndirimTutar = sabitTutar > 0 ? 0 : Math.Round((hizmetIndirim - planIndirim) / faturaAdet, AnaForm.DonemParametreleri.FaturaTahakkukKurusKullan ? 2 : 0); var girilecekNetTutar = (girilecekBrutTutar - girilecekIndirimTutar); if (hizmetTutar == 0 || hizmetTutar == planTutar & hizmetIndirim == planIndirim) { progressBarControl.Position = 100; return; } for (int i = 0; i < faturaAdet; i++) { var row = new FaturaPlaniL { TahakkukId = x.Id, Aciklama = ozelTahakkuk == EvetHayir.Evet ? ozetAciklama : alinanHizmetler + " Bedeli", PlanTarih = ilkFaturaTarih.AddMonths(i), PlanTutar = girilecekBrutTutar, PlanIndirimTutar = girilecekIndirimTutar, PlanNetTutar = girilecekNetTutar, Insert = true, }; if (txtOzetTahakkuk.Text.GetEnum <EvetHayir>() == EvetHayir.Evet) { row.Aciklama = ozetAciklama; } if (txtAyBilgisi.Text.GetEnum <EvetHayir>() == EvetHayir.Evet) { var ay = (Aylar)row.PlanTarih.Month; row.Aciklama = ay.ToName() + "-" + row.PlanTarih.Year + " Ayı" + row.Aciklama; } if (i + 1 == faturaAdet && sabitTutar == 0) { row.PlanTutar = (hizmetTutar - planTutar) - (girilecekBrutTutar * i); row.PlanIndirimTutar = (hizmetIndirim - planIndirim) - (girilecekIndirimTutar * i); row.PlanNetTutar = row.PlanTutar - row.PlanIndirimTutar; } if (!faturaBll.InsertSingle(row)) { return; } progressBarControl.Position = (int)position; progressBarControl.Update(); } }); } } Messages.BilgiMesaji("Fatura Planı Oluşturma İşlemi Başarılı Bir Şekilde Tamamlanmıştır."); DialogResult = DialogResult.OK; Close(); }