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(); }
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; }