|
|
|
|
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<OrderModel> ListModel = new List<OrderModel>();
|
|
|
|
|
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", "<script>alert('当前有其他人正在导入订单,请稍候再尝试此操作!')</script>");
|
|
|
|
|
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", "<script>alert('文件名不正确!')</script>");
|
|
|
|
|
}
|
|
|
|
|
List<int> 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 = "需要注意运输方式的订单:</br>";
|
|
|
|
|
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() + "<br/>";
|
|
|
|
|
}
|
|
|
|
|
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 = "<table><tr><td>导入订单数:" + successnum.ToString() + "</td></tr>";
|
|
|
|
|
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<OrderDetailModel> odmlist = new List<OrderDetailModel>();
|
|
|
|
|
|
|
|
|
|
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<OrderDetailModel> odmlist = new List<OrderDetailModel>();
|
|
|
|
|
|
|
|
|
|
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 + "<tr><td>" + om.OrderCode + "</td></tr>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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 = "<table><tr><td>采集订单数:" + ListModel.Count().ToString() + "</td></tr>";
|
|
|
|
|
|
|
|
|
|
List<int> 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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|