コード例 #1
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            //begin - shan - mar 13, 2012 - before saving validate the fields in Invoice Total control
            InvoiceInfo1.BindInvoiceSkuGrid();

            InvoiceTotal1.CalculateTax(true);
            //check if err exists
            if (string.IsNullOrEmpty(InvoiceTotal1.ErrorMessage))
            {
                var invoice = Session["Invoice"] as Invoice;
                invoice.Notes          = InvoiceTotal1.Note;
                invoice.PaymentAddress = InvoiceTotal1.PaymentAddress;

                InvoiceTotal1.CalculateTax(true);

                invoice.Status = (InvoiceStatus)InvoiceTotal1.InvoiceStatus;
                long invoiceId = InvoiceProvider.SetInvoice(Session["Invoice"] as Invoice);
                invoice.ID             = invoiceId;
                Session["InvoiceSKUs"] = null;
                Session["Invoice"]     = invoice;
                var invoiceDistributorSequence = InvoiceProvider.GetDistributorInvoiceNumber(invoice.DistributorID,
                                                                                             invoiceId);
                Response.Redirect("~/Bizworks/MyInvoiceDetails.aspx?invoiceId=" + invoiceDistributorSequence.ToString());
            }
        }
コード例 #2
0
        public async Task <InvoiceModel> Load(int id)
        {
            var memberId = User.Identity.Name.ToUpper().Trim();
            var locale   = CultureInfo.CurrentUICulture.Name;
            var invoice  =
                await _invoiceLoader.Load(new GetInvoiceById { Id = id, MemberId = memberId, Locale = locale });

            if (invoice.MemberFirstName == null || invoice.MemberEmailAddress == null)
            {
                InvoiceProvider.LoadMemberInfo(invoice);
            }
            if (invoice.ReceiptChannel == "ClubSaleReceipt" || invoice.ReceiptChannel == "Club Visit/Sale")
            {
                if (invoice.ClubInvoice == null)
                {
                    ConvertToClubInvoiceLines(invoice.InvoiceLines, invoice);
                }
                else
                {
                    invoice.InvoiceLines = new List <InvoiceLineModel>();
                    invoice.InvoicePrice = new InvoicePriceModel();
                }
            }
            if (!HLConfigManager.Configurations.DOConfiguration.AddressOnInvoice)
            {
                invoice.MemberAddress = new InvoiceAddressModel();
            }
            return(invoice);
        }
コード例 #3
0
    protected void btnProcessVoid_Click(object sender, EventArgs e)
    {
        MonthlyClosingProvider monthlyClosingProvider = UnityContainerHelper.Container.Resolve <MonthlyClosingProvider>();
        InvoiceProvider        invoiceProvider        = UnityContainerHelper.Container.Resolve <InvoiceProvider>();

        var query = from row in gvwData.Rows.Cast <GridViewRow>()
                    where (row.FindControl("chkVoid") as CheckBox).Checked
                    select new {
            InvoiceNo = row.Cells[1].Text
        };

        foreach (var invoice in query)
        {
            InvoiceHeader currentInvoice = invoiceProvider.GetInvoice(invoice.InvoiceNo);
            if (currentInvoice != null)
            {
                if (!monthlyClosingProvider.IsClosed(currentInvoice.BranchID, currentInvoice.Date.Month, currentInvoice.Date.Year))
                {
                    invoiceProvider.ProcessVoid(invoice.InvoiceNo, txtNotes.Text, chkVoidPaymentOnly.Checked);
                    lblStatus.Text += String.Format("Invoice <b>{0}</b> has been marked as void <br/>", currentInvoice.InvoiceNo);
                }
                else
                {
                    lblStatus.Text += String.Format("Invoice <b>{0}</b> cannot be marked as void because of monthly closing <br/>", currentInvoice.InvoiceNo);
                }
            }
        }

        txtNotes.Text = String.Empty;
        gvwData.DataBind();
    }
コード例 #4
0
        private static InvoiceProvider GetTarget()
        {
            var invoiceConverter = new InvoiceConverter();
            var invoiceLoader    = new InvoiceLoader(invoiceConverter);
            var invoiceProvider  = new InvoiceProvider(invoiceLoader, invoiceLoader, invoiceConverter);

            return(invoiceProvider);
        }
コード例 #5
0
        public InvoiceController()
        {
            var invoiceConverter = new InvoiceConverter();
            var invoiceLoader    = new InvoiceLoader(invoiceConverter);
            var invoiceProvider  = new InvoiceProvider(invoiceLoader, invoiceLoader, invoiceConverter);

            _invoiceProvider    = invoiceProvider;
            _invoiceModelLoader = invoiceProvider;
        }
