/// <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); }
/// <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); }
/// <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); }