private bool UpdateInvoice(Entities.Invoice invoice)
        {
            int clientID = 0;

            Facade.IInvoice         facInvoice         = new Facade.Invoice();
            Facade.IInvoiceOneLiner facInvoiceOneLiner = new Facade.Invoice();
            bool    retVal = false;
            DataSet dsClientID;

            string userName = ((Entities.CustomPrincipal)Page.User).UserName;

            //GetClientForOneLinerInvoiceId should work for most invoice types, where as GetClientInvoiceId only works for groupage invoices
            if (invoice.InvoiceType == eInvoiceType.Normal)
            {
                dsClientID = facInvoice.GetClientForInvoiceId(invoice.InvoiceId);
            }
            else
            {
                dsClientID = facInvoiceOneLiner.GetClientForOneLinerInvoiceId(invoice.InvoiceId);
            }


            int.TryParse(dsClientID.Tables[0].Rows[0]["ClientId"].ToString(), out clientID);

            retVal = facInvoice.Update(invoice, clientID, userName);

            return(retVal);
        }
        private void UpdateInvoiceExtra()
        {
            m_invoiceExtra.InvoiceDate = this.rdiInvoiceDate.SelectedDate.Value;
            m_invoiceExtra.NominalCode = cboNominalCode.SelectedValue;

            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 (chkDelete.Checked)
            {
                m_invoiceExtra.ForCancellation = true;
            }
            else
            {
                m_invoiceExtra.ForCancellation = false;
            }
        }
        private decimal GetInvoiceAmount()
        {
            Facade.IInvoiceExtra facInvoiceExtra = new Facade.Invoice();

            DataSet dsExtras = facInvoiceExtra.GetExtraDataSetForExtraIds(Convert.ToString(ViewState["ExtraIdCSV"]));

            m_invoiceAmount = 0;
            for (int i = 0; i < dsExtras.Tables[0].Rows.Count; i++)
            {
                m_invoiceAmount += Convert.ToDecimal(dsExtras.Tables[0].Rows[i]["ForeignAmount"]);
            }


            if (dsExtras.Tables[0].Rows.Count > 0)
            {
                if (dsExtras.Tables[0].Rows[0]["LCID"] == DBNull.Value || Convert.ToInt32(dsExtras.Tables[0].Rows[0]["LCID"]) == -1)
                {
                    this.SetCurrencyTextboxCulture(-1);
                }
                else
                {
                    this.SetCurrencyTextboxCulture(Convert.ToInt32(dsExtras.Tables[0].Rows[0]["LCID"]));
                }
            }

            return(m_invoiceAmount);
        }
Exemple #4
0
        ///	<summary>
        /// Add Invoice
        ///	</summary>
        private int AddInvoice()
        {
            int invoiceId = 0;

            Facade.IInvoiceOneLiner facInvoice = new Facade.Invoice();

            string userName = ((Entities.CustomPrincipal)Page.User).UserName;

            invoiceId = facInvoice.CreateOneLiner(m_Invoice, this.txtNETAmount.Culture.LCID, Convert.ToInt32(cboClient.SelectedValue), userName);

            if (invoiceId == 0)
            {
                lblConfirmation.Text      = "There was an error adding the Invoice, please try again.";
                lblConfirmation.Visible   = true;
                lblConfirmation.ForeColor = Color.Red;
            }
            else
            {
                // NO NEED: Alreayd done within the Data Access Layer.

                // Reference Invoice Id With Client
                //int clientId = Convert.ToInt32(cboClient.SelectedValue);
                //Facade.IInvoiceOneLiner facInv = new Facade.Invoice();
                //facInv.CreateInvoiceIdWithClientId(invoiceId, clientId);
                // Done in the Data Access Layer.
            }

            return(invoiceId);
        }
Exemple #5
0
        ///	<summary>
        /// Update Invoice
        ///	</summary>
        private bool UpdateInvoice()
        {
            Facade.IInvoice         facInvoice         = new Facade.Invoice();
            Facade.IInvoiceOneLiner facInvoiceOneLiner = new Facade.Invoice();

            bool   retVal   = false;
            string userName = ((Entities.CustomPrincipal)Page.User).UserName;

            using (TransactionScope ts = new TransactionScope())
            {
                DataSet dsClientID;
                int     clientID;

                //GetClientForOneLinerInvoiceId should work for most invoice types, where as GetClientInvoiceId only works for groupage invoices
                if (m_Invoice.InvoiceType == eInvoiceType.Normal)
                {
                    dsClientID = facInvoice.GetClientForInvoiceId(m_Invoice.InvoiceId);
                }
                else
                {
                    dsClientID = facInvoiceOneLiner.GetClientForOneLinerInvoiceId(m_Invoice.InvoiceId);
                }


                int.TryParse(dsClientID.Tables[0].Rows[0]["ClientId"].ToString(), out clientID);

                retVal = facInvoiceOneLiner.UpdateOneLiner(m_Invoice, this.txtNETAmount.Culture.LCID, clientID, userName);

                ts.Complete();
            }

            return(retVal);
        }
        private void LoadGrid()
        {
            int      clientId  = 0;
            DateTime startDate = DateTime.MinValue;
            DateTime endDate   = DateTime.MinValue;

            // Client
            if (cboSubContractor.Text != "")
            {
                clientId = Convert.ToInt32(cboSubContractor.SelectedValue);
            }

            // Date Range
            if (dteStartDate.SelectedDate != DateTime.MinValue)
            {
                startDate = dteStartDate.SelectedDate.Value;
            }

            if (dteEndDate.SelectedDate != DateTime.MinValue)
            {
                endDate = dteEndDate.SelectedDate.Value;
            }

            bool posted = false;

            // Get Jobs to Invoice
            Facade.IInvoiceSubContrator facInvoice = new Facade.Invoice();
            DataSet dsInvoicing;

            if (startDate != DateTime.MinValue || endDate != DateTime.MinValue)
            {
                dsInvoicing = facInvoice.GetSubContractorJobswithParamsAndDate(clientId, 0, posted, startDate, endDate);
            }
            else
            {
                dsInvoicing = facInvoice.GetSubContractorJobswithParams(clientId, 0, posted);
            }

            // Load List
            dvJobs.DataSource = dsInvoicing;

            DataView invoicableJobs = new DataView(dsInvoicing.Tables[0]);

            Session[C_EXPORTCSV_VS] = invoicableJobs.Table;

            // Bind jobs to datagrid
            dvJobs.DataBind();
            lblJobCount.Text = "There are " + dsInvoicing.Tables[0].Rows.Count.ToString() + " sub contractors jobs ready to invoice.";

            pnlSubContractor.Visible = true;
            btnFilter.Visible        = true;
            btnFilter1.Visible       = true;
            btnClear.Visible         = true;
            btnClear1.Visible        = true;
            btnAssign.Visible        = cboSubContractor.SelectedValue != "";
            lblInvoiceNumber.Visible = cboSubContractor.SelectedValue != "";
            txtInvoiceNumber.Visible = cboSubContractor.SelectedValue != "";
        }
        private bool CheckFileExistance(string fileName)
        {
            bool fileExists = false;

            Facade.IInvoice facInv = new Facade.Invoice();
            fileExists = facInv.CheckFile(fileName);

            return(fileExists);
        }