コード例 #6
0
 public ActionResult InvoiceList(InvoiceParameter param)
 {
     param.KeyWord = HttpUtility.UrlDecode(param.KeyWord);
     return(View(
                new InternalDataTransferToView
     {
         List = InvoiceProvider.List(param),
         Data = param
     }));
 }
コード例 #7
0
        public InvoiceSearchController()
            : this(new LocalizationManager())
        {
            var invoiceConverter = new InvoiceConverter();
            var invoiceLoader    = new InvoiceLoader(invoiceConverter);
            var invoiceProvider  = new InvoiceProvider(invoiceLoader, invoiceLoader, invoiceConverter);

            _invoicesLoader  = invoiceLoader;
            _invoiceLoader   = invoiceProvider;
            _invoiceProvider = invoiceProvider;
        }
コード例 #8
0
        public InvoiceEditController()
        {
            _invoiceCatalogProvider = new InvoiceCatalogProvider();
            var invoiceConverter = new InvoiceConverter();
            var invoiceLoader    = new InvoiceLoader(invoiceConverter);
            var invoiceProvider  = new InvoiceProvider(invoiceLoader, invoiceLoader, invoiceConverter);

            _invoiceProvider  = invoiceProvider;
            _savedCartsLoader = invoiceProvider;
            _discountsLoader  = invoiceProvider;
            _addressLoader    = invoiceProvider;
            _errorLoader      = invoiceProvider;
        }
コード例 #9
0
        public ActionResult InvoiceEdit(InvoiceParameter param)
        {
            if ((0L < param.Entity.Id))
            {
                param.Entity = InvoiceProvider.GetRecordById(param);
            }

            return(View(new InternalDataTransferToView
            {
                List = InvoiceProvider.GetDetail(param),
                //InvoiceProvider.GetDetail(param),
                Data = param
            }));
        }
コード例 #10
0
        public InvoiceModel ConvertToInvoiceModel(MemberInvoice memberInvoice, string locale)
        {
            var invoiceConverter = new InvoiceConverter();
            var invoiceLoader    = new InvoiceLoader(invoiceConverter);
            var invoiceProvider  = new InvoiceProvider(invoiceLoader, invoiceLoader, invoiceConverter);

            return(new InvoiceModel
            {
                Address = memberInvoice.Address != null?ConvertToInvoiceAddress(memberInvoice.Address) : null,
                              CreatedDate = memberInvoice.CreatedDate,
                              CustomerId = memberInvoice.CustomerId,
                              Email = memberInvoice.Email,
                              MemberInvoiceNumber = memberInvoice.MemberInvoiceNumber,
                              FirstName = memberInvoice.FirstName,
                              LastName = memberInvoice.LastName,
                              Id = memberInvoice.Id,
                              InvoiceDate = memberInvoice.InvoiceDate,
                              Phone = memberInvoice.Phone,
                              OrderId = memberInvoice.OrderId,
                              Status = memberInvoice.Status.ToString(),
                              Total = memberInvoice.Price != null ? memberInvoice.Price.TotalDue : 0,
                              DisplayTotal = memberInvoice.Price != null?memberInvoice.Price.TotalDue.FormatPrice() : "0.00",
                                                 Notes = memberInvoice.Notes,
                                                 MemberId = memberInvoice.MemberId.ToUpper(),
                                                 TotalVolumePoints = memberInvoice.Price != null ? memberInvoice.Price.TotalVolumePoints : 0,
                                                 Type = memberInvoice.InvoiceType.ToString(),
                                                 ShippingMethod = memberInvoice.ShippingMethod,
                                                 InvoiceShipToAddress = memberInvoice.InvoiceShipToAddress,
                                                 PricingType = memberInvoice.PriceType,
                                                 OrderSource = memberInvoice.OrderSource,
                                                 Source = memberInvoice.Source,
                                                 ReceiptChannel = memberInvoice.ReceiptChannel,
                                                 DisplayReceiptChannel = invoiceProvider.GetDisplayReceiptChannel(locale, memberInvoice.ReceiptChannel.ToString()),
                                                 IsFaceToFace = memberInvoice.IsFaceToFace,
                                                 InvoicePrice = memberInvoice.Price != null?ConvertToInvoicePrice(memberInvoice.Price) : null,
                                                                    IsGdoMemberPricing = memberInvoice.InvoiceType.ToString() == "Distributor",
                                                                    Vat = (string.IsNullOrEmpty(memberInvoice.Vat) && locale.Substring(3) == "GB")
                    ? (string)
                                                                          HttpContext.GetLocalResourceObject("/Views/Invoice/Display.cshtml",
                                                                                                             "VatEmptyValue", CultureInfo.CurrentCulture)
                    : memberInvoice.Vat,
                                                                    ApplicationCountryCode = memberInvoice.ApplicationCountryCode,
                                                                    DisplayInvoiceStatus = invoiceProvider.GetDisplayInvoiceStatus(locale, memberInvoice.Status.ToString()),
                                                                    DisplayPaymentType = invoiceProvider.GetDisplayPaymentType(locale, memberInvoice.PaymentType.ToString()),
                                                                    DisplayInvoiceType = invoiceProvider.GetDisplayInvoiceType(locale, memberInvoice.InvoiceType.ToString()),
                                                                    isProfitable = memberInvoice.IsProfitable,
                                                                    isPurchased = memberInvoice.IsPurchased,
                                                                    PaymentType = memberInvoice.PaymentType,
            });
        }
