Example #1
0
        public void MaasInvoice(Guid personalid)
        {
            Guid                   fatid       = Guid.NewGuid();
            Personeller            personal    = _personel.Find(personalid);
            SirketBilgiTB          sirket      = _sirket.Find();
            IEnumerable <Izinler>  izinler     = CalcIzin(personalid);
            IEnumerable <Avanslar> avanslar    = CalcAvans(personalid);
            decimal                gunlukUcret = CalcGunlukUcret(personalid);

            DateTime sonMaasTarihi     = CalcMaas(personalid);
            int      toplamCalismaGunu = (
                DateTime.Now - sonMaasTarihi).Days;
            decimal        maas        = toplamCalismaGunu * gunlukUcret;
            decimal        kesintiler  = 0;
            List <ItemRow> aciklamalar = new List <ItemRow>();

            foreach (var item in izinler)
            {
                var izinSuresi = item.IzinSuresi - item.IzinTarihi;
                aciklamalar.Add(
                    ItemRow.Make("İZİN", $"Izin kesintisi-{item.IzinTarihi.Date.ToShortDateString()} alından {izinSuresi.Days.ToString()} günlük izin ", izinSuresi.Days, 0, gunlukUcret, gunlukUcret * izinSuresi.Days));
                kesintiler += gunlukUcret * izinSuresi.Days;
            }
            foreach (var item in avanslar)
            {
                aciklamalar.Add(ItemRow.Make("AVANS", $"Avans kesintisi - {item.AvansTarihi.Date.ToShortDateString()}", 1, 0, item.AvansTutari, item.AvansTutari));
                kesintiler += item.AvansTutari;
            }

            aciklamalar.Add(ItemRow.Make("MAAŞ BİLGİSİ", $"Günlük çalışma ücreti {gunlukUcret}", toplamCalismaGunu, 0, gunlukUcret, maas));

            new InvoicerApi(SizeOption.A4, OrientationOption.Landscape, "₺")
            .TextColor("#8C2234")
            .BackColor("#FFD6CC").Title($"{sirket.Name} Personel Maaş Faturası")
            .Image(sirket.Logo, 127, 85)
            .Company(Address.Make($"ÖDEME YAPAN", new string[] { sirket.Name, sirket.Phone, sirket.VATNo, sirket.Address }, sirket.Name, sirket.VATNo))
            .Client(Address.Make("ÖDEME ALAN", new string[] { $"Adı Soyadı :{personal.AdSoyad}", $"Görevi :{personal.Gorevi}", $"Telefon :{personal.Telefon}" }))
            .Items(aciklamalar)
            .Totals(new List <TotalRow> {
                TotalRow.Make("KESİNTİLER", -kesintiler),
                TotalRow.Make("GÜN BAŞINA ÇALIŞMA", maas),
                TotalRow.Make("TOPLAM KESİN ÜCRET(MAAŞ)", maas - kesintiler, true),
            })
            .Details(new List <DetailRow> {
                DetailRow.Make("Maaş ödeme faturası",
                               "Personel maaş bordrosu yerine kullanılabilir.",
                               "",
                               $"Ek bu faturada,İkra yemek fabrikası çalışanı {personal.AdSoyad} 'ın maaş ödemesinin yapıldığını gösterir.Çeşitli nedenlerle kesintileri varsa bu faturada belirtilir.")
            })
            .Footer("http://www.ikrayemek.com.tr").Reference(fatid.ToString().Substring(0, 32))
            .Save();
            Maaslar yeniMaasOdemesi = new Maaslar();

            yeniMaasOdemesi.Id                 = fatid;
            yeniMaasOdemesi.PersonelId         = personalid;
            yeniMaasOdemesi.OdemeTutari        = maas - kesintiler;
            yeniMaasOdemesi.SonMaasDonemTarihi = DateTime.Now;
            yeniMaasOdemesi.FaturaId           = fatid.ToString().Substring(0, 32);
            yeniMaasOdemesi.Odendi             = true;
            Insert(yeniMaasOdemesi);
            _kasa.InsertMaas(yeniMaasOdemesi);
            foreach (var item in izinler)
            {
                item.MaastanDusurulduMu = true;
                _izin.Update(item);
            }
            foreach (var item in avanslar)
            {
                item.MaastanDusulduMu = true;
                _avans.Update(item);
            }
        }
Example #2
0
 public void Update(Avanslar model)
 {
     _manager.Update(model);
 }