Exemple #8
0
        protected void LoadInvoicePreparationProgress()
        {
            Facade.IInvoice facProgress = new Facade.Invoice();

            string userName = ((Entities.CustomPrincipal)Page.User).UserName;

            ClearFields();

            m_InvoicePreparation = facProgress.LoadInvoicePreparationProgress(userName);

            // Load Params If Entity Is Populated
            if (m_InvoicePreparation != null)
            {
                lblSaveProgressNotification.Visible   = true;
                lblSaveProgressNotification.ForeColor = Color.SeaGreen;
                lblSaveProgressNotification.Text      = "The progress of your last search has been loaded.  You can turn this off using the 'Clear Filter' button.";

                cboClient.SelectedValue = m_InvoicePreparation.ClientId.ToString();
                m_IdentityId            = Convert.ToInt32(m_InvoicePreparation.ClientId.ToString());
                Facade.IOrganisation facOrganisation = new Facade.Organisation();
                cboClient.Text = facOrganisation.GetForIdentityId(m_InvoicePreparation.ClientId).OrganisationName;

                dteStartDate.SelectedDate = m_InvoicePreparation.StartDate;
                dteEndDate.SelectedDate   = m_InvoicePreparation.EndDate;

                // Load Array List To Grid After Loaded
                jobIdCSV = m_InvoicePreparation.JobIdCSV; // ie: '234,234,233'

                hidSelectedJobs.Value = "," + jobIdCSV;

                if (jobIdCSV != null && jobIdCSV.Length > 0)
                {
                    m_selectedJobs.Clear();

                    string[] jobIds = jobIdCSV.Split(',');

                    foreach (string jobId in jobIds)
                    {
                        m_selectedJobs.Add(jobId);
                    }

                    LoadGrid();

                    btnSaveFilter.Visible = true;
                }
            }
            else
            {
                lblSaveProgressNotification.Visible   = true;
                lblSaveProgressNotification.ForeColor = Color.Red;
                lblSaveProgressNotification.Text      = "No filter progress found.";
                btnLoadFilter.Visible = false;
            }
        }
        private void PopulateStaticControls()
        {
            if (!m_isUpdate || rdiInvoiceDate.SelectedDate == null)
            {
                rdiInvoiceDate.SelectedDate = DateTime.Today;
            }

            chkIncludeInvoiceDetail.Checked = Globals.Configuration.ShowInvoiceDetailsOnInvoiceExtraByDefault;

            decimal invoiceAmountNet = GetInvoiceAmount();

            txtAmountNet.Text = invoiceAmountNet.ToString("N2");

            LoadVatTypes();

            // Vat Rate and Vat Type
            int     vatNo, vatType;
            decimal vatRate = 0m;

            vatType = int.Parse(cboVATType.SelectedValue);

            Facade.IInvoice facInv = new Facade.Invoice();
            facInv.GetVatRateForVatType((eVATType)vatType, this.rdiInvoiceDate.SelectedDate.Value, out vatNo, out vatRate);

            //This calculates the tax rate i.e 17.5% -> 17.5 / 100 = 0.175,
            //                                          0.175 + 1 = 1.175
            decimal invoiceAmountGross = invoiceAmountNet * ((vatRate / 100) + 1);

            txtAmountGross.Text = invoiceAmountGross.ToString("N2");

            Facade.INominalCode facNominalCode = new Facade.NominalCode();
            DataSet             dsNominalCode  = facNominalCode.GetAllActive();
            DataTable           dt             = dsNominalCode.Tables[0];
            DataRow             dr             = dt.NewRow();

            dr["NominalCode"] = "";
            dr["Description"] = "Please Select a Nominal Code";
            dt.Rows.InsertAt(dr, 0);

            cboNominalCode.DataSource     = dt;
            cboNominalCode.DataTextField  = "Description";
            cboNominalCode.DataValueField = "NominalCode";
            cboNominalCode.DataBind();
            cboNominalCode.Items[0].Selected = true;

            if (m_invoiceExtra != null && cboNominalCode.FindItemByValue(m_invoiceExtra.NominalCode) != null)
            {
                cboNominalCode.FindItemByValue(m_invoiceExtra.NominalCode).Selected = true;
            }

            lblClient.Text = GetInvoiceClient();
        }
        void grdUninvoiceExtras_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
        {
            if (AllUninvoicedWorkForOrganisation != null)
            {
                this.divUnInvoicedExtras.Style["Display"] = String.Empty;
                Facade.IInvoiceExtra facInvoiceExtra = new Facade.Invoice();
                int identityID = 0;
                int.TryParse(cboClient.SelectedValue, out identityID);

                DataSet dsUnInvoiceExtras = facInvoiceExtra.GetAllUninvoicedExtras(identityID, this.rdiStartDate.SelectedDate.Value, this.rdiEndDate.SelectedDate.Value);
                this.grdUninvoiceExtras.DataSource = dsUnInvoiceExtras;
            }
        }