コード例 #11
0
        public InvoiceBaseController()
            : this(new LocalizationManager())
        {
            var invoiceConverter = new InvoiceConverter();
            var invoiceLoader    = new InvoiceLoader(invoiceConverter);
            var invoiceProvider  = new InvoiceProvider(invoiceLoader, invoiceLoader, invoiceConverter);

            _invoiceLoader = invoiceProvider;

            _invoiceProvider        = invoiceProvider;
            _statesLoader           = invoiceProvider;
            _statusLoader           = invoiceProvider;
            _PaymentTypeLoader      = invoiceProvider;
            _invoiceCatalogProvider = new InvoiceCatalogProvider();
        }
コード例 #12
0
        protected void btnConfirmYes_Click(object sender, EventArgs e)
        {
            try
            {
                //clear the session values as we are cancelling the changes now & also the cache for a cancel

                var invoice = Session["Invoice"] as Invoice;
                if (invoice != null)
                {
                    InvoiceProvider.ExpireInvoicesCache(invoice.DistributorID);
                }
                Session["Invoice"] = null;
                Response.Redirect("~/Bizworks/myinvoices.aspx", true);
            }
            catch (System.Threading.ThreadAbortException) { }             //suppress the thread export exception
        }
コード例 #13
0
        public ActionResult AjaxInvoiceDelete(InvoiceParameter param)
        {
            var result = new JsonNetResult();
            var r      = new GeneralResponse();

            try
            {
                r.Code = InvoiceProvider.Delete(param).ToString(Section.Get.Common.Culture);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                r.Code = "-11";
            }
            result.Data = r;
            return(result);
        }
コード例 #14
0
        public ActionResult AjaxInvoiceEdit(InvoiceParameter param)
        {
            var result = new JsonNetResult();
            var r      = new GeneralResponse();

            try
            {
                r.Code = (0L < param.Entity.Id
                    ? InvoiceProvider.Update(param)
                    : InvoiceProvider.Create(param)).ToString(Section.Get.Common.Culture);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                r.Code = "-11" + ex.Message;
            }
            result.Data = r;
            return(result);
        }
コード例 #15
0
 protected void OnDeleteInvoiceClick(object sender, EventArgs e)
 {
     try
     {
         if (Session["Invoice"] != null)
         {
             var invoice     = Session["Invoice"] as Invoice;
             var checkDelete = InvoiceProvider.DeleteInvoice(invoice.DistributorID, invoice.ID, invoice.ContactInfoID);
             if (checkDelete)
             {
                 Response.Redirect("~/Bizworks/MyInvoices.aspx");
             }
         }
     }
     catch (Exception ex)
     {
         MyHLWebUtil.LogExceptionWithContext(ex);
     }
 }
コード例 #16
0
        public void OnSavePdfClick(object sender, EventArgs e)
        {
            try
            {
                var invoicePdfName = "CustomerInvoice.pdf";

                if (Session["Invoice"] != null)
                {
                    var invoice = Session["Invoice"] as Invoice;

                    if (invoice != null)
                    {
                        invoicePdfName = String.Format("Invoice{0:000000}{1}.pdf", invoice.DistributorInvoiceNumber, invoice.LastName);
                    }
                }

                var htmlContent        = HhtmlContent.Value;
                var pdfBytes           = InvoiceProvider.GenerateInvoicePdf(htmlContent, "tJ+GlIaGlIWFlIKahJSHhZqFhpqNjY2N");
                var contentDisposition = Request.QueryString["disposition"] == null ? "inline" : Request.QueryString["disposition"].ToString();

                if (null != pdfBytes && pdfBytes.Length > 0)
                {
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.Charset     = "";
                    Response.ContentType = "application/pdf";
                    Response.AddHeader("Pragma", "public");
                    Response.AddHeader("content-disposition", string.Format("{0}; filename ={1}", contentDisposition, invoicePdfName));
                    Response.BinaryWrite(pdfBytes);
                    Response.Flush();
                    try { Response.End(); }
                    catch { }
                }
            }
            catch (Exception ex)
            {
                MyHLWebUtil.LogExceptionWithContext(ex);
            }
        }
