private void bwReport_DoWork(object sender, DoWorkEventArgs e) { string productNo = e.Argument.ToString(); List <CartonNumberingModel> cartonNumberingList = CartonNumberingController.Get(productNo).ToList(); List <CartonNumberingDetailModel> cartonNumberingDetailList = CartonNumberingDetailController.Select(productNo); List <StoringModel> storingList = StoringController.SelectPerPO(productNo); DataTable dtCartonNumbering = new CartonNumberingDataSet().Tables[0]; DataTable dtStoring = new StoringReportDataSet().Tables[0]; foreach (CartonNumberingModel cartonNumbering in cartonNumberingList) { DataRow drCartonNumbering = dtCartonNumbering.NewRow(); drCartonNumbering["ProductNo"] = cartonNumbering.ProductNo; drCartonNumbering["SizeNo"] = cartonNumbering.SizeNo; drCartonNumbering["Quantity"] = cartonNumbering.Quantity; StoringModel storingPerSize = storingList.Where(p => p.SizeNo == cartonNumbering.SizeNo).FirstOrDefault(); if (storingPerSize != null) { drCartonNumbering["GrossWeight"] = storingPerSize.ActualWeight; drCartonNumbering["FirstCartonOfSize"] = storingPerSize.CartonNo; } dtCartonNumbering.Rows.Add(drCartonNumbering); List <CartonNumberingDetailModel> cartonNumberingDetail_D1 = cartonNumberingDetailList.Where(c => c.SizeNo == cartonNumbering.SizeNo).ToList(); for (int i = 1; i <= cartonNumberingDetail_D1.Count(); i++) { CartonNumberingDetailModel cartonNumberingDetail = cartonNumberingDetail_D1[i - 1]; StoringModel storing = storingList.Where(p => p.CartonNo == cartonNumberingDetail.CartonNo).FirstOrDefault(); DataRow drStoring = dtStoring.NewRow(); drStoring["ProductNo"] = cartonNumberingDetail.CartonNo; drStoring["ProductNo"] = cartonNumbering.ProductNo; drStoring["SizeNo"] = cartonNumbering.SizeNo; drStoring["NumberOf"] = i; drStoring["StoringValue"] = string.Format("{0} |", cartonNumberingDetail.CartonNo); if (storing != null) { drStoring["StoringValue"] = string.Format("{0} | {1}", cartonNumberingDetail.CartonNo, storing.ActualWeight); drStoring["IsPass"] = storing.IsPass; } dtStoring.Rows.Add(drStoring); } } string storingDate = ""; string quantityCarton = ""; if (storingList.Count() > 0 && cartonNumberingDetailList.Count() > 0) { storingDate = string.Format("{0:dd/MM/yyyy}", storingList.FirstOrDefault().CreatedTime); quantityCarton = string.Format("{0} of {1}", storingList.Count(), cartonNumberingDetailList.Select(s => s.CartonNo).Max()); } double totalWeight = storingList.Sum(p => p.ActualWeight); object[] results = { productNo, storingDate, dtCartonNumbering, dtStoring, totalWeight, quantityCarton }; e.Result = results; }
private void dispatcherTimerSendReport_Tick(object sender, EventArgs e) { var currentTime = DateTime.Now; if (currentTime.Hour == createReportHour && currentTime.Minute == createReportMinute && currentTime.Second == createReportSecond) { var storingReportPerDateList = new List <StoringModel>(); storingReportPerDateList = StoringController.SelectByDate(DateTime.Now, account.UserName); if (storingReportPerDateList.Count > 0) { // Send Email mailAddressReceiveMessageList = MailAddressReceiveMessageController.Get(); foreach (MailAddressReceiveMessageModel mailAddressReceiveMessage in mailAddressReceiveMessageList) { MailAddress mailAddressReceive = new MailAddress(mailAddressReceiveMessage.MailAddress, mailAddressReceiveMessage.Name); mailMessage.To.Add(mailAddressReceive); } string mailHeader = @"<html><table border='1' style='width:75%'> <tr><td style='width:20%'>ProductNo</td><td style='width:15%'>Total</td><td style='width:15%'>Inputted</td><td style='width:15%'>Total Inputted</td><td style='width:15%'>Balance</td><td style='width:20%'>Location</td></tr>"; string mailBody = ""; foreach (var productNo in storingReportPerDateList.Select(s => s.ProductNo).Distinct().ToList()) { //int total = storingTempList.Where(w => w.ProductNo == productNo).Select(s => s.CartonNo).Max(); int total = CartonNumberingDetailController.Select(productNo).Select(s => s.CartonNo).Max(); int inputted = storingReportPerDateList.Where(w => w.ProductNo == productNo && w.IsPass == true && w.IsComplete == true).Count(); //int totalInputed = storingCurrentList.Where(w => w.StoringModel.ProductNo == productNo && w.StoringModel.IsPass == true && w.StoringModel.IsComplete == true).Count(); int totalInputted = StoringController.SelectPerPO(productNo).Where(w => w.IsPass == true && w.IsComplete == true).Count(); int balance = total - totalInputted; mailBody += string.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td></tr>", productNo, total, inputted, totalInputted, balance, electricScaleProfile.Location); } mailMessage.Body = mailHeader + mailBody + "</table></html>"; if (flagSending == false && mailMessage.To.Count > 0 && CheckInternetConnection.CheckConnection() == true) { smtpClient.SendAsync(mailMessage, mailMessage); flagSending = true; MessageBox.Show(String.Format("Đã gửi report ngày: {0:dd/MM/yyyy HH:mm:ss}", DateTime.Now), "Infor", MessageBoxButton.OK, MessageBoxImage.Information); } } } }
//string gtnPONo = "", totalCartonInputedString = "", totalWeightString = ""; private void bwReport_DoWork(object sender, DoWorkEventArgs e) { outputingPerPOList = OutputingController.SelectPerPO(productNo).OrderBy(o => o.CartonNo).ToList(); storingPerPOList = StoringController.SelectPerPO(productNo).OrderBy(o => o.CartonNo).ToList(); accountList = AccountController.Get(); }