Esempio n. 1
0
        private string GetInvoiceByProposalId(int proposalId)
        {
            var invoices = _invoiceApp.GetInvoiceByProposalId(proposalId);

            if (invoices == null)
            {
                return("");
            }
            else
            {
                return(JsonConvert.SerializeObject(invoices));
            }
        }
Esempio n. 2
0
        /// <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());
            }
        }