コード例 #17
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Redirect("~/Ordering/Invoice");
            Response.End();

            if (!HLConfigManager.Configurations.DOConfiguration.AllowToCreateInvoice)
            {
                Response.Redirect("~/Ordering/Catalog.aspx");
                Response.End();
            }
            int invoiceId = 0;

            int.TryParse(Request.QueryString["invoiceId"], out invoiceId);
            var    member        = (MembershipUser <DistributorProfileModel>)Membership.GetUser();
            string DistributorID = member.Value.Id;

            var invoice = InvoiceProvider.GetDetailedInvoice(DistributorID, invoiceId);

            if (invoice != null)
            {
                lblError.Visible       = false;
                displayInvoice.Visible = true;
                //begin - shan - mar 09, 2012 - set invoice date insterad of created date
                //displayInvoice.InvoiceDate = (invoice.CreatedDate == null) ? "" : invoice.CreatedDate.ToString("MM/dd/yyyy");
                //set standard date format
                //displayInvoice.InvoiceDate = (DateTime.MinValue == invoice.InvoiceDate) ? string.Empty : invoice.InvoiceDate.ToString("MM/dd/yyyy");
                displayInvoice.InvoiceDate = (DateTime.MinValue == invoice.InvoiceDate) ? string.Empty : invoice.InvoiceDate.ToString("d");
                //set invoice number formatted to be of six digits
                //displayInvoice.InvoiceNumber = invoice.DistributorInvoiceNumber.ToString();
                displayInvoice.InvoiceNumber = invoice.DistributorInvoiceNumber.ToString("000000");
                //end
                displayInvoice.FullName = invoice.FirstName + " " + invoice.LastName;
                displayInvoice.Shipto   = invoice.Address1 +
                                          ((String.IsNullOrEmpty(invoice.Address2.Trim())) ? "" :
                                           ("<br />" + invoice.Address2)) + "<br />" + invoice.City + ", " + invoice.State + " " + invoice.PostalCode;
                displayInvoice.Phone         = invoice.PhoneNumber;
                displayInvoice.Email         = invoice.Email;
                displayInvoice.InvoiceType   = Resources.InvoiceTypes.ResourceManager.GetString(invoice.Type.ToString());
                displayInvoice.InvoiceStatus = Resources.InvoiceStatusTypes.ResourceManager.GetString(invoice.Status.ToString());
                displayInvoice.Notes         = invoice.Notes;
                displayInvoice.SendPaymentTo = invoice.PaymentAddress;
                //shan - mar 09, 2012 - need to display total price and subtotal
                decimal totalPrice = 0;
                invoice.InvoiceSkus.ForEach(sku =>
                {
                    totalPrice += sku.TotalPrice;
                });
                displayInvoice.Price          = totalPrice.ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                displayInvoice.LoyaltyProgram = invoice.CustomerDiscount.ToString("N2",
                                                                                  CultureInfo.GetCultureInfo("en-US"));
                displayInvoice.Subtotal = (totalPrice - invoice.CustomerDiscount).ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                //begin - shan - mar 14, 2012 - set tax and shipping based on amount or percentage entered
                //current property will display value only if tax amount exists..it will display 0 if tax percentage has been entered
                //displayInvoice.Tax = invoice.TaxAmount.ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                //displayInvoice.Shipping = invoice.ShippingAmount.ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                displayInvoice.Tax =
                    ((invoice.TaxAmount == 0) ? Math.Round((invoice.TaxPercentage / 100 * (totalPrice - invoice.CustomerDiscount)), 2) : invoice.TaxAmount).
                    ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                displayInvoice.Shipping =
                    ((invoice.ShippingAmount == 0) ? Math.Round((invoice.ShippingPercentage / 100 * (totalPrice - invoice.CustomerDiscount)), 2) : invoice.ShippingAmount).
                    ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                //end
                displayInvoice.TotalDue = invoice.TotalDue.ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                displayInvoice.BindInvoiceSkuData(invoice);
            }
            else
            {
                lblError.Visible       = true;
                displayInvoice.Visible = false;
            }
            if (null != Page.Master)
            {
                (Master as OrderingMaster).gdoNavMidCSS("gdo-nav-mid col-sm-7 gdo-nav-mid-invoices");
            }
        }
