Esempio n. 1
0
        public ActionResult Step2(frmSiparisSteps tbl)
        {
            //kontrol
            if (tbl.DepoID == "" || tbl.EvrakNos.Count() == 0)
            {
                return(RedirectToAction("Index"));
            }
            if (CheckPerm(Perms.GenelSipariş, PermTypes.Reading) == false)
            {
                return(Redirect("/"));
            }
            // listeyi getir
            var sql  = string.Format("EXEC FINSAT6{0}.wms.getSiparisListStep2 @DepoKodu = '{1}', @EvrakNos = '{2}'", vUser.SirketKodu, tbl.DepoID, string.Join(",", tbl.EvrakNos));
            var list = db.Database.SqlQuery <frmSiparisMalzeme>(sql).ToList();
            // çapraz stok kontrol
            string hataliStok = "", sifirStok = ""; var newList = new List <frmSiparisMalzeme>();

            foreach (var item in list)
            {
                if (item.WmsStok == 0)
                {
                    if (sifirStok != "")
                    {
                        sifirStok += ", ";
                    }
                    sifirStok += item.MalKodu;
                    newList.Add(item);
                }
                else if (item.Stok != item.WmsStok)
                {
                    if (hataliStok != "")
                    {
                        hataliStok += ", ";
                    }
                    hataliStok += item.MalKodu;
                }
            }

            if (newList.Count > 0)
            {
                foreach (var item in newList)
                {
                    list.Remove(item);
                }
            }
            if (sifirStok != "")
            {
                sifirStok += " için stok bulunamadı.<br />";
            }
            if (hataliStok != "")
            {
                hataliStok += " için stok miktarları uyuşmuyor.<br />";
            }
            // return
            ViewBag.DepoID     = tbl.DepoID;
            ViewBag.EvrakNos   = tbl.EvrakNos;
            ViewBag.Hatali     = sifirStok + hataliStok + "<br /><br />";
            ViewBag.hataliStok = hataliStok == "" && list.Count > 0 ? true : false;
            return(View("Step2", list));
        }
        public ActionResult Step3(frmSiparisSteps tbl)
        {
            if (tbl.DepoID == "" || tbl.EvrakNos.Count() == 0 || tbl.IDs.Count() == 0)
            {
                return(RedirectToAction("Index"));
            }
            if (CheckPerm(Perms.KabloSiparişi, PermTypes.Reading) == false)
            {
                return(Redirect("/"));
            }
            // sql oluştur
            var sql = string.Format("EXEC FINSAT6{0}.wms.getSiparis2ListStep3 @DepoKodu = '{1}', @EvrakNos = '{2}', @IDs = '{3}'", vUser.SirketKodu, tbl.DepoID, string.Join(",", tbl.EvrakNos), string.Join(",", tbl.IDs));
            // listeyi getir
            var list = db.Database.SqlQuery <frmCableStk>(sql).ToList();

            ViewBag.DepoID = tbl.DepoID;
            ViewBag.Yetki  = CheckPerm(Perms.KabloSiparişi, PermTypes.Writing);
            return(View("Step3", list));
        }
        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));
        }