public JsonResult Approve(int ID)
        {
            if (CheckPerm(Perms.Transfer, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            // get and set transfer details
            var tbl = Transfers.Detail(ID);

            tbl.Onay           = true;
            tbl.Onaylayan      = vUser.UserName;
            tbl.OnaylamaTarihi = fn.ToOADate();
            tbl.OnaylamaSaati  = fn.ToOATime();
            Transfers.Operation(tbl);
            //görev yer
            var tbl2 = db.Gorevs.Where(m => m.ID == tbl.GorevID).FirstOrDefault();

            tbl2.DurumID = ComboItems.Açık.ToInt32();
            // sıralama
            var lstKoridor = db.GetKoridorIdFromGorevId(tbl.GorevID).ToList();
            var asc = false; var sira = 1;

            foreach (var item in lstKoridor)
            {
                var lstBolum = db.GetBolumSiralamaFromGorevId(tbl.GorevID, 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;
            }
            db.SaveChanges();
            // log
            LogActions("WMS", "Transfer", "Approve", ComboItems.alOnayla, ID);
            // return
            return(Json(new Result(true, ID), JsonRequestBehavior.AllowGet));
        }
Example #2
0
        public ActionResult Step4(int GorevID, int DepoID)
        {
            if (CheckPerm(Perms.AlimdanIade, PermTypes.Writing) == false)
            {
                return(Redirect("/"));
            }
            // sıralama
            var lstKoridor = db.GetKoridorIdFromGorevId(GorevID).ToList();
            var asc = false; var sira = 1;

            foreach (var item in lstKoridor)
            {
                var lstBolum = db.GetBolumSiralamaFromGorevId(GorevID, 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
            var sql = string.Format("SELECT wms.Yer.HucreAd, wms.GorevYer.MalKodu, wms.GorevYer.Miktar, wms.GorevYer.Birim,  wms.GorevYer.Sira, wms.Yer.Miktar AS Stok " +
                                    "FROM wms.GorevYer INNER JOIN wms.Yer ON wms.GorevYer.YerID = wms.Yer.ID " +
                                    "WHERE (wms.GorevYer.GorevID = {0}) ORDER BY  wms.GorevYer.Sira", GorevID);
            var list = db.Database.SqlQuery <frmSiparisMalzeme>(sql).ToList();

            ViewBag.GorevID = GorevID;
            return(View("Step4", list));
        }
Example #3
0
        public ActionResult Step3(frmSiparisOnay tbl)
        {
            if (tbl.DepoID == "0" || tbl.checkboxes == "")
            {
                return(RedirectToAction("Index"));
            }
            if (CheckPerm(Perms.AlimdanIade, PermTypes.Writing) == false)
            {
                return(Redirect("/"));
            }
            tbl.checkboxes = tbl.checkboxes.Left(tbl.checkboxes.Length - 1);
            var checkList  = tbl.checkboxes.Split('#');
            var evrak      = tbl.EvrakNos.Split('-')[0];
            var hesapKodu  = tbl.EvrakNos.Split('-')[1];
            var malkodlari = new List <string>();
            var birimler   = new List <string>();
            var miktars    = new List <decimal>();
            var rowID      = new List <int>();
            var i          = 0;

            // malkodları,miktarları,birimleri ayır
            foreach (var item in checkList)
            {
                if (item != "")
                {
                    string[] tmp2 = item.Split('!');

                    malkodlari.Add(tmp2[0]);
                    birimler.Add(tmp2[1]);
                    miktars.Add(tmp2[2].Replace(".", ",").ToDecimal());
                    rowID.Add(tmp2[4].Replace(".", ",").ToInt32());
                }
            }

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

            // loop the list
            cevap = db.InsertIadeIrsaliye(vUser.SirketKodu, idDepo, GorevNo, GorevNo, today, "", true, ComboItems.Alımdanİade.ToInt32(), vUser.UserName, today, time, hesapKodu, hesapKodu, 0, evrak).FirstOrDefault();
            foreach (var item in checkList)
            {
                // get stok
                var stokMiktari = db.GetStock(idDepo, malkodlari[i], birimler[i], false).FirstOrDefault();
                if (stokMiktari != null)
                {
                    // sti tablosu
                    var sti = new IRS_Detay()
                    {
                        IrsaliyeID    = cevap.IrsaliyeID.Value,
                        MalKodu       = malkodlari[i],
                        Birim         = birimler[i],
                        Miktar        = miktars[i] <= stokMiktari.Value ? miktars[i] : stokMiktari.Value,
                        KynkSiparisNo = evrak,
                        KynkSiparisID = rowID[i]
                    };
                    _Result = IrsaliyeDetay.Operation(sti);
                }

                i++;
            }

            // 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 = "Irs: " + evraknolar + " Alıcı: " + alıcılar;
            db.SaveChanges();
            // get gorev details
            var sql = string.Format("SELECT wms.IRS_Detay.MalKodu, SUM(wms.IRS_Detay.Miktar) AS Miktar, wms.IRS_Detay.Birim " +
                                    "FROM wms.IRS_Detay INNER JOIN wms.GorevIRS ON wms.IRS_Detay.IrsaliyeID = wms.GorevIRS.IrsaliyeID " +
                                    "WHERE(wms.GorevIRS.GorevID = {0}) " +
                                    "GROUP BY wms.IRS_Detay.MalKodu, wms.IRS_Detay.Birim", cevap.GorevID);
            var list = db.Database.SqlQuery <frmSiparisMalzemeOnay>(sql).ToList();

            foreach (var item in list)
            {
                var     tmpYer = db.Yers.Where(m => m.MalKodu == item.MalKodu && m.Birim == item.Birim && m.Kat.Bolum.Raf.Koridor.Depo.DepoKodu == tbl.DepoID && m.Miktar > 0).OrderBy(m => m.Miktar).ToList();
                decimal toplam = 0, miktar = 0;
                if (tmpYer != null)
                {
                    foreach (var itemyer in tmpYer)
                    {
                        if (itemyer.Miktar >= (item.Miktar - toplam))
                        {
                            miktar = item.Miktar - toplam;
                        }
                        else
                        {
                            miktar = itemyer.Miktar;
                        }
                        toplam += miktar;
                        // miktarı tabloya ekle
                        var tblyer = new GorevYer()
                        {
                            GorevID = cevap.GorevID.Value,
                            YerID   = itemyer.ID,
                            MalKodu = item.MalKodu,
                            Birim   = item.Birim,
                            Miktar  = miktar,
                            GC      = true
                        };
                        TaskYer.Operation(tblyer);
                        // toplam yeterli miktardaysa
                        if (toplam == item.Miktar)
                        {
                            break;
                        }
                    }
                }
            }

            // listeyi getir
            sql = string.Format("SELECT wms.Yer.HucreAd, wms.GorevYer.MalKodu, wms.GorevYer.Miktar, wms.GorevYer.Birim, wms.Yer.Miktar AS Stok " +
                                "FROM wms.GorevYer INNER JOIN wms.Yer ON wms.GorevYer.YerID = wms.Yer.ID " +
                                "WHERE (wms.GorevYer.GorevID = {0})", cevap.GorevID.Value);
            var list2 = db.Database.SqlQuery <frmSiparisMalzeme>(sql).ToList();

            ViewBag.GorevID = cevap.GorevID.Value;
            ViewBag.DepoID  = idDepo;
            return(View("Step3", list2));
        }
        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));
        }
        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 Summary(frmTransferMalzemeApprove tbl)
        {
            if (CheckPerm(Perms.Transfer, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok."), JsonRequestBehavior.AllowGet));
            }
            if (tbl.GirisDepo == "" || tbl.AraDepo == "" || tbl.CikisDepo == "" || tbl.MalKodus.Count() == 0 || tbl.Birims.Count() == 0 || tbl.Miktar.Count() == 0)
            {
                return(Json(new Result(false, "Eksik bilgi girdiniz."), JsonRequestBehavior.AllowGet));
            }
            if (tbl.GirisDepo == tbl.AraDepo || tbl.CikisDepo == tbl.AraDepo || tbl.CikisDepo == tbl.GirisDepo)
            {
                return(Json(new Result(false, "Aynı depoları seçemezsiniz."), JsonRequestBehavior.AllowGet));
            }
            // stok kontrol
            var varmi = false;

            foreach (var item in tbl.MalKodus)
            {
                var sayi = db.Yers.Where(m => m.MalKodu == item && m.Miktar > 0 && m.Kat.Bolum.Raf.Koridor.Depo.DepoKodu == tbl.CikisDepo).FirstOrDefault();
                if (sayi != null)
                {
                    varmi = true; break;
                }
            }
            if (varmi == false)
            {
                return(Json(new Result(false, "Seçtiğiniz hiç bir ürün stokta kayıtlı değil."), JsonRequestBehavior.AllowGet));
            }
            // çapraz stok kontrol
            var sql   = string.Format(@"EXEC FINSAT6{0}.wms.TransferKontrol @CikisDepo = '{1}', @MalKodus = '{2}'", vUser.SirketKodu, tbl.CikisDepo, string.Join(",", tbl.MalKodus));
            var list1 = db.Database.SqlQuery <frmTransferMalzemeler>(sql).ToList();

            foreach (var item in list1)
            {
                if (item.Depo2GunesStok != item.Depo2WmsStok)
                {
                    return(Json(new Result(false, item.MalKodu + " kodlu ürünün stoğu hatalı."), JsonRequestBehavior.AllowGet));
                }
            }
            //miktars
            for (int i = 0; i < tbl.Miktar.Length; i++)
            {
                tbl.Miktars[i] = tbl.Miktar[i].ToDecimal();
            }
            // add to list
            var aDepoID = Store.Detail(tbl.AraDepo).ID;
            var cDepoID = Store.Detail(tbl.CikisDepo);
            var gDepoID = Store.Detail(tbl.GirisDepo);
            int today = fn.ToOADate(), time = fn.ToOATime();
            // yeni bir görev eklenir
            var GorevNo = db.SettingsGorevNo(today, cDepoID.ID).FirstOrDefault();
            var cevap   = db.InsertIrsaliye(vUser.SirketKodu, cDepoID.ID, GorevNo, GorevNo, today, "Giriş: " + tbl.GirisDepo + ", Çıkış: " + tbl.CikisDepo, true, ComboItems.TransferÇıkış.ToInt32(), vUser.UserName, today, time, cDepoID.DepoAd, "", 0, "", "").FirstOrDefault();
            // yeni transfer eklenir
            var sonuc = Transfers.Operation(new Transfer()
            {
                SirketKod = vUser.SirketKodu, GirisDepoID = gDepoID.ID, CikisDepoID = cDepoID.ID, AraDepoID = aDepoID, GorevID = cevap.GorevID.Value
            });
            // find detays
            var TransferID = sonuc.Id;

            for (int i = 0; i < tbl.MalKodus.Count(); i++)
            {
                // stok kontrol
                var     malkodu = tbl.MalKodus[i];
                var     birim = tbl.Birims[i];
                var     tmpYer = db.Yers.Where(m => m.MalKodu == malkodu && m.Birim == birim && m.Kat.Bolum.Raf.Koridor.Depo.DepoKodu == tbl.CikisDepo && m.Miktar > 0).OrderByDescending(m => m.Miktar).ToList();
                decimal toplam = 0, miktar = 0;
                if (tmpYer.Count > 0)
                {
                    foreach (var itemyer in tmpYer)
                    {
                        if (itemyer.Miktar >= (tbl.Miktars[i] - toplam))
                        {
                            miktar = tbl.Miktars[i] - toplam;
                        }
                        else
                        {
                            miktar = itemyer.Miktar;
                        }
                        toplam += miktar;
                        // miktarı tabloya ekle
                        var tblyer = new GorevYer()
                        {
                            GorevID  = cevap.GorevID.Value,
                            YerID    = itemyer.ID,
                            MalKodu  = tbl.MalKodus[i],
                            Birim    = tbl.Birims[i],
                            Miktar   = miktar,
                            MakaraNo = itemyer.MakaraNo,
                            GC       = true
                        };
                        if (miktar > 0)
                        {
                            TaskYer.Operation(tblyer);
                        }
                        // toplam yeterli miktardaysa
                        if (toplam == tbl.Miktars[i])
                        {
                            break;
                        }
                    }

                    tbl.Miktars[i] = toplam;
                    // hepsi eklenince detayı db'ye ekle
                    if (tbl.Miktars[i] > 0)
                    {
                        sonuc = Transfers.AddDetay(new Transfer_Detay()
                        {
                            TransferID = TransferID, MalKodu = tbl.MalKodus[i], Birim = tbl.Birims[i], Miktar = tbl.Miktars[i]
                        });
                    }
                    if (tbl.Miktars[i] > 0)
                    {
                        IrsaliyeDetay.Operation(new IRS_Detay()
                        {
                            IrsaliyeID = cevap.IrsaliyeID.Value, MalKodu = tbl.MalKodus[i], Miktar = tbl.Miktars[i], Birim = tbl.Birims[i], KynkSiparisID = sonuc.Id, KynkSiparisTarih = TransferID
                        });
                    }
                }
            }
            return(Json(new Result(true, TransferID), JsonRequestBehavior.AllowGet));
        }
        public JsonResult Save(frmTransferMalzemeApprove tbl)
        {
            if (CheckPerm(Perms.Transfer, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            // add to list
            var aDepoID = Store.Detail(tbl.AraDepo).ID;
            var cDepoID = Store.Detail(tbl.CikisDepo);
            var gDepoID = Store.Detail(tbl.GirisDepo);
            int today = fn.ToOADate(), time = fn.ToOATime();
            // yeni bir görev eklenir
            var GorevNo = db.SettingsGorevNo(today, cDepoID.ID).FirstOrDefault();
            var cevap   = db.InsertIrsaliye(vUser.SirketKodu, cDepoID.ID, GorevNo, GorevNo, today, "Giriş: " + tbl.GirisDepo + ", Çıkış: " + tbl.CikisDepo, true, ComboItems.TransferÇıkış.ToInt32(), vUser.UserName, today, time, cDepoID.DepoAd, "", 0, "", "").FirstOrDefault();
            // yeni transfer eklenir
            var sonuc = Transfers.Operation(new Transfer()
            {
                SirketKod = vUser.SirketKodu, GirisDepoID = gDepoID.ID, CikisDepoID = cDepoID.ID, AraDepoID = aDepoID, GorevID = cevap.GorevID.Value
            });
            // find detays
            var TransferID = sonuc.Id;

            for (int i = 0; i < tbl.MalKodus.Count(); i++)
            {
                // stok kontrol
                var     tmpYer = db.Yers.Where(m => m.MalKodu == tbl.MalKodus[i] && m.Birim == tbl.Birims[i] && m.Kat.Bolum.Raf.Koridor.Depo.DepoKodu == tbl.CikisDepo && m.Miktar > 0).OrderByDescending(m => m.Miktar).ToList();
                decimal toplam = 0, miktar = 0;
                if (tmpYer.Count > 0)
                {
                    foreach (var itemyer in tmpYer)
                    {
                        if (itemyer.Miktar >= (tbl.Miktars[i] - toplam))
                        {
                            miktar = tbl.Miktars[i] - toplam;
                        }
                        else
                        {
                            miktar = itemyer.Miktar;
                        }
                        toplam += miktar;
                        // miktarı tabloya ekle
                        var tblyer = new GorevYer()
                        {
                            GorevID  = cevap.GorevID.Value,
                            YerID    = itemyer.ID,
                            MalKodu  = tbl.MalKodus[i],
                            Birim    = tbl.Birims[i],
                            Miktar   = miktar,
                            MakaraNo = itemyer.MakaraNo,
                            GC       = true
                        };
                        if (miktar > 0)
                        {
                            TaskYer.Operation(tblyer);
                        }
                        // toplam yeterli miktardaysa
                        if (toplam == tbl.Miktars[i])
                        {
                            break;
                        }
                    }

                    tbl.Miktars[i] = toplam;
                    // hepsi eklenince detayı db'ye ekle
                    if (tbl.Miktars[i] > 0)
                    {
                        sonuc = Transfers.AddDetay(new Transfer_Detay()
                        {
                            TransferID = TransferID, MalKodu = tbl.MalKodus[i], Birim = tbl.Birims[i], Miktar = tbl.Miktars[i]
                        });
                    }
                    if (tbl.Miktars[i] > 0)
                    {
                        IrsaliyeDetay.Operation(new IRS_Detay()
                        {
                            IrsaliyeID = cevap.IrsaliyeID.Value, MalKodu = tbl.MalKodus[i], Miktar = tbl.Miktars[i], Birim = tbl.Birims[i], KynkSiparisID = sonuc.Id, KynkSiparisTarih = TransferID
                        });
                    }
                }
            }
            ViewBag.IrsaliyeId = cevap.IrsaliyeID.Value;
            // return
            return(Json(new Result(true, 1), JsonRequestBehavior.AllowGet));
        }