Exemple #11
0
        private void CombinePDFs()
        {
            // Load the Invoices to get the reference to the Invoice PDF
            List <Entities.Invoice> invoices = new List <Orchestrator.Entities.Invoice>();

            Facade.IInvoice facInvoice = new Facade.Invoice();
            foreach (int id in InvoiceIDs)
            {
                invoices.Add(facInvoice.GetForInvoiceId(id));
            }


            PdfDocument combinedPDF = new PdfDocument();
            PdfDocument pdf;

            // Combine the PDFS into a single document
            foreach (var invoice in invoices)
            {
#if DEBUG
                using (FileStream fs = File.OpenRead(ConfigurationManager.AppSettings["GeneratedPDFRoot"] + invoice.PDFLocation))
                {
                    pdf = PdfReader.Open(fs, PdfDocumentOpenMode.Import);
                }
#else
                using (FileStream fs = File.OpenRead(Server.MapPath(invoice.PDFLocation)))
                {
                    pdf = PdfReader.Open(fs, PdfDocumentOpenMode.Import);
                }
#endif
                foreach (PdfPage page in pdf.Pages)
                {
                    combinedPDF.AddPage(page);
                }
            }

            // Stream this to the IFrame
            Response.Clear();
            Response.ClearContent();
            Response.ClearHeaders();
            Response.Buffer      = true;
            Response.ContentType = "application/pdf";

            // this makes a new window appear: Response.AddHeader("content-disposition","attachment; filename=MyPDF.PDF");
            Response.AddHeader("content-disposition", "inline; filename=Invoices.PDF");

            MemoryStream binaryData = new MemoryStream();
            combinedPDF.Save(binaryData);

            Response.BinaryWrite(binaryData.ToArray());
        }
        void btnConfirm_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                Facade.IInvoiceBatches facInvoiceBatches = new Facade.Invoice();

                if (facInvoiceBatches.UpdateInvoiceDate(m_batchId, dteInvoiceDate.SelectedDate.Value, ((Entities.CustomPrincipal)Page.User).UserName))
                {
                    mwhelper.CausePostBack = false;
                    mwhelper.OutputData    = dteInvoiceDate.SelectedDate.Value.ToString("dd/MM/yyyy");
                    mwhelper.CloseForm     = true;
                }
            }
        }
        private void RemoveBatch(int batchId)
        {
            // Remove Batch From List and Reload The Invoice
            Facade.IInvoiceBatches facInv = new Facade.Invoice();

            string userId = ((Entities.CustomPrincipal)Page.User).UserName;

            bool success = facInv.Delete(batchId, userId);

            if (success)
            {
                LoadGrid();
                LoadBatchInvoices();
            }
        }
        protected void SavePreInvoice()
        {
            string userName = ((Entities.CustomPrincipal)Page.User).UserName;

            Facade.IInvoice facProgress = new Facade.Invoice();

            m_baseLocation     = (string)ViewState[C_BASE_LOCATION_VS];
            m_fileNameOnServer = (string)ViewState[C_FILE_NAME_ON_SERVER_VS];

            int clientId = 0;

            if (cboClient.SelectedValue != string.Empty)
            {
                clientId = Convert.ToInt32(cboClient.SelectedValue);
            }

            bool saved = false;

            // Check for file existance
            bool fileExists = false;

            if (m_fileNameOnServer != null)
            {
                fileExists = CheckFileExistance(m_fileNameOnServer);
            }

            if (!fileExists)
            {
                saved = facProgress.SavePreInvoice(m_baseLocation, m_fileNameOnServer, userName, clientId);

                if (saved)
                {
                    lblConfirmation.Text = "The file " + m_fileNameOnServer.ToString() + " was saved successfully";
                }
                else
                {
                    lblConfirmation.Text = "The " + m_fileNameOnServer.ToString() + " file was not saved!";
                }

                lblConfirmation.Visible = true;
            }
            else
            {
                txtOutput.InnerHtml = "The file has already been saved.";
            }
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            Orchestrator.WebUI.Security.Authorise.EnforceAuthorisation(eSystemPortion.Invoicing);

            if (!IsPostBack)
            {
                // Check whether the user has any previous pre-invoices to sort
                string userName = ((Entities.CustomPrincipal)Page.User).UserName;

                Facade.IInvoice facInv = new Facade.Invoice();

                m_dsPrevious = facInv.GetPreviousPreInvoiceForUserName(userName);

                if (m_dsPrevious.Tables[0].Rows != null)
                {
                    if (m_dsPrevious.Tables[0].Rows.Count != 0)
                    {
                        btnReload.Visible = true;

                        ViewState[C_BASE_LOCATION_VS]       = m_dsPrevious.Tables[0].Rows[0]["FileLocation"].ToString();
                        ViewState[C_FILE_NAME_ON_SERVER_VS] = m_dsPrevious.Tables[0].Rows[0]["FileName"].ToString();

                        string filename = m_dsPrevious.Tables[0].Rows[0]["FileName"].ToString();
                        cboClient.Text          = m_dsPrevious.Tables[0].Rows[0]["OrganisationName"].ToString();
                        cboClient.SelectedValue = m_dsPrevious.Tables[0].Rows[0]["ClientId"].ToString();

                        m_dsPrevious = LoadFileToDataSet(m_dsPrevious.Tables[0].Rows[0]["FileLocation"].ToString(), m_dsPrevious.Tables[0].Rows[0]["FileName"].ToString());

                        if (m_dsPrevious != null)
                        {
                            CompareFileWithHMS(m_dsPrevious);
                        }

                        if (dgJobDiscrepancies.Items.Count != 0)
                        {
                            txtOutput.InnerHtml = "The previous invoice (<b>" + filename.ToString() + "</b>) has been loaded as the discrepancies required attention.";
                        }
                    }
                }
            }
            else
            {
                m_baseLocation     = (string)ViewState[C_BASE_LOCATION_VS];
                m_fileNameOnServer = (string)ViewState[C_FILE_NAME_ON_SERVER_VS];
            }
        }
        private string GetInvoiceClient()
        {
            if (m_isUpdate)
            {
                Facade.IInvoiceExtra facInvoiceExtra = new Facade.Invoice();
                DataSet dsClient = facInvoiceExtra.GetClientForInvoiceExtraId(Convert.ToInt32(ViewState["InvoiceId"]));

                m_identityId            = Convert.ToInt32(dsClient.Tables[0].Rows[0]["IdentityId"]);
                ViewState["IdentityId"] = m_identityId;

                return(dsClient.Tables[0].Rows[0]["OrganisationName"].ToString());
            }
            else
            {
                Facade.IOrganisation facOrganisation = new Facade.Organisation();
                return(facOrganisation.GetNameForIdentityId(m_identityId));
            }
        }
        void cboVATType_SelectedIndexChanged(object sender, EventArgs e)
        {
            int     vatNo, vatType;
            decimal vatRate = 0m, invoiceAmountNet = 0m, invoiceAmountGross = 0m;

            Facade.IInvoice facInv = new Facade.Invoice();

            // Get current Net amount.
            invoiceAmountNet = txtAmountNet.Value.HasValue ? (decimal)txtAmountNet.Value.Value : 0m;

            vatType = int.Parse(cboVATType.SelectedValue);

            // Get the VAT rate for the newly selected VAT Type.
            facInv.GetVatRateForVatType((eVATType)vatType, this.rdiInvoiceDate.SelectedDate.Value, out vatNo, out vatRate);

            // Update the Gross Amount.
            invoiceAmountGross  = invoiceAmountNet * ((vatRate / 100) + 1);
            txtAmountGross.Text = invoiceAmountGross.ToString("N2");
        }
        private DataSet GetData()
        {
            #region Configure Parameters

            int clientId = 0;
            try
            {
                clientId = Convert.ToInt32(cboClient.SelectedValue);
            }
            catch { }

            int invoiceTypeId = 0;
            try
            {
                eInvoiceType invoiceType = (eInvoiceType)Enum.Parse(typeof(eInvoiceType), cboInvoiceType.SelectedValue.Replace(" ", ""));
                invoiceTypeId = (int)invoiceType;
            }
            catch { }

            DateTime startDate = dteInvoiceStartDate.SelectedDate.Value;
            startDate = startDate.Subtract(startDate.TimeOfDay);

            DateTime endDate = dteInvoiceEndDate.SelectedDate.Value;
            endDate = endDate.Subtract(endDate.TimeOfDay);
            endDate = endDate.Add(new TimeSpan(23, 59, 59));

            int dateType = int.Parse(rblDateType.SelectedValue);

            int?invoiceID = null;
            try
            {
                invoiceID = Convert.ToInt32(txtInvoiceId.Text);
            }
            catch { }

            bool showCancelled = chkShowCancelled.Checked;
            bool showPosted    = chkShowPosted.Checked;

            #endregion

            Facade.IInvoice facInvoice = new Facade.Invoice();
            return(facInvoice.GetInvoicesForAuditTrail(clientId, invoiceTypeId, dateType, startDate, endDate, showCancelled, showPosted, invoiceID));
        }
        void btnExportToCSVWithDetail_Click(object sender, EventArgs e)
        {
            var selectedInvoiceIds = GetSelectedInvoiceIds();

            if (selectedInvoiceIds.Any())
            {
                Facade.IInvoice facInvoice = new Facade.Invoice();
                var             invoiceIDs = string.Empty;
                foreach (int i in selectedInvoiceIds)
                {
                    invoiceIDs += i.ToString() + ",";
                }
                invoiceIDs = invoiceIDs.Substring(0, invoiceIDs.Length - 1);

                DataSet ds = facInvoice.GetForExportWithDetail(invoiceIDs);

                Session["__ExportDS"] = ds.Tables[0];
                Server.Transfer("../Reports/csvexport.aspx?filename=InvoiceAudit.csv");
            }
        }
        ///	<summary>
        /// Add Invoice
        ///	</summary>
        private int AddInvoice()
        {
            int invoiceId = 0;

            Facade.IInvoice facInvoice = new Facade.Invoice();

            string userName = ((Entities.CustomPrincipal)Page.User).UserName;

            // m_jobIdCSV = (string) ViewState[C_JOBIDCSV_VS];

            // invoiceId = facInvoice.Create(m_Invoice, userName);

            if (invoiceId == 0)
            {
                lblNote.Text      = "There was an error adding the Invoice, please try again.";
                lblNote.Visible   = true;
                lblNote.ForeColor = Color.Red;
            }

            return(invoiceId);
        }
        private void DisplayInvoiceAuditReport(int invoiceId)
        {
            // Cause the report to be displayed containing the job information for the specified invoice.
            Facade.IInvoice facInvoice     = new Facade.Invoice();
            DataSet         dsInvoiceAudit = facInvoice.GetInvoiceContents(invoiceId);

            // Configure the report settings collection
            NameValueCollection reportParams = new NameValueCollection();

            // Configure the Session variables used to pass data to the report
            Session[Orchestrator.Globals.Constants.ReportTypeSessionVariable]       = eReportType.InvoiceContents;
            Session[Orchestrator.Globals.Constants.ReportDataSessionTableVariable]  = dsInvoiceAudit;
            Session[Orchestrator.Globals.Constants.ReportDataSessionSortVariable]   = String.Empty;
            Session[Orchestrator.Globals.Constants.ReportDataMemberSessionVariable] = "Table";

            // Setting the identity id of the report allows us to configure the fax and email boxes suitably.
            if (cboClient.SelectedValue != "")
            {
                reportViewer.IdentityId = Convert.ToInt32(cboClient.SelectedValue);
            }
            reportViewer.Visible = true;
        }
