Ejemplo n.º 1
0
 public static void ParcalamaInsert(Parcalama parcalama)
 {
     _sqlProvider = new SqlProvider("INSERT INTO PARCALAMA (PARCALAMAID,DURUM,TARIH,SAAT,ACIKLAMA,DEPOID,YETKILI,STOKID,DEPOMIKTAR,MIKTAR,BFIYAT,MAMULMIKTAR,MAMULTOPLAM,FIREMIKTAR,FIREORAN) " +
                                    "VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10,@P11,@P12,@P13,@P14,@P15)");
     _sqlProvider.AddParameter("P1", parcalama.Parcalamaid);
     _sqlProvider.AddParameter("P2", parcalama.Durum);
     _sqlProvider.AddParameter("P3", parcalama.Tarih);
     _sqlProvider.AddParameter("P4", parcalama.Saat);
     _sqlProvider.AddParameter("P5", parcalama.Aciklama);
     _sqlProvider.AddParameter("P6", parcalama.Depoid);
     _sqlProvider.AddParameter("P7", parcalama.Yetkili);
     _sqlProvider.AddParameter("P8", parcalama.Stokid);
     _sqlProvider.AddParameter("P9", parcalama.DepoMiktar);
     _sqlProvider.AddParameter("P10", parcalama.Miktar);
     _sqlProvider.AddParameter("P11", parcalama.BFiyat);
     _sqlProvider.AddParameter("P12", parcalama.MamulMiktar);
     _sqlProvider.AddParameter("P13", parcalama.MamulToplam);
     _sqlProvider.AddParameter("P14", parcalama.FireMiktar);
     _sqlProvider.AddParameter("P15", parcalama.FireOran);
     _sqlProvider.ExecuteNonQuery();
 }
Ejemplo n.º 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;
        }