コード例 #18
0
 public void SetInvoiceDistributorNumber(string distributorID)
 {
     //shan - mar 14, 2012 - to set invoice number formatted to six digits
     //ltInvoiceNumber.Text = InvoiceProvider.GetNextDistributorInvoiceNumber(distributorID).ToString();
     ltInvoiceNumber.Text = InvoiceProvider.GetNextDistributorInvoiceNumber(distributorID).ToString("000000");
 }
コード例 #19
0
        public void BindData(Invoice invoice, string actionMode)
        {
            try
            {
                //Edit mode, load data from DB
                //begin - shan - mar 08, 2012 - check if the date exists before setting to date pciker control
                //rdpInvoiceDate.SelectedDate = invoice.CreatedDate;
                rdpInvoiceDate.SelectedDate =
                    DateTime.MinValue == invoice.InvoiceDate ? DateTime.Today : invoice.InvoiceDate;
                rdpInvoiceDate.SelectedDate = actionMode == "Copy" ? DateTime.Today : rdpInvoiceDate.SelectedDate;
                //end
                ltInvoiceDate.Text = rdpInvoiceDate.SelectedDate != null?rdpInvoiceDate.SelectedDate.Value.ToString("MM/dd/yyyy") : string.Empty;

                txtInvoiceNumber.Text = (string.IsNullOrEmpty(actionMode) || actionMode == "Edit") ? invoice.DistributorInvoiceNumber.ToString() :
                                        InvoiceProvider.GetNextDistributorInvoiceNumber(invoice.DistributorID).ToString();
                //shan - mar 14, 2012 - to set invoice number formatted to six digits
                //ltInvoiceNumber.Text = (string.IsNullOrEmpty(actionMode) || actionMode == "Edit") ? invoice.DistributorInvoiceNumber.ToString() :
                //    InvoiceProvider.GetNextDistributorInvoiceNumber(invoice.DistributorID).ToString();
                ltInvoiceNumber.Text = (string.IsNullOrEmpty(actionMode) || actionMode == "Edit") ? invoice.DistributorInvoiceNumber.ToString("000000") :
                                       InvoiceProvider.GetNextDistributorInvoiceNumber(invoice.DistributorID).ToString("000000");
                txtFirstName.Text = invoice.FirstName;
                txtLastName.Text  = invoice.LastName;
                ltName.Text       = invoice.FirstName + " " + invoice.LastName;
                txtAddress.Text   = invoice.Address1 + " " + invoice.Address2;
                ltAddress.Text    = invoice.Address1 + " " + invoice.Address2;

                txtCity.Text = invoice.City;
                if (null != ddlState && null != ddlState.Items && ddlState.Items.Count == 0)
                {
                    BindStatesReference();
                }
                ddlState.SelectedIndex = ddlState.Items.IndexOf(ddlState.Items.FindByValue(invoice.State));


                if (!String.IsNullOrEmpty(invoice.PostalCode))
                {
                    var arrPostalCodes = invoice.PostalCode.Split('-');
                    txtZip.Text = arrPostalCodes[0];
                    if (arrPostalCodes.Length > 1)
                    {
                        txtZip2.Text = arrPostalCodes[1];
                    }
                    else
                    {
                        txtZip2.Text = string.Empty;
                    }
                }
                else
                {
                    txtZip.Text  = string.Empty;
                    txtZip2.Text = string.Empty;
                }
                var txtPostal = String.IsNullOrEmpty(txtZip.Text) ? "" : " / " + txtZip.Text;
                ltCityState.Text = invoice.City;
                txtCity.Text     = invoice.City;
                txtPhone.Text    = invoice.PhoneNumber;
                ltPhone.Text     = invoice.PhoneNumber;

                txtEmail.Text = invoice.Email;
                ltEmail.Text  = invoice.Email;

                if (invoice.Type == InvoiceType.customer)
                {
                    rbCustomer.Checked    = true;
                    rbDistributor.Checked = false;
                }
                else
                {
                    rbCustomer.Checked    = false;
                    rbDistributor.Checked = true;
                }

                ltInvoiceType.Text = invoice.Type.ToString();

                ltSubtotalTotalVolumePoints.Text = invoice.TotalVolumePoints.ToString("N2", CultureInfo.GetCultureInfo("en-US"));

                decimal totalAmount = 0;
                foreach (var sku in invoice.InvoiceSkus)
                {
                    totalAmount = totalAmount + sku.TotalPrice;
                }

                ltSubtotalTotalPrice.Text = totalAmount.ToString("N2", CultureInfo.GetCultureInfo("en-US"));

                //shan - set value only if it is > 0
                //txtLoyaltyAmount.Text = invoice.DiscountedAmount.ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                //txtLoyaltyPercentage.Text = invoice.DiscountPercentage.ToString("N2", CultureInfo.GetCultureInfo("en-US"));
                txtLoyaltyAmount.Text = invoice.DiscountedAmount > 0 ?
                                        invoice.DiscountedAmount.ToString("N2", CultureInfo.GetCultureInfo("en-US")) : string.Empty;
                txtLoyaltyPercentage.Text = invoice.DiscountPercentage > 0 ?
                                            invoice.DiscountPercentage.ToString("N2", CultureInfo.GetCultureInfo("en-US")) : string.Empty;

                ltDiscount.Text    = invoice.CustomerDiscount.ToString();
                ltNetSubtotal.Text = (totalAmount - invoice.CustomerDiscount).ToString("N2", CultureInfo.GetCultureInfo("en-US"));

                //shan - mar 14, 2012 - prefix customer loyalty program with the percentage in view mode, if exists..
                ltLoyaltyCaption.Text =
                    (string.IsNullOrEmpty(actionMode) &&
                     null != invoice &&
                     0 < invoice.DiscountPercentage) ?
                    invoice.DiscountPercentage.ToString("N2", CultureInfo.GetCultureInfo("en-US")) + "%" +
                    " " + GetLocalResourceString("ltLoyaltyCaption.Text", "Customer Loyalty Program:") :
                    GetLocalResourceString("ltLoyaltyCaption.Text", "Customer Loyalty Program:");
            }
            catch (Exception ex)
            {
                MyHLWebUtil.LogExceptionWithContext(ex);
            }
        }
