private string GetInvoiceByProposalId(int proposalId) { var invoices = _invoiceApp.GetInvoiceByProposalId(proposalId); if (invoices == null) { return(""); } else { return(JsonConvert.SerializeObject(invoices)); } }
/// <summary> /// 检查新建的Invoice三天之内有没有填写InvoiceNo /// </summary> public void CheckInvoiceAfterThreeDays() { try { DateTime now = DateTime.Now; DayOfWeek weekDay = now.DayOfWeek; string threeDaysAgo = weekDay > DayOfWeek.Wednesday ? now.AddDays(-3).ToString() : now.AddDays(-5).ToString(); string condition = " (Reminded=0 or Reminded=1) and RemindTime<'" + threeDaysAgo + "'"; List <ProposalTrackerEntity> proposalTrackerEntities = proposalTrackerApp.GetEntitiesForPaymentEmail(condition, connStr); if (proposalTrackerEntities.Any()) { foreach (ProposalTrackerEntity entity in proposalTrackerEntities) { List <InvoiceEntity> paymentList = _invoicesApp.GetInvoiceByProposalId(entity.ProposalTrackerID); List <InvoiceEntity> paymentList1 = paymentList.Where(p => p.InvoiceNo == null || p.InvoiceNo == "").ToList(); if (paymentList.Any() && !paymentList1.Any()) { continue; } XElement xmlInvoice1 = XElement.Load(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "EmailTemps/RemindInvoice2.xml"); emailBody = xmlInvoice1.Element("email").Elements("content").First().Value; emailSubject = xmlInvoice1.Element("email").Elements("subject").First().Value.Replace("{ProjectTitle}", entity.ProjectName); emailBody = emailBody.Replace("{ProjectTitle}", entity.ProjectName) .Replace("{ProposalTitle}", entity.Title) .Replace("{Date}", DateTime.Now.ToString("MM/dd/yyyy")); if (SFConfig.Components.EmailSender.SendMail(teamEmail, emailSubject, emailBody, true, MailPriority.Normal)) { entity.Reminded = 2; entity.RemindTime = DateTime.Now; proposalTrackerApp.UpdateProposalTrackerForPayment(entity, connStr); foreach (InvoiceEntity payment in paymentList1) { payment.Color = "red"; payment.ColorFor = "InvoiceNo"; _invoicesApp.UpdateForPaymentEmail(payment); } LogProvider.WriteLog(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss") + " send an email to: " + teamEmail); } } } } catch (Exception ex) { LogProvider.WriteLog(ex.ToString()); } }