예제 #1
0
 public static int DepofisInsert(Depofis depofis)
 {
     _sqlProvider = new SqlProvider("INSERT INTO DEPOFIS (DEPOFISID,TARIH,ISLEM,YETKILI,ENO,ACIKLAMA,GDEPOID,CDEPOID,TADET,TTUTAR,DURUMU,DURUM,SUBEID)  VALUES (@DEPOFISID,@TARIH,@ISLEM,@YETKILI,@ENO,@ACIKLAMA,@GDEPOID,@CDEPOID,@TADET,@TTUTAR,@DURUMU,@DURUM,@SUBEID) ", false);
     _sqlProvider.AddParameter("DEPOFISID", depofis.Depofisid);
     _sqlProvider.AddParameter("TARIH", depofis.Tarih);
     _sqlProvider.AddParameter("ISLEM", depofis.Islem);
     _sqlProvider.AddParameter("YETKILI", depofis.Yetkili);
     _sqlProvider.AddParameter("ENO", depofis.Eno);
     _sqlProvider.AddParameter("ACIKLAMA", depofis.Aciklama);
     if (depofis.Islem == "TÜKETİM")
     {
         _sqlProvider.AddParameter("CDEPOID", depofis.CDepoid);
         _sqlProvider.AddParameter("GDEPOID", DBNull.Value);
     }
     else if (depofis.Islem == "ÜRETİM")
     {
         _sqlProvider.AddParameter("CDEPOID", DBNull.Value);
         _sqlProvider.AddParameter("GDEPOID", depofis.GDepoid);
     }
     else if (depofis.Islem == "TRANSFER")
     {
         _sqlProvider.AddParameter("CDEPOID", depofis.CDepoid);
         _sqlProvider.AddParameter("GDEPOID", depofis.GDepoid);
     }
     _sqlProvider.AddParameter("TADET", depofis.Tadet);
     _sqlProvider.AddParameter("TTUTAR", depofis.Ttutar);
     _sqlProvider.AddParameter("DURUMU", depofis.Durumu);
     _sqlProvider.AddParameter("DURUM", depofis.Durum);
     _sqlProvider.AddParameter("SUBEID", depofis.Subeid);
     _sqlProvider.ExecuteNonQuery();
     return(depofis.Depofisid);
 }
예제 #2
0
        //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;
        }