コード例 #20
0
        private List <Invoice> searchInvoices(SearchTypes searchType, SearchFilterTypes filterType)
        {
            //begin - shan - mar 14, 2012 - set default value to be error value (-999)
            //based on that differentiate whether zero has been entered or fields has been left empty
            //while searching based on the amount
            //decimal startAmount = 0;
            //decimal.TryParse(txtStartAmount.Text.Trim(), out startAmount);
            //decimal endAmount = 0;
            //decimal.TryParse(txtEndAmount.Text.Trim(), out endAmount);
            var     invoices    = new List <Invoice>();
            decimal startAmount = -999;
            decimal endAmount   = -999;

            startAmount = decimal.TryParse(txtStartAmount.Text.Trim(), out startAmount) ? startAmount : -999;
            endAmount   = decimal.TryParse(txtEndAmount.Text.Trim(), out endAmount) ? endAmount : -999;

            var searchValue = txtSearchBy.Text.Trim();

            if (searchType == SearchTypes.ByDateOrAmount)
            {
                invoices = InvoiceProvider.SearchInvoice(new InvoiceSearchFilter()
                {
                    SearchByDateOrAmount = true,
                    FromDate             = FromDate.SelectedDate,
                    ToDate      = ToDate.SelectedDate,
                    StartAmount = (0 > startAmount) ? (decimal?)null : startAmount,
                    EndAmount   = (0 > endAmount) ? (decimal?)null : endAmount,
                }, DistributorID);
            }
            else
            {
                var searchFilter = new InvoiceSearchFilter();
                searchFilter.SearchByDateOrAmount = false;
                searchFilter.FirstName            = (filterType == SearchFilterTypes.FirstName) ? searchValue : string.Empty;
                searchFilter.LastName             = (filterType == SearchFilterTypes.LastName) ? searchValue : string.Empty;
                searchFilter.StreetAddress        = (filterType == SearchFilterTypes.StreetAddress) ? searchValue : string.Empty;
                searchFilter.City        = (filterType == SearchFilterTypes.City) ? searchValue : string.Empty;
                searchFilter.State       = (filterType == SearchFilterTypes.State) ? searchValue : string.Empty;
                searchFilter.ZipCode     = (filterType == SearchFilterTypes.ZipCode) ? searchValue : string.Empty;
                searchFilter.SKU         = (filterType == SearchFilterTypes.SKU) ? searchValue : string.Empty;
                searchFilter.Description = (filterType == SearchFilterTypes.Description) ? searchValue : string.Empty;

                //begin - shan - mar 14, 2012 - assign null based on error value
                //to differentiate whether to search by 0 or empty field
                //based on this, while filtering check for null or 0
                decimal parseValue = -999;

                parseValue = decimal.TryParse(searchValue, out parseValue) ? parseValue : -999;
                {
                    searchFilter.TotalVolumePoints = (filterType == SearchFilterTypes.TotalVolumePoints) ?
                                                     (0 < parseValue ? parseValue : (decimal?)null) : (decimal?)null;
                    searchFilter.InvoiceTotal = (filterType == SearchFilterTypes.InvoiceTotal) ?
                                                (0 < parseValue ? parseValue : (decimal?)null) : (decimal?)null;
                }

                invoices = InvoiceProvider.SearchInvoice(searchFilter, DistributorID);

                //shan - mar 15, 2012 - to set secondary sorting to be of invoice #
                //sort the invoices to be ordered by invoice # descendingg
                //while applying sorting from grid that should get filter as the primary sorting
                if (null != invoices && invoices.Count > 0)
                {
                    invoices = invoices.OrderByDescending(inv => inv.DistributorInvoiceNumber).ToList();
                }
            }

            return(invoices);
        }
