Exemple #1
0
        public void BuildData(NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            string sysNo = requestPostData["SysNo"];

            if (!string.IsNullOrEmpty(sysNo))
            {
                int refundSysNo;

                if (int.TryParse(sysNo, out refundSysNo))
                {
                    var     refundInfo = GetRefundInfo(refundSysNo);
                    decimal?totalAmt   = refundInfo.Items.Sum(p =>
                    {
                        if (!p.IsPoint)
                        {
                            return(p.TotalAmount);
                        }
                        return(0);
                    });
                    if (refundInfo.CashAmount != null && refundInfo.CashAmount != 0)
                    {
                        variables.Add("JsFunction", "sf();");
                        variables.Add("SOSysNo", refundInfo.SOSysNo);
                        variables.Add("Now", DateTime.Now.ToShortDateString());
                        variables.Add("AuditUserName", refundInfo.AuditUserName);
                        variables.Add("ReceiveName", refundInfo.ReceiveName);
                        variables.Add("CustomerSysNo", refundInfo.CustomerSysNo);
                        variables.Add("CustomerName", refundInfo.CustomerName);
                        variables.Add("ReceiveAddress", refundInfo.ReceiveAddress);
                        variables.Add("ReceivePhone", refundInfo.ReceivePhone);
                        variables.Add("InvoiceNote", refundInfo.InvoiceNote);
                        variables.Add("PayTypeName", refundInfo.PayTypeName);
                        variables.Add("ShipTypeName", refundInfo.ShipTypeName);
                        variables.Add("RefundID", refundInfo.RefundID);
                        variables.Add("TotalAmount", ToLowerChineseMoney(totalAmt.Value));
                        variables.Add("ChineseTotalAmount", ToUpperChineseMoney(totalAmt.Value));
                    }

                    DataTable t = new DataTable();
                    t.Columns.Add("ProductID");
                    t.Columns.Add("ProductName");
                    t.Columns.Add("PrintPrice");
                    t.Columns.Add("PrintQuantity");
                    t.Columns.Add("PrintTotalAmount");

                    if (refundInfo.Items != null)
                    {
                        refundInfo.Items.ForEach(p =>
                        {
                            t.Rows.Add(p.ProductID, p.ProductName, p.Price, p.Quantity, p.PrintTotalAmount);
                        });
                    }

                    tableVariables.Add("RefundItems", t);
                }
            }
        }
Exemple #2
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);
        }
        public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            string param        = requestPostData["ConsignSysNo"];
            int    ConsignSysNo = 0;

            DataTable table      = CreatePrintData();
            DataTable errorTable = new DataTable();

            try
            {
                if (!int.TryParse(param, out ConsignSysNo))
                {
                    throw new BizException(string.Format("非法的结算单号{0}", param));
                }

                InitData(ConsignSysNo, table);
            }
            catch (BizException ex)
            {
                InitErrorTable(ex, errorTable);
            }

            tableVariables.Add("Error", errorTable);
            tableVariables.Add("ConsignLeasePrint", table);
        }
