using System; using System.Linq; using System.Web; using System.Web.UI; using Common; using System.Web.UI.WebControls; //20180119 - Added user who did the Pickup next to the Pre-list number - maanie public partial class RootDispatch : Page { private int CustomerId { get { int id; return Page.RouteData.Values["customerid"] != null && int.TryParse(Page.RouteData.Values["customerid"].ToString(), out id) ? id : 0; } } private int Id { get { int id; return Page.RouteData.Values["id"] != null && int.TryParse(Page.RouteData.Values["id"].ToString(), out id) ? id : 0; } } private string Action { get { return Page.RouteData.Values["action"] == null ? string.Empty : Page.RouteData.Values["action"].ToString(); } } protected void Page_Load(object sender, EventArgs e) { if (Id == 0 || Page.IsPostBack) return; if (Action.ToLower() == "print") ScriptManager.RegisterStartupScript(this, typeof(Page), "PrintPage", "window.setTimeout('this.print();', 2000);", true); using (var db = new DataModel()) { Customer customer; if (User.Identity.Name == "test@test.com") customer = db.Customers.FirstOrDefault(f => f.CustomerId == CustomerId); else { var customerLogin = db.GetCustomerLoginFromGuid(HttpContext.Current.User.Identity.Name).FirstOrDefault(); if (customerLogin == null) return; customer = db.Customers.FirstOrDefault(f => f.CustomerId == customerLogin.CustomerId && f.CustomerId == CustomerId); } if (customer == null) return; //if (customer.BillingProfileId == 1) LoadFromInvoice(); //else LoadFromDispatch(); LoadFromDispatch(); } } private void LoadFromInvoice() { using (var db = new DataModel()) { var invoice = db.Invoices.FirstOrDefault(f => f.InvoiceId == Id && f.CustomerId == CustomerId); if (invoice == null) return; CompanyAddressLabel.Text = string.Format("{0} / {1}", Settings.CompanyAddress, Settings.CompanyPhone); CompanyEmailLabel.Text = string.Format("Email: {0}", Settings.CompanyEmail); CompanyVATNumberLabel.Text = string.Format("VAT Number: {0}", Settings.CompanyVatNumber); DispatchIdLabel.Text = invoice.InvoiceId.ToString().PadLeft(4, '0'); CustomerName.Text = invoice.Customer.Name; DateLabel.Text += @"   " + invoice.Workload.DateCreated.ToShortDateString(); TimeLabel.Text += @"   " + invoice.Workload.DateCreated.ToShortTimeString(); CustomerAddressLine1.Text = invoice.Customer.AddressLine1; CustomerAddressLine2.Text = invoice.Customer.AddressLine2; CustomerAddressCity.Text = invoice.Customer.AddressCity; CustomerAddressPostCode.Text = invoice.Customer.AddressPostCode; var bags = db.vwDeliveryNoteCategoriesByBagSeals.Where(b => b.InvoiceId == Id).ToList(); if (bags.Count == 0) return; SealsRepeater.DataSource = bags; SealsRepeater.DataBind(); NumberOfBagsLabel.Text = bags.Count.ToString(); BarcodeLabel.ImageUrl = string.Format("/Handlers/BarcodeHandler.ashx?type=Invoice&value={0}", Id); //BarcodeLabel.ImageUrl = string.Format("/Handlers/BarcodeHandler.ashx?type=Dispatch&value={0}", dispatchId); } } private void LoadFromDispatch() { using (var db = new DataModel()) { //var dispatch = db.Dispatches.FirstOrDefault(f => f.DispatchId == Id && f.Invoice.CustomerId == CustomerId); var dispatch = db.Dispatches.FirstOrDefault(f => f.DeliveryId == Id && f.Invoice.CustomerId == CustomerId); if (dispatch == null) return; CompanyAddressLabel.Text = string.Format("{0} / {1}", Settings.CompanyAddress, Settings.CompanyPhone); CompanyEmailLabel.Text = string.Format("Email: {0}", Settings.CompanyEmail); CompanyVATNumberLabel.Text = string.Format("VAT Number: {0}", Settings.CompanyVatNumber); //20180119 - Added user who did the Pickup next to the Pre-list number - maanie var operatorAuthoriseId = dispatch.Invoice.Workload.OperatorAuthoriseId; var pickupOperator = db.OperatorLogins.Where(o => o.OperatorLoginId == operatorAuthoriseId).Select(s => s.Username).FirstOrDefault(); //08-07-2016 - Added prelist number - maanie PrelistLabel.Text = string.IsNullOrEmpty(dispatch.Invoice.Workload.Reference) ? dispatch.Invoice.Workload.WorkloadId.ToString() : dispatch.Invoice.Workload.Reference; PrelistLabel.Text = PrelistLabel.Text + " / " + pickupOperator.ToString(); //DispatchIdLabel.Text = dispatch.Invoice.InvoiceId.ToString().PadLeft(4, '0'); DispatchIdLabel.Text = Id.ToString(); CustomerName.Text = dispatch.Invoice.Customer.Name; DateLabel.Text += @"   " + dispatch.Invoice.Workload.DateCreated.ToShortDateString(); //TimeLabel.Text += @"   " + dispatch.Invoice.Workload.DateCreated.ToShortTimeString(); TimeLabel.Text += @"   " + DateTime.Now.ToShortTimeString(); //20161012 - use current time instead - maanie CustomerAddressLine1.Text = dispatch.Invoice.Customer.AddressLine1; CustomerAddressLine2.Text = dispatch.Invoice.Customer.AddressLine2; CustomerAddressCity.Text = dispatch.Invoice.Customer.AddressCity; CustomerAddressPostCode.Text = dispatch.Invoice.Customer.AddressPostCode; //var bags = db.vwDeliveryNoteCategoriesByBagSeals.Where(b => b.DispatchId == Id).ToList(); var bags = db.vwDeliveryNoteCategoriesByBagSeal2.Where(b => b.DeliveryId == Id).ToList(); if (bags.Count == 0) return; SealsRepeater.DataSource = bags; SealsRepeater.DataBind(); NumberOfBagsLabel.Text = bags.Count.ToString(); BarcodeLabel.ImageUrl = string.Format("/Handlers/BarcodeHandler.ashx?type=Dispatch&value={0}", Id); } } //20181108 - added bag contents with quantities - maanie protected void OnItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { using (var db = new DataModel()) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { var dispatchId = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "DispatchId")); var contents = db.vwDispatchBagPackageContents.Where(b => b.DispatchId == dispatchId).ToList(); Repeater rptContents = e.Item.FindControl("ContentsRepeater") as Repeater; rptContents.DataSource = contents; rptContents.DataBind(); } } } }