コード例 #1
0
ファイル: FrmDevir.cs プロジェクト: EmreDemir0/BenimSalonum
        private void DevirYap()
        {
            //OdemeTuru Aktarımı
            OdemeTuru yeniOdeme = new OdemeTuru();

            if (toggleOdemeTuruAktar.IsOn)
            {
                foreach (var item in kaynakContext.OdemeTurleri.AsNoTracking().ToList())
                {
                    hedefContext.OdemeTurleri.Add(item);
                }
            }
            else
            {
                yeniOdeme.OdemeTuruKodu = "001";
                yeniOdeme.OdemeTuruAdi  = "Nakit";
                hedefContext.OdemeTurleri.Add(yeniOdeme);
            }
            //Kasa Aktarımı
            Kasa yeniKasa = new Kasa();

            if (toggleKasaAktar.IsOn)
            {
                foreach (var item in kaynakContext.Kasalar.AsNoTracking().ToList())
                {
                    hedefContext.Kasalar.Add(item);
                }
            }
            else
            {
                yeniKasa.KasaKodu = "001";
                yeniKasa.KasaAdi  = "Merkez Kasa";
                hedefContext.Kasalar.Add(yeniKasa);
            }

            //Depo Aktarımı
            Depo yeniDepo = new Depo();

            if (toggleDepoAktar.IsOn)
            {
                foreach (var item in kaynakContext.Depolar.AsNoTracking().ToList())
                {
                    hedefContext.Depolar.Add(item);
                }
            }
            else
            {
                yeniDepo.DepoKodu = "001";
                yeniDepo.DepoAdi  = "Merkez Depo";
                hedefContext.Depolar.Add(yeniDepo);
            }

            hedefContext.SaveChanges();
            //Tanım Aktarımı
            if (toggleTanimlariAktar.IsOn)
            {
                foreach (var item in kaynakContext.Tanimlar.AsNoTracking().ToList())
                {
                    hedefContext.Tanimlar.Add(item);
                }
            }
            //Kod Aktarımı
            if (toggleKodlariAktar.IsOn)
            {
                foreach (var item in kaynakContext.Kodlar.AsNoTracking().ToList())
                {
                    hedefContext.Kodlar.Add(item);
                }
            }
            //Ajanda Aktarımı
            if (toggleAjandaAktar.IsOn)
            {
                foreach (var item in kaynakContext.EFAppointments.AsNoTracking().ToList())
                {
                    hedefContext.EFAppointments.Add(item);
                }
                foreach (var item in kaynakContext.EFResources.AsNoTracking().ToList())
                {
                    hedefContext.EFResources.Add(item);
                }
            }
            //Kullanıcı Aktarımı
            if (toggleKullaniciAktar.IsOn)
            {
                foreach (var item in kaynakContext.Kullanicilar.AsNoTracking().ToList())
                {
                    hedefContext.Kullanicilar.Add(item);
                }
                foreach (var item in kaynakContext.KullaniciRolleri.AsNoTracking().ToList())
                {
                    hedefContext.KullaniciRolleri.Add(item);
                }
            }
            //Kod Aktarımı
            if (toggleKodlariAktar.IsOn)
            {
                foreach (var item in kaynakContext.Kodlar.AsNoTracking().ToList())
                {
                    hedefContext.Kodlar.Add(item);
                }
            }

            //Stok Aktarımı
            if (toggleStokAktar.IsOn)
            {
                StokDAL stokDal = new StokDAL();
                //iNDİRİM AKTARIMI
                if (toggleStokIndirimAktar.IsOn)
                {
                    foreach (var itemIndirim in kaynakContext.Indirimler.AsNoTracking().ToList())
                    {
                        hedefContext.Indirimler.Add(itemIndirim);
                    }
                }
                // HİZLİ SATIŞLAR AKTARIMI
                if (toggleStokHizliSatisAktar.IsOn)
                {
                    foreach (var itemHizliSatisGrup in kaynakContext.HizliSatisGruplari.AsNoTracking().ToList())
                    {
                        hedefContext.HizliSatisGruplari.Add(itemHizliSatisGrup);
                    }
                    foreach (var itemHizliSatis in kaynakContext.HizliSatislar.AsNoTracking().ToList())
                    {
                        hedefContext.HizliSatislar.Add(itemHizliSatis);
                    }
                }

                foreach (var item in kaynakContext.Stoklar.AsNoTracking().ToList())
                {
                    hedefContext.Stoklar.Add(item);

                    if (toggleStokHareketAktar.IsOn && toggleStokGirisCikisAktar.IsOn)
                    {
                        StokBakiye bakiye = stokDal.StokBakiyesi(kaynakContext, item.Id);

                        if (bakiye.MevcutStok != 0)
                        {
                            Fis         stokDevirFisi = new Fis();
                            StokHareket hareketGiris  = new StokHareket();


                            //STOK GİRİŞ
                            stokDevirFisi.FisTuru     = "Stok Devir Fişi";
                            stokDevirFisi.FisKodu     = kodOlustur.yeniDevirFisiOlustur();
                            stokDevirFisi.Tarih       = DateTime.Now;
                            stokDevirFisi.ToplamTutar = bakiye.StokGiris * item.AlisFiyati1; // bu gereksiz olabilr.
                            hedefContext.Fisler.Add(stokDevirFisi);

                            hareketGiris.StokId      = item.Id;
                            hareketGiris.Hareket     = "Stok Giriş";
                            hareketGiris.Miktar      = bakiye.StokGiris;
                            hareketGiris.FisKodu     = stokDevirFisi.FisKodu;
                            hareketGiris.BirimFiyati = item.AlisFiyati1;
                            hareketGiris.Kdv         = item.AlisKdv;
                            hareketGiris.Tarih       = DateTime.Now;
                            hareketGiris.DepoId      = toggleDepoAktar.IsOn ? Convert.ToInt32(lookUpDepoKodu.EditValue) : yeniDepo.Id;
                            //Clone aldığımızda problem olmaması için. sadece kaydı ifledik.
                            if (bakiye.StokGiris > 0)
                            {
                                hedefContext.StokHareketleri.Add(hareketGiris);
                            }

                            //STOK ÇIKIŞ
                            if (bakiye.StokCikis > 0)
                            {
                                Fis StokCikisDevir = stokDevirFisi.Clone();
                                StokCikisDevir.FisKodu     = kodOlustur.yeniDevirFisiOlustur();
                                StokCikisDevir.ToplamTutar = bakiye.StokCikis * item.SatisFiyati1;
                                hedefContext.Fisler.Add(StokCikisDevir);

                                StokHareket hareketCikis = hareketGiris.Clone();
                                hareketCikis.FisKodu     = StokCikisDevir.FisKodu;
                                hareketCikis.Hareket     = "Stok Çıkış";
                                hareketCikis.Miktar      = bakiye.StokCikis;
                                hareketCikis.BirimFiyati = item.SatisFiyati1;
                                hareketCikis.Kdv         = item.SatisKdv;
                                hedefContext.StokHareketleri.Add(hareketCikis);
                            }
                        }
                    }
                }
            }

            //CARİ DEVİR İŞLEMLERİ
            if (toggleCariAktar.IsOn)
            {
                foreach (var item in kaynakContext.Cariler.AsNoTracking().ToList())
                {
                    CariDAL    cariDal = new CariDAL();
                    CariBakiye bakiye  = cariDal.CariBakiyesi(kaynakContext, item.Id);
                    hedefContext.Cariler.Add(item);
                    if (toggleCariBakiyeAktar.IsOn && toggleCariBorcAlacakAktar.IsOn)
                    {
                        if (bakiye.Bakiye != 0)
                        {
                            Fis cariDevir = new Fis();
                            cariDevir.CariId      = item.Id;
                            cariDevir.FisTuru     = "Cari Devir Fişi";
                            cariDevir.Tarih       = DateTime.Now;
                            cariDevir.FisKodu     = kodOlustur.yeniDevirFisiOlustur();
                            cariDevir.ToplamTutar = Math.Abs(bakiye.Bakiye);
                            if (bakiye.Bakiye < 0)
                            {
                                cariDevir.Borc   = Math.Abs(bakiye.Bakiye);
                                cariDevir.Alacak = null;
                                hedefContext.Fisler.Add(cariDevir);

                                KasaHareket kasaBorc = new KasaHareket();
                                kasaBorc.FisKodu     = cariDevir.FisKodu;
                                kasaBorc.CariId      = item.Id;
                                kasaBorc.Hareket     = "Kasa Çıkış";
                                kasaBorc.KasaId      = toggleKasaAktar.IsOn ? Convert.ToInt32(lookUpKasaKodu.EditValue) : yeniKasa.Id;
                                kasaBorc.OdemeTuruId = toggleOdemeTuruAktar.IsOn ? Convert.ToInt32(lookUpOdemeTuruKodu.EditValue) : yeniOdeme.Id;
                                kasaBorc.Tarih       = DateTime.Now;
                                kasaBorc.Tutar       = Math.Abs(bakiye.Bakiye);
                                hedefContext.KasaHareketleri.Add(kasaBorc);
                            }
                            else
                            {
                                cariDevir.Borc   = null;
                                cariDevir.Alacak = Math.Abs(bakiye.Bakiye);;
                                hedefContext.Fisler.Add(cariDevir);

                                KasaHareket kasaAlacak = new KasaHareket();
                                kasaAlacak.FisKodu     = cariDevir.FisKodu;
                                kasaAlacak.CariId      = item.Id;
                                kasaAlacak.Hareket     = "Kasa Giriş";
                                kasaAlacak.KasaId      = toggleKasaAktar.IsOn ? Convert.ToInt32(lookUpKasaKodu.EditValue) : yeniKasa.Id;
                                kasaAlacak.OdemeTuruId = toggleOdemeTuruAktar.IsOn ? Convert.ToInt32(lookUpOdemeTuruKodu.EditValue) : yeniOdeme.Id;
                                kasaAlacak.Tarih       = DateTime.Now;
                                kasaAlacak.Tutar       = Math.Abs(bakiye.Bakiye);
                                hedefContext.KasaHareketleri.Add(kasaAlacak);
                            }
                        }
                    }
                    else if (toggleCariBakiyeAktar.IsOn && !toggleCariBorcAlacakAktar.IsOn)
                    {
                        if (bakiye.Alacak != 0)
                        {
                            Fis alacakFis = new Fis();
                            alacakFis.CariId      = item.Id;
                            alacakFis.FisTuru     = "Cari Devir Fişi";
                            alacakFis.Tarih       = DateTime.Now;
                            alacakFis.FisKodu     = kodOlustur.yeniDevirFisiOlustur();
                            alacakFis.Alacak      = Math.Abs(bakiye.Bakiye);
                            alacakFis.Borc        = null;
                            alacakFis.ToplamTutar = bakiye.Alacak;

                            hedefContext.Fisler.Add(alacakFis);

                            KasaHareket alacak = new KasaHareket();
                            alacak.FisKodu     = alacakFis.FisKodu;
                            alacak.CariId      = item.Id;
                            alacak.Hareket     = "Kasa Giriş";
                            alacak.KasaId      = toggleKasaAktar.IsOn ? Convert.ToInt32(lookUpKasaKodu.EditValue) : yeniKasa.Id;
                            alacak.OdemeTuruId = toggleOdemeTuruAktar.IsOn ? Convert.ToInt32(lookUpOdemeTuruKodu.EditValue) : yeniOdeme.Id;
                            alacak.Tarih       = DateTime.Now;
                            alacak.Tutar       = Math.Abs(bakiye.Alacak);
                            hedefContext.KasaHareketleri.Add(alacak);
                        }
                        if (bakiye.Borc != 0)
                        {
                            Fis borcFis = new Fis();
                            borcFis.CariId      = item.Id;
                            borcFis.FisTuru     = "Cari Devir Fişi";
                            borcFis.Tarih       = DateTime.Now;
                            borcFis.FisKodu     = kodOlustur.yeniDevirFisiOlustur();
                            borcFis.Alacak      = null;
                            borcFis.Borc        = bakiye.Borc;
                            borcFis.ToplamTutar = bakiye.Alacak;

                            hedefContext.Fisler.Add(borcFis);

                            KasaHareket kasaBorc = new KasaHareket();
                            kasaBorc.FisKodu     = borcFis.FisKodu;
                            kasaBorc.CariId      = item.Id;
                            kasaBorc.Hareket     = "Kasa Çıkış";
                            kasaBorc.KasaId      = toggleKasaAktar.IsOn ? Convert.ToInt32(lookUpKasaKodu.EditValue) : yeniKasa.Id;
                            kasaBorc.OdemeTuruId = toggleOdemeTuruAktar.IsOn ? Convert.ToInt32(lookUpOdemeTuruKodu.EditValue) : yeniOdeme.Id;
                            kasaBorc.Tarih       = DateTime.Now;
                            kasaBorc.Tutar       = Math.Abs(bakiye.Alacak);
                            hedefContext.KasaHareketleri.Add(kasaBorc);
                        }
                    }
                }
            }
            if (toggleCariPersonelleriAktar.IsOn)
            {
                foreach (var item in kaynakContext.Personeller.AsNoTracking().ToList())
                {
                    hedefContext.Personeller.Add(item);
                }
            }

            hedefContext.SaveChanges();
        }