コード例 #1
0
        /// <summary>
        /// This method updates a contract on the database
        /// </summary>
        /// <param name="original_entity"></param>
        /// <param name="entity"></param>
        public ContractValidationStatus UpdateContract(Contract original_entity, Contract entity, int qtdParcels,
                                                       List <ContractAssociated> contractAssociated)
        {
            ContractValidationStatus statusValidationContract = ValidateContract(entity);

            if (statusValidationContract == ContractValidationStatus.Invalid)
            {
                return(statusValidationContract);
            }

            original_entity = GetContract(original_entity.CompanyId, original_entity.ContractId);
            original_entity.CopyPropertiesFrom(entity);

            DbContext.SubmitChanges();

            ProcessContract(original_entity, qtdParcels);


            DbContext.ContractAssociateds.DeleteAllOnSubmit(original_entity.ContractAssociateds);
            DbContext.SubmitChanges();

            SaveContractAssociateds(contractAssociated, original_entity.ContractId);


            return(statusValidationContract);
        }
コード例 #2
0
        /// <summary>
        /// This method insert a new contract on the database
        /// </summary>
        /// <param name="entity"></param>
        public ContractValidationStatus InsertContract(Contract entity, Int32 qtdParcels,
                                                       List <ContractAssociated> contractAssociated)
        {
            ContractValidationStatus statusValidationContract = ValidateContract(entity);

            if (statusValidationContract == ContractValidationStatus.Invalid)
            {
                return(statusValidationContract);
            }

            DbContext.Contracts.InsertOnSubmit(entity);
            DbContext.SubmitChanges();

            ProcessContract(entity, qtdParcels);

            SaveContractAssociateds(contractAssociated, entity.ContractId);

            return(statusValidationContract);
        }
コード例 #3
0
        /// <summary>
        /// this method returns a validation status of contract
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        private ContractValidationStatus ValidateContract(Contract entity)
        {
            ContractValidationStatus status = ContractValidationStatus.Valid;
            Customer customer = new CustomerManager(this).GetCustomer(entity.CustomerId, entity.CompanyId);

            if (Convert.ToDecimal(entity.ContractValue) > Convert.ToDecimal(customer.CreditLimit) &&
                entity.ContractStatusId == (Int32)ContractStatus.Accepted) /// if is other state do the Operation
            {
                entity.ContractStatusId = (Int32)ContractStatus.Pendent;

                if (entity.ContractId == 0) // if is a new Contract, create it how Pendent
                {
                    status = ContractValidationStatus.GeneratedAsPendent;
                }
                else
                {
                    status = ContractValidationStatus.Invalid;
                }
            }
            return(status);
        }