예제 #1
0
        public JsonResult CountCreateDiff(int GorevID)
        {
            // kontrols
            if (CheckPerm(Perms.GörevListesi, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            var durumID = ComboItems.Tamamlanan.ToInt32();
            var tipID   = ComboItems.KontrolSayım.ToInt32();
            var mGorev  = db.Gorevs.Where(m => m.ID == GorevID && m.GorevTipiID == tipID && m.DurumID == durumID).FirstOrDefault();

            if (mGorev.IsNull())
            {
                return(Json(new Result(false, "Görev bulunamadı!"), JsonRequestBehavior.AllowGet));
            }
            if (mGorev.IR.LinkEvrakNo != null)
            {
                return(Json(new Result(false, "Fark fişi daha önce oluşturulmuş!"), JsonRequestBehavior.AllowGet));
            }
            if (mGorev.IR.Onay == false)
            {
                return(Json(new Result(false, "Sayım fişi daha oluşturulmamış!"), JsonRequestBehavior.AllowGet));
            }
            // seri kontrol
            var details = db.UserDetails.Where(m => m.UserID == vUser.Id).FirstOrDefault();

            if (details == null)
            {
                return(Json(new Result(false, "Seri hatası!"), JsonRequestBehavior.AllowGet));
            }
            if (details.SayimSeri == null)
            {
                return(Json(new Result(false, "Seri hatası!"), JsonRequestBehavior.AllowGet));
            }
            if (details.SayimSeri.Value < 1 || details.SayimSeri.Value > 199)
            {
                return(Json(new Result(false, "Seri hatası!"), JsonRequestBehavior.AllowGet));
            }
            // variables
            var   tarih   = fn.ToOADate();
            var   saat    = fn.ToOATime();
            short sirano  = 0;
            var   stiList = new List <STI>();
            // loop malkods
            var sql  = string.Format("SELECT IslemTur, MalKodu, Miktar, Miktar2, Birim, Depo FROM FINSAT6{0}.FINSAT6{0}.STI WHERE (EvrakNo = '{1}') AND (KynkEvrakTip = 95) AND (IslemTip = 18)", mGorev.IR.SirketKod, mGorev.IR.EvrakNo);
            var list = db.Database.SqlQuery <frmGorevSayimFisi>(sql).ToList();

            foreach (var item in list)
            {
                if (item.Miktar != item.Miktar2)
                {
                    var sti = new STI();
                    sti.DefaultValueSet();
                    sti.IslemTur         = item.IslemTur;
                    sti.Miktar           = Math.Abs(item.Miktar - item.Miktar2);
                    sti.Tarih            = tarih;
                    sti.KynkEvrakTip     = 100; //"Sayım Farkı Fişi" from finsat.COMBOITEM_NAME
                    sti.SiraNo           = sirano;
                    sti.IslemTip         = 20;  //"Sayım Farkı" from finsat.COMBOITEM_NAME
                    sti.MalKodu          = item.MalKodu;
                    sti.Birim            = item.Birim;
                    sti.BirimMiktar      = sti.Miktar;
                    sti.Miktar2          = item.Miktar;
                    sti.Depo             = mGorev.Depo.DepoKodu;
                    sti.VadeTarih        = tarih;
                    sti.EvrakTarih       = tarih;
                    sti.AnaEvrakTip      = 100;//"Sayım Farkı Fişi" from finsat.COMBOITEM_NAME
                    sti.KaynakIrsEvrakNo = mGorev.IR.EvrakNo;
                    stiList.Add(sti);
                    sirano++;
                }
            }
            if (sirano == 0)
            {
                // son olarak bizim stoka kaydet
                sql = string.Format(@"EXEC BIRIKIM.wms.GetSayimFarki {0}, {1}", GorevID, mGorev.IR.ValorGun);
                var list2 = db.Database.SqlQuery <frmSiparisToplama>(sql).ToList();
                // loop list
                short siranok = 0;
                foreach (var item in list2)
                {
                    siranok += 1;

                    // yerleştirme kaydı yapılır
                    var tmp2 = Yerlestirme.Detail(item.KatID, item.MalKodu, "", item.MakaraNo);
                    if (tmp2 == null)
                    {
                        tmp2 = new Yer()
                        {
                            KatID    = item.KatID,
                            MalKodu  = item.MalKodu,
                            Birim    = item.Birim,
                            Miktar   = item.Miktar,
                            MakaraNo = item.MakaraNo
                        };
                        Yerlestirme.Insert(tmp2, vUser.Id, "Sayım Farkı Fişi", mGorev.IrsaliyeID.Value);
                    }
                    else
                    {
                        if (item.Miktar > item.Stok)//giriş
                        {
                            tmp2.Miktar = item.Miktar;
                            Yerlestirme.Update(tmp2, vUser.Id, "Sayım Farkı Fişi", item.Miktar - item.Stok, false, mGorev.IrsaliyeID.Value);
                        }
                        else if (item.Miktar < item.Stok)//çıkış
                        {
                            tmp2.Miktar = item.Miktar;
                            Yerlestirme.Update(tmp2, vUser.Id, "Sayım Farkı Fişi", item.Stok - item.Miktar, true, mGorev.IrsaliyeID.Value);
                        }
                    }
                }
                //fark fişi tuşu kaybolsun diye boş kayıt atıyoruz
                mGorev.IR.LinkEvrakNo = "";
                db.SaveChanges();
                //return result
                if (siranok > 0)
                {
                    return(Json(new Result(true, "Güneş Fark fişine gerek yok, WMS fark fişi hareketi atıldı."), JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(new Result(false, "Fark fişine gerek yok."), JsonRequestBehavior.AllowGet));
                }
            }
            // finsat tanımlama
            var EvrakSeriNo = 7500 + details.SayimSeri.Value - 1;
            var finsat      = new Finsat(db, mGorev.IR.SirketKod, SqlExper, new FaturaKayit(SqlExper, mGorev.IR.SirketKod, SqlExper, mGorev.IR.SirketKod));
            var sonuc       = finsat.SayımVeFarkFişi(stiList, EvrakSeriNo, true, vUser.UserName);

            if (sonuc.Status == true)
            {
                mGorev.IR.LinkEvrakNo = sonuc.Message;
                LogActions("WMS", "Tasks", "CountCreateDiff", ComboItems.alEkle, mGorev.ID, "Sayım Fark Fişi: " + mGorev.IR.LinkEvrakNo);
                db.SaveChanges();
                // finsat dst & stk update
                sql = string.Format("UPDATE FINSAT6{0}.FINSAT6{0}.STI SET KaynakIrsEvrakNo='{1}' WHERE EvrakNo = '{2}' AND KynkEvrakTip = 95;", mGorev.IR.SirketKod, sonuc.Message, mGorev.IR.EvrakNo);
                foreach (var item in list)
                {
                    if (item.IslemTur == 0)//giriş
                    {
                        sql += string.Format("UPDATE FINSAT6{0}.FINSAT6{0}.DST " +
                                             "SET GirMiktar = GirMiktar + {3}, SonGirTarih = {5}, SonSayimTarih = {5}, SonSayimFarki = {3}, Degistiren = '{4}', DegisTarih = {5}, DegisSaat = {6} " +
                                             "WHERE(MalKodu = '{1}') AND(Depo = '{2}');", mGorev.IR.SirketKod, item.MalKodu, mGorev.Depo.DepoKodu, (item.Miktar - item.Miktar2).ToDot(), vUser.UserName, tarih, saat);
                        sql += string.Format("UPDATE FINSAT6{0}.FINSAT6{0}.STK " +
                                             "SET TahminiStok = TahminiStok + {2}, GirMiktar = GirMiktar + {2}, GirTarih = {5}, SonSayimTarih = {5}, SonSayimSonuc = {3}, Degistiren = '{4}', DegisTarih = {5}, DegisSaat = {6} " +
                                             "WHERE(MalKodu = '{1}');", mGorev.IR.SirketKod, item.MalKodu, (item.Miktar - item.Miktar2).ToDot(), item.Miktar.ToDot(), vUser.UserName, tarih, saat);
                    }
                    else//çıkış
                    {
                        sql += string.Format("UPDATE FINSAT6{0}.FINSAT6{0}.DST " +
                                             "SET CikMiktar = CikMiktar + {3}, SonCikTarih = {5}, SonSayimTarih = {5}, SonSayimFarki = -{3}, Degistiren = '{4}', DegisTarih = {5}, DegisSaat = {6} " +
                                             "WHERE(MalKodu = '{1}') AND(Depo = '{2}');", mGorev.IR.SirketKod, item.MalKodu, mGorev.Depo.DepoKodu, (item.Miktar2 - item.Miktar).ToDot(), vUser.UserName, tarih, saat);
                        sql += string.Format("UPDATE FINSAT6{0}.FINSAT6{0}.STK " +
                                             "SET TahminiStok = TahminiStok - {2}, CikMiktar = CikMiktar + {2}, CikTarih = {5}, SonSayimTarih = {5}, SonSayimSonuc = {3}, Degistiren = '{4}', DegisTarih = {5}, DegisSaat = {6} " +
                                             "WHERE(MalKodu = '{1}');", mGorev.IR.SirketKod, item.MalKodu, (item.Miktar2 - item.Miktar).ToDot(), item.Miktar.ToDot(), vUser.UserName, tarih, saat);
                    }
                }

                db.Database.ExecuteSqlCommand(sql);
                // son olarak bizim stoka kaydet
                sql = string.Format(@"EXEC BIRIKIM.wms.GetSayimFarki {0}, {1}", GorevID, mGorev.IR.ValorGun);
                var list2 = db.Database.SqlQuery <frmSiparisToplama>(sql).ToList();
                // loop list
                foreach (var item in list2)
                {
                    // yerleştirme kaydı yapılır
                    var tmp2 = Yerlestirme.Detail(item.KatID, item.MalKodu, "", item.MakaraNo);
                    if (tmp2 == null)
                    {
                        tmp2 = new Yer()
                        {
                            KatID    = item.KatID,
                            MalKodu  = item.MalKodu,
                            Birim    = item.Birim,
                            Miktar   = item.Miktar,
                            MakaraNo = item.MakaraNo
                        };
                        Yerlestirme.Insert(tmp2, vUser.Id, "Sayım Farkı Fişi", mGorev.IrsaliyeID.Value);
                    }
                    else
                    {
                        if (item.Miktar > item.Stok)//giriş
                        {
                            tmp2.Miktar = item.Miktar;
                            Yerlestirme.Update(tmp2, vUser.Id, "Sayım Farkı Fişi", item.Miktar - item.Stok, false, mGorev.IrsaliyeID.Value);
                        }
                        else if (item.Miktar < item.Stok)//çıkış
                        {
                            tmp2.Miktar = item.Miktar;
                            Yerlestirme.Update(tmp2, vUser.Id, "Sayım Farkı Fişi", item.Stok - item.Miktar, true, mGorev.IrsaliyeID.Value);
                        }
                    }
                }

                sonuc.Message = "İşlem tamlandı!";
            }

            return(Json(sonuc, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        public JsonResult CountCreate(int GorevID, bool Tip)
        {
            // kontrols
            if (CheckPerm(Perms.GörevListesi, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            var durumID = ComboItems.Tamamlanan.ToInt32();
            var tipID   = ComboItems.KontrolSayım.ToInt32();
            var mGorev  = db.Gorevs.Where(m => m.ID == GorevID && m.GorevTipiID == tipID && m.DurumID == durumID).FirstOrDefault();

            if (mGorev.IsNull())
            {
                return(Json(new Result(false, "Görev bulunamadı!"), JsonRequestBehavior.AllowGet));
            }
            if (mGorev.IR.Onay == true)
            {
                return(Json(new Result(false, "Sayım fişi daha önce oluşturulmuş!"), JsonRequestBehavior.AllowGet));
            }
            // seri kontrol
            var details = db.UserDetails.Where(m => m.UserID == vUser.Id).FirstOrDefault();

            if (details == null)
            {
                return(Json(new Result(false, "Seri hatası!"), JsonRequestBehavior.AllowGet));
            }
            if (details.SayimSeri == null)
            {
                return(Json(new Result(false, "Seri hatası!"), JsonRequestBehavior.AllowGet));
            }
            if (details.SayimSeri.Value < 1 || details.SayimSeri.Value > 199)
            {
                return(Json(new Result(false, "Seri hatası!"), JsonRequestBehavior.AllowGet));
            }
            // variables
            var        tarih   = fn.ToOADate();
            short      sirano  = 0;
            List <STI> stiList = new List <STI>();
            // loop malkods
            var sql  = string.Format("EXEC FINSAT6{0}.wms.getSayimFisiListesi1 @ID = {1}", vUser.SirketKodu, GorevID);
            var list = db.Database.SqlQuery <frmSiparisMalzemeDetay>(sql).ToList();

            foreach (var item in list)
            {
                if (item.Miktar != item.GunesStok)
                {
                    var sti = new STI();
                    sti.DefaultValueSet();
                    if (item.Miktar > item.GunesStok)//olması gerekenden fazlaysa giriş yapılacak
                    {
                        sti.IslemTur = 0;
                    }
                    else//eğer olması gerekenden az varsa çıkış yapılacak
                    {
                        sti.IslemTur = 1;
                    }
                    sti.Tarih        = tarih;
                    sti.KynkEvrakTip = 95; //"Sayım Sonuç Fişi" from finsat.COMBOITEM_NAME
                    sti.SiraNo       = sirano;
                    sti.IslemTip     = 18; //"Sayım Sonuç Fişi" from finsat.COMBOITEM_NAME
                    sti.MalKodu      = item.MalKodu;
                    sti.Miktar       = item.Miktar;
                    sti.Miktar2      = item.GunesStok;
                    sti.Birim        = item.Birim;
                    sti.BirimMiktar  = item.Miktar;
                    sti.Depo         = mGorev.Depo.DepoKodu;
                    sti.VadeTarih    = tarih;
                    sti.EvrakTarih   = tarih;
                    sti.AnaEvrakTip  = 95;//"Sayım Sonuç Fişi" from finsat.COMBOITEM_NAME
                    stiList.Add(sti);
                    sirano++;
                }
            }

            // eğer eksik listesi de atılacaksa sayım fişine biraz daha ekle
            if (Tip == true)
            {
                sql  = string.Format(@"EXEC FINSAT6{0}.wms.getSayimFisiListesi2 @ID = {1}, @DepoKodu = '{2}'", vUser.SirketKodu, GorevID, mGorev.Depo.DepoKodu);
                list = db.Database.SqlQuery <frmSiparisMalzemeDetay>(sql).ToList();
                foreach (var item in list)
                {
                    if (item.Miktar != item.GunesStok)
                    {
                        var sti = new STI();
                        sti.DefaultValueSet();
                        if (item.Miktar > item.GunesStok)//olması gerekenden fazlaysa giriş yapılacak
                        {
                            sti.IslemTur = 0;
                        }
                        else//eğer olması gerekenden az varsa çıkış yapılacak
                        {
                            sti.IslemTur = 1;
                        }
                        sti.Tarih        = tarih;
                        sti.KynkEvrakTip = 95; //"Sayım Sonuç Fişi" from finsat.COMBOITEM_NAME
                        sti.SiraNo       = sirano;
                        sti.IslemTip     = 18; //"Sayım Sonuç Fişi" from finsat.COMBOITEM_NAME
                        sti.MalKodu      = item.MalKodu;
                        sti.Miktar       = item.Miktar;
                        sti.Miktar2      = item.GunesStok;
                        sti.Birim        = item.Birim;
                        sti.BirimMiktar  = item.Miktar;
                        sti.Depo         = mGorev.Depo.DepoKodu;
                        sti.VadeTarih    = tarih;
                        sti.EvrakTarih   = tarih;
                        sti.AnaEvrakTip  = 95;//"Sayım Sonuç Fişi" from finsat.COMBOITEM_NAME
                        stiList.Add(sti);
                        sirano++;
                    }
                }
            }

            // finsat tanımlama
            var evrakSeriNo = 7100 + details.SayimSeri.Value - 1;
            var finsat      = new Finsat(db, mGorev.IR.SirketKod, SqlExper, new FaturaKayit(SqlExper, mGorev.IR.SirketKod, SqlExper, mGorev.IR.SirketKod));
            var sonuc       = finsat.SayımVeFarkFişi(stiList, evrakSeriNo, true, vUser.UserName);

            if (sonuc.Status == true)
            {
                mGorev.IR.EvrakNo  = sonuc.Message;
                mGorev.IR.Onay     = true;
                mGorev.IR.ValorGun = (short)(Tip == true ? 1 : 0);
                db.SaveChanges();
                sonuc.Message = "İşlem tamlandı!";
                LogActions("WMS", "Tasks", "CountCreate", ComboItems.alEkle, mGorev.ID, "Sayım Fişi: " + mGorev.IR.EvrakNo);
            }

            return(Json(sonuc, JsonRequestBehavior.AllowGet));
        }