Exemple #1
0
        public double HamKalanMiktarGetir(int hamId)
        {
            if (this.YeniMamulKumas == null)
            {
                return(0);
            }

            double hamMiktar   = PartiHamKumaslari == null ? 0 : PartiHamKumaslari.Where(c => c.Id == hamId).Sum(c => c.Metre);
            double mamulMiktar = MamulKumaslar.Where(c => c.HamId == hamId && c.Durum == "Mamul").Sum(t => t.Metre);

            return(Math.Round(hamMiktar - mamulMiktar));
        }
Exemple #2
0
        public bool MamulSil(vMamulKumaslar silinecek)
        {
            bool snc = db.DeleteGeneric <tblMamulKumaslar>(silinecek.ViewToTable());

            if (snc)
            {
                List <tblMamulHatalari> hatalar = db.GetGeneric <tblMamulHatalari>(c => c.MamulId == silinecek.Id);
                db.DeleteGeneric <tblMamulHatalari>(hatalar);
            }

            if (snc && MamulKumaslar != null)
            {
                MamulKumaslar.RemoveAll(c => c.Id == silinecek.Id);
            }

            return(snc);
        }
Exemple #3
0
        /// <summary>
        /// Partisi, tipi, eni ve kalitesi aynı olan mamül kumaşları tek bir kayıt olarak kaydeder. Birleştirilenleri siler.
        /// </summary>
        /// <param name="kumaslar">Birleştirilecek kumaslar</param>
        /// <returns></returns>
        public bool BarkodBirlestir()
        {
            List <vMamulKumaslar> kumaslar = this.MamulKumaslar.FindAll(c => c.BarkodBirlestirmeSecim == true);

            if (kumaslar == null || kumaslar.Count <= 1)
            {
                throw new Exception("Birden fazla kumaş seçilmelidir..!");
            }

            tblMamulKumaslar yeniKumas = kumaslar[0].ViewToTable();

            if (kumaslar.Exists(c => c.KaliteAdet != yeniKumas.KaliteAdet || c.TipId != kumaslar[0].TipId || c.PartiId != yeniKumas.PartiId))
            {
                throw new Exception("Birleştirileceklerin partisi, tipi ve kalitesi aynı olmalıdır..!");
            }

            yeniKumas.Tarih      = DateTime.Today;
            yeniKumas.Metre      = kumaslar.Sum(s => s.Metre);
            yeniKumas.NetMetre   = kumaslar.Sum(s => s.NetMetre);
            yeniKumas.Kg         = kumaslar.Sum(s => s.Kg);
            yeniKumas.AnaMamulId = 0;

            //Birleştirilen kumaşların hataları yeni kumaşa atanıyor.
            List <tblMamulHatalari> hatalar = new List <tblMamulHatalari>();
            string parcaMetre = "";

            foreach (vMamulKumaslar item in kumaslar)
            {
                parcaMetre += item.Metre.ToString() + " + ";
                List <tblMamulHatalari> itemHatalari = db.GetGeneric <tblMamulHatalari>(c => c.MamulId == item.Id);
                if (itemHatalari != null && itemHatalari.Count > 0)
                {
                    hatalar.AddRange(itemHatalari);
                }
            }
            parcaMetre           = parcaMetre.TrimEnd(new char[] { ' ', '+' });
            yeniKumas.ParcaMetre = parcaMetre;

            if (db.SaveGeneric <tblMamulKumaslar>(ref yeniKumas) == false)
            {
                return(false);
            }
            if (MamulBarkodAl(ref yeniKumas) == false)
            {
                return(false);
            }

            //Birleştirilen kumaşların hataları yeni kumaşın hataları olarak güncelleniyor.
            hatalar.ForEach(f => f.MamulId = yeniKumas.Id);
            if (db.SaveGeneric <tblMamulHatalari>(hatalar) == false)
            {
                db.DeleteGeneric <tblMamulKumaslar>(yeniKumas);
                return(false);
            }
            else
            {
                List <tblMamulKumaslar> tblkumaslar = new List <tblMamulKumaslar>();
                foreach (vMamulKumaslar item in kumaslar)
                {
                    tblMamulKumaslar tbl = db.GetGeneric <tblMamulKumaslar>(c => c.Id == item.Id).FirstOrDefault();
                    tblkumaslar.Add(tbl);
                }
                //db.DeleteGeneric<tblMamulKumaslar>(vMamulKumaslar.ViewToTable(kumaslar));
                db.DeleteGeneric <tblMamulKumaslar>(tblkumaslar);
                MamulKumaslar      = db.GetGeneric <vMamulKumaslar>(c => c.PartiId == yeniKumas.PartiId);
                BirlestirilenKumas = MamulKumaslar.Find(c => c.Id == yeniKumas.Id);
                return(true);
            }
        }