Exemple #22
0
        private void performSubContractorSearch()
        {
            Facade.IInvoiceSubContrator facInvoice = new Facade.Invoice();

            int posted = 0;

            switch ((eWithOrWithout)Enum.Parse(typeof(eWithOrWithout), rdoPosted.SelectedValue))
            {
            case eWithOrWithout.All:
                posted = 2;
                break;

            case eWithOrWithout.With:
                posted = 1;
                break;

            case eWithOrWithout.Without:
                posted = 0;
                break;
            }

            int clientId = cboSubContractor.SelectedValue == "" ? 0 : Convert.ToInt32(cboSubContractor.SelectedValue);

            string clientInvoiceNumber = String.Empty;

            if (txtClientInvoiceNumber.Text != string.Empty)
            {
                clientInvoiceNumber = txtClientInvoiceNumber.Text;
            }

            DateTime startDate = DateTime.MinValue;
            DateTime endDate   = DateTime.MinValue;

            if (dteStartDate.SelectedDate.HasValue)
            {
                startDate = dteStartDate.SelectedDate.Value;
                startDate = startDate.Subtract(startDate.TimeOfDay);
            }

            if (dteEndDate.SelectedDate.HasValue)
            {
                endDate = dteEndDate.SelectedDate.Value;
                endDate = endDate.Subtract(endDate.TimeOfDay);
                endDate = endDate.Add(new TimeSpan(23, 59, 59));
            }

            // Job State
            eJobState jobState = new eJobState();

            if (cboJobState.SelectedValue != string.Empty)
            {
                jobState = (eJobState)Enum.Parse(typeof(eJobState), cboJobState.SelectedValue);
            }

            if (startDate != DateTime.MinValue && endDate != DateTime.MinValue)
            {
                dsInvoice = facInvoice.GetSubContractorswithParamsAndDate(clientId, clientInvoiceNumber, jobState, posted, startDate, endDate, eInvoiceType.SubContract);
            }
            else
            {
                if (clientId == 0)
                {
                    dsInvoice = facInvoice.GetSubContractors(posted, eInvoiceType.SubContract);
                }
                else
                {
                    dsInvoice = facInvoice.GetSubContractorswithParams(clientId, clientInvoiceNumber, jobState, posted, eInvoiceType.SubContract);
                }
            }

            gvSubContratorInvoice.DataSource = dsInvoice;

            ViewState[C_InvoiceDATA_VS] = dsInvoice;

            gvSubContratorInvoice.DataBind();


            if (gvSubContratorInvoice.Rows.Count == 0)
            {
                pnlSubContractorInvoice.Visible = false;
                lblNote.Text      = "There are no invoices for the given criteria.";
                lblNote.ForeColor = Color.Red;
                lblNote.Visible   = true;
            }
            else
            {
                pnlSubContractorInvoice.Visible = true;
            }

            lblClientInvoiceNumber.Visible = txtClientInvoiceNumber.Visible = true;
        }
        private void LoadGrid()
        {
            int       clientId  = 0;
            DateTime  startDate = DateTime.MinValue;
            DateTime  endDate   = DateTime.MinValue;
            eJobState jobState  = new eJobState();

            Facade.IOrganisation  facOrg = new Facade.Organisation();
            Entities.Organisation enOrg  = new Entities.Organisation();

            // Client
            if (cboClient.Text != "")
            {
                clientId          = Convert.ToInt32(cboClient.SelectedValue);
                pnlFilter.Visible = true;
            }

            if (cboClient.SelectedValue != "")
            {
                clientId          = Convert.ToInt32(cboClient.SelectedValue);
                enOrg             = facOrg.GetForIdentityId(Convert.ToInt32(cboClient.SelectedValue));
                cboClient.Text    = enOrg.OrganisationName;
                pnlFilter.Visible = true;
            }
            //else
            //    pnlFilter.Visible = false;

            // Date Range
            if (dteStartDate.SelectedDate != DateTime.MinValue)
            {
                startDate = dteStartDate.SelectedDate.Value;
                startDate = startDate.Subtract(startDate.TimeOfDay);
            }

            if (dteEndDate.SelectedDate != DateTime.MinValue)
            {
                endDate = dteEndDate.SelectedDate.Value;
                endDate = endDate.Subtract(endDate.TimeOfDay);
                endDate = endDate.Add(new TimeSpan(23, 59, 59));
            }

            // Get Jobs to Invoice
            Facade.IInvoice facInvoice = new Facade.Invoice();
            DataSet         dsInvoicing;

            bool posted = false;

            if (startDate != DateTime.MinValue || endDate != DateTime.MinValue)
            {
                dsInvoicing = facInvoice.GetJobsToInvoiceWithParamsAndDate(clientId, jobState, posted, startDate, endDate);
            }
            else
            {
                if (clientId == 0)
                {
                    dsInvoicing = facInvoice.GetAllJobsToInvoice();
                }
                else
                {
                    dsInvoicing = facInvoice.GetJobsToInvoiceWithParams(clientId, jobState, posted);
                }
            }

            // Check whether account is on hold
            if (dsInvoicing.Tables[0].Rows.Count > 0)
            {
                if (Convert.ToInt32(dsInvoicing.Tables[0].Rows[0]["OnHold"]) == 1)
                {
                    dlJob.Enabled = false;

                    if (string.IsNullOrEmpty(cboClient.Text))
                    {
                        lblOnHold.Visible = true;
                        lblOnHold.Text    = "Client accounts are on hold, please update their on-hold status in order to raise invoices.</A>";
                    }
                    else
                    {
                        lblOnHold.Visible = true;
                        lblOnHold.Text    = cboClient.Text + "'s account has been put on hold, please go to <A HREF=../Organisation/addupdateorganisation.aspx?IdentityId=" + Convert.ToInt32(cboClient.SelectedValue) + ">" + cboClient.Text + "'s details to change.</A>";
                    }
                }
                else
                {
                    lblOnHold.Visible = false;
                }

                dlJob.Visible = true;
            }
            else
            {
                lblOnHold.Visible = true;
                lblOnHold.Text    = "With the given parameters no jobs have been found.";
                dlJob.Visible     = false;
            }

            DataView dvInvoice = new DataView(dsInvoicing.Tables[0]);

            // Sort By
            foreach (ListItem sortField in rdoSortType.Items)
            {
                if (sortField.Selected)
                {
                    dvInvoice.Sort = sortField.Text.Replace(" ", "");
                }
            }

            // Load List
            dlJob.DataSource = dvInvoice;

            dlJob.DataBind();

            lblJobCount.Text = "There are " + dlJob.Items.Count.ToString() + " jobs ready to invoice.";

            pnlNormalJob.Visible = true;
            btnFilter.Visible    = true;
            btnFilter1.Visible   = true;
            btnClear.Visible     = true;
            btnClear1.Visible    = true;
            pnlSort.Visible      = true;
            lblJobCount.Visible  = true;
        }
        protected bool GenerateBatch()
        {
            bool success = true;

            NameValueCollection clients = new NameValueCollection();
            NameValueCollection batchNo = new NameValueCollection();

            foreach (DataListItem item in dlJob.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    string batchId    = ((TextBox)item.FindControl("txtBatchNo")).Text;
                    string jobId      = ((LinkButton)item.FindControl("lnkJobId")).Text;
                    string identityId = ((HtmlInputHidden)item.FindControl("hidIdentityId")).Value;

                    if (batchId != String.Empty)
                    {
                        HtmlImage imgError   = (HtmlImage)item.FindControl("imgError");
                        TextBox   txtBatchNo = (TextBox)item.FindControl("txtBatchNo");

                        // Check whether this is a new batch and if
                        // so make sure the job added is from the same client
                        if (m_batches.Get(batchId) == null)
                        {
                            m_batches.Add(batchId, jobId);
                            clients.Add(batchId, identityId);
                            batchNo.Add(batchId, batchId);
                            imgError.Visible     = false;
                            txtBatchNo.BackColor = Color.White;
                            txtBatchNo.ToolTip   = string.Empty;
                        }
                        else
                        {
                            if (identityId == clients.Get(batchId))
                            {
                                m_batches.Set(batchId, m_batches.Get(batchId) + "," + jobId);
                                imgError.Visible     = false;
                                txtBatchNo.BackColor = Color.White;
                                txtBatchNo.ToolTip   = string.Empty;
                            }
                            else
                            {
                                txtBatchNo.BackColor = Color.Red;
                                txtBatchNo.ToolTip   = imgError.Alt;
                                imgError.Visible     = true;
                                success = false;
                            }
                        }
                    }
                }
            }

            if (!success)
            {
                return(success);
            }

            // Record batches that have been successful
            Facade.IInvoiceBatches facInv = new Facade.Invoice();
            bool   marker = false;
            string userId = ((Entities.CustomPrincipal)Page.User).UserName;

            for (int i = 0; i < m_batches.Count; i++)
            {
                int    batchId = Convert.ToInt32(batchNo[i].ToString());
                string jobIds  = m_batches[i].ToString();

                // Check whether these are OLD or NEW invoice batches either create or update
                bool exists = facInv.CheckBatchExists(batchId);

                if (exists)
                {
                    facInv.Update(batchId, jobIds, userId); // UPDATE If it has a Batch Id
                    marker = true;
                }
                else
                {
                    Entities.FacadeResult result = facInv.Create(batchId, jobIds, userId); // CREATE If it hasn't an Id

                    if (result.Success)
                    {
                        marker = true;
                    }
                    else
                    {
                        infringementDisplay.Infringements = result.Infringements;
                        infringementDisplay.DisplayInfringments();

                        marker = false;
                    }
                }
            }

            return(marker);
        }