Exemple #4
0
        public void BuildData(NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            if (requestPostData != null)
            {
                variables.Add("TotalAmount", HttpUtility.UrlDecode(requestPostData["TotalAmount"]));
            }
            int       count;
            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("VendorName");
            dataTable.Columns.Add("InvoiceTime");
            dataTable.Columns.Add("InputTime");
            dataTable.Columns.Add("TotalAmt");
            dataTable.Columns.Add("InvoiceNumber");

            if (int.TryParse(requestPostData["InvoiceCount"], out count))
            {
                DataRow row;
                for (int i = 0; i < count; i++)
                {
                    row = dataTable.NewRow();
                    row["VendorName"]    = HttpUtility.UrlDecode(requestPostData["V" + i]);
                    row["InvoiceTime"]   = HttpUtility.UrlDecode(requestPostData["I" + i]);
                    row["InputTime"]     = HttpUtility.UrlDecode(requestPostData["T" + i]);
                    row["TotalAmt"]      = HttpUtility.UrlDecode(requestPostData["A" + i]);
                    row["InvoiceNumber"] = HttpUtility.UrlDecode(requestPostData["N" + i]);
                    dataTable.Rows.Add(row);
                }
            }
            tableVariables.Add("InvoiceDetailList", dataTable);
        }
        public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            string param      = requestPostData["GroupSysNo"];
            int    GroupSysNo = 0;

            DataTable table      = CreatePrintData();
            DataTable errorTable = new DataTable();

            try
            {
                if (!int.TryParse(param, out GroupSysNo))
                {
                    throw new BizException(string.Format(ResouceManager.GetMessageString("MKT.Promotion.GroupBuying", "GroupBuying_IllegalGroupID"), param));
                }

                InitData(GroupSysNo, table);
            }
            catch (BizException ex)
            {
                InitErrorTable(ex, errorTable);
            }

            tableVariables.Add("Error", errorTable);
            tableVariables.Add("ConsignLeasePrint", table);
        }
        public void PriceChangedSendMail(SOInfo soInfo)
        {
            try
            {
                List <SOInternalMemoInfo> memoList = ObjectFactory <SOInternalMemoProcessor> .Instance.GetBySOSysNo(soInfo.SysNo.Value);

                List <int> productSysNoList = (from item in soInfo.Items
                                               select item.ProductSysNo.Value).ToList();
                List <ECCentral.BizEntity.IM.ProductInfo> productList = ExternalDomainBroker.GetProductInfoListByProductSysNoList(productSysNoList);
                if (productList != null)
                {
                    DataTable dtMemo = new DataTable();
                    dtMemo.Columns.AddRange(new DataColumn[]
                    {
                        new DataColumn("LogTime"),
                        new DataColumn("Content"),
                        new DataColumn("Note")
                    });
                    productList.ForEach(p =>
                    {
                        SOItemInfo item = soInfo.Items.Find(i => i.ProductSysNo.Value == p.SysNo);
                        if (item != null)
                        {
                            KeyValueVariables keyValueVariables = new KeyValueVariables();
                            KeyTableVariables keyTableVariables = new KeyTableVariables();
                            string pmEmailAddress  = p.ProductBasicInfo.ProductManager.UserInfo.EmailAddress;
                            StringBuilder mailBody = new StringBuilder();
                            keyValueVariables.Add("SOSysNo", soInfo.SysNo.Value);
                            keyValueVariables.Add("ProductID", item.ProductID);
                            keyValueVariables.Add("ProductName", item.ProductName);
                            keyValueVariables.Add("Quantity", item.Quantity);
                            keyValueVariables.Add("Weight", item.Weight);
                            keyValueVariables.Add("Price", item.Price);
                            keyValueVariables.Add("GainAveragePoint", item.GainAveragePoint);
                            keyValueVariables.Add("PromotionAmount", item.PromotionAmount);
                            keyValueVariables.Add("Warranty", item.Warranty);
                            if (memoList != null && memoList.Count > 0 && dtMemo.Rows.Count == 0)
                            {
                                foreach (SOInternalMemoInfo internalMemo in memoList)
                                {
                                    DataRow dr    = dtMemo.NewRow();
                                    dr["LogTime"] = internalMemo.LogTime.HasValue ? internalMemo.LogTime.Value.ToString(SOConst.DateTimeFormat) : String.Empty;
                                    dr["Content"] = internalMemo.Content;
                                    dr["Note"]    = internalMemo.Note;
                                    dtMemo.Rows.Add(dr);
                                }
                            }
                            keyValueVariables.Add("MemoListDisplay", dtMemo.Rows.Count > 0);
                            keyTableVariables.Add("MemoList", dtMemo);
                            ExternalDomainBroker.SendInternalEmail("SO_Product_PriceChanged", keyValueVariables, keyTableVariables);
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                ExceptionHelper.HandleException(ex);
            }
        }
Exemple #7
0
        public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();
            string sysNo = requestPostData["SysNo"];

            if (sysNo != null && sysNo.Trim() != String.Empty)
            {
                sysNo = System.Web.HttpUtility.UrlDecode(sysNo);
                int requestSysNo = int.TryParse(sysNo, out requestSysNo) ? requestSysNo : int.MinValue;

                if (requestSysNo > int.MinValue)
                {
                    AdjustRequestInfo requestInfo = ObjectFactory <AdjustRequestAppService> .Instance.GetAdjustRequestInfoBySysNo(requestSysNo);

                    variables.Add("SelfCompanyName", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Name"));
                    variables.Add("SelfCompanyAddress", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Address"));
                    variables.Add("SelfCompanyPhone", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Phone"));
                    variables.Add("SelfCompanyWebAddress", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Url"));
                    variables.Add("CreateUser", requestInfo.CreateUser.UserDisplayName);
                    variables.Add("CreateDate", requestInfo.CreateDate.HasValue ? requestInfo.CreateDate.Value.ToString(SOConst.LongTimeFormat) : string.Empty);
                    variables.Add("AuditUser", requestInfo.AuditUser.UserDisplayName);
                    variables.Add("AuditDate", requestInfo.AuditDate.HasValue ? requestInfo.AuditDate.Value.ToString(SOConst.LongTimeFormat) : string.Empty);
                    variables.Add("RequestSysNo", requestInfo.RequestID);
                    variables.Add("Stock", requestInfo.Stock == null ? "" : requestInfo.Stock.StockName);
                    variables.Add("Status", requestInfo.RequestStatus.ToDisplayText());
                    variables.Add("OutStockUser", requestInfo.OutStockUser.UserDisplayName);
                    variables.Add("OutStockDate", requestInfo.OutStockDate.HasValue ? requestInfo.OutStockDate.Value.ToString(SOConst.LongTimeFormat) : string.Empty);
                    variables.Add("Note", requestInfo.Note);

                    DataTable dtProduct = new DataTable();
                    dtProduct.Columns.AddRange(new System.Data.DataColumn[]
                    {
                        new DataColumn("ProductID"),
                        new DataColumn("ProductName"),
                        new DataColumn("Price"),
                        new DataColumn("Quantity"),
                        new DataColumn("Amount")
                    });
                    decimal totalAmount = 0M;
                    requestInfo.AdjustItemInfoList.ForEach(p =>
                    {
                        totalAmount             += p.AdjustQuantity * p.AdjustCost;
                        DataRow drProduct        = dtProduct.NewRow();
                        drProduct["ProductID"]   = p.AdjustProduct.ProductID;
                        drProduct["ProductName"] = p.AdjustProduct.ProductBasicInfo.ProductTitle;
                        drProduct["Price"]       = p.AdjustCost.ToString("N2");
                        drProduct["Quantity"]    = p.AdjustQuantity;
                        drProduct["Amount"]      = (p.AdjustQuantity * p.AdjustCost).ToString("N2");
                        dtProduct.Rows.Add(drProduct);
                    });
                    variables.Add("TotalAmount", totalAmount.ToString("N2"));
                    tableVariables.Add("ProductList", dtProduct);
                }
            }
        }
 /// <summary>
 /// 发送内部邮件
 /// </summary>
 /// <param name="mailInfoMessage"></param>
 /// <param name="isAsync"></param>
 public static void SendInternalEmail(string templateID, KeyValueVariables keyValueVariables,
                                      KeyTableVariables keyTableVariables)
 {
     try
     {
         ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(null, null, null, templateID,
                                                                   keyValueVariables, keyTableVariables, false, true);
     }
     catch (Exception ex)
     {
         ExceptionHelper.HandleException(ex);
     }
 }
Exemple #9
0
        public void BuildData(NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            int           soSysNo        = 0;
            int           warhouseNumber = 0;
            string        param          = requestPostData["SOSysNo"];
            string        param1         = requestPostData["WareHouseNumber"];
            SOInvoiceInfo soInvoice      = null;
            bool          hasError       = false;

            DataTable table      = CreatePrintData();
            DataTable errorTable = new DataTable();

            try
            {
                if (!int.TryParse(param, out soSysNo))
                {
                    throw new BizException(string.Format(ResouceManager.GetMessageString("Invoice.InvoicePrint", "InvoicePrint_IllegalOrderID"), param));
                }
                if (!int.TryParse(param1, out warhouseNumber))
                {
                    throw new BizException(string.Format(ResouceManager.GetMessageString("Invoice.InvoicePrint", "InvoicePrint_IllegalStockID"), param1));
                }

                soInvoice = ObjectFactory <InvoiceReportProcessor> .Instance.GetNew(new SOInvoiceInfo
                {
                    SOInfo = new SOInfo
                    {
                        SOSysNo    = soSysNo,
                        StockSysNo = warhouseNumber
                    },
                    InvoiceInfoList = new List <InvoiceInfo>()
                });
            }
            catch (BizException ex)
            {
                hasError = true;
                InitErrorTable(ex, errorTable);
            }

            if (!hasError)
            {
                InitData(soInvoice, table);
            }
            tableVariables.Add("Error", errorTable);
            tableVariables.Add("PrintInvoiceDetail", table);
        }
Exemple #10
0
        public void RenderHtmlForPrint(HttpContext context, string templateFileFullPath,
                                       KeyValueVariables variables, KeyTableVariables tableVariables)
        {
            // 禁用缓存
            context.Response.Expires         = -1;
            context.Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);
            context.Response.CacheControl    = "no-cache";
            context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
            context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            context.Response.Cache.SetNoStore();

            context.Response.ContentType = "text/html";

            string html = BuildHtml(templateFileFullPath, variables, tableVariables);

            context.Response.Write(html);
            context.Response.Flush();
        }
Exemple #11
0
        public void BuildData(NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();
            string sysNo = requestPostData["SysNo"];

            if (!string.IsNullOrEmpty(sysNo))
            {
                StringBuilder sbRegisterSysNo = new StringBuilder();
                StringBuilder sbCustomerDesc  = new StringBuilder();
                StringBuilder sbBriefNames    = new StringBuilder();
                CustomerInfo  customer;
                SOBaseInfo    soBaseInfo;
                DeliveryInfo  deliveryInfo;
                int           requestSysNo;
                string        deliveryUserName, businessModel;

                if (int.TryParse(sysNo, out requestSysNo))
                {
                    var request = ObjectFactory <RequestAppService> .Instance.LoadWithRegistersBySysNo(requestSysNo, out customer, out soBaseInfo, out deliveryInfo, out deliveryUserName, out businessModel);

                    if (request.Registers != null)
                    {
                        foreach (RMARegisterInfo register in request.Registers)
                        {
                            sbRegisterSysNo.Append(string.Format("{0}, ", register.SysNo.Value.ToString()));
                            sbBriefNames.Append(string.Format("{0}<br />", register.BasicInfo.ProductName));
                            sbCustomerDesc.Append(string.Format("{0}<br />", register.BasicInfo.CustomerDesc));
                        }
                    }
                    variables.Add("Now", DateTime.Now.ToString("yyyy-MM-dd"));
                    variables.Add("SOSysNo", request.SOSysNo);
                    variables.Add("Contact", request.Contact);
                    variables.Add("Phone", request.Phone);
                    variables.Add("Address", request.Address);
                    variables.Add("RegisterSysNoString", sbRegisterSysNo.ToString().Substring(0, sbRegisterSysNo.Length - 2));
                    variables.Add("BriefNameString", sbBriefNames.ToString());
                    variables.Add("CustomerDescString", sbCustomerDesc.ToString());
                }
            }
        }
        public void SendProductRingEmail(string emailTemplate, List <ProductRingDetailInfo> detailList)
        {
            if (null != detailList && detailList.Count > 0)
            {
                DataTable dtProduct = new DataTable();
                dtProduct.Columns.AddRange(new DataColumn[]
                {
                    new DataColumn("ProductID"),
                    new DataColumn("ProductName"),
                    new DataColumn("BatchNumber"),
                    new DataColumn("ActualQty"),
                    new DataColumn("LeftRingDays"),
                });

                KeyTableVariables keyTablesVariables = new KeyTableVariables();
                KeyValueVariables keyValueVariables  = new KeyValueVariables();

                keyValueVariables.Add("Receiver", detailList[0].Email);

                detailList.ForEach(p =>
                {
                    DataRow dr         = dtProduct.NewRow();
                    dr["ProductID"]    = p.ProductID;
                    dr["ProductName"]  = p.ProductName;
                    dr["BatchNumber"]  = p.BatchNumber;
                    dr["ActualQty"]    = p.ActualQty;
                    dr["LeftRingDays"] = p.LeftRingDays;

                    dtProduct.Rows.Add(dr);
                });

                keyTablesVariables.Add("ProductList", dtProduct);

                ExternalDomainBroker.SendInternalEmail(detailList[0].Email.Trim(), emailTemplate, keyValueVariables, keyTablesVariables);
                //ExternalDomainBroker.SendExternalEmail(detailList[0].Email, emailTemplate, keyValueVariables, keyTablesVariables,"zh-CN");
            }
        }
        /// <summary>
        /// 发送月底库存邮件
        /// </summary>
        /// <param name="emailList">发送地址列表</param>
        /// <param name="title">标题可以不填</param>
        /// <param name="content">发送内容</param>
        /// <returns>返回成功发送列表</returns>
        public void SendInventoryEmailEndOfMonth(string address, string language, string downloadPath, string savePath)
        {
            DataTable dt = ObjectFactory <IInventoryQueryDA> .Instance.QueryInventoryListEndOfMouth();

            KeyTableVariables keyTablesVariables = new KeyTableVariables();
            KeyValueVariables keyValueVariables  = new KeyValueVariables();
            List <DataTable>  data = new List <DataTable>();

            data.Add(dt);
            //keyTablesVariables.Add("InventoryList", dt);
            List <ColumnData> columndatalist = new List <ColumnData> ();
            ColumnData        columndata     = null;

            columndata = new ColumnData()
            {
                FieldName = "StockName", FooterType = FooterType.None, Width = 30, Title = "渠道仓库"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "ProductID", FooterType = FooterType.None, Width = 30, Title = "商品ID"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "ProductName", FooterType = FooterType.None, Width = 30, Title = "商品名称"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "VendorName", FooterType = FooterType.None, Width = 30, Title = "供应商"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "AccountQty", FooterType = FooterType.None, Width = 30, Title = "财务库存"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "CostAmount", FooterType = FooterType.None, Width = 30, Title = "成本金额"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "AvailableQty", FooterType = FooterType.None, Width = 30, Title = "可用库存"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "AllocatedQty", FooterType = FooterType.None, Width = 30, Title = "被占用库存"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "OrderQty", FooterType = FooterType.None, Width = 30, Title = "被订购数量"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "VirtualQty", FooterType = FooterType.None, Width = 30, Title = "虚库数量"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "ConsignQty", FooterType = FooterType.None, Width = 30, Title = "代销库存"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "PurchaseQty", FooterType = FooterType.None, Width = 30, Title = "采购在途数量"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "ShiftInQty", FooterType = FooterType.None, Width = 30, Title = "移入在途数量"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "ShiftOutQty", FooterType = FooterType.None, Width = 30, Title = "移出在途数量"
            }; columndatalist.Add(columndata);
            columndata = new ColumnData()
            {
                FieldName = "PositionInWarehouse", FooterType = FooterType.None, Width = 30, Title = "库位"
            }; columndatalist.Add(columndata);

            List <List <ColumnData> > columnList = new List <List <ColumnData> >();

            columnList.Add(columndatalist);

            string fileName = "";

            byte[] excelByte = new ExcelFileExporter().CreateFile(data, columnList, null, out fileName, "月底库存报表");

            string     excelName = System.Guid.NewGuid().ToString();
            FileStream fs        = new FileStream(String.Format("{0}//{1}.xls", savePath, excelName), FileMode.Create, FileAccess.Write);

            fs.Write(excelByte, 0, excelByte.Length);
            fs.Close();



            keyValueVariables.Add("Titel", String.Format("月底库存报表,总数{0}条", dt.Rows.Count));
            keyValueVariables.Add("Content", String.Format("库存数据已生成excel文件,请点击<a href=\"{0}/{1}.xls\">下载</a>", downloadPath, excelName));

            ExternalDomainBroker.SendExternalEmail(address, "Inventory_EndOfMonth", keyValueVariables, keyTablesVariables, language);
        }
Exemple #14
0
 /// <summary>
 /// 发送模板邮件
 /// </summary>
 /// <param name="toAddress">收件人地址(多个地址用;隔开),默认先加载模板中配置的ToAddress</param>
 /// <param name="templateID">模板ID</param>
 /// <param name="keyValueVariables">Key-Values变量</param>
 /// <param name="keyTableVariables">Key-Tables变量</param>
 /// <param name="isInternalMail">是否为内部邮件</param>
 public static void SendEmailByTemplate(string toAddress, string templateID, KeyValueVariables keyValueVariables, KeyTableVariables keyTableVariables, bool isInternalMail)
 {
     SendEmailByTemplate(toAddress, string.Empty, string.Empty, templateID, keyValueVariables, keyTableVariables, isInternalMail, true, Thread.CurrentThread.CurrentCulture.Name);
 }
        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 #16
0
        public ActionResult BuildEmailTemplate()
        {
            KeyValueVariables keyValues = new KeyValueVariables();

            keyValues.Add("StockName", "香港九龙仓");
            keyValues.Add("ETATime", DateTime.Now.Date);
            keyValues.Add("CompanyName", "公司名称");
            keyValues.Add("CompanyAddress", "公司地址");
            keyValues.Add("CompanyTel", "123456789");
            keyValues.Add("CompanyWebSite", "http://www.xxx.com");
            keyValues.Add("StockAddress", "仓库地址");
            keyValues.Add("StockContact", "仓库联系人");
            keyValues.Add("StockTel", "仓库电话");
            keyValues.Add("displayNo", "");


            keyValues.Add("numberString", "1231312312312321");
            keyValues.Add("shipTypeString", "默认 配送方式");


            keyValues.Add("totalInPage", "5000.00");
            keyValues.Add("totalAmt", "18000.00");
            keyValues.Add("totalReturnPoint", "100");
            keyValues.Add("PMName", "产品经理姓名");
            keyValues.Add("CurrencyName", "港币");

            keyValues.Add("entity.POID", "123");
            keyValues.Add("DateTime.Now", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            keyValues.Add("vendor.VendorName", "供应商名称");
            keyValues.Add("vendor.SysNo", "123");
            keyValues.Add("vendor.Address", "供应商联系地址");
            keyValues.Add("vendor.Contact", "供应商联系人");
            keyValues.Add("vendor.Fax", "0123445");
            keyValues.Add("entity.InTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            keyValues.Add("entity.PayTypeName", "默认支付方式");
            keyValues.Add("entity.Memo", "备注信息备注信息备注信息备注信息备注信息");
            keyValues.Add("entity.InStockMemo", "入库备注入库备注入库备注入库备注入库备注入库备注入库备注");
            keyValues.Add("SendTimeString", DateTime.Now.ToString());

            KeyTableVariables keyTables            = new KeyTableVariables();
            DataTable         productAccessoryList = new DataTable();

            productAccessoryList.Columns.Add("ProductID");
            productAccessoryList.Columns.Add("AccessoriesID");
            productAccessoryList.Columns.Add("AccessoriesIDAndName");
            productAccessoryList.Columns.Add("Qty");


            DataTable productItemList = new DataTable();

            productItemList.Columns.Add("item.ProductID");
            productItemList.Columns.Add("item.IsVirtualStockProduct");
            productItemList.Columns.Add("item.ProductMode");
            productItemList.Columns.Add("item.BriefName");
            productItemList.Columns.Add("item.CurrencySymbol");
            productItemList.Columns.Add("item.OrderPrice");
            productItemList.Columns.Add("item.PurchaseQty");
            productItemList.Columns.Add("item.Quantity");
            productItemList.Columns.Add("item.PurchaseQtyOrderPrice");
            productItemList.Columns.Add("item.QuantityOrderPrice");


            for (int i = 0; i < 5; i++)
            {
                DataRow dr = productItemList.NewRow();
                dr["item.ProductID"]             = "ProductID-" + i.ToString();
                dr["item.IsVirtualStockProduct"] = "IsVirtualStockProduct-" + i;
                dr["item.ProductMode"]           = "ProductMode-" + i;
                dr["item.BriefName"]             = "BriefName-" + i;
                dr["item.CurrencySymbol"]        = "港币";
                dr["item.OrderPrice"]            = (i + 1) * 100;
                dr["item.PurchaseQty"]           = (i + 1) * 5;
                dr["item.Quantity"] = (i + 1) * 5;
                dr["item.PurchaseQtyOrderPrice"] = ((i + 1) * 5 * 100).ToString("#########0.00");
                dr["item.QuantityOrderPrice"]    = ((i + 1) * 5 * 100).ToString("#########0.00");
                productItemList.Rows.Add(dr);
            }

            for (int i = 0; i < 5; i++)
            {
                DataRow dr = productAccessoryList.NewRow();
                dr["ProductID"]            = "ProductID-" + i;
                dr["AccessoriesID"]        = "AccessoriesID-" + i;
                dr["AccessoriesIDAndName"] = "AccessoriesIDAndName-" + i;
                dr["Qty"] = (i + 1) * 5;
                productAccessoryList.Rows.Add(dr);
            }

            keyTables.Add("tblProductItemsList", productItemList);
            keyTables.Add("tblProductAccessoryList", productAccessoryList);

            MailTemplate template = MailHelper.BuildMailTemplate("PO_AutoCloseMail", keyValues, keyTables);

            return(Content(template.Body));
        }
Exemple #17
0
 public static void BuildEmailBodyByTemplate(MailMessage mailInfoMessage, string templateID, KeyValueVariables keyValues, KeyTableVariables keyTables, string languageCode)
 {
     if (!string.IsNullOrEmpty(templateID))
     {
         MailTemplate getTemplate = GetTemplateByID(templateID, languageCode);
         mailInfoMessage.FromName          = getTemplate.Sender;
         mailInfoMessage.DisplaySenderName = getTemplate.SenderDisplayName;
         mailInfoMessage.ToName            = (!string.IsNullOrEmpty(getTemplate.To) ? getTemplate.To + ";" : string.Empty) + mailInfoMessage.ToName;
         mailInfoMessage.IsHtmlType        = getTemplate.IsHtmlType;
         mailInfoMessage.Priority          = getTemplate.MailPriority;
         //构建MailSubject:
         mailInfoMessage.Subject = BuildMailSubject(getTemplate.Subject, keyValues);
         //构建MailBody:
         mailInfoMessage.Body = TemplateString.BuildHtml(getTemplate.Body, keyValues, keyTables);
     }
     else
     {
         throw new ArgumentException("参数不能为null或空白字符串!", "templateID");
     }
 }
Exemple #18
0
        public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            //throw new NotImplementedException();

            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            string settleSysNoStr = requestPostData["ConsignSysNo"];

            int settleSysNo = int.Parse(settleSysNoStr);

            //获取代销单i型纳西】
            ConsignSettlementInfo consignSettlementInfo = ObjectFactory <ConsignSettlementProcessor> .Instance.LoadConsignSettlementInfo(settleSysNo);

            //获取商家信息
            VendorInfo VendorInfo = ObjectFactory <VendorProcessor> .Instance.LoadVendorInfo(consignSettlementInfo.VendorInfo.SysNo.Value);

            //获取代销单商品信息


            //结算单号
            variables.Add("SettleSysNo", consignSettlementInfo.ReferenceSysNo);
            //合同号   :
            variables.Add("Agreement", "");//空
            //结算年月
            variables.Add("ConsignRange", consignSettlementInfo.ConsignRange);
            //打印日期
            variables.Add("PrintDate", DateTime.Now.Date.ToString("yyyy-MM-dd"));
            //收款单位——全称
            variables.Add("PayeeName", VendorInfo.VendorBasicInfo.VendorBriefName);
            //收款单位-供货商代码
            variables.Add("PayeeNo", VendorInfo.VendorBasicInfo.VendorID);
            //开户行
            variables.Add("PayeeBack", VendorInfo.VendorFinanceInfo.BankName);
            //账号
            variables.Add("PayeeBackCardNo", VendorInfo.VendorFinanceInfo.AccountNumber);

            //付款单位-全称
            variables.Add("PayerName", "泰隆优选");
            //开户行
            variables.Add("PayerBack", "");       //空
            //账号
            variables.Add("PayerBackCardNo", ""); //空
            //付款部门
            variables.Add("PayerDepartment", ""); //空


            string DefaultMony = ((int)0).ToString("C");

            //供应商提供税票
            //价款
            variables.Add("Cost", DefaultMony);
            //税金
            variables.Add("Tax", DefaultMony);
            //价款税金合计
            variables.Add("TaxAndCost", DefaultMony);

            //17
            //价款
            variables.Add("17Cost", DefaultMony);
            //税金
            variables.Add("17Tax", DefaultMony);
            //价款税金合计
            variables.Add("17TaxAndCost", DefaultMony);

            //13
            //价款
            variables.Add("13Cost", DefaultMony);
            //税金
            variables.Add("13Tax", DefaultMony);
            //价款税金合计
            variables.Add("13TaxAndCost", DefaultMony);

            //other
            //价款
            variables.Add("OtCost", DefaultMony);
            //税金
            variables.Add("OtTax", DefaultMony);
            //价款税金合计
            variables.Add("OtTaxAndCost", DefaultMony);

            //类型
            var taxRateData = consignSettlementInfo.TaxRateData;


            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));
            };

            decimal jiakuan    = Jiakuan(taxRateData.Value, consignSettlementInfo.TotalAmt.Value);
            string  jiakuanStr = jiakuan.ToString("C");
            string  jieSuam    = Shuijin(taxRateData.Value, consignSettlementInfo.TotalAmt.Value).ToString("C");
            string  zongJine   = consignSettlementInfo.TotalAmt.Value.ToString("C");

            variables["Cost"]       = jiakuanStr;
            variables["Tax"]        = jieSuam;
            variables["TaxAndCost"] = zongJine;

            if (taxRateData == PurchaseOrderTaxRate.Percent017)
            {
                variables["17Cost"]       = jiakuanStr;
                variables["17Tax"]        = jieSuam;
                variables["17TaxAndCost"] = zongJine;
            }
            else if (taxRateData == PurchaseOrderTaxRate.Percent013)
            {
                variables["13Cost"]       = jiakuanStr;
                variables["13Tax"]        = jieSuam;
                variables["13TaxAndCost"] = zongJine;
            }
            else
            {
                variables["OtCost"]       = jiakuanStr;
                variables["OtTax"]        = jieSuam;
                variables["OtTaxAndCost"] = zongJine;
            }

            var deduct = ObjectFactory <DeductProcessor> .Instance.GetSingleDeductBySysNo(VendorInfo.VendorDeductInfo.DeductSysNo.ToString());

            if (deduct == null)
            {
                deduct            = new BizEntity.PO.PurchaseOrder.Deduct();
                deduct.DeductType = DeductType.Temp;
            }
            string deductTypeStr = EnumHelper.GetDescription(deduct.DeductType, typeof(DeductType));

            //扣款项目
            variables.Add("DeducType", deductTypeStr); //****

            //扣款金额
            variables.Add("DeducMoney", consignSettlementInfo.DeductAmt.ToString("C"));
            //备注
            variables.Add("Memo", "");//空

            //扣款合计:
            variables.Add("DeducMoneySum", consignSettlementInfo.DeductAmt.ToString("C"));

            //本月销售
            decimal amount = 0;

            foreach (var sub in consignSettlementInfo.ConsignSettlementItemInfoList)
            {
                amount += sub.ConsignToAccLogInfo.SalePrice.Value * sub.ConsignToAccLogInfo.ProductQuantity.Value;
            }
            variables.Add("CurrentSale", amount.ToString("C"));
            //实际付款金额
            variables.Add("RealPayMent", consignSettlementInfo.TotalAmt.Value.ToString("C"));

            //业务复核
            variables.Add("BussinessRechecker", consignSettlementInfo.AuditUser.UserName);
        }
Exemple #19
0
 /// <summary>
 /// 发送模板邮件
 /// </summary>
 /// <param name="toAddress">收件人地址(多个地址用;隔开),默认先加载模板中配置的ToAddress</param>
 /// <param name="ccAddress">抄送人地址(多个地址用;隔开)</param>
 /// <param name="bccAddress">暗送人地址(多个地址用;隔开)</param>
 /// <param name="templateID">模板ID</param>
 /// <param name="keyValueVariables">Key-Values变量</param>
 /// <param name="keyTableVariables">Key-Tables变量</param>
 /// <param name="isInternalMail">是否为内部邮件</param>
 /// <param name="isAsyncMail">是否为异步发送邮件</param>
 public static void SendEmailByTemplate(string toAddress, string ccAddress, string bccAddress, string templateID, KeyValueVariables keyValueVariables, KeyTableVariables keyTableVariables, bool isInternalMail, bool isAsyncMail)
 {
     SendEmailByTemplate(toAddress, ccAddress, bccAddress, templateID, keyValueVariables, keyTableVariables, isInternalMail, isAsyncMail, Thread.CurrentThread.CurrentCulture.Name);
 }
Exemple #20
0
        public static string BuildHtml(string html, KeyValueVariables keyValue, KeyTableVariables keyTable)
        {
            List <Node>  nodeList = AnalyseTemplate(html);
            Stack <Node> stack    = new Stack <Node>(nodeList);

            while (stack.Count > 0)
            {
                Node node = stack.Pop();
                if (node.PlaceholdType == PlaceholdType.Table)
                {
                    html = html.Replace(node.OuterHtml, node.UniqueSign);
                }
                else
                {
                    string id = node.ID;
                    bool   show;
                    if (keyValue.ContainsKey(id) && keyValue[id] != null && bool.TryParse(keyValue[id].ToString(), out show) && show)
                    {
                        foreach (var n in node.Children)
                        {
                            stack.Push(n);
                        }
                        nodeList.AddRange(node.Children);
                        html = html.Replace(node.OuterHtml, node.InnerHtml);
                    }
                    else
                    {
                        html = html.Replace(node.OuterHtml, string.Empty);
                    }
                    nodeList.Remove(node);
                }
            }

            // 处理KeyValue
            MatchCollection matchCollectioin = Regex.Matches(html, OUTPUT_PLACE_HOLDER, RegexOptions.IgnoreCase | RegexOptions.Multiline);

            foreach (Match matchField in matchCollectioin)
            {
                if (matchField.Success)
                {
                    if (matchField.Groups["id"] == null || string.IsNullOrWhiteSpace(matchField.Groups["id"].Value))
                    {
                        throw new ApplicationException("no id");
                    }
                    string id = matchField.Groups["id"].Value.Trim();
                    if (keyValue.ContainsKey(id))
                    {
                        html = html.Replace(matchField.Groups[0].Value, CovertToString(keyValue[id]));
                    }
                    else
                    {
                        html = html.Replace(matchField.Groups[0].Value, string.Empty);
                    }
                }
            }

            // 处理循环
            foreach (Node node in nodeList)
            {
                if (keyTable.ContainsKey(node.ID) && keyTable[node.ID] != null)
                {
                    html = html.Replace(node.UniqueSign, node.BuildHtml(keyTable[node.ID]));
                }
                else
                {
                    html = html.Replace(node.UniqueSign, string.Empty);
                }
            }

            return(html);
        }
Exemple #21
0
        public void RenderHtmlForPrint(HttpContext context, string templateFileFullPath,
                                       KeyValueVariables variables, KeyTableVariables tableVariables)
        {
            using (RdlcPrintPage page = new RdlcPrintPage())
            {
                HtmlGenericControl c = new HtmlGenericControl("html");
                page.Controls.Add(c);

                HtmlHead head = new HtmlHead();
                head.ID = "head1";
                c.Controls.Add(head);

                HtmlGenericControl b = new HtmlGenericControl("body");
                c.Controls.Add(b);

                HtmlForm form = new HtmlForm();
                form.ID = "form1";
                b.Controls.Add(form);

                ScriptManager scriptHandler = new ScriptManager();
                scriptHandler.ID = "ScriptManager1";
                form.Controls.Add(scriptHandler);

                ReportViewer rv = new ReportViewer();
                rv.ShowExportControls  = false;
                rv.SizeToReportContent = true;
                rv.Width = new System.Web.UI.WebControls.Unit("100%");
                form.Controls.Add(rv);

                rv.LocalReport.ReportPath = templateFileFullPath;

                if (variables != null)
                {
                    foreach (var entry in variables)
                    {
                        string tmp = CovertToString(entry.Value);
                        rv.LocalReport.SetParameters(new ReportParameter(entry.Key, tmp));
                    }
                }

                rv.LocalReport.DataSources.Clear();
                if (tableVariables != null)
                {
                    foreach (var entry in tableVariables)
                    {
                        rv.LocalReport.DataSources.Add(new ReportDataSource(entry.Key, entry.Value));
                    }
                }

                rv.LocalReport.Refresh();
                page.ProcessRequest(context);
            }

            // 禁用缓存
            context.Response.Expires         = -1;
            context.Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);
            context.Response.CacheControl    = "no-cache";
            context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
            context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            context.Response.Cache.SetNoStore();

            //context.Response.ContentType = "text/html";
            context.Response.Flush();
        }
Exemple #22
0
        private string BuildHtml(string templateFileFullPath, KeyValueVariables variables, KeyTableVariables tableVariables)
        {
            string html = File.ReadAllText(templateFileFullPath, Encoding.UTF8);

            return(TemplateString.BuildHtml(html, variables, tableVariables));
        }
        public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();
            string            getPOSysNo        = requestPostData["POSysNo"];
            string            getPrintAccessory = requestPostData["PrintAccessory"];
            string            getPageTitle      = requestPostData["PrintTitle"];
            PurchaseOrderInfo poInfo            = new PurchaseOrderInfo();


            if (!string.IsNullOrEmpty(getPOSysNo))
            {
                int poSysNo = Convert.ToInt32(getPOSysNo);
                poInfo = PurchaseOrderProcessor.LoadPO(poSysNo);
                poInfo.EIMSInfo.EIMSInfoList = PurchaseOrderProcessor.LoadPOEIMSInfoForPrint(poSysNo);

                #region [构建供应商和采购单的基本信息]
                string getPrintTitle = string.Empty;
                if (poInfo.PurchaseOrderBasicInfo.ConsignFlag == PurchaseOrderConsignFlag.Consign)
                {
                    getPrintTitle = string.Format("采购单({0})", EnumHelper.GetDisplayText(poInfo.PurchaseOrderBasicInfo.ConsignFlag));
                }
                else
                {
                    if (poInfo.PurchaseOrderBasicInfo.PurchaseOrderType.HasValue && poInfo.PurchaseOrderBasicInfo.PurchaseOrderType != PurchaseOrderType.Normal)
                    {
                        getPrintTitle = string.Format("采购单({0})", EnumHelper.GetDisplayText(poInfo.PurchaseOrderBasicInfo.PurchaseOrderType));
                    }
                    else
                    {
                        getPrintTitle = "采购单";
                    }
                }

                variables.Add("PageTitle", HttpUtility.UrlDecode(getPageTitle));
                variables.Add("PrintTitle", getPrintTitle);

                WarehouseInfo getStockInfo   = InventoryBizInteract.GetWarehouseInfoBySysNo(poInfo.PurchaseOrderBasicInfo.StockInfo.SysNo.Value);
                string        getStockName   = getStockInfo.WarehouseName;
                string        CompanyName    = "";
                string        CompanyAddress = "";
                string        ComapnyTel     = "";
                string        CompanyWebsite = "";
                string        StockAddress   = getStockInfo.ReceiveAddress;
                string        StockContact   = getStockInfo.ReceiveContact;
                string        StockTel       = getStockInfo.ReceiveContactPhoneNumber;
                string        ETATime        = poInfo.PurchaseOrderBasicInfo.ETATimeInfo == null || !poInfo.PurchaseOrderBasicInfo.ETATimeInfo.ETATime.HasValue ? string.Empty : poInfo.PurchaseOrderBasicInfo.ETATimeInfo.ETATime.Value.ToString("yyyy-MM-dd HH:mm:ss");
                switch (poInfo.PurchaseOrderBasicInfo.StockInfo.SysNo)
                {
                //case 50:
                //    if (poInfo.PurchaseOrderBasicInfo.ITStockInfo != null && poInfo.PurchaseOrderBasicInfo.ITStockInfo.SysNo.HasValue)
                //    {
                //        string getITStockInfoName = InventoryBizInteract.GetWarehouseInfoBySysNo(poInfo.PurchaseOrderBasicInfo.ITStockInfo.SysNo.Value).WarehouseName;
                //        getStockName = string.Format("经中转到{0}", getITStockInfoName);
                //    }

                //    break;
                case 51:
                    //上海
                    break;

                case 52:
                    //香港:
                    CompanyAddress = "";
                    ComapnyTel     = "";
                    break;

                case 53:
                    //日本:
                    break;

                //case 54:
                //    //成都:
                //    CompanyAddress = "成都双流县大件路西南航空港新地物流园区(西南民大新校区对面)";
                //    ComapnyTel = "15982082844";
                //    break;
                //case 55:
                //    //武汉:
                //    CompanyAddress = "武汉市东西湖区革新大道(四明路与五环路之间)长江物流园C库10号门";
                //    ComapnyTel = "13339983123";
                //    break;
                //case 59:
                //    //上海市闵行:
                //    CompanyAddress = "上海市闵行区虹梅南路3988号2号库";
                //    ComapnyTel = "13122693665";
                //    break;
                default:
                    break;
                }
                variables.Add("StockName", getStockName);
                variables.Add("ETATime", ETATime);
                variables.Add("CompanyName", CompanyName);
                variables.Add("CompanyAddress", CompanyAddress);
                variables.Add("CompanyTel", ComapnyTel);
                variables.Add("CompanyWebSite", CompanyWebsite);

                string getSerialNumber = string.Empty;
                if (poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.InStocked)
                {
                    getSerialNumber = CommonBizInteract.GetSystemConfigurationValue("PONumber", poInfo.CompanyCode);
                    if (!string.IsNullOrEmpty(getSerialNumber))
                    {
                        //TODO:此方法尚未实现:
                        CommonBizInteract.UpdateSystemConfigurationValue("PONumber", (Convert.ToInt32(getSerialNumber) + 1).ToString(), poInfo.CompanyCode);
                    }
                    string getOldSerialNumber = PurchaseOrderProcessor.GetWareHouseReceiptSerialNumber(poInfo.SysNo.Value);
                    //更新PO单当前的流水号:
                    PurchaseOrderProcessor.UpdateWareHouseReceiptSerialNumber(poInfo.SysNo.Value, getSerialNumber);
                    if (!string.IsNullOrEmpty(getOldSerialNumber))
                    {
                        getSerialNumber = string.Format("{0}({1})", getSerialNumber, getOldSerialNumber);
                    }
                }
                else
                {
                    getSerialNumber = "无";
                }

                variables.Add("PrintSerialNumber", getSerialNumber);
                variables.Add("PurchaseOrderID", poInfo.PurchaseOrderBasicInfo.PurchaseOrderID);
                variables.Add("PrintTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

                variables.Add("VendorNameAndSysNo", string.Format("{0}({1})", poInfo.VendorInfo.VendorBasicInfo.VendorNameLocal, poInfo.VendorInfo.SysNo.Value));
                variables.Add("VendorAddress", poInfo.VendorInfo.VendorBasicInfo.Address);
                variables.Add("StockAddress", StockAddress);
                variables.Add("StockContact", StockContact);
                variables.Add("StockTel", StockTel);

                string getInStockDate = string.Empty;
                //if (poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.InStocked)
                //{
                //    getInStockDate = poInfo.PurchaseOrderBasicInfo.InTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
                //}
                //if (poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.PartlyInStocked)
                //{
                //    getInStockDate = poInfo.PurchaseOrderBasicInfo.InTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
                //}
                if (poInfo.PurchaseOrderBasicInfo.InTime.HasValue)
                {
                    getInStockDate = poInfo.PurchaseOrderBasicInfo.InTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
                }
                variables.Add("InStockDate", getInStockDate);
                variables.Add("CreateUserName", CommonBizInteract.GetUserFullName(poInfo.PurchaseOrderBasicInfo.CreateUserSysNo.Value.ToString(), true));
                variables.Add("PayTypeName", poInfo.VendorInfo.VendorFinanceInfo.PayPeriodType.PayTermsName);
                variables.Add("VendorContact", poInfo.VendorInfo.VendorBasicInfo.Contact);
                variables.Add("VendorPhoneAndFax", poInfo.VendorInfo.VendorBasicInfo.Phone + " FAX : " + poInfo.VendorInfo.VendorBasicInfo.Fax);
                variables.Add("ShipTypeName", poInfo.PurchaseOrderBasicInfo.ShippingType.ShippingTypeName);
                variables.Add("CurrencyName", poInfo.PurchaseOrderBasicInfo.CurrencyName);
                variables.Add("Memo", poInfo.PurchaseOrderBasicInfo.MemoInfo.Memo);
                variables.Add("InStockMemo", poInfo.PurchaseOrderBasicInfo.MemoInfo.InStockMemo);

                string  getTotalAmt         = string.Empty;
                string  getTotalReturnPoint = string.Empty;
                decimal?eimsAmt             = 0.00m;
                decimal?totalInPage         = 0;
                poInfo.POItems.ForEach(x =>
                {
                    totalInPage += x.PurchaseQty * x.OrderPrice;
                });
                poInfo.EIMSInfo.EIMSInfoList.ForEach(x =>
                {
                    eimsAmt += x.EIMSAmt.HasValue ? x.EIMSAmt.Value : 0m;
                });
                if (eimsAmt > 0.00m)
                {
                    getTotalAmt         = poInfo.PurchaseOrderBasicInfo.CurrencySymbol + Convert.ToDecimal(totalInPage - eimsAmt).ToString("f2");
                    getTotalReturnPoint = "产品总价:" + poInfo.PurchaseOrderBasicInfo.CurrencySymbol + totalInPage.Value.ToString("f2") + " &nbsp;&nbsp; " + "使用返点:" + eimsAmt.Value.ToString("f2");
                }
                else
                {
                    getTotalAmt         = poInfo.PurchaseOrderBasicInfo.CurrencySymbol + totalInPage.Value.ToString("f2");
                    getTotalReturnPoint = "";
                }

                variables.Add("TotalReturnPoint", getTotalReturnPoint);
                variables.Add("TotalAmt", getTotalAmt);
                #endregion

                #region [构建商品列表信息]

                bool needShowInStockQty = ((poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.PartlyInStocked || poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.InStocked || poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.SystemClosed || poInfo.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.ManualClosed) == true ? true : false);
                variables.Add("NeedShowInStockQty", needShowInStockQty);

                int     purchaseQtyTotal = 0;
                int     quantityTotal    = 0;
                decimal amountTotal      = 0.00m;

                DataTable tblProductInfo = new DataTable();
                tblProductInfo.Columns.Add("ProductID");
                tblProductInfo.Columns.Add("ProductMode");
                tblProductInfo.Columns.Add("BMCode");
                tblProductInfo.Columns.Add("BriefName");
                tblProductInfo.Columns.Add("OrderPrice");
                tblProductInfo.Columns.Add("PurchaseQty");
                tblProductInfo.Columns.Add("InStockQty");
                tblProductInfo.Columns.Add("ProductPriceSummary");
                tblProductInfo.Columns.Add("NeedShowInStockQtyHtml");

                tblProductInfo.Columns.Add("TaxRateType");

                poInfo.POItems.ForEach(x =>
                {
                    DataRow dr                   = tblProductInfo.NewRow();
                    dr["ProductID"]              = x.ProductID + (x.IsVirtualStockProduct == true ? "[虚库商品]" : string.Empty);
                    dr["ProductMode"]            = x.ProductMode;
                    dr["BMCode"]                 = x.BMCode;
                    dr["NeedShowInStockQtyHtml"] = needShowInStockQty;
                    dr["BriefName"]              = x.BriefName;
                    dr["OrderPrice"]             = poInfo.PurchaseOrderBasicInfo.CurrencySymbol + x.OrderPrice.Value.ToString("f2");
                    dr["PurchaseQty"]            = x.PurchaseQty;
                    dr["InStockQty"]             = x.Quantity;
                    dr["ProductPriceSummary"]    = (needShowInStockQty ? (x.Quantity.Value * x.OrderPrice.Value).ToString("f2") : (x.PurchaseQty.Value * x.OrderPrice.Value).ToString("f2"));
                    dr["TaxRateType"]            = ((int)poInfo.PurchaseOrderBasicInfo.TaxRateType.Value).ToString();//税率
                    tblProductInfo.Rows.Add(dr);

                    purchaseQtyTotal += x.PurchaseQty.Value;
                    quantityTotal    += x.Quantity.Value;
                    amountTotal      += (needShowInStockQty ? x.Quantity.Value * x.OrderPrice.Value : x.PurchaseQty.Value * x.OrderPrice.Value);
                });

                tableVariables.Add("tblProductList", tblProductInfo);
                //总和:
                variables.Add("PurchaseQtyTotal", purchaseQtyTotal);
                variables.Add("NeedShowInStockQtySummary", needShowInStockQty);
                variables.Add("QuantityTotal", needShowInStockQty ? quantityTotal.ToString() : string.Empty);
                variables.Add("AmountTotal", amountTotal.ToString("f2"));

                #endregion

                #region 构建合计信息

                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));
                };

                Func <decimal?, decimal> IsNullDecimal = (a) =>
                {
                    if (a != null && a.HasValue)
                    {
                        return(a.Value);
                    }
                    else
                    {
                        return(0m);
                    }
                };

                var taxAndCost    = IsNullDecimal(poInfo.PurchaseOrderBasicInfo.TotalActualPrice);
                var taxAndCostStr = taxAndCost.ToString("C");
                var allCost       = Jiakuan(poInfo.PurchaseOrderBasicInfo.TaxRateType.Value, taxAndCost);
                var allCostStr    = allCost.ToString("C");
                var allTax        = Shuijin(poInfo.PurchaseOrderBasicInfo.TaxRateType.Value, taxAndCost);
                var allTaxStr     = allTax.ToString("C");

                variables.Add("AllCost", allCostStr);
                variables.Add("AllTax", allTaxStr);
                variables.Add("TaxAndCost", taxAndCostStr);
                #endregion

                #region [构建配件信息]
                if (getPrintAccessory == "1")
                {
                    DataTable dtPOAccessories    = PurchaseOrderProcessor.GetPurchaseOrderAccessories(poInfo.SysNo.Value);
                    DataTable tblAccessoriesList = new DataTable();
                    tblAccessoriesList.Columns.Add("ProductID");
                    tblAccessoriesList.Columns.Add("AccessoryIDAndName");
                    tblAccessoriesList.Columns.Add("Qty");

                    bool needShowAccessoriesList = dtPOAccessories == null || dtPOAccessories.Rows.Count <= 0 ? false : true;
                    variables.Add("NeedShowAccessoriesList", needShowAccessoriesList);
                    if (needShowAccessoriesList)
                    {
                        foreach (DataRow dr in dtPOAccessories.Rows)
                        {
                            DataRow drRow = tblAccessoriesList.NewRow();
                            drRow["ProductID"]          = dr["ProductID"].ToString();
                            drRow["AccessoryIDAndName"] = dr["AccessoriesID"].ToString() + "]" + dr["AccessoriesIDAndName"].ToString();
                            drRow["Qty"] = dr["Qty"].ToString();
                            tblAccessoriesList.Rows.Add(drRow);
                        }
                    }
                    tableVariables.Add("tblAccessoriesList", tblAccessoriesList);
                }
                else
                {
                    variables.Add("NeedShowAccessoriesList", false);
                }
                #endregion

                #region [构建返点信息]

                decimal eimsAmtTotal             = 0.00m;
                decimal usedThisPlaceAmountTotal = 0.00m;

                bool needShowEIMSList = poInfo.EIMSInfo == null || poInfo.EIMSInfo.EIMSInfoList.Count <= 0 ? false : true;
                variables.Add("NeedShowEIMSList", needShowEIMSList);
                DataTable tblEIMSList = new DataTable();
                tblEIMSList.Columns.Add("EIMSNo");
                tblEIMSList.Columns.Add("EIMSName");
                tblEIMSList.Columns.Add("EIMSTotalAmt");
                tblEIMSList.Columns.Add("RelateNotReceivedAmount");
                tblEIMSList.Columns.Add("ReceivedAmount");
                tblEIMSList.Columns.Add("EIMSAmt");
                tblEIMSList.Columns.Add("UseThisPlaceAmount");
                tblEIMSList.Columns.Add("LeaveUseThisPlaceAmount");

                if (needShowEIMSList)
                {
                    foreach (var item in poInfo.EIMSInfo.EIMSInfoList)
                    {
                        DataRow dr = tblEIMSList.NewRow();
                        dr["EIMSNo"]                  = item.EIMSSysNo;
                        dr["EIMSName"]                = item.EIMSName;
                        dr["EIMSTotalAmt"]            = item.EIMSTotalAmt.HasValue ? item.EIMSTotalAmt.Value.ToString("f2") : "0.00";
                        dr["RelateNotReceivedAmount"] = (item.RelateAmount - item.ReceivedAmount).HasValue ? (item.RelateAmount - item.ReceivedAmount).Value.ToString("f2") : "0.00";
                        dr["ReceivedAmount"]          = item.ReceivedAmount.HasValue ? item.ReceivedAmount.Value.ToString("f2") : "0.00";
                        dr["EIMSAmt"]                 = item.EIMSAmt.HasValue ? item.EIMSAmt.Value.ToString("f2") : "0.00";
                        dr["UseThisPlaceAmount"]      = (item.EIMSAmt - item.LeftAmt).HasValue ? (item.EIMSAmt - item.LeftAmt).Value.ToString("f2") : "0.00";
                        dr["LeaveUseThisPlaceAmount"] = (item.EIMSTotalAmt - item.RelateAmount).HasValue ? (item.EIMSTotalAmt - item.RelateAmount).Value.ToString("f2") : "0.00";

                        tblEIMSList.Rows.Add(dr);

                        eimsAmtTotal             += item.EIMSAmt.HasValue ? item.EIMSAmt.Value : 0;
                        usedThisPlaceAmountTotal += Convert.ToDecimal(dr["UseThisPlaceAmount"].ToString());
                    }
                }
                tableVariables.Add("tblEIMSList", tblEIMSList);
                //总和:
                variables.Add("EimsAmtTotal", eimsAmtTotal.ToString("f2"));
                variables.Add("UsedThisPlaceAmountTotal", usedThisPlaceAmountTotal.ToString("f2"));

                #endregion
            }
        }
Exemple #24
0
        public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();
            string sysNo = requestPostData["SysNo"];

            if (sysNo != null && sysNo.Trim() != String.Empty)
            {
                sysNo = System.Web.HttpUtility.UrlDecode(sysNo);
                int requestSysNo = int.TryParse(sysNo, out requestSysNo) ? requestSysNo : int.MinValue;

                if (requestSysNo > int.MinValue)
                {
                    AdjustRequestInfo requestInfo = ObjectFactory <AdjustRequestAppService> .Instance.GetAdjustRequestInfoBySysNo(requestSysNo);

                    DataTable dtInvoice = new DataTable();
                    dtInvoice.Columns.AddRange(new DataColumn[]
                    {
                        new DataColumn("OutStockDate"),
                        new DataColumn("ReceiveName"),
                        new DataColumn("Contact"),
                        new DataColumn("Address"),
                        new DataColumn("Phone"),
                        new DataColumn("Note"),
                        new DataColumn("CustomerID"),
                        new DataColumn("RequestSysNo"),
                        new DataColumn("UpperAmount"),
                        new DataColumn("ProductList", typeof(DataTable))
                    });
                    tableVariables.Add("InvoiceList", dtInvoice);
                    DataRow dr = dtInvoice.NewRow();
                    dr["ReceiveName"]  = requestInfo.InvoiceInfo.ReceiveName;
                    dr["Contact"]      = requestInfo.InvoiceInfo.ContactAddress;
                    dr["Address"]      = requestInfo.InvoiceInfo.ContactShippingAddress;
                    dr["Phone"]        = requestInfo.InvoiceInfo.ContactPhoneNumber;
                    dr["CustomerID"]   = requestInfo.InvoiceInfo.CustomerID;
                    dr["RequestSysNo"] = requestInfo.SysNo;
                    dr["OutStockDate"] = requestInfo.OutStockDate.HasValue ? requestInfo.OutStockDate.Value.ToString(SOConst.DateFormat) : string.Empty;
                    dr["Note"]         = requestInfo.InvoiceInfo.Note;
                    DataTable dtProduct = new DataTable();
                    dtProduct.Columns.AddRange(new System.Data.DataColumn[]
                    {
                        new DataColumn("ProductID"),
                        new DataColumn("ProductName"),
                        new DataColumn("Price"),
                        new DataColumn("Quantity"),
                        new DataColumn("Amount")
                    });

                    decimal totalAmount = 0M;
                    int     i           = 0;
                    requestInfo.AdjustItemInfoList.ForEach(p =>
                    {
                        i++;
                        totalAmount             += p.AdjustQuantity * p.AdjustCost;
                        DataRow drProduct        = dtProduct.NewRow();
                        drProduct["ProductID"]   = p.AdjustProduct.ProductID;
                        drProduct["ProductName"] = p.AdjustProduct.ProductBasicInfo.ProductBriefTitle;
                        drProduct["Price"]       = p.AdjustCost.ToString("N2");
                        drProduct["Quantity"]    = p.AdjustQuantity;
                        drProduct["Amount"]      = (p.AdjustQuantity * p.AdjustCost).ToString("N2");
                        dtProduct.Rows.Add(drProduct);

                        if (i % 6 == 0 || i == requestInfo.AdjustItemInfoList.Count)
                        {
                            dr["ProductList"] = dtProduct;
                            dr["UpperAmount"] = MoneyUtility.GetChineseMoney(totalAmount);
                            dtInvoice.Rows.Add(dr);
                            if (i != requestInfo.AdjustItemInfoList.Count - 1)
                            {
                                dtProduct   = dtProduct.Clone();
                                DataRow tdr = dtInvoice.NewRow();
                                // dtInvoice.Rows.Add(tdr);
                                tdr["ReceiveName"]  = dr["ReceiveName"];
                                tdr["Contact"]      = dr["Contact"];
                                tdr["Address"]      = dr["Address"];
                                tdr["Phone"]        = dr["Phone"];
                                tdr["CustomerID"]   = dr["CustomerID"];
                                tdr["RequestSysNo"] = dr["RequestSysNo"];
                                tdr["OutStockDate"] = dr["OutStockDate"];
                                tdr["Note"]         = dr["Note"];
                                dr = tdr;
                                dtProduct.Rows.Clear();
                            }
                        }
                    });
                }
            }
        }
        public void BuildData(NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            int    sysNo       = 0;
            string sysNoString = requestPostData["SysNo"];
            bool   isNum       = int.TryParse(sysNoString, out sysNo);

            if (isNum && sysNo > 0)
            {
                ObjectFactory <RequestAppService> .Instance.PrintLabels(sysNo);

                CustomerInfo customer;
                SOBaseInfo   soBaseInfo;
                DeliveryInfo deliveryInfo;
                string       deliveryUserName, businessModel;

                var requestView = ObjectFactory <RequestAppService> .Instance.LoadWithRegistersBySysNo(sysNo, out customer, out soBaseInfo, out deliveryInfo, out deliveryUserName, out businessModel);

                if (requestView != null && requestView.Registers != null && requestView.Registers.Count > 0)
                {
                    List <Register> regiserSysNoBarCodeList = new List <Register>();
                    requestView.Registers.ForEach(item =>
                    {
                        string barCode = Convert.ToBase64String(BarCode39Helper.DrawImage(13, item.SysNo.ToString().PadLeft(12, '0')));

                        regiserSysNoBarCodeList.Add(new Register
                        {
                            RegisterSysNoPrintCode = barCode
                        });
                    });

                    if (requestView.InvoiceType.HasValue && requestView.StockType.HasValue && requestView.ShippingType.HasValue)
                    {
                        if (requestView.InvoiceType != InvoiceType.SELF || requestView.StockType != StockType.SELF || requestView.ShippingType != ECCentral.BizEntity.Invoice.DeliveryType.SELF)
                        {
                            var merchantInfo = ObjectFactory <IPOBizInteract> .Instance.GetVendorInfoSysNo(requestView.MerchantSysNo.Value);

                            string briefName = merchantInfo.VendorBasicInfo.VendorBriefName ?? (merchantInfo.VendorBasicInfo.VendorNameLocal ?? "");
                            if (briefName.Length > 5)
                            {
                                briefName = briefName.Substring(0, 6);
                            }

                            DataTable t = new DataTable();
                            t.Columns.Add("RegisterSysNoPrintCode");

                            regiserSysNoBarCodeList.ForEach(p => {
                                t.Rows.Add(p.RegisterSysNoPrintCode);
                            });

                            variables.Add("RequestID", requestView.RequestID);
                            variables.Add("MerchantName", briefName);

                            tableVariables.Add("RegisterView", t);
                        }
                    }
                }
            }
        }
