public ActionResult MatterDetails(Guid id) { Common.Models.Billing.Invoice invoice = null; ViewModels.Billing.InvoiceViewModel viewModel = new ViewModels.Billing.InvoiceViewModel(); invoice = Data.Billing.Invoice.Get(id); viewModel = Mapper.Map <ViewModels.Billing.InvoiceViewModel>(invoice); if (invoice.Matter != null) { viewModel.Matter = Mapper.Map <ViewModels.Matters.MatterViewModel>(Data.Matters.Matter.Get(invoice.Matter.Id.Value)); } Data.Billing.Invoice.ListInvoiceExpensesForInvoice(invoice.Id.Value).ForEach(x => { ViewModels.Billing.InvoiceExpenseViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceExpenseViewModel>(x); vm.Expense = Mapper.Map <ViewModels.Billing.ExpenseViewModel>(Data.Billing.Expense.Get(vm.Expense.Id.Value)); viewModel.Expenses.Add(vm); }); Data.Billing.Invoice.ListInvoiceFeesForInvoice(invoice.Id.Value).ForEach(x => { ViewModels.Billing.InvoiceFeeViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceFeeViewModel>(x); vm.Fee = Mapper.Map <ViewModels.Billing.FeeViewModel>(Data.Billing.Fee.Get(vm.Fee.Id.Value)); viewModel.Fees.Add(vm); }); Data.Billing.Invoice.ListInvoiceTimesForInvoice(invoice.Id.Value).ForEach(x => { ViewModels.Billing.InvoiceTimeViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceTimeViewModel>(x); vm.Time = Mapper.Map <ViewModels.Timing.TimeViewModel>(Data.Timing.Time.Get(vm.Time.Id.Value)); viewModel.Times.Add(vm); }); ViewData["FirmName"] = Common.Settings.Manager.Instance.System.BillingFirmName; ViewData["FirmAddress"] = Common.Settings.Manager.Instance.System.BillingFirmAddress; ViewData["FirmCity"] = Common.Settings.Manager.Instance.System.BillingFirmCity; ViewData["FirmState"] = Common.Settings.Manager.Instance.System.BillingFirmState; ViewData["FirmZip"] = Common.Settings.Manager.Instance.System.BillingFirmZip; ViewData["FirmPhone"] = Common.Settings.Manager.Instance.System.BillingFirmPhone; ViewData["FirmWeb"] = Common.Settings.Manager.Instance.System.BillingFirmWeb; return(View(viewModel)); }
public ActionResult GroupDetails(Guid id) { Common.Models.Billing.BillingGroup billingGroup; ViewModels.Billing.GroupInvoiceViewModel viewModel = new ViewModels.Billing.GroupInvoiceViewModel(); List <Common.Models.Matters.Matter> mattersList; Common.Models.Billing.Invoice invoice = null; using (IDbConnection conn = Data.Database.Instance.GetConnection()) { invoice = Data.Billing.Invoice.Get(id, conn, false); billingGroup = Data.Billing.BillingGroup.Get(invoice.BillingGroup.Id.Value, conn, false); viewModel = new ViewModels.Billing.GroupInvoiceViewModel() { Id = invoice.Id, BillTo = new ViewModels.Contacts.ContactViewModel() { Id = invoice.BillTo.Id }, Date = invoice.Date, Due = invoice.Due, Subtotal = invoice.Subtotal, TaxAmount = invoice.TaxAmount, Total = invoice.Total, ExternalInvoiceId = invoice.ExternalInvoiceId, BillTo_NameLine1 = invoice.BillTo_NameLine1, BillTo_NameLine2 = invoice.BillTo_NameLine2, BillTo_AddressLine1 = invoice.BillTo_AddressLine1, BillTo_AddressLine2 = invoice.BillTo_AddressLine2, BillTo_City = invoice.BillTo_City, BillTo_State = invoice.BillTo_State, BillTo_Zip = invoice.BillTo_Zip, BillingGroup = Mapper.Map <ViewModels.Billing.BillingGroupViewModel>(billingGroup) }; mattersList = Data.Billing.BillingGroup.ListMattersForGroup(billingGroup.Id.Value, conn, false); for (int i = 0; i < mattersList.Count; i++) { ViewModels.Billing.GroupInvoiceItemViewModel giivm = new ViewModels.Billing.GroupInvoiceItemViewModel(); giivm.Matter = Mapper.Map <ViewModels.Matters.MatterViewModel>(mattersList[i]); Data.Billing.InvoiceExpense.ListForMatterAndInvoice(id, mattersList[i].Id.Value, conn, false).ForEach(x => { ViewModels.Billing.InvoiceExpenseViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceExpenseViewModel>(x); vm.Expense = Mapper.Map <ViewModels.Billing.ExpenseViewModel>( Data.Billing.Expense.Get(vm.Expense.Id.Value, conn, false)); giivm.ExpensesSum += vm.Amount; giivm.Expenses.Add(vm); }); Data.Billing.InvoiceFee.ListForMatterAndInvoice(id, mattersList[i].Id.Value, conn, false).ForEach(x => { ViewModels.Billing.InvoiceFeeViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceFeeViewModel>(x); vm.Fee = Mapper.Map <ViewModels.Billing.FeeViewModel>( Data.Billing.Fee.Get(vm.Fee.Id.Value, conn, false)); giivm.FeesSum += vm.Amount; giivm.Fees.Add(vm); }); Data.Billing.InvoiceTime.ListForMatterAndInvoice(id, mattersList[i].Id.Value, conn, false).ForEach(x => { ViewModels.Billing.InvoiceTimeViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceTimeViewModel>(x); vm.Time = Mapper.Map <ViewModels.Timing.TimeViewModel>( Data.Timing.Time.Get(vm.Time.Id.Value, conn, false)); ViewModels.Billing.InvoiceTimeGroupViewModel timeGroup; if (vm.Time.TimeCategory == null || !vm.Time.TimeCategory.Id.HasValue) { timeGroup = giivm.TimeGroups.SingleOrDefault(y => y.Id == 0); } else { timeGroup = giivm.TimeGroups.SingleOrDefault(y => y.Id == vm.Time.TimeCategory.Id); } if (timeGroup == null || timeGroup.Id == -1) { Common.Models.Timing.TimeCategory tc = Data.Timing.TimeCategory.Get(vm.Time.TimeCategory.Id.Value, conn, false); timeGroup = new ViewModels.Billing.InvoiceTimeGroupViewModel() { Id = tc.Id.Value, GroupName = tc.Title, Times = new List <ViewModels.Billing.InvoiceTimeViewModel>() }; timeGroup.Times.Add(vm); giivm.TimeGroups.Add(timeGroup); } else { timeGroup.Times.Add(vm); } giivm.TimeSum = giivm.TimeSum.Add(vm.Duration); giivm.TimeSumMoney += vm.PricePerHour * (decimal)vm.Duration.TotalHours; }); if (((giivm.TimeGroups.Count > 0) && (giivm.TimeGroups.Count(x => x.Times.Count > 0) > 0)) || (giivm.Expenses.Count > 0) || (giivm.Fees.Count > 0)) { viewModel.Matters.Add(giivm); } } } ViewBag.Invoice = Mapper.Map <ViewModels.Billing.InvoiceViewModel>(invoice); ViewBag.BillingGroup = Mapper.Map <ViewModels.Billing.BillingGroupViewModel>(billingGroup); ViewData["FirmName"] = Common.Settings.Manager.Instance.System.BillingFirmName; ViewData["FirmAddress"] = Common.Settings.Manager.Instance.System.BillingFirmAddress; ViewData["FirmCity"] = Common.Settings.Manager.Instance.System.BillingFirmCity; ViewData["FirmState"] = Common.Settings.Manager.Instance.System.BillingFirmState; ViewData["FirmZip"] = Common.Settings.Manager.Instance.System.BillingFirmZip; ViewData["FirmPhone"] = Common.Settings.Manager.Instance.System.BillingFirmPhone; ViewData["FirmWeb"] = Common.Settings.Manager.Instance.System.BillingFirmWeb; return(View(viewModel)); }
public ActionResult MatterEdit(Guid id) { Common.Models.Billing.BillingRate billingRate = null; Common.Models.Matters.Matter matter = null; Common.Models.Billing.Invoice invoice = null; ViewModels.Billing.InvoiceViewModel viewModel = new ViewModels.Billing.InvoiceViewModel(); using (IDbConnection conn = Data.Database.Instance.GetConnection()) { invoice = Data.Billing.Invoice.Get(id, conn, false); viewModel = Mapper.Map <ViewModels.Billing.InvoiceViewModel>(invoice); if (invoice.Matter != null) { matter = Data.Matters.Matter.Get(invoice.Matter.Id.Value, conn, false); viewModel.Matter = Mapper.Map <ViewModels.Matters.MatterViewModel>(matter); if (matter.DefaultBillingRate != null && matter.DefaultBillingRate.Id.HasValue) { billingRate = Data.Billing.BillingRate.Get(matter.DefaultBillingRate.Id.Value, conn, false); } } invoice.BillTo = Data.Contacts.Contact.Get(invoice.BillTo.Id.Value, conn, false); Data.Billing.Invoice.ListInvoiceExpensesForInvoice(invoice.Id.Value, conn, false).ForEach(x => { ViewModels.Billing.InvoiceExpenseViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceExpenseViewModel>(x); vm.Expense = Mapper.Map <ViewModels.Billing.ExpenseViewModel>( Data.Billing.Expense.Get(vm.Expense.Id.Value, conn, false)); viewModel.Expenses.Add(vm); }); Data.Billing.Invoice.ListInvoiceFeesForInvoice(invoice.Id.Value, conn, false).ForEach(x => { ViewModels.Billing.InvoiceFeeViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceFeeViewModel>(x); vm.Fee = Mapper.Map <ViewModels.Billing.FeeViewModel>( Data.Billing.Fee.Get(vm.Fee.Id.Value, conn, false)); viewModel.Fees.Add(vm); }); Data.Billing.Invoice.ListInvoiceTimesForInvoice(invoice.Id.Value, conn, false).ForEach(x => { ViewModels.Billing.InvoiceTimeViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceTimeViewModel>(x); vm.Time = Mapper.Map <ViewModels.Timing.TimeViewModel>( Data.Timing.Time.Get(vm.Time.Id.Value, conn, false)); ViewModels.Billing.InvoiceTimeGroupViewModel timeGroup; if (vm.Time.TimeCategory == null || !vm.Time.TimeCategory.Id.HasValue) { timeGroup = viewModel.TimeGroups.SingleOrDefault(y => y.Id == 0); } else { timeGroup = viewModel.TimeGroups.SingleOrDefault(y => y.Id == vm.Time.TimeCategory.Id); } if (timeGroup == null || timeGroup.Id == -1) { Common.Models.Timing.TimeCategory tc = Data.Timing.TimeCategory.Get(vm.Time.TimeCategory.Id.Value, conn, false); timeGroup = new ViewModels.Billing.InvoiceTimeGroupViewModel() { Id = tc.Id.Value, GroupName = tc.Title, Times = new List <ViewModels.Billing.InvoiceTimeViewModel>() }; timeGroup.Times.Add(vm); viewModel.TimeGroups.Add(timeGroup); } else { timeGroup.Times.Add(vm); } }); } ViewData["MatterTitle"] = matter.Title; ViewData["CaseNumber"] = matter.CaseNumber; ViewData["FirmName"] = Common.Settings.Manager.Instance.System.BillingFirmName; ViewData["FirmAddress"] = Common.Settings.Manager.Instance.System.BillingFirmAddress; ViewData["FirmCity"] = Common.Settings.Manager.Instance.System.BillingFirmCity; ViewData["FirmState"] = Common.Settings.Manager.Instance.System.BillingFirmState; ViewData["FirmZip"] = Common.Settings.Manager.Instance.System.BillingFirmZip; ViewData["FirmPhone"] = Common.Settings.Manager.Instance.System.BillingFirmPhone; ViewData["FirmWeb"] = Common.Settings.Manager.Instance.System.BillingFirmWeb; return(View(viewModel)); }
public ActionResult GroupDetails(Guid id) { Common.Models.Billing.BillingGroup billingGroup; ViewModels.Billing.GroupInvoiceViewModel viewModel = new ViewModels.Billing.GroupInvoiceViewModel(); List <Common.Models.Matters.Matter> mattersList; Common.Models.Billing.Invoice invoice = null; invoice = Data.Billing.Invoice.Get(id); billingGroup = Data.Billing.BillingGroup.Get(invoice.BillingGroup.Id.Value); viewModel = new ViewModels.Billing.GroupInvoiceViewModel() { Id = invoice.Id, BillTo = new ViewModels.Contacts.ContactViewModel() { Id = invoice.BillTo.Id }, Date = invoice.Date, Due = invoice.Due, Subtotal = invoice.Subtotal, TaxAmount = invoice.TaxAmount, Total = invoice.Total, ExternalInvoiceId = invoice.ExternalInvoiceId, BillTo_NameLine1 = invoice.BillTo_NameLine1, BillTo_NameLine2 = invoice.BillTo_NameLine2, BillTo_AddressLine1 = invoice.BillTo_AddressLine1, BillTo_AddressLine2 = invoice.BillTo_AddressLine2, BillTo_City = invoice.BillTo_City, BillTo_State = invoice.BillTo_State, BillTo_Zip = invoice.BillTo_Zip, BillingGroup = Mapper.Map <ViewModels.Billing.BillingGroupViewModel>(billingGroup) }; mattersList = Data.Billing.BillingGroup.ListMattersForGroup(billingGroup.Id.Value); for (int i = 0; i < mattersList.Count; i++) { ViewModels.Billing.GroupInvoiceItemViewModel giivm = new ViewModels.Billing.GroupInvoiceItemViewModel(); giivm.Matter = Mapper.Map <ViewModels.Matters.MatterViewModel>(mattersList[i]); Data.Billing.InvoiceExpense.ListForMatterAndInvoice(id, mattersList[i].Id.Value).ForEach(x => { ViewModels.Billing.InvoiceExpenseViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceExpenseViewModel>(x); vm.Expense = Mapper.Map <ViewModels.Billing.ExpenseViewModel>(Data.Billing.Expense.Get(vm.Expense.Id.Value)); giivm.ExpensesSum += vm.Amount; giivm.Expenses.Add(vm); }); Data.Billing.InvoiceFee.ListForMatterAndInvoice(id, mattersList[i].Id.Value).ForEach(x => { ViewModels.Billing.InvoiceFeeViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceFeeViewModel>(x); vm.Fee = Mapper.Map <ViewModels.Billing.FeeViewModel>(Data.Billing.Fee.Get(vm.Fee.Id.Value)); giivm.FeesSum += vm.Amount; giivm.Fees.Add(vm); }); Data.Billing.InvoiceTime.ListForMatterAndInvoice(id, mattersList[i].Id.Value).ForEach(x => { ViewModels.Billing.InvoiceTimeViewModel vm = Mapper.Map <ViewModels.Billing.InvoiceTimeViewModel>(x); vm.Time = Mapper.Map <ViewModels.Timing.TimeViewModel>(Data.Timing.Time.Get(vm.Time.Id.Value)); giivm.TimeSum = giivm.TimeSum.Add(vm.Duration); giivm.TimeSumMoney += vm.PricePerHour * (decimal)vm.Duration.TotalHours; giivm.Times.Add(vm); }); if ((giivm.Times.Count > 0) || (giivm.Expenses.Count > 0) || (giivm.Fees.Count > 0)) { viewModel.Matters.Add(giivm); } } ViewData["FirmName"] = Common.Settings.Manager.Instance.System.BillingFirmName; ViewData["FirmAddress"] = Common.Settings.Manager.Instance.System.BillingFirmAddress; ViewData["FirmCity"] = Common.Settings.Manager.Instance.System.BillingFirmCity; ViewData["FirmState"] = Common.Settings.Manager.Instance.System.BillingFirmState; ViewData["FirmZip"] = Common.Settings.Manager.Instance.System.BillingFirmZip; ViewData["FirmPhone"] = Common.Settings.Manager.Instance.System.BillingFirmPhone; ViewData["FirmWeb"] = Common.Settings.Manager.Instance.System.BillingFirmWeb; return(View(viewModel)); }