コード例 #21
0
ファイル: PaymentLogic.cs プロジェクト: johncoffee/eventblock
 public InvoiceLogic(ref Orders Order, Entities.User _User)
 {
     InvoiceProvider = new iCountProvider(Order, _User);
 }
コード例 #22
0
        public Invoice GetInvoiceForm()
        {
            var invoice = new Invoice();

            try
            {
                var member = (MembershipUser <DistributorProfileModel>)Membership.GetUser();
                invoice.DistributorID = member.Value.Id;
                if (rdpInvoiceDate.SelectedDate != null)
                {
                    invoice.CreatedDate = rdpInvoiceDate.SelectedDate.Value;
                }
                //begin - shan - mar 09, 2012 - set invoice date to current date if not available
                invoice.CreatedDate = DateTime.MinValue == invoice.CreatedDate ? DateTime.Today : invoice.CreatedDate;
                invoice.InvoiceDate = invoice.CreatedDate;
                //end
                long invoiceNumber = 0;
                long.TryParse(ltInvoiceNumber.Text, out invoiceNumber);
                invoice.DistributorInvoiceNumber = invoiceNumber;
                invoice.ID            = InvoiceProvider.GetInvoiceIDFromDistributorInvoiceNumber(invoice.DistributorID, invoiceNumber);
                invoice.ContactInfoID = InvoiceProvider.GetInvoiceContactInfoID(invoice.DistributorID, invoice.ID);
                invoice.FirstName     = txtFirstName.Text;
                invoice.LastName      = txtLastName.Text;
                invoice.Address1      = txtAddress.Text;
                invoice.City          = txtCity.Text;
                invoice.State         = ddlState.SelectedValue;
                invoice.PostalCode    = txtZip.Text + "-" + txtZip2.Text;
                invoice.Country       = "US";
                invoice.PhoneNumber   = txtPhone.Text;
                invoice.Email         = txtEmail.Text;
                invoice.Type          = rbCustomer.Checked ? InvoiceType.customer : InvoiceType.distributor;
                decimal subtotalVolumePoints = 0;
                decimal.TryParse(ltSubtotalTotalVolumePoints.Text.Trim(), out subtotalVolumePoints);
                invoice.TotalVolumePoints = subtotalVolumePoints;
                decimal discountAmount = 0;
                decimal.TryParse(txtLoyaltyAmount.Text, out discountAmount);
                invoice.DiscountedAmount = discountAmount;
                decimal discountPercentage = 0;
                decimal.TryParse(txtLoyaltyPercentage.Text, out discountPercentage);
                invoice.DiscountPercentage = discountPercentage;
                decimal customerDiscount = 0;
                decimal.TryParse(ltDiscount.Text, out customerDiscount);
                invoice.CustomerDiscount = Math.Abs(customerDiscount);
                invoice.InvoiceSkus      = GetSkus();
                decimal totalPrice = 0;
                if (null != invoice.InvoiceSkus)
                {
                    foreach (var sku in invoice.InvoiceSkus)
                    {
                        totalPrice = totalPrice + sku.TotalPrice;
                    }
                }
                //shan - to retain the invoice values
                //if the invoice exists in session get the tax and shipping fields
                //while redirecting to the same page again those fields shouldn't get lost
                if (null != Session["Invoice"])
                {
                    var invoiceExisting = Session["Invoice"] as Invoice;
                    if (null != invoiceExisting)
                    {
                        //set the values to the new object
                        invoice.TaxAmount          = invoiceExisting.TaxAmount;
                        invoice.TaxPercentage      = invoiceExisting.TaxPercentage;
                        invoice.ShippingAmount     = invoiceExisting.ShippingAmount;
                        invoice.ShippingPercentage = invoiceExisting.ShippingPercentage;
                        invoice.Status             = invoiceExisting.Status;
                        invoice.Notes          = invoiceExisting.Notes;
                        invoice.PaymentAddress = invoiceExisting.PaymentAddress;
                    }
                }
            }
            catch (Exception ex)
            {
                MyHLWebUtil.LogExceptionWithContext(ex);
            }
            return(invoice);
        }