Exemple #4
0
        public bool KumasKes(bool parcaMi)
        {
            if (YeniMamulKumas == null)
            {
                throw new Exception("Barkod girişi olmadan kesme yapılamaz..!");
            }

            if (parcaMi)
            {
                YeniMamulKumas.Parca = "PARÇA";
            }
            else
            {
                YeniMamulKumas.Parca = "TAM";
            }

            //_FasonamiGidecek : barkodOkut fonksiyonunda değeri set edildi.
            if (FasonamiGidecek)
            {
                YeniMamulKumas.Durum = "Fason";
            }
            else
            {
                YeniMamulKumas.Durum = "Mamul";
            }

            if (YeniMamulKumas.SevkId == null)
            {
                YeniMamulKumas.SevkId = 0;
            }

            // ParcaKgHesapla();


            HataPuanlariHesapla();
            KaliteHesapla();
            tblMamulKumaslar tblMamul = YeniMamulKumas.ViewToTable();

            //reprocess kumaşı ise
            if (this.Partisi.RePartiMi)
            {
                try
                {
                    vReProcessBarkodlari reBarkodu = YeniMamulKumas.SecilenBarkod as vReProcessBarkodlari;

                    tblMamulKumaslar ReMamul = db.GetGeneric <tblMamulKumaslar>(c => c.Id == reBarkodu.Id).FirstOrDefault();
                    tblMamul.HamId       = null;
                    tblMamul.PartiId     = ReMamul.RePartiId.Value;
                    tblMamul.AnaMamulId  = ReMamul.AnaMamulId;
                    YeniMamulKumas.Durum = "ReUretim";
                    tblMamul.Durum       = "ReUretim";
                    //ReMamul.Durum = "";
                    //if (db.UpdateGeneric<tblMamulKumaslar>(ReMamul) == false) throw new Exception();
                }
                catch
                {
                    throw new Exception("Hata oluştu.\n\nKumaş kesilemedi.REPROC");
                }
            }
            else
            {
                tblMamul.HamId           = (YeniMamulKumas.SecilenBarkod as vHamKumaslar).Id;
                YeniMamulKumas.HamId     = tblMamul.HamId;
                YeniMamulKumas.HamBarkod = (YeniMamulKumas.SecilenBarkod as vHamKumaslar).Barkod;
            }

            if (db.SaveGeneric <tblMamulKumaslar>(ref tblMamul) == true)
            {
                YeniMamulKumas.Id = tblMamul.Id;

                if (this.Hatalar != null && this.Hatalar.Count > 0)
                {
                    bool hataKaydedildiMi = HatalariKaydet();
                    if (!hataKaydedildiMi)
                    {
                        db.DeleteGeneric <tblMamulKumaslar>(tblMamul);
                        throw new Exception("Hata oluştu.\n\nKumaş kesilemedi..!");
                    }
                }

                double hataMt = 0;
                if (Hatalar != null)
                {
                    hataMt = Math.Round(Hatalar.Sum(c => c.Uzunluk), 2);
                }
                if (tblMamul.KaliteAdet == "I.KALİTE")
                {
                    tblMamul.NetMetre = tblMamul.Metre - hataMt - 0.30;
                }
                else
                {
                    tblMamul.NetMetre = tblMamul.Metre;
                }

                if (MamulBarkodAl(ref tblMamul) == false)
                {
                    return(false);
                }

                YeniMamulKumas.Barkod     = tblMamul.Barkod;
                YeniMamulKumas.NetMetre   = tblMamul.NetMetre;
                YeniMamulKumas.AnaMamulId = tblMamul.AnaMamulId;
            }
            else
            {
                return(false); //mamul kumaş kaydedilemez ise
            }
            MamulKumaslar.Add(YeniMamulKumas);

            vMamulKumaslar tmp = YeniMamulKumas;

            YeniMamulKumas = new vMamulKumaslar()
            {
                Aciklama      = tmp.Aciklama,
                FasonTipi     = tmp.FasonTipi,
                Finish        = tmp.Finish,
                KaliteciAdi   = tmp.KaliteciAdi,
                KaliteciId    = tmp.KaliteciId,
                KaliteciKodu  = tmp.KaliteciKodu,
                MusteriAdi    = tmp.MusteriAdi,
                MusteriId     = tmp.MusteriId,
                MusteriKodu   = tmp.MusteriKodu,
                PartiId       = tmp.PartiId,
                PartiNo       = tmp.PartiNo,
                RenkNo        = tmp.RenkNo,
                RenkVaryant   = tmp.RenkVaryant,
                SevkId        = tmp.SevkId,
                SevkiyatNotu  = tmp.SevkiyatNotu,
                SiparisId     = tmp.SiparisId,
                SozlesmeNo    = tmp.SozlesmeNo,
                Tarih         = DateTime.Today,
                TipAdi        = tmp.TipAdi,
                TipId         = tmp.TipId,
                TipNo         = tmp.TipNo,
                TipVaryant    = tmp.TipVaryant,
                ToplamKalan   = tmp.ToplamKalan - tmp.Metre,
                TopMetre      = tmp.TopMetre,
                En            = tmp.En,
                SecilenBarkod = tmp.SecilenBarkod,
                DyeBatchNo    = tmp.DyeBatchNo,
                RefRenkAdi    = tmp.RefRenkAdi,
                RefRenkNo     = tmp.RefRenkNo,
                RefTipNo      = tmp.RefTipNo
            };

            Hatalar.Clear();
            return(true);
        }
