public void garanti_iade(int garanti_id, decimal iade_tutar, string aciklama, int CustID, string kullanici) { //iade alındığında yeni bir stok_fifos girer ve açıklama olarak da iade gireriz- cihaz_garantis c = dc.cihaz_garantis.FirstOrDefault(x => x.ID == garanti_id); if (c != null) { //faturaya iade_id'yi işaretle //fatura iptal edilirken cari güncelleniyor(triggerda) //önce iade alınıp sonra fatura iptal edildiğinde cari de çift kayıt oluyordu //bunun için faturaya service hesabına göre arayıp iade_id'yi yazdırıyorum //triggerda cari hesap güncellenirken iade_id' null ise cari güncelleme yapıyor. List <fatura> hesapFaturalari = (from f in dc.faturas where f.servicehesap_id == c.servicehesap_id && (f.iptal == null || f.iptal == false) select f).ToList(); foreach (fatura fati in hesapFaturalari) { fati.iade_id = garanti_id; fati.updated = kullanici; } musteriodemeler mo = new musteriodemeler(); mo.Aciklama = c.adet + " Adet " + c.cihaz.cihaz_adi + " " + "Cihaz iadesi " + aciklama; mo.belge_no = ""; mo.iade_id = garanti_id; mo.iptal = false; mo.kullanici = kullanici; mo.KullaniciID = kullanici; mo.mahsup_key = ""; mo.Musteri_ID = CustID; mo.no = "-"; mo.OdemeMiktar = iade_tutar; mo.OdemeTarih = DateTime.Now; mo.islem_tarihi = DateTime.Now; mo.inserted = kullanici; mo.tahsilat_odeme = "tahsilat"; mo.tahsilat_turu = "iade"; mo.taksit_no = 0; mo.Firma = "firma"; dc.musteriodemelers.Add(mo); c.durum = "iade"; c.iade_tutar = iade_tutar; c.aciklama = aciklama; //iadeyi cihaz fifo girelim cihaz_fifos fifo = new cihaz_fifos(); fifo.bakiye = 1; fifo.cihaz_id = c.cihaz_id; fifo.cikis = 0; fifo.fiyat = iade_tutar; fifo.giris = 1; fifo.iptal = false; fifo.tarih = DateTime.Now; dc.cihaz_fifos.Add(fifo); KaydetmeIslemleri.kaydetR(dc); } }
public void StokGuncelle(decimal stok, int cihazid, decimal birim_maliyet, bool sinir) { cihaz_stoks cs = dc.cihaz_stoks.FirstOrDefault(x => x.cihaz_id == cihazid); decimal simdikiStok = cs.bakiye; decimal simdikiGiris = cs.giris; decimal simdikiBakiye = cs.bakiye; decimal girilecek = 0; decimal cikilacak = 0; if (stok > simdikiBakiye) { //yeni giriş yapılacak decimal fark = stok - simdikiBakiye; girilecek = fark; } else if (stok < simdikiBakiye) { //çıkış yapılacak decimal fark = simdikiBakiye - stok; cikilacak = fark; } cs.bakiye = stok; cs.cikis += cikilacak; cs.giris += girilecek; cs.son_alis_fiyati = birim_maliyet; //cihaz fifonun da güncellenmesi gerek //bunun için varsa daha önceki bakiyesi olan bütün fifolar iptal edilir //ve yukarıdaki bakiye bilgisi fioya ogünün tarihi ile girilir var fifos = dc.cihaz_fifos.Where(x => x.cihaz_id == cihazid && x.bakiye > 0 && x.iptal == false); foreach (var f in fifos) { f.iptal = true; } cihaz_fifos cf = new cihaz_fifos(); cf.cihaz_id = cihazid; cf.cikis = 0; cf.fiyat = birim_maliyet; cf.giris = stok; cf.bakiye = stok; cf.tarih = DateTime.Now; cf.sinirsiz = sinir; cf.iptal = false; dc.cihaz_fifos.Add(cf); KaydetmeIslemleri.kaydetR(dc); }