Exemple #25
0
        protected void SaveInvoicePreparationProgress()
        {
            string userName = ((Entities.CustomPrincipal)Page.User).UserName;

            Facade.IInvoice facProgress = new Facade.Invoice();

            if (ViewState["invoicePreparation"] == null)
            {
                m_InvoicePreparation = new Entities.InvoicePreparation();
            }
            else
            {
                m_InvoicePreparation = (Entities.InvoicePreparation)ViewState["invoicePreparation"];
            }

            // Params
            if (cboClient.SelectedValue != "")
            {
                m_InvoicePreparation.ClientId = Convert.ToInt32(cboClient.SelectedValue);
            }

            if (dteStartDate.SelectedDate == DateTime.MinValue)
            {
                m_InvoicePreparation.StartDate = DateTime.MinValue;
            }
            else
            {
                m_InvoicePreparation.StartDate = dteStartDate.SelectedDate.Value;
            }

            if (dteEndDate.SelectedDate == DateTime.MinValue)
            {
                m_InvoicePreparation.EndDate = DateTime.MinValue;
            }
            else
            {
                m_InvoicePreparation.EndDate = dteEndDate.SelectedDate.Value;
            }

            m_selectedJobs = GetJobsSelected();
            m_InvoicePreparation.JobIdCSV = hidSelectedJobs.Value;
            m_InvoicePreparation.JobState = ((eJobState)cboJobState.SelectedIndex + 1);
            m_InvoicePreparation.UserName = userName;

            bool saved = false;

            if (dteStartDate.SelectedDate == DateTime.MinValue || dteEndDate.SelectedDate == DateTime.MinValue)
            {
                saved = facProgress.SaveInvoicePreparationProgress(m_InvoicePreparation);
            }
            else
            {
                saved = facProgress.SaveInvoicePreparationProgressWithDates(m_InvoicePreparation);
            }

            if (saved)
            {
                lblSaveProgressNotification.Visible   = true;
                lblSaveProgressNotification.ForeColor = Color.Blue;
                lblSaveProgressNotification.Text      = "You have successfully saved the progress filter.";
                LoadGrid();
            }
            else
            {
                lblSaveProgressNotification.Visible   = true;
                lblSaveProgressNotification.ForeColor = Color.Red;
                lblSaveProgressNotification.Text      = "The unable to save the progress filter.";
            }
        }
Exemple #26
0
        private void LoadGrid()
        {
            int       clientId  = 0;
            DateTime  startDate = DateTime.MinValue;
            DateTime  endDate   = DateTime.MinValue;
            eJobState jobState  = new eJobState();

            // Client
            if (cboClient.Text != "")
            {
                clientId = Convert.ToInt32(cboClient.SelectedValue);
            }

            // Job State
            if (cboJobState.SelectedValue != string.Empty)
            {
                jobState = (eJobState)Enum.Parse(typeof(eJobState), cboJobState.SelectedValue.Replace(" ", ""));
            }

            // Date Range
            if (dteStartDate.SelectedDate != DateTime.MinValue)
            {
                startDate = dteStartDate.SelectedDate.Value;
                startDate = startDate.Subtract(startDate.TimeOfDay);
            }

            if (dteEndDate.SelectedDate != DateTime.MinValue)
            {
                endDate = dteEndDate.SelectedDate.Value;
                endDate = endDate.Subtract(endDate.TimeOfDay);
                endDate = endDate.Add(new TimeSpan(23, 59, 59));
            }

            // Get Jobs to Invoice
            Facade.IInvoice facInvoice = new Facade.Invoice();
            DataSet         dsInvoicing;

            bool posted = false;

            if (startDate != DateTime.MinValue || endDate != DateTime.MinValue)
            {
                dsInvoicing = facInvoice.GetJobsToInvoiceWithParamsAndDate(clientId, jobState, posted, startDate, endDate);
            }
            else
            {
                if (clientId == 0)
                {
                    dsInvoicing = facInvoice.GetAllJobsToInvoice();
                }
                else
                {
                    dsInvoicing = facInvoice.GetJobsToInvoiceWithParams(clientId, jobState, posted);
                }
            }

            // Check whether account is on hold
            if (dsInvoicing.Tables.Count > 0)
            {
                if (dsInvoicing.Tables[0].Rows.Count > 0)
                {
                    if (Convert.ToInt32(dsInvoicing.Tables[0].Rows[0]["OnHold"]) == 1)
                    {
                        dgJobs.Enabled    = false;
                        lblOnHold.Visible = true;
                        lblOnHold.Text    = cboClient.Text + "'s account has been put on hold, please go to <A HREF=../Organisation/addupdateorganisation.aspx?IdentityId=" + Convert.ToInt32(cboClient.SelectedValue) + ">" + cboClient.Text + "'s details to change.</A>";
                    }
                    else
                    {
                        lblOnHold.Visible = false;
                    }

                    dgJobs.Visible = true;
                }
                else
                {
                    lblOnHold.Visible    = true;
                    lblOnHold.Text       = "With the given parameters no jobs have been found.";
                    dgJobs.Visible       = false;
                    pnlNormalJob.Visible = false;
                    lblClient.Text       = "Client";
                    cboClient.Visible    = true;
                }

                // Put in dummy checkbox column
                dsInvoicing.Tables[0].Columns.Add("Include", typeof(Boolean));

                // Sort By
                DataView dvInvoice = new DataView(dsInvoicing.Tables[0]);

                if (chkOnlyShowTicked.Checked)
                {
                    if (m_selectedJobs.Count != 0)
                    {
                        dvInvoice.RowFilter = "jobId IN (" + hidSelectedJobs.Value + ")";
                    }
                }
                // Load List
                dgJobs.DataSource = dvInvoice;

                if (cboClient.SelectedValue == String.Empty)
                {
                    dgJobs.GroupBy = "OrganisationName";
                }
                else
                {
                    dgJobs.Levels[0].AllowGrouping = false;
                    dgJobs.Levels[0].Columns["OrganisationName"].Visible = false;
                }

                Session[C_EXPORTCSV_VS] = dvInvoice;

                dgJobs.DataBind();

                // Check All Now We Have Filtered Down
                if (dgJobs.Items.Count >= 1)
                {
                    btnExport.Visible = true;
                    ComponentArt.Web.UI.GridItem griditemMyRow;
                    decimal jobTotal = 0.0M;
                    int     jobCount = 0;

                    for (int i = 0; i <= dgJobs.Items.Count - 1; i++)
                    {
                        griditemMyRow = dgJobs.Items[i];

                        if (chkOnlyShowTicked.Checked)
                        {
                            griditemMyRow["Include"] = true;
                            jobTotal += Decimal.Parse(griditemMyRow["ChargeAmount"].ToString());
                            jobCount++;
                        }
                        else
                        {
                            int jobId = 0;

                            jobId = Convert.ToInt32(griditemMyRow["JobId"]);

                            if (m_selectedJobs.Contains(jobId.ToString()))
                            {
                                griditemMyRow["Include"] = true;
                                jobTotal += Decimal.Parse(griditemMyRow["ChargeAmount"].ToString());
                                jobCount++;
                            }
                        }
                    }

                    if (jobCount != 0)
                    {
                        lblDetails.Text   = "You have selected " + jobCount + " job(s), and the total amount is " + jobTotal.ToString("C");
                        hidJobTotal.Value = jobTotal.ToString();
                        hidJobCount.Value = jobCount.ToString();
                    }
                    else
                    {
                        hidJobTotal.Value = hidJobCount.Value = "0";
                        lblDetails.Text   = "";
                    }
                }
            }
            else
            {
                btnExport.Visible    = false;
                lblOnHold.Visible    = true;
                lblOnHold.Text       = "With the given parameters no jobs have been found.";
                dgJobs.Visible       = false;
                pnlNormalJob.Visible = false;
                lblClient.Text       = "Client";
                cboClient.Visible    = true;
            }

            if (dgJobs.Items.Count >= 1)
            {
                if (cboClient.Text != "")
                {
                    chkMarkAll.Visible = true;

                    // If these jobs ready for invoice show Create Invoice Button (ONLY FOR READY-FOR-INVOICE)
                    if (jobState == eJobState.ReadyToInvoice)
                    {
                        btnCreateInvoice.Visible = btnCreateInvoice2.Visible = true;
                    }

                    dgJobs.Levels[0].Columns[1].Visible = true;
                    btnSaveFilter.Visible = true;
                }
                else
                {
                    //TODO: dgJobs.GroupBy[2].ToString();
                    dgJobs.Levels[0].Columns[1].Visible = false;
                }
            }

            lblJobCount.Text = "There are " + dgJobs.Items.Count.ToString() + " jobs ready to invoice.";

            pnlNormalJob.Visible = true;
            btnFilter.Visible    = btnFilter2.Visible = true;
            btnClear.Visible     = btnClear2.Visible = true;
        }
