Пример #1
0
        private void btnKaydet_Click(object sender, EventArgs e)
        {
            if (_fisentity.FisTuru == "Cari Devir Fişi")
            {
                if (toggleBakiyeTuru.IsOn)
                {
                    ayarlar.KasaHareketi = "Kasa Çıkış";
                }
                else
                {
                    ayarlar.KasaHareketi = "Kasa Giriş";
                }
            }

            string message = null;
            int    hata    = 0;

            if (gridStokHareket.RowCount == 0 && ayarlar.SatisEkrani == true)
            {
                message += "Satış Ekranında eklenmiş bir ürün bulunamadı." + System.Environment.NewLine;
                hata++;
            }

            if (_fisentity.CariId == null && ayarlar.SatisEkrani == false && txtFisTuru.Text != "Hakediş Fişi")
            {
                message += txtFisTuru.Text + " türünde cari seçimi zorunludur." + System.Environment.NewLine;
                hata++;
            }

            if (gridKasaHareket.RowCount == 0 && ayarlar.SatisEkrani == false && txtFisTuru.Text != "Hakediş Fişi")
            {
                message += "Herhangi bir ödeme bulunamadı." + System.Environment.NewLine;
                hata++;
            }

            if (txtKod.Text == "")
            {
                message += "Fiş Kodu alanı boş geçilemez." + System.Environment.NewLine;
                hata++;
            }

            //if (txtOdenmesiGereken.Value != 0 && ayarlar.OdemeEkrani == true && String.IsNullOrEmpty(txtCariKodu.Text) && txtFisTuru.Text != "Hakediş Fişi")
            //{
            //    message += "Ödenmesi gereken tutar ödenmemiş görünüyor. Ödenmeyen kısmı açık hesaba aktarabilmeniz için Cari seçmeniz gerekmektedir." + System.Environment.NewLine;
            //    hata++;
            //}

            if (hata != 0)
            {
                MessageBox.Show(message);
                return;
            }

            if (txtOdenmesiGereken.Value != 0 && ayarlar.OdemeEkrani == true)

            {
                if (MessageBox.Show($"Ödemenin {txtOdenmesiGereken.Value.ToString("C2")} tutarındaki kısmı açık hesap bakiyesi olarak kaydedilecektir. Devam etmek istiyor musunuz?", "Uyarı", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    MessageBox.Show("İsteğiniz üzerine işlem iptal edildi.");
                    return;
                }
            }


            ///////////////////////////////////////////////////////////
            ///
            //  context.StokHareketleri.Where(c => c.KullaniciID == RoleTool.kullaniciEntity.KullaniciID).Load();

            foreach (var stokVeri in context.StokHareketleri.Local.ToList())
            {
                stokVeri.Tarih = stokVeri.Tarih == null
                    ? Convert.ToDateTime(txtTarih.DateTime)
                    : Convert.ToDateTime(stokVeri.Tarih);

                stokVeri.FisKodu     = txtKod.Text;
                stokVeri.Hareket     = ayarlar.StokHareketi;
                stokVeri.Siparis     = txtFisTuru.Text.Contains("Sipariş Fişi") ? stokVeri.Siparis = true : stokVeri.Siparis = false;
                stokVeri.KullaniciID = RoleTool.kullaniciEntity.KullaniciID;
            }
            context.PersonelHareketleri.Where(c => c.KullaniciID == RoleTool.kullaniciEntity.KullaniciID).Load();
            foreach (var itemHareket in context.PersonelHareketleri.Local.ToList())
            {
                itemHareket.FisKodu = txtKod.Text;
            }

            if (ayarlar.BakiyeTuru == "Borç")
            {
                _fisentity.Borc = txtToplam.Value;
            }
            else if (ayarlar.BakiyeTuru == "Alacak")
            {
                _fisentity.Alacak = txtToplam.Value;
            }


            _fisentity.ToplamTutar  = txtToplam.Value;
            _fisentity.IskontoOrani = txtIskontoOran.Value;
            _fisentity.IskontoTutar = txtIskontoTutar.Value;
            _fisentity.KullaniciID  = RoleTool.kullaniciEntity.KullaniciID;

            if (string.IsNullOrEmpty(_fisentity.Tarih.ToString()))
            {
                _fisentity.Tarih = DateTime.Now;
            }

            fisDal.AddOrUpDate(context, _fisentity);
            if (ayarlar.OdemeEkrani)
            {
                if (txtOdenenTutar.Value != 0)
                {
                    Entities.Tables.Fis fisOdeme = new Entities.Tables.Fis();

                    if (string.IsNullOrEmpty(_fisentity.FisBaglantiKodu))
                    {
                        fisOdeme                 = _fisentity.Clone();
                        fisOdeme.FisTuru         = "Fiş Ödemesi";
                        fisOdeme.Id              = -1;//sonradan
                        fisOdeme.Aciklama        = _fisentity.FisKodu + " <= Nolu Faturaya Ait Ödeme Fişi";
                        fisOdeme.FisKodu         = kodOlustur.YeniFisOdemeKoduOlustur();
                        fisOdeme.FisBaglantiKodu = _fisentity.FisKodu;
                        fisOdeme.KullaniciID     = RoleTool.kullaniciEntity.KullaniciID;
                        kodOlustur.FisKoduArttir();
                    }
                    else
                    {
                        fisOdeme = context.Fisler.SingleOrDefault(c => c.KullaniciID == RoleTool.kullaniciEntity.KullaniciID && c.FisKodu == _fisentity.FisBaglantiKodu);
                    }
                    /// sonradan
                    ///
                    if (fisOdeme != null)
                    {
                        _fisentity.FisBaglantiKodu = fisOdeme.FisKodu;
                    }

                    if (ayarlar.BakiyeTuru == "Borç")
                    {
                        fisOdeme.Alacak = txtOdenenTutar.Value;
                        fisOdeme.Borc   = null;
                    }
                    else if (ayarlar.BakiyeTuru == "Alacak")
                    {
                        fisOdeme.Borc   = txtOdenenTutar.Value;
                        fisOdeme.Alacak = null;
                    }

                    //if (txtOdenmesiGereken.Value != 0 && ayarlar.OdemeEkrani == true)
                    //{
                    //    XtraMessageBox.Show("Ödenmesi gereken tutar ödenmemiş görünüyor");
                    //    return;
                    //}
                    //    context.KasaHareketleri.Where(c => c.KullaniciID == RoleTool.kullaniciEntity.KullaniciID).Load();
                    foreach (var kasaVeri in context.KasaHareketleri.Local.ToList())
                    {
                        kasaVeri.KullaniciID = RoleTool.kullaniciEntity.KullaniciID;
                        kasaVeri.Tarih       = kasaVeri.Tarih == null
                            ? Convert.ToDateTime(txtTarih.DateTime)
                            : Convert.ToDateTime(kasaVeri.Tarih);

                        kasaVeri.FisKodu = fisOdeme.FisKodu;
                        kasaVeri.Hareket = ayarlar.KasaHareketi;

                        if (txtFisTuru.Text != "Hakediş Fişi")
                        {
                            kasaVeri.CariId = _cariId;
                        }
                    }
                    fisOdeme.ToplamTutar = txtOdenenTutar.Value;
                    fisDal.AddOrUpDate(context, fisOdeme);
                }
            }

            context.KullaniciLoglari.Add(new KullaniciLog
            {
                KullaniciID        = RoleTool.kullaniciEntity.KullaniciID,
                KullaniciAdi       = RoleTool.kullaniciEntity.KullaniciAdi,
                YapilanIslem       = "Fiş & Fatura Ekle & Düzenle" + txtKod.Text,
                YapilanIslemTarihi = DateTime.Now
            });

            kodOlustur.KodArttirma();
            context.SaveChanges();
            this.Close();
        }
Пример #2
0
        private void FisiKaydet(ReportsPrintTool.Belge belge)
        {
            Toplamlar();

            OdenenTutarGuncelle();

            string message = null;

            int hata = 0;

            if (gridStokHareket.RowCount == 0)

            {
                message += "Satış Ekranında eklenmiş bir ürün bulunamadı." + System.Environment.NewLine;
                hata++;
            }

            if (gridKasaHareket.RowCount == 0 && chkOdemeBol.Checked && String.IsNullOrEmpty(txtCariKodu.Text))
            {
                message += "Herhangi bir ödeme bulunamadı." + System.Environment.NewLine;
                hata++;
            }

            if (txtKod.Text == "")

            {
                message += "Fiş Kodu alanı boş geçilemez." + System.Environment.NewLine;
                hata++;
            }

            if (txtOdenmesiGereken.Value != 0 && String.IsNullOrEmpty(txtCariKodu.Text) && tekParca == false)
            {
                message += "Ödenmesi gereken tutar ödenmemiş görünüyor. Ödenmeyen kısmı açık hesaba aktarabilmeniz için Cari seçmeniz gerekmektedir." + System.Environment.NewLine;
                hata++;
            }

            if (String.IsNullOrEmpty(txtCariKodu.Text) && (_entityBakiye.Bakiye - txtOdenmesiGereken.Value) < 0 && ((_entityBakiye.Bakiye - txtOdenmesiGereken.Value) * -1) > _entityBakiye.RiskLimiti && tekParca == false)
            {
                message += "Cari risk limiti aşılıyor. Satış yapılamaz." + System.Environment.NewLine;
                hata++;
            }
            if (hata != 0)
            {
                MessageBox.Show(message);
                return;
            }


            if (chkOdemeBol.Checked && txtOdenmesiGereken.Value != 0)
            {
                if (MessageBox.Show($"Ödemenin {txtOdenmesiGereken.Value.ToString("C2")} tutarındaki kısmı açık hesap bakiyesi olarak kaydedilecektir. Devam etmek istiyor musunuz?", "Uyarı", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    MessageBox.Show("İsteğiniz üzerine işlem iptal edildi.");
                    return;
                }
            }

            _fisentity.FisTuru = txtIslem.Text == "İADE" ? "Satış İade Faturası" : "Perakende Satış Faturası";

            foreach (var stokVeri in context.StokHareketleri.Local.ToList())
            {
                stokVeri.Tarih   = DateTime.Now;
                stokVeri.FisKodu = txtKod.Text;
                stokVeri.Hareket = txtIslem.Text == "İADE" ? "Stok Giriş" : "Stok Çıkış";
            }

            foreach (var kasaVeri in context.KasaHareketleri.Local.ToList())
            {
                kasaVeri.Tarih   = DateTime.Now;
                kasaVeri.FisKodu = txtKod.Text;
                kasaVeri.Hareket = txtIslem.Text == "İADE" ? "Kasa Çıkış" : "Kasa Giriş";
                kasaVeri.CariId  = _cariId;
            }
            _fisentity.KullaniciID  = RoleTool.kullaniciEntity.KullaniciID;
            _fisentity.FisKodu      = txtKod.Text;
            _fisentity.BelgeNo      = txtBelgeNo.Text;
            _fisentity.Aciklama     = txtAciklama.Text;
            _fisentity.FaturaUnvani = txtFaturaUnvani.Text;
            _fisentity.CepTelefonu  = txtCepTelefonu.Text;
            _fisentity.Il           = txtIl.Text;
            _fisentity.Ilce         = txtIlce.Text;
            _fisentity.Semt         = txtSemt.Text;
            _fisentity.Adres        = txtAdres.Text;
            _fisentity.VergiDairesi = txtVergiDairesi.Text;
            _fisentity.VergiNo      = txtVergiNo.Text;
            _fisentity.ToplamTutar  = txtToplam.Value;
            _fisentity.IskontoOrani = txtIskontoOran.Value;
            _fisentity.IskontoTutar = txtIskontoTutar.Value;
            _fisentity.Tarih        = DateTime.Now;


            fisDal.AddOrUpDate(context, _fisentity);

            int kasaId = Convert.ToInt32(context.KullaniciAyarlari.SingleOrDefault(c => c.KullaniciID == RoleTool.kullaniciEntity.KullaniciID).SatisAyarlari_VarsayilanKasa);

            if (txtOdenen.Value > 0)
            {
                Fis odemeFisi = _fisentity.Clone();
                odemeFisi.FisTuru = "Fiş Ödemesi";
                odemeFisi.FisKodu = kodolustur.YeniFisOdemeKoduOlustur();

                _fisentity.FisBaglantiKodu = odemeFisi.FisKodu;
                odemeFisi.FisBaglantiKodu  = _fisentity.FisKodu;

                odemeFisi.ToplamTutar = tekParca ? txtToplam.Value : txtOdenenTutar.Value;

                if (txtIslem.Text == "SATIŞ")
                {
                    _fisentity.Borc   = txtToplam.Value;
                    odemeFisi.Alacak  = tekParca ? txtToplam.Value : txtOdenenTutar.Value;
                    odemeFisi.Borc    = null;
                    _fisentity.Alacak = null;
                }
                else
                {
                    _fisentity.Alacak = txtToplam.Value;
                    odemeFisi.Borc    = tekParca ? txtToplam.Value : txtOdenenTutar.Value;
                    odemeFisi.Alacak  = null;
                    _fisentity.Borc   = null;
                }
                fisDal.AddOrUpDate(context, odemeFisi);
            }//ödeme 0 sa yapılan if yeni koydum test et


            if (!chkOdemeBol.Checked && odemeTuruId != -1)
            {
                kasaHareketDal.AddOrUpDate(context, new KasaHareket
                {
                    CariId      = _cariId,
                    FisKodu     = txtKod.Text,
                    Hareket     = txtIslem.Text == "İADE" ? "Kasa Çıkış" : "Kasa Giriş",
                    KasaId      = kasaId,
                    OdemeTuruId = odemeTuruId,
                    Tarih       = DateTime.Now,
                    Tutar       = txtToplam.Value
                });
                OdenenTutarGuncelle();
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception)
            {
            }


            chkOdemeBol.Checked = false;

            radialOdeme.HidePopup();


            switch (belge)
            {
            case ReportsPrintTool.Belge.Fatura:

                ReportsPrintTool yazdir = new ReportsPrintTool();
                rptFatura        fatura = new rptFatura(txtKod.Text);
                yazdir.RaporYazdir(fatura, belge, context.KullaniciAyarlari.FirstOrDefault(c => c.KullaniciID == RoleTool.kullaniciEntity.KullaniciID)); break;

            case ReportsPrintTool.Belge.BilgiFisi:
                ReportsPrintTool yazdirBilgiFisi = new ReportsPrintTool();
                rptBilgiFisi     bilgiFisi       = new rptBilgiFisi(txtKod.Text);
                yazdirBilgiFisi.RaporYazdir(bilgiFisi, belge, context.KullaniciAyarlari.FirstOrDefault(c => c.KullaniciID == RoleTool.kullaniciEntity.KullaniciID));
                break;
            }

            if (cagirilanSatisId != -1)
            {
                var secilen = _bekleyenSatis.SingleOrDefault(c => c.Id == cagirilanSatisId);
                _bekleyenSatis.Remove(secilen); flowBekleyenSatislar.Controls.Find(Convert.ToString(cagirilanSatisId), false).SingleOrDefault().Dispose();
                cagirilanSatisId = -1;
            }

            FisTemizle();
            kodolustur.FisKoduArttir();
            txtKod.Text = kodolustur.yeniFrontOfficeKodOlustur();
            tekParca    = false;
        }