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); }
/// <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); }
/// <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); }
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; } }
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; }
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); }
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."; } }
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; }
/// <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); }
/// <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(); }
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; } }