Пример #1
0
        public JsonResult Approve(string ID)
        {
            var uysf  = new UYSF(SqlExper, vUser.SirketKodu);
            var tarih = fn.ToOADate();
            var saat  = fn.ToOATime();
            // get son emir no
            var EmirVeEvrak = db.Database.SqlQuery <frmUysEmirEvrak>(string.Format(@"SELECT '' as EmirNo,
										ISNULL((SELECT TOP (1) EvrakNo FROM (
													SELECT EvrakNo FROM FINSAT6{0}.FINSAT6{0}.STI WHERE (EvrakNo LIKE 'DG%')
													UNION
													SELECT TrsfrNo as EvrakNo FROM UYSPLN6{0}.UYSPLN6{0}.EMG WHERE (EmirNo LIKE 'DD%')
												)t ORDER BY EvrakNo DESC), 'DG000000') as EvrakNo"                                                , vUser.SirketKodu)).FirstOrDefault();

            if (EmirVeEvrak.EvrakNo == "")
            {
                EmirVeEvrak.EvrakNo = "DG000000";
            }
            EmirVeEvrak.EvrakNo = uysf.EvrakNoArttir(EmirVeEvrak.EvrakNo, "DG");
            // create list
            var liste = db.Database.SqlQuery <frmUysWaitingTransfer>(string.Format(@"
									SELECT       '{2}' as EvrakNo, 'TD' as AraDepo, UYSPLN6{0}.UYSPLN6{0}.EMG.Kod2 as CikisDepo, UYSPLN6{0}.UYSPLN6{0}.EMG.Kod3 as GirisDepo, '{3}' as Kaydeden, '{4}' AS Kaydeden2, FINSAT6{0}.FINSAT6{0}.STI.MalKodu, FINSAT6{0}.FINSAT6{0}.STI.SeriNo,
																FINSAT6{0}.FINSAT6{0}.STI.Birim, FINSAT6{0}.FINSAT6{0}.STI.Miktar, {5} as Tarih
									FROM            UYSPLN6{0}.UYSPLN6{0}.EMG INNER JOIN
																FINSAT6{0}.FINSAT6{0}.STI ON UYSPLN6{0}.UYSPLN6{0}.EMG.StiNo = FINSAT6{0}.FINSAT6{0}.STI.EvrakNo
									WHERE        (UYSPLN6{0}.UYSPLN6{0}.EMG.EmirNo = '{1}') AND (FINSAT6{0}.FINSAT6{0}.STI.IslemTur = 1) AND (FINSAT6{0}.FINSAT6{0}.STI.KynkEvrakTip = 53) AND (FINSAT6{0}.FINSAT6{0}.STI.IslemTip = 6)
							"                            , vUser.SirketKodu, ID, EmirVeEvrak.EvrakNo, vUser.UserName, vUser.FullName, tarih)).ToList();
            // send to db
            var sonuc = uysf.DepoTransfer(liste, null, true);

            if (sonuc.Status == true)
            {
                db.Database.ExecuteSqlCommand(string.Format(@"UPDATE UYSPLN6{0}.UYSPLN6{0}.EMG
                        SET BitTarih = {2}, BitSaat = {3}, Talimat3 = '{4}', TrsfrNo = '{5}', Degistiren= '{6}', DegisTarih = {2}, DegisSaat = {3}, CurDurum = 1, RecID = -1, Birim = -1, CurDurSb = -1, SonDurSb = -1, PlOnay = -1, YMUret = -1, YMMly = -1, YMEndMly = -1, YMDepo = -1, YMHmdCik = -1, Teklif = -1, KayitTuru = -1
                        WHERE EmirNo = '{1}'", vUser.SirketKodu, ID, tarih, saat, vUser.FullName, EmirVeEvrak.EvrakNo, vUser.UserName));
            }

            return(Json(sonuc, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public JsonResult Save(frmUysTransfer tbl)
        {
            // kontrol
            if (tbl.GirisDepo == tbl.CikisDepo)
            {
                return(Json(new Result(false, "Çıkış depo ile giriş depo aynı olamaz"), JsonRequestBehavior.AllowGet));
            }

            var listKontrol = new List <frmUysTransferDetay>();

            for (int i = 0; i < tbl.MalKodu.Length; i++)
            {
                var varmi = false;
                if (tbl.Miktar[i] <= 0)
                {
                    return(Json(new Result(false, "'" + tbl.SeriNo[i] + "' serili '" + tbl.MalKodu[i] + "' ürünü için yanlış miktar yazılmış"), JsonRequestBehavior.AllowGet));
                }

                foreach (var item in listKontrol)
                {
                    if (item.MalKodu == tbl.MalKodu[i] && item.SeriNo == tbl.SeriNo[i])
                    {
                        item.Miktar += tbl.Miktar[i];
                        varmi        = true;
                        continue;
                    }
                }

                if (varmi == false)
                {
                    listKontrol.Add(new frmUysTransferDetay()
                    {
                        MalKodu = tbl.MalKodu[i], Birim = tbl.Birim[i], SeriNo = tbl.SeriNo[i], Miktar = tbl.Miktar[i]
                    });
                }
            }

            // stok kontrol
            foreach (var item in listKontrol)
            {
                var sql = string.Format(@"SELECT
                                    ISNULL((SELECT SUM(CASE WHEN IslemTur = 0 THEN Miktar ELSE - Miktar END) AS Miktar
                                        FROM FINSAT6{0}.FINSAT6{0}.STI WITH (nolock) LEFT OUTER JOIN FINSAT6{0}.FINSAT6{0}.STK WITH (nolock) ON FINSAT6{0}.FINSAT6{0}.STK.MalKodu = FINSAT6{0}.FINSAT6{0}.STI.MalKodu
                                        WHERE (FINSAT6{0}.FINSAT6{0}.STI.MalKodu = '{1}') AND (FINSAT6{0}.FINSAT6{0}.STI.Tarih <= {2}) AND (FINSAT6{0}.FINSAT6{0}.STI.SeriNo = '{4}') AND (DATALENGTH(FINSAT6{0}.FINSAT6{0}.STI.SeriNo) = {5}) AND (FINSAT6{0}.FINSAT6{0}.STI.Depo = '{3}') AND (FINSAT6{0}.FINSAT6{0}.STI.IrsFat <> 2) AND (FINSAT6{0}.FINSAT6{0}.STI.KynkEvrakTip <> 95)and KynkEvrakTip not in (141,142,143,144) and not (KynkEvrakTip in (68,69) and ErekIIFKEvrakTip in (5,2) and IrsFat = 3)
                                        GROUP BY FINSAT6{0}.FINSAT6{0}.STI.MalKodu, FINSAT6{0}.FINSAT6{0}.STI.Depo, FINSAT6{0}.FINSAT6{0}.STI.SeriNo), 0) as Miktar1,
                                    ISNULL((SELECT SUM(CASE WHEN IslemTur = 0 THEN Miktar ELSE - Miktar END) AS Miktar
                                        FROM FINSAT6{0}.FINSAT6{0}.STI WITH (nolock) LEFT OUTER JOIN FINSAT6{0}.FINSAT6{0}.STK WITH (nolock) ON FINSAT6{0}.FINSAT6{0}.STK.MalKodu = FINSAT6{0}.FINSAT6{0}.STI.MalKodu
                                        WHERE (FINSAT6{0}.FINSAT6{0}.STI.MalKodu = '{1}') AND (FINSAT6{0}.FINSAT6{0}.STI.SeriNo = '{4}') AND (DATALENGTH(FINSAT6{0}.FINSAT6{0}.STI.SeriNo) = {5}) AND (FINSAT6{0}.FINSAT6{0}.STI.Depo = '{3}') AND (FINSAT6{0}.FINSAT6{0}.STI.IrsFat <> 2) AND(FINSAT6{0}.FINSAT6{0}.STI.KynkEvrakTip <> 95) and KynkEvrakTip not in (141,142,143,144) and not (KynkEvrakTip in (68,69) and ErekIIFKEvrakTip in (5,2) and IrsFat = 3)
                                        GROUP BY FINSAT6{0}.FINSAT6{0}.STI.MalKodu, FINSAT6{0}.FINSAT6{0}.STI.Depo, FINSAT6{0}.FINSAT6{0}.STI.SeriNo), 0) as Miktar2",
                                        vUser.SirketKodu, item.MalKodu, tbl.Tarih, tbl.CikisDepo, item.SeriNo, item.SeriNo.Length);
                var stokKontrol = db.Database.SqlQuery <frmUysStokKontrol>(sql).FirstOrDefault();
                if (stokKontrol.Miktar1 < item.Miktar || stokKontrol.Miktar2 < item.Miktar)
                {
                    return(Json(new Result(false, "'" + item.SeriNo + "' serili '" + item.MalKodu + "' ürünü için stok yetersiz"), JsonRequestBehavior.AllowGet));
                }
            }

            // variables
            var uysf  = new UYSF(SqlExper, vUser.SirketKodu);
            var tarih = fn.ToOADate();
            var saat  = fn.ToOATime();
            // get son emir no
            var EmirVeEvrak = db.Database.SqlQuery <frmUysEmirEvrak>(string.Format(@"SELECT
										ISNULL((SELECT TOP (1) EmirNo FROM UYSPLN6{0}.UYSPLN6{0}.EMG WHERE (EmirNo LIKE 'DD%') ORDER BY Row_ID DESC), 'DD000000') as EmirNo,
										ISNULL((SELECT TOP (1) EvrakNo FROM (
													SELECT EvrakNo FROM FINSAT6{0}.FINSAT6{0}.STI WHERE (EvrakNo LIKE 'DD%')
													UNION
													SELECT StiNo as EvrakNo FROM UYSPLN6{0}.UYSPLN6{0}.EMG WHERE (EmirNo LIKE 'DD%')
												)t ORDER BY EvrakNo DESC), 'DD000000') as EvrakNo"                                                , vUser.SirketKodu)).FirstOrDefault();

            if (EmirVeEvrak.EvrakNo == "")
            {
                EmirVeEvrak.EvrakNo = "DD000000";
            }
            EmirVeEvrak.EmirNo  = uysf.EvrakNoArttir(EmirVeEvrak.EmirNo, "DD");
            EmirVeEvrak.EvrakNo = uysf.EvrakNoArttir(EmirVeEvrak.EvrakNo, "DD");
            // create list
            var liste = new List <frmUysWaitingTransfer>();

            for (int i = 0; i < tbl.MalKodu.Length; i++)
            {
                liste.Add(new frmUysWaitingTransfer()
                {
                    EvrakNo   = EmirVeEvrak.EvrakNo,
                    CikisDepo = tbl.CikisDepo,
                    AraDepo   = "TD",
                    GirisDepo = tbl.GirisDepo,
                    Kaydeden  = vUser.UserName,
                    Kaydeden2 = vUser.FullName,
                    MalKodu   = tbl.MalKodu[i],
                    SeriNo    = tbl.SeriNo[i],
                    Birim     = tbl.Birim[i],
                    Miktar    = tbl.Miktar[i],
                    Tarih     = tbl.Tarih
                });
            }

            var emir = new EMG2();

            emir.DefaultValueSet();
            emir.EmirNo     = EmirVeEvrak.EmirNo;
            emir.BasTarih   = tarih;
            emir.BasSaat    = saat;
            emir.Talimat2   = vUser.FullName;
            emir.Kod2       = tbl.CikisDepo;
            emir.Kod3       = tbl.GirisDepo;
            emir.StiNo      = EmirVeEvrak.EvrakNo;
            emir.KayitTarih = tarih;
            emir.KayitSaat  = saat;
            // send to db
            var sonuc = uysf.DepoTransfer(liste, emir, false);

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