using NetLibrary.OnlineTrade; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using TradeData; using TradeModel; namespace TradeManage.SysManage { public partial class CDiscountImport : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } List ListModel = new List(); protected void ImportOrders_Click(object sender, EventArgs e) { Pages.Login(this.Session); int CompanyID = Convert.ToInt32(Session["CompanyId"]); int UserId = Convert.ToInt32(Session["UserId"]); try { bool bk = BaseService.SyncLock(Convert.ToInt32(grouplist.SelectedItem.Value), 1, UserId, DateTime.Now); if (bk == false) { Page.ClientScript.RegisterClientScriptBlock(Page.ClientScript.GetType(), "myscripts", ""); return; } //判断是否存在对应的文件 if (FileUploadImport.PostedFile.ContentLength != 0) { //产生随机文件名避免文件上载过程中重复 System.Guid ro = Guid.NewGuid(); var filename = ro + FileUploadImport.FileName; //保存文件到 Pictures 目录下 FileUploadImport.PostedFile.SaveAs(Server.MapPath("~\\csv\\") + filename); //处理上载的文件 ImportOrderts(Server.MapPath("~\\csv\\"), filename); File.Delete(filename); } else { Page.ClientScript.RegisterClientScriptBlock(Page.ClientScript.GetType(), "myscripts", ""); } List ListOrder = API_OrderInfoService.GetListForShop2(Convert.ToInt32(grouplist.SelectedItem.Value)); foreach (int OrderID in ListOrder) { BaseService.OrderAddForTM(CompanyID, OrderID, UserId); } BaseService.UnSyncLock(Convert.ToInt32(grouplist.SelectedItem.Value), 1, DateTime.Now); } catch { BaseService.UnSyncLock(Convert.ToInt32(grouplist.SelectedItem.Value), 1, DateTime.Now); } } string successresult = ""; int successnum = 0; bool ordertypeflage = false; public void ImportOrderts(string serverpath, string filename) { TILabel.Text = "需要注意运输方式的订单:
"; string result = ""; DataTable dt; try { //读取对应的csv文件 var readscv = new ICSVWriterReader.CSVHelper(serverpath + filename); readscv.Read(out result, out dt, "Amazon"); //OrdersAdd(dt); string ordernos = "";//用来保存导入的订单编号 int i = 0; foreach (DataRow dr in dt.Rows) { if (dr["SKU Cdiscount"].ToString() != "INTERETBCA") { i++; try { insertToSql(dr); ordernos = ordernos + " 订单编号:" + dr["Référence commande"].ToString() + "
"; } catch (Exception ex) { EndLabel.Text = ex + "导入失败!第" + i.ToString() + "行!"; } } } API_OrderInfoService aois = new API_OrderInfoService(); aois.ImportCD(ListModel, grouplist.SelectedItem.Text, Convert.ToInt32(grouplist.SelectedItem.Value)); EndLabel.Text = ""; EndLabel.Text = EndLabel.Text + successresult.ToString(); } catch (Exception ex) { throw ex; } finally { EndLabel.Text = EndLabel.Text + result; } } public void insertToSql(DataRow dr) { OrderModel om = new OrderModel(); string Country = ""; var q = ListModel.Where(o => o.PlatOrderCode == dr["Référence commande"].ToString()); //判断订单是否在neworders中已存在。存在则合并分配信息||新增一笔对应的订单 if (q.Count() > 0) { //处理是否添加对应订单的分配型号,保留是否分配成功的标记ordertypeflage string sku = ""; Int32 buynums = Convert.ToInt32(dr["Quantité"].ToString()); int PurchaseNum = Convert.ToInt32(dr["Quantité"].ToString());//购买数量 sku = dr["Référence vendeur"].ToString(); string pricestr = dr["Rémunération vendeur"].ToString().Replace("€", "").Replace("-", "").Trim(); Decimal PaidPrice = 0; if (pricestr != "") PaidPrice = Convert.ToDecimal(pricestr); q.First().TotalPrice += PaidPrice; var checkData = q.First().ListModel.Where(o => o.GoodsSKU == sku); if (checkData.Count() == 0) { //List odmlist = new List(); OrderDetailModel odm = new OrderDetailModel(); string[] goodlist = sku.Split('-'); odm.GoodsSKU = sku; odm.MoneyCode = "EUR"; odm.GoodsPrice = PaidPrice; odm.GoodsNum = Convert.ToInt32(dr["Quantité"].ToString()); odm.GoodsName = goodlist[0]; //odmlist.Add(odm); //om.ListModel = odmlist; q.First().ListModel.Add(odm); } else { checkData.First().GoodsNum += buynums; //xyb 130302 } } else { //下单时间 string timetemp = dr["Date de commande"].ToString().Replace("T", " "); string[] timelist = timetemp.Split(' '); string[] ttt = timelist[0].Split('/'); string timestr = ttt[2] + "-" + ttt[1] + "-" + ttt[0] + " " + timelist[1]; string[] custmlist = dr["Nom et Adresse de livraison"].ToString().Split('-'); //客户地址 string postcode = dr["Code postal de livraison"].ToString(); //邮编 Country = "France"; //币种 string bz = "EUR"; string adress = custmlist[1].Trim() + " ,"; for (int i = 2; i < custmlist.Length; i++) { adress = adress + custmlist[i].Trim() + " ,"; } string sku = ""; Int32 buynums = Convert.ToInt32(dr["Quantité"].ToString()); sku = dr["Référence vendeur"].ToString(); string pricestr = dr["Rémunération vendeur"].ToString().Replace("€", "").Replace("-", "").Trim(); om.OrderCode = dr["Référence commande"].ToString(); ; om.PlatOrderCode = dr["Référence commande"].ToString(); ; om.BuyerName = custmlist[0].Trim(); ; om.BuyerPhone = dr["Téléphone livraison 2"].ToString(); om.BuyerMobile = dr["Téléphone livraison 1"].ToString(); om.BuyerAddr = adress ; string City = " "; if (dr["Ville de livraison"] != null) { if (dr["Ville de livraison"].ToString() != "") City = dr["Ville de livraison"].ToString(); } om.BuyerCity = City; string Region = " "; om.BuyerProvince = Region; om.BuyerZip = postcode; om.PostInfo = dr["Mode d'expédition"].ToString(); om.BuyerCountry = Country; om.OrderDate = DateTime.Now; om.PayDate = Convert.ToDateTime(timestr); Decimal PaidPrice = 0; if (pricestr != "") PaidPrice = Convert.ToDecimal(pricestr); List odmlist = new List(); OrderDetailModel odm = new OrderDetailModel(); string[] goodlist = sku.Split('-'); odm.GoodsSKU = sku; odm.MoneyCode = bz; odm.GoodsPrice = PaidPrice; odm.GoodsNum = Convert.ToInt32(dr["Quantité"].ToString()); odm.GoodsName = goodlist[0]; odmlist.Add(odm); om.ListModel = odmlist; om.TotalPrice = PaidPrice; om.MoneyCode = bz; ListModel.Add(om); //记录成功导入的订单号和数量 successnum++; successresult = successresult + ""; } } protected void APIImport_Click(object sender, EventArgs e) { FileInfo fi = new FileInfo(Server.MapPath("GetOrderList_Call_heegrand.xml")); StreamReader sr = fi.OpenText(); string str = sr.ReadToEnd(); CDiscountAPI cda = new CDiscountAPI(); string errormess = ""; JC_Shop ShopModel = JC_ShopService.GetModel(Convert.ToInt32(grouplist.SelectedItem.Value)); ListModel = cda.GetOrders(ShopModel.Appkey, ShopModel.DeveKey, str, out errormess); API_OrderInfoService aois = new API_OrderInfoService(); aois.ImportCD(ListModel, grouplist.SelectedItem.Text, Convert.ToInt32(grouplist.SelectedItem.Value)); EndLabel.Text = "
导入订单数:" + successnum.ToString() + "
" + om.OrderCode + "
"; List ListOrder = API_OrderInfoService.GetListForShop(1, grouplist.SelectedItem.Value); foreach (int OrderID in ListOrder) { BaseService.OrderAddForTM(1, OrderID, 1); } //EndLabel.Text = EndLabel.Text + successresult.ToString(); } protected void test_Click(object sender, EventArgs e) { FileInfo fi = new FileInfo(Server.MapPath("ValidateOrderList.xml")); StreamReader sr = fi.OpenText(); string str = sr.ReadToEnd(); CDiscountAPI cda = new CDiscountAPI(); string errormess = ""; JC_Shop ShopModel = JC_ShopService.GetModel(Convert.ToInt32(grouplist.SelectedItem.Value)); EndLabel.Text = cda.SendTrack(ShopModel.Appkey, ShopModel.DeveKey, str); } } }
采集订单数:" + ListModel.Count().ToString() + "