Exemple #27
0
        /// <summary>
        /// Load Report Depending On Invoice Type
        /// </summary>
        private ReportBase LoadReport()
        {
            // Configure the Session variables used to pass data to the report
            NameValueCollection reportParams = new NameValueCollection();

            //-------------------------------------------------------------------------------------
            //						Job/Collect-Drops/References/Demurrages Section
            //-------------------------------------------------------------------------------------
            Facade.IInvoice facInv = new Facade.Invoice();

            DataSet dsInv = null;

            if (m_isUpdate)
            {
                dsInv = facInv.GetJobsForInvoiceId(Convert.ToInt32(lblInvoiceNo.Text));
            }
            else
            {
                dsInv = facInv.GetJobsToInvoice(m_jobIdCSV);
            }

            reportParams.Add("JobIds", m_jobIdCSV);

            reportParams.Add("ExtraIds", m_extraIdCSV);

            //-------------------------------------------------------------------------------------
            //									Param Section
            //-------------------------------------------------------------------------------------
            // Fuel Type & Rate
            eInvoiceDisplayMethod fuelType;
            decimal newRate = 0;

            if (chkIncludeFuelSurcharge.Checked)
            {
                reportParams.Add("Fuel", "Include");

                // Pass The New Rate To Report if so...
                newRate = Convert.ToDecimal(txtFuelSurchargeRate.Text);
                reportParams.Add("FuelRate", newRate.ToString());

                // Pass FuelSurchargeType
                fuelType = (eInvoiceDisplayMethod)Enum.Parse(typeof(eInvoiceDisplayMethod), rdoFuelSurchargeType.SelectedValue);
                reportParams.Add("FuelType", fuelType.ToString());
            }

            // Override
            if (chkOverride.Checked)
            {
                reportParams.Add("Override", "Include");
                reportParams.Add("OverrideVAT", txtOverrideVAT.Text);
                reportParams.Add("OverrideNET", txtOverrideNetAmount.Text);
                reportParams.Add("OverrideGross", txtOverrideGrossAmount.Text);
                reportParams.Add("OverrideReason", txtOverrideReason.Text);
            }

            // PODs
            if (chkIncludePODs.Checked)
            {
                reportParams.Add("PODs", "Include");
            }

            // References
            if (chkIncludeReferences.Checked)
            {
                reportParams.Add("References", "Include");
            }

            // Job
            if (chkJobDetails.Checked)
            {
                reportParams.Add("JobDetails", "Include");

                // Demuragge
                if (chkIncludeDemurrage.Checked)
                {
                    reportParams.Add("Demurrage", "Include");

                    // Demurrage Type
                    try
                    {
                        eInvoiceDisplayMethod demurrageType = (eInvoiceDisplayMethod)Enum.Parse(typeof(eInvoiceDisplayMethod), rdoDemurrageType.SelectedValue);
                        reportParams.Add("DemurrageType", demurrageType.ToString());
                    }
                    catch (Exception) { }
                }
            }

            if (pnlExtras.Visible)
            {
                reportParams.Add("ExtraIds", Convert.ToString(ViewState["ExtraIdCSV"]));
                reportParams.Add("Extras", "Include");
            }

            // Extra details
            if (chkExtraDetails.Visible && chkExtraDetails.Checked)
            {
                reportParams.Add("ExtraDetail", "include");
            }

            // Self Bill Invoice Number
            if ((eInvoiceType)Enum.Parse(typeof(eInvoiceType), lblInvoiceType.Text) == eInvoiceType.SelfBill)
            {
                reportParams.Add("InvoiceType", "SelfBill");
                reportParams.Add("SelfBillInvoiceNumber", txtClientSelfBillInvoiceNumber.Text);
            }
            else
            {
                reportParams.Add("InvoiceType", "Normal");
            }

            // Client Name & Id
            if (m_isUpdate)
            {
                Facade.IInvoice facClient = new Facade.Invoice();

                DataSet ds = facClient.GetClientForInvoiceId(Convert.ToInt32(lblInvoiceNo.Text));

                try
                {
                    reportParams.Add("Client", Convert.ToString(ds.Tables[0].Rows[0]["Client"]));
                    reportParams.Add("ClientId", Convert.ToString(ds.Tables[0].Rows[0]["ClientId"]));

                    m_clientId = int.Parse(ds.Tables[0].Rows[0]["ClientId"].ToString());

                    if (!chkPostToExchequer.Checked)
                    {
                        btnSendToAccounts.Visible = true;
                        pnlInvoiceDeleted.Visible = true;
                    }
                }
                catch
                {
                }
            }
            else
            {
                if (Convert.ToString(Session["ClientName"]) != "")
                {
                    reportParams.Add("Client", Convert.ToString(Session["ClientName"]));
                }

                if (Convert.ToString(Session["ClientId"]) != "")
                {
                    reportParams.Add("ClientId", Convert.ToString(Session["ClientId"]));
                }

                if (m_clientId == 0)
                {
                    m_clientId = int.Parse(Session["ClientId"].ToString());
                }
                else
                {
                    Facade.IOrganisation  facOrg = new Facade.Organisation();
                    Entities.Organisation enOrg  = new Entities.Organisation();
                    enOrg = facOrg.GetForIdentityId(m_clientId);
                    reportParams.Add("Client", enOrg.OrganisationName.ToString());
                    reportParams.Add("ClientId", m_clientId.ToString());
                }
            }

            // Date Range
            if (Convert.ToDateTime(Session["StartDate"]).Date != DateTime.MinValue)
            {
                reportParams.Add("startDate", Convert.ToDateTime(Session["StartDate"]).ToString("dd/MM/yy"));
            }

            if (Convert.ToDateTime(Session["EndDate"]).Date != DateTime.MinValue)
            {
                reportParams.Add("endDate", Convert.ToDateTime(Session["EndDate"]).ToString("dd/MM/yy"));
            }

            // Invoice Id
            if (lblInvoiceNo.Text != "To Be Issued ... (This invoice has not yet been saved, add invoice to allocate Invoice No.)")
            {
                reportParams.Add("invoiceId", lblInvoiceNo.Text);
            }
            else
            {
                reportParams.Add("invoiceId", "0");
            }

            // Posted To Accounts
            if (chkPostToExchequer.Checked)
            {
                reportParams.Add("Accounts", "true");
            }

            int     vatNo   = 0;
            decimal vatRate = 0.00M;

            // VAT Rate
            facInv.GetVatRateForVatType(eVATType.Standard, dteInvoiceDate.SelectedDate.Value, out vatNo, out vatRate);
            reportParams.Add("VATrate", vatRate.ToString());

            // Invoice Date
            reportParams.Add("InvoiceDate", dteInvoiceDate.SelectedDate.Value.ToShortDateString());

            //-------------------------------------------------------------------------------------
            //									Load Report Section
            //-------------------------------------------------------------------------------------
            Session[Orchestrator.Globals.Constants.ReportTypeSessionVariable]       = eReportType.Invoice;
            Session[Orchestrator.Globals.Constants.ReportDataSessionTableVariable]  = dsInv;
            Session[Orchestrator.Globals.Constants.ReportDataSessionSortVariable]   = rdoSortType.SelectedItem.Text.Replace(" ", "");
            Session[Orchestrator.Globals.Constants.ReportDataMemberSessionVariable] = "Table";
            Session[Orchestrator.Globals.Constants.ReportParamsSessionVariable]     = reportParams;

            Orchestrator.Reports.ReportBase activeReport = null;
            eReportType reportType = 0;

            reportType = (eReportType)Session[Orchestrator.Globals.Constants.ReportTypeSessionVariable];
            try
            {
                activeReport = new Orchestrator.Reports.Invoicing.rptInvoice();
            }
            catch (NullReferenceException e)
            {
                Response.Write(e.Message);
                Response.Flush();
                return(null);
            }

            if (activeReport != null)
            {
                try
                {
                    ApplicationLog.WriteTrace("Getting Data From Session Variable");
                    DataView view = null;
                    DataSet  ds   = (DataSet)Session[Orchestrator.Globals.Constants.ReportDataSessionTableVariable];

                    string sortExpression = (string)Session[Orchestrator.Globals.Constants.ReportDataSessionSortVariable];
                    ApplicationLog.WriteTrace("sortExpression ::" + sortExpression);
                    try
                    {
                        if (sortExpression.Length > 0)
                        {
                            view      = new DataView(ds.Tables[0]);
                            view.Sort = sortExpression;
                            activeReport.DataSource = view;
                        }
                        else
                        {
                            activeReport.DataSource = ds;
                        }

                        activeReport.DataMember = (string)Session[Orchestrator.Globals.Constants.ReportDataMemberSessionVariable];
                    }
                    catch (Exception eX)
                    {
                        this.Trace.Write("Err1:" + eX.Message);
                        ApplicationLog.WriteTrace("GetReport :: Err1:" + eX.Message);
                    }
                    activeReport.Document.Printer.PrinterName = string.Empty;
                    activeReport.Document.Printer.PaperKind   = System.Drawing.Printing.PaperKind.A4;
                    //activeReport.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.A4;
                    //activeReport.PrintWidth = activeReport.PageSettings.PaperWidth - (activeReport.PageSettings.Margins.Right + activeReport.PageSettings.Margins.Left);
                    activeReport.Run(false);
                }
                catch (Exception e)
                {
                    Response.Write(e.Message);
                    Response.Flush();
                    return(null);
                }
            }

            Session[Orchestrator.Globals.Constants.ReportSessionVariable] = activeReport;

            return(activeReport);
        }
