private void PopulateInvoiceExtra()
        {
            Facade.IInvoiceExtra facInvoiceExtra = new Facade.Invoice();

            if (m_invoiceExtra == null)
            {
                m_invoiceExtra = new Entities.InvoiceExtra();
            }

            if (lblInvoiceNo.Text != Orchestrator.Globals.Constants.UNALLOCATED_INVOICE_ID)
            {
                m_invoiceExtra.InvoiceId   = int.Parse(lblInvoiceNo.Text);
                m_invoiceExtra.CreatedDate = Convert.ToDateTime(lblDateCreated.Text);
            }
            else
            {
                m_invoiceExtra.CreatedDate = DateTime.Now;
            }

            // Set the account code.
            Entities.Organisation orgClient = null;
            Facade.Organisation   facOrg    = new Orchestrator.Facade.Organisation();
            orgClient = facOrg.GetForIdentityId(m_identityId);
            m_invoiceExtra.AccountCode = orgClient.AccountCode;
            //

            m_invoiceExtra.InvoiceDate         = this.rdiInvoiceDate.SelectedDate.Value;
            m_invoiceExtra.InvoiceType         = eInvoiceType.Extra;
            m_invoiceExtra.ClientInvoiceAmount = Decimal.Parse(txtAmountNet.Text, NumberStyles.Currency);
            m_invoiceExtra.InvoiceDetails      = txtInvoiceDetails.Text;
            m_invoiceExtra.CreatedDate         = DateTime.Now;
            m_invoiceExtra.NominalCode         = cboNominalCode.SelectedValue;

            if (chkOverrideAmount.Checked)
            {
                m_invoiceExtra.OverrideReason           = txtReasonForOverride.Text;
                m_invoiceExtra.OverrideTotalAmountGross = Decimal.Parse(txtOverrideAmountGross.Text, NumberStyles.Currency);
                m_invoiceExtra.OverrideTotalAmountNet   = Decimal.Parse(txtOverrideAmountNet.Text, NumberStyles.Currency);
                m_invoiceExtra.OverrideTotalAmountVAT   = Decimal.Parse(txtOverrideAmountVAT.Text, NumberStyles.Currency);
            }
            else
            {
                m_invoiceExtra.OverrideReason           = string.Empty;
                m_invoiceExtra.OverrideTotalAmountGross = 0;
                m_invoiceExtra.OverrideTotalAmountNet   = 0;
                m_invoiceExtra.OverrideTotalAmountVAT   = 0;
            }

            m_invoiceExtra.Extras = facInvoiceExtra.GetExtraCollectionForExtraIds(Convert.ToString(ViewState["ExtraIdCSV"]));

            int     vatNo = 0, vatType;
            decimal vatRate = 0.00M;

            vatType = int.Parse(cboVATType.SelectedValue);

            // Vat Rate and Vat Type
            Facade.IInvoice facInv = new Facade.Invoice();
            facInv.GetVatRateForVatType((eVATType)vatType, m_invoiceExtra.InvoiceDate, out vatNo, out vatRate);
            m_invoiceExtra.VatRate = vatRate;
            m_invoiceExtra.VatNo   = vatNo;

            if (chkPostToExchequer.Checked)
            {
                m_invoiceExtra.Posted = true;
            }
            else
            {
                m_invoiceExtra.Posted = false;
            }

            if (chkDelete.Checked)
            {
                m_invoiceExtra.ForCancellation = true;
            }
            else
            {
                m_invoiceExtra.ForCancellation = false;
            }
        }
        private void LoadInvoiceExtra()
        {
            if (ViewState["InvoiceExtra"] == null)
            {
                Facade.IInvoiceExtra facInvoiceExtra = new Facade.Invoice();
                m_invoiceExtra            = facInvoiceExtra.GetInvoiceExtraForInvoiceId(Convert.ToInt32(ViewState["InvoiceId"]));
                ViewState["InvoiceExtra"] = m_invoiceExtra;
            }
            else
            {
                m_invoiceExtra = (Entities.InvoiceExtra)ViewState["InvoiceExtra"];
            }

            lblClient.Text = GetInvoiceClient();
            rdiInvoiceDate.SelectedDate = m_invoiceExtra.InvoiceDate;
            rdiInvoiceDate.Enabled      = !m_invoiceExtra.Posted;
            lblInvoiceNo.Text           = m_invoiceExtra.InvoiceId.ToString();
            lblInvoiceNo.ForeColor      = Color.Black;
            txtInvoiceDetails.Text      = m_invoiceExtra.InvoiceDetails;
            lblDateCreated.Text         = m_invoiceExtra.CreatedDate.ToString("dd/MM/yy");
            lblDateCreated.ForeColor    = Color.Black;



            cboNominalCode.Enabled = !m_invoiceExtra.Posted;

            if (m_isUpdate)
            {
                foreach (Entities.Extra extra in m_invoiceExtra.Extras)
                {
                    if (!(m_extraIdCSV == string.Empty))
                    {
                        m_extraIdCSV += ",";
                    }
                    m_extraIdCSV += extra.ExtraId;
                }
            }

            if (m_invoiceExtra.OverrideTotalAmountNet != 0)
            {
                chkOverrideAmount.Checked  = true;
                pnlOverrideAmounts.Visible = true;

                txtReasonForOverride.Text   = m_invoiceExtra.OverrideReason;
                txtOverrideAmountGross.Text = m_invoiceExtra.OverrideTotalAmountGross.ToString();
                txtOverrideAmountNet.Text   = m_invoiceExtra.OverrideTotalAmountNet.ToString();
                txtOverrideAmountVAT.Text   = m_invoiceExtra.OverrideTotalAmountVAT.ToString();
            }

            if (m_isUpdate)
            {
                if (m_invoiceExtra.ForCancellation)
                {
                    btnAddUpdateInvoice.Visible = false;
                    btnSendToAccounts.Visible   = false;
                    chkPostToExchequer.Visible  = false;
                    chkDelete.Checked           = true;
                }
                else
                {
                    btnAddUpdateInvoice.Visible = true;
                    btnSendToAccounts.Visible   = true;
                    chkPostToExchequer.Visible  = true;
                    chkDelete.Checked           = false;
                }
            }
            else
            {
                chkPostToExchequer.Visible = true;
            }

            btnAddUpdateInvoice.Visible = true;
            btnAddUpdateInvoice.Text    = "Update";

            if (m_invoiceExtra.Posted)
            {
                btnAddUpdateInvoice.Visible   = false;
                btnSendToAccounts.Visible     = false;
                chkPostToExchequer.Checked    = true;
                pnlInvoiceDeleted.Visible     = false;
                chkDelete.Visible             = false;
                txtAmountGross.Enabled        = false;
                txtAmountNet.Enabled          = false;
                txtInvoiceDetails.Enabled     = false;
                txtInvoiceDetails.Enabled     = false;
                chkIncludeExtraDetail.Enabled = false;
                chkOverrideAmount.Enabled     = false;

                pnlOverrideAmounts.Enabled      = false;
                chkIncludeInvoiceDetail.Enabled = false;

                btnViewInvoice.Visible = false;
            }
            else
            {
                btnAddUpdateInvoice.Visible = true;
                btnSendToAccounts.Visible   = true;
                chkPostToExchequer.Checked  = false;
                pnlInvoiceDeleted.Visible   = true;
                chkDelete.Visible           = true;
            }

            ViewState["ExtraIdCSV"] = m_extraIdCSV;
        }