public static bool ALISFaturaSatirlarinaPartiNoUret(int fatid, DateTime faturatarihi) { _sqlProvider = new SqlProvider("SELECT * FROM FATISL WHERE FATID=@FATID AND ISNULL(BARKOD,'')='' ", false); _sqlProvider.AddParameter("FATID", fatid); DataTable dtFatIsl = new DataTable(); dtFatIsl.Load(_sqlProvider.ExecuteReader()); foreach (DataRow rowFatIsl in dtFatIsl.Rows) { string pNo = PartiNo.PartiNoUret(faturatarihi, "HAMMADDEPARTINO"); _sqlProvider = new SqlProvider("UPDATE FATISL SET BARKOD=@PARTINO WHERE FATISLID=@FATISLID", false); _sqlProvider.AddParameter("PARTINO", pNo); _sqlProvider.AddParameter("FATISLID", rowFatIsl["FATISLID"]); _sqlProvider.ExecuteNonQuery(); dbOperation.PartiNoOlusumuKaydet(pNo, Convert.ToInt32(rowFatIsl["STOKID"]), Convert.ToDouble(rowFatIsl["ADET"]), 0, faturatarihi, faturatarihi); } return(true); }
//private void ParcalamaListesi(DateTime tar1, DateTime tar2, string DepoID) //{ // _sqlProvider = new SqlProvider( // " SELECT DISTINCT CASE WHEN IRSALIYE=0 THEN 'FATURA' WHEN IRSALIYE=1 THEN 'IRSALIYE' END TURU, F.FATID,FATNO,F.TARIH,F.UNVANI,FI.STOKID,S.ADI,FI.FADET,FI.FBIRIM,FI.FBFIYAT,F.SAAT,FI.BARKOD,S.STDFIREORANI,REPLACE(S.KODU,'S','') KODU "+ // " FROM FATURA F "+ // " INNER JOIN FATISL FI ON FI.FATID=F.FATID "+ // " LEFT OUTER JOIN PARCALAMA P ON P.STOKID=FI.STOKID AND P.TARIH=F.TARIH AND P.ACIKLAMA=FI.BARKOD "+ // " INNER JOIN STOK S ON S.STOKID=FI.STOKID "+ // " WHERE FISDURUMID>=-1 AND FI.IRSISLID IS NULL AND FISTURID=51 AND F.DEPOID=@DEPOID AND P.ACIKLAMA IS NULL AND FI.STOKID IN (" + ParcalanacakSTOKIDS+") AND F.TARIH BETWEEN @TAR1 AND @TAR2", false); // _sqlProvider.AddParameter("TAR1", tar1); // _sqlProvider.AddParameter("TAR2", tar2); // _sqlProvider.AddParameter("DEPOID", DepoID); // _dtParcalamaList = new DataTable(); // _dtParcalamaList.Load(_sqlProvider.ExecuteReader()); // dataGridView2.DataSource = _dtParcalamaList; //} private void btnParcala_Click(object sender, EventArgs e) { progressBar1.Maximum = _dtParcalamaList.Rows.Count; progressBar1.Value = 0; foreach (DataRow row in _dtParcalamaList.Rows) { toolStripStatusLabel1.Text = row["STOKID"].ToString(); #region Parçalama //ÖNCE Parcalama MASTER kayıt oluşturalım ANA GIREN ETIN PARCALAMA KAYDI // once recetesi var mı kontrol edelim yoksa HİÇ BAŞLAMAYALIM TABİ... DataTable dtReceteDetayi = dbOperation.UrunKodunaGoreReceteDetayiGetir(row["STOKKODU"].ToString().Replace("S", "")); if (dtReceteDetayi.Rows.Count > 0) { Parcalama parcalama = new Parcalama { Depoid = ParcalamaTuketimDepoId, Durum = "ONAYLANDI", Tarih = Convert.ToDateTime(row["TARIH"]), Saat = Convert.ToDateTime(DateTime.Now.ToShortDateString()), //Convert.ToDateTime(row["SAAT"]), Aciklama = row["BARKOD"].ToString(), Stokid = Convert.ToInt32(row["STOKID"]), Miktar = Convert.ToDouble(row["MIKTAR"]), //FADET BFiyat = Convert.ToDouble(row["FIYAT"]), //FBFIYAT OnayTarih = Convert.ToDateTime(row["TARIH"]), OnaySaat = Convert.ToDateTime(DateTime.Now.ToShortDateString()) //Convert.ToDateTime(row["SAAT"]) }; dbOperation.ParcalamaInsert(parcalama); #endregion #region Transfer Fişi //Parçalanan ET kalemi için önce ÜRETİM deposuna ANADEPO dan TRANSFER FİŞİ ni keselim Depofis depofisTransfer = new Depofis { Tarih = Convert.ToDateTime(row["TARIH"]).Date, Islem = "TRANSFER", Aciklama = "PARÇALAMA(" + parcalama.Parcalamaid.ToString() + ")", CDepoid = ParcalamaTransferDepoId, GDepoid = ParcalamaTuketimDepoId, Eno = parcalama.Parcalamaid.ToString(CultureInfo.InvariantCulture) }; //depofis.InsertToDatabase(); dbOperation.DepofisInsert(depofisTransfer); DepofisIsl depofisIslTransfer = new DepofisIsl { Depofisid = depofisTransfer.Depofisid, Stokid = Convert.ToInt32(row["STOKID"]), Miktar = Convert.ToDouble(row["MIKTAR"]), FBirim = row["BIRIM"].ToString(), BFiyat = Convert.ToDouble(row["FIYAT"]), Barkod = row["BARKOD"].ToString() }; dbOperation.DepoFisIslInsert(depofisIslTransfer); dbOperation.DepofisUpdate(depofisTransfer.Depofisid); dbOperation.ParcalamayaTransferIDYaz(parcalama.Parcalamaid, depofisTransfer.Depofisid); #endregion #region Tüketim Fişi //Parçalanan ET kalemi için TÜKETİM FİŞİ ni keselim Depofis depofisTuketim = new Depofis { Tarih = Convert.ToDateTime(row["TARIH"]).Date, Islem = "TÜKETİM", Aciklama = "PARÇALAMA", CDepoid = ParcalamaTuketimDepoId, Eno = parcalama.Parcalamaid.ToString(CultureInfo.InvariantCulture) }; //depofis.InsertToDatabase(); dbOperation.DepofisInsert(depofisTuketim); DepofisIsl depofisIsltuketim = new DepofisIsl { Depofisid = depofisTuketim.Depofisid, Stokid = Convert.ToInt32(row["STOKID"]), Miktar = Convert.ToDouble(row["MIKTAR"]), FBirim = row["BIRIM"].ToString(), BFiyat = Convert.ToDouble(row["FIYAT"]), Barkod = row["BARKOD"].ToString() }; dbOperation.DepoFisIslInsert(depofisIsltuketim); dbOperation.DepofisUpdate(depofisTuketim.Depofisid); dbOperation.ParcalamayaTuketimIDYaz(parcalama.Parcalamaid, depofisTuketim.Depofisid); #endregion #region ÜretimFişi //Parcalanan ET e ait olan parçalama reçetesindekileri ÜRETİM yapalım. Depofis depofisUretim = new Depofis { Tarih = Convert.ToDateTime(row["TARIH"]).Date, Islem = "ÜRETİM", Aciklama = "PARÇALAMA", GDepoid = ParcalamaUretimDepoId, Eno = parcalama.Parcalamaid.ToString(CultureInfo.InvariantCulture) }; dbOperation.DepofisInsert(depofisUretim); dbOperation.ParcalamayaUretimIDYaz(parcalama.Parcalamaid, depofisUretim.Depofisid); //Parcalama recetesindeki satirlar kadar hem PARCALAMAISL hem de TUKETIMFISISL kayıtlarını oluşturalım // Burada hem recetedeki ORAN a göre miktar her çıkan ürün için GIREN ETin miktarından hesaplanıyor // hem de KATSAYI sına FIRE olmasına göre birim fiyat tekrar hesaplanıyor YA DA SIFIRlanıyor. //_sqlProvider = new SqlProvider("SELECT * FROM QMUH_RECETE WHERE URUNKODU=@URUNKODU", false); //_sqlProvider.AddParameter("URUNKODU", row["STOKKODU"].ToString().Replace("S","")); foreach (DataRow rowReceteSatir in dtReceteDetayi.Rows) { double parcalanacakMiktar = Convert.ToDouble(row["MIKTAR"]); double fBfiyat = Convert.ToDouble(row["FIYAT"]); double katsayi = Convert.ToDouble(rowReceteSatir["RECETEKATSAYISI"]); double oran = Convert.ToDouble(rowReceteSatir["ORAN"]); double miktar = parcalanacakMiktar * oran; double bFiyat = 0; if (katsayi == 1) { bFiyat = (parcalanacakMiktar * fBfiyat) / (miktar * katsayi); } ParcalamaIsl parcalamaIsl = new ParcalamaIsl { ParcalamaIslId = SiraNo.SiraNoVer("PARCALAMAISL"), ParcalamaId = parcalama.Parcalamaid, StokId = Convert.ToInt32(rowReceteSatir["STOKID"]), Miktar = miktar, BFiyat = bFiyat, Katsayi = katsayi, FireStokSatiri = Convert.ToInt32(rowReceteSatir["FIRE"]) }; dbOperation.ParcalamaIslInsert(parcalamaIsl); DepofisIsl depofisIsluretim = new DepofisIsl { Depofisid = depofisUretim.Depofisid, Stokid = Convert.ToInt32(rowReceteSatir["STOKID"]), Miktar = miktar, FBirim = rowReceteSatir["XBIRIM"].ToString(), BFiyat = bFiyat, Barkod = (Convert.ToInt32(rowReceteSatir["FIRE"]) == 0) ? PartiNo.PartiNoUret(Convert.ToDateTime(row["TARIH"]).Date, "PARCALAMAPARTINO") : "" }; dbOperation.DepoFisIslInsert(depofisIsluretim); dbOperation.DepofisUpdate(depofisUretim.Depofisid); } ; #endregion dbOperation.ParcalamaUpdate(parcalama.Parcalamaid); } else { MessageBox.Show(row["STOKKODU"].ToString().Replace("S", "") + " kodu ile Ürün Kartları listesinde alınan stoğa ait PARÇALAMA reçetesi yapılmamış. Önce reçeteyi yapınız!"); } progressBar1.Value++; } //ParcalamaListesi(dateTimePicker1.Value.Date, dateTimePicker2.Value.Date, AlimDepoID.ToString()); _dtParcalamaList = dbOperation.ParcalanacakHammaddeListesi(dateTimePicker1.Value.Date, dateTimePicker2.Value.Date, AlimDepoID.ToString()); dataGridView2.DataSource = _dtParcalamaList; }