Exemple #28
0
        ///	<summary>
        /// Load Invoice
        ///	</summary>
        private void LoadInvoice()
        {
            //if (ViewState["invoice"]==null)
            //{
            Facade.IInvoice      facInvoice      = new Facade.Invoice();
            Facade.IInvoiceExtra facInvoiceExtra = new Facade.Invoice();
            m_Invoice = facInvoice.GetForInvoiceId(m_InvoiceNo);

            if (m_Invoice.InvoiceType == eInvoiceType.SelfBill)
            {
                m_Invoice.Extras = facInvoiceExtra.GetExtraCollectionForInvoiceId(m_Invoice.InvoiceId);
            }

            ViewState["invoice"] = m_Invoice;
            //}
            //else
            //    m_Invoice = (Entities.Invoice)ViewState["invoice"];

            // Load the report with the relevant details
            if (m_Invoice != null)
            {
                lblInvoiceNo.Text      = m_Invoice.InvoiceId.ToString();
                lblInvoiceNo.ForeColor = Color.Black;

                lblInvoiceType.Text = m_Invoice.InvoiceType.ToString();

                if (m_Invoice.InvoiceType == eInvoiceType.SelfBill)
                {
                    lblClientInvoiceSelfBillAmount.Visible = true;
                    lblClientSelfBillInvoiceNumber.Visible = true;
                    txtClientSelfBillAmount.Visible        = true;
                    txtClientSelfBillAmount.Text           = m_Invoice.ClientInvoiceAmount.ToString("C");
                    txtClientSelfBillInvoiceNumber.Visible = true;
                    txtClientSelfBillInvoiceNumber.Text    = m_Invoice.SelfBillInvoiceNumber;
                    divClientSelfBillAmount.Visible        = true;
                    chkSelfBillRemainder.Visible           = true;
                    lblRemainder.Visible = true;
                }

                if (m_Invoice.OverrideReason != string.Empty)
                {
                    pnlOverride.Visible         = true;
                    chkOverride.Checked         = true;
                    txtOverrideReason.Text      = m_Invoice.OverrideReason.ToString();
                    txtOverrideGrossAmount.Text = m_Invoice.OverrideTotalAmountGross.ToString("C");
                    txtOverrideNetAmount.Text   = m_Invoice.OverrideTotalAmountNet.ToString("C");
                    txtOverrideVAT.Text         = m_Invoice.OverrideTotalAmountVAT.ToString("C");
                }

                // Display the invoice date, but only allow the date to be altered if the invoice has not been posted.
                dteInvoiceDate.SelectedDate = m_Invoice.InvoiceDate;
                dteInvoiceDate.Enabled      = !m_Invoice.Posted;

                lblDateCreated.Text      = m_Invoice.CreatedDate.ToShortDateString();
                lblDateCreated.ForeColor = Color.Black;

                txtInvoiceNotes.Text = m_Invoice.InvoiceDetails;

                chkIncludePODs.Checked = m_Invoice.IncludePODs;

                chkIncludeReferences.Checked = m_Invoice.IncludeReferences;

                if (m_Invoice.IncludeDemurrage)
                {
                    chkIncludeDemurrage.Checked    = true;
                    rdoDemurrageType.SelectedIndex = Convert.ToInt32(m_Invoice.DemurrageType);
                    rdoDemurrageType.Visible       = true;
                }
                else
                {
                    chkIncludeDemurrage.Visible = false;
                    lblNoDemurrage.Visible      = true;
                    rdoDemurrageType.Visible    = false;
                }

                if (m_Invoice.IncludeFuelSurcharge)
                {
                    chkIncludeFuelSurcharge.Checked    = true;
                    txtFuelSurchargeRate.Text          = m_Invoice.FuelSurchargeRate.ToString();
                    rdoFuelSurchargeType.SelectedIndex = Convert.ToInt32(m_Invoice.FuelSurchargeType);
                    rdoFuelSurchargeType.Visible       = true;
                    divFuelSurcharge.Visible           = true;
                }
                else
                {
                    divFuelSurcharge.Visible        = false;
                    chkIncludeFuelSurcharge.Checked = false;
                    rdoFuelSurchargeType.Visible    = false;
                }

                chkJobDetails.Checked = m_Invoice.IncludeJobDetails;

                chkExtraDetails.Checked = m_Invoice.IncludeExtraDetails;

                rdoSortType.SelectedIndex = Convert.ToInt32(m_Invoice.InvoiceSortingType) - 1;

                ViewState[C_JOBIDCSV_VS] = m_Invoice.JobIdCSV;

                if (m_Invoice.InvoiceType == eInvoiceType.SelfBill && m_Invoice.Extras != null)
                {
                    if (m_Invoice.Extras.Count != 0)
                    {
                        pnlExtras.Visible   = true;
                        dgExtras.DataSource = m_Invoice.Extras;
                        dgExtras.DataBind();



                        m_extraIdCSV = "";
                        foreach (Entities.Extra extra in m_Invoice.Extras)
                        {
                            if (m_extraIdCSV.Length > 0)
                            {
                                m_extraIdCSV += ",";
                            }
                            m_extraIdCSV += extra.ExtraId;
                        }

                        ViewState["ExtraIdCSV"] = m_extraIdCSV;
                        chkExtraDetails.Visible = true;
                    }
                    else
                    {
                        pnlExtras.Visible = false;
                    }
                }

                if (m_isUpdate)
                {
                    if (m_Invoice.ForCancellation)
                    {
                        btnAdd.Visible             = false;
                        btnSendToAccounts.Visible  = false;
                        chkPostToExchequer.Visible = false;
                        chkDelete.Checked          = true;
                    }
                    else
                    {
                        if (!chkPostToExchequer.Checked)
                        {
                            btnAdd.Visible             = true;
                            btnSendToAccounts.Visible  = true;
                            chkPostToExchequer.Visible = true;
                            chkDelete.Checked          = false;
                        }
                    }
                }
                else
                {
                    chkPostToExchequer.Visible = true;
                }

                if (m_Invoice.Posted)
                {
                    btnAdd.Visible                         = false;
                    btnSendToAccounts.Visible              = false;
                    chkPostToExchequer.Checked             = true;
                    chkPostToExchequer.Visible             = true;
                    pnlInvoiceDeleted.Visible              = false;
                    chkDelete.Visible                      = false;
                    pnlExtras.Enabled                      = false;
                    pnlIncludes.Enabled                    = false;
                    pnlOverride.Enabled                    = false;
                    chkOverride.Enabled                    = false;
                    pnlSelfRemainder.Enabled               = false;
                    txtInvoiceNotes.Enabled                = false;
                    rdoSortType.Enabled                    = false;
                    txtClientSelfBillAmount.Enabled        = false;
                    chkSelfBillRemainder.Enabled           = false;
                    txtClientSelfBillInvoiceNumber.Enabled = false;
                    btnSendToAccounts.Visible              = false;
                    btnViewInvoice.Visible                 = false;
                    dteInvoiceDate.Enabled                 = false;
                }
                else
                {
                    btnAdd.Visible             = true;
                    btnSendToAccounts.Visible  = true;
                    chkPostToExchequer.Checked = false;
                    pnlInvoiceDeleted.Visible  = true;
                    chkDelete.Visible          = true;
                }
            }

            Header1.Title    = "Update Invoice";
            Header1.subTitle = "Please make any changes neccessary.";
            btnAdd.Text      = "Update";
        }
        private void PostToAccountsSystem(IEnumerable <int> selectedInvoiceIds)
        {
            Entities.Invoice _Invoice   = null;
            Facade.IInvoice  facInvoice = new Facade.Invoice();
            bool             retVal     = false;

            string invoicesPosted        = string.Empty;
            string invoicesFailed        = string.Empty;
            string invoicesAlreadyPosted = string.Empty;

            //For each selected invoice
            foreach (int invoiceId in selectedInvoiceIds)
            {
                _Invoice = PopulateInvoice(invoiceId);
                try
                {
                    // Check to make sure none of the selected invoices have been posted.
                    // If any have been posted, prevent the posting from going ahead again.

                    // Check whether any of the selected invoices are "self bill".
                    // If they are then do not allow them to be posted to accounts.
                    // At the time of writing this code TF and JS agreed that none of our existing clients
                    // actually posted self bill invoices anyway (although some had been posted in the past by mistake!)
                    // so the ability to post self bill invoices has not been made configurable. TF:10/09/2008
                    if (_Invoice.Posted || _Invoice.InvoiceType == eInvoiceType.SelfBill || _Invoice.ForCancellation == true)
                    {
                        retVal = false;
                        invoicesAlreadyPosted += invoiceId.ToString() + ", ";
                    }
                    else
                    {
                        _Invoice.Posted = true;
                        retVal          = UpdateInvoice(_Invoice);
                    }
                }
                catch (Exception e)
                {
                    string err = GetErrorString(e);
                    lblError.Text    = "An error occured when posting Invoice Id " + invoiceId.ToString() + ".<br/>" + err;
                    pnlError.Visible = true;
                    return;
                }

                if (retVal)
                {
                    invoicesPosted += invoiceId.ToString() + ", ";
                    btnPost.Enabled = false;
                }
                else
                {
                    invoicesFailed  += invoiceId.ToString() + ", ";
                    lblError.Text    = "The following Invoices failed to post: " + invoicesFailed + ".<br/>";
                    pnlError.Visible = true;
                }

                if (invoicesAlreadyPosted != string.Empty)
                {
                    lblError.Text    = "The following Invoices were not posted because they are Self Bill, are Cancelled or have already been posted: " + invoicesAlreadyPosted + ".<br/>";
                    pnlError.Visible = true;
                }
            }

            PopulateInvoices();
        }
