예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Redirect("~/Ordering/Invoice");
            Response.End();

            if (!Page.IsPostBack)
            {
                var    member        = (MembershipUser <DistributorProfileModel>)Membership.GetUser();
                string distributorID = member.Value.Id;
                if (null != Session["ActionMode"] && Session["Invoice"] != null)
                {
                    DisplayEditMode();
                }
                else if (null != Session["InvoiceContactID"])
                {
                    var invoiceContactID = (int)Session["InvoiceContactID"];
                    var assignedIds      = new List <int>();
                    var contact          = ContactsDataProvider.GetContactDetail(invoiceContactID, out assignedIds);
                    if (null != contact)
                    {
                        var invoice = CreateInvoiceFromContact(contact);


                        lblPanelIndex1.Visible = true;
                        lnkStep1Edit.Visible   = false;
                        pnlStep1.CssClass      = "step1-editing";
                        InvoiceInfo1.BindData(invoice, string.Empty);
                        InvoiceInfo1.BindInvoiceSkuGrid();
                        InvoiceInfo1.SetInvoiceDistributorNumber(distributorID);
                        InvoiceInfo1.SetRenderMode(Ordering.Controls.Invoices.InvoiceInfo.ControlState.Edit);
                        pnlStep1.Visible = true;
                        //begin - shan - mar 06, 2012 - show cancel button always
                        //pnlStep2.Visible = false;
                        pnlStep2.Visible = btnSave.Visible = litSaveInstr.Visible = false;
                        //end
                        Session["InvoiceContactID"] = null;
                    }
                    else
                    {
                    }
                }
                //From Bizworks
                else if (Session["InvoiceStep2"] != null && Convert.ToBoolean(Session["InvoiceStep2"]) == true)
                {
                    var invoice = Session["Invoice"] as Invoice;
                    InvoiceInfo1.BindData(invoice, string.Empty);
                    InvoiceInfo1.BindInvoiceSkuGrid();
                    InvoiceInfo1.SetRenderMode(Ordering.Controls.Invoices.InvoiceInfo.ControlState.Read);
                    //begin - shan - mar 06, 2012 - show cancel button always
                    //pnlStep2.Visible = true;
                    pnlStep2.Visible = btnSave.Visible = litSaveInstr.Visible = true;
                    //end
                    lblPanelIndex1.Visible = false;
                    lnkStep1Edit.Visible   = true;
                    pnlStep1.CssClass      = "step1-readonly";
                    decimal totalAmount = 0;
                    if (null != invoice.InvoiceSkus)
                    {
                        foreach (var sku in invoice.InvoiceSkus)
                        {
                            totalAmount = totalAmount + sku.TotalPrice;
                        }

                        var taxAmount = 0M;

                        if (invoice.TaxAmount == 0)
                        {
                            taxAmount = OrderProvider.CalculateTaxForInvoice(invoice);
                        }
                        else
                        {
                            taxAmount = invoice.TaxAmount;
                        }

                        var taxRate = 0M;
                        if (taxAmount != 0)
                        {
                            taxRate = decimal.Divide(taxAmount, totalAmount);
                        }

                        var totalDue      = totalAmount - invoice.CustomerDiscount;
                        var taxPercentage = 0M;


                        taxPercentage = (taxRate > 0) ? taxRate * 100 : invoice.TaxPercentage;

                        InvoiceTotal1.RenderTaxErrorMessage(!(taxAmount > 0 || taxPercentage > 0));
                        InvoiceTotal1.TaxPercentage = taxPercentage;


                        InvoiceTotal1.TotalTaxAmount = (invoice.TaxAmount > 0) ? invoice.TaxAmount : Math.Round((totalDue * invoice.TaxPercentage / 100), 2);;

                        totalDue += invoice.TaxAmount > 0 ? invoice.TaxAmount : Math.Round((totalDue * invoice.TaxPercentage / 100), 2);

                        InvoiceTotal1.ShipAmount          = invoice.ShippingAmount;
                        InvoiceTotal1.ShipPercentage      = invoice.ShippingPercentage;
                        InvoiceTotal1.TotalShippingAmount = (invoice.ShippingAmount > 0) ? invoice.ShippingAmount : Math.Round((totalDue * invoice.ShippingPercentage / 100), 2);

                        totalDue += invoice.ShippingAmount > 0 ? invoice.ShippingAmount : Math.Round((totalDue * invoice.ShippingPercentage / 100), 2);

                        InvoiceTotal1.TotalDue = totalDue;
                        this.InvoiceTotal1.SetInvoiceStatus(invoice.Status);
                    }
                    Session["InvoiceStep2"] = null;
                }
                //Form DWS.
                else if (!string.IsNullOrEmpty(Request.QueryString["cid"]))
                {
                    var customerOrderID  = Request.QueryString["cid"];
                    var customerOrderV01 = CustomerOrderingProvider.GetCustomerOrderByOrderID(customerOrderID);
                    if (null != customerOrderV01)
                    {
                        var invoice = CreateInvoiceFromCustomerOrder(customerOrderV01);
                        lblPanelIndex1.Visible = true;
                        lnkStep1Edit.Visible   = false;
                        pnlStep1.CssClass      = "step1-editing";
                        InvoiceInfo1.BindData(invoice, string.Empty);
                        InvoiceInfo1.BindInvoiceSkuGrid();
                        InvoiceInfo1.SetInvoiceDistributorNumber(distributorID);
                        InvoiceInfo1.SetRenderMode(Ordering.Controls.Invoices.InvoiceInfo.ControlState.Edit);
                        pnlStep1.Visible = true;
                        //begin - shan - mar 06, 2012 - show cancel button always
                        //pnlStep2.Visible = false;
                        pnlStep2.Visible = btnSave.Visible = litSaveInstr.Visible = false;
                        //end
                    }
                }
                else if (!string.IsNullOrEmpty(Request.QueryString["c"]))
                {
                    var assignedIds = new List <int>();
                    var contactid   = Request.QueryString["c"];
                    var contact     = ContactsDataProvider.GetContactDetail(Convert.ToInt32(contactid), out assignedIds);
                    if (null != contact)
                    {
                        var invoice = CreateInvoiceFromContact(contact);
                        lblPanelIndex1.Visible = true;
                        lnkStep1Edit.Visible   = false;
                        pnlStep1.CssClass      = "step1-editing";
                        InvoiceInfo1.BindData(invoice, string.Empty);
                        InvoiceInfo1.BindInvoiceSkuGrid();
                        InvoiceInfo1.SetInvoiceDistributorNumber(distributorID);
                        InvoiceInfo1.SetRenderMode(Ordering.Controls.Invoices.InvoiceInfo.ControlState.Edit);
                        pnlStep1.Visible = true;
                        //begin - shan - mar 06, 2012 - show cancel button always
                        //pnlStep2.Visible = false;
                        pnlStep2.Visible = btnSave.Visible = litSaveInstr.Visible = false;
                        //end
                    }
                }
                else
                {
                    lblPanelIndex1.Visible = true;
                    lnkStep1Edit.Visible   = false;
                    pnlStep1.CssClass      = "step1-editing";
                    InvoiceInfo1.SetInvoiceDistributorNumber(distributorID);
                    InvoiceInfo1.SetRenderMode(Ordering.Controls.Invoices.InvoiceInfo.ControlState.Edit);
                    pnlStep1.Visible = true;
                    //begin - shan - mar 06, 2012 - show cancel button always
                    //pnlStep2.Visible = false;
                    pnlStep2.Visible = btnSave.Visible = litSaveInstr.Visible = false;
                    //end
                    //shan - mar 14, 2012 - format the sub total fields and set default values
                    //shan - mar 12, 2012 - set invoice date to current date when creating for first time
                    //this.InvoiceInfo1.InvoiceDatePicker.SelectedDate = DateTime.Today;
                    this.InvoiceInfo1.SetDefaultValues();
                    //coming to page for first time..clear invoice session, if exists..
                    this.Session["Invoice"] = null;
                }
            }

            (Master as OrderingMaster).gdoNavMidCSS("gdo-nav-mid col-sm-7 gdo-nav-mid-invoices");
        }
예제 #2
0
 public decimal CalculateTaxForInvoice(Invoice invoice)
 {
     return(OrderProvider.CalculateTaxForInvoice(invoice));
 }