Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }