Exemple #1
0
        /// <summary>
        /// 操作人、
        /// 处理的订单总数量、
        /// 已解决的订单数量、
        /// 未解决的订单数量、
        /// 解决率(已解决的数量/订单总数量*100%)
        /// </summary>
        /// <param name="reports"></param>
        void SendMail(List <InternalMemoReport> reports)
        {
            KeyValueVariables replaceContent = new KeyValueVariables();

            replaceContent.AddKeyValue("#Time#", DateTime.Now.ToString());

            DataTable tableList = new DataTable();

            tableList.Columns.AddRange(new DataColumn[]
            {
                new DataColumn("UserName"),
                new DataColumn("Count"),
                new DataColumn("ResolvedCount"),
                new DataColumn("UnResolvedCount"),
                new DataColumn("ResolvedRate")
            });
            foreach (var item in reports)
            {
                tableList.Rows.Add(item.UserName, item.Count, item.ResolvedCount, item.UnResolvedCount, item.ResolvedRate);
            }
            KeyTableVariables tableContent = new KeyTableVariables();

            tableContent.Add("tbData", tableList);

            ExternalDomainBroker.SendEmail(m_emailTO, m_emailCC, "", "SO_InternalMemoReport", replaceContent, tableContent, false, true);
        }
        /// <summary>
        /// 回复邮件操作,并发送邮件
        /// </summary>
        /// <param name="item"></param>
        public virtual void UpdateProductConsultMailLog(ProductReview item)
        {
            if (productReviewMailLogDA.CheckProductCommentMailLog(item.ProductReviewMailLog))
            {
                productReviewMailLogDA.UpdateProductCommentMailLog(item.ProductReviewMailLog);
            }
            else
            {
                productReviewMailLogDA.CreateProductCommentMailLog(item.ProductReviewMailLog);
            }

            #region 发送邮件
            KeyValueVariables replaceVariables = new KeyValueVariables();

            ECCentral.BizEntity.IM.ProductInfo product = ExternalDomainBroker.GetProductInfo(item.ProductSysNo.Value);
            replaceVariables.AddKeyValue(@"ProductID", product.ProductID);
            replaceVariables.AddKeyValue(@"ProductName", product.ProductName);

            replaceVariables.AddKeyValue(@"Content", item.ProductReviewMailLog.Content);
            replaceVariables.AddKeyValue(@"EmailText", item.ProductReviewMailLog.TopicMailContent.Content);
            replaceVariables.AddKeyValue(@"All", DateTime.Now.ToString());
            replaceVariables.AddKeyValue(@"InDate-Y", DateTime.Now.Year.ToString());
            replaceVariables.AddKeyValue(@"InDate-M", DateTime.Now.Month.ToString());
            replaceVariables.AddKeyValue(@"InDate-D", DateTime.Now.Day.ToString());
            replaceVariables.AddKeyValue(@"Year", DateTime.Now.Year.ToString());

            ECCentral.BizEntity.Customer.CustomerInfo customer = ExternalDomainBroker.GetCustomerInfo(item.CustomerSysNo.Value);
            replaceVariables.AddKeyValue(@"CustomerName", customer.BasicInfo.CustomerID);
            if (string.IsNullOrEmpty(customer.BasicInfo.Email))
            {
                throw new BizException("邮件地址为空!");
            }
            else
            {
                ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(customer.BasicInfo.Email, "MKT_ProductConsultMailContent", replaceVariables, false);
            }
            #endregion
        }
Exemple #3
0
        /// <summary>
        /// 给客户发送邮件,然后更新客户留言
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public virtual void SendCustomerEmailForLeaveWord(LeaveWordsItem item)
        {
            leaveWordsDA.SendMailThenUpdateLeaveWord(item);

            KeyValueVariables replaceVariables = new KeyValueVariables();

            replaceVariables.AddKeyValue(@"CustomerID", item.CustomerName);
            replaceVariables.AddKeyValue(@"Content", item.ReplyContent);
            replaceVariables.AddKeyValue(@"InDate-Y", DateTime.Now.Year.ToString());
            replaceVariables.AddKeyValue(@"InDate-M", DateTime.Now.Month.ToString());
            replaceVariables.AddKeyValue(@"InDate-D", DateTime.Now.Day.ToString());
            replaceVariables.AddKeyValue(@"Year", DateTime.Now.Year.ToString());
            if (string.IsNullOrEmpty(item.CustomerEmail))
            {
                // throw new BizException("邮件地址为空!");
                throw new BizException(ResouceManager.GetMessageString("MKT.Keywords", "Keywords_EmailIsNotNull"));
            }
            else
            {
                ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(item.CustomerEmail, "MKT_ReplyCustomerLeaveWords", replaceVariables, false);
            }
        }
Exemple #4
0
        public override void OnSuccess(MethodExecutionEventArgs args)
        {
            int    requestsysno            = 0;
            string ptptdUser               = ConfigurationManager.AppSettings["PTPTDUser"];
            string subject                 = string.Empty;
            ProductPriceRequestInfo entity = new ProductPriceRequestInfo();

            if (EmailType == SendEmailType.ApprovePriceRequest)
            {
                object[] objs = args.GetReadOnlyArgumentArray();
                entity = objs[0] as ProductPriceRequestInfo;

                requestsysno = entity.SysNo.Value;

                if (entity.RequestStatus == ProductPriceRequestStatus.Deny)//拒绝时的邮件发送
                {
                    subject = ResouceManager.GetMessageString("IM.Product", "AuditRejected");
                }
                else
                {
                    subject = ResouceManager.GetMessageString("IM.Product", "AuditPassed");
                }
            }
            else if (EmailType == SendEmailType.CancelPriceRequest)//撤销时的邮件发送
            {
                object[] objs = args.GetReadOnlyArgumentArray();
                entity = objs[0] as ProductPriceRequestInfo;

                requestsysno = entity.SysNo.Value;

                subject = ResouceManager.GetMessageString("IM.Product", "CancelAudit");
            }
            else if (EmailType == SendEmailType.CreatePriceRequest)
            {
                object[] objs = args.GetReadOnlyArgumentArray();
                entity = objs[1] as ProductPriceRequestInfo;

                requestsysno = entity.SysNo.Value;

                subject = ResouceManager.GetMessageString("IM.Product", "RequestAudit");
            }



            ProductPriceRequestInfo requestentity = ObjectFactory <ProductPriceRequestProcessor> .Instance.GetProductPriceRequestInfoBySysNo(requestsysno);


            string toAddress = string.Format("{0};{1}", entity.PMUserEmailAddress, entity.CurrentUserEmailAddress);

            if (!string.IsNullOrEmpty(entity.BackupPMUserEmailAddress))
            {
                toAddress = string.Format("{0};{1}", toAddress, entity.BackupPMUserEmailAddress);
            }
            if (!string.IsNullOrEmpty(ptptdUser))
            {
                toAddress = string.Format("{0};{1}", toAddress, ptptdUser);
            }

            string ccmail     = GetCCEmail(requestentity);
            string updatetime = string.Empty;

            if (requestentity.LastUpdateTime.HasValue)
            {
                updatetime = requestentity.LastUpdateTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
            }

            //参数设置
            KeyValueVariables keyValueVariables = new KeyValueVariables();

            keyValueVariables.AddKeyValue("Subject", subject);
            keyValueVariables.Add("ProductSysNo", Product.SysNo);
            keyValueVariables.Add("ProductName", Product.ProductName);
            keyValueVariables.Add("UpdateTime", updatetime);
            keyValueVariables.Add("SysNo", requestentity.SysNo);
            keyValueVariables.Add("ProductID", Product.ProductID);
            keyValueVariables.Add("BasicPrice", requestentity.OldPrice.BasicPrice);
            keyValueVariables.Add("BasicPriceNew", requestentity.BasicPrice);
            keyValueVariables.Add("UnitCost", requestentity.UnitCost);
            keyValueVariables.Add("CurrentPrice", requestentity.OldPrice.CurrentPrice);
            keyValueVariables.Add("CurrentPriceNew", requestentity.CurrentPrice);
            keyValueVariables.Add("Discount", requestentity.DiscountAmount);
            keyValueVariables.Add("CashRebate", requestentity.OldPrice.CashRebate);
            keyValueVariables.Add("CashRebateNew", requestentity.CashRebate);
            keyValueVariables.Add("Point", requestentity.OldPrice.Point);
            keyValueVariables.Add("PointNew", requestentity.Point);
            keyValueVariables.Add("ProductPayType", requestentity.OldPrice.PayType.ToString());
            keyValueVariables.Add("MaxPerOrder", requestentity.MinCountPerOrder);
            keyValueVariables.Add("MinMargin", requestentity.OldPrice.Margin);
            keyValueVariables.Add("MinMarginCurrent", requestentity.Margin);
            keyValueVariables.Add("Apply", requestentity.CreateUser.UserName);
            keyValueVariables.Add("PMMemo", requestentity.PMMemo);
            keyValueVariables.Add("TLMemo", requestentity.TLMemo);


            EmailHelper.SendEmailByTemplate(toAddress, ccmail, "", "IM_Product_ChangePrice", keyValueVariables, null, true, true);
            base.OnSuccess(args);
        }
        public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            CostChangeAppService CostChangeAppServiceInstance = ObjectFactory <CostChangeAppService> .Instance;

            //获取参数
            string costChangeSysNoStr = requestPostData["CostChangeSysNo"];
            int    costChangeSysNo    = int.Parse(costChangeSysNoStr);

            CostChangeInfo costChangeInfo = CostChangeAppServiceInstance.LoadCostChangeInfo(costChangeSysNo);

            //变价单编号
            variables.AddKeyValue("CostChangeinfoSysNo", costChangeInfo.SysNo.Value.ToString());
            //合同号
            variables.AddKeyValue("ContractNo", "");

            //供应商
            VendorAppService VendorAppServiceInstance = ObjectFactory <VendorAppService> .Instance;

            var        vendorNo   = costChangeInfo.CostChangeBasicInfo.VendorSysNo;
            VendorInfo vendorInfo = VendorAppServiceInstance.LoadVendorInfoBySysNo(vendorNo);
            var        vendorName = vendorInfo.VendorBasicInfo.VendorNameLocal;

            variables.AddKeyValue("VendorName", vendorName);

            //部门
            variables.AddKeyValue("DepartmentName", "商品部");

            //制表时间
            var curentDataStr = DateTime.Now.Date.ToString("yyyy-MM-dd");

            variables.AddKeyValue("CurentDate", curentDataStr);

            DataTable dt = new DataTable();

            //商品ID
            dt.Columns.Add("ProductID");
            //商品名称
            dt.Columns.Add("ProductName");
            //税率
            dt.Columns.Add("TaxRange");
            //变价数量
            dt.Columns.Add("ChangeCount");
            //原进价
            dt.Columns.Add("OldPrice");
            //新进价
            dt.Columns.Add("NewPrice");
            //变价金额
            dt.Columns.Add("ChaneAmount");
            //变价税金
            dt.Columns.Add("ChaneTax");
            //采购单编号
            dt.Columns.Add("OrderNo");
            //备注
            dt.Columns.Add("Memo");

            tableVariables.Add("tableCostChangeDetial", dt);

            Func <PurchaseOrderTaxRate, decimal, decimal> Shuijin = (a, b) =>
            {
                return(((decimal)(((int)a) / 100.00)) * b / ((decimal)(((int)a) / 100.00) + 1));
            };

            Func <PurchaseOrderTaxRate, decimal, decimal> Jiakuan = (a, b) =>
            {
                return(b / ((decimal)(((int)a) / 100.00) + 1));
            };


            //采购单实体
            PurchaseOrderAppService purchaseOrderAppServiceInstance = ObjectFactory <PurchaseOrderAppService> .Instance;

            var totalAmount = 0m;

            foreach (var sub in costChangeInfo.CostChangeItems)
            {
                DataRow row = null;
                row = dt.NewRow();

                var taxAndAmount = (sub.NewPrice - sub.OldPrice) * sub.ChangeCount;
                var po           = purchaseOrderAppServiceInstance.LoadPurchaseOrderInfo(sub.POSysNo);
                var taxRateType  = po.PurchaseOrderBasicInfo.TaxRateType.Value;//增值税类型

                //商品ID
                row["ProductID"] = sub.ProductID;
                //商品名称
                row["ProductName"] = sub.ProductName;
                //税率
                row["TaxRange"] = ((int)taxRateType).ToString();//通过采购单 来获取 税率
                //变价数量
                row["ChangeCount"] = sub.ChangeCount;
                //原进价
                row["OldPrice"] = sub.OldPrice.ToString("C");
                //新进价
                row["NewPrice"] = sub.NewPrice.ToString("C");
                //不含税金额(价款)
                row["ChaneAmount"] = Jiakuan(taxRateType, taxAndAmount).ToString("C");
                //变价税金
                row["ChaneTax"] = Shuijin(taxRateType, taxAndAmount).ToString("C");
                //采购单编号
                row["OrderNo"] = sub.POSysNo;
                //备注
                row["Memo"] = "";

                dt.Rows.Add(row);
                totalAmount += taxAndAmount;
            }

            //制单人
            variables.AddKeyValue("CreateUser", costChangeInfo.CostChangeBasicInfo.InUserStr);
            //审核人
            variables.AddKeyValue("AuditUser", costChangeInfo.CostChangeBasicInfo.AuditUserStr);
            //合计
            variables.AddKeyValue("TotalAmount", totalAmount.ToString("C"));
        }
Exemple #6
0
        /// <summary>
        /// 回复邮件操作,并发送邮件
        /// </summary>
        /// <param name="item"></param>
        public virtual void UpdateProductReviewMailLog(ProductReview item)
        {
            //保存邮件日志
            if (!string.IsNullOrEmpty(item.ProductReviewMailLog.TopicMailContent.Content) || !string.IsNullOrEmpty(item.ProductReviewMailLog.CSNote.Content))
            {
                if (productReviewMailLogDA.CheckProductCommentMailLog(item.ProductReviewMailLog))
                {
                    productReviewMailLogDA.UpdateProductCommentMailLog(item.ProductReviewMailLog);
                }
                else
                {
                    productReviewMailLogDA.CreateProductCommentMailLog(item.ProductReviewMailLog);
                }
            }
            productReviewDA.UpdateProductReview(item);

            #region 发送邮件
            KeyValueVariables replaceVariables = new KeyValueVariables();

            ECCentral.BizEntity.IM.ProductInfo product = ExternalDomainBroker.GetProductInfo(item.ProductSysNo.Value);
            replaceVariables.AddKeyValue(@"ProductID", product.ProductID);
            replaceVariables.AddKeyValue(@"ProductName", product.ProductName);

            replaceVariables.AddKeyValue(@"ProductLink", item.ProductID);
            replaceVariables.AddKeyValue(@"Title", item.Title);
            replaceVariables.AddKeyValue(@"ProductContent", string.Format(ResouceManager.GetMessageString("MKT.Comment", "Comment_ProductReviewMailMainContent"), item.Prons, item.Cons, item.Service));

            //replaceVariables.AddKeyValue(@"#InUser#", ServiceContext.Current.);
            //replaceVariables.AddKeyValue(@"#InDateAll#", DateTime.Now.ToString());
            replaceVariables.AddKeyValue(@"InDateAll-Y", DateTime.Now.Year.ToString());
            replaceVariables.AddKeyValue(@"InDateAll-M", DateTime.Now.Month.ToString());
            replaceVariables.AddKeyValue(@"InDateAll-D", DateTime.Now.Day.ToString());

            replaceVariables.AddKeyValue(@"EmailText", item.ProductReviewMailLog.TopicMailContent.Content);
            replaceVariables.AddKeyValue(@"All", DateTime.Now.ToString());
            replaceVariables.AddKeyValue(@"InDate-Y", DateTime.Now.Year.ToString());
            replaceVariables.AddKeyValue(@"InDate-M", DateTime.Now.Month.ToString());
            replaceVariables.AddKeyValue(@"InDate-D", DateTime.Now.Day.ToString());
            replaceVariables.AddKeyValue(@"Year", DateTime.Now.Year.ToString());

            ECCentral.BizEntity.Customer.CustomerInfo customer = ExternalDomainBroker.GetCustomerInfo(item.CustomerSysNo.Value);
            replaceVariables.AddKeyValue(@"CustomerName", customer.BasicInfo.CustomerID);
            if (string.IsNullOrEmpty(customer.BasicInfo.Email))
            {
                //throw new BizException("邮件地址为空!");
                throw new BizException(ResouceManager.GetMessageString("MKT.ProductReview", "ProductReview_EmailNotNull"));
            }
            else
            {
                ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(customer.BasicInfo.Email, "MKT_ProductReviewMailContent", replaceVariables, false);
            }
            #endregion
        }