Exemple #26
0
 /// <summary>
 /// 发送模板邮件
 /// </summary>
 /// <param name="toAddress">收件人地址(多个地址用;隔开),默认先加载模板中配置的ToAddress</param>
 /// <param name="ccAddress">抄送人地址(多个地址用;隔开)</param>
 /// <param name="bccAddress">暗送人地址(多个地址用;隔开)</param>
 /// <param name="templateID">模板ID</param>
 /// <param name="keyValueVariables">Key-Values变量</param>
 /// <param name="keyTableVariables">Key-Tables变量</param>
 /// <param name="isInternalMail">是否为内部邮件</param>
 /// <param name="isAsyncMail">是否为异步发送邮件</param>
 /// <param name="languageCode">语言编码</param>
 public static void SendEmailByTemplate(string toAddress, string ccAddress, string bccAddress, string templateID, KeyValueVariables keyValueVariables, KeyTableVariables keyTableVariables, bool isInternalMail, bool isAsyncMail, string languageCode)
 {
     if (!string.IsNullOrEmpty(templateID))
     {
         MailMessage msg = new MailMessage()
         {
             ToName  = toAddress,
             CCName  = ccAddress,
             BCCName = bccAddress
         };
         EmailTemplateHelper.BuildEmailBodyByTemplate(msg, templateID, keyValueVariables, keyTableVariables, languageCode);
         CheckMailEntity(msg);
         ObjectFactory <IEmailSend> .Instance.SendMail(msg, isAsyncMail, isInternalMail);
     }
 }
