public string Create( DateTime date, string invoiceNo, IEnumerable <PaymentDetailViewModel> detail) { string paymentNo = String.Empty; var invoice = ctx.InvoiceHeaders.SingleOrDefault(inv => inv.InvoiceNo == invoiceNo); if (invoice != null) { paymentNo = autoNumberProvider.Generate(invoice.BranchID, "PM", date.Month, date.Year); PaymentHeader h = new PaymentHeader(); h.Date = date; h.InvoiceID = invoice.ID; h.PaymentNo = paymentNo; h.VoidDate = (DateTime?)null; EntityHelper.SetAuditFieldForInsert(h, HttpContext.Current.User.Identity.Name); foreach (var model in detail) { PaymentDetail d = new PaymentDetail(); d.CreditCardTypeID = model.CreditCardTypeID; d.PaymentTypeID = model.PaymentTypeID; d.Amount = model.Amount; d.ApprovalCode = model.ApprovalCode; h.PaymentDetails.Add(d); ctx.PaymentHeaders.InsertOnSubmit(h); } autoNumberProvider.Increment("PM", invoice.BranchID, date.Year); ctx.SubmitChanges(); } return(paymentNo); }
public string CreateFreshMemberInvoice( int branchID, string contractNo, DateTime purchasedate, int employeeID, string notes, decimal discountValue, IEnumerable <PackageDetailViewModel> detail, IEnumerable <PaymentDetailViewModel> paymentDetail) { Contract contract = ctx.Contracts.SingleOrDefault(con => con.ContractNo == contractNo); if (contract != null) { InvoiceHeader header = new InvoiceHeader(); header.InvoiceNo = autoNumberProvider.Generate(branchID, "OR", purchasedate.Month, purchasedate.Year); header.BranchID = branchID; header.Contract = contract; header.Date = purchasedate; header.EmployeeID = employeeID; header.InvoiceType = FRESH_MEMBER_INVOICE; header.Notes = notes; header.DiscountValue = discountValue; header.CustomerID = contract.CustomerID; header.VoidDate = (DateTime?)null; EntityHelper.SetAuditFieldForInsert(header, HttpContext.Current.User.Identity.Name); foreach (var model in detail) { InvoiceDetail d = new InvoiceDetail(); d.ItemID = model.ItemID; d.Quantity = model.Quantity; d.UnitPrice = model.UnitPrice; d.Discount = model.Discount; d.IsTaxable = model.IsTaxed; header.InvoiceDetails.Add(d); ctx.InvoiceDetails.InsertOnSubmit(d); } PaymentHeader pay = new PaymentHeader(); pay.Date = purchasedate; pay.InvoiceHeader = header; pay.PaymentNo = autoNumberProvider.Generate(branchID, "PM", purchasedate.Month, purchasedate.Year); pay.VoidDate = (DateTime?)null; EntityHelper.SetAuditFieldForInsert(pay, HttpContext.Current.User.Identity.Name); foreach (var payDetail in paymentDetail) { PaymentDetail payd = new PaymentDetail(); payd.Amount = payDetail.Amount; payd.CreditCardTypeID = payDetail.CreditCardTypeID; payd.PaymentTypeID = payDetail.PaymentTypeID; payd.ApprovalCode = payDetail.ApprovalCode; payd.Notes = payDetail.Notes; pay.PaymentDetails.Add(payd); ctx.PaymentDetails.InsertOnSubmit(payd); } //CustomerStatusHistory custStatusHist = new CustomerStatusHistory(); //custStatusHist.Customer = cust; //custStatusHist.CustomerStatusID = contract.PurchaseDate = purchasedate; //contract.ActiveDate = DateTime.Now; contract.Status = FitnessManagement.Providers.ContractStatus.PAID; autoNumberProvider.Increment("OR", header.BranchID, purchasedate.Year); autoNumberProvider.Increment("PM", header.BranchID, purchasedate.Year); ctx.SubmitChanges(); return(header.InvoiceNo); } return(null); }