Exemple #5
0
        public bool BarkodOkut(string barkod)
        {
            vMamuleHazirPartiler okutulan = db.GetGeneric <vMamuleHazirPartiler>(c => c.PartiNo == barkod).FirstOrDefault();

            Partisi = okutulan;

            if (okutulan == null || okutulan.ProcessId != 60)
            {
                // paketleme prosesi okutulmuşsa normal mamul barkod alınır durum sütunundaki ayracı 'Mamul'dür.
                // Paketleme prosesi okutulmamış ve fason proses okutulmuş ise _FasonamiGidecek değişkeni true olur
                // ve kumaş kesme esnasında bu değişken kontrol edilerek mamul barkodun Durum sütunundaki ayracı 'Fason' olarak işaretlenir.
                vBoyahaneProcess paketleme = db.GetGeneric <vBoyahaneProcess>(c => c.PartiNo == barkod && c.ProcessId == 60).FirstOrDefault();
                if (paketleme == null)
                {
                    vBoyahaneProcess fasonProcess = db.GetGeneric <vBoyahaneProcess>(c => c.PartiNo == barkod).OrderByDescending(c => c.Sira).FirstOrDefault();

                    if (fasonProcess.FasonMu == false)
                    {
                        FasonamiGidecek = false;
                        throw new Exception("Paketleme prosesi okutulmamış..!");
                    }
                    else if (fasonProcess.FasonMu == true)
                    {
                        vMamulKumaslar kumaslar = db.GetGeneric <vMamulKumaslar>(c => c.PartiNo == barkod && c.Durum == "Fason").FirstOrDefault();
                        if (kumaslar == null)
                        {
                            FasonamiGidecek = true;
                        }
                        else
                        {
                            FasonamiGidecek = false;
                            throw new Exception("Fasondan kumaş gelmiş. Şimdi paketleme processini okutun!");
                        }
                    }
                }
            }

            if (okutulan == null)
            {
                YeniMamulKumas = null;
                throw new Exception("Partilenmiş barkod bulunamadı..!");
            }

            YeniMamulKumas.TipId        = okutulan.TipId;
            YeniMamulKumas.TipNo        = okutulan.TipNo;
            YeniMamulKumas.RenkNo       = okutulan.RenkNo;
            YeniMamulKumas.TopMetre     = okutulan.TopMetre;
            YeniMamulKumas.DyeBatchNo   = barkod;
            YeniMamulKumas.RefRenkAdi   = okutulan.RefRenkAdi;
            YeniMamulKumas.RefRenkNo    = okutulan.RefRenkNo;
            YeniMamulKumas.RefTipNo     = okutulan.RefTipNo;
            YeniMamulKumas.SozlesmeNo   = okutulan.SozlesmeNo;
            YeniMamulKumas.SevkiyatNotu = (db.GetGeneric <vPartiler>(f => f.PartiNo == okutulan.PartiNo).FirstOrDefault()).BoyaNotu;


            if (okutulan.RePartiMi)
            {
                RePartiKumaslari = db.GetGenericWithSQLQuery <vReProcessBarkodlari>("execute dbo.spRePartiBarkodlariGetir " + okutulan.PartiId.ToString(), new string[0]);
            }
            else
            {
                PartiHamKumaslari = db.GetGeneric <vHamKumaslar>(c => c.PartiId == okutulan.PartiId);
            }

            MamulKumaslar = db.GetGeneric <vMamulKumaslar>(c => c.PartiId == okutulan.PartiId);

            if ((okutulan.RePartiMi == false) && (PartiHamKumaslari == null || PartiHamKumaslari.Count == 0))
            {
                throw new Exception("Partide ham kumaş yok.\n\nBarkod okutulamaz..!");
            }
            if (MamulKumaslar == null)
            {
                MamulKumaslar = new List <vMamulKumaslar>();
            }

            YeniMamulKumas = new vMamulKumaslar()
            {
                MusteriId    = okutulan.MusteriId,
                MusteriKodu  = okutulan.MusteriKodu,
                MusteriAdi   = okutulan.MusteriAdi,
                PartiId      = okutulan.PartiId,
                PartiNo      = okutulan.PartiNo.ToString(),
                SozlesmeNo   = okutulan.SozlesmeNo,
                ToplamKalan  = Math.Round((PartiHamKumaslari == null ? 0 : PartiHamKumaslari.Sum(c => c.Metre)) - MamulKumaslar.Sum(c => c.Metre), 2),
                Tarih        = DateTime.Today,
                TopMetre     = okutulan.TopMetre,
                Finish       = okutulan.FinishNo,
                TipId        = okutulan.TipId,
                TipNo        = okutulan.TipNo,
                RenkNo       = okutulan.RenkNo,
                RenkVaryant  = okutulan.RenkVaryant,
                TipVaryant   = okutulan.TipVaryant,
                DyeBatchNo   = barkod,
                RefRenkAdi   = okutulan.RefRenkAdi,
                RefRenkNo    = okutulan.RefRenkNo,
                RefTipNo     = okutulan.RefTipNo,
                SevkiyatNotu = (db.GetGeneric <vPartiler>(f => f.PartiNo == okutulan.PartiNo).FirstOrDefault()).BoyaNotu
            };

            return(true);
        }