コード例 #23
0
        private List <Invoice> searchInvoices(InvoiceSearchFilter searchFilter)
        {
            var invoices = InvoiceProvider.SearchInvoice(searchFilter, DistributorID);

            return(invoices);
        }
コード例 #24
0
        private IList <BillingViewModel> CreateBillingInvoices(int branchID, int billingTypeID, IEnumerable <BillingViewModel> billings, DateTime processDate, int processedByEmployeeID, string billingFileName)
        {
            List <BillingViewModel> list               = new List <BillingViewModel>();
            InvoiceProvider         invoiceProvider    = new InvoiceProvider(ctx);
            AutoNumberProvider      autoNumberProvider = new AutoNumberProvider(ctx);
            string autoNumber = autoNumberProvider.Generate(branchID, "BL", processDate.Month, processDate.Year);

            BillingHeader billingHeader = new BillingHeader();

            billingHeader.BatchNo       = autoNumber;
            billingHeader.BillingTypeID = billingTypeID;
            billingHeader.BranchID      = branchID;
            billingHeader.UserName      = ctx.Employees.Single(emp => emp.ID == processedByEmployeeID).UserName;
            billingHeader.ProcessDate   = processDate;
            billingHeader.FileName      = billingFileName;

            foreach (BillingViewModel billing in billings)
            {
                Contract      contract = ctx.Contracts.SingleOrDefault(c => c.ContractNo == billing.ContractNo);
                Customer      customer = contract.Customer;
                PackageHeader package  = contract.PackageHeader;
                if (contract != null && package != null && customer != null)
                {
                    InvoiceDetailViewModel invoiceDetail = new InvoiceDetailViewModel();
                    invoiceDetail.InvoiceID = 0;
                    invoiceDetail.ItemID    = contract.BillingItemID.Value;
                    invoiceDetail.Quantity  = 1;
                    invoiceDetail.UnitPrice = billing.DuesAmount;
                    invoiceDetail.Discount  = 0;
                    invoiceDetail.IsTaxable = true;

                    PaymentDetailViewModel paymentDetail = new PaymentDetailViewModel();
                    paymentDetail.PaymentTypeID    = ctx.PaymentTypes.SingleOrDefault(p => p.Description == "Credit Card").ID;
                    paymentDetail.CreditCardTypeID = customer.CreditCardTypeID.HasValue ? customer.CreditCardTypeID.Value : ctx.CreditCardTypes.SingleOrDefault(cc => cc.Description == "Visa").ID;
                    paymentDetail.ApprovalCode     = String.Empty;
                    paymentDetail.Amount           = billing.DuesAmount;
                    paymentDetail.Notes            = "Auto Pay";
                    paymentDetail.PaymentID        = 0;

                    InvoiceHeader invoiceHeader = invoiceProvider.CreateExistingMemberInvoiceForBilling(branchID,
                                                                                                        processDate,
                                                                                                        customer.Barcode,
                                                                                                        processedByEmployeeID,
                                                                                                        "Auto pay " + contract.ContractNo,
                                                                                                        0,
                                                                                                        new List <InvoiceDetailViewModel>()
                    {
                        invoiceDetail
                    },
                                                                                                        new List <PaymentDetailViewModel>()
                    {
                        paymentDetail
                    });


                    BillingDetail billingDetail = new BillingDetail();
                    billingDetail.Amount        = billing.DuesAmount;
                    billingDetail.Contract      = contract;
                    billingDetail.Customer      = customer;
                    billingDetail.InvoiceHeader = invoiceHeader;
                    billingDetail.PackageHeader = package;
                    billingHeader.BillingDetails.Add(billingDetail);

                    ctx.BillingHeaders.InsertOnSubmit(billingHeader);

                    billing.Note += "," + invoiceHeader.InvoiceNo;
                    list.Add(billing);
                }

                if (contract.NextDuesDate.HasValue)
                {
                    contract.NextDuesDate = contract.NextDuesDate.Value.AddMonths(contract.DuesInMonth);
                }
            }


            autoNumberProvider.Increment("BL", branchID, processDate.Year);
            ctx.SubmitChanges();

            return(list);
        }