Exemplo n.º 1
0
        private bool ValidateBeforeSave(BO.p11ClientProduct rec)
        {
            if (rec.p21ID == 0)
            {
                _db.CurrentUser.AddMessage("Chybí vyplnit [Licence]."); return(false);
            }
            if (rec.p20ID == 0)
            {
                _db.CurrentUser.AddMessage("Chybí vyplnit [Měrná jednotka]."); return(false);
            }
            if (rec.p20ID_Pro == 0)
            {
                _db.CurrentUser.AddMessage("Chybí vyplnit [Výrobní jednotka]."); return(false);
            }
            if (rec.p12ID == 0)
            {
                _db.CurrentUser.AddMessage("Chybí vyplnit [Receptura]."); return(false);
            }
            if (rec.p11RecalcUnit2Kg == 0)
            {
                _db.CurrentUser.AddMessage("Přepočet MJ na KG nemůže být NULA."); return(false);
            }

            //if (LoadByCode(rec.p11Code, rec.pid) != null)
            //{
            //    _db.CurrentUser.AddMessage(string.Format("Zadaný kód nemůže být duplicitní s jiným produktem [{0}].", LoadByCode(rec.p11Code, rec.pid).p11Name));
            //    return false;
            //}

            BO.p12ClientTpv cP12 = _mother.p12ClientTpvBL.Load(rec.p12ID);
            if (cP12.p21ID != rec.p21ID)
            {
                _db.CurrentUser.AddMessage("Licence produktu se liší od licence receptury."); return(false);
            }

            if (rec.p10ID_Master > 0)
            {
                BO.p10MasterProduct cP10 = _mother.p10MasterProductBL.Load(rec.p10ID_Master);
                if (cP10.p13ID != cP12.p13ID_Master)
                {
                    _db.CurrentUser.AddMessage("Receptura vzorového Master produktu se liší od vzoru klientské receptury."); return(false);
                }
            }
            else
            {
                BO.p21License cP21 = _mother.p21LicenseBL.Load(rec.p21ID);
                if (cP21.p21PermissionFlag == BO.p21PermENUM.Standard)
                {
                    _db.CurrentUser.AddMessage(string.Format("Licence [{1} - {0}] je typu [Standard], kde nelze zakládat produkty s vlastní recepturou.", cP21.p21Name, cP21.p21Code)); return(false);
                }
            }


            return(true);
        }
Exemplo n.º 2
0
        private bool ValidateBeforeSave(BO.p10MasterProduct rec)
        {
            if (rec.p20ID == 0)
            {
                _db.CurrentUser.AddMessage("Chybí vyplnit měrná jednotka."); return(false);
            }
            if (rec.p20ID_Pro == 0)
            {
                _db.CurrentUser.AddMessage("Chybí vyplnit výrobní měrná jednotka."); return(false);
            }
            if (rec.p10RecalcUnit2Kg == 0)
            {
                _db.CurrentUser.AddMessage("Přepočet MJ na KG nemůže být NULA."); return(false);
            }

            if (LoadByCode(rec.p10Code, rec.pid) != null)
            {
                _db.CurrentUser.AddMessage(string.Format("Zadaný kód nemůže být duplicitní s jiným záznamem [{0}].", LoadByCode(rec.p10Code, rec.pid).p10Name));
                return(false);
            }

            return(true);
        }
Exemplo n.º 3
0
        public int Save(BO.p10MasterProduct rec)
        {
            if (ValidateBeforeSave(rec) == false)
            {
                return(0);
            }
            var p = new DL.Params4Dapper();

            p.AddInt("pid", rec.p10ID);
            p.AddInt("p13ID", rec.p13ID, true);
            if (rec.pid == 0)
            {
                rec.b02ID = _mother.b02StatusBL.LoadStartStatusPID("p10", rec.b02ID);  //startovací workflow stav
            }
            p.AddInt("b02ID", rec.b02ID, true);

            p.AddInt("p20ID", rec.p20ID, true);
            p.AddInt("p20ID_Pro", rec.p20ID_Pro, true);
            p.AddString("p10Name", rec.p10Name);
            p.AddString("p10Code", rec.p10Code);
            p.AddString("p10Memo", rec.p10Memo);

            p.AddDouble("p10RecalcUnit2Kg", rec.p10RecalcUnit2Kg);
            p.AddEnumInt("p10TypeFlag", rec.p10TypeFlag);
            p.AddString("p10PackagingCode", rec.p10PackagingCode);
            p.AddDouble("p10Davka", rec.p10Davka);
            p.AddDouble("p10DavkaMin", rec.p10DavkaMin);
            p.AddDouble("p10DavkaMax", rec.p10DavkaMax);
            p.AddDouble("p10SalesPerMonth", rec.p10SalesPerMonth);
            p.AddDouble("p10UnitsPerPalette", rec.p10UnitsPerPalette);

            int intPID = _db.SaveRecord("p10MasterProduct", p.getDynamicDapperPars(), rec);
            var recP19 = _mother.p19MaterialBL.LoadByMasterP10ID(intPID);

            if (rec.p10TypeFlag == BO.ProductTypeEnum.Polotovar || rec.p10TypeFlag == BO.ProductTypeEnum.Vyrobek)    //zkopírovat polotovar nebo výrobek do surovin p19
            {
                if (recP19 == null)
                {
                    recP19 = new BO.p19Material();
                }
                recP19.p10ID_Master = intPID;
                recP19.p19Name      = rec.p10Name;
                recP19.p19Code      = rec.p10Code;
                recP19.p20ID        = rec.p20ID;
                recP19.p19Memo      = rec.p10Memo;
                if (rec.p10TypeFlag == BO.ProductTypeEnum.Polotovar)
                {
                    recP19.p19TypeFlag = BO.p19TypeFlagEnum.Polotovar;
                }
                if (rec.p10TypeFlag == BO.ProductTypeEnum.Vyrobek)
                {
                    recP19.p19TypeFlag = BO.p19TypeFlagEnum.Vyrobek;
                }
                _mother.p19MaterialBL.Save(recP19);
            }
            else
            {
                if (recP19 != null)
                {
                    _mother.CBL.DeleteRecord("p19", recP19.pid);
                }
            }
            return(intPID);
        }