/// <summary> /// this method calculates a Parcel value from contract /// </summary> /// <param name="companyId"></param> /// <param name="paymentMethodId"></param> /// <param name="qtdParcel"></param> /// <param name="contractValue"></param> /// <returns></returns> public Decimal CalculateParcelsValue(Int32 companyId, Int32 financierOperationId, Int32 qtdParcels, Decimal contractValue) { var accountManager = new AccountManager(this); FinancierCondition financierCondition = accountManager.GetFinancierConditionByParcelCount(companyId, financierOperationId, qtdParcels) ?? new FinancierCondition(); return(Convert.ToDecimal(contractValue * financierCondition.MonthlyTax)); }
/// <summary> /// This method insert a new parcel /// </summary> /// <param name="entity"></param> /// <returns></returns> public int Insert(Parcel entity, FinancierCondition financierCondition) { if (financierCondition == null) { financierCondition = new FinancierCondition(); } //Set the Closed/Open Parcel if (entity.AccountId.HasValue) { entity.EffectedAmount = entity.Amount; entity.EffectedDate = DateTime.Now; } if (Convert.ToBoolean(entity.IsRecurrent)) { entity.EffectedAmount = null; entity.EffectedDate = null; if (entity.RecurrentPeriod == 7) { entity.DueDate = Convert.ToDateTime(entity.DueDate).AddDays(7); } else if (entity.RecurrentPeriod == 15) { entity.DueDate = Convert.ToDateTime(entity.DueDate).AddDays(15); } else if (entity.RecurrentPeriod == 30) { entity.DueDate = Convert.ToDateTime(entity.DueDate).AddMonths(1); } else { entity.DueDate = Convert.ToDateTime(entity.DueDate).AddYears(1); } } // // After that, the code remains the same. // DbContext.Parcels.InsertOnSubmit(entity); DbContext.SubmitChanges(); if (entity.BillId.HasValue) { return((int)entity.BillId); } else { return((int)entity.InvoiceId); } }
protected void btnAdd_Click(object sender, ImageClickEventArgs e) { if (ucCurrFieldParcelCount.IntValue == 0) { ShowError("Quantidade de parcelas não pode ser zero!"); return; } var financierCondition = new FinancierCondition { CompanyId = Company.CompanyId, FinancierOperationId = OriginalFinancierOperation.FinancierOperationId, MonthlyTax = ucCurrFieldMonthlyTax.CurrencyValue.Value, ParcelCount = ucCurrFieldParcelCount.IntValue }; AccountManager.InsertFinancierCondition(financierCondition); grdFinancierCondition.DataBind(); ucCurrFieldMonthlyTax.Text = ucCurrFieldParcelCount.Text = String.Empty; }
/// <summary> /// this method deletes a FinancierCondition /// </summary> /// <param name="entity"></param> public void DeleteFinancierCondition(FinancierCondition entity) { DbContext.FinancierConditions.DeleteOnSubmit(entity); DbContext.SubmitChanges(); }
/// <summary> /// this method updates a FinancierCondition /// </summary> /// <param name="original_entity"></param> /// <param name="entity"></param> public void UpdateFinancierCondition(FinancierCondition original_entity, FinancierCondition entity) { original_entity.CopyPropertiesFrom(entity); DbContext.SubmitChanges(); }
/// <summary> /// this method inserts a FinancierCondition /// </summary> /// <param name="entity"></param> public void InsertFinancierCondition(FinancierCondition entity) { DbContext.FinancierConditions.InsertOnSubmit(entity); DbContext.SubmitChanges(); }
private List<Parcel> CreateParcelList(decimal total, DateTime firstDatePayment, FinancierCondition condition) { List<Parcel> parcelList = new List<Parcel>(); for (int i = 1; i <= condition.ParcelCount; i++) { decimal amount = Math.Round(total / condition.ParcelCount, 2); if (i == 1) amount += (total - (amount * condition.ParcelCount)); Parcel parcel = new Parcel(); parcel.FinancierOperationId = condition.FinancierOperationId; parcel.Amount = amount; parcel.Description = i + "/" + condition.ParcelCount; parcel.DueDate = firstDatePayment.AddMonths(i - 1); parcel.CompanyId = condition.CompanyId; //if (condition.FinancierOperation.PaymentMethod.PaymentMethodTypeId == PaymentMethodType.CashOrOnLineTransfer) //{ // parcel.EffectedDate = DateTime.Now; // parcel.EffectedAmount = parcel.Amount; //} parcelList.Add(parcel); } return parcelList; }
public Sale SaveSale(Sale sale, Budget budget, Int32 userId, DateTime firstDatePayment, FinancierCondition condition) { var saleItemlist = (sale.SaleItems != null) ? sale.SaleItems.ToList() : new List<SaleItem>(); // // Save Budget // if (budget != null) { Budget originalBudget = GetBudget(budget.BudgetId, budget.CompanyId); if (originalBudget != null) { originalBudget.CopyPropertiesFrom(budget); DbContext.SubmitChanges(); } else InsertBudget(budget, null); sale.BudgetId = budget.BudgetId; saleItemlist = CreateSaleItemList(budget.BudgetItems.ToList()); } // // Save Sale // var parcelList = CreateParcelList(saleItemlist.Sum(i => i.Quantity * i.UnitPrice), firstDatePayment, condition); return SaveSale(sale, saleItemlist, userId, parcelList); }