Exemple #30
0
        private void performSelfBillSearch()
        {
            Facade.IInvoice facInvoice = new Facade.Invoice();

            eInvoiceType searchInvoiceType = eInvoiceType.SelfBill;

            switch ((eInvoiceFilterType)Enum.Parse(typeof(eInvoiceFilterType), rdoFilterOptions.SelectedValue.Replace(" ", "")))
            {
            case eInvoiceFilterType.SelfBillInvoice:
                searchInvoiceType = eInvoiceType.SelfBill;
                break;

            case eInvoiceFilterType.Extra:
                searchInvoiceType = eInvoiceType.Extra;
                break;

            default:
                searchInvoiceType = eInvoiceType.Normal;
                break;
            }
            int posted = 0;

            switch ((eWithOrWithout)Enum.Parse(typeof(eWithOrWithout), rdoPosted.SelectedValue))
            {
            case eWithOrWithout.All:
                posted = 2;
                break;

            case eWithOrWithout.With:
                posted = 1;
                break;

            case eWithOrWithout.Without:
                posted = 0;
                break;
            }

            int clientId = cboClient.SelectedValue == "" ? 0 : Convert.ToInt32(cboClient.SelectedValue);

            string clientInvoiceNumber = string.Empty;

            if (txtClientInvoiceNumber.Text != string.Empty)
            {
                clientInvoiceNumber = txtClientInvoiceNumber.Text;
            }

            DateTime startDate = dteStartDate.SelectedDate.Value;

            startDate = startDate.Subtract(startDate.TimeOfDay);

            DateTime endDate = dteEndDate.SelectedDate.Value;

            endDate = endDate.Subtract(endDate.TimeOfDay);
            endDate = endDate.Add(new TimeSpan(23, 59, 59));

            // Job State
            eJobState jobState = new eJobState();

            if (cboJobState.SelectedValue != string.Empty)
            {
                jobState = (eJobState)Enum.Parse(typeof(eJobState), cboJobState.SelectedValue);
            }

            if (startDate != DateTime.MinValue && endDate != DateTime.MinValue)
            {
                dsInvoice = facInvoice.GetwithParamsAndDate(clientId, clientInvoiceNumber, jobState, posted, startDate, endDate, searchInvoiceType);
            }
            else
            {
                if (clientId == 0)
                {
                    dsInvoice = facInvoice.GetAll(posted, searchInvoiceType);
                }
                else
                {
                    dsInvoice = facInvoice.GetwithParams(clientId, clientInvoiceNumber, jobState, posted, searchInvoiceType);
                }
            }

            gvInvoices.Columns[7].Visible = true;
            gvInvoices.DataSource         = dsInvoice;

            ViewState[C_InvoiceDATA_VS] = dsInvoice;

            gvInvoices.DataBind();

            if (gvInvoices.Rows.Count == 0)
            {
                pnlNormalInvoice.Visible = false;
                lblNote.Text             = "There are no invoices for the given criteria.";
                lblNote.ForeColor        = Color.Red;
                lblNote.Visible          = true;
            }
            {
                pnlNormalInvoice.Visible = true;
                gvInvoices.Visible       = true;
            }
        }