public void UpdateAndSaveMailingCost(MailingCostsVM mailingCostsVM, GlobalObject globalObject)
        {
            mailingCostsVM.AddressVerificationHdrId.IsNullOrWhiteSpaceThrowArgumentException("View has lost the AddressVerificationHdrId");

            AddressVerificationHdr addressVerificationHdr = AddressVerificationHdrBiz.Find(mailingCostsVM.AddressVerificationHdrId);

            addressVerificationHdr.IsNullThrowException("AddressVerificationHdr not found.");

            if (mailingCostsVM.Cost == 0)
            {
                throw new Exception("Mailing cost cannot be 0. Please try again.");
            }

            if (mailingCostsVM.TotalLettersMailed == 0)
            {
                throw new Exception("Total letters mailed cannot be 0. Try again.");
            }

            if (mailingCostsVM.TotalLettersMailed < addressVerificationHdr.AddressVerificationTrxs.Count)
            {
                ErrorsGlobal.AddMessage("You have left over letters. Please go to Letter Cancelation screen");
            }

            if (mailingCostsVM.TotalLettersMailed > addressVerificationHdr.AddressVerificationTrxs.Count)
            {
                ErrorsGlobal.AddMessage("You cannot mail more letters than you have! Please try again");
            }


            //update fields
            addressVerificationHdr.TotalQtyLettersMailed = mailingCostsVM.TotalLettersMailed;
            addressVerificationHdr.BudgetedCost          =
                mailingCostsVM.TotalLettersMailed *
                MailerBiz.GetBugetedCost(addressVerificationHdr.MailLocalOrForiegnEnum, addressVerificationHdr.MailServiceEnum);

            addressVerificationHdr.Verification.VerificaionStatusEnum = VerificaionStatusENUM.Mailed;
            addressVerificationHdr.Verification.MailedDate.SetToTodaysDate(UserName, UserId);

            //update all the children to mailed.
            addressVerificationHdr.AddressVerificationTrxs.IsNullOrEmptyThrowException("There are no letters");
            foreach (AddressVerificationTrx letter in addressVerificationHdr.AddressVerificationTrxs)
            {
                letter.Verification.VerificaionStatusEnum = VerificaionStatusENUM.Mailed;
                letter.Verification.MailedDate.SetToTodaysDate(UserName, UserId);
                AddressVerificationTrxBiz.Update(letter);
            }

            ControllerCreateEditParameter param = new ControllerCreateEditParameter();

            param.Entity       = addressVerificationHdr as ICommonWithId;
            param.GlobalObject = globalObject;

            AddressVerificationHdrBiz.UpdateAndSave(param);
        }
Example #2
0
        public MailingCostsVM CreateMailingCostsVm(string addressVerificationHdrId)
        {
            addressVerificationHdrId.IsNullOrWhiteSpaceThrowArgumentException("addressVerificationHdrId");
            AddressVerificationHdr addressVerificationHdr = AddressVerificationHdrBiz.Find(addressVerificationHdrId);

            addressVerificationHdr.IsNullThrowException();

            MailingCostsVM mailingCostsVM = new MailingCostsVM();

            mailingCostsVM.AddressVerificationHdr   = addressVerificationHdr;
            mailingCostsVM.TotalLettersMailed       = addressVerificationHdr.AddressVerificationTrxs.Count;
            mailingCostsVM.AddressVerificationHdrId = addressVerificationHdrId;
            return(mailingCostsVM);
        }