Example #1
0
        /// <summary>
        /// stoğa excelden elle ekleme
        /// </summary>
        public JsonResult Stock(int DID, HttpPostedFileBase file)
        {
            if (CheckPerm(Perms.Stok, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            var _result = new Result(false, 0, "Hatalı dosya!");

            if (file == null || file.ContentLength == 0)
            {
                return(Json(_result, JsonRequestBehavior.AllowGet));
            }
            // gelen dosyayı oku
            var stream = file.InputStream;
            IExcelDataReader reader;

            // dosya tipini bul
            if (file.FileName.EndsWith(".xlsx"))
            {
                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
            }
            else
            {
                return(Json(_result, JsonRequestBehavior.AllowGet));
            }
            // ilk satır başlık
            reader.IsFirstRowAsColumnNames = true;
            // exceldeki bilgileri datasete aktar
            var result = reader.AsDataSet();

            // kontrol
            if (result.Tables.Count == 0)
            {
                return(Json(_result, JsonRequestBehavior.AllowGet));
            }
            if (result.Tables[0].Rows == null)
            {
                return(Json(_result, JsonRequestBehavior.AllowGet));
            }
            // loop all list
            int basarili = 0, hatali = 0, tarih = fn.ToOADate(); var hatalilar = "";

            using (var dbContextTransaction = db.Database.BeginTransaction())
            {
                // add to irs table
                var sonuc = Irsaliye.Operation(new IR()
                {
                    SirketKod = vUser.SirketKodu, DepoID = DID, EvrakNo = db.SettingsGorevNo(tarih, DID).FirstOrDefault(), HesapKodu = "Elle Ekleme", Tarih = tarih
                });
                // loop
                for (int i = 0; i < result.Tables[0].Rows.Count; i++)
                {
                    var dr = result.Tables[0].Rows[i];
                    try
                    {
                        if (dr["Hücre Adı"].ToString() != "" && dr["Mal Kodu"].ToString() != "" && dr["Birim"].ToString() != "" && dr["Miktar"].ToString2().IsNumeric() != false)
                        {
                            var katID  = db.GetHucreKatID(DID, dr["Hücre Adı"].ToString()).FirstOrDefault();
                            var miktar = dr["Miktar"].ToString().ToDecimal();
                            if (katID != null)
                            {
                                var tmp2 = Yerlestirme.Detail(katID.Value, dr["Mal Kodu"].ToString(), dr["Birim"].ToString());
                                if (tmp2 == null)
                                {
                                    tmp2 = new Yer()
                                    {
                                        KatID = katID.Value, MalKodu = dr["Mal Kodu"].ToString(), Birim = dr["Birim"].ToString(), Miktar = miktar
                                    };
                                    Yerlestirme.Insert(tmp2, vUser.Id, "Stok Elle Ekle");
                                }
                                else
                                {
                                    tmp2.Miktar += miktar;
                                    Yerlestirme.Update(tmp2, vUser.Id, "Stok Elle Ekle", miktar, false);
                                }

                                basarili++;
                            }
                            else
                            {
                                hatali++;
                                if (hatalilar != "")
                                {
                                    hatalilar += ", ";
                                }
                                hatalilar += (i + 1);
                            }
                        }
                        else
                        {
                            hatali++;
                            if (hatalilar != "")
                            {
                                hatalilar += ", ";
                            }
                            hatalilar += (i + 1);
                        }
                    }
                    catch (Exception ex)
                    {
                        hatali++;
                        if (hatalilar != "")
                        {
                            hatalilar += ", ";
                        }
                        hatalilar += (i + 1);
                        Logger(ex, "Uploads/Stock");
                    }
                }

                reader.Close();
                // update db
                try
                {
                    dbContextTransaction.Commit();
                }
                catch (Exception ex)
                {
                    Logger(ex, "Uploads/Stock");
                    _result.Message = "Hatalı satırlar var";
                    return(Json(_result, JsonRequestBehavior.AllowGet));
                }
            }

            if (basarili > 0)
            {
                _result.Message = basarili + " adet satır eklendi";
                // log
                LogActions("", "Uploads", "Stock", ComboItems.alYükle, 0, "Satır Sayısı: " + basarili);
            }
            else
            {
                _result.Message = "";
            }
            if (basarili > 0 && hatali > 0)
            {
                _result.Message += ", ";
            }
            if (hatali > 0)
            {
                _result.Message += hatali + " satır hata verdi. Hatalı satırlar: \n" + hatalilar;
            }
            else
            {
                _result.Status = true;
            }
            return(Json(_result, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Step4(frmSiparisSteps tbl)
        {
            if (tbl.DepoID == "" || tbl.EvrakNos.Count() == 0 || tbl.Miktars.Count() == 0 || tbl.IDs.Count() == 0)
            {
                return(RedirectToAction("Index"));
            }
            if (CheckPerm(Perms.KabloSiparişi, PermTypes.Writing) == false)
            {
                return(Redirect("/"));
            }
            // sql oluştur
            var sql  = string.Format("EXEC FINSAT6{0}.wms.getSiparis2ListStep4 @DepoKodu = '{1}', @EvrakNos = '{2}', @IDs = '{3}'", vUser.SirketKodu, tbl.DepoID, string.Join(",", tbl.EvrakNos), string.Join(",", tbl.IDs));
            var list = db.Database.SqlQuery <frmSiparisMalzemeOnay>(sql).ToList();

            if (list == null)
            {
                return(RedirectToAction("Index"));
            }
            // variables and consts
            int    today = fn.ToOADate(), time = fn.ToOATime(), valorgun = 0;
            var    idDepo = db.Depoes.Where(m => m.DepoKodu == tbl.DepoID).Select(m => m.ID).FirstOrDefault();
            var    GorevNo = db.SettingsGorevNo(today, idDepo).FirstOrDefault();
            string alıcılar = "", chk = "", teslimchk = "", aciklama = "";
            var    cevap = new InsertIrsaliye_Result();
            Result _Result;

            // loop the list
            foreach (var item in list)
            {
                // irsaliye tablosu
                if (chk != item.Chk || valorgun != item.ValorGun || teslimchk != item.TeslimChk || aciklama != item.Aciklama)
                {
                    cevap = db.InsertIrsaliye(vUser.SirketKodu, idDepo, GorevNo, GorevNo, today, "", true, ComboItems.SiparişTopla.ToInt32(), vUser.UserName, today, time, item.Chk, item.TeslimChk, item.ValorGun, item.EvrakNo, item.Aciklama).FirstOrDefault();
                    // save sck
                    chk       = item.Chk;
                    valorgun  = item.ValorGun;
                    teslimchk = item.TeslimChk;
                    aciklama  = item.Aciklama;
                    alıcılar += item.Unvan + ",";
                }

                // get stok
                var stokMiktari = db.GetStock(idDepo, item.MalKodu, item.Birim, true).FirstOrDefault();
                if (stokMiktari != null)
                {
                    var tyerid    = tbl.MalKodus[Array.FindIndex(tbl.IDs, m => m == item.ROW_ID)];
                    var yersatiri = Yerlestirme.Detail(tyerid.ToInt32());
                    var miktar    = tbl.Miktars[Array.FindIndex(tbl.IDs, m => m == item.ROW_ID)];
                    // sti tablosu
                    var sti = new IRS_Detay()
                    {
                        IrsaliyeID        = cevap.IrsaliyeID.Value,
                        MalKodu           = item.MalKodu,
                        Birim             = item.Birim,
                        Miktar            = miktar <= stokMiktari.Value ? miktar : stokMiktari.Value,
                        MakaraNo          = yersatiri.MakaraNo,
                        KynkSiparisID     = item.ROW_ID,
                        KynkSiparisNo     = item.EvrakNo,
                        KynkSiparisSiraNo = item.SiraNo,
                        KynkSiparisTarih  = item.Tarih,
                        KynkSiparisMiktar = item.BirimMiktar,
                        KynkDegisSaat     = item.DegisSaat
                    };
                    _Result = IrsaliyeDetay.Operation(sti);

                    // miktarı tabloya ekle
                    var tblyer = new GorevYer()
                    {
                        GorevID  = cevap.GorevID.Value,
                        YerID    = tyerid.ToInt32(),
                        MalKodu  = item.MalKodu,
                        Birim    = item.Birim,
                        Miktar   = miktar,
                        MakaraNo = yersatiri.MakaraNo,
                        GC       = true
                    };
                    TaskYer.Operation(tblyer);
                }
            }
            // görev tablosu için tekrar yeni ve sade bir liste lazım
            var grv = db.Gorevs.Where(m => m.ID == cevap.GorevID).FirstOrDefault();

            grv.Bilgi = "Alıcı: " + alıcılar;
            db.SaveChanges();
            // sıralama
            var lstKoridor = db.GetKoridorIdFromGorevId(cevap.GorevID.Value).ToList();
            var asc = false; var sira = 1;

            foreach (var item in lstKoridor)
            {
                var lstBolum = db.GetBolumSiralamaFromGorevId(cevap.GorevID.Value, item.Value, asc).ToList();
                foreach (var item2 in lstBolum)
                {
                    var tmptblyer = new GorevYer()
                    {
                        ID   = item2.Value,
                        Sira = sira
                    };
                    sira++;
                    TaskYer.Operation(tmptblyer);
                }

                asc = asc == false ? true : false;
            }
            // listeyi getir
            sql = string.Format("EXEC FINSAT6{0}.wms.getSiparisListStep42 {1}", vUser.SirketKodu, cevap.GorevID);
            var list2 = db.Database.SqlQuery <frmSiparisMalzeme>(sql).ToList();

            ViewBag.GorevID = cevap.GorevID.Value;
            return(View("Step4", list2));
        }
Example #3
0
        public JsonResult CountBackDiff(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 bulunamadı!"), JsonRequestBehavior.AllowGet));
            }

            // variables
            var        tarih   = fn.ToOADate();
            var        saat    = fn.ToOATime();
            List <STI> 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 = 100) AND (IslemTip = 20)", mGorev.IR.SirketKod, mGorev.IR.LinkEvrakNo);
            var list = db.Database.SqlQuery <frmGorevSayimFisi>(sql).ToList();

            sql = "";
            foreach (var item in list)
            {
                if (item.IslemTur == 0)//giriş
                {
                    sql += string.Format("UPDATE FINSAT6{0}.FINSAT6{0}.DST " +
                                         "SET GirMiktar = GirMiktar - {3},  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},  Degistiren = '{3}', DegisTarih = {4}, DegisSaat = {5} " +
                                         "WHERE(MalKodu = '{1}');", mGorev.IR.SirketKod, item.MalKodu, (item.Miktar - item.Miktar2).ToDot(), vUser.UserName, tarih, saat);
                }
                else//çıkış
                {
                    sql += string.Format("UPDATE FINSAT6{0}.FINSAT6{0}.DST " +
                                         "SET CikMiktar = CikMiktar - {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}, Degistiren = '{3}', DegisTarih = {4}, DegisSaat = {5} " +
                                         "WHERE(MalKodu = '{1}');", mGorev.IR.SirketKod, item.MalKodu, (item.Miktar2 - item.Miktar).ToDot(), vUser.UserName, tarih, saat);
                }
            }

            sql += string.Format("DELETE FROM FINSAT6{0}.FINSAT6{0}.STI WHERE (EvrakNo = '{1}') AND (KynkEvrakTip = 100) AND (IslemTip = 20);",
                                 mGorev.IR.SirketKod, mGorev.IR.LinkEvrakNo);
            db.Database.ExecuteSqlCommand(sql);
            LogActions("WMS", "Tasks", "CountBackDiff", ComboItems.alSil, mGorev.ID, "Sayım Fark Fişi İptal: " + mGorev.IR.LinkEvrakNo);

            var yl = db.Yer_Log.Where(a => a.IrsaliyeID == mGorev.IR.ID).ToList();

            foreach (var item in yl)
            {
                var tmp2 = Yerlestirme.Detail(item.KatID, item.MalKodu, "", item.MakaraNo);
                if (item.GC == true)
                {
                    tmp2.Miktar += item.Miktar;
                    Yerlestirme.Update(tmp2, vUser.Id, "Sayım Farkı Fişi İptal", item.Miktar, false, mGorev.IR.ID);
                }
                else
                {
                    tmp2.Miktar -= item.Miktar;
                    Yerlestirme.Update(tmp2, vUser.Id, "Sayım Farkı Fişi İptal", item.Miktar, true, mGorev.IR.ID);
                }
            }

            mGorev.IR.LinkEvrakNo = null;
            db.SaveChanges();

            return(Json(new Result(true, mGorev.ID, "İşlem tamlandı!"), JsonRequestBehavior.AllowGet));
        }
Example #4
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));
        }
        public JsonResult ManualMovement(Yer tbl)
        {
            if (CheckPerm(Perms.Stok, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            if (tbl.Miktar < 1)
            {
                return(Json(new Result(false, "Miktar hatalı"), JsonRequestBehavior.AllowGet));
            }
            // burada görev oluştur
            var ilk = Yerlestirme.Detail(tbl.ID);

            if (ilk.Miktar < tbl.Miktar || tbl.Miktar < 1)
            {
                return(Json(new Result(false, "Miktar hatalı yazılmış"), JsonRequestBehavior.AllowGet));
            }
            var today = fn.ToOADate();
            var time  = fn.ToOATime();

            try
            {
                // ilk önce görevler ve irsaliye kaydedilir
                var GorevÇıkNo = "";
                var s1         = db.Gorevs.Where(m => m.DepoID == ilk.DepoID && m.GorevTipiID == (int)ComboItems.TransferÇıkış && m.DurumID == 9 && m.Bilgi == "Yer Değiştir").FirstOrDefault();
                if (s1 == null)
                {
                    GorevÇıkNo = db.SettingsGorevNo(today, ilk.DepoID).FirstOrDefault();
                }
                else
                {
                    GorevÇıkNo = s1.GorevNo;
                }
                var GorevGirNo = "";
                var s2         = db.Gorevs.Where(m => m.DepoID == ilk.DepoID && m.GorevTipiID == (int)ComboItems.TransferGiriş && m.DurumID == 15 && m.Bilgi == "Yer Değiştir").FirstOrDefault();
                if (s2 == null)
                {
                    GorevGirNo = db.SettingsGorevNo(today, ilk.DepoID).FirstOrDefault();
                }
                else
                {
                    GorevGirNo = s2.GorevNo;
                }
                //irsaliye oluştur
                var cevapGir = db.InsertIrsaliye(vUser.SirketKodu, ilk.DepoID, GorevGirNo, GorevGirNo, today, "Yer Değiştir", true, ComboItems.TransferGiriş.ToInt32(), vUser.UserName, today, time, "Yer Değiştir", "", 0, "", "").FirstOrDefault();
                var cevapÇık = db.InsertIrsaliye(vUser.SirketKodu, ilk.DepoID, GorevÇıkNo, GorevGirNo, today, "Yer Değiştir", true, ComboItems.TransferÇıkış.ToInt32(), vUser.UserName, today, time, "Yer Değiştir", "", 0, cevapGir.GorevID.Value.ToString(), "").FirstOrDefault();
                // GorevYer tablosu - çıkış
                var cevap = TaskYer.Operation(new GorevYer()
                {
                    GorevID = cevapÇık.GorevID.Value, YerID = ilk.ID, MalKodu = ilk.MalKodu, Birim = ilk.Birim, Miktar = tbl.Miktar, GC = true
                });
                // giriş
                var yertmp = Yerlestirme.Detail(tbl.KatID, ilk.MalKodu, ilk.Birim);
                if (yertmp == null)
                {
                    cevap = Yerlestirme.Insert(new Yer()
                    {
                        KatID = tbl.KatID, MalKodu = ilk.MalKodu, Birim = ilk.Birim, Miktar = 0
                    }, vUser.Id, "Yer Değiştir");
                    yertmp = new Yer()
                    {
                        ID = cevap.Id
                    };
                }

                cevap = TaskYer.Operation(new GorevYer()
                {
                    GorevID = cevapGir.GorevID.Value, YerID = yertmp.ID, MalKodu = ilk.MalKodu, Birim = ilk.Birim, Miktar = tbl.Miktar, GC = false
                });
                // irs detay
                cevap = IrsaliyeDetay.Operation(new IRS_Detay()
                {
                    IrsaliyeID = cevapGir.IrsaliyeID.Value, MalKodu = ilk.MalKodu, Miktar = tbl.Miktar, Birim = ilk.Birim, KynkSiparisID = tbl.KatID
                });
                // return
                return(Json(new Result(true), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Logger(ex, "Stock/ManualMovementSave");
                return(Json(new Result(false, "Kayıt hatası"), JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult ManualCorrection(Yer tbl, bool GC)
        {
            if (CheckPerm(Perms.Stok, PermTypes.Writing) == false || tbl.Miktar < 0)
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
            Result sonuc;

            if (tbl.MakaraNo == "" || tbl.MakaraNo == null)
            {
                var kkablo = db.Database.SqlQuery <string>(string.Format(@"
                SELECT Kod1 FROM FINSAT6{0}.FINSAT6{0}.STK WITH(NOLOCK) WHERE (MalKodu = '{1}')", vUser.SirketKodu, tbl.MalKodu)).FirstOrDefault();
                if (kkablo == "KKABLO")
                {
                    return(Json(new Result(false, "Makara no girilmelidir."), JsonRequestBehavior.AllowGet));
                }
            }

            if (GC == false)
            {
                #region Giriş İşlemleri

                if (tbl.MakaraNo == "" || tbl.MakaraNo == null)
                {
                    var tmp2 = Yerlestirme.Detail(tbl.KatID, tbl.MalKodu, tbl.Birim);
                    if (tmp2 == null)
                    {
                        tmp2 = new Yer()
                        {
                            KatID       = tbl.KatID,
                            MalKodu     = tbl.MalKodu,
                            Birim       = tbl.Birim,
                            Miktar      = tbl.Miktar,
                            MakaraDurum = true
                        };
                        sonuc = Yerlestirme.Insert(tmp2, vUser.Id, "Stok Elle Düzeltme");
                        if (sonuc.Status == false)
                        {
                            return(Json(new Result(false, sonuc.Message), JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        tmp2.Miktar += tbl.Miktar;
                        sonuc        = Yerlestirme.Update(tmp2, vUser.Id, "Stok Elle Düzeltme", tbl.Miktar, false);
                        if (sonuc.Status == false)
                        {
                            return(Json(new Result(false, sonuc.Message), JsonRequestBehavior.AllowGet));
                        }
                    }
                }
                else
                {
                    var tmp2 = db.Yers.Where(m => m.DepoID == tbl.DepoID && m.MakaraNo == tbl.MakaraNo).FirstOrDefault();
                    if (tmp2 == null)
                    {
                        tmp2 = new Yer()
                        {
                            KatID       = tbl.KatID,
                            MalKodu     = tbl.MalKodu,
                            MakaraNo    = tbl.MakaraNo,
                            Birim       = tbl.Birim,
                            Miktar      = tbl.Miktar,
                            MakaraDurum = true
                        };
                        sonuc = Yerlestirme.Insert(tmp2, vUser.Id, "Stok Elle Düzeltme");
                        if (sonuc.Status == false)
                        {
                            return(Json(new Result(false, sonuc.Message), JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json(new Result(false, "Bu makara no kullanılmaktadır"), JsonRequestBehavior.AllowGet));
                    }
                }
                #endregion
            }
            else
            {
                #region Çıkış İşlemleri

                var tmp2 = Yerlestirme.Detail(tbl.KatID, tbl.MalKodu, "", tbl.MakaraNo);
                if (tmp2 == null)
                {
                    return(Json(new Result(false, "Seçili yerde bu ürün bulunamadı."), JsonRequestBehavior.AllowGet));
                }
                if (tmp2.Miktar < tbl.Miktar)
                {
                    return(Json(new Result(false, "Seçili yerde çıkış yapılmak istenilen sayıda ürün yok"), JsonRequestBehavior.AllowGet));
                }
                tmp2.Miktar -= tbl.Miktar;
                sonuc        = Yerlestirme.Update(tmp2, vUser.Id, "Stok Elle Düzeltme", tbl.Miktar, true);
                if (sonuc.Status == false)
                {
                    return(Json(new Result(false, sonuc.Message), JsonRequestBehavior.AllowGet));
                }

                #endregion
            }

            // add to mysql
            if (db.Settings.FirstOrDefault().KabloSiparisMySql == true)
            {
                #region Mysql İşlemleri

                string sql = "";

                if (vUser.SirketKodu == "33")
                {
                    sql = string.Format(@"
                SELECT FINSAT6{0}.FINSAT6{0}.STK.MalAdi4 as Marka, FINSAT6{0}.FINSAT6{0}.STK.Nesne2 as Cins, FINSAT6{0}.FINSAT6{0}.STK.Kod15 as Kesit,
                '' AS Renk
                FROM FINSAT6{0}.FINSAT6{0}.STK
                WHERE (FINSAT6{0}.FINSAT6{0}.STK.Kod1 = 'KKABLO') AND (FINSAT6{0}.FINSAT6{0}.STK.MalKodu = '{1}')", vUser.SirketKodu, tbl.MalKodu);
                }
                else
                {
                    sql = string.Format(@"
                SELECT FINSAT6{0}.FINSAT6{0}.STK.MalAdi4 as Marka, FINSAT6{0}.FINSAT6{0}.STK.Nesne2 as Cins, FINSAT6{0}.FINSAT6{0}.STK.Kod16 as Kesit,
                FINSAT6{0}.FINSAT6{0}.STK.Kod15 as Renk
                FROM FINSAT6{0}.FINSAT6{0}.STK
                WHERE (FINSAT6{0}.FINSAT6{0}.STK.Kod1 = 'KKABLO') AND (FINSAT6{0}.FINSAT6{0}.STK.MalKodu = '{1}')", vUser.SirketKodu, tbl.MalKodu);
                }

                var stks = db.Database.SqlQuery <frmCableStk>(sql).FirstOrDefault();
                if (stks != null)
                {
                    using (KabloEntities dbx = new KabloEntities())
                    {
                        string depo;
                        var    kbldepoID = db.Depoes.Where(m => m.ID == tbl.DepoID).Select(m => m.KabloDepoID).FirstOrDefault();
                        if (kbldepoID == null)
                        {
                            depo = dbx.depoes.Select(m => m.depo1).FirstOrDefault();
                        }
                        else
                        {
                            depo = dbx.depoes.Where(m => m.id == kbldepoID).Select(m => m.depo1).FirstOrDefault();
                        }
                        try
                        {
                            if (GC == false)
                            {
                                // sid bul
                                var sid = dbx.indices.Where(m => m.cins == stks.Cins && m.kesit == stks.Kesit).FirstOrDefault();
                                if (sid == null)
                                {
                                    sid = new index()
                                    {
                                        cins = stks.Cins, kesit = stks.Kesit, agirlik = 0
                                    };
                                    dbx.indices.Add(sid);
                                    dbx.SaveChanges();
                                }
                                // stoğa kaydet
                                var tbls = new stok()
                                {
                                    marka    = stks.Marka,
                                    cins     = stks.Cins,
                                    kesit    = stks.Kesit,
                                    sid      = sid.id,
                                    depo     = depo,
                                    renk     = stks.Renk,
                                    makara   = "KAPALI",
                                    rezerve  = "0",
                                    sure     = new TimeSpan(),
                                    tarih    = DateTime.Now,
                                    tip      = "",
                                    rmiktar  = 0,
                                    miktar   = tbl.Miktar,
                                    makarano = tbl.MakaraNo
                                };
                                dbx.stoks.Add(tbls);
                            }
                            else
                            {
                                // makarayı bul
                                var kablo = dbx.stoks.Where(m => m.depo == depo && m.makarano == tbl.MakaraNo).FirstOrDefault();
                                if (kablo != null)
                                {
                                    // kabloya açık yap
                                    if (kablo.miktar != tbl.Miktar)
                                    {
                                        kablo.makara = "AÇIK";
                                    }
                                    // yeni hareket ekle
                                    var tblh = new hareket()
                                    {
                                        id         = kablo.id,
                                        miktar     = tbl.Miktar,
                                        musteri    = "Stok Elle Düzeltme",
                                        tarih      = DateTime.Now,
                                        kaydigiren = vUser.FullName
                                    };
                                    dbx.harekets.Add(tblh);
                                }
                            }
                            dbx.SaveChanges();
                        }
                        catch (Exception ex)
                        {
                            Logger(ex, "Stock/ManualCorrection");
                        }
                    }
                }
                #endregion
            }

            // return
            return(Json(new Result(true), JsonRequestBehavior.AllowGet));
        }