Пример #1
0
    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);
    }
Пример #2
0
    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);
    }