Exemple #27
0
        public static MailTemplate BuildMailTemplate(MailTemplate template, KeyValueVariables keyValues, KeyTableVariables keyTables)
        {
            MailTemplate tem = MailConfig.BuildMailTemplate(template, keyValues, keyTables);

            return(tem);
        }
Exemple #28
0
 /// <summary>
 /// 发送模板邮件
 /// </summary>
 /// <param name="toAddress">收件人地址(多个地址用;隔开),默认先加载模板中配置的ToAddress</param>
 /// <param name="templateID">模板ID</param>
 /// <param name="keyValueVariables">Key-Values变量</param>
 /// <param name="keyTableVariables">Key-Tables变量</param>
 /// <param name="languageCode">语言编码</param>
 public static void SendEmailByTemplate(string toAddress, string templateID, KeyValueVariables keyValueVariables, KeyTableVariables keyTableVariables, string languageCode)
 {
     SendEmailByTemplate(toAddress, string.Empty, string.Empty, templateID, keyValueVariables, keyTableVariables, false, true, languageCode);
 }
        public void BuildData(NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();

            //if (requestPostData != null)
            //{
            //    variables.Add("TotalCount", HttpUtility.UrlDecode("TotalCount"));
            //}
            int       count;
            DataTable dt = new DataTable();

            dt.Columns.Add("SysNo");
            dt.Columns.Add("TradeInId");
            dt.Columns.Add("SoSysNo");
            dt.Columns.Add("CustomerSysNo");
            dt.Columns.Add("CustomerName");
            dt.Columns.Add("ReceiveAddress");
            dt.Columns.Add("receivePhone");
            dt.Columns.Add("Licence");
            dt.Columns.Add("Rebate");
            dt.Columns.Add("ReviseRebate");
            dt.Columns.Add("BankName");
            dt.Columns.Add("BranchBankName");
            dt.Columns.Add("BankAccount");
            dt.Columns.Add("Status");
            dt.Columns.Add("InUser");
            dt.Columns.Add("InDateStr");
            dt.Columns.Add("ConfirmUser");
            dt.Columns.Add("ConfirmDateStr");

            if (int.TryParse(requestPostData["TotalCount"], out count))
            {
                DataRow row;
                for (int i = 0; i < count; i++)
                {
                    row                   = dt.NewRow();
                    row["SysNo"]          = HttpUtility.UrlDecode(requestPostData["SysNo" + i]);
                    row["TradeInId"]      = HttpUtility.UrlDecode(requestPostData["TradeInId" + i]);
                    row["SoSysNo"]        = HttpUtility.UrlDecode(requestPostData["SoSysNo" + i]);
                    row["CustomerSysNo"]  = HttpUtility.UrlDecode(requestPostData["CustomerSysNo" + i]);
                    row["CustomerName"]   = HttpUtility.UrlDecode(requestPostData["CustomerName" + i]);
                    row["ReceiveAddress"] = HttpUtility.UrlDecode(requestPostData["ReceiveAddress" + i]);
                    row["receivePhone"]   = HttpUtility.UrlDecode(requestPostData["receivePhone" + i]);
                    row["Licence"]        = HttpUtility.UrlDecode(requestPostData["Licence" + i]);
                    row["Rebate"]         = HttpUtility.UrlDecode(requestPostData["Rebate" + i]);
                    row["ReviseRebate"]   = HttpUtility.UrlDecode(requestPostData["ReviseRebate" + i]);
                    row["BankName"]       = HttpUtility.UrlDecode(requestPostData["BankName" + i]);
                    row["BranchBankName"] = HttpUtility.UrlDecode(requestPostData["BranchBankName" + i]);
                    row["BankAccount"]    = HttpUtility.UrlDecode(requestPostData["BankAccount" + i]);
                    row["Status"]         = HttpUtility.UrlDecode(requestPostData["Status" + i]);
                    row["InUser"]         = HttpUtility.UrlDecode(requestPostData["InUser" + i]);
                    row["InDateStr"]      = HttpUtility.UrlDecode(requestPostData["InDateStr" + i]);
                    row["ConfirmUser"]    = HttpUtility.UrlDecode(requestPostData["ConfirmUser" + i]);
                    row["ConfirmDateStr"] = HttpUtility.UrlDecode(requestPostData["ConfirmDateStr" + i]);
                    dt.Rows.Add(row);
                }
            }

            tableVariables.Add("OldChangeNewList", dt);
        }
        public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables)
        {
            variables      = new KeyValueVariables();
            tableVariables = new KeyTableVariables();
            string sysNo = requestPostData["SysNo"];

            if (sysNo != null && sysNo.Trim() != String.Empty)
            {
                sysNo = System.Web.HttpUtility.UrlDecode(sysNo);
                int requestSysNo = int.TryParse(sysNo, out requestSysNo) ? requestSysNo : int.MinValue;

                if (requestSysNo > int.MinValue)
                {
                    PriceChangeMaster requestInfo = ObjectFactory <PriceChangeAppService> .Instance.GetPriceChangeBySysNo(requestSysNo);

                    if (requestInfo.PriceType == BizEntity.Invoice.RequestPriceType.SalePrice)
                    {
                        variables.Add("PrintTitle", "销售变价单");
                    }
                    else if (requestInfo.PriceType == BizEntity.Invoice.RequestPriceType.PurchasePrice)
                    {
                        variables.Add("PrintTitle", "采购变价单");
                    }
                    variables.Add("SysNo", requestInfo.SysNo.ToString().Trim().PadLeft(8, '0'));
                    variables.Add("RealBeginDate", requestInfo.RealBeginDate.HasValue ? requestInfo.RealBeginDate.Value.ToLongDateString().Trim() : string.Empty);
                    variables.Add("BeginDate", requestInfo.BeginDate.HasValue ? requestInfo.BeginDate.Value.ToLongDateString().Trim() : string.Empty);
                    variables.Add("EndDate", requestInfo.EndDate.HasValue ? requestInfo.EndDate.Value.ToLongDateString().Trim() : string.Empty);
                    variables.Add("BillInDate", DateTime.Now.ToLongDateString());
                    variables.Add("IsPurchasePrice", requestInfo.PriceType == BizEntity.Invoice.RequestPriceType.PurchasePrice);
                    variables.Add("IsSalePrice", requestInfo.PriceType == BizEntity.Invoice.RequestPriceType.SalePrice);

                    DataTable dtProduct = new DataTable();
                    dtProduct.Columns.AddRange(new System.Data.DataColumn[]
                    {
                        new DataColumn("ProductID"),
                        new DataColumn("ProductName"),
                        new DataColumn("OldPrice"),
                        new DataColumn("NewPrice"),
                        new DataColumn("DiffPrice"),

                        new DataColumn("OldShowPrice"),
                        new DataColumn("NewShowPrice"),

                        new DataColumn("OldInstockPrice"),
                        new DataColumn("NewInstockPrice"),
                        new DataColumn("DiffInstockPrice"),

                        new DataColumn("IsPurchasePrice"),
                        new DataColumn("IsSalePrice")
                    });

                    if (requestInfo.ItemList != null)
                    {
                        requestInfo.ItemList.ForEach(p =>
                        {
                            DataRow drProduct        = dtProduct.NewRow();
                            drProduct["ProductID"]   = p.ProductID;
                            drProduct["ProductName"] = p.ProductName.Trim();
                            drProduct["OldPrice"]    = p.OldPrice.ToString("N2");
                            drProduct["NewPrice"]    = p.NewPrice == 0 ? "---" : p.NewPrice.ToString("N2");
                            drProduct["DiffPrice"]   = (p.NewPrice - p.OldPrice).ToString("N2");

                            drProduct["OldShowPrice"]     = p.OldShowPrice.ToString("N2");
                            drProduct["NewShowPrice"]     = p.NewShowPrice == 0 ? "---" : p.NewShowPrice.ToString("N2");
                            drProduct["OldInstockPrice"]  = p.OldInstockPrice.ToString("N2");
                            drProduct["NewInstockPrice"]  = p.NewInstockPrice == 0 ? "---" : p.NewInstockPrice.ToString("N2");
                            drProduct["DiffInstockPrice"] = (p.NewInstockPrice - p.OldInstockPrice).ToString("N2");

                            drProduct["IsPurchasePrice"] = requestInfo.PriceType == BizEntity.Invoice.RequestPriceType.PurchasePrice;
                            drProduct["IsSalePrice"]     = requestInfo.PriceType == BizEntity.Invoice.RequestPriceType.SalePrice;

                            dtProduct.Rows.Add(drProduct);
                        });
                    }

                    tableVariables.Add("ProductList", dtProduct);
                }
            }
        }