示例#1
0
        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;
        }
示例#2
0
        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);
                    }
                }
            }
        }
示例#3
0
 //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();
 }