Beispiel #1
0
        /// <summary>
        /// seçili satırları stoğa kaydder
        /// </summary>
        public JsonResult MysqlKaydet(List <MySQLDataViewModel> data)
        {
            if (data.Count(x => string.IsNullOrEmpty(x.MakaraNo)) != 0)//EKLE
            {
                return(Json(new Result(false, "Hata oldu"), JsonRequestBehavior.AllowGet));
            }
            string birim   = "";
            int    DepoID  = data[0].DepoID.ToInt32();
            var    gorevno = db.SettingsGorevNo(DateTime.Today.ToOADateInt(), DepoID).FirstOrDefault();
            var    today   = fn.ToOADate();
            var    time    = fn.ToOATime();
            var    cevap   = db.InsertIrsaliye(vUser.SirketKodu, DepoID, gorevno, gorevno, today, "Kablo Sayım", false, ComboItems.KabloSayım.ToInt32(), vUser.UserName, today, time, "", "", 0, "", "").FirstOrDefault();

            LogActions("WMS", "Purchase", "New", ComboItems.alEkle, cevap.GorevID.Value, "Kablo Sayım");

            foreach (var item in data)
            {
                string query = string.Format("select birim1 As Birim from FINSAT6{0}.FINSAT6{0}.STK WHERE MalKodu='{1}'", vUser.SirketKodu, item.MalKodu);
                birim = db.Database.SqlQuery <STKBirimMalKod>(query).FirstOrDefault().Birim;

                // yerleştirme kaydı yapılır
                var tmp2 = Yerlestirme.Detail(item.KatID, item.MalKodu, "", item.MakaraNo);
                if (tmp2 == null)
                {
                    var makarakontrol = db.Yers.Where(m => m.DepoID == DepoID && m.MakaraNo == item.MakaraNo).FirstOrDefault();
                    if (makarakontrol == null)
                    {
                        tmp2 = new Yer()
                        {
                            KatID    = item.KatID,
                            MalKodu  = item.MalKodu,
                            Birim    = birim,
                            Miktar   = item.Miktar,
                            MakaraNo = item.MakaraNo
                        };
                        Yerlestirme.Insert(tmp2, vUser.Id, "Kablo Sayım", cevap.IrsaliyeID.Value);
                    }
                }
                else
                {
                    tmp2.Miktar = item.Miktar;
                    Yerlestirme.Update(tmp2, vUser.Id, "Kablo Sayım", Math.Abs(item.Miktar - tmp2.Miktar), false, cevap.IrsaliyeID.Value);
                }
            }
            return(Json(new Result(true, "Ok"), JsonRequestBehavior.AllowGet));
        }
Beispiel #2
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 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));
            }
        }
Beispiel #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 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));
        }