// bunun işleme sırasını yaz /// <summary> /// gvFaturaHareket ten set etmek için sadece /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void _gvFaturaHareket_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { //int datarowIndex = _gvFaturaHareket.GetDataSourceRowIndex(e.RowHandle); int datarowIndex = _dt_HareketDetay.Rows.IndexOf(_gvFaturaHareket.GetDataRow(e.RowHandle)); // en doğrusu bu böyle silinen satırları da doğru veriryor falan filan //_gvFaturaHareket.UpdateCurrentRow(); #region Sira Numarasi if (e.Column.Caption == "SatirNo") // eğer satır numarası değiştiriliyorsa numarayı vermiş şimdi de değiştiriyoruz demektir { // Bu çok zor oldu // buranın işleme sırasını yaz int YeniSiraNumarasi = Convert.ToInt32(_dt_HareketDetay.Rows[datarowIndex]["SatirNo"]); int EskiSiraNumarasi = _gvFaturaHareket.GetVisibleIndex(e.RowHandle) + 1; //_dt_HareketDetay.Rows[datarowIndex]["SatirNo"] if (YeniSiraNumarasi > EskiSiraNumarasi) { DataRow[] dr = _dt_HareketDetay.Select("SatirNo >= " + YeniSiraNumarasi.ToString() + " and SatirNo <= " + EskiSiraNumarasi.ToString(), "SatirNo", DataViewRowState.CurrentRows); for (int i = 0; i < dr.Count(); i++) { if (_dt_HareketDetay.Rows.IndexOf(dr[i]) != datarowIndex) { dr[i]["SatirNo"] = Convert.ToInt32(dr[i]["SatirNo"]) - 1; } } } else if (EskiSiraNumarasi > YeniSiraNumarasi) // bulunduğu satırdan daha küçük bir satır numarası verilmişse - { // verilen satır numarası önceden kime aitse o satırdan itibaren Eski satir numarasi (Eski satır numarasi dahil) na kadar 1 arttırıyoruz // mevcut satır numarası yani DataRow[] dr = _dt_HareketDetay.Select("SatirNo >= " + YeniSiraNumarasi.ToString() + " and SatirNo <= " + EskiSiraNumarasi.ToString(), "SatirNo", DataViewRowState.CurrentRows); for (int i = 0; i < dr.Count(); i++) { if (Convert.ToInt32(_dt_HareketDetay.Rows.IndexOf(dr[i])) != datarowIndex) { dr[i]["SatirNo"] = Convert.ToInt32(dr[i]["SatirNo"]) + 1; } } } for (int i = 0, snu = 1; i < _dt_HareketDetay.Rows.Count; i++, snu++) { //int SiraNu = _gvFaturaHareket.GetVisibleIndex(i) + 1; //if (datarowIndex != i) // _dt_HareketDetay.Rows[i]["SatirNo"] = SiraNu; //if (snu == MevcutSiraNumarasi && i != datarowIndex) // eğer verilecek sıra numarası //{ // snu++; //} //if (snu != MevcutSiraNumarasi && i != datarowIndex) //{ // _gvFaturaHareket.GetVisibleIndex(i); // _dt_HareketDetay.Rows[i]["SatirNo"] = snu; //} //else //{ // //i++; // //snu++; //} } } #endregion // if (e.Column == "KdvDahilFiyat") // { ////_dt_HareketDetay.Rows[datarowIndex]["AnaBirimFiyat"] = Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["AltBirimMiktar"]) AnaBirimFiyat + ((Kdv * AnaBirimFiyat)/ 100) // } bool IslemYapilanKolonlardanBiriDegisti = false; //özellik terazide falan filan if (e.Column.Caption == "Miktar" || e.Column.FieldName.StartsWith("StokIskonto") || e.Column.FieldName.StartsWith("CariIskonto") || e.Column.FieldName == "AltBirimMiktar" || e.Column.Caption == "Iskonto %" || e.Column.Caption == "FireMiktari" || e.Column.Caption == "Kdv") // iskonto yüzde sadece terazide kullanılıyor aslında değiştirilmesi lazım stokiskonto1 den alıyor { IslemYapilanKolonlardanBiriDegisti = true; } if (e.Column.Caption == "AltBirimMiktar") { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["Miktar"] = Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["AltBirimMiktar"]) * Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["KatSayi"]); } else if (e.Column.Caption == "Toplam") { if (MessageBox.Show("Yes e basarsan miktarı\nhayır a basarsan fiyatı değiştitir", "", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["Miktar"] = Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["Toplam"]) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["AnaBirimFiyat"]); } else { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["AnaBirimFiyat"] = Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["Toplam"]) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["Miktar"]); } } else if (e.Column.Caption == "AnaBirimFiyat") { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["Birim2Fiyat"] = Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["AnaBirimFiyat"]) * Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["KatSayi"]); } else if (e.Column.FieldName == "Birim2Fiyat") { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["AnaBirimFiyat"] = Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["Birim2Fiyat"]) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["KatSayi"]); } else if (e.Column.FieldName == "StokIskonto1Tutari") // buradan verilern tutardan yüzde bulup yüzdeyi yazıcaz çünkü satirhesaplamasında Yüzdeden hesaplıyor { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["StokIskonto1"] = (Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["StokIskonto1Tutari"]) * 100) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["Toplam"]); } else if (e.Column.FieldName == "StokIskonto2Tutari") // buradan verilern tutardan yüzde bulup yüzdeyi yazıcaz çünkü satirhesaplamasında Yüzdeden hesaplıyor { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["StokIskonto2"] = (Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["StokIskonto2Tutari"]) * 100) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["StokIskonto1SonrasiTutar"]); } else if (e.Column.FieldName == "StokIskonto3Tutari") // buradan verilern tutardan yüzde bulup yüzdeyi yazıcaz çünkü satirhesaplamasında Yüzdeden hesaplıyor { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["StokIskonto3"] = (Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["StokIskonto3Tutari"]) * 100) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["StokIskonto2SonrasiTutar"]); } else if (e.Column.FieldName == "CariIskonto1Tutari") // buradan verilern tutardan yüzde bulup yüzdeyi yazıcaz çünkü satirhesaplamasında Yüzdeden hesaplıyor { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["CariIskonto1"] = (Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["CariIskonto1Tutari"]) * 100) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["Toplam"]); } else if (e.Column.FieldName == "CariIskonto2Tutari") // buradan verilern tutardan yüzde bulup yüzdeyi yazıcaz çünkü satirhesaplamasında Yüzdeden hesaplıyor { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["CariIskonto2"] = (Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["CariIskonto2Tutari"]) * 100) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["CariIskonto1SonrasiTutar"]); } else if (e.Column.FieldName == "CariIskonto3Tutari") // buradan verilern tutardan yüzde bulup yüzdeyi yazıcaz çünkü satirhesaplamasında Yüzdeden hesaplıyor { IslemYapilanKolonlardanBiriDegisti = true; _dt_HareketDetay.Rows[datarowIndex]["CariIskonto3"] = (Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["CariIskonto3Tutari"]) * 100) / Convert.ToDecimal(_dt_HareketDetay.Rows[datarowIndex]["CariIskonto2SonrasiTutar"]); } if (IslemYapilanKolonlardanBiriDegisti == true) { SatirHesaplamasi(_gvFaturaHareket.GetDataRow(e.RowHandle)); } }