using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using A8EXP.BaseForm;
using A8ERP.Win;
using A8ERP.Common;
using A8EXP.Entity;
using A8ERP.Utilities;
using A8EXP.BLL;
using A8EXP.DotNetWinform;
using System.Xml;
using System.Web;
using A8EXP.Utilities;
using KUANG.Win.Winform;
using System.Security.Cryptography;
using System.Diagnostics;
namespace A8EXP.ShopOrders
{
/// <summary>
///订单管理
/// </summary>
public partial class Form_ShopOrderManage : FormBase
{
#region 公共变量
DataTable JkfSignTable = new DataTable(A8ERP_Customs_JkfSignInfo.TableName);//签名信息
DataTable JkfOrderImportHeadTable = new DataTable(A8ERP_Customs_JkfOrderImportHeadInfo.TableName);//订单主体
DataTable OrderImportTable = new DataTable(A8ERP_Customs_JkfOrderImportHeadInfo.TableName);//订单主体
DataTable JkfOrderDetailTable = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//订单明细
DataTable JkfOrderResultTable = new DataTable(A8ERP_Customs_JkfOrderResultInfo.TableName);//回执状态
DataTable JkfOrderReturnResultDetailTable = new DataTable(A8ERP_Customs_JkfOrderReturnResultDetailInfo.TableName);//回执明细
DataTable OperationRecordsdt = new DataTable(A8ERP_WMS_OperationRecordsInfo.TableName);//日志信息表
DataTable InventoryReturndt = new DataTable(A8EXP_CEB622Message_InventoryReturnInfo.TableName);//总署回执信息
DataTable OrderEntityTable = new DataTable(A8ERP_Customs_OrderEntityInfo.TableName);//导出订单表
DataTable OrderDetailEntitydt = null;//导出订单表明细
DataTable CainiaoitemsDt = new DataTable(A8ERP_Cainiao_CainiaoitemsInfo.TableName);//菜鸟对接商品信息
DataTable DeclareInfoDt = new DataTable(A8ERP_Cainiao_DeclareInfoInfo.TableName);//菜鸟对接申报清单信
DataTable LogisticsInfoDt = new DataTable(A8ERP_Cainiao_LogisticsInfoInfo.TableName);//菜鸟对接物流信息
string statDate = string.Empty;//开始日期
string endDate = string.Empty;//结束日期
string OrderAuditState = "0";//订单状态
string OrderTotalAmount = string.Empty;//订单总金额
private int FieldId = 0;//主表Id用于单击行不重复显示
private int chEnabled = 1;
private int DeletionStateCode = 0;//删除状态
string searchValue = string.Empty;
string Expressstr = string.Empty;//报关公司
bool SingleDel = false;//作废
string TransportUnitCode = string.Empty;//运输单位编码
string ShopNameId = string.Empty;//电商平台Id
string ShopPrivinceId = string.Empty;//省ID
string CitySelectId = string.Empty;//市Id
string Phone = string.Empty;//手机
string searchWhereValue = "0";//运单号
string IsWhether = "0";//是否跨境
#endregion
#region public string CurrentEntityId 当前选种的订单Id
string _currentEntityId = string.Empty;
/// <summary>
/// 当前选种的ID
/// </summary>
public string CurrentEntityId
{
get
{
return _currentEntityId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldId);
}
}
#endregion
#region 获得已被选择的Id主键数组
/// <summary>
/// 获得已被选择的Id主键数组
/// </summary>
/// <returns>主键数组</returns>
private string[] GetSelecteIds()
{
return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldId, "colSelected", true);
}
#endregion
#region 获得明细的ID
/// <summary>
///获得明细的ID
/// </summary>
string _currentDetailEntityId = string.Empty;
public string CurrentDetailEntityId
{
get { return this._currentDetailEntityId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderDetail, A8ERP_Customs_JkfOrderDetailInfo.FieldId); }
set { this._currentDetailEntityId = value; }
}
#endregion
#region 获得当前的订单编号
/// <summary>
/// 获得当前的订单编号
/// </summary>
private string _currentOrderNo = string.Empty;
/// <summary>
/// 获得订单主表当前的订单编号
/// </summary>
public string CurrentOrderNo
{
get
{
return _currentOrderNo = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo);
}
}
#endregion
#region public string CurrentDetailEntityFId 当前选种的Id
string _currentDetaiFld = string.Empty;
/// <summary>
/// 当前选种的ID
/// </summary>
public string CurrentDetailEntityFId
{
get
{
return _currentDetaiFld = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderDetail, A8ERP_Customs_JkfOrderDetailInfo.FieldFId);
}
}
#endregion
#region private string[] GetSelecteUserIds() 获得已被选择的主键数组
/// <summary>
/// 获得已被选择的Id主键数组
/// </summary>
/// <returns>主键数组</returns>
private string[] GetSelecteJkfOrderDetaiIds()
{
return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderDetail, A8ERP_Customs_JkfOrderDetailInfo.FieldId, "cSelected", true);
}
#endregion
#region private string[] GetSelecteUserIds() 获得已被选择的ID主键数组
/// <summary>
/// 获得已被选择的单号主键数组
/// </summary>
/// <returns>主键数组</returns>
private string[] GetSelecteOrderNos()
{
return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo, "colSelected", true);
}
#endregion
#region private string[] GetSelecteOrderNo() 获得已被选择的订单号数组
/// <summary>
/// 获得已被选择的Id主键数组
/// </summary>
/// <returns>主键数组</returns>
private string[] GetSelecteOrderNo()
{
return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo, "colSelected", true);
}
#endregion
#region 获得当前店铺Id
/// <summary>
/// 获得当前店铺Id
/// </summary>
private string currentShopNameId = string.Empty;
public string CurrentShopNameId
{
get
{
return currentShopNameId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldShopNameId);
}
}
#endregion
#region 得到当前的签名信息
/// <summary>
///得到当前的签名信息
/// </summary>
private string M_currentJkfSignEntityId = string.Empty;
public string CurrentJkfSignEntityId
{
get { return M_currentJkfSignEntityId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo); }
}
#endregion
#region 获得先中的数组
/// <summary>
/// 获得先中的数组
/// </summary>
/// <returns></returns>
public string[] GetSelectIds()
{
return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldId, "colSelected", true);
}
#endregion
#region 获得先中单号的数组
/// <summary>
/// 获得先中单号的数组
/// </summary>
/// <returns></returns>
public string[] GetSelectOrderNos()
{
return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo, "colSelected", true);
}
#endregion
#region 构造方法
/// <summary>
/// 构造方法
/// </summary>
public Form_ShopOrderManage()
{
InitializeComponent();
Grid_JkfOrderImportHead.RowPrePaint += new DataGridViewRowPrePaintEventHandler(Grid_JkfOrderImportHead_RowPrePaint);
Grid_JkfOrderImportHead.SaveAsFileToExcelAllSelected += new EventHandler<EventDataArgs<object>>(Grid_JkfOrderImportHead_SaveAsFileToExcelAllSelected);
Grid_JkfOrderImportHead.RefreshSelected += new EventHandler<EventDataArgs<object>>(Grid_JkfOrderImportHead_RefreshSelected);
Grid_JkfOrderImportHead.SelectionChanged += new EventHandler(Grid_OrderImportHead_SelectionChanged);
Cmb_ShopName.SelectedIndexChanged += new BaseBusinessLogic.SelectedIndexChangedEventHandler(Cmb_ShopName_SelectedIndexChanged);
AddContextMenu(Grid_JkfOrderImportHead);//右键处理
Grid_JkfSign.ContextMenuStrip = null;
Grid_JkfOrderResult.ContextMenuStrip = null;
Grid_JkfOrderReturnResultDetail.ContextMenuStrip = null;
IsWhether = checkIsWhether.Checked == true ? "1" : "0";
}
#endregion
#region 主表选中行事件
/// <summary>
/// 主表选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Grid_OrderImportHead_SelectionChanged(object sender, EventArgs e)
{
if (Grid_JkfOrderImportHead.CurrentRow != null)
{
if (!string.IsNullOrEmpty(FieldId.ToString()) || FieldId.ToString() != CurrentEntityId)
{
if (string.IsNullOrEmpty(CurrentEntityId))
{
FieldId = 0;
}
else
{
FieldId = Convert.ToInt32(CurrentEntityId);
GetSelectIndexChanged();//选项加载
DataOrderResultBind();//回执信息
}
}
}
}
#endregion
#region 刷新
/// <summary>
/// 刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Grid_JkfOrderImportHead_RefreshSelected(object sender, EventDataArgs<object> e)
{
this.FormOnLoad();
}
#endregion
#region 条件
/// <summary>
/// 条件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void devRadioGroupQuery_EditValueChanged(object sender, EventArgs e)
{
if (this.FormLoaded)
{
searchWhereValue = devRadioGroupQuery.EditValue.ToString();
}
}
#endregion
#region 导出查询全部
/// <summary>
/// 导出查询全部
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Grid_JkfOrderImportHead_SaveAsFileToExcelAllSelected(object sender, EventDataArgs<object> e)
{
#region 导出操作
OrderEntityTable = new DataTable(A8ERP_Customs_OrderEntityInfo.TableName);
OrderDetailEntitydt = new DataTable();
OrderDetailEntitydt = new DataTable(OrderDetailEntityTable.TableName);//订单明细
List<A8ERP_Customs_JkfOrderDetailInfo> entityDetailList = null;
#region 主表记录
Dictionary<string, string> fieldList = new Dictionary<string, string>();
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldShopName, "店铺名称");//店铺名称
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, "买家昵称");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, "订单号");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, "运单号");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldCreateOn, "订单时间");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, "产品总金额");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderAmount, "订单金额");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount, "优惠金额");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldFreight, "运费");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, "收货国家");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, "州/省");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, "城市");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, "区");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldShippingAddress, "收货地址");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldConsigneeName, "收货人名称");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, "联系电话");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldMobilePhone, "手机");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage, "买家留言");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNote, "订单备注");
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldShopName, typeof(System.String));//店铺名称
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, typeof(System.String));//买家昵称
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, typeof(System.String));//订单号
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, typeof(System.String));//运单号
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldCreateOn, typeof(System.String));//订单时间
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, typeof(System.String));//产品总金额
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderAmount, typeof(System.String));//订单金额
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldShippingAddress, typeof(System.String));//收货地址
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldConsigneeName, typeof(System.String));//收货人名称
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, typeof(System.String));//收货地址
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, typeof(System.String));//州/省
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, typeof(System.String));//城市
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, typeof(System.String));//区
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, typeof(System.String));//联系电话
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldMobilePhone, typeof(System.String));//手机
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldFreight, typeof(System.String));//运费
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNote, typeof(System.String));//订单备注
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage, typeof(System.String));//买家留言
#endregion
Dictionary<string, string> fieldDetailList = new Dictionary<string, string>();
fieldDetailList.Add(OrderDetailEntityTable.FieldOrderNo, "订单号");
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsOrder, "序号");
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsCode, "商品编码");
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsName, "商品名称");
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsBar, "商品条码");
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsModel, "规格");
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsCount, "购买数量");
fieldDetailList.Add(OrderDetailEntityTable.FieldUnitPrice, "售价");
fieldDetailList.Add(OrderDetailEntityTable.FieldShipperName, "店铺名称");//店铺名称
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldOrderNo, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsOrder, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsCode, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsName, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsBar, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsModel, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsCount, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldUnitPrice, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldShipperId, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldShipperName, typeof(System.String));
for (int i = 0; i < OrderImportTable.Rows.Count; i++)
{
A8ERP_Customs_JkfOrderDetailInfo entityDetail = new A8ERP_Customs_JkfOrderDetailInfo();
string Sqlwhere = string.Format("FId='{0}'", OrderImportTable.Rows[i]["Id"].ToString());
entityDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.FindSingle(Sqlwhere);//订单明细
//JkfGoodsPurchaserInfoentity = BLLFactory<A8ERP_Customs_JkfGoodsPurchaser>.Instance.FindSingle(Sqlwhere);//购买人信息
DataRow dr;
dr = OrderEntityTable.NewRow();
dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNo] = OrderImportTable.Rows[i]["OrderNo"].ToString();//订单号
dr[A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber] = OrderImportTable.Rows[i]["WayBills"].ToString();//GetExpressCode(entityMain.WayBills.ToString());//发货快递单号
dr[A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname] = OrderImportTable.Rows[i]["BuyerNick"];//买家昵称
dr[A8ERP_Customs_OrderEntityInfo.FieldCreateOn] = Convert.ToDateTime(OrderImportTable.Rows[i]["CreateOn"]).ToString("yyyy-MM-dd HH:mm");//订单时间
dr[A8ERP_Customs_OrderEntityInfo.FieldShopName] = OrderImportTable.Rows[i]["ShopName"].ToString();//店铺名称
dr[A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts] = OrderImportTable.Rows[i]["OrderTotalAmount"].ToString();//产品总金额
dr[A8ERP_Customs_OrderEntityInfo.FieldOrderAmount] = OrderImportTable.Rows[i]["OrderGoodsAmount"].ToString();//订单金额
dr[A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount] = OrderImportTable.Rows[i]["DiscountAmount"].ToString();//优惠金额
dr[A8ERP_Customs_OrderEntityInfo.FieldFreight] = OrderImportTable.Rows[i]["FeeAmount"].ToString();//运费
dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNote] = OrderImportTable.Rows[i]["Note"].ToString();//订单备注
dr[A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage] = OrderImportTable.Rows[i]["Description"].ToString();//买家留言
dr[A8ERP_Customs_OrderEntityInfo.FieldShippingAddress] = OrderImportTable.Rows[i]["ConsigneeAddress"].ToString();//收货地址
dr[A8ERP_Customs_OrderEntityInfo.FieldConsigneeName] = OrderImportTable.Rows[i]["Consignee"].ToString();//收货人名称
dr[A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries] = OrderImportTable.Rows[i]["SenderCountry"].ToString();//entityMain.SenderCountry.ToString()收货国家
dr[A8ERP_Customs_OrderEntityInfo.FieldStateprovince] = OrderImportTable.Rows[i]["Province"].ToString();//州/省
dr[A8ERP_Customs_OrderEntityInfo.FieldCity] = OrderImportTable.Rows[i]["City"].ToString();//城市
dr[A8ERP_Customs_OrderEntityInfo.FieldArea] = OrderImportTable.Rows[i]["Area"].ToString();//区
dr[A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber] = OrderImportTable.Rows[i]["ConsigneeTel"].ToString();//联系电话
dr[A8ERP_Customs_OrderEntityInfo.FieldMobilePhone] = OrderImportTable.Rows[i]["ConsigneeTel"].ToString();//手机
OrderEntityTable.Rows.Add(dr);
entityDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();
entityDetailList = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
//明细表
for (int k = 0; k < entityDetailList.Count; k++)
{
DataRow drdetail;
drdetail = OrderDetailEntitydt.NewRow();
drdetail[OrderDetailEntityTable.FieldOrderNo] = entityDetailList[k].OrderNo.ToString();//订单号
drdetail[OrderDetailEntityTable.FieldGoodsOrder] = entityDetailList[k].GoodsOrder.ToString();//序号
drdetail[OrderDetailEntityTable.FieldGoodsName] = entityDetailList[k].GoodsName.ToString() + entityDetailList[k].GoodsModel.ToString();//商品名称
drdetail[OrderDetailEntityTable.FieldGoodsCode] = entityDetailList[k].GoodsCode.ToString();//商品编码
drdetail[OrderDetailEntityTable.FieldGoodsModel] = entityDetailList[k].GoodsModel.ToString();//商品规格
drdetail[OrderDetailEntityTable.FieldGoodsBar] = entityDetailList[k].GoodsBar.ToString();//商品条码
drdetail[OrderDetailEntityTable.FieldGoodsCount] = entityDetailList[k].GoodsCount.ToString();//商品数量
drdetail[OrderDetailEntityTable.FieldUnitPrice] = Math.Round(entityDetailList[k].UnitPrice, 2).ToString();//价格((int)Math.Round(entityListDetail[i].GoodsCount, 0)).ToString()
drdetail[OrderDetailEntityTable.FieldShipperName] = OrderImportTable.Rows[i]["ShopName"].ToString();//店铺名称;//店铺名称
OrderDetailEntitydt.Rows.Add(drdetail);
}
}
#endregion
string Paths = @"Export";
string exportFileName = DateTime.Now.ToString("yyyyMMdd商品订单") + ".xls";//文件名称
ExportNPOI(OrderEntityTable, "订单主表", fieldList, OrderDetailEntitydt, "订单明细", fieldDetailList, Paths, exportFileName);
}
#endregion
#region 导出操作
/// <summary>
/// 导出操作
/// </summary>
public void ExportExcel()
{
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
#region 导出操作
OrderEntityTable = new DataTable(A8ERP_Customs_OrderEntityInfo.TableName);
OrderDetailEntitydt = new DataTable(OrderDetailEntityTable.TableName);//订单明细
List<A8ERP_Customs_JkfOrderDetailInfo> entityDetailList = null;
#region 主表记录
Dictionary<string, string> fieldList = new Dictionary<string, string>();
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, "订单号");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, "发货快递单号");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, "买家昵称");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldShopName, "店铺名称");//店铺名称
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldSingleTime, "拍单时间");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, "产品总金额");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderAmount, "订单金额");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount, "优惠金额");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldFreight, "运费");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryService, "货到付款服务费");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNote, "订单备注");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage, "买家留言");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldShippingAddress, "收货地址");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldConsigneeName, "收货人名称");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, "收货国家");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, "州/省");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, "城市");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, "区");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldZipCode, "邮编");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, "联系电话");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldMobilePhone, "手机");
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldSingleTime, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldShopName, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderAmount, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldFreight, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryService, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNote, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldShippingAddress, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldConsigneeName, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldZipCode, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldMobilePhone, typeof(System.String));
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldPromotionTemplateMatching, typeof(System.String));
#endregion
Dictionary<string, string> fieldDetailList = new Dictionary<string, string>();
fieldDetailList.Add(OrderDetailEntityTable.FieldOrderNo, "订单号");
fieldDetailList.Add(OrderDetailEntityTable.FieldShipperName, "店铺名称");//店铺名称
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsCode, "编码");//编码
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsModel, "规格");//规格
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsName, "商品名称");
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsBar, "商品条码");
fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsCount, "购买数量");
fieldDetailList.Add(OrderDetailEntityTable.FieldUnitPrice, "售价");
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldShipperName, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldOrderNo, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsName, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsCode, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsModel, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsBar, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsCount, typeof(System.String));
OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldUnitPrice, typeof(System.String));
for (int i = 0; i < GetSelectIds().Length; i++)
{
DataTable dtMain = new DataTable();
string Ids = GetSelectIds()[i].ToString();
string condition = string.Format("Id='{0}'", Ids);
A8ERP_Customs_JkfOrderImportHeadInfo entityMain = new A8ERP_Customs_JkfOrderImportHeadInfo();
entityMain = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);
A8ERP_Customs_JkfOrderDetailInfo entityDetail = new A8ERP_Customs_JkfOrderDetailInfo();
if (entityMain == null)
return;
string Sqlwhere = string.Format("FId='{0}'", entityMain.Id);
entityDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.FindSingle(Sqlwhere);//订单明细
DataRow dr;
dr = OrderEntityTable.NewRow();
dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNo] = entityMain.OrderNo.ToString();//订单号
dr[A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber] = entityMain.WayBills.ToString();//GetExpressCode(entityMain.WayBills.ToString());//发货快递单号
dr[A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname] = entityMain.BuyerNick;//买家昵称
dr[A8ERP_Customs_OrderEntityInfo.FieldShopName] = entityMain.ShopName.ToString();//店铺名称
dr[A8ERP_Customs_OrderEntityInfo.FieldSingleTime] = Convert.ToDateTime(entityMain.TradeTime.ToString()).ToString("yyyy/MM/dd HH:mm");//拍单时间
//dr[A8ERP_Customs_OrderEntityInfo.FieldTimePayment] = Convert.ToDateTime(entityMain.TradeTime.ToString()).ToString("yyyy/MM/dd HH:mm");//付款时间
dr[A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts] = entityMain.OrderTotalAmount.ToString();//产品总金额
dr[A8ERP_Customs_OrderEntityInfo.FieldOrderAmount] = entityMain.OrderGoodsAmount.ToString();//订单金额
dr[A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount] = entityMain.DiscountAmount;//优惠金额
dr[A8ERP_Customs_OrderEntityInfo.FieldFreight] = entityMain.FeeAmount.ToString();//运费
dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNote] = entityMain.Note.ToString();//订单备注
dr[A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage] = entityMain.Description.ToString();//买家留言
dr[A8ERP_Customs_OrderEntityInfo.FieldShippingAddress] = entityMain.ConsigneeAddress.ToString();//收货地址
dr[A8ERP_Customs_OrderEntityInfo.FieldConsigneeName] = entityMain.Consignee.ToString();//收货人名称
dr[A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries] = entityMain.SenderCountry.ToString();//收货国家
dr[A8ERP_Customs_OrderEntityInfo.FieldStateprovince] = entityMain.Province.ToString();//州/省
dr[A8ERP_Customs_OrderEntityInfo.FieldCity] = entityMain.City.ToString();//城市
dr[A8ERP_Customs_OrderEntityInfo.FieldArea] = entityMain.Area.ToString();//区
dr[A8ERP_Customs_OrderEntityInfo.FieldZipCode] = entityMain.ZipCode;//邮编
dr[A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber] = entityMain.ConsigneeTel.ToString();//联系电话
dr[A8ERP_Customs_OrderEntityInfo.FieldMobilePhone] = entityMain.ConsigneeTel.ToString();//手机
OrderEntityTable.Rows.Add(dr);
entityDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();
entityDetailList = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
//明细表
for (int k = 0; k < entityDetailList.Count; k++)
{
DataRow drdetail;
drdetail = OrderDetailEntitydt.NewRow();
drdetail[OrderDetailEntityTable.FieldOrderNo] = entityDetailList[k].OrderNo.ToString();//订单号
drdetail[OrderDetailEntityTable.FieldShipperName] = entityMain.ShopName.ToString();//店铺名称
drdetail[OrderDetailEntityTable.FieldGoodsName] = entityDetailList[k].GoodsName.ToString();//商品名称
drdetail[OrderDetailEntityTable.FieldGoodsCode] = entityDetailList[k].GoodsCode.ToString();//编码
drdetail[OrderDetailEntityTable.FieldGoodsModel] = entityDetailList[k].GoodsModel.ToString();//规格
drdetail[OrderDetailEntityTable.FieldGoodsBar] = entityDetailList[k].GoodsBar.ToString();//商品条码
drdetail[OrderDetailEntityTable.FieldGoodsCount] = entityDetailList[k].GoodsCount.ToString();//商品数量
drdetail[OrderDetailEntityTable.FieldUnitPrice] = Math.Round(entityDetailList[k].UnitPrice, 2).ToString();//价格((int)Math.Round(entityListDetail[i].GoodsCount, 0)).ToString()
OrderDetailEntitydt.Rows.Add(drdetail);
}
}
#endregion
string Paths = @"Export";
string exportFileName = DateTime.Now.ToString("yyyyMMdd") + ".xls";//文件名称
ExportNPOI(OrderEntityTable, "订单主记录", fieldList, OrderDetailEntitydt, "订单明细记录", fieldDetailList, Paths, exportFileName);
}
}
#endregion
#region 重写是否有退单记录
/// <summary>
/// 重写是否有退单记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Grid_JkfOrderImportHead_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
string OrderNo = string.Empty;// "T2700P1685805632043446";
XmlDocument xmldoc = new XmlDocument(); //创建空的XML文档
OrderNo = Grid_JkfOrderImportHead.Rows[e.RowIndex].Cells["COrderNo"].Value.ToString();
string Condition = string.Format("OrderNo='{0}'", OrderNo);
bool IsFilePath = BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.IsExistRecord(Condition);
if (IsFilePath)
{
IsFilePath = BLLTools.IsFileNamePathXml(OrderNo);//是否是退货状态
if (!IsFilePath)
{
A8ERP_Customs_OrderAbnormalStateInfo entityOrderAbnormalState = new A8ERP_Customs_OrderAbnormalStateInfo();
entityOrderAbnormalState = BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.FindSingle(Condition);
BLLTools.WriteRefund_Status(entityOrderAbnormalState.OrderNoId.ToString(), entityOrderAbnormalState.OrderNo.ToString(), entityOrderAbnormalState.StatusCode, entityOrderAbnormalState.StateDescription);//记录退单记录
IsFilePath = true;
}
}
if (IsFilePath)
{
string FilePath = BLLTools.CareateXml(OrderNo);//
xmldoc.Load(FilePath);
//读取Head头消息
XmlNode nodeHead = xmldoc.SelectSingleNode("//Response");//读取当前节点下的所有内容
string XmlOrderNo = (nodeHead.SelectSingleNode("OrderNo")).InnerText.ToString();//获得当前返回消的HEAD的值
if (XmlOrderNo.Equals(Grid_JkfOrderImportHead.Rows[e.RowIndex].Cells["COrderNo"].Value.ToString()))
{
DataGridViewRow row;
row = Grid_JkfOrderImportHead.Rows[e.RowIndex];
row.DefaultCellStyle.BackColor = Color.Red;
}
}
}
#endregion
#region private void GetItemDetails() 绑定下拉筐数据
/// <summary>
/// 绑定下拉筐数据
/// </summary>
public override void GetItemDetails()
{
devDateTimeSelect1.LoadServerTime(this.GetServerDateTime());
PageControlByCodeMain.PageSize = 100;
FP = (FunctionParameter)Tag;
#region 报关物流公司
Cmb_Express.FP = FP;
Cmb_Express.DataBind();
Cmb_Express.SetSelectedIndex(0);
#endregion
#region 电商平台
Cmb_ShopName.FP = FP;
Cmb_ShopName.SelectCode = UserInfo.SubCompanyId;
Cmb_ShopName.DataBind();
Cmb_ShopName.SelectedId = "-1";
#endregion
#region 运输单位
Cmb_BaseTransportUnit.FP = FP;
Cmb_BaseTransportUnit.DataBind();
#endregion
}
#endregion
#region 工具栏
/// <summary>
/// 工具栏
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void barManager1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
switch (e.Item.Name)
{
case "Bar_Add":
Add();//新增
break;
case "bar_Edit"://编辑
Edit();
break;
case "bar_Del"://删除
SingleDel = true;
Delete();
break;
case "bar_Termination"://作废
SingleDel = false;
Delete();
break;
case "bar_lenglianExport"://冷链导出
LenglianExcel();
break;
case "bar_Import"://导入
ExcelImport();
break;
case "bar_Export"://导出
ExportExcel();
break;
case "bar_Synchronous"://同步仓库
RunBtnSynchronous();
break;
case "barSuspended"://暂停
Suspended();
break;
case "bar_Audit"://审核
//AuditPass();
break;
case "bar_UnCheck"://反审核
//UnAuditPass();
break;
case "bar_ReturnState"://重置已处理
GetreturnAuditState();
break;
case "barProcessingSingle"://确认发货
ConfirmShipment();
break;
case "bar_Refresh"://刷新
this.FormOnLoad();
break;
case "bar_ExpressOrder"://生成物流数据
GetRunExpress();
break;
case "bar_ConfirmShipment"://确认发货
ConfirmShipment();
break;
case "bar_OutStock"://确认出库
OrderOutStock();
break;
case "bar_Printpreview"://打印预览
FormPrintView();
break;
case "bar_Print"://打印
FormPrint();
break;
case "bar_Report"://打印模板
FormReportSet();
break;
case "bar_Help":
break;
case "bar_Close"://关闭
Close();
break;
}
}
#endregion
#region 窗体加载
/// <summary>
/// 窗体加载
/// </summary>
public override void FormOnLoad()
{
devDateTimeSelect1.LoadServerTime(this.GetServerDateTime());
GetList();
SetControlState();
}
#endregion
#region 列表显示
/// <summary>
/// 列表显示
/// </summary>
public override void GetList()
{
//设为空
Grid_JkfOrderImportHead.DataSource = null;
SqlCondition = string.Empty;
//获得日期时间值
statDate = devDateTimeSelect1.BeginDateTime().ToString("yyyy-MM-dd HH:mm:ss");//start
endDate = devDateTimeSelect1.EndDateTime().ToString("yyyy-MM-dd HH:mm:ss");//end
ProgressForm progress = new ProgressForm(this);
progress.Show();
progress.SetProgressValue(1);
try
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
string IdsArray = string.Empty;
searchValue = txtQuery.Text.ToLower().Trim();
OrderTotalAmount = Txt_OrderTotalAmount.Text.ToString();
//初始化方法二
SearchCondition Condition = new SearchCondition();
switch (searchWhereValue)
{
case "0":
if (!string.IsNullOrEmpty(searchValue))
{
searchValue = BLLTools.ToBj(searchValue);
string[] sArray = searchValue.Split(',');
IdsArray = BLLTools.ObjectsToList(sArray, "'");
}
Condition.AddCondition("OrderNo", IdsArray, SqlOperator.In);//订单号
break;
case "10":
if (!string.IsNullOrEmpty(searchValue))
{
searchValue = BLLTools.ToBj(searchValue);
string[] sArray = searchValue.Split(',');
IdsArray = BLLTools.ObjectsToList(sArray, "'");
}
Condition.AddCondition("WayBills", IdsArray, SqlOperator.In);//运单号
break;
case "20":
Condition.AddCondition("Consignee", searchValue, SqlOperator.Equal);//收货人名称
break;
case "30":
Condition.AddCondition("ConsigneePhone", searchValue, SqlOperator.Equal);//收货人手机
break;
case "40":
Condition.AddCondition("City", searchValue, SqlOperator.Equal);//城市
break;
}
Condition.AddCondition("CreateOn", statDate, SqlOperator.MoreThanOrEqual)//起始日期
.AddCondition("CreateOn", endDate, SqlOperator.LessThanOrEqual)//结束日期
.AddCondition("ShopNameId", ShopNameId, SqlOperator.Equal)//电商平台ID
.AddCondition("logisCompanyCode", Expressstr, SqlOperator.Equal)//申报物流公司编号
.AddCondition("TransportUnitCode", TransportUnitCode, SqlOperator.Equal)//运输单位
.AddCondition("IsWhether", IsWhether, SqlOperator.Equal)//是否跨境
.AddCondition("OrderTotalAmount", OrderTotalAmount, SqlOperator.Equal)//订单金额
.AddCondition("AuditState", OrderAuditState, SqlOperator.Equal)//订单状态
//.AddCondition("OrgId", UserInfo.CompanyId, SqlOperator.Equal)//组织Id
.AddCondition("DeletionStateCode", DeletionStateCode, SqlOperator.Equal)//删除状态
.AddCondition("Enabled", chEnabled, SqlOperator.Equal);//有效的
if (checkZ.Checked)
{
Condition.AddCondition("Province", "'浙江省','江苏省','上海市','上海'", SqlOperator.In);//收件人省浙江省,江苏省,上海市
}
if (!checkZ.Checked)
{
Condition.AddCondition("Province", "浙江省','江苏省','上海市','上海", SqlOperator.NotIn);//收件人省浙江省,江苏省,上海市
}
SqlCondition = Condition.BuildConditionSql(DatabaseType.SqlServer);
OrderImportTable = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(SqlCondition);//获得当前查询到的所有数据
progress.SetProgressValue(60);
PageControlByCodeMain.SetUcPageControlPars(SqlCondition, "A8ERP_Customs_JkfOrderImportHead", "Id", "Id", "*");
JkfOrderImportHeadTable = PageControlByCodeMain.BindPageControl();
if (JkfOrderImportHeadTable.Rows.Count != 0)
{
#region 审核状态也是单根的流转状态
for (int i = 0; i < JkfOrderImportHeadTable.Rows.Count; i++)
{
JkfOrderImportHeadTable.Rows[i]["OrderState"] = GetEnumsIndex.GetOrderStateToDescription(JkfOrderImportHeadTable.Rows[i]["OrderState"].ToString());
JkfOrderImportHeadTable.Rows[i]["IeFlag"] = JkfOrderImportHeadTable.Rows[i]["IeFlag"].ToString() == "I" ? "进口" : "出口";
}
#endregion
progress.SetProgressValue(100);
Grid_JkfOrderImportHead.DataSource = JkfOrderImportHeadTable;
}
else
{
//设为空
JkfOrderImportHeadTable.Clear();
JkfSignTable.Clear();
JkfOrderDetailTable.Clear();
JkfOrderResultTable.Clear();
JkfOrderReturnResultDetailTable.Clear();
OperationRecordsdt.Clear();
InventoryReturndt.Clear();
progress.SetStatusInfo.Text = "查询结果没有数据,请重新输入查询条件!";
}
stopwatch.Stop();
PageControlByCodeMain.Statistics = String.Format("查询耗时:{0:00}:{1:00}:{2:000}", stopwatch.Elapsed.Minutes, stopwatch.Elapsed.Seconds, stopwatch.Elapsed.Milliseconds);
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.Tip = "查找完毕...";
progress.SetStatusInfo.Text = "查找完毕...";
progress.Close();
if (Grid_JkfOrderImportHead.CurrentRow != null)
{
btnSelectAll.Enabled = true;
btnInvertSelect.Enabled = true;
}
else
{
btnSelectAll.Enabled = false;
btnInvertSelect.Enabled = false;
}
}
}
#endregion
#region 分页事件
/// <summary>
/// 分页事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ucPageControlByCode_OnEventPageClicked(object sender, EventArgs e)
{
ProgressForm progress = new ProgressForm(this);
progress.Show();
try
{
progress.SetProgressValue(1);
PageControlByCodeMain.SqlWhereStatement = SqlCondition; //指定查询表达式
JkfOrderImportHeadTable = PageControlByCodeMain.PageTable;
for (int i = 0; i < JkfOrderImportHeadTable.Rows.Count; i++)
{
JkfOrderImportHeadTable.Rows[i]["OrderState"] = GetEnumsIndex.GetOrderStateToDescription(JkfOrderImportHeadTable.Rows[i]["OrderState"].ToString());
JkfOrderImportHeadTable.Rows[i]["IeFlag"] = JkfOrderImportHeadTable.Rows[i]["IeFlag"].ToString() == "I" ? "进口" : "出口";
//支付类型
string OrderpayType = JkfOrderImportHeadTable.Rows[i]["payType"].ToString();
switch (OrderpayType)
{
case "1":
JkfOrderImportHeadTable.Rows[i]["payType"] = payType.payType01.ToDescription().ToString();
break;
case "2":
JkfOrderImportHeadTable.Rows[i]["payType"] = payType.payType02.ToDescription().ToString();
break;
case "3":
JkfOrderImportHeadTable.Rows[i]["payType"] = payType.payType03.ToDescription().ToString();
break;
case "03":
JkfOrderImportHeadTable.Rows[i]["payType"] = payType.payType03.ToDescription().ToString();
break;
}
//币别国家
string CurrCode = JkfOrderImportHeadTable.Rows[i]["CurrCode"].ToString() == "142" ? "人民币" : "142";
JkfOrderImportHeadTable.Rows[i]["CurrCode"] = CurrCode;
//发件人国别
string SenderCountry = JkfOrderImportHeadTable.Rows[i]["CurrCode"].ToString() == "142" ? "中国" : "142";
JkfOrderImportHeadTable.Rows[i]["SenderCountry"] = SenderCountry;
}
progress.SetProgressValue(100);
Grid_JkfOrderImportHead.DataSource = this.JkfOrderImportHeadTable;
if (this.JkfOrderImportHeadTable.Rows.Count == 0)
{
progress.SetStatusInfo.Text = "查询结果没有数据,请重新输入查询条件!";
}
}
catch (Exception)
{
if (this.JkfOrderImportHeadTable.Rows.Count == 0)
{
progress.SetStatusInfo.Text = "查询结果没有数据,请重新输入查询条件!";
}
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "查找完毕...";
progress.Close();
}
}
#endregion
#region 导入操作
/// <summary>
/// 导入操作
/// </summary>
public void ExcelImport()
{
try
{
Form Frm = null;
RF = new ReflectionFunction();
Frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_ImportExcel", FP);
if (Frm == null)
{
MessageUtil.ShowTips("调用失败");
return;
}
if (Frm.DialogResult == DialogResult.OK)
{
this.FormOnLoad();
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
#endregion
#region 发送打包及取消订单
/// <summary>
/// 确认发送打包指令发货接口
/// </summary>
/// <param name="userInfo"></param>
/// <param name="Ids"></param>
public void SetNOTIFY_WMS_PACKAGE()
{
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
string ShopId = string.Empty;
string OrderNo = string.Empty;
progress.Show();
try
{
A8ERP_Customs_JkfOrderImportHeadInfo entityMain = null;
List<A8ERP_Customs_JkfOrderDetailInfo> entityListDetail = null;
A8ERP_Customs_JkfGoodsPurchaserInfo JkfGoodsPurchaserInfoentity = null;
KCY_InvoiceInfoInfo InvoiceInfoEntity = null;
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
string Id = GetSelecteIds()[i].ToString();
entityMain = new A8ERP_Customs_JkfOrderImportHeadInfo();
entityMain = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);//订单主表
if (entityMain == null)
return;
//检查是否有退货
long Tid = long.Parse(entityMain.OrderNo.ToString().Substring(6));
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
continue;
}
string Province = entityMain.Province.ToString();
if (string.IsNullOrEmpty(Province))
{
MessageUtil.ShowTips("省份名称不能为空!");
continue;
}
string City = entityMain.City.ToString();
if (string.IsNullOrEmpty(City))
{
MessageUtil.ShowTips("省份名称不能为空!");
continue;
}
var ShopNameId = entityMain.ShopNameId.ToString();
if (ShopNameId == "4")
{
ShopId = "dayuan";
}
else
{
ShopId = "dayuantianmao";
}
string Sqlwhere = string.Format("FId='{0}'", entityMain.Id);
entityListDetail = new List<A8ERP_Customs_JkfOrderDetailInfo>();
entityListDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
OrderNo = entityMain.OrderNo.ToString();
string sqldetail = string.Format("OrderNo='{0}'", OrderNo);
JkfGoodsPurchaserInfoentity = BLLFactory<A8ERP_Customs_JkfGoodsPurchaser>.Instance.FindSingle(sqldetail);//购买人信息
InvoiceInfoEntity = new KCY_InvoiceInfoInfo();//发票信息
//输入订单主表
string FileName = OrderNo;
string MsgData = string.Empty;//错误与成功消息类型
string XmlFileName = WebServiceXMLHelper.CareateXml(FileName, "OrderToWC");//创建并返回路径
string tmsServiceCode = entityMain.LogisticsCarrierNumber;//配送商编码
string tmsOrderCode = entityMain.WayBills;//运单号
string XmlData = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.SendNOTIFY_WMS_PACKAGE(OrderNo, tmsServiceCode, tmsOrderCode);
string Notify_type = "NOTIFY_WMS_PACKAGE";//下发订单打包指令接口
bool returnValue = HttpWMSHelper.HttpPostOrder(XmlData, ShopId, Notify_type, out statusMessage, out MsgData);
if (!returnValue)
{
MessageUtil.ShowTips(MsgData);
}
//修改当前的订单状态
if (statusMessage == "true")
{
//<?xml version="1.0" encoding="utf-8"?>
<response><errorCode>S13</errorCode>
<errorMsg>单号:T2700P1542912654134539已经存在</errorMsg>
<success>false</success>
</response>"
//写入订单状态到订单
//string orderStatusCode = CustomsOrderState.SynchronousOk.ToString();
//if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(Id, orderStatusCode))
//{
statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
itemCount++;
//MessageUtil.ShowTips(statusMessage);
//}
progress.SetProgressValue(70);
progress.SetStatusInfo.Text = "执行发货处理...";
////是否更新电商的发货状态
//string TidNo = OrderNo.Substring(6);
//ConfirmDelivery(TidNo, entityMain.LogisticsCarrierNumber.ToString());
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "执行完毕...";
progress.Close();
MessageUtil.ShowTips(string.Format("同步网仓生成成功:{0}个,{1}", itemCount, statusMessage));
this.FormOnLoad();
}
}
/// <summary>
/// 单个发送打包指令
/// </summary>
/// <param name="OrderNo"></param>
/// <returns></returns>
public bool SendNoTFY_WMS_PACKAGE(string Id)
{
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
bool returnValue = false;
progress.Show();
try
{
A8ERP_Customs_JkfOrderImportHeadInfo entityMain = null;
List<A8ERP_Customs_JkfOrderDetailInfo> entityListDetail = null;
A8ERP_Customs_JkfGoodsPurchaserInfo JkfGoodsPurchaserInfoentity = null;
KCY_InvoiceInfoInfo InvoiceInfoEntity = null;
progress.SetProgressValue(1);
string ShopId = string.Empty;
string OrderNo = string.Empty;
string condition = string.Format("Id='{0}'", Id);
entityMain = new A8ERP_Customs_JkfOrderImportHeadInfo();
entityMain = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);//订单主表
if (entityMain == null)
return false;
OrderNo = entityMain.OrderNo.ToString();
string Province = entityMain.Province.ToString();
if (string.IsNullOrEmpty(Province))
{
MessageUtil.ShowTips("省份名称不能为空!");
return false;
}
string City = entityMain.City.ToString();
if (string.IsNullOrEmpty(City))
{
MessageUtil.ShowTips("省份名称不能为空!");
return false; ;
}
var ShopNameId = entityMain.ShopNameId.ToString();
if (ShopNameId == "4")
{
ShopId = "dayuan";
}
else
{
ShopId = "dayuantianmao";
}
string Sqlwhere = string.Format("FId='{0}'", entityMain.Id);
entityListDetail = new List<A8ERP_Customs_JkfOrderDetailInfo>();
entityListDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
OrderNo = entityMain.OrderNo.ToString();
string sqldetail = string.Format("OrderNo='{0}'", OrderNo);
JkfGoodsPurchaserInfoentity = BLLFactory<A8ERP_Customs_JkfGoodsPurchaser>.Instance.FindSingle(sqldetail);//购买人信息
InvoiceInfoEntity = new KCY_InvoiceInfoInfo();//发票信息
//输入订单主表
string FileName = OrderNo;
string MsgData = string.Empty;//错误与成功消息类型
string XmlFileName = WebServiceXMLHelper.CareateXml(FileName, "OrderToWC");//创建并返回路径
string tmsServiceCode = entityMain.LogisticsCarrierNumber;//配送商编码
string tmsOrderCode = entityMain.WayBills;//运单号
string XmlData = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.SendNOTIFY_WMS_PACKAGE(OrderNo, tmsServiceCode, tmsOrderCode);
string Notify_type = "NOTIFY_WMS_PACKAGE";//下发订单打包指令接口
returnValue = HttpWMSHelper.HttpPostOrder(XmlData, ShopId, Notify_type, out statusMessage, out MsgData);
if (!returnValue)
{
returnValue = false;
MessageUtil.ShowTips(MsgData);
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "执行完毕...";
progress.Close();
}
return returnValue;
}
/// <summary>
/// 订单取消接口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Bnt_CANCEL_WMS_ORDER_Click(object sender, EventArgs e)
{
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
progress.Show();
try
{
A8ERP_Customs_JkfOrderImportHeadInfo entityMain = null;
List<A8ERP_Customs_JkfOrderDetailInfo> entityListDetail = null;
A8ERP_Customs_JkfGoodsPurchaserInfo JkfGoodsPurchaserInfoentity = null;
KCY_InvoiceInfoInfo InvoiceInfoEntity = null;
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string ShopId = string.Empty;
string OrderNo = string.Empty;
string condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
string Id = GetSelecteIds()[i].ToString();
entityMain = new A8ERP_Customs_JkfOrderImportHeadInfo();
entityMain = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);//订单主表
if (entityMain == null)
return;
var ShopNameId = entityMain.ShopNameId.ToString();
if (ShopNameId == "4")
{
ShopId = "dayuan";
}
else
{
ShopId = "dayuantianmao";
}
string Sqlwhere = string.Format("FId='{0}'", entityMain.Id);
entityListDetail = new List<A8ERP_Customs_JkfOrderDetailInfo>();
entityListDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
OrderNo = entityMain.OrderNo.ToString();
string sqldetail = string.Format("OrderNo='{0}'", OrderNo);
JkfGoodsPurchaserInfoentity = BLLFactory<A8ERP_Customs_JkfGoodsPurchaser>.Instance.FindSingle(sqldetail);//购买人信息
InvoiceInfoEntity = new KCY_InvoiceInfoInfo();//发票信息
//输入订单主表
string FileName = OrderNo;
string MsgData = string.Empty;//错误与成功消息类型
string XmlFileName = WebServiceXMLHelper.CareateXml(FileName, "OrderToWC");//创建并返回路径
string XmlData = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.CancelOrder(OrderNo);
string Notify_type = "CANCEL_WMS_ORDER";//订单取消接口
bool returnValue = HttpWMSHelper.HttpPostOrder(XmlData, ShopId, Notify_type, out statusMessage, out MsgData);
if (!returnValue)
{
MessageUtil.ShowTips(MsgData);
}
//修改当前的订单状态
if (statusMessage == "true")
{
//<?xml version="1.0" encoding="utf-8"?>
<response><errorCode>S13</errorCode>
<errorMsg>单号:T2700P1542912654134539已经存在</errorMsg>
<success>false</success>
</response>"
//取消成功返回到已申报状态
string orderStatusCode = CustomsOrderState.CustomsClearanceOk.ToString();//已申报
//if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(Id, orderStatusCode))
//{
statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
itemCount++;
//MessageUtil.ShowTips(statusMessage);
//}
progress.SetProgressValue(70);
progress.SetStatusInfo.Text = "执行取消处理...";
////是否更新电商的发货状态
//string TidNo = OrderNo.Substring(6);
//ConfirmDelivery(TidNo, entityMain.LogisticsCarrierNumber.ToString());
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "执行完毕...";
progress.Close();
this.FormOnLoad();
MessageUtil.ShowTips(string.Format("同步网仓取消成功:{0}个,{1}", itemCount, statusMessage));
}
}
#endregion
#region 获得当前订单号的物流单号
/// <summary>
/// 获得当前订单号的物流单号
/// </summary>
/// <param name="OrderNo"></param>
/// <returns></returns>
public string GetExpressCode(string OrderNo)
{
return BLLFactory<A8ERP_Customs_ExpressManagement>.Instance.IsorderNo(OrderNo);
}
#endregion
#region 删除操作
/// <summary>
/// 删除操作
/// </summary>
public override void Delete()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
if (SingleDel)
{
BatchDelete();//真删除
}
else
{
SingleDelete();//删除标记
}
}
}
#endregion
#region private int SingleDelete() 单个记录删除
/// <summary>
/// 单个记录删除
/// </summary>
/// <returns>影响行数</returns>
public int SingleDelete()
{
int result = 0;
string statusCode = string.Empty;
string statusMessage = string.Empty;
// 设置鼠标繁忙状态,并保留原先的状态
Cursor holdCursor = this.Cursor;
this.Cursor = Cursors.WaitCursor;
this.FormLoaded = false;
if (DevExpress.XtraEditors.XtraMessageBox.Show(AppMessage.MSG0015, AppMessage.MSG0401, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
try
{
// 绑定数据
string[] Ids = this.GetSelecteIds();
result = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.SetDeleted(UserInfo, Ids);//new String[] { this.CurrentEntityId }
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
if (result > 0)
{
this.FormOnLoad();
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
// 设置鼠标默认状态,原来的光标状态
this.FormLoaded = true;
this.Cursor = holdCursor;
}
}
return result;
}
#endregion
#region 批量删除
/// <summary>
/// 批量删除
/// </summary>
/// <returns></returns>
public override int BatchDelete()
{
int result = 0;
string statusCode = string.Empty;
string statusMessage = string.Empty;
if (DevExpress.XtraEditors.XtraMessageBox.Show(AppMessage.MSG0015, AppMessage.MSG0000, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
LoadingUtil.ShowWaitLoading();
try
{
this.FormLoaded = false;
// 绑定数据
string[] Ids = this.GetSelecteIds();
result = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.BatchDelete(UserInfo, Ids, out statusCode, out statusMessage);
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
LoadingUtil.StopLoading();
this.Visible = true;
// 获取列表
this.FormLoaded = true;
FormOnLoad();
}
}
return result;
}
#endregion
#region 删除状态
/// <summary>
/// 删除状态
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void checkDel_CheckedChanged(object sender, EventArgs e)
{
this.FormOnLoad();
}
#endregion
#region 编辑
/// <summary>
/// 编辑
/// </summary>
public override void Edit()
{
Form frm = null;
RF = new ReflectionFunction();
FP.EntityId = CurrentEntityId.ToString();
FP.IsTrue = true;
frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_ShopOrderAdd", FP);
if (frm.DialogResult == DialogResult.OK)
{
this.FormOnLoad();
}
}
#endregion
#region 双击
private void Grid_JkfOrderImportHead_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.Edit();
}
#endregion
#region 同步订单网仓发送
/// <summary>
/// 同步订单网仓发送
/// </summary>
/// <param name="userInfo"></param>
/// <param name="GetIds"></param>
/// <param name="?"></param>
public bool PostOrderEntity(BaseUserEntity userInfo, string[] Ids)
{
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
int itemErrcount = 0;
bool returnValue = false;
progress.Show();
try
{
A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = null;
List<A8ERP_Customs_JkfOrderDetailInfo> entityListDetail = null;
KCY_InvoiceInfoInfo InvoiceInfoEntity = null;
for (int i = 0; i < Ids.Length; i++)
{
progress.SetProgressValue(1);
string ShopId = string.Empty;
string OrderNo = string.Empty;
string condition = string.Format("Id='{0}'", Ids[i].ToString());
JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
JkfOrderImportHeadEntity = BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);//订单主表
if (JkfOrderImportHeadEntity == null)
continue;
string StoredId = JkfOrderImportHeadEntity.ShopNameId;
OrderNo = JkfOrderImportHeadEntity.OrderNo.ToString();
#region 状态过滤
//已申报才能同步
string AuditState = JkfOrderImportHeadEntity.AuditState.ToString();
if (!(AuditState.Equals("30")))
{
MessageUtil.ShowTips("呵呵!您的订单状态不在已申报状态,已申报才能同步!");
continue;
}
string WayBills = JkfOrderImportHeadEntity.WayBills.ToString();//运单号
if (WayBills.Length <= 10 && WayBills.Equals(""))
{
MessageUtil.ShowTips("呵呵!你连运单号都没有或是运单号不符合规定!有点过分了哦");
continue;
}
#endregion
#region 检查是否有退货记录
A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(StoredId);
if (StoreManagementEntity.CheckrefundSingle == 1)
{
long Tid = long.Parse(JkfOrderImportHeadEntity.OrderNo.ToString().Substring(6));
TaobaoConfig.SetTaobaoConfig(JkfOrderImportHeadEntity.ShopNameId);//获得店铺的联连信息
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
BLLTools.WriteRefund_Status(JkfOrderImportHeadEntity.Id.ToString(), JkfOrderImportHeadEntity.OrderNo.ToString(), statusCode, statusMessage);//记录退单记录
A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
entity.OrderNoId = JkfOrderImportHeadEntity.Id.ToString();
entity.OrderNo = JkfOrderImportHeadEntity.OrderNo.ToString();
entity.StatusCode = statusCode;
entity.StateDescription = statusMessage;
string statusCodes = string.Empty;
string statusMessages = string.Empty;
BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
continue;
}
}
#endregion
#region 验证相关信息
string Province = JkfOrderImportHeadEntity.Province.ToString();
if (string.IsNullOrEmpty(Province))
{
MessageUtil.ShowTips("省份名称不能为空!");
continue;
}
string City = JkfOrderImportHeadEntity.City.ToString();
if (string.IsNullOrEmpty(City))
{
MessageUtil.ShowTips("省份名称不能为空!");
continue;
}
string Area = JkfOrderImportHeadEntity.SenderArea.ToString();
if (string.IsNullOrEmpty(Area))
{
MessageUtil.ShowTips("收件人区名称不能为空!");
continue;
}
#endregion
ShopId = JkfOrderImportHeadEntity.OrderType.ToString();//订单类型不同平台不同的来源仓库用来区分店铺
string Sqlwhere = string.Format("FId='{0}'", JkfOrderImportHeadEntity.Id);
entityListDetail = new List<A8ERP_Customs_JkfOrderDetailInfo>();
entityListDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
OrderNo = JkfOrderImportHeadEntity.OrderNo.ToString();
InvoiceInfoEntity = new KCY_InvoiceInfoInfo();//发票信息
//输入订单主表
string FileName = OrderNo;
string MsgData = string.Empty;
string XmlFileName = WebServiceXMLHelper.CareateXml(FileName, "OrderToWC");//创建并返回路径
string XmlData = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OutXMl(JkfOrderImportHeadEntity, entityListDetail, InvoiceInfoEntity, XmlFileName);
returnValue = HttpWMSHelper.HttpPostOrder(XmlData, ShopId, out statusMessage, out MsgData);
//修改当前的订单状态
if (statusMessage == "true")
{
if (returnValue)
{
//写入订单状态到订单
string orderStatusCode = CustomsOrderState.SynchronousOk.ToString();
if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, Ids[i].ToString(), orderStatusCode))
{
string Msg = statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
itemCount++;
statusMessage = " 已同步 " + itemCount + " 条" + Msg;
progress.SetStatusInfo.Text = statusMessage;
}
progress.SetProgressValue(99);
progress.SetStatusInfo.Text = statusMessage + "执行发货处理...";
#region 发送打包指令
progress.SetStatusInfo.Text = statusMessage + "发送打包指令...";
SendNoTFY_WMS_PACKAGE(Ids[i].ToString());
#endregion
#region 是否更新电商的发货状态
if (StoreManagementEntity.DeliveryStatus == 1)
{
progress.SetStatusInfo.Text = statusMessage + "更新电商的发货状态...";
string TidNo = OrderNo.Substring(6);
ConfirmDelivery(TidNo, WayBills, JkfOrderImportHeadEntity.LogisticsCarrierNumber.ToString());
}
#endregion
}
}
else
{
returnValue = false;
itemErrcount++;
MessageUtil.ShowTips(MsgData);
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "执行完毕...";
progress.Close();
MessageUtil.ShowTips(string.Format("同步订单发送成功:{0}条 错误:{1} 条", itemCount, itemErrcount));
this.FormOnLoad();
}
return returnValue;
}
#endregion
#region 确认发货
/// <summary>
/// 确认发货
/// </summary>
/// <param name="Tid"></param>
/// <param name="WayBills"></param>
/// <param name="ExpressCodeName"></param>
/// <returns></returns>
public bool ConfirmDelivery(string Tid, string WayBills, string ExpressCodeName)
{
bool returnValue = false;
string Sid = string.Empty;
string statusCode = string.Empty;
string statusMessage = string.Empty;
string Condition = string.Format("Tid='{0}'", Tid);
A8ERP_TaobaoOrdersInfo entity = new A8ERP_TaobaoOrdersInfo();
entity = BLLFactory<BLL.A8ERP_TaobaoOrders>.Instance.FindSingle(Condition);
if (entity == null)
return returnValue;
//Sid = entity.Sid.ToString();
Sid = WayBills;
string shopNameCode = entity.StoreId.ToString();//店铺编码
if (entity.Tid.Trim().ToString().Equals(entity.Sid.Trim().ToString()))
{
MessageUtil.ShowTips(string.Format("未生成物流单号:{0}个", Sid));
return returnValue;
}
returnValue = TaobaoOperation.GetSendResponse(long.Parse(Tid), ExpressCodeName, Sid, shopNameCode, out statusMessage);//"SF"
//更新订单状态
if (returnValue)
{
entity.Status = TaobaoStatusCodeEnum.WAIT_BUYER_CONFIRM_GOODS.ToString();//;Status
if (BLLFactory<BLL.A8ERP_TaobaoOrders>.Instance.OrderAuditState(entity))
{
A8ERP_TaobaoOrderDetailInfo entityDetail = new A8ERP_TaobaoOrderDetailInfo();
string Conditiondetail = string.Format("oid='{0}'", Tid);
entityDetail = BLLFactory<BLL.A8ERP_TaobaoOrderDetail>.Instance.FindSingle(Conditiondetail);
if (entityDetail == null)
return returnValue;
entityDetail.Status = TaobaoStatusCodeEnum.WAIT_BUYER_CONFIRM_GOODS.ToString();// Status;
BLLFactory<BLL.A8ERP_TaobaoOrderDetail>.Instance.OrderAuditState(entityDetail);
}
}
else
{
MessageUtil.ShowTips(statusMessage);
entity.Status = TaobaoStatusCodeEnum.WAIT_BUYER_CONFIRM_GOODS.ToString();//;Status
if (BLLFactory<BLL.A8ERP_TaobaoOrders>.Instance.OrderAuditState(entity))
{
A8ERP_TaobaoOrderDetailInfo entityDetail = new A8ERP_TaobaoOrderDetailInfo();
string Conditiondetail = string.Format("oid='{0}'", Tid);
entityDetail = BLLFactory<BLL.A8ERP_TaobaoOrderDetail>.Instance.FindSingle(Conditiondetail);
if (entityDetail == null)
return returnValue;
entityDetail.Status = TaobaoStatusCodeEnum.WAIT_BUYER_CONFIRM_GOODS.ToString();// Status;
BLLFactory<BLL.A8ERP_TaobaoOrderDetail>.Instance.OrderAuditState(entityDetail);
}
}
return returnValue;
}
#endregion
#region 同步仓库
/// <summary>
/// 同步到网仓
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void RunBtnSynchronous()
{
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
//PostOrderEntity(UserInfo, GetSelectIds());//网仓
RunBtnWarehouse(); //冷联
}
}
/// <summary>
/// 同步冷链
/// </summary>
private void RunBtnWarehouse()
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
int itemErrcount = 0;
bool returnValue = false;
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
//if (DialogResult.Yes == DevExpress.XtraEditors.XtraMessageBox.Show("确认同步仓库操作吗?", AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information))
//{
ProgressForm progress = new ProgressForm(this);
progress.Show();
try
{
#region 批量发送到冷联
for (int i = 0; i < GetSelecteIds().Length; i++)
{
string FileName = string.Empty;
string CurrentOrderNo = string.Empty;
string PlatformNumber = string.Empty;
string XmlFileName = string.Empty;
string OrderXml = string.Empty;
string WayBills = string.Empty;
string LogisticsCarrierNumber = string.Empty;
string LogisticsCarriersName = string.Empty;
//过滤表获得当前选中行的记录
DataTable GoodsOrderImportHeadXml = new DataTable();
string Id = GetSelecteIds()[i];
string Condition = string.Format("Id='{0}'", Id);
GoodsOrderImportHeadXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
if (GoodsOrderImportHeadXml.Rows.Count == 0)
continue;
for (int K = 0; K < GoodsOrderImportHeadXml.Rows.Count; K++)
{
CurrentOrderNo = GoodsOrderImportHeadXml.Rows[K]["OrderNo"].ToString();//当前订单号
PlatformNumber = GoodsOrderImportHeadXml.Rows[K]["PlatformNumber"].ToString();//源订单号
WayBills = GoodsOrderImportHeadXml.Rows[K]["WayBills"].ToString();
LogisticsCarrierNumber = GoodsOrderImportHeadXml.Rows[K]["LogisticsCarrierNumber"].ToString();//物流承运商编号
LogisticsCarriersName = GoodsOrderImportHeadXml.Rows[K]["LogisticsCarriersName"].ToString();//物流承运商名称
}
DataRow dr = BaseBusinessLogic.GetDataRow(GoodsOrderImportHeadXml, "Id", Id);
#region 状态过滤
//已申报才能同步
string AuditState = dr["AuditState"].ToString();
if ((AuditState.Equals("70")))
{
statusMessage = "已出库不能同步!";
MessageUtil.ShowTips(statusMessage);
continue;
}
if ((!AuditState.Equals("30")))
{
statusMessage = "呵呵!您的订单状态不在已申报状态,已申报才能同步!";
MessageUtil.ShowTips(statusMessage);
continue;
}
WayBills = dr["WayBills"].ToString();//运单号
if (WayBills.Length <= 10 && WayBills.Equals(""))
{
statusMessage = "呵呵!你连运单号都没有或是运单号不符合规定!有点过分了哦";
MessageUtil.ShowTips(statusMessage);
continue;
}
#endregion
#region 检查是否有退货记录
A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(dr["ShopNameId"].ToString());
if (StoreManagementEntity.CheckrefundSingle == 1)
{
long Tid = long.Parse(PlatformNumber);
TaobaoConfig.SetTaobaoConfig(dr["ShopNameId"].ToString());//获得店铺的联连信息
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
BLLTools.WriteRefund_Status(Id, CurrentOrderNo, statusCode, statusMessage);//记录退单记录
A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
entity.OrderNoId = Id;
entity.OrderNo = CurrentOrderNo;
entity.StatusCode = statusCode;
entity.StateDescription = statusMessage;
string statusCodes = string.Empty;
string statusMessages = string.Empty;
BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
continue;
}
}
#endregion
#region 验证相关信息
string Province = dr["Province"].ToString();
if (string.IsNullOrEmpty(Province))
{
MessageUtil.ShowTips("省份名称不能为空!");
continue;
}
string City = dr["City"].ToString();
if (string.IsNullOrEmpty(City))
{
MessageUtil.ShowTips("省份名称不能为空!");
continue;
}
string Area = dr["Area"].ToString();
if (string.IsNullOrEmpty(Area))
{
MessageUtil.ShowTips("收件人区名称不能为空!");
continue;
}
#endregion
#region 验证相关信息
if (string.IsNullOrEmpty(LogisticsCarrierNumber))
{
MessageUtil.ShowTips("物流承运商编号不能为空!");
break;
}
if (string.IsNullOrEmpty(WayBills))
{
continue;
}
#endregion
DataTable GoodsDetaildtXml = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//个人申报明细表
string condition = string.Format("FId='{0}'", Id);
GoodsDetaildtXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(condition);
//发票信息
DataTable NvoiceInfoDtXml = new DataTable(A8ERP_Customs_NvoiceInfoInfo.TableName);//发票信息
NvoiceInfoDtXml = BLLFactory<BLL.A8ERP_Customs_NvoiceInfo>.Instance.GetDataTable(condition);//发票信息
FileName = CurrentOrderNo + "LL";
XmlFileName = WebServiceXMLHelper.CareateXmlReturnPath(FileName);//创建并返回路径
OrderXml = OrderUtils.GetOrderXml(GoodsOrderImportHeadXml, GoodsDetaildtXml, NvoiceInfoDtXml, XmlFileName);//写入Xml文件
string appSecret = "12345678";
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
Encoding encoding = Encoding.UTF8;
//这里是对方没有进行校验
string Md5Sign = BitConverter.ToString(md5.ComputeHash(encoding.GetBytes(appSecret + OrderXml + appSecret)));//Md5加密签名
String sign = Convert.ToBase64String(encoding.GetBytes(Md5Sign)).ToUpper();//.Replace("-", ""); //加密签名
sign = Convert.ToBase64String(encoding.GetBytes(sign));
string PostData = OrderUtils.GerPutSKUDataXml(OrderXml, sign);//发送冷联参数
string ReturnMsgXml = HttpUtility.UrlDecode(OrderUtils.SendXml(PostData, out statusMessage, out returnValue));
//接收成功变更订单的状态
string Msg = string.Empty;
returnValue = OrderUtils.ReturnResponseSSuccess(CurrentOrderNo, ReturnMsgXml, out statusCode, out statusMessage);
if (returnValue)
{
//更新订单状态
string orderStatusCode = CustomsOrderState.SynchronousOk.ToString();
if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, Id, orderStatusCode))
{
itemCount++;
progress.SetStatusInfo.Text = " 已同步 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
}
#region 写入操作记录
if (returnValue)
{
A8ERP_WMS_OperationRecordsInfo OperationEntity = new A8ERP_WMS_OperationRecordsInfo();
OperationEntity.ProcessId = CurrentOrderNo;//服务Id
OperationEntity.ProcessName = "订单服务";//服务名称
OperationEntity.OperationName = string.Format("订单服务 {0} {1}", CustomsOrderState.SynchronousOk.ToDescription().ToString(), CurrentOrderNo);//操作名称
OperationEntity.Operation = UserInfo.RealName;//操作人
OperationEntity.OrderState = "40";//状态
OperationEntity.CustomsField = UserInfo.WarehouseName;//路由产生地点
OperationEntity.Description = string.Format("订单:{0} 订单服务", CurrentOrderNo);//描述
OperationEntity.CreateBy = UserInfo.UserName;//用户名称
OperationEntity.CreateUserId = UserInfo.Id;//用户Id
OperationEntity.OrgId = UserInfo.SubCompanyId;//机构Id
OperationEntity.OrgName = UserInfo.SubCompanyName;//机构名称
returnValue = BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.Add(UserInfo, OperationEntity);
}
#endregion
}
else
{
itemErrcount++;
progress.SetStatusInfo.Text = " 已同步 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
}
progress.SetProgressValue(99);
progress.SetStatusInfo.Text = statusMessage + "更新电商的发货状态...";
#region 是否更新电商的发货状态
if (returnValue)
{
if (StoreManagementEntity.DeliveryStatus == 1)
{
progress.SetStatusInfo.Text = statusMessage + "更新电商的发货状态...";
ConfirmDelivery(PlatformNumber, WayBills, LogisticsCarrierNumber);//
}
}
#endregion
}
#endregion
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = " 已同步 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
progress.Close();
MessageUtil.ShowTips(statusMessage);
this.FormOnLoad();
}
//}
}
}
#endregion
#region 确认出货
/// <summary>
/// 确认发货
/// </summary>
public void ConfirmShipment()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
try
{
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
if (MessageUtil.ShowYesNoAndWarning("批量执行发货,此操作将改变电商的发货状态,您确定是否继续?") == DialogResult.Yes)
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
ProgressForm progress = new ProgressForm(this);
int itemCount = 0;
int itemErrcount = 0;
string OrderstatusCode = string.Empty;
progress.Show();
try
{
for (int i = 0; i < GetSelectOrderNos().Length; i++)
{
progress.SetProgressValue(1);
string OrderNo = GetSelectOrderNos()[i].ToString();
string conditon = string.Format("OrderNo='{0}'", OrderNo);
A8ERP_Customs_JkfOrderImportHeadInfo entityOrder = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(conditon);
if (entityOrder == null) continue;
string ShopNameId = string.Empty;
string PlatformNumber = string.Empty;
string LogisticsCarrierNumber = string.Empty;
string LogisticsCarriersName = string.Empty;
string WayBills = string.Empty;
ShopNameId = entityOrder.ShopNameId.ToString();//店铺Id
PlatformNumber = entityOrder.PlatformNumber.ToString();//源单号
LogisticsCarrierNumber = entityOrder.LogisticsCarrierNumber;//物流承运商编号
LogisticsCarriersName = entityOrder.LogisticsCarriersName;//物流承运商名称
WayBills = entityOrder.WayBills;//运单号
#region 检查是否有退货记录
A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(ShopNameId);
if (StoreManagementEntity.CheckrefundSingle == 1)
{
long Tid = long.Parse(PlatformNumber);
TaobaoConfig.SetTaobaoConfig(ShopNameId);//获得店铺的联连信息
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
BLLTools.WriteRefund_Status(entityOrder.Id.ToString(), CurrentOrderNo, statusCode, statusMessage);//记录退单记录
A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
entity.OrderNoId = entityOrder.Id.ToString();
entity.OrderNo = CurrentOrderNo;
entity.StatusCode = statusCode;
entity.StateDescription = statusMessage;
string statusCodes = string.Empty;
string statusMessages = string.Empty;
BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
itemErrcount++;
continue;
}
}
#endregion
#region 是否更新电商的发货状态
if (StoreManagementEntity.DeliveryStatus == 1)
{
progress.SetStatusInfo.Text = statusMessage + "更新电商的发货状态...";
itemCount++;
progress.SetProgressValue(80);
progress.SetStatusInfo.Text = " 确认发货 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
ConfirmDelivery(PlatformNumber, WayBills, LogisticsCarrierNumber);//
}
#endregion
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = " 确认发货 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
progress.Close();
MessageUtil.ShowTips(string.Format("确认发货成功:{0}个", itemCount));
this.FormOnLoad();
}
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
#endregion
#region 商品发送到海关
/// <summary>
///商品发送
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public override void RundeclareVoid()
{
try
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
int itemErrcount = 0;
progress.Show();
try
{
#region 批量提交申报
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string FileName = string.Empty;
string CurrentOrderNo = string.Empty;
string PlatformNumber = string.Empty;
string XmlFileName = string.Empty;
string OrderXml = string.Empty;
bool returnValueMsg = false;
string ShopNameId = string.Empty;
string WayBills = string.Empty;
//过滤表获得当前选中行的记录
string businessType = "IMPORTORDER";//业务类型//商品订单
string sourceType = chkbusinessType.Checked == true ? "1" : "2";//申报类型//1新增 2修改
#region 申报单主信息
DataTable GoodsOrderImportHeadXml = new DataTable();
string Id = GetSelecteIds()[i];
string Condition = string.Format("Id='{0}'", Id);
GoodsOrderImportHeadXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
for (int K = 0; K < GoodsOrderImportHeadXml.Rows.Count; K++)
{
CurrentOrderNo = GoodsOrderImportHeadXml.Rows[K]["OrderNo"].ToString();
PlatformNumber = GoodsOrderImportHeadXml.Rows[K]["PlatformNumber"].ToString();
WayBills = GoodsOrderImportHeadXml.Rows[K]["WayBills"].ToString();
ShopNameId = GoodsOrderImportHeadXml.Rows[K]["ShopNameId"].ToString();
}
if (string.IsNullOrEmpty(WayBills))
{
continue;
}
#region 订单状态是否已申报
int OrderAuditState = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetOrderAuditState(CurrentOrderNo);
if (OrderAuditState >= 30)
{
progress.SetStatusInfo.Text = "订单已进入出货流程不能再申报...";
continue;
}
#endregion
#endregion
#region 发现是否有申请退货或是退货关闭交易
A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(ShopNameId);
if (StoreManagementEntity.CheckrefundSingle == 1)
{
long Tid = long.Parse(PlatformNumber);
TaobaoConfig.SetTaobaoConfig(ShopNameId);//获得店铺的联连信息
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
//更改退单状态
string OrderState = string.Empty;
switch (statusCode)
{
case "61":
OrderState = CustomsOrderState.WAIT_SELLER_AGREE.ToString();//申请退单中
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//订单变更状态
BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//清单变更状态
BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//运变更状态
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//顺风物流变更状态
BLLFactory<BLL.A8ERP_Customs_ExpressManagement>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//冷联变更状态
break;
case "66":
OrderState = CustomsOrderState.SUCCESS.ToString();//退款成功
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//订单变更状态
BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//清单变更状态
BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//运变更状态
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//顺风物流变更状态
BLLFactory<BLL.A8ERP_Customs_ExpressManagement>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//冷联变更状态
break;
}
BLLTools.WriteRefund_Status(Id, CurrentOrderNo.ToString());//记录退单记录
MessageUtil.ShowTips("呵呵! 发现客户有申请退货或是退单记录已关闭");
continue;
}
}
#endregion
#region 签名信息
string conditionSign = string.Format("ShopNameId='{0}' and BusinessType='{1}'", ShopNameId, businessType);
DataTable SignTableXml = new DataTable();
SignTableXml = BLLFactory<BLL.A8ERP_Customs_JkfSign>.Instance.GetDataTable(conditionSign);
if (SignTableXml.Rows.Count == 0)
{
MessageUtil.ShowTips("签名信息不存在!");
continue;
}
for (int j = 0; j < SignTableXml.Rows.Count; j++)
{
SignTableXml.Rows[j]["businessNo"] = CurrentOrderNo;
SignTableXml.Rows[j]["BusinessType"] = businessType;
}
#endregion
#region 订单申报明细表
DataTable GoodsDetaildtXml = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//订单申报明细表
string condition = string.Format("FId='{0}'", Id);
GoodsDetaildtXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(condition);
#endregion
FileName = WebServiceXMLHelper.CareateXMLFileName(sourceType, businessType, CurrentOrderNo);
#region 进数据组装并发送
XmlFileName = WebServiceXMLHelper.CareateXml(FileName);//创建并返回路径
OrderXml = XMLProcess.CareateXml(SignTableXml, GoodsOrderImportHeadXml, GoodsDetaildtXml, XmlFileName, businessType);//写入Xml文件
statusMessage = WebServiceSend.OrderXmlSend(OrderXml, businessType, sourceType);
//写入回执消息到XMl
returnValueMsg = XmlOperation.MessageResultXml(statusMessage, CurrentOrderNo, out statusMessage);
//写入状态到表
if (returnValueMsg)
{
string orderStatusCode = CustomsOrderState.Declaration.ToString();
returnValueMsg = BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, Id, orderStatusCode);
if (returnValueMsg)
{
statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
itemCount++;
}
else
{
itemErrcount++;
}
#region 记录操作日志
if (returnValueMsg)
{
//申报参数
A8ERP_WMS_OperationRecordsInfo OperationRecordsEntity = new A8ERP_WMS_OperationRecordsInfo();
A8ERP_Customs_OrderDeclareParameterInfo PersonalSingleEntity = new A8ERP_Customs_OrderDeclareParameterInfo();
string PersonalSingleSql = string.Format("ShopNameId='{0}'", ShopNameId);
PersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.FindSingle(PersonalSingleSql);
OperationRecordsEntity.CustomsField = PersonalSingleEntity.CustomsField;//路由产生地点
OperationRecordsEntity.ProcessId = CurrentOrderNo;//服务Id
OperationRecordsEntity.ProcessName = "订单申报";//服务名称
OperationRecordsEntity.OperationName = "申报";//操作名称
OperationRecordsEntity.OrderState = "10";//状态
OperationRecordsEntity.Operation = UserInfo.RealName;//操作人
OperationRecordsEntity.Description = string.Format("单号:{0} 订单发送成功", CurrentOrderNo);//描述
OperationRecordsEntity.CreateBy = UserInfo.UserName;//用户名称
OperationRecordsEntity.CreateUserId = UserInfo.Id;//用户Id
OperationRecordsEntity.OrgId = UserInfo.SubCompanyId;//机构Id
OperationRecordsEntity.OrgName = UserInfo.SubCompanyName;//机构名称
BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.Add(UserInfo, OperationRecordsEntity, out statusCode, out statusMessage);
}
#endregion
}
else
{
MessageUtil.ShowTips(statusMessage);
}
#endregion
progress.SetStatusInfo.Text = "已成功: " + itemCount + " 条" + "错误:" + itemErrcount + "条";
progress.SetProgressValue(100);
}
#endregion
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "发送完毕...";
progress.Close();
statusMessage = progress.SetStatusInfo.Text;
MessageUtil.ShowTips(string.Format("申报单发送成功:{0}条 错误:{1} 条", itemCount, itemErrcount));
this.FormOnLoad();
}
}
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
}
#endregion
#region 商品发送到总署海关报文
/// <summary>
///商品发送到总署海关报文
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void SendReceivedDeclare()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
int itemErrcount = 0;
progress.Show();
try
{
#region 批量提交申报
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string FileName = string.Empty;
string CurrentOrderNo = string.Empty;
string PlatformNumber = string.Empty;
string XmlFileName = string.Empty;
string OrderXml = string.Empty;
bool returnValueMsg = false;
string ShopNameId = string.Empty;
string WayBills = string.Empty;
//过滤表获得当前选中行的记录
string businessType = "IMPORTORDER";//业务类型//商品订单
string sourceType = chkbusinessType.Checked == true ? "1" : "2";//申报类型//1新增 2修改
#region 申报单主信息
DataTable GoodsOrderImportHeadXml = new DataTable();
string Id = GetSelecteIds()[i];
string Condition = string.Format("Id='{0}'", Id);
GoodsOrderImportHeadXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
if (GoodsOrderImportHeadXml.Rows.Count == 0)
continue;
string AuditState = string.Empty;
for (int K = 0; K < GoodsOrderImportHeadXml.Rows.Count; K++)
{
CurrentOrderNo = GoodsOrderImportHeadXml.Rows[K]["OrderNo"].ToString();
PlatformNumber = GoodsOrderImportHeadXml.Rows[K]["PlatformNumber"].ToString();
WayBills = GoodsOrderImportHeadXml.Rows[K]["WayBills"].ToString();
ShopNameId = GoodsOrderImportHeadXml.Rows[K]["ShopNameId"].ToString();
AuditState = GoodsOrderImportHeadXml.Rows[K]["AuditState"].ToString();
}
if (string.IsNullOrEmpty(WayBills))
{
continue;
}
#region 订单状态是否 已申报 已申报//已出库//海关入库
if ((AuditState == "30") || (AuditState == "40") || (AuditState == "120"))
{
progress.SetStatusInfo.Text = "订单已进入出货流程不能再申报...";
continue;
}
#endregion
#endregion
#region 发现是否有申请退货或是退货关闭交易
A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(ShopNameId);
if (StoreManagementEntity.CheckrefundSingle == 1)
{
long Tid = long.Parse(PlatformNumber);
TaobaoConfig.SetTaobaoConfig(ShopNameId);//获得店铺的联连信息
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
//更改退单状态
string OrderState = string.Empty;
switch (statusCode)
{
case "61":
OrderState = CustomsOrderState.WAIT_SELLER_AGREE.ToString();//申请退单中
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//订单变更状态
BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//清单变更状态
BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//运变更状态
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//顺风物流变更状态
BLLFactory<BLL.A8ERP_Customs_ExpressManagement>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//冷联变更状态
break;
case "66":
OrderState = CustomsOrderState.SUCCESS.ToString();//退款成功
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//订单变更状态
BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//清单变更状态
BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//运变更状态
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//顺风物流变更状态
BLLFactory<BLL.A8ERP_Customs_ExpressManagement>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//冷联变更状态
break;
}
BLLTools.WriteRefund_Status(Id, CurrentOrderNo.ToString());//记录退单记录
MessageUtil.ShowTips("呵呵! 发现客户有申请退货或是退单记录已关闭");
continue;
}
}
#endregion
#region 签名信息
string conditionSign = string.Format("ShopNameId='{0}' and BusinessType='{1}'", ShopNameId, businessType);
DataTable SignTableXml = new DataTable();
SignTableXml = BLLFactory<BLL.A8ERP_Customs_JkfSign>.Instance.GetDataTable(conditionSign);
if (SignTableXml.Rows.Count == 0)
{
MessageUtil.ShowTips("签名信息不存在!");
continue;
}
for (int j = 0; j < SignTableXml.Rows.Count; j++)
{
SignTableXml.Rows[j]["businessNo"] = CurrentOrderNo;
SignTableXml.Rows[j]["BusinessType"] = businessType;
}
#endregion
#region 订单申报明细表
DataTable GoodsDetaildtXml = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//订单申报明细表
string condition = string.Format("FId='{0}'", Id);
GoodsDetaildtXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(condition);
#endregion
FileName = WebServiceXMLHelper.CareateXMLFileName(sourceType, businessType, CurrentOrderNo);
#region 进数据组装并发送
XmlFileName = WebServiceXMLHelper.CareateXml(FileName);//创建并返回路径
OrderXml = OrderDelareUtilities.GetCareateOrderXml(SignTableXml, GoodsOrderImportHeadXml, GoodsDetaildtXml, XmlFileName, businessType);//获得组装好的报文
progress.SetProgressValue(80);
statusMessage = WebServiceSend.OrderXmlSend(OrderXml, businessType, sourceType);
//写入回执消息到XMl
returnValueMsg = XmlOperation.MessageResultXml(statusMessage, CurrentOrderNo, out statusMessage);
//写入状态到表
if (returnValueMsg)
{
string orderStatusCode = CustomsOrderState.Declaration.ToString();
returnValueMsg = BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, Id, orderStatusCode);
if (returnValueMsg)
{
statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
itemCount++;
}
else
{
itemErrcount++;
}
#region 记录操作日志
if (returnValueMsg)
{
//申报参数
A8ERP_WMS_OperationRecordsInfo OperationRecordsEntity = new A8ERP_WMS_OperationRecordsInfo();
A8ERP_Customs_OrderDeclareParameterInfo PersonalSingleEntity = new A8ERP_Customs_OrderDeclareParameterInfo();
SqlCondition = string.Format("ShopNameId='{0}'", ShopNameId);
PersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.FindSingle(SqlCondition);
OperationRecordsEntity.CustomsField = PersonalSingleEntity.CustomsField;//路由产生地点
OperationRecordsEntity.ProcessId = CurrentOrderNo;//服务Id
OperationRecordsEntity.ProcessName = "总署订单申报";//服务名称
OperationRecordsEntity.OperationName = "总署订单申报";//操作名称
OperationRecordsEntity.OrderState = "10";//状态
OperationRecordsEntity.Operation = UserInfo.RealName;//操作人
OperationRecordsEntity.Description = string.Format("单号:{0} 订单发送成功", CurrentOrderNo);//描述
OperationRecordsEntity.CreateBy = UserInfo.UserName;//用户名称
OperationRecordsEntity.CreateUserId = UserInfo.Id;//用户Id
OperationRecordsEntity.OrgId = UserInfo.SubCompanyId;//机构Id
OperationRecordsEntity.OrgName = UserInfo.SubCompanyName;//机构名称
BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.Add(UserInfo, OperationRecordsEntity, out statusCode, out statusMessage);
}
#endregion
}
else
{
MessageUtil.ShowTips(statusMessage);
}
#endregion
statusMessage = string.Format("发送成功:{0}条 错误:{1} 条", itemCount, itemErrcount);
progress.SetStatusInfo.Text = statusMessage;
progress.SetProgressValue(100);
}
#endregion
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "发送完毕...";
progress.Close();
statusMessage = string.Format("发送成功:{0}条 错误:{1} 条", itemCount, itemErrcount);
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
//this.FormOnLoad();
}
}
}
/// <summary>
/// 生成报文
/// </summary>
public void GenerateMessage()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
string FileNamePath = string.Empty;
int itemCount = 0;
int itemErrcount = 0;
progress.Show();
try
{
#region 批量提交申报
progress.SetProgressValue(1);
string FileName = string.Empty;
string CurrentOrderNo = string.Empty;
string PlatformNumber = string.Empty;
string XmlFileName = string.Empty;
string OrderXml = string.Empty;
string ShopNameId = string.Empty;
string WayBills = string.Empty;
//过滤表获得当前选中行的记录
string businessType = "IMPORTORDER";//业务类型//商品订单
string sourceType = chkbusinessType.Checked == true ? "1" : "2";//申报类型//1新增 2修改
#region 申报单主信息
DataTable JkfOrderImportHeadDt = new DataTable();
string Id = CurrentEntityId;
string Condition = string.Format("Id='{0}'", Id);
JkfOrderImportHeadDt = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
for (int K = 0; K < JkfOrderImportHeadDt.Rows.Count; K++)
{
CurrentOrderNo = JkfOrderImportHeadDt.Rows[K]["OrderNo"].ToString();
PlatformNumber = JkfOrderImportHeadDt.Rows[K]["PlatformNumber"].ToString();
WayBills = JkfOrderImportHeadDt.Rows[K]["WayBills"].ToString();
ShopNameId = JkfOrderImportHeadDt.Rows[K]["ShopNameId"].ToString();
}
if (string.IsNullOrEmpty(WayBills))
{
return;
}
#endregion
#region 签名信息
string conditionSign = string.Format("ShopNameId='{0}' and BusinessType='{1}'", ShopNameId, businessType);
DataTable SignTableXml = new DataTable();
SignTableXml = BLLFactory<BLL.A8ERP_Customs_JkfSign>.Instance.GetDataTable(conditionSign);
if (SignTableXml.Rows.Count == 0)
{
MessageUtil.ShowTips("签名信息不存在!");
return;
}
for (int j = 0; j < SignTableXml.Rows.Count; j++)
{
SignTableXml.Rows[j]["businessNo"] = CurrentOrderNo;
SignTableXml.Rows[j]["BusinessType"] = businessType;
}
#endregion
#region 订单申报明细表
DataTable GoodsDetaildtXml = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//订单申报明细表
string condition = string.Format("FId='{0}'", Id);
GoodsDetaildtXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(condition);
#endregion
FileName = WebServiceXMLHelper.CareateXMLFileName(sourceType, businessType, CurrentOrderNo);
#region 进数据组装并发送
XmlFileName = WebServiceXMLHelper.CareateXml(FileName);//创建并返回路径
FileNamePath = Application.StartupPath + XmlFileName;
OrderXml = OrderDelareUtilities.GetCareateOrderXml(SignTableXml, JkfOrderImportHeadDt, GoodsDetaildtXml, XmlFileName, businessType);//获得组装好的报文
#endregion
progress.SetStatusInfo.Text = "已成功: " + itemCount + " 条" + "错误:" + itemErrcount + "条";
progress.SetProgressValue(100);
#endregion
}
catch (Exception ex)
{
DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "发送完毕...";
progress.Close();
//DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
if (!string.IsNullOrEmpty(FileNamePath))
{
Process.Start(FileNamePath);
}
}
}
#endregion
#region 批量生成个人申报单
/// <summary>
/// 批量生成个人申报单
/// </summary>
public override void RunBathoutputGoodsDeclare()
{
ProgressForm progress = new ProgressForm(this);
progress.Show();
try
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
int MainDeclareitemCount = 0;
int PaymentCount = 0;
int itemMainDeclareitemErrCount = 0;
int itemPaymentErrCount = 0;
try
{
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
//获得电商订单主体信息
string Id = GetSelecteIds()[i].ToString();
string condition = string.Format("Id='{0}'", Id);
A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = null;
A8ERP_Customs_GoodsMainDeclareInfo GoodsMainDeclareEntity = null;
JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
JkfOrderImportHeadEntity = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);
if (JkfOrderImportHeadEntity == null)
continue;
if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.Province))
{
statusMessage = "省份不能为空!";
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.City))
{
statusMessage = "城市不能为空!";
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.Area))
{
statusMessage = "区不能为空!";
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
GoodsMainDeclareEntity = new A8ERP_Customs_GoodsMainDeclareInfo();//明细
List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailListEntity = null;
string conditiondetail = string.Format("FId='{0}'", JkfOrderImportHeadEntity.Id.ToString());
JkfOrderDetailListEntity = BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(conditiondetail);
if (JkfOrderDetailListEntity == null)
continue;
if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.WayBills.ToString()))
continue;
//给表头赋值
#region 读取当前平台的参数
A8ERP_Customs_PersonalSingleInfo GetPersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_PersonalSingle>.Instance.GetObjEntity(JkfOrderImportHeadEntity.ShopNameId.ToString());
if (GetPersonalSingleEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
continue;
}
#endregion
#region 清单主表记录
string preNumber = string.Empty;
GoodsMainDeclareEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单号
GoodsMainDeclareEntity.AccountBookNo = GetPersonalSingleEntity.AccountBookNo.ToString().Trim();//账册编号
preNumber = GetOrderNumber.GetExpressPreEntryNumber();//预录入号码
GoodsMainDeclareEntity.PreEntryNumber = preNumber;//预录入号码
GoodsMainDeclareEntity.WayBill = JkfOrderImportHeadEntity.WayBills;//运单号
GoodsMainDeclareEntity.InOutDateStr = DateTime.Now;//进出口日期
GoodsMainDeclareEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
GoodsMainDeclareEntity.ShopNameId = JkfOrderImportHeadEntity.ShopNameId;//店铺Id
GoodsMainDeclareEntity.IeFlag = GetPersonalSingleEntity.IeFlag.ToString().Trim();// "I";//进出口标志
GoodsMainDeclareEntity.ImportType = GetPersonalSingleEntity.ImportType.ToString().Trim();// "1";//进口类型
GoodsMainDeclareEntity.IePort = GetPersonalSingleEntity.IePort.ToString().Trim();// "2991";//进出口岸代码
GoodsMainDeclareEntity.DeclareCompanyCode = GetPersonalSingleEntity.DeclareCompanyCode.ToString().Trim();//申报单位代码//3301280007
GoodsMainDeclareEntity.DeclareCompanyName = GetPersonalSingleEntity.DeclareCompanyName.ToString().Trim();// "浙江达缘供应链管理有限公司";//申报单位名称//杭州中远报关服务有限公司
GoodsMainDeclareEntity.DeclareCompanyType = GetPersonalSingleEntity.DeclareCompanyType.ToString().Trim();// "1"; //申报单位类别
GoodsMainDeclareEntity.DestinationPort = GetPersonalSingleEntity.DestinationPort.ToString().Trim();// "142";//指运港(抵运港
GoodsMainDeclareEntity.TrafName = GetPersonalSingleEntity.TrafName.ToString();// ""; //运输工具名称
GoodsMainDeclareEntity.TrafMode = GetPersonalSingleEntity.TrafMode.ToString();// "4";//运输方式代码
GoodsMainDeclareEntity.TrafNo = GetPersonalSingleEntity.TrafNo.ToString();//运输工具编号
GoodsMainDeclareEntity.CompanyName = GetPersonalSingleEntity.CompanyName.ToString(); //电商平台名称
GoodsMainDeclareEntity.CompanyCode = GetPersonalSingleEntity.CompanyCode.ToString(); //电商平台代码
GoodsMainDeclareEntity.ECommerceCode = JkfOrderImportHeadEntity.ECommerceCode.ToString(); //电商企业代码
GoodsMainDeclareEntity.ECommerceName = JkfOrderImportHeadEntity.ECommerceName.ToString(); //电商企业名称
GoodsMainDeclareEntity.LogisCompanyCode = GetPersonalSingleEntity.LogisCompanyCode.ToString(); //物流企业代码
GoodsMainDeclareEntity.LogisCompanyName = GetPersonalSingleEntity.LogisCompanyName.ToString(); //物流企业名称
GoodsMainDeclareEntity.TradeCountry = GetPersonalSingleEntity.TradeCountry.ToString();//贸易国别(起运地)
GoodsMainDeclareEntity.PackNo = ValuesData.TurnToInt(JkfOrderImportHeadEntity.TotalCount.ToString()); //件数
GoodsMainDeclareEntity.BillNo = "";//提运单号
GoodsMainDeclareEntity.GrossWeight = JkfOrderImportHeadEntity.GrossWeight / 1000;//毛重(公斤)
GoodsMainDeclareEntity.NetWeight = JkfOrderImportHeadEntity.TotalWeight / 1000;//净重(公斤)
GoodsMainDeclareEntity.WarpType = "2";//包装种类
GoodsMainDeclareEntity.Remark = JkfOrderImportHeadEntity.Note; //备注
GoodsMainDeclareEntity.DeclPort = GetPersonalSingleEntity.DeclPort.ToString().Trim();// "2991";//申报口岸代码
GoodsMainDeclareEntity.EnteringPerson = GetPersonalSingleEntity.EnteringPerson;//录入人
GoodsMainDeclareEntity.EnteringCompanyName = GetPersonalSingleEntity.EnteringCompanyName;// "9999"; //录入单位名称
GoodsMainDeclareEntity.DeclarantNo = GetPersonalSingleEntity.DeclarantNo.ToString();// "999";//报关员代码
GoodsMainDeclareEntity.CustomsField = GetPersonalSingleEntity.CustomsField.ToString().Trim(); //"299102";//码头/货场代码
GoodsMainDeclareEntity.SenderName = JkfOrderImportHeadEntity.SenderName.ToString();//发件人
GoodsMainDeclareEntity.Consignee = JkfOrderImportHeadEntity.Consignee.ToString();//收件人
GoodsMainDeclareEntity.SenderCountry = JkfOrderImportHeadEntity.SenderCountry.ToString();// "142";//发件人国别
GoodsMainDeclareEntity.SenderCity = JkfOrderImportHeadEntity.SenderCity.ToString(); //发件人城市
GoodsMainDeclareEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress.ToString(); //收件人地址
GoodsMainDeclareEntity.PaperType = "1";//JkfOrderImportHeadEntity.BuyerIdType.ToString();//收件人证件类型
GoodsMainDeclareEntity.PaperNumber = JkfOrderImportHeadEntity.BuyerIdNumber;//收件人证件号
GoodsMainDeclareEntity.PurchaserTelNumber = JkfOrderImportHeadEntity.TelMobile.ToString(); //购买人电话
GoodsMainDeclareEntity.BuyerIdType = "1";//JkfOrderImportHeadEntity.PaperType.ToString(); //订购人证件类型
GoodsMainDeclareEntity.BuyerIdNumber = JkfOrderImportHeadEntity.BuyerIdNumber.ToString(); //订购人证件号
GoodsMainDeclareEntity.BuyerName = JkfOrderImportHeadEntity.UserName.ToString(); //购买人姓名
GoodsMainDeclareEntity.FeeAmount = JkfOrderImportHeadEntity.FeeAmount; //运费
GoodsMainDeclareEntity.InsureAmount = JkfOrderImportHeadEntity.InsureAmount; //保费
GoodsMainDeclareEntity.AssureCode = GetPersonalSingleEntity.AssureCode.ToString(); //担保企业编号
GoodsMainDeclareEntity.LicenseNo = GetPersonalSingleEntity.LicenseNo.ToString(); //许可证号
GoodsMainDeclareEntity.Worth = ValuesData.TurnToDecimal(JkfOrderImportHeadEntity.OrderTotalAmount.ToString());//价值表体所有商品总价的和+运费+保费
GoodsMainDeclareEntity.CurrCode = JkfOrderImportHeadEntity.CurrCode.ToString();// "142";//币制
GoodsMainDeclareEntity.MainGName = JkfOrderDetailListEntity[0].GoodsName.ToString();//主要货物名称
GoodsMainDeclareEntity.InternalAreaCompanyNo = GetPersonalSingleEntity.InternalAreaCompanyNo.ToString().Trim();//区内企业编码
GoodsMainDeclareEntity.InternalAreaCompanyName = GetPersonalSingleEntity.InternalAreaCompanyName.ToString().Trim();// "浙江达缘供应链管理有限公司";//区内企业名称
GoodsMainDeclareEntity.ApplicationFormNo = GetPersonalSingleEntity.ApplicationFormNo.ToString().Trim();// 申请单编号
GoodsMainDeclareEntity.IsAuthorize = Convert.ToInt32(GetPersonalSingleEntity.IsAuthorize.ToString().Trim());//是否授权
GoodsMainDeclareEntity.CreateBy = UserInfo.UserName;//用户名称
GoodsMainDeclareEntity.CreateUserId = UserInfo.Id;//用户Id
GoodsMainDeclareEntity.OrgId = UserInfo.SubCompanyId;//机构Id
GoodsMainDeclareEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 支付信息主记录
A8ERP_TaobaoPaymentSpecialInfo TaobaoPaymententity = new A8ERP_TaobaoPaymentSpecialInfo();
TaobaoPaymententity.CustomsCode = "ZONGSHU";//ZONGSHU海关编码HANGZHOU
TaobaoPaymententity.ShopNameId = JkfOrderImportHeadEntity.ShopNameId;//店铺Id
TaobaoPaymententity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
TaobaoPaymententity.SubCustoms = "";//关区代码
TaobaoPaymententity.MerchantCustomsCode = "3301560039";// JkfOrderImportHeadEntity.ECommerceCode;// "665226530";//商户海关备案编码3301560039
TaobaoPaymententity.MerchantCustomsName = "浙江达缘供应链管理有限公司"; //JkfOrderImportHeadEntity.ECommerceName; //"浙江达缘供应链管理有限公司";
TaobaoPaymententity.PayType = "03";//支付类型
TaobaoPaymententity.SourceOrderCode = JkfOrderImportHeadEntity.OrderNo;//来源订单编码
TaobaoPaymententity.OrderNo = JkfOrderImportHeadEntity.OrderNo;// 订单编号
TaobaoPaymententity.PaymentNo = JkfOrderImportHeadEntity.PayNumber;//支付单号
TaobaoPaymententity.OrderTime = JkfOrderImportHeadEntity.OrderDateTime.ToString();//订单时间
TaobaoPaymententity.CurrencyCus = JkfOrderImportHeadEntity.CurrCode; //"142";//币制
TaobaoPaymententity.GoodsValue = ValuesData.TurnToDecimal(JkfOrderImportHeadEntity.OrderGoodsAmount.ToString()) + JkfOrderImportHeadEntity.InsureAmount + JkfOrderImportHeadEntity.FeeAmount;//货值=货款+保费+运费
TaobaoPaymententity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运费
TaobaoPaymententity.InsureAmount = JkfOrderImportHeadEntity.InsureAmount;//保费
TaobaoPaymententity.TaxAmount = 0; // 税款总额
TaobaoPaymententity.OtherCost = 0;//其他费用
TaobaoPaymententity.OrderAmount = JkfOrderImportHeadEntity.OrderTotalAmount;//订单总金额=货款+保费+运费+税费
TaobaoPaymententity.CountryCode = JkfOrderImportHeadEntity.SenderCountry;//142发件人国别
TaobaoPaymententity.CountryName = JkfOrderImportHeadEntity.ECommerceName;// "浙江达缘供应链管理有限公司";//发件人姓名
TaobaoPaymententity.BuyName = JkfOrderImportHeadEntity.UserName; //购买人姓名
TaobaoPaymententity.BuyMobile = JkfOrderImportHeadEntity.TelMobile;//购买人移动电话
TaobaoPaymententity.ReceiverName = JkfOrderImportHeadEntity.Consignee;//收件人姓名
TaobaoPaymententity.ReceiverMobile = JkfOrderImportHeadEntity.ConsigneePhone;//收件人移动电话
TaobaoPaymententity.Province = JkfOrderImportHeadEntity.Province.ToString();//收件人省份
TaobaoPaymententity.City = JkfOrderImportHeadEntity.City.ToString();//收件人城市
TaobaoPaymententity.Area = JkfOrderImportHeadEntity.Area.ToString();//收件人区域
TaobaoPaymententity.Town = ""; //JkfOrderImportHeadEntity.Receiver_town;//收件人村镇
TaobaoPaymententity.IdType = "01";//证件类型
TaobaoPaymententity.IdNo = JkfOrderImportHeadEntity.PaperNumber;// 330102196711270616证件号码一个身份证信息只能购买2万元商品
TaobaoPaymententity.DetailAddress = JkfOrderImportHeadEntity.ConsigneeAddress.ToString();//收件人详细地址
TaobaoPaymententity.ExpressCode = JkfOrderImportHeadEntity.WayBills;//运单号
TaobaoPaymententity.LogisticsCode = JkfOrderImportHeadEntity.LogisCompanyCode;// 快递公司企业备案编码
TaobaoPaymententity.LogisticsName = JkfOrderImportHeadEntity.LogisCompanyName;// 快递公司企业备案名称
TaobaoPaymententity.CreateBy = UserInfo.UserName;//用户名称
TaobaoPaymententity.CreateUserId = UserInfo.Id;//用户Id
TaobaoPaymententity.OrgId = UserInfo.SubCompanyId;//机构Id
TaobaoPaymententity.OrgName = UserInfo.SubCompanyName;//机构名称
TaobaoPaymententity.UserProcotol = JkfOrderImportHeadEntity.UserProcotol.ToString(); //"本人承诺所购买商品系个人合理自用,现委托商家代理申报、代缴税款等通关事宜,本人保证遵守《海关法》和国家相关法律法规,保证所提供的身份信息和收货信息真实完整,无侵犯他人权益的行为,以上委托关系系如实填写,本人愿意接受海关、检验检疫机构及其他监管部门的监管,并承担相应法律责任";
#endregion
#region 清单明细记录操作
A8ERP_Customs_GoodsDeclareDetailInfo GoodsDeclareDetailEntity = null;
List<A8ERP_Customs_GoodsDeclareDetailInfo> GoodsDeclareDetailListEntity = null;
GoodsDeclareDetailListEntity = new List<A8ERP_Customs_GoodsDeclareDetailInfo>();
for (int k = 0; k < JkfOrderDetailListEntity.Count; k++)
{
GoodsDeclareDetailEntity = new A8ERP_Customs_GoodsDeclareDetailInfo();
GoodsDeclareDetailEntity.FId = 0;
string GoodsCode = JkfOrderDetailListEntity[k].GoodsCode.ToString();//物品编码
GoodsDeclareDetailEntity.GoodsCode = GoodsCode;
A8ERP_MaterialInfo MaterialEntity = new A8ERP_MaterialInfo();
string ConditionSql = string.Format("MaterialCode='{0}'", GoodsCode);
MaterialEntity = BLLFactory<BLL.A8ERP_Material>.Instance.FindSingle(ConditionSql);
if (MaterialEntity == null)
continue;
GoodsDeclareDetailEntity.GoodsOrder = JkfOrderDetailListEntity[k].GoodsOrder.ToString();//商品序号
GoodsDeclareDetailEntity.CodeTs = JkfOrderDetailListEntity[k].CodeTs.ToString();//行邮税号
GoodsDeclareDetailEntity.OrderNo = JkfOrderDetailListEntity[k].OrderNo;//商品编号
GoodsDeclareDetailEntity.GoodsName = JkfOrderDetailListEntity[k].GoodsName.ToString();//商品名称
GoodsDeclareDetailEntity.GoodsItemNo = JkfOrderDetailListEntity[k].GoodsCode;//商品货号
GoodsDeclareDetailEntity.ItemRecordNo = JkfOrderDetailListEntity[k].ItemRecordNo.ToString();//账册备案料号
GoodsDeclareDetailEntity.ItemName = JkfOrderDetailListEntity[k].ItemName.ToString();//企业商品品名
GoodsDeclareDetailEntity.BarCode = JkfOrderDetailListEntity[k].GoodsBar.ToString();//条形码
GoodsDeclareDetailEntity.GoodsModel = JkfOrderDetailListEntity[k].GoodsModel.ToString();//商品规格、型号
GoodsDeclareDetailEntity.OriginCountry = JkfOrderDetailListEntity[k].OriginCountry.ToString();//产销国
GoodsDeclareDetailEntity.TradeCurr = JkfOrderImportHeadEntity.CurrCode.ToString();//成交币制
GoodsDeclareDetailEntity.TradeTotal = JkfOrderDetailListEntity[k].GoodsCount * JkfOrderDetailListEntity[k].UnitPrice;// 成交总价
GoodsDeclareDetailEntity.DeclPrice = ValuesData.TurnToDecimal(JkfOrderDetailListEntity[k].UnitPrice.ToString());//申报单价
GoodsDeclareDetailEntity.DeclTotalPrice = JkfOrderDetailListEntity[k].GoodsCount * JkfOrderDetailListEntity[k].UnitPrice;//申报总价
GoodsDeclareDetailEntity.UseTo = "";//用途
GoodsDeclareDetailEntity.DeclareCount = JkfOrderDetailListEntity[k].GoodsCount;//申报数量
GoodsDeclareDetailEntity.GoodsUnit = JkfOrderDetailListEntity[k].GoodsUnit.ToString();//申报计量单位
GoodsDeclareDetailEntity.GoodsGrossWeight = JkfOrderDetailListEntity[k].GrossWeight;
GoodsDeclareDetailEntity.FirstUnit = MaterialEntity.FirstUnit;//法定计量单位
GoodsDeclareDetailEntity.FirstCount = JkfOrderDetailListEntity[k].GoodsCount.ToString(); //第一数量
GoodsDeclareDetailEntity.SecondUnit = MaterialEntity.SecondUnit;//第二单位
GoodsDeclareDetailEntity.SecondCount = MaterialEntity.SecondCount;//第二数量
GoodsDeclareDetailEntity.ProductRecordNo = JkfOrderDetailListEntity[k].ProductRecordNo.ToString();//产品国检备案编号
GoodsDeclareDetailEntity.WebSite = "";//商品网址
GoodsDeclareDetailEntity.Note = JkfOrderDetailListEntity[k].Description;//备注
GoodsDeclareDetailEntity.CreateBy = UserInfo.UserName;//用户名称
GoodsDeclareDetailEntity.CreateUserId = UserInfo.Id;//用户Id
GoodsDeclareDetailEntity.OrgId = UserInfo.SubCompanyId;//机构Id
GoodsDeclareDetailEntity.OrgName = UserInfo.SubCompanyName;//机构名称
GoodsDeclareDetailListEntity.Add(GoodsDeclareDetailEntity);
}
#endregion
#region 支付信息明细记录
A8ERP_TaobaoPaymentSpecialDetailInfo entitydetail = null;
List<A8ERP_TaobaoPaymentSpecialDetailInfo> entitydetailList = new List<A8ERP_TaobaoPaymentSpecialDetailInfo>();
for (int S = 0; S < JkfOrderDetailListEntity.Count; S++)
{
entitydetail = new A8ERP_TaobaoPaymentSpecialDetailInfo();
entitydetail.OrderNo = JkfOrderDetailListEntity[S].OrderNo.ToString();//订单编号
entitydetail.GoodsOrder = JkfOrderDetailListEntity[S].GoodsOrder;//商品序号
entitydetail.OriginCountry = JkfOrderDetailListEntity[S].OriginCountry;//原产国国家编码
entitydetail.ItemCodeCus = JkfOrderDetailListEntity[S].ProductRecordNo;//备案商品(关)
entitydetail.GoodsBar = JkfOrderDetailListEntity[S].GoodsBar;//商品条码
entitydetail.GoodPrepardNo = JkfOrderDetailListEntity[S].GoodPrepardNo;//商品海关备案编号
entitydetail.TaxCode = JkfOrderDetailListEntity[S].CodeTs;//行邮税号
entitydetail.HsCode = JkfOrderDetailListEntity[S].CodeTs;//行邮税号
entitydetail.ItemCodePlatform = JkfOrderDetailListEntity[S].GoodsCode;//电商平台商品编码
entitydetail.WeightUnit = JkfOrderDetailListEntity[S].WeightUnit;//重量单位
entitydetail.ItemName = JkfOrderDetailListEntity[S].GoodsName;//商品名称
entitydetail.Unit = JkfOrderDetailListEntity[S].GoodsUnit;//计量单位
int Count = JkfOrderDetailListEntity[S].GoodsCount;//数量
entitydetail.Quantity = Count;//数量
entitydetail.UnitPrice = JkfOrderDetailListEntity[S].UnitPrice; //detailentityList[K].Payment / Count;//单价
entitydetail.ItemAmount = Math.Round(entitydetail.UnitPrice * Count, 2);//商品成交额
entitydetail.CreateBy = UserInfo.UserName;//用户名称
entitydetail.CreateUserId = UserInfo.Id;//用户Id
entitydetail.OrgId = UserInfo.SubCompanyId;//机构Id
entitydetail.OrgName = UserInfo.SubCompanyName;//机构名称
entitydetailList.Add(entitydetail);
}
#endregion
if (BLL.BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.Add(UserInfo, GoodsMainDeclareEntity, GoodsDeclareDetailListEntity, out statusCode, out statusMessage))//更新当前记录
{
MainDeclareitemCount++;
}
else
{
itemMainDeclareitemErrCount++;
}
if (BLLFactory<BLL.A8ERP_TaobaoPaymentSpecial>.Instance.Add(UserInfo, TaobaoPaymententity, entitydetailList, out statusCode, out statusMessage))//支付信息生成
{
PaymentCount++;
}
else
{
itemPaymentErrCount++;
}
statusMessage = string.Format("已生成 清单:{0}个 错误:{1} 支付单:{2} 错误: {3}", MainDeclareitemCount, itemMainDeclareitemErrCount, PaymentCount, itemPaymentErrCount);
progress.SetStatusInfo.Text = statusMessage;
progress.SetProgressValue(100);
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = statusMessage;
progress.Close();
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
this.FormOnLoad();
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
#endregion
#region 明细绑定
/// <summary>
/// 明细绑定
/// </summary>
public void DataBindDeatil()
{
string CurrentId = string.Format("FId='{0}'", CurrentEntityId);
JkfOrderDetailTable = BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(CurrentId);
CountryCodeDao CountryCodeNewentity = new CountryCodeDao();
MeasuringUnitDao MeasuringUnitDaoNewentity = new MeasuringUnitDao();
for (int i = 0; i < JkfOrderDetailTable.Rows.Count; i++)
{
JkfOrderDetailTable.Rows[i][A8ERP_Customs_JkfOrderDetailInfo.FieldOriginCountry] = CountryCodeNewentity.GetCountryItemName(JkfOrderDetailTable.Rows[i]["OriginCountry"].ToString());
}
Grid_JkfOrderDetail.DataSource = JkfOrderDetailTable;
}
#endregion
#region 冷联天下导出
/// <summary>
/// 冷联天下导出
/// </summary>
private void LenglianExcel()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
#region 导出操作
OrderEntityTable = new DataTable(A8ERP_Customs_OrderEntityInfo.TableName);//订单主表
OrderDetailEntitydt = new DataTable(OrderDetailEntityTable.TableName);//订单明细
List<A8ERP_Customs_JkfOrderDetailInfo> entityDetailList = null;
#region 主表记录
Dictionary<string, string> fieldList = new Dictionary<string, string>();
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, "订单编号");//订单号
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, "运单号"); //运单号
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, "项目ID");//项目ID
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, "客户编号");
fieldList.Add("OrderType", "订单类型");
fieldList.Add("IsWhether", "是否跨境");
fieldList.Add("SenderProvince", "发货省份");
fieldList.Add("SenderCity", "发货城市");
fieldList.Add("SenderArea", "发货区县");
fieldList.Add("WHId", "发货仓库ID");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, "收件人联系方式");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, "收件人姓名");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, "目的省份");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, "目的城市");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, "目的区县");
fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldZipCode, "详细地址");
fieldList.Add("GrossWeight", "毛重");
fieldList.Add("TotalWeight", "净重");
fieldList.Add("FeeAmount", "运费");
fieldList.Add("OrderTotalAmount", "总金额");
fieldList.Add("GoodsName", "产品描述");
fieldList.Add("GoodsCount", "总件数");
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, typeof(System.String));//订单号
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, typeof(System.String));//运单号
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, typeof(System.String));//项目ID
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, typeof(System.String));//客户编号
OrderEntityTable.Columns.Add("OrderType", typeof(System.String));//订单类型
OrderEntityTable.Columns.Add("IsWhether", typeof(System.String));//是否跨境
OrderEntityTable.Columns.Add("SenderProvince", typeof(System.String));//发货省份
OrderEntityTable.Columns.Add("SenderCity", typeof(System.String));//发货城市
OrderEntityTable.Columns.Add("SenderArea", typeof(System.String));//发货区县
OrderEntityTable.Columns.Add("WHId", typeof(System.String));//发货仓库ID
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, typeof(System.String));//收件人联系方式
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, typeof(System.String));//收件人姓名
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, typeof(System.String));//目的省份
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, typeof(System.String));//目的城市
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, typeof(System.String));//目的区县
OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldZipCode, typeof(System.String));//详细地址
OrderEntityTable.Columns.Add("FeeAmount", typeof(System.String));//运费
OrderEntityTable.Columns.Add("OrderTotalAmount", typeof(System.String));//总金额
OrderEntityTable.Columns.Add("GrossWeight", typeof(System.String));//毛重
OrderEntityTable.Columns.Add("TotalWeight", typeof(System.String));//净重
OrderEntityTable.Columns.Add("GoodsName", typeof(System.String));//产品描述
OrderEntityTable.Columns.Add("GoodsCount", typeof(System.String));//总件数
#endregion
//主表记导出
for (int i = 0; i < OrderImportTable.Rows.Count; i++)
{
DataRow dr;
dr = OrderEntityTable.NewRow();
dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNo] = OrderImportTable.Rows[i]["OrderNo"].ToString();//订单号
dr[A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber] = OrderImportTable.Rows[i]["WayBills"].ToString(); //运单号
dr[A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname] = "DAYUAN";//项目ID
dr[A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts] = "DAYUAN";//客户编号
dr["OrderType"] = OrderImportTable.Rows[i]["OrderType"].ToString();//订单类型OrderType
dr["IsWhether"] = OrderImportTable.Rows[i]["IsWhether"].ToString();//是否跨境
dr["SenderProvince"] = OrderImportTable.Rows[i]["SenderProvince"].ToString();//发货省份
dr["SenderCity"] = OrderImportTable.Rows[i]["SenderCity"].ToString();//发货城市
dr["SenderArea"] = OrderImportTable.Rows[i]["SenderArea"].ToString();//发货区县
dr["WHId"] = "WH06";//发货仓库ID
dr[A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries] = OrderImportTable.Rows[i]["ConsigneePhone"].ToString();//收件人联系方式
dr[A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber] = OrderImportTable.Rows[i]["Consignee"].ToString();//收件人姓名
dr[A8ERP_Customs_OrderEntityInfo.FieldStateprovince] = OrderImportTable.Rows[i]["Province"].ToString();//目的省份
dr[A8ERP_Customs_OrderEntityInfo.FieldCity] = OrderImportTable.Rows[i]["City"].ToString();//目的城市
dr[A8ERP_Customs_OrderEntityInfo.FieldArea] = OrderImportTable.Rows[i]["Area"].ToString();//目的区县
dr[A8ERP_Customs_OrderEntityInfo.FieldZipCode] = OrderImportTable.Rows[i]["ConsigneeAddress"].ToString();//详细地址
dr["FeeAmount"] = OrderImportTable.Rows[i]["FeeAmount"].ToString();//运费
dr["OrderTotalAmount"] = OrderImportTable.Rows[i]["OrderTotalAmount"].ToString();//"订单总金额
//dr["OrderTaxAmount"] = OrderImportTable.Rows[i]["OrderTaxAmount"].ToString();//应交税款
dr["GrossWeight"] = OrderImportTable.Rows[i]["GrossWeight"].ToString();//毛重
dr["TotalWeight"] = OrderImportTable.Rows[i]["TotalWeight"].ToString();//净重
string Id = OrderImportTable.Rows[i]["Id"].ToString();
string Sqlwhere = string.Format("FId='{0}'", Id);
entityDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();
entityDetailList = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
if (entityDetailList.Count == 0)
return;
string GoodsName = string.Empty;
for (int k = 0; k < entityDetailList.Count; k++)
{
GoodsName += entityDetailList[k].GoodsName.ToString();//"产品描述"
}
dr["GoodsName"] = GoodsName;//产品描述
dr["GoodsCount"] = entityDetailList.Count;//总件数
OrderEntityTable.Rows.Add(dr);
}
#endregion
string Paths = @"Export";
string exportFileName = DateTime.Now.ToString("yyyyMMdd") + ".xls";//文件名称
ExportNPOI(OrderEntityTable, "订单出货单", fieldList, Paths, exportFileName);
}
#endregion
#region 签名信息
/// <summary>
/// 签名信息
/// </summary>
public void SignatureDataBind()
{
string condition = string.Empty;
condition = string.Format("ShopNameId='{0}' and BusinessType='{1}'", CurrentShopNameId, "IMPORTORDER");
//查询当前店铺,的业务类型
JkfSignTable = BLLFactory<A8ERP_Customs_JkfSign>.Instance.GetDataTable(condition);
for (int i = 0; i < JkfSignTable.Rows.Count; i++)
{
JkfSignTable.Rows[i]["BusinessType"] = JkfSignTable.Rows[i]["BusinessType"].ToString().Equals("IMPORTORDER") ? "商品订单" : "";
JkfSignTable.Rows[i]["DeclareType"] = JkfSignTable.Rows[i]["DeclareType"].ToString().Equals("1") ? "新增" : "修改";
JkfSignTable.Rows[i]["BusinessNo"] = CurrentOrderNo;
}
Grid_JkfSign.DataSource = JkfSignTable;
}
#endregion
#region 明细编辑
/// <summary>
/// 明细编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Grid_JkfOrderDetail_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (Grid_JkfOrderDetail.CurrentRow == null)
return;
Form frm = null;
RF = new ReflectionFunction();
FP.EntityId = CurrentDetailEntityId.ToString();
frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_JkfOrderDetailEdit", FP);
if (frm.DialogResult == DialogResult.OK)
{
this.FormOnLoad();
}
}
#endregion
#region 订单发送到海送
/// <summary>
/// 订单发送到海送
/// </summary>
/// <param name="OrderXmlstr"></param>
/// <param name="xmlType"></param>
/// <param name="sourceType"></param>
public string OrderXmlSend(string OrderXmlstr, string xmlType, string sourceType)
{
A8EXP.DotNetWinform.OrderXmlService.ReceivedDeclareServiceClient ws = new A8EXP.DotNetWinform.OrderXmlService.ReceivedDeclareServiceClient();
string Msg = ws.checkReceived(OrderXmlstr, xmlType, sourceType);
return Msg;
}
#endregion
#region 订单状态选择
/// <summary>
/// 订单状态选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void devCheckRadioAudit_EditValueChanged(object sender, EventArgs e)
{
OrderAuditState = devCheckRadioAudit.EditValue.ToString();
GetList();
}
#endregion
#region 生成运单物流信息
/// <summary>
/// 生成运单物流信息
/// </summary>
public void GetRunExpress()
{
try
{
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
Form frm = null;
RF = new ReflectionFunction();
FP.SelectedIds = GetSelectOrderNos();
frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_GetRunExpressOrder", FP);
if (frm == null)
return;
if (frm.DialogResult == DialogResult.OK)
{
FormOnLoad();
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
#endregion
#region 查询
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bntQuery_Click(object sender, EventArgs e)
{
GetList();
}
#endregion
#region 回执记录加载显示
/// <summary>
/// 回执结果信息
/// </summary>
public void DataOrderResultBind()
{
if (JkfOrderImportHeadTable.Rows.Count > 0)
{
JkfOrderResultTable = GetJkfOrderResultList(CurrentOrderNo, "IMPORTORDER");//当前业务单号
if (JkfOrderResultTable.Rows.Count > 0)
{
Grid_JkfOrderResult.DataSource = JkfOrderResultTable;
}
else
{
Grid_JkfOrderResult.DataSource = null;
Grid_JkfOrderReturnResultDetail.DataSource = null;
}
}
}
/// <summary>
/// 获得当前业务编号的回执记录
/// </summary>
/// <param name="BusinessNo">业务单号</param>
/// <param name="BusinessType">业务类型</param>
/// <returns></returns>
public DataTable GetJkfOrderResultList(string BusinessNo = "", string businessType = "")
{
if (Grid_JkfOrderImportHead.CurrentCell != null)
{
string filtersql = string.Empty;
SearchCondition condition = new SearchCondition();
condition.AddCondition("BusinessNo", BusinessNo, SqlOperator.Equal)
.AddCondition("BusinessType", businessType, SqlOperator.Equal)
.AddCondition("Enabled", 1, SqlOperator.Equal);
filtersql = condition.BuildConditionSql(DatabaseType.SqlServer);
JkfOrderResultTable = BLLFactory<A8ERP_Customs_JkfOrderResult>.Instance.GetDataTable(filtersql);
if (JkfOrderResultTable.Rows.Count > 0)
{
for (int i = 0; i < JkfOrderResultTable.Rows.Count; i++)
{
string BusinessType = string.Empty;
BusinessType = JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType].ToString();
switch (BusinessType)
{
case "IMPORTORDER":
JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType] = A8EXP.Entity.BusinessType.IMPORTORDER.ToDescription();
break;
case "PERSONAL_GOODS_DECLAR":
JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType] = A8EXP.Entity.BusinessType.PERSONAL_GOODS_DECLAR.ToDescription();
break;
case "IMPORTBILLRESULT":
JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType] = A8EXP.Entity.BusinessType.IMPORTBILLRESULT.ToDescription();
break;
case "IMPORTBILL":
JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType] = A8EXP.Entity.BusinessType.IMPORTBILL.ToDescription();
break;
}
JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldDeclareType] = JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldDeclareType].ToString() == "1" ? DeclareType.Add.ToDescription().ToString() : DeclareType.Edit.ToDescription().ToString();
JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldChkMark] = JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldChkMark].ToString() == "1" ? "成功" : "失败";
}
}
}
else
{
JkfOrderResultTable = new DataTable(A8ERP_Customs_JkfOrderResultInfo.TableName);//回执状态
JkfOrderReturnResultDetailTable = new DataTable(A8ERP_Customs_JkfOrderReturnResultDetailInfo.TableName);//回执明细
}
return JkfOrderResultTable;
}
/// <summary>
/// 获得回执表的ID
/// </summary>
string _JkfOrderResultcurrentEntityId = string.Empty;
public string GetJkfOrderResultcurrentEntityId
{
get
{
return _JkfOrderResultcurrentEntityId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderResult, A8ERP_Customs_JkfOrderResultInfo.FieldId);
}
set
{
this._JkfOrderResultcurrentEntityId = value;
}
}
/// <summary>
/// 绑定明细
/// </summary>
/// <returns></returns>
public void DataBindJkfOrderReturnResultDetail()
{
try
{
string condition = string.Format("FId='{0}'", GetJkfOrderResultcurrentEntityId);
JkfOrderReturnResultDetailTable = BLL.BLLFactory<A8ERP_Customs_JkfOrderReturnResultDetail>.Instance.GetDataTable(condition);
if (JkfOrderReturnResultDetailTable.Rows.Count == 0)
return;
Grid_JkfOrderReturnResultDetail.DataSource = JkfOrderReturnResultDetailTable.DefaultView;
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
/// <summary>
/// 绑定记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Grid_JkfOrderResult_SelectionChanged(object sender, EventArgs e)
{
if (this.FormEvented)
{
int fileididstr = 0;
if (Grid_JkfOrderResult.CurrentRow != null)
{
if (!string.IsNullOrEmpty(fileididstr.ToString()) || fileididstr.ToString() != GetJkfOrderResultcurrentEntityId)
{
if (string.IsNullOrEmpty(GetJkfOrderResultcurrentEntityId))
{
fileididstr = 0;
}
else
{
fileididstr = Convert.ToInt32(GetJkfOrderResultcurrentEntityId);
DataBindJkfOrderReturnResultDetail();//回执明细
}
}
}
else
{
//设为空
Grid_JkfOrderReturnResultDetail.DataSource = null;
}
}
}
#endregion
#region 审核状态
/// <summary>
/// 获得当前的订单编号
/// </summary>
private string _currentAuditState = string.Empty;
/// <summary>
/// 获得订单主表当前的订单编号
/// </summary>
public string CurrentAuditState
{
get
{
return _currentAuditState = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldAuditState);
}
}
/// <summary>
/// 设置控件状态
/// </summary>
public override void SetControlState()
{
switch (CurrentAuditState)
{
case "0"://未申报中
//btnOrder.Enabled = true;
//Bnt_SendWayBill.Enabled = true;
//BntAutoZip.Enabled = true;
//BtnSynchronous.Enabled = false;
//devOutStock.Enabled = false;
break;
case "10"://申报中
//btnOrder.Enabled = true;
//Bnt_SendWayBill.Enabled = true;
//BntAutoZip.Enabled = false;
//BtnSynchronous.Enabled = false;
//devOutStock.Enabled = false;
break;
case "20"://已退回报中
//btnOrder.Enabled = false;
//Bnt_SendWayBill.Enabled = false;
//BntAutoZip.Enabled = false;
//BtnSynchronous.Enabled = false;
//devOutStock.Enabled = false;
break;
case "30"://己处理
//btnOrder.Enabled = false;
//Bnt_SendWayBill.Enabled = false;
//BntAutoZip.Enabled = false;
//BtnSynchronous.Enabled = true;
//devOutStock.Enabled = true;
break;
case "40"://己同步
//btnOrder.Enabled = true;
//Bnt_SendWayBill.Enabled = true;
//BntAutoZip.Enabled = false;
//Bnt_BathoutputGoodsDeclare.Enabled = false;
//BntAutoZip.Enabled = false;
//BtnSynchronous.Enabled = true;
//devOutStock.Enabled = true;
break;
case "60"://已出库
//btnOrder.Enabled = false;
//Bnt_SendWayBill.Enabled = false;
//BntAutoZip.Enabled = false;
//BtnSynchronous.Enabled = false;
//devOutStock.Enabled = true;
break;
default:
//btnOrder.Enabled = false;
//BntAutoZip.Enabled = false;
//BtnSynchronous.Enabled = false;
//devOutStock.Enabled = false;
break;
}
}
#endregion
#region 申报单号是否存
/// <summary>
/// 申报单号是否存
/// </summary>
/// <returns></returns>
public bool GetIsCurrentOrderON()
{
string condition = string.Format("OrderNo='{0}'", CurrentOrderNo);
return BLL.BLLFactory<A8ERP_Customs_GoodsMainDeclare>.Instance.IsExistRecord(condition);
}
#endregion
#region 全选/返选
/// <summary>
/// 全选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSelectAll_Click(object sender, EventArgs e)
{
try
{
foreach (DataGridViewRow dgvRow in Grid_JkfOrderImportHead.Rows)
{
dgvRow.Cells["colSelected"].Value = true;
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
/// <summary>
/// 返选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnInvertSelect_Click(object sender, EventArgs e)
{
try
{
foreach (DataGridViewRow dgvRow in Grid_JkfOrderImportHead.Rows)
{
DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgvRow.Cells["colSelected"];
dgvRow.Cells["colSelected"].Value = !Convert.ToBoolean(checkCell.Value);
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
#endregion
#region 物流事件拉操作
/// <summary>
/// 物流事件
/// </summary>
/// <param name="selectedId"></param>
private void Cmb_Express_SelectedIndexChanged(string selectedId)
{
if (this.FormLoaded)
{
Expressstr = Cmb_Express.SelectedId.ToString();
if (Expressstr != "-1")
{
Expressstr = Cmb_Express.SelectedId.ToString();
}
else
{
Expressstr = string.Empty;
}
GetList();
}
}
#endregion
#region 跟椐电商Id选择
/// <summary>
/// 跟椐电商Id选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Cmb_ShopName_Properties_EditValueChanged(object sender, EventArgs e)
{
if (this.FormEvented)
{
ShopNameId = Cmb_ShopName.SelectedId.ToString();
if (ShopNameId != "0")
{
ShopNameId = Cmb_ShopName.SelectedId.ToString();
}
else
{
ShopNameId = string.Empty;
}
GetList();
}
}
#endregion
#region 自动折分成单品
/// <summary>
/// 自动折分成单品
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BntAutoZip_Click(object sender, EventArgs e)
{
try
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
ProgressForm progress = new ProgressForm(this);
bool retunValue = false;
int itemErrCount = 0;
int itemCount = 0;
progress.Show();
try
{
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
//获得电商订单主体信息
string Id = GetSelecteIds()[i].ToString();
string condition = string.Format("Id='{0}'", Id);
A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = null; //订单主表
JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
JkfOrderImportHeadEntity = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);
//明细
List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailListEntity = null;
string conditiondetail = string.Format("FId='{0}'", JkfOrderImportHeadEntity.Id.ToString());
JkfOrderDetailListEntity = BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(conditiondetail);
if (JkfOrderDetailListEntity == null)
continue;
//进行自动折分处理
string XmlFileNamePath = FilleUtil.GetOrderCustomsr();
XmlDocument Xmldoc = new XmlDocument();
Xmldoc.Load(XmlFileNamePath);
List<A8ERP_Customs_JkfOrderDetailInfo> JkfCHOrderDetailListEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.IsAutoCFOrderDetail(Xmldoc, JkfOrderDetailListEntity);
if (JkfCHOrderDetailListEntity.Count == 0)
{
itemErrCount++;
MessageUtil.ShowTips("折分未完成或编码不存在");
continue;
}
//批量更新
for (int K = 0; K < JkfCHOrderDetailListEntity.Count; K++)
{
if (BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.AddEdit(UserInfo, JkfCHOrderDetailListEntity[K], out statusCode, out statusMessage))
{
retunValue = true;
}
else
{
continue;
}
}
#region 主表更新
decimal GrossWeight = 0.00m;
string MainGName = string.Empty;
for (int o = 0; o < JkfCHOrderDetailListEntity.Count; o++)
{
GrossWeight += JkfCHOrderDetailListEntity[o].GrossWeight;
string GoodsName = JkfCHOrderDetailListEntity[o].GoodsName;
GoodsName = GoodsName.Remove(0, 5);
//GoodsName.Substring(0, GoodsName.Length - 4);
MainGName += "(" + JkfCHOrderDetailListEntity[o].GoodsOrder + ")" + "名称:" + GoodsName + " 数量: " + JkfCHOrderDetailListEntity[o].GoodsCount + " 编码:" + JkfCHOrderDetailListEntity[o].GoodsCode.ToString() + " ";
}
JkfOrderImportHeadEntity.TradeCountry = JkfCHOrderDetailListEntity[0].OriginCountry;
JkfOrderImportHeadEntity.MainGName = MainGName.Substring(0, 10);//主要货物名称
#endregion
if (retunValue)
{
itemCount++;
}
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = string.Format("成功:'{0}' 错误:'{1}'", itemCount, itemErrCount);
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = string.Format("成功:'{0}' 错误:'{1}'", itemCount, itemErrCount);
progress.Close();
MessageUtil.ShowTips(string.Format("执行折分成功:{0}个", itemCount));
this.FormOnLoad();
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
//string statusCode = string.Empty; string statusMessage = string.Empty;
////获得当前的折分记录
//string XmlFileNamePath = FilleUtil.GetOrderCustomsr();
//XmlDocument Xmldoc = new XmlDocument();
//Xmldoc.Load(XmlFileNamePath);
////取指定的结点的集合 //PT14021902
//XmlNodeList nodes = Xmldoc.SelectNodes("//KCYOrderDetailList//KCYOrderDetail");
////先确定是否要折分
//if (JkfOrderDetailTable.Rows.Count > 0)
//{
// bool IscfOrder = true;
// bool returnValue = false;
// for (int i = 0; i < JkfOrderDetailTable.Rows.Count; i++)
// {
// JkfOrderDetailTable.Rows[i]["GoodsOrder"] = i + 1;
// string cfInspectionRecordNumber = string.Empty;//返回折解后的备案编号
// string CurrentGoodsModel = string.Empty;//未折分当前的规格
// string CurrentGoodsCode = string.Empty;//返回当前的折分商品编号
// string IscfNumber = string.Empty;//返回折分后的数量
// //对比是否要自动折分
// string IsProductRecordNo = string.Empty;
// string GoodsCodeNo = string.Empty;//当前的商品编码
// GoodsCodeNo = JkfOrderDetailTable.Rows[i]["GoodsCode"].ToString();//产品国检备案编号
// IscfOrder = IsAutoZfOrder(Xmldoc, GoodsCodeNo, out cfInspectionRecordNumber, out IscfNumber, out CurrentGoodsModel, out CurrentGoodsCode);
// if (!IscfOrder)
// {
// //进行折分
// string Id = JkfOrderDetailTable.Rows[i]["Id"].ToString();
// A8ERP_Customs_JkfOrderDetailInfo entitydetail = BLL.BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.FindByID(Id);
// string GoodsCode = entitydetail.GoodsCode.ToString();
// foreach (XmlNode item in nodes)
// {
// GoodsCode = (item.SelectSingleNode("CommodityCode")).InnerText;//商品编码
// if (!string.IsNullOrEmpty(GoodsCode))
// {
// if (CurrentGoodsCode.Equals(GoodsCode))
// {
// entitydetail.GoodsName = (item.SelectSingleNode("CfGoodName")).InnerText.Trim();//名称
// entitydetail.GoodsCode = (item.SelectSingleNode("CfCommodityCode")).InnerText.Trim();//拆分后商品编码物品编码
// entitydetail.ProductRecordNo = (item.SelectSingleNode("CfInspectionRecordNumber")).InnerText.Trim();//产品国检备案编号
// entitydetail.GoodPrepardNo = (item.SelectSingleNode("HScode")).InnerText.Trim();//商品海关备案编号
// entitydetail.GoodsModel = (item.SelectSingleNode("CfGoodsModel")).InnerText.Trim();//规格
// entitydetail.CodeTs = "01010160";//行邮税号
// //entitydetail.OriginCountry = "142";//产销国
// decimal Num = ValuesData.TurnToDecimal(CurrentGoodsModel.Substring(CurrentGoodsModel.Length - 1, 1));
// decimal Count = ValuesData.TurnToDecimal(entitydetail.GoodsCount.ToString()) * Num;
// entitydetail.GoodsCount = Count;//数量
// entitydetail.UnitPrice = entitydetail.DealAmount / Count;//单价修改
// returnValue = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Edit(entitydetail, out statusCode, out statusMessage);
// }
// }
// }
// }
// JkfOrderDetailTable.AcceptChanges();
// if (returnValue)
// {
// MessageUtil.ShowTips("折分成功!");
// //this.FormOnLoad();
// }
// else
// {
// MessageUtil.ShowTips("根据折分文档无须折分!");
// }
// }
//}
}
/// <summary>
/// 是否需要折分
/// </summary>
/// <param name="Xmldoc"></param>
/// <param name="ProductRecordNo"></param>
/// <returns></returns>
private bool IsAutoZfOrder(XmlDocument Xmldoc, string ProductGoodsCodeNo, out string cfInspectionRecordNumber, out string cfNumber, out string CurrentGoodsModel, out string CurrentGoodsCode)
{
bool returnResultValue = true;
cfInspectionRecordNumber = string.Empty;
cfNumber = string.Empty;
CurrentGoodsModel = string.Empty;//折分后规格
CurrentGoodsCode = string.Empty;//折分后商品编码
//取指定的结点的集合
XmlNodeList nodes = Xmldoc.SelectNodes("//KCYOrderDetailList//KCYOrderDetail");
if (nodes != null)
{
foreach (XmlNode item in nodes)
{
string strProductRecordNo = (item.SelectSingleNode("CommodityCode")).InnerText;//产品编号
string isCf = string.Empty;
if (ProductGoodsCodeNo.Equals(strProductRecordNo))
{
isCf = (item.SelectSingleNode("IsCf")).InnerText;//是否需要拆分
if (isCf.Equals("1"))//返回需要折分的数据值
{
CurrentGoodsModel = (item.SelectSingleNode("GoodsModel")).InnerText.ToString();//折分后规格
cfInspectionRecordNumber = (item.SelectSingleNode("CfInspectionRecordNumber")).InnerText.ToString();//拆分后国检备案编号
CurrentGoodsCode = (item.SelectSingleNode("CfCommodityCode")).InnerText.ToString();//折分后商品编码
cfNumber = (item.SelectSingleNode("CfNumber")).InnerText.ToString();//折分后数量
//GoodPrepardNo = (item.SelectSingleNode("cfInspectionRecordNumber")).InnerText.ToString();//拆分后商品海关备案编号
returnResultValue = false;
break;
}
return returnResultValue;
}
}
}
return returnResultValue;
}
#endregion
#region 新增订单
/// <summary>
/// 新增订单
/// </summary>
public override void Add()
{
Form frm = null;
RF = new ReflectionFunction();
FP.EntityId = CurrentEntityId.ToString();
frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_ShopOrderAdd", FP);
if (frm.DialogResult == DialogResult.OK)
{
this.FormOnLoad();
}
}
#endregion
#region 确认出库
/// <summary>
/// 确认出库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void OrderOutStock()
{
string orderNo = string.Empty;
bool returnValue = false;
if (MessageUtil.ShowYesNoAndWarning("确认出库,您确定是否继续?") == DialogResult.Yes)
{
ProgressForm progress = new ProgressForm(this);
progress.Show();
try
{
string statusMessage = string.Empty;
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string Condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
//确认出库前同步一下到网仓
A8ERP_Customs_JkfOrderImportHeadInfo entity = new A8ERP_Customs_JkfOrderImportHeadInfo();
entity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
progress.SetProgressValue(90);
if (entity != null)
{
orderNo = entity.OrderNo.ToString();
returnValue = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.UpOrderOutStatusCode(UserInfo, orderNo, CustomsOrderState.CustomsOutOk.ToString());
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "确认出库成功...";
progress.Close();
this.FormOnLoad();
}
}
}
#endregion
#region 返回订单已处理状态
/// <summary>
/// 返回订单已处理状态
/// </summary>
public void GetreturnAuditState()
{
string orderNo = string.Empty;
bool returnValue = false;
if (MessageUtil.ShowYesNoAndWarning("警告!您确定要返回已处理状态?") == DialogResult.Yes)
{
ProgressForm progress = new ProgressForm(this);
progress.Show();
try
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
#region 订单状态是否已申报
//int OrderAuditState = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetOrderAuditState(CurrentOrderNo);
//if (OrderAuditState != 20)
//{
// progress.SetStatusInfo.Text = "订单已进入出货流程不能再申报...";
// continue;
//}
#endregion
string Condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
A8ERP_Customs_JkfOrderImportHeadInfo entity = new A8ERP_Customs_JkfOrderImportHeadInfo();
entity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
if (entity != null)
{
orderNo = entity.OrderNo.ToString();
string OrderstatusCode = CustomsOrderState.CustomsClearanceOk.ToString();
returnValue = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, orderNo, OrderstatusCode);
returnValue = BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, orderNo, OrderstatusCode);
returnValue = BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, orderNo, OrderstatusCode);
#region 写入操作记录
if (returnValue)
{
A8ERP_WMS_OperationRecordsInfo OperationEntity = new A8ERP_WMS_OperationRecordsInfo();
OperationEntity.ProcessId = entity.OrderNo;//服务Id
OperationEntity.ProcessName = "订单服务操作";//服务名称
OperationEntity.OperationName = string.Format("返回已处理订单操作 {0}", entity.OrderNo);//操作名称
OperationEntity.Operation = UserInfo.RealName;//操作人
OperationEntity.OrderState = "30";//状态
OperationEntity.CustomsField = UserInfo.WarehouseCode;//路由产生地点
OperationEntity.Description = string.Format("订单:{0} 返回已处理订单操作成功", entity.OrderNo);//描述
OperationEntity.CreateBy = UserInfo.UserName;//用户名称
OperationEntity.CreateUserId = UserInfo.Id;//用户Id
OperationEntity.OrgId = UserInfo.SubCompanyId;//机构Id
OperationEntity.OrgName = UserInfo.SubCompanyName;//机构名称
returnValue = BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.Add(UserInfo, OperationEntity, out statusCode, out statusMessage);
}
#endregion
}
progress.SetProgressValue(100);
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "返回已处理成功...";
progress.Close();
GetList();
}
}
}
#endregion
#region 明细删除
/// <summary>
/// 明细删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < GetSelecteJkfOrderDetaiIds().Length; i++)
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
if (BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.BatchDelete(UserInfo, GetSelecteJkfOrderDetaiIds(), out statusCode, out statusMessage))
{
MessageUtil.ShowTips("删除成功");
}
}
}
#endregion
#region 选中市Id
/// <summary>
/// 选中市Id
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmb_City_SelectedIndexChanged(object sender, EventArgs e)
{
GetList();
}
#endregion
#region 江浙沪
/// <summary>
/// 江浙沪
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void checkZ_CheckedChanged(object sender, EventArgs e)
{
GetList();
}
#endregion
#region 已删除
/// <summary>
/// 已删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void checkUnDel_CheckedChanged(object sender, EventArgs e)
{
if (checkUnDel.Checked)
{
DeletionStateCode = 1;
}
else
{
DeletionStateCode = 0;
}
GetList();
}
#endregion
#region 暂停状态更改
/// <summary>
/// 暂停状态更改
/// </summary>
public void Suspended()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
RF = new ReflectionFunction();
Form frm = null;
FP.SelectedIds = GetSelecteOrderNo();
frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_OptionStatus", FP);
if (frm.DialogResult == DialogResult.OK)
{
this.FormOnLoad();
}
}
}
#endregion
#region 打印发行
/// <summary>
/// /打印模板设计
/// </summary>
public override void FormReportSet()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
try
{
string TransportUnit = string.Empty;
TransportUnit = Cmb_BaseTransportUnit.SelectedId;
//1报表文件是否存在
string sql = string.Format("Id='{0}'", CurrentEntityId);
DataTable dtPrintMain = DataTableHelper.FilterDataTable(JkfOrderImportHeadTable, sql);//获得主表数据
DataTable[] DataTables = new DataTable[1] { dtPrintMain };
string[] TableName = new string[1] { "销售单" };
string Expressfrx = string.Empty;
switch (TransportUnit)
{
case "670725"://运输单位是顺风
#region 顺风打印
Expressfrx = "ExpressSf.frx";
#endregion
break;
case "672600"://如风达
#region 如风达
Expressfrx = "ExpressLL.frx";
#endregion
break;
case "672555"://圆通
break;
case "670036"://EMS
break;
case "672823"://冠邦冷链
Expressfrx = "ExpressGb.frx";
break;
}
ReportPrint.FormPrint(TableName, Expressfrx, false, DataTables);//false打开模板/true打印预览
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
/// <summary>
/// 打印预览
/// </summary>
public override void FormPrintView()
{
if (JkfOrderImportHeadTable.Rows.Count == 0)
return;
try
{
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
if (Cmb_BaseTransportUnit.SelectedId.Equals("-1"))
{
MessageUtil.ShowTips("请选择运输单位!");
return;
}
string TransportUnit = string.Empty;
TransportUnit = Cmb_BaseTransportUnit.SelectedId;
//1报表文件是否存在
string IdsArray = string.Empty;
IdsArray = BLLTools.ObjectsToList(GetSelectIds(), "'");
SearchCondition condition = new SearchCondition();
condition.AddCondition("Id", IdsArray, SqlOperator.In)//ID
.AddCondition("DeletionStateCode", 0, SqlOperator.Equal)//删除状态
.AddCondition("Enabled", 1, SqlOperator.Equal);//有效的
SqlCondition = condition.BuildConditionSql(DatabaseType.SqlServer);
DataTable dtMainPrint = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(SqlCondition);
if (dtMainPrint.Rows.Count == 0)
return;
switch (TransportUnit)
{
case "670725"://运输单位是顺风
#region 顺风打印
if (dtMainPrint.Rows.Count == 0)
{
MessageUtil.ShowTips("客官,配送物流与模板不对应哦");
return;
}
else
{
DataTable[] ArrayDataTables = new DataTable[1] { dtMainPrint };
string[] TableName = new string[1] { "销售单" };
string strReportFileName = string.Empty;
strReportFileName = "ExpressSf.frx";
ReportPrint.FormPrint(TableName, strReportFileName, true, ArrayDataTables);//false打开模板/true打印预览
}
#endregion
break;
case "672600"://如风达
#region 如风达
if (dtMainPrint.Rows.Count == 0)
{
MessageUtil.ShowTips("客官,配送物流与模板不对应哦");
return;
}
else
{
DataTable[] ArrayDataTables = new DataTable[1] { dtMainPrint };
string[] TableName = new string[1] { "销售单" };
string strReportFileName = string.Empty;
strReportFileName = "ExpressLL.frx";
ReportPrint.FormPrint(TableName, strReportFileName, true, ArrayDataTables);//false打开模板/true打印预览
}
#endregion
break;
case "672555"://圆通
break;
case "670036"://EMS
break;
case "672823"://冠邦冷链
break;
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
/// <summary>
/// 直接打印
/// </summary>
public override void FormPrint()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
try
{
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
//1报表文件是否存在
string IdsArray = string.Empty;
IdsArray = BLLTools.ObjectsToList(GetSelectIds(), "'");
SearchCondition condition = new SearchCondition();
condition.AddCondition("Id", IdsArray, SqlOperator.In)//ID
.AddCondition("DeletionStateCode", 0, SqlOperator.Equal)//删除状态
.AddCondition("Enabled", 1, SqlOperator.Equal);//有效的
SqlCondition = condition.BuildConditionSql(DatabaseType.SqlServer);
DataTable dtMainPrint = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(SqlCondition);
if (dtMainPrint.Rows.Count == 0)
return;
string LogisticsCarrierCode = string.Empty;
string WayBills = string.Empty;
//if (CheckExpress.Checked)//只打印顺风配送的单号
//{
for (int i = 0; i < dtMainPrint.Rows.Count; i++)
{
LogisticsCarrierCode = dtMainPrint.Rows[i]["LogisticsCarrierNumber"].ToString();
WayBills = dtMainPrint.Rows[i]["WayBills"].ToString();
#region 打印顺风配送的单号
if (!string.IsNullOrEmpty(LogisticsCarrierCode))
{
#region 检查是否有退货记录
string statusCode = string.Empty;
string statusMessage = string.Empty;
long OrdeTid = long.Parse(dtMainPrint.Rows[i]["OrderNo"].ToString().Substring(6));
if (TaobaoConfig.GetIsreturnRefund_status(OrdeTid, out statusCode, out statusMessage))
{
BLLTools.WriteRefund_Status(dtMainPrint.Rows[i]["Id"].ToString(), dtMainPrint.Rows[i]["OrderNo"].ToString(), statusCode, statusMessage);//记录退单记录
A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
entity.OrderNoId = dtMainPrint.Rows[i]["Id"].ToString();
entity.OrderNo = dtMainPrint.Rows[i]["OrderNo"].ToString();
entity.StatusCode = statusCode;
entity.StateDescription = statusMessage;
string statusCodes = string.Empty;
string statusMessages = string.Empty;
BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
MessageUtil.ShowTips("呵呵! 客官 发现客户有退单记录,已做记录");
dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
dtMainPrint.AcceptChanges();
i--;
continue;
}
#endregion
if (string.IsNullOrEmpty(WayBills))
{
MessageUtil.ShowTips("客官,运单号不能为空哦!");
dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
dtMainPrint.AcceptChanges();
i--;
}
if (!LogisticsCarrierCode.Equals("SF"))
{
dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
dtMainPrint.AcceptChanges();
i--;
}
}
#endregion
}
if (dtMainPrint.Rows.Count == 0)
{
MessageUtil.ShowTips("客官,配送物流与模板不对应哦");
return;
}
else
{
DataTable[] ArrayDataTables = new DataTable[1] { dtMainPrint };
string[] TableName = new string[1] { "销售单" };
string strReportFileName = string.Empty;
strReportFileName = "ExpressSf.frx";
if (ReportPrint.ReturnPrintAndPrintView(TableName, strReportFileName, true, ArrayDataTables) > 0) ;//false打开模板/true打印预览
{
for (int i = 0; i < dtMainPrint.Rows.Count; i++)
{
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.PrinCountWrite(dtMainPrint.Rows[i]["Id"].ToString());
//写入订单状态到订单
string orderStatusCode = WMSOrderStatus.WMS_PRINT.ToString();
int AuditState = ValuesData.TurnToInt(GetWMSOrderEnumsIndex.GetOrderStateIndex(orderStatusCode).ToString());
if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, dtMainPrint.Rows[i]["Id"].ToString(), orderStatusCode))
{
}
}
}
}
for (int i = 0; i < dtMainPrint.Rows.Count; i++)
{
LogisticsCarrierCode = dtMainPrint.Rows[i]["LogisticsCarrierNumber"].ToString();
WayBills = dtMainPrint.Rows[i]["WayBills"].ToString();
if (!string.IsNullOrEmpty(LogisticsCarrierCode))
{
#region 检查是否有退货记录
string statusCode = string.Empty;
string statusMessage = string.Empty;
long OrdeTid = long.Parse(dtMainPrint.Rows[i]["OrderNo"].ToString().Substring(6));
if (TaobaoConfig.GetIsreturnRefund_status(OrdeTid, out statusCode, out statusMessage))
{
BLLTools.WriteRefund_Status(dtMainPrint.Rows[i]["Id"].ToString(), dtMainPrint.Rows[i]["OrderNo"].ToString(), statusCode, statusMessage);//记录退单记录
A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
entity.OrderNoId = dtMainPrint.Rows[i]["Id"].ToString();
entity.OrderNo = dtMainPrint.Rows[i]["OrderNo"].ToString();
entity.StatusCode = statusCode;
entity.StateDescription = statusMessage;
string statusCodes = string.Empty;
string statusMessages = string.Empty;
BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
MessageUtil.ShowTips("呵呵! 客官 发现客户有退单记录,已做记录");
dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
dtMainPrint.AcceptChanges();
i--;
continue;
}
#endregion
if (string.IsNullOrEmpty(WayBills))
{
MessageUtil.ShowTips("客官,运单号不能为空哦!");
dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
dtMainPrint.AcceptChanges();
i--;
}
if (!LogisticsCarrierCode.Equals("BJRFD-001"))
{
dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
dtMainPrint.AcceptChanges();
i--;
}
}
}
if (dtMainPrint.Rows.Count == 0)
{
MessageUtil.ShowTips("客官,配送物流与模板不对应哦");
return;
}
else
{
DataTable[] ArrayDataTables = new DataTable[1] { dtMainPrint };
string[] TableName = new string[1] { "销售单" };
string strReportFileName = string.Empty;
strReportFileName = "ExpressLL.frx";
if (ReportPrint.ReturnPrintAndPrintView(TableName, strReportFileName, true, ArrayDataTables) > 0) ;//false打开模板/true打印预览
{
for (int i = 0; i < dtMainPrint.Rows.Count; i++)
{
BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.PrinCountWrite(dtMainPrint.Rows[i]["Id"].ToString());
//写入订单状态到订单
string orderStatusCode = WMSOrderStatus.WMS_PRINT.ToString();
int AuditState = ValuesData.TurnToInt(GetWMSOrderEnumsIndex.GetOrderStateIndex(orderStatusCode).ToString());
if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, dtMainPrint.Rows[i]["Id"].ToString(), AuditState, orderStatusCode))
{
}
}
}
}
}
//}
}
catch (Exception ex)
{
MessageUtil.ShowError(ex.Message);
}
}
#endregion
#region 生成仓库发货单处理
/// <summary>
/// 生成仓库发货订单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Bnt_SendWayBill_Click(object sender, EventArgs e)
{
SendWayBillWarehouse();
}
/// <summary>
/// 生成发运运单处理
/// </summary>
/// <returns></returns>
public bool SendWayBillWarehouse()
{
bool returnValue = true;
string statusCode = string.Empty;
string statusMessage = string.Empty;
if (Grid_JkfOrderImportHead.CurrentRow == null)
return false;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
ProgressForm progress = new ProgressForm(this);
progress.Show();
A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = null;
List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailEntityList = null;
A8ERP_WMS_ShipmentOrderInfo ShipmentOrderEntity = null;
List<A8ERP_WMS_ShipmentOrderDetailsInfo> ShipmentOrderDetailsList = null;
A8ERP_WMS_ShipmentOrderDetailsInfo ShipmentOrderDetail = null;
int imteCount = 0;
int imteCountErr = 0;
try
{
for (int i = 0; i < GetSelecteIds().Length; i++)
{
string WarehouseId = string.Empty;//交接仓库Id
string WarehouseCode = string.Empty;//仓库Code
string WarehouseName = string.Empty;//交接仓库
string ShopNameCode = string.Empty;//店铺编码
string ShopName = string.Empty;//店铺名称
string WayBills = string.Empty;//运单号
bool WhetherCrossBorder = false;//是否跨境仓 (跨境标识,店铺,仓库,商品)
string ShippersCode = string.Empty;//运输商单位编号
string UnitCode = string.Empty;//运输单位编码
returnValue = true;
progress.SetProgressValue(1);
#region 获得订单数据 0
JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
ShipmentOrderEntity = new A8ERP_WMS_ShipmentOrderInfo();
string condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
JkfOrderImportHeadEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);
if (JkfOrderImportHeadEntity == null) continue;
ShopNameCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
WayBills = JkfOrderImportHeadEntity.WayBills;//运单号
ShippersCode = JkfOrderImportHeadEntity.ShippersCode.ToString();//运输商编码
UnitCode = JkfOrderImportHeadEntity.TransportUnitCode.ToString();//运输单位编码
WhetherCrossBorder = JkfOrderImportHeadEntity.IsWhether == 1 ? true : false;//是否跨境订单标识
#endregion
#region 运单号不存在 0
if (string.IsNullOrEmpty(WayBills))
{
imteCountErr++;
statusMessage = "运单号不存在!";
continue;
}
#endregion
#region 发货中是否存在此记录 1
if (BLLFactory<BLL.A8ERP_WMS_ShipmentOrder>.Instance.IsExistCode(JkfOrderImportHeadEntity.OrderNo.ToString()))
{
progress.SetProgressValue(100);
imteCountErr++;
statusMessage = "已发送" + imteCount + "条" + "失败" + imteCountErr + "单号以存在!";
progress.SetStatusInfo.Text = statusMessage;
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
returnValue = false;
continue;
}
#endregion
#region 店铺是否与仓库关联 2-1
if (!BLLFactory<BLL.A8ERP_BaseWMS_StoreWarehouseAssociated>.Instance.GetShopNameWarehouseAssociated(UserInfo, JkfOrderImportHeadEntity.ShopNameId, UserInfo.WarehouseCode, out statusCode, out statusMessage))
{
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
returnValue = false;
continue;
}
#endregion
#region 店铺与货主关联 2-1
//店铺是否与货主关联
if (!BLLFactory<A8ERP_BaseWMS_StoreShipperAssociated>.Instance.IsStoreShipperAssociated(UserInfo, JkfOrderImportHeadEntity.ShopNameId, out statusCode, out statusMessage))
{
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
returnValue = false;
continue;
}
#endregion
#region 获得店铺与仓库关联的记当录 (一个店铺有可能有跨境的也有不是跨境的,而仓库确只有仓境或是不跨境的仓库) 2
A8ERP_BaseWMS_StoreWarehouseAssociatedInfo GetStoreWarehouseAssociatedEntity = BLLFactory<BLL.A8ERP_BaseWMS_StoreWarehouseAssociated>.Instance.GetObjEntity(UserInfo, ShopNameCode, UserInfo.WarehouseCode);//得当当前记录的店铺编码跟名称
if (GetStoreWarehouseAssociatedEntity == null)
{
statusMessage = "店铺没有关联可用的仓库,请设置相关的关联的仓库再操作";
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
continue;
}
WarehouseId = GetStoreWarehouseAssociatedEntity.WarehouseId.ToString();
WarehouseCode = GetStoreWarehouseAssociatedEntity.WarehouseCode;
WarehouseName = GetStoreWarehouseAssociatedEntity.WarehouseName;
#endregion
#region 店铺关联的仓库与当前的仓库是否一致
if (!WarehouseCode.Equals(UserInfo.WarehouseCode))
{
statusMessage = "店铺关联的仓库与当前登录的仓库不一致!请切换后操作!";
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
}
#endregion
#region 查看运输单位编码是否与仓库关联 0
if (!BLLFactory<BLL.A8ERP_WMS_LogisCompanyManage>.Instance.IsShippersAssociated(UserInfo, ShippersCode, WarehouseId))
{
statusMessage = "当前仓库没有此运输商相关的信息,或是运输商已被禁用, 请前往仓库关联运输商!";
returnValue = false;
continue;
}
#endregion
#region 查看店铺运输单位打印模板 2
if (!BLLFactory<BLL.A8ERP_WMS_PrintTemplate>.Instance.IsExistStoreIdTransportUnitCode(UserInfo, ShopNameCode, UnitCode))
{
statusMessage = "当前店铺运输单位打印模板不存在,或是运输单位已被禁用, 请前往仓库关联运输商进行修改!";
returnValue = false;
continue;
}
#endregion
#region 跨境标示对比 3
if (!BLLFactory<BLL.A8ERP_WMS_WarehouseTableManagement>.Instance.IsWhetherBorder(WarehouseCode) == WhetherCrossBorder)//当前是否是跨仓
{
statusCode = string.Empty;
statusMessage = "当前仓库是跨境仓库与订单记录不匹配!";
returnValue = false;
continue;
}
#endregion
#region 运输商匹配 店铺是否授权 4
if (!BLLFactory<BLL.A8ERP_BaseWMS_StoreManagement>.Instance.IsShopNameCode(JkfOrderImportHeadEntity.ShopNameId, out statusCode, out statusMessage))
{
MessageUtil.ShowTips(statusMessage);
returnValue = false;
continue;
}
#endregion
#region 表单主表处理
ShipmentOrderEntity.SOOrderNo = GetOrderNumber.GetSO();//SO编号
ShipmentOrderEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo.Trim();//来源编号
ShipmentOrderEntity.WayBills = JkfOrderImportHeadEntity.WayBills.Trim(); //运单号
ShipmentOrderEntity.ShopName = JkfOrderImportHeadEntity.ShopName; //店铺名称
ShipmentOrderEntity.ShopNameId = JkfOrderImportHeadEntity.ShopNameId; //店铺名称Id
ShipmentOrderEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId; //店铺名称编号
ShipmentOrderEntity.DistributionShops = ""; //分销店铺
ShipmentOrderEntity.OrderType = "销售订单";//单据类型
ShipmentOrderEntity.OrderTypeCode = "SalesOrder";//单据类型
ShipmentOrderEntity.RegistrationType = RegistrationType.B2C_DELIVERY.ToDescription(); //"B2C发货";//登记类型
ShipmentOrderEntity.RegistrationTypeCode = RegistrationType.B2C_DELIVERY.ToString(); //"B2C_DELIVERY";//登记类型
ShipmentOrderEntity.SourceOrder = JkfOrderImportHeadEntity.SourceOrder; //订单来源
ShipmentOrderEntity.AssociatedNumber = JkfOrderImportHeadEntity.OrderNo; //关联单号
ShipmentOrderEntity.OrderTeme = JkfOrderImportHeadEntity.OrderDateTime; //订单时间
ShipmentOrderEntity.PaymentTime = JkfOrderImportHeadEntity.PayDate; //付款时间
ShipmentOrderEntity.Ifurgent = 0; //是否加急
ShipmentOrderEntity.WhetherCrossBorder = JkfOrderImportHeadEntity.IsWhether; //是否跨境
ShipmentOrderEntity.WhetherBy = 0; //能否空运
ShipmentOrderEntity.SpecialSingle = 0; //是否特殊单
ShipmentOrderEntity.ShippersCode = JkfOrderImportHeadEntity.ShippersCode;//运输商编码
ShipmentOrderEntity.ShippersName = JkfOrderImportHeadEntity.ShippersName;//运输商名称
ShipmentOrderEntity.TransportUnitCode = JkfOrderImportHeadEntity.TransportUnitCode; //运输单位编码
ShipmentOrderEntity.TransportUnitName = JkfOrderImportHeadEntity.TransportUnitName; //运输单位名称
ShipmentOrderEntity.LogisticsCarriersName = JkfOrderImportHeadEntity.LogisticsCarriersName; //物流承运商名称
ShipmentOrderEntity.LogisticsCarrierCode = JkfOrderImportHeadEntity.LogisticsCarrierNumber; //物流承运商编号
ShipmentOrderEntity.WhetherOverseasOrders = 0; //是否海外订单
ShipmentOrderEntity.WhetherItemsList = 0; //是否物品清单
ShipmentOrderEntity.WhetherCard = 0; //是否贺卡
ShipmentOrderEntity.GreetingContent = ""; //贺卡内容
ShipmentOrderEntity.ErrorMessage = ""; //错误消息
ShipmentOrderEntity.NeedInvoice = 0; //是否需要发票
ShipmentOrderEntity.InvoiceLooked = ""; //发票抬头
ShipmentOrderEntity.InvoiceContent = ""; //发票内容
ShipmentOrderEntity.RecCountry = JkfOrderImportHeadEntity.RecCountry; //收件方国家
ShipmentOrderEntity.RecipientCompany = JkfOrderImportHeadEntity.RecipientCompany; //收人人公司名称
ShipmentOrderEntity.RealName = JkfOrderImportHeadEntity.RealName; //收件人真实姓名
ShipmentOrderEntity.ConsigneeMobile = JkfOrderImportHeadEntity.ConsigneePhone; //收件人手机
ShipmentOrderEntity.ConsigneePhone = JkfOrderImportHeadEntity.ConsigneeTel; //收件人电话
ShipmentOrderEntity.Province = JkfOrderImportHeadEntity.Province; //收件人省
ShipmentOrderEntity.City = JkfOrderImportHeadEntity.City; //收件人市
ShipmentOrderEntity.Area = JkfOrderImportHeadEntity.Area; //收件人区
ShipmentOrderEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress; //收件人地址
ShipmentOrderEntity.ZipCode = JkfOrderImportHeadEntity.ZipCode; //收件邮编
ShipmentOrderEntity.TotalAmount = JkfOrderImportHeadEntity.TotalAmount; //商品总金额
ShipmentOrderEntity.OrderTotalAmount = JkfOrderImportHeadEntity.OrderTotalAmount; //订单总金额
ShipmentOrderEntity.ReceivableAmount = JkfOrderImportHeadEntity.OrderGoodsAmount + JkfOrderImportHeadEntity.FeeAmount + JkfOrderImportHeadEntity.InsureAmount; //应收金额
ShipmentOrderEntity.DiscountAmount = JkfOrderImportHeadEntity.DiscountAmount; //优惠金额
ShipmentOrderEntity.PaymentAmount = JkfOrderImportHeadEntity.TotalAmount; //付款金额
ShipmentOrderEntity.OrderTaxAmount = JkfOrderImportHeadEntity.OrderTaxAmount; //订单税款
ShipmentOrderEntity.BenefitAmount = JkfOrderImportHeadEntity.DiscountAmount; //让利金额:
ShipmentOrderEntity.RefundStatus = JkfOrderImportHeadEntity.Refund_status; //退款状态
ShipmentOrderEntity.RefundAmount = JkfOrderImportHeadEntity.RefundAmount; //退款金额
ShipmentOrderEntity.FeeAmount = JkfOrderImportHeadEntity.FeeAmount; //运费
ShipmentOrderEntity.InsureAmount = JkfOrderImportHeadEntity.InsureAmount; //保费
ShipmentOrderEntity.PostageAmount = JkfOrderImportHeadEntity.FeeAmount; //邮费
ShipmentOrderEntity.DeliveryServiceAmount = 0; //货到付款服务费
ShipmentOrderEntity.InsuranceType = ""; //保险类型
ShipmentOrderEntity.InsuranceAmount = 0; //保险保价费
ShipmentOrderEntity.ForeignProcessingType = "无需处理"; //国外件处理类型
ShipmentOrderEntity.TotalCount = JkfOrderImportHeadEntity.TotalCount; //总件数
ShipmentOrderEntity.CommoditySpecies = JkfOrderImportHeadEntity.TotalQuantity; //商品种数
ShipmentOrderEntity.GrossWeight = JkfOrderImportHeadEntity.GrossWeight; //总重量
ShipmentOrderEntity.CashDelivery = 0; //货到付款
ShipmentOrderEntity.FreightCollect = 0; //运费到付
ShipmentOrderEntity.OverseasOrders = 0; //海外订单
ShipmentOrderEntity.WarehouseId = WarehouseId;//仓库Id
ShipmentOrderEntity.WarehouseCode = WarehouseCode; //交接仓库Code
ShipmentOrderEntity.WarehouseName = WarehouseName; //交接仓库
ShipmentOrderEntity.ChosenArea = ""; //主拣选区
ShipmentOrderEntity.InventoryStatus = ""; //库存状态
ShipmentOrderEntity.Weight = ""; //理论重量
ShipmentOrderEntity.Volume = ""; //理论体积
ShipmentOrderEntity.PrintTag = 0; //拣货打印标记
ShipmentOrderEntity.SellerNote = JkfOrderImportHeadEntity.SellerNote; //卖家备注
ShipmentOrderEntity.BuyerMessage = JkfOrderImportHeadEntity.BuyerMessage; //买家留言
ShipmentOrderEntity.MembershipGrade = ""; //会员等级
ShipmentOrderEntity.BuyersNickname = JkfOrderImportHeadEntity.BuyerNick; //买家昵称
ShipmentOrderEntity.UserId = JkfOrderImportHeadEntity.PurchaserId; //购买人ID
ShipmentOrderEntity.UserName = JkfOrderImportHeadEntity.UserName; //购买人姓名
ShipmentOrderEntity.TelMobile = JkfOrderImportHeadEntity.TelMobile; //购买人联系手机
ShipmentOrderEntity.BuyerPhone = JkfOrderImportHeadEntity.BuyerPhone; //购买人电话
ShipmentOrderEntity.PaperType = JkfOrderImportHeadEntity.PaperType; //购买人证件类型
ShipmentOrderEntity.PaperNumber = JkfOrderImportHeadEntity.PaperNumber; //收件人证件号
ShipmentOrderEntity.Email = JkfOrderImportHeadEntity.Email; //购买人邮件地址
ShipmentOrderEntity.Address = JkfOrderImportHeadEntity.Address; //购买人地址
ShipmentOrderEntity.BuyerIdType = JkfOrderImportHeadEntity.BuyerIdType; //收件人证件类型
ShipmentOrderEntity.BuyerIdNumber = JkfOrderImportHeadEntity.BuyerIdNumber; //收件人证件号
ShipmentOrderEntity.ReviewSign = 0; //快递审核标志
ShipmentOrderEntity.ExpressAudit = ""; //快递审核
ShipmentOrderEntity.ExpressReviewer = ""; //快递审核人
//ShipmentOrderEntity.ExpressAuditTime = DateTime.Now; //快递审核时间
ShipmentOrderEntity.CustomerServiceReviewSign = "未审核"; //客服审核标志
ShipmentOrderEntity.CustomerServiceAuditState = 0; //客服审核状态
ShipmentOrderEntity.CustomerServiceReviewer = ""; //客服审核人
//ShipmentOrderEntity.CustomerServiceAuditTime = DateTime.Now; //客服审核时间
ShipmentOrderEntity.PreviousState = ""; //前一状态
ShipmentOrderEntity.NextState = ""; //下一状态
ShipmentOrderEntity.OrganizationId = JkfOrderImportHeadEntity.ShopNameId; //平台机构
ShipmentOrderEntity.OrganizationName = JkfOrderImportHeadEntity.ShopName; //平台机构
ShipmentOrderEntity.OrganizationState = ""; //平台机构状态反馈
ShipmentOrderEntity.OrderState = KCYWMSOrderStatus.WMS_WaitingWarehouse.ToString(); //订单状态 等待仓库处理
ShipmentOrderEntity.AuditState = ValuesData.TurnToInt(GetKCYWMSOrderStatus.GetOrderStateIndex(KCYWMSOrderStatus.WMS_WaitingWarehouse.ToString()).ToString());
//ShipmentOrderEntity.AuditingDate = ; //审核日期
ShipmentOrderEntity.Auditor = ""; //审核人
ShipmentOrderEntity.SenderCountry = JkfOrderImportHeadEntity.SenderCountry; //发件人国别
ShipmentOrderEntity.DeliveryCompany = JkfOrderImportHeadEntity.DeliveryCompany; //发货公司
ShipmentOrderEntity.SenderName = JkfOrderImportHeadEntity.SenderName; //发件人姓名
ShipmentOrderEntity.SenderProvince = JkfOrderImportHeadEntity.SenderProvince; //发货人省
ShipmentOrderEntity.SenderCity = JkfOrderImportHeadEntity.SenderCity; //发货人市
ShipmentOrderEntity.SenderArea = JkfOrderImportHeadEntity.SenderArea; //发货人区
ShipmentOrderEntity.ShipperTelephone = JkfOrderImportHeadEntity.ShipperTelephone; //发货人电话
ShipmentOrderEntity.ShipperPhone = JkfOrderImportHeadEntity.ShipperPhone; //发货人手机
ShipmentOrderEntity.DeliveryAddress = JkfOrderImportHeadEntity.DeliveryAddress; //发货地址
ShipmentOrderEntity.ShippeEmail = JkfOrderImportHeadEntity.ShippeEmail; //发件人Email
ShipmentOrderEntity.PostalCode = JkfOrderImportHeadEntity.PostalCode; //发货人邮编
ShipmentOrderEntity.SFStoreCode = JkfOrderImportHeadEntity.SFStoreCode; //始发站点
ShipmentOrderEntity.MonthlyAccount = JkfOrderImportHeadEntity.MonthlyAccount; //月接帐号
ShipmentOrderEntity.LockReasonState = 0; //锁定状态
ShipmentOrderEntity.LockReason = ""; //锁定原因
ShipmentOrderEntity.LockingPeople = ""; //锁定人
ShipmentOrderEntity.LockingTime = ""; //锁定时间
ShipmentOrderEntity.IsBigHeadPen = 0; //是否匹配大头笔
ShipmentOrderEntity.BigHeadPen = ""; //大头笔
ShipmentOrderEntity.BigHeadPenUser = "系统处理"; //大头笔处理人
ShipmentOrderEntity.MethodPayment = "3"; //结算方式
ShipmentOrderEntity.SettlementUnitName = JkfOrderImportHeadEntity.SettlementUnitName; //结算单位
ShipmentOrderEntity.SettlementUnitCode = JkfOrderImportHeadEntity.SettlementUnitCode; //结算单位编码
ShipmentOrderEntity.SalesmanName = JkfOrderImportHeadEntity.Salesman; //销售员名称
ShipmentOrderEntity.SalesmanMobile = ""; //销售员电话
ShipmentOrderEntity.IssueProcessing = 0; //问题件处理
ShipmentOrderEntity.SendTracking = 0; //派件跟踪
ShipmentOrderEntity.Transfer = 0; //待转件
ShipmentOrderEntity.OrderReturn = 0; //订单退换货
ShipmentOrderEntity.WarehouseException = 0; //仓库异常处理
ShipmentOrderEntity.CreateBy = UserInfo.UserName;//用户名称
ShipmentOrderEntity.CreateUserId = UserInfo.Id;//用户Id
ShipmentOrderEntity.OrgId = UserInfo.SubCompanyId;//机构Id
ShipmentOrderEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
JkfOrderDetailEntityList = new List<A8ERP_Customs_JkfOrderDetailInfo>();
string Sqldetail = string.Format("FId='{0}'", GetSelecteIds()[i].ToString());
JkfOrderDetailEntityList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqldetail);
if (JkfOrderDetailEntityList.Count == 0) continue;
//当前的商品明细进行相同的编码合并处理
JkfOrderDetailEntityList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.OrderDetailCombine(UserInfo, JkfOrderDetailEntityList);
//验证一些字段
if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.OrderNo))
{
MessageUtil.ShowTips("运单号不能为空!");
imteCountErr++;
returnValue = false;
continue;
}
progress.SetProgressValue(50);
progress.SetStatusInfo.Text = "已发送" + imteCount + "条" + "失败" + imteCountErr;
#region 库存是否足够
for (int J = 0; J < JkfOrderDetailEntityList.Count; J++)
{
returnValue = BLLFactory<BLL.A8ERP_WMS_Warehouse>.Instance.QueryWarehouseQuantity(UserInfo, JkfOrderDetailEntityList[J].MaterialId, JkfOrderDetailEntityList[J].GoodsCount, out statusCode, out statusMessage);
if (!returnValue)
{
statusMessage = "物料编码:" + JkfOrderDetailEntityList[J].GoodsCode + " " + statusMessage;
string OrderstatusCode = CustomsOrderState.WMS_Understock.ToString();
BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, JkfOrderImportHeadEntity.Id.ToString(), OrderstatusCode);
continue;
}
}
#endregion
if (!returnValue)
break;
#region 商品明细处理
//集合数据添加
ShipmentOrderDetailsList = new List<A8ERP_WMS_ShipmentOrderDetailsInfo>();
for (int K = 0; K < JkfOrderDetailEntityList.Count; K++)
{
WhetherCrossBorder = BLLFactory<BLL.A8ERP_Material>.Instance.IsWhetherCrossBorder(JkfOrderDetailEntityList[K].MaterialId.ToString());
if (!WhetherCrossBorder)
{
statusMessage = "商品属性与店铺及仓库的跨境标识不一致,操作将终止!";
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
}
ShipmentOrderDetail = new A8ERP_WMS_ShipmentOrderDetailsInfo();
ShipmentOrderDetail.OrderNo = JkfOrderDetailEntityList[K].OrderNo.Trim(); //来源单号
ShipmentOrderDetail.MaterialId = JkfOrderDetailEntityList[K].MaterialId; //商品Id
ShipmentOrderDetail.MaterialCode = JkfOrderDetailEntityList[K].GoodsCode; //商品编号
ShipmentOrderDetail.Quantity = JkfOrderDetailEntityList[K].GoodsCount; //购买数量
ShipmentOrderDetail.UnitPrice = JkfOrderDetailEntityList[K].UnitPrice; //购买单价
ShipmentOrderDetail.DealAmount = JkfOrderDetailEntityList[K].DealAmount; //应付金额
ShipmentOrderDetail.Payment = JkfOrderDetailEntityList[K].Payment; //子订单实付金额
ShipmentOrderDetail.GoodsUnit = JkfOrderDetailEntityList[K].GoodsUnit; //计价单位
ShipmentOrderDetail.Discount_fee = JkfOrderDetailEntityList[K].Discount_fee; //订单优惠金额
ShipmentOrderDetail.Sub_Order_Tax_fee = JkfOrderDetailEntityList[K].Sub_Order_Tax_fee; //关税税费
ShipmentOrderDetail.Sub_Order_Tax_rate = JkfOrderDetailEntityList[K].Sub_Order_Tax_rate; //关税税率
ShipmentOrderDetail.Part_Mjz_Discount = JkfOrderDetailEntityList[K].Part_Mjz_Discount; //优惠分摊
ShipmentOrderDetail.Adjust_fee = JkfOrderDetailEntityList[K].Adjust_fee; //手工调整金额
ShipmentOrderDetail.OpenBookingTime = JkfOrderDetailEntityList[K].OpenBookingTime; //预售时间
string OrderstatusCode = KCYWMSOrderStatus.WMS_WaitingWarehouse.ToString();//等待仓库处理
ShipmentOrderDetail.OrderState = OrderstatusCode; //订单状态 等待仓库处理
ShipmentOrderDetail.AuditState = ValuesData.TurnToInt(GetKCYWMSOrderStatus.GetOrderStateIndex(OrderstatusCode).ToString());
ShipmentOrderDetail.CreateBy = UserInfo.UserName;//用户名称
ShipmentOrderDetail.CreateUserId = UserInfo.Id;//用户Id
ShipmentOrderDetail.OrgId = UserInfo.SubCompanyId;//机构Id
ShipmentOrderDetail.OrgName = UserInfo.SubCompanyName;//机构名称
ShipmentOrderDetailsList.Add(ShipmentOrderDetail);
#region 包材处理
//获得当前物料商品的包装材料
string[] Ids = BLLFactory<BLL.A8ERP_Material>.Instance.GetMaterialPackagingIds(JkfOrderDetailEntityList[K].MaterialId.ToString());
ShipmentOrderDetailsList = BLLFactory<BLL.A8ERP_Material>.Instance.GetGenerateMaterialList(UserInfo, ShipmentOrderDetailsList, Ids);
#endregion
#endregion
}
progress.SetProgressValue(100);
if (BLLFactory<A8ERP_WMS_ShipmentOrder>.Instance.Add(UserInfo, ShipmentOrderEntity, ShipmentOrderDetailsList, out statusCode, out statusMessage))
{
imteCount++;
progress.SetStatusInfo.Text = "已发送" + imteCount + "条" + "失败" + imteCountErr + "消息:" + statusMessage;
}
else
{
imteCountErr++;
progress.SetStatusInfo.Text = "已发送" + imteCount + "条" + "失败" + imteCountErr + "消息:" + statusMessage;
}
}
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "已发送" + imteCount + "条" + "失败" + imteCountErr + "消息:" + statusMessage;
progress.Close();
DevExpress.XtraEditors.XtraMessageBox.Show("已发送" + imteCount + "条" + "失败" + imteCountErr + "消息:" + statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
return returnValue;
}
#endregion
#region 下拉店铺选择
/// <summary>
/// 下拉店铺选择
/// </summary>
/// <param name="selectedId"></param>
private void Cmb_ShopName_SelectedIndexChanged(string selectedId)
{
ShopNameId = Cmb_ShopName.SelectedId;
if (ShopNameId == "-1")
{
ShopNameId = string.Empty;
}
GetList();
}
#endregion
#region 选项切换事件
/// <summary>
/// 选项切换事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e)
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
GetSelectIndexChanged();
}
/// <summary>
/// 选项切换事件
/// </summary>
public void GetSelectIndexChanged()
{
string tabName = tabControl1.SelectedTabPage.Name;
string Condition = string.Empty;
switch (tabName)
{
case "TabPageDetail":
DataBindDeatil();//明细绑定
break;
case "tabLogo"://日志显示
BindBaseLogo();
break;
case "TabPageSignature":
SignatureDataBind();//签名信息
break;
case "TabPageCEB312Message"://订单单号
Condition = string.Format("OrderNo='{0}'", CurrentOrderNo);//订单单号
InventoryReturndt = BLLFactory<A8EXP_CEB312Message_OrderReturn>.Instance.GetDataTable(Condition);
Guid_CEB312Message.DataSource = InventoryReturndt;
break;
case "TabPageCEB622Message"://订单单号
Condition = string.Format("CopNo='{0}'", CurrentOrderNo);//订单单号
InventoryReturndt = BLLFactory<A8EXP_CEB622Message_InventoryReturn>.Instance.GetDataTable(Condition);
Guid_CEB622Message.DataSource = InventoryReturndt;
break;
case "TabPageCEB816Message"://税款信息
TaxCEB816Message();
break;
default:
break;
}
}
#endregion
#region 操作日志
/// <summary>
/// 操作日志
/// </summary>
public void BindBaseLogo()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
string condition = string.Format("ProcessId='{0}'", CurrentOrderNo);
OperationRecordsdt = BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.GetDataTable(condition);
Grid_OperationRecords.DataSource = OperationRecordsdt;
}
#endregion
#region 同步到冷链
/// <summary>
/// 同步到冷链
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void devBntLLtx_Click(object sender, EventArgs e)
{
RunBtnWarehouse();
}
/// <summary>
/// 取消订单接口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void devBntCancel_Click(object sender, EventArgs e)
{
try
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
ProgressForm progress = new ProgressForm(this);
progress.Show();
string statusMessage = string.Empty;
try
{
#region 批量发送到冷联取消
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string FileName = string.Empty;
string CurrentOrderNo = string.Empty;
string XmlFileName = string.Empty;
string OrderXml = string.Empty;
string WayBills = string.Empty;
string ReturnMsgXml = string.Empty;
DataTable GoodsOrderImportHeadXml = new DataTable();
string Id = GetSelecteIds()[i];
string Condition = string.Format("Id='{0}'", Id);
GoodsOrderImportHeadXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
for (int K = 0; K < GoodsOrderImportHeadXml.Rows.Count; K++)
{
CurrentOrderNo = GoodsOrderImportHeadXml.Rows[K]["OrderNo"].ToString();
WayBills = GoodsOrderImportHeadXml.Rows[K]["WayBills"].ToString();
}
if (string.IsNullOrEmpty(WayBills))
{
MessageUtil.ShowTips("运单号不能为空");
continue;
}
DataTable SignTableXml = JkfSignTable.Copy();
for (int j = 0; j < SignTableXml.Rows.Count; j++)
{
SignTableXml.Rows[j]["businessNo"] = CurrentOrderNo;
}
CurrentOrderNo += "Cancel";
XmlFileName = WebServiceXMLHelper.CareateXml(CurrentOrderNo);//创建并返回路径
OrderXml = OrderUtils.RetuenResponseCancel(GoodsOrderImportHeadXml, XmlFileName);//写入Xml文件
bool returnValue = false;
string appSecret = "12345678";
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
Encoding encoding = Encoding.UTF8;
//这里是对方没有进行校验
string Md5Sign = BitConverter.ToString(md5.ComputeHash(encoding.GetBytes(appSecret + OrderXml + appSecret)));//Md5加密签名
String sign = Convert.ToBase64String(encoding.GetBytes(Md5Sign)).ToUpper();//.Replace("-", ""); //加密签名
sign = Convert.ToBase64String(encoding.GetBytes(sign));
string PostData = OrderUtils.GerPutSKUDataXml(OrderXml, sign, "cancelSOData", "SOC");//发送冷联参数
ReturnMsgXml = HttpUtility.UrlDecode(OrderUtils.SendXml(PostData, out statusMessage, out returnValue));
//进行取消处理
returnValue = OrderUtils.ReturnResponseCencelSSuccess(CurrentOrderNo, ReturnMsgXml, returnValue, out statusMessage);
if (returnValue)
{
//更新订单状态
string[] ids = new string[] { GetSelecteIds()[i] };
int returnCount = BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.SetDeleted(UserInfo, ids);
}
progress.SetStatusInfo.Text = statusMessage;
progress.SetProgressValue(100);
}
#endregion
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = statusMessage;
progress.Close();
this.FormOnLoad();
}
}
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
}
#endregion
#region 菜鸟申报服务
/// <summary>
/// 菜鸟申报服务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GenerateCainiaoDeclare()
{
try
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
int itemErrcount = 0;
ProgressForm progress = new ProgressForm(this);
try
{
#region 菜鸟申报服务
progress.Show();
for (int i = 0; i < GetSelecteIds().Length; i++)
{
string CurrentOrderNo = string.Empty;
string WayBills = string.Empty;
string LogisticsCarrierNumber = string.Empty;
string LogisticsCarriersName = string.Empty;
string ShopNameId = string.Empty;
#region 获得当前行的数据
A8ERP_Customs_JkfOrderImportHeadInfo MainEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
string Id = GetSelecteIds()[i];
string Condition = string.Format("Id='{0}'", Id);
MainEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
if (MainEntity == null)
continue;
CurrentOrderNo = MainEntity.OrderNo;
WayBills = MainEntity.WayBills;
LogisticsCarrierNumber = MainEntity.LogisticsCarrierNumber;//物流承运商编号
LogisticsCarriersName = MainEntity.LogisticsCarriersName;//物流承运商名称
ShopNameId = MainEntity.ShopNameId;
#endregion
#region 检查是否有退货记录 1
A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(MainEntity.ShopNameId);
if (StoreManagementEntity.CheckrefundSingle == 1)
{
long Tid = long.Parse(MainEntity.PlatformNumber);
TaobaoConfig.SetTaobaoConfig(MainEntity.ShopNameId);//获得店铺的联连信息
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
BLLTools.WriteRefund_Status(Id, CurrentOrderNo, statusCode, statusMessage);//记录退单记录
A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
entity.OrderNoId = Id;
entity.OrderNo = CurrentOrderNo;
entity.StatusCode = statusCode;
entity.StateDescription = statusMessage;
string statusCodes = string.Empty;
string statusMessages = string.Empty;
BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
continue;
}
}
#endregion
#region 指定当前店铺的Id 2
if (!StoreManagementEntity.SpecialInterface.ToString().Equals("1"))
{
MessageUtil.ShowTips("此店铺设置不能走菜鸟申报流程");
continue;
}
#endregion
#region 获得当前店铺的申报参数
A8ERP_Customs_OrderDeclareParameterInfo GetOrderDeclareParameterEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.GetObjEntity(ShopNameId);
if (GetOrderDeclareParameterEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
}
#endregion
#region 海关个人申单报参数
A8ERP_Customs_PersonalSingleInfo GetPersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_PersonalSingle>.Instance.GetObjEntity(ShopNameId);
if (GetPersonalSingleEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
continue;
}
#endregion
#region 验证相关信息
if (string.IsNullOrEmpty(LogisticsCarrierNumber))
{
MessageUtil.ShowTips("物流承运商编号不能为空!");
break;
}
if (string.IsNullOrEmpty(WayBills))
{
continue;
}
#endregion
#region 个人申报明细表
List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();//个人申报明细表
string condition = string.Format("FId='{0}'", Id);
JkfOrderDetailList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Find(condition);
#endregion
#region 开始生成主表赋值
A8ERP_Cainiao_ImportCustomsInfo ImportCustomSentity = new A8ERP_Cainiao_ImportCustomsInfo();
ImportCustomSentity.ShopName = MainEntity.ShopName;//店铺名称
ImportCustomSentity.ShopNameId = MainEntity.ShopNameId;//店铺名称Id
ImportCustomSentity.OrderState = MainEntity.OrderState;//订单状态
ImportCustomSentity.AuditState = MainEntity.AuditState;//审核状态
ImportCustomSentity.Action_type = "NEW";//操作类型
ImportCustomSentity.Customs_Code = GetPersonalSingleEntity.CustomsCode;//关区代码
ImportCustomSentity.Suid = Guid.NewGuid().ToString();//企业系统生成36位唯一序号
ImportCustomSentity.Source_Order_Code = MainEntity.PlatformNumber;//交易订单号
//ImportCustomSentity.Source_Order_Code = MainEntity.OrderNo;//交易订单号
ImportCustomSentity.CreateBy = UserInfo.UserName;//创建用户
ImportCustomSentity.OrgId = UserInfo.SubCompanyId;//当前机构
ImportCustomSentity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 商品信息
//商品信息
decimal GrossWeight = 0.00m;
decimal NetWeight = 0.00m;
List<A8ERP_Cainiao_CainiaoitemsInfo> CainiaoitemsLits = new List<A8ERP_Cainiao_CainiaoitemsInfo>();
for (int K = 0; K < JkfOrderDetailList.Count; K++)
{
A8ERP_Cainiao_CainiaoitemsInfo entity = new A8ERP_Cainiao_CainiaoitemsInfo();
entity.ItemId = JkfOrderDetailList[K].Num_iid;//前端商品ID 商品数字ID
entity.GoodsCode = JkfOrderDetailList[K].GoodsCode;//商品编码
entity.ItemCode = JkfOrderDetailList[K].GoodsCode;//商品货号
GrossWeight += JkfOrderDetailList[K].GrossWeight;
NetWeight += JkfOrderDetailList[K].NetWeight;
entity.Hscode = JkfOrderDetailList[K].CodeTs;//Hscode
entity.Unit = JkfOrderDetailList[K].GoodsUnit;//申报计量单位
entity.Gmode = JkfOrderDetailList[K].GoodsModel;//商品规格型号
entity.Origin_country = JkfOrderDetailList[K].OriginCountry;//原产国国家编码
entity.Appliction_Form_No = GetPersonalSingleEntity.ApplicationFormNo;//申请单编号
entity.CreateBy = UserInfo.UserName;//创建用户
entity.OrgId = UserInfo.SubCompanyId;//当前机构
entity.OrgName = UserInfo.SubCompanyName;//机构名称
CainiaoitemsLits.Add(entity);
}
#endregion
#region 菜鸟对接申报清单信
A8ERP_Cainiao_DeclareInfoInfo DeclareEntity = new A8ERP_Cainiao_DeclareInfoInfo();
DeclareEntity.Ems_No = GetPersonalSingleEntity.AccountBookNo;//帐册编号,保税必填
DeclareEntity.Area_Name = GetPersonalSingleEntity.InternalAreaCompanyName;//区内企业名称,保税必填
DeclareEntity.Area_Code = GetPersonalSingleEntity.InternalAreaCompanyNo;//区内企业代码,保税必填
DeclareEntity.Delivery_Type = GetPersonalSingleEntity.ImportType.ToString();//物流模式,3:保税进口 1:直购进口
DeclareEntity.In_Port_Number = GetPersonalSingleEntity.IePort;//进出口岸代码,直购进口必填
DeclareEntity.CreateBy = UserInfo.UserName;//创建用户
DeclareEntity.OrgId = UserInfo.SubCompanyId;//当前机构
DeclareEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 菜鸟对接物流信息
#region 读取当前平台的参数
A8ERP_Customs_LogisticsWaybillInfo GetLogisticsWaybillEntity = BLLFactory<BLL.A8ERP_Customs_LogisticsWaybill>.Instance.GetObjEntity(ShopNameId);
if (GetLogisticsWaybillEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
continue;
}
#endregion
A8ERP_Cainiao_LogisticsInfoInfo LogisticsInfoEntity = new A8ERP_Cainiao_LogisticsInfoInfo();
LogisticsInfoEntity.Logistics_Code = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
LogisticsInfoEntity.Logistics_Name = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
LogisticsInfoEntity.Express_Code = MainEntity.WayBills;//运单号
LogisticsInfoEntity.Weight = GrossWeight;//包裹毛重
LogisticsInfoEntity.Net_Weight = NetWeight;//包裹净重
LogisticsInfoEntity.Arrived_Port = GetPersonalSingleEntity.DestinationPort;//指运港,直购进口必填
LogisticsInfoEntity.Transport_Name = GetPersonalSingleEntity.TrafName;//运输工具名称
LogisticsInfoEntity.Transport_Number = GetPersonalSingleEntity.VoyageNo;//运输工具航班号
LogisticsInfoEntity.Transport_Code = GetPersonalSingleEntity.TrafMode;//运输方式代码
LogisticsInfoEntity.Bill_no = GetPersonalSingleEntity.BillNo;//提运单号
LogisticsInfoEntity.Country = MainEntity.TradeCountry;// MainEntity.SenderCountry;//起运国
LogisticsInfoEntity.Sender_Name = MainEntity.UserName;//发件人
LogisticsInfoEntity.Sender_Country = MainEntity.TradeCountry;//贸易国别
LogisticsInfoEntity.CreateBy = UserInfo.UserName;//创建用户
LogisticsInfoEntity.OrgId = UserInfo.SubCompanyId;//当前机构
LogisticsInfoEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 进行申报订单生成操作
if (BLLFactory<BLL.A8ERP_Cainiao_ImportCustoms>.Instance.Add(UserInfo, ImportCustomSentity, CainiaoitemsLits, DeclareEntity, LogisticsInfoEntity, out statusCode, out statusMessage))
{
itemCount++;
progress.SetStatusInfo.Text = string.Format("菜鸟申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
}
else
{
itemErrcount++;
progress.SetStatusInfo.Text = string.Format("菜鸟申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
MessageUtil.ShowTips(statusMessage);
}
#endregion
progress.SetProgressValue(99);
progress.SetStatusInfo.Text = string.Format("菜鸟申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
}
#endregion
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = string.Format("菜鸟申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
progress.Close();
this.FormOnLoad();
}
}
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
}
#endregion
#region 跨境选择
/// <summary>
/// 跨境选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void checkIsWhether_CheckedChanged(object sender, EventArgs e)
{
IsWhether = checkIsWhether.Checked == true ? "1" : "0";
GetList();
}
#endregion
#region 配送商
/// <summary>
/// 配送商
/// </summary>
/// <param name="selectedId"></param>
private void Cmb_BaseTransportUnit_SelectedIndexChanged(string selectedId)
{
if (Cmb_BaseTransportUnit.SelectedId == "-1")
{
TransportUnitCode = string.Empty;
}
else
{
TransportUnitCode = Cmb_BaseTransportUnit.SelectedId.ToString();
}
GetList();
}
#endregion
#region 生成统一生报订单
/// <summary>
/// 生成统一生报订单
/// </summary>
public void GenerateCEB311MessageOrder()
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
int itemErrcount = 0;
ProgressForm progress = new ProgressForm(this);
try
{
progress.Show();
#region 统一申报订单服务
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string CurrentOrderNo = string.Empty;
string ShopNameId = string.Empty;
string WayBills = string.Empty;
string LogisticsCarrierNumber = string.Empty;
string LogisticsCarriersName = string.Empty;
#region 获得当前行的数据
A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
string Id = GetSelecteIds()[i];
string Condition = string.Format("Id='{0}'", Id);
JkfOrderImportHeadEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
if (JkfOrderImportHeadEntity == null)
continue;
CurrentOrderNo = JkfOrderImportHeadEntity.OrderNo;//订单号
WayBills = JkfOrderImportHeadEntity.WayBills;//运单号
LogisticsCarrierNumber = JkfOrderImportHeadEntity.LogisticsCarrierNumber;//物流承运商编号
LogisticsCarriersName = JkfOrderImportHeadEntity.LogisticsCarriersName;//物流承运商名称
ShopNameId = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
#endregion
#region 检查是否有退货记录 1
A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(JkfOrderImportHeadEntity.ShopNameId);
if (StoreManagementEntity.CheckrefundSingle == 1)
{
long Tid = long.Parse(JkfOrderImportHeadEntity.PlatformNumber);
TaobaoConfig.SetTaobaoConfig(JkfOrderImportHeadEntity.ShopNameId);//获得店铺的联连信息
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
BLLTools.WriteRefund_Status(Id, CurrentOrderNo, statusCode, statusMessage);//记录退单记录
A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
entity.OrderNoId = Id;
entity.OrderNo = CurrentOrderNo;
entity.StatusCode = statusCode;
entity.StateDescription = statusMessage;
string statusCodes = string.Empty;
string statusMessages = string.Empty;
BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
continue;
}
}
#endregion
#region 获得当前店铺的申报参数
A8ERP_Customs_OrderDeclareParameterInfo GetOrderDeclareParameterEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.GetObjEntity(ShopNameId);
if (GetOrderDeclareParameterEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
}
#endregion
#region 海关个人申单报参数
A8ERP_Customs_PersonalSingleInfo GetPersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_PersonalSingle>.Instance.GetObjEntity(ShopNameId);
if (GetPersonalSingleEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
continue;
}
#endregion
#region 验证相关信息
if (string.IsNullOrEmpty(LogisticsCarrierNumber))
{
MessageUtil.ShowTips("物流承运商编号不能为空!");
break;
}
if (string.IsNullOrEmpty(WayBills))
{
MessageUtil.ShowTips("运单号不能为空!");
continue;
}
#endregion
#region 订单申报明细表
List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();//订单申报明细表
string condition = string.Format("FId='{0}'", Id);
JkfOrderDetailList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Find(condition);
#endregion
#region 开始生成统一申报单表头赋值
A8EXP_CEB311Message_OrderHeadInfo OrderHeadentity = new A8EXP_CEB311Message_OrderHeadInfo();
OrderHeadentity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
OrderHeadentity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
OrderHeadentity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
OrderHeadentity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
OrderHeadentity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。报送时间
OrderHeadentity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
OrderHeadentity.OrderType = "I";//电子订单类型:I进口
OrderHeadentity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
OrderHeadentity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码
OrderHeadentity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
OrderHeadentity.EbcCode = GetOrderDeclareParameterEntity.ECommerceCode; //电商企业代码
OrderHeadentity.EbcName = GetOrderDeclareParameterEntity.ECommerceName;//电商企业名称
OrderHeadentity.GoodsValue = JkfOrderImportHeadEntity.OrderGoodsAmount;//商品价格
OrderHeadentity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运杂费
OrderHeadentity.Discount = JkfOrderImportHeadEntity.Discount;//非现金抵扣金额
OrderHeadentity.TaxTotal = JkfOrderImportHeadEntity.OrderTaxAmount;//企业预先代扣的税款金额,无则填写“0”
OrderHeadentity.ActuralPaid = JkfOrderImportHeadEntity.OrderTotalAmount;//商品价格+运杂费+代扣税款-非现金抵扣金额,与支付凭证的支付金额一致。
OrderHeadentity.Currency = JkfOrderImportHeadEntity.CurrCode;//限定为人民币,填写“142”。
OrderHeadentity.BuyerRegNo = JkfOrderImportHeadEntity.PurchaserId;//订购人的交易平台注册号。
OrderHeadentity.BuyerName = JkfOrderImportHeadEntity.UserName;//订购人的真实姓名
OrderHeadentity.BuyerIdType = "1";//JkfOrderImportHeadEntity.PaperType;//1-身份证,2-其它。限定为身份证,填写“1”。
OrderHeadentity.BuyerIdNumber = JkfOrderImportHeadEntity.PaperNumber;//订购人证件号码
OrderHeadentity.PayCode = GetOrderDeclareParameterEntity.PayCompanyCode;//支付企业的海关注册登记编号。
OrderHeadentity.PayName = GetOrderDeclareParameterEntity.PayCompanyName;//支付企业在海关注册登记的企业名称。
OrderHeadentity.PayTransactionId = JkfOrderImportHeadEntity.PayNumber;//支付交易编号
OrderHeadentity.BatchNumbers = "";//商品批次号
OrderHeadentity.Consignee = JkfOrderImportHeadEntity.Consignee;//收货人姓名
OrderHeadentity.ConsigneeTelephone = JkfOrderImportHeadEntity.ConsigneePhone;//收货人电话
OrderHeadentity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;//收货地址
OrderHeadentity.ConsigneeDitrict = JkfOrderImportHeadEntity.ConsigneeDitrict;//收货地址行政区划代码
OrderHeadentity.Description = JkfOrderImportHeadEntity.Description;//备注
OrderHeadentity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
OrderHeadentity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
OrderHeadentity.CreateBy = UserInfo.UserName;//创建用户
OrderHeadentity.OrgId = UserInfo.SubCompanyId;//当前机构
OrderHeadentity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 统一申报单订单明细 商品信息
List<A8EXP_CEB311Message_OrderListInfo> OrderListEntity = new List<A8EXP_CEB311Message_OrderListInfo>();
for (int K = 0; K < JkfOrderDetailList.Count; K++)
{
A8EXP_CEB311Message_OrderListInfo entity = new A8EXP_CEB311Message_OrderListInfo();
entity.OrderNo = JkfOrderDetailList[K].OrderNo;//订单编号
entity.MaterialId = JkfOrderDetailList[K].MaterialId.ToString();//商品Id
entity.MaterialCode = JkfOrderDetailList[K].GoodsCode;//商品编码
entity.ItemNo = JkfOrderDetailList[K].GoodsCode;//企业商品货号
entity.ItemName = JkfOrderDetailList[K].GoodsName;//企业商品名称
entity.ItemDescribe = JkfOrderDetailList[K].GoodsName;//企业商品描述
entity.BarCode = JkfOrderDetailList[K].GoodsBar;//条形码
entity.Unit = JkfOrderDetailList[K].GoodsUnit;//单位
entity.Qty = JkfOrderDetailList[K].GoodsCount;//数量
entity.Price = JkfOrderDetailList[K].UnitPrice;//单价
entity.TotalPrice = JkfOrderDetailList[K].Payment;//总价
entity.Currency = JkfOrderDetailList[K].Currency;//币制
entity.Country = JkfOrderDetailList[K].OriginCountry;//原产国
entity.CreateBy = UserInfo.UserName;//创建用户
entity.OrgId = UserInfo.SubCompanyId;//当前机构
entity.OrgName = UserInfo.SubCompanyName;//机构名称
OrderListEntity.Add(entity);
}
#endregion
#region 统一申报清单信息
A8EXP_CEB621Message_InventoryHeadInfo InventoryHeadEntity = new A8EXP_CEB621Message_InventoryHeadInfo();
InventoryHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
InventoryHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
InventoryHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
InventoryHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
InventoryHeadEntity.AppTime = DateTime.Now;//企业报送时间。格式:YYYYMMDDhhmmss。
InventoryHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
InventoryHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
InventoryHeadEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
InventoryHeadEntity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码
InventoryHeadEntity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
InventoryHeadEntity.EbcCode = GetOrderDeclareParameterEntity.ECommerceCode; //电商企业代码
InventoryHeadEntity.EbcName = GetOrderDeclareParameterEntity.ECommerceName;//电商企业名称
InventoryHeadEntity.LogisticsCode = GetOrderDeclareParameterEntity.LogisCompanyCode; //物流企业代码
InventoryHeadEntity.LogisticsName = GetOrderDeclareParameterEntity.LogisCompanyName;//物流企业名称
InventoryHeadEntity.CopNo = GetPersonalSingleEntity.AssureCode.ToString(); //担保企业编号
string preNumber = string.Empty;
preNumber = GetOrderNumber.GetExpressPreEntryNumber();//预录入号码
InventoryHeadEntity.PreNo = preNumber;//预录入编号
InventoryHeadEntity.AssureCode = GetPersonalSingleEntity.AccountBookNo;//担保企业编号
InventoryHeadEntity.EmsNo = GetPersonalSingleEntity.AccountBookNo.ToString().Trim();// "W29916000040"账册编号
InventoryHeadEntity.InvtNo = "";// GetPersonalSingleEntity.ApplicationFormNo.ToString().Trim();//清单编号
InventoryHeadEntity.IeFlag = GetPersonalSingleEntity.IeFlag.ToString().Trim();// "I";//进出口标志
InventoryHeadEntity.DeclTime = DateTime.Now;//申报日期,以海关计算机系统接受清单申报数据时记录的日期为准。格式:YYYYMMDD。
InventoryHeadEntity.CustomsCode = GetPersonalSingleEntity.DeclPort.ToString().Trim();// "2991";//申报海关代码
InventoryHeadEntity.PortCode = GetPersonalSingleEntity.DeclPort.ToString().Trim();// 口岸海关代码
InventoryHeadEntity.IeDate = DateTime.Now;//运载所申报商品的运输工具申报进境的日期,进口申报时无法确知相应的运输工具的实际进境日期时,免填。格式:YYYYMMDD
InventoryHeadEntity.BuyerIdType = "1";// JkfOrderImportHeadEntity.PaperType;// 订购人证件类型
InventoryHeadEntity.BuyerIdNumber = JkfOrderImportHeadEntity.PaperNumber;// 订购人证件号码
InventoryHeadEntity.BuyerName = JkfOrderImportHeadEntity.Consignee;// 订购人姓名
InventoryHeadEntity.BuyerTelephone = JkfOrderImportHeadEntity.ConsigneePhone;// 订购人电话
InventoryHeadEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;// 收件地址
InventoryHeadEntity.AgentCode = GetPersonalSingleEntity.DeclareCompanyCode.ToString().Trim();// 申报企业代码 申报单位的海关注册登记编号。
InventoryHeadEntity.AgentName = GetPersonalSingleEntity.DeclareCompanyName.ToString().Trim();// 申报单位在海关注册登记的名称。
InventoryHeadEntity.AreaCode = GetPersonalSingleEntity.InternalAreaCompanyNo.ToString().Trim();// 区内企业代码 保税模式必填,区内仓储企业的海关注册登记编号
InventoryHeadEntity.AreaName = GetPersonalSingleEntity.InternalAreaCompanyName.ToString().Trim();// 区内企业名称 保税模式必填,区内仓储企业在海关注册登记的名称。
InventoryHeadEntity.TradeMode = "1210";// GetPersonalSingleEntity.TradeMode.ToString();// 贸易方式 直购进口填写“9610”,保税进口填写“1210”
InventoryHeadEntity.TrafMode = GetPersonalSingleEntity.TrafMode.ToString();// 运输方式 填写海关标准的参数代码,参照《JGS-20 海关业务代码集》- 运输方式代码。直购进口指跨境段物流运输方式,保税进口指二线出区物流
InventoryHeadEntity.TrafNo = GetPersonalSingleEntity.TrafNo.ToString();// 运输工具编号 直购进口必填。货物进出境的运输工具的名称或运输工具编号。填报内容应与运输部门向海关申报的载货清单所列相应内容一致;同报关单填制规范。保税进口免填
InventoryHeadEntity.VoyageNo = GetPersonalSingleEntity.VoyageNo.ToString();// 航班航次号 直购进口必填。货物进出境的运输工具的航次编号。保税进口免填
InventoryHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;// 提运单号 直购进口必填。货物提单或运单的编号,保税进口免填
InventoryHeadEntity.LoctNo = GetPersonalSingleEntity.CustomsField;// 监管场所代码 直购进口必填。货物进出境的运输工具的航次编号。保税进口免填。
InventoryHeadEntity.LicenseNo = "";// JkfOrderImportHeadEntity.LicenseNo;// 许可证件号
InventoryHeadEntity.Country = JkfOrderImportHeadEntity.TradeCountry;// 起运国(地区)
InventoryHeadEntity.Freight = JkfOrderImportHeadEntity.FeeAmount;// 运费
InventoryHeadEntity.InsuredFee = JkfOrderImportHeadEntity.InsureAmount;// 保费 物流企业实际收取的商品保价费用。
InventoryHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;// 币制 限定为人民币,填写“142”。
InventoryHeadEntity.WrapType = "2";//GetPersonalSingleEntity.WrapType;// 包装种类代码 海关对进出口货物实际采用的外部包装方式的标识代码,采用1 位数字表示,如:木箱、纸箱、桶装、散装、托盘、包、油罐车等
InventoryHeadEntity.PackNo = 1;// 件数 件数为包裹数量,限定为“1”。
InventoryHeadEntity.GrossWeight = JkfOrderImportHeadEntity.GrossWeight;//毛重(公斤) 货物及其包装材料的重量之和,计量单位为千克。
InventoryHeadEntity.NetWeight = JkfOrderImportHeadEntity.TotalWeight;//净重(公斤)货物的毛重减去外包装材料后的重量,即货物本身的实际重量,计量单位为千克
InventoryHeadEntity.Note = JkfOrderImportHeadEntity.Note;//备注
InventoryHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
InventoryHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
InventoryHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
InventoryHeadEntity.CreateBy = UserInfo.UserName;//创建用户
InventoryHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
InventoryHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 统一申报清单 商品明细信息
List<A8EXP_CEB621Message_InventoryListInfo> InventoryListEntity = new List<A8EXP_CEB621Message_InventoryListInfo>();
for (int K = 0; K < JkfOrderDetailList.Count; K++)
{
#region 获得商品资料
A8ERP_MaterialInfo MaterialEntity = new A8ERP_MaterialInfo();
string ConditionSql = string.Format("MaterialCode='{0}'", JkfOrderDetailList[K].GoodsCode);
MaterialEntity = BLLFactory<BLL.A8ERP_Material>.Instance.FindSingle(ConditionSql);
if (MaterialEntity == null)
continue;
#endregion
A8EXP_CEB621Message_InventoryListInfo InventoryListentity = new A8EXP_CEB621Message_InventoryListInfo();
InventoryListentity.MaterialId = JkfOrderDetailList[K].MaterialId.ToString();//商品Id
InventoryListentity.ItemRecordNo = MaterialEntity.ItemRecordNo;//账册备案料号
InventoryListentity.ItemNo = MaterialEntity.GoodsItemNo;//企业商品货号
InventoryListentity.ItemName = MaterialEntity.ItemName;//企业商品品名
InventoryListentity.GoodsCode = JkfOrderDetailList[K].GoodsCode;//商品编码
InventoryListentity.Gcode = JkfOrderDetailList[K].CodeTs;//海关10位商品编码
InventoryListentity.Gname = JkfOrderDetailList[K].GoodsName;//商品名称
InventoryListentity.Gmodel = JkfOrderDetailList[K].GoodsModel;//商品规格型号
InventoryListentity.BarCode = JkfOrderDetailList[K].GoodsBar;//条形码
InventoryListentity.Country = MaterialEntity.TradeCountry;//原产国
InventoryListentity.Currency = JkfOrderDetailList[K].Currency;//币制
InventoryListentity.Qty = JkfOrderDetailList[K].GoodsCount;//数量
InventoryListentity.Qty1 = MaterialEntity.FirstCount;//法定数量
InventoryListentity.Qty2 = MaterialEntity.SecondCount;//第二数量
InventoryListentity.Unit = JkfOrderDetailList[K].GoodsUnit;//单位
InventoryListentity.Unit1 = MaterialEntity.FirstUnit;//法定计量单位
InventoryListentity.Unit2 = MaterialEntity.SecondUnit;//第二计量单位
InventoryListentity.Price = JkfOrderDetailList[K].UnitPrice;//单价
InventoryListentity.TotalPrice = JkfOrderDetailList[K].Payment;//总价
InventoryListentity.CreateBy = UserInfo.UserName;//创建用户
InventoryListentity.OrgId = UserInfo.SubCompanyId;//当前机构
InventoryListentity.OrgName = UserInfo.SubCompanyName;//机构名称
InventoryListEntity.Add(InventoryListentity);
}
#endregion
#region 统一申报运单信息
#region 读取当前平台的运单参数
A8ERP_Customs_LogisticsWaybillInfo GetLogisticsWaybillEntity = BLLFactory<BLL.A8ERP_Customs_LogisticsWaybill>.Instance.GetObjEntity(ShopNameId);
if (GetLogisticsWaybillEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
continue;
}
#endregion
#region 统一申报物流运单数据
A8EXP_CEB511Message_LogisticsHeadInfo LogisticsHeadEntity = new A8EXP_CEB511Message_LogisticsHeadInfo();
LogisticsHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
LogisticsHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
LogisticsHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
LogisticsHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
LogisticsHeadEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。
LogisticsHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
LogisticsHeadEntity.LogisticsCode = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
LogisticsHeadEntity.LogisticsName = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
LogisticsHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
LogisticsHeadEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
LogisticsHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;//提运单号
LogisticsHeadEntity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运费
LogisticsHeadEntity.InsuredFee = JkfOrderImportHeadEntity.InsureAmount;//保价费
LogisticsHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;//币制
LogisticsHeadEntity.Weight = JkfOrderImportHeadEntity.GrossWeight;//毛重
LogisticsHeadEntity.PackNo = JkfOrderImportHeadEntity.TotalCount;//件数
LogisticsHeadEntity.GoodsInfo = JkfOrderImportHeadEntity.MainGName;//主要货物信息
LogisticsHeadEntity.Consingee = JkfOrderImportHeadEntity.Consignee;//收货人姓名
LogisticsHeadEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;//收货地址
LogisticsHeadEntity.ConsigneeTelephone = JkfOrderImportHeadEntity.ConsigneePhone;//收货人电话
LogisticsHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
LogisticsHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
LogisticsHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
LogisticsHeadEntity.CreateBy = UserInfo.UserName;//创建用户
LogisticsHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
LogisticsHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#endregion
#region 统一申报物流运单状态数据
A8EXP_CEB513Message_LogisticsStatusInfo LogisticsStatusEntity = new A8EXP_CEB513Message_LogisticsStatusInfo();
LogisticsStatusEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
LogisticsStatusEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
LogisticsStatusEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
LogisticsStatusEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
LogisticsStatusEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。报送时间
LogisticsStatusEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
LogisticsStatusEntity.LogisticsCode = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
LogisticsStatusEntity.LogisticsName = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
LogisticsStatusEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
LogisticsStatusEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
LogisticsHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;//提运单号
LogisticsStatusEntity.LogisticsStatus = "";//物流运单状态
LogisticsStatusEntity.LogisticsTime = DateTime.Now;//物流状态时间
LogisticsStatusEntity.Note = JkfOrderImportHeadEntity.Note;//备注
LogisticsStatusEntity.Description = JkfOrderImportHeadEntity.Description;//备注
LogisticsStatusEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
LogisticsStatusEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
LogisticsStatusEntity.CreateBy = UserInfo.UserName;//创建用户
LogisticsStatusEntity.OrgId = UserInfo.SubCompanyId;//当前机构
LogisticsStatusEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 统一申报支付凭证数据
A8EXP_CEB411Message_PaymentHeadInfo PaymentHeadEntity = new A8EXP_CEB411Message_PaymentHeadInfo();
PaymentHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
PaymentHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
PaymentHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
PaymentHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
PaymentHeadEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。
PaymentHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
PaymentHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
PaymentHeadEntity.PayCode = GetLogisticsWaybillEntity.LogisCompanyCode;//支付企业代码
PaymentHeadEntity.PayName = GetLogisticsWaybillEntity.LogisCompanyName;//支付企业名称
PaymentHeadEntity.PayTransactionId = JkfOrderImportHeadEntity.PayNumber;//支付交易编号
PaymentHeadEntity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码
PaymentHeadEntity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
PaymentHeadEntity.PayerIdType = "1";// JkfOrderImportHeadEntity.PaperType;//支付人证件类型
PaymentHeadEntity.PayerIdNumber = JkfOrderImportHeadEntity.PaperNumber;//支付人证件号码
PaymentHeadEntity.PayerName = JkfOrderImportHeadEntity.Consignee;//支付人姓名
PaymentHeadEntity.Telephone = JkfOrderImportHeadEntity.ConsigneePhone;//支付人电话
PaymentHeadEntity.AmountPaid = JkfOrderImportHeadEntity.OrderTotalAmount;//支付金额
PaymentHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;//支付币制
PaymentHeadEntity.PayTime = JkfOrderImportHeadEntity.OrderDateTime;//支付时间
PaymentHeadEntity.Note = JkfOrderImportHeadEntity.Note;//备注
PaymentHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
PaymentHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
PaymentHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
PaymentHeadEntity.CreateBy = UserInfo.UserName;//创建用户
PaymentHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
PaymentHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 进行申报订单生成操作
progress.SetProgressValue(99);
if (BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GenerateDeployment(UserInfo, OrderHeadentity, OrderListEntity, InventoryHeadEntity, InventoryListEntity, LogisticsHeadEntity, LogisticsStatusEntity, PaymentHeadEntity, out statusCode, out statusMessage))
{
itemCount++;
progress.SetStatusInfo.Text = string.Format("统一版申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
}
else
{
itemErrcount++;
progress.SetStatusInfo.Text = string.Format("统一版申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
progress.SetProgressValue(99);
progress.SetStatusInfo.Text = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
}
#endregion
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
progress.Close();
statusMessage = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
this.FormOnLoad();
}
}
}
#endregion
#region 双击查看回执明细结果
#region public string _currentJkfOrderResultOrderNo 当前选种的业务单号
string _currentJkfOrderResultOrderNo = string.Empty;
/// <summary>
/// 当前选种的业务单号
/// </summary>
public string CurrentJkfOrderResultOrderNo
{
get
{
return _currentJkfOrderResultOrderNo = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderResult, A8ERP_Customs_JkfOrderResultInfo.FieldBusinessNo);
}
}
#endregion
/// <summary>
/// 双击查看回执明细结果
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Grid_JkfOrderResult_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (Grid_JkfOrderResult.CurrentRow == null)
return;
Form frm = null;
RF = new ReflectionFunction();
FP.CurrentCode = CurrentJkfOrderResultOrderNo.ToString();
frm = RF.LoadDialogForm("A8EXP.EXPRessWayBillImportDto.dll", "A8EXP.EXPRessWayBillImportDto.Form_ReturnReceiptListManage", FP);
if (frm.DialogResult == DialogResult.OK)
{
this.FormOnLoad();
}
}
#endregion
#region 生成支付信息申报
/// <summary>
/// 生成支付信息申报
/// </summary>
public void GetGeneratealipay()
{
try
{
if (Grid_JkfOrderImportHead.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
{
string statusCode = string.Empty;
string statusMessage = string.Empty;
int itemCount = 0;
int itemErrcount = 0;
ProgressForm progress = new ProgressForm(this);
try
{
#region 统一申报订单服务
progress.Show();
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string CurrentOrderNo = string.Empty;
string ShopNameId = string.Empty;
string WayBills = string.Empty;
string LogisticsCarrierNumber = string.Empty;
string LogisticsCarriersName = string.Empty;
#region 获得当前行的数据
A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
string Id = GetSelecteIds()[i];
string Condition = string.Format("Id='{0}'", Id);
JkfOrderImportHeadEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
if (JkfOrderImportHeadEntity == null)
continue;
CurrentOrderNo = JkfOrderImportHeadEntity.OrderNo;//订单号
WayBills = JkfOrderImportHeadEntity.WayBills;//运单号
LogisticsCarrierNumber = JkfOrderImportHeadEntity.LogisticsCarrierNumber;//物流承运商编号
LogisticsCarriersName = JkfOrderImportHeadEntity.LogisticsCarriersName;//物流承运商名称
ShopNameId = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
#endregion
#region 检查是否有退货记录 1
A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(JkfOrderImportHeadEntity.ShopNameId);
if (StoreManagementEntity.CheckrefundSingle == 1)
{
long Tid = long.Parse(JkfOrderImportHeadEntity.PlatformNumber);
TaobaoConfig.SetTaobaoConfig(JkfOrderImportHeadEntity.ShopNameId);//获得店铺的联连信息
if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
{
BLLTools.WriteRefund_Status(Id, CurrentOrderNo, statusCode, statusMessage);//记录退单记录
A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
entity.OrderNoId = Id;
entity.OrderNo = CurrentOrderNo;
entity.StatusCode = statusCode;
entity.StateDescription = statusMessage;
string statusCodes = string.Empty;
string statusMessages = string.Empty;
BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
continue;
}
}
#endregion
#region 获得当前店铺的申报参数
A8ERP_Customs_OrderDeclareParameterInfo GetOrderDeclareParameterEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.GetObjEntity(ShopNameId);
if (GetOrderDeclareParameterEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
}
#endregion
#region 海关个人申单报参数
A8ERP_Customs_PersonalSingleInfo GetPersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_PersonalSingle>.Instance.GetObjEntity(ShopNameId);
if (GetPersonalSingleEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
continue;
}
#endregion
#region 验证相关信息
if (string.IsNullOrEmpty(LogisticsCarrierNumber))
{
MessageUtil.ShowTips("物流承运商编号不能为空!");
break;
}
if (string.IsNullOrEmpty(WayBills))
{
MessageUtil.ShowTips("运单号不能为空!");
continue;
}
#endregion
#region 订单申报明细表
List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();//订单申报明细表
string condition = string.Format("FId='{0}'", Id);
JkfOrderDetailList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Find(condition);
#endregion
#region 开始生成统一申报单表头赋值
A8EXP_CEB311Message_OrderHeadInfo OrderHeadentity = new A8EXP_CEB311Message_OrderHeadInfo();
OrderHeadentity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
OrderHeadentity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
OrderHeadentity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
OrderHeadentity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
OrderHeadentity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。报送时间
OrderHeadentity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
OrderHeadentity.OrderType = "I";//电子订单类型:I进口
OrderHeadentity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
OrderHeadentity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码
OrderHeadentity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
OrderHeadentity.EbcCode = GetOrderDeclareParameterEntity.ECommerceCode; //电商企业代码
OrderHeadentity.EbcName = GetOrderDeclareParameterEntity.ECommerceName;//电商企业名称
OrderHeadentity.GoodsValue = JkfOrderImportHeadEntity.OrderGoodsAmount;//商品价格
OrderHeadentity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运杂费
OrderHeadentity.Discount = JkfOrderImportHeadEntity.Discount;//非现金抵扣金额
OrderHeadentity.TaxTotal = JkfOrderImportHeadEntity.OrderTaxAmount;//企业预先代扣的税款金额,无则填写“0”
OrderHeadentity.ActuralPaid = JkfOrderImportHeadEntity.OrderTotalAmount;//商品价格+运杂费+代扣税款-非现金抵扣金额,与支付凭证的支付金额一致。
OrderHeadentity.Currency = JkfOrderImportHeadEntity.CurrCode;//限定为人民币,填写“142”。
OrderHeadentity.BuyerRegNo = JkfOrderImportHeadEntity.PurchaserId;//订购人的交易平台注册号。
OrderHeadentity.BuyerName = JkfOrderImportHeadEntity.UserName;//订购人的真实姓名
OrderHeadentity.BuyerIdType = "1";//JkfOrderImportHeadEntity.PaperType;//1-身份证,2-其它。限定为身份证,填写“1”。
OrderHeadentity.BuyerIdNumber = JkfOrderImportHeadEntity.PaperNumber;//订购人证件号码
OrderHeadentity.PayCode = GetOrderDeclareParameterEntity.PayCompanyCode;//支付企业的海关注册登记编号。
OrderHeadentity.PayName = GetOrderDeclareParameterEntity.PayCompanyName;//支付企业在海关注册登记的企业名称。
OrderHeadentity.PayTransactionId = JkfOrderImportHeadEntity.PayNumber;//支付交易编号
OrderHeadentity.BatchNumbers = "";//商品批次号
OrderHeadentity.Consignee = JkfOrderImportHeadEntity.Consignee;//收货人姓名
OrderHeadentity.ConsigneeTelephone = JkfOrderImportHeadEntity.ConsigneePhone;//收货人电话
OrderHeadentity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;//收货地址
OrderHeadentity.ConsigneeDitrict = JkfOrderImportHeadEntity.ConsigneeDitrict;//收货地址行政区划代码
OrderHeadentity.Description = JkfOrderImportHeadEntity.Description;//备注
OrderHeadentity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
OrderHeadentity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
OrderHeadentity.CreateBy = UserInfo.UserName;//创建用户
OrderHeadentity.OrgId = UserInfo.SubCompanyId;//当前机构
OrderHeadentity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 统一申报单订单明细 商品信息
List<A8EXP_CEB311Message_OrderListInfo> OrderListEntity = new List<A8EXP_CEB311Message_OrderListInfo>();
for (int K = 0; K < JkfOrderDetailList.Count; K++)
{
A8EXP_CEB311Message_OrderListInfo entity = new A8EXP_CEB311Message_OrderListInfo();
entity.OrderNo = JkfOrderDetailList[K].OrderNo;//订单编号
entity.MaterialId = JkfOrderDetailList[K].MaterialId.ToString();//商品Id
entity.MaterialCode = JkfOrderDetailList[K].GoodsCode;//商品编码
entity.ItemNo = JkfOrderDetailList[K].GoodsCode;//企业商品货号
entity.ItemName = JkfOrderDetailList[K].GoodsName;//企业商品名称
entity.ItemDescribe = JkfOrderDetailList[K].GoodsName;//企业商品描述
entity.BarCode = JkfOrderDetailList[K].GoodsBar;//条形码
entity.Unit = JkfOrderDetailList[K].GoodsUnit;//单位
entity.Qty = JkfOrderDetailList[K].GoodsCount;//数量
entity.Price = JkfOrderDetailList[K].UnitPrice;//单价
entity.TotalPrice = JkfOrderDetailList[K].Payment;//总价
entity.Currency = JkfOrderDetailList[K].Currency;//币制
entity.Country = JkfOrderDetailList[K].OriginCountry;//原产国
entity.CreateBy = UserInfo.UserName;//创建用户
entity.OrgId = UserInfo.SubCompanyId;//当前机构
entity.OrgName = UserInfo.SubCompanyName;//机构名称
OrderListEntity.Add(entity);
}
#endregion
#region 统一申报清单信息
A8EXP_CEB621Message_InventoryHeadInfo InventoryHeadEntity = new A8EXP_CEB621Message_InventoryHeadInfo();
InventoryHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
InventoryHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
InventoryHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
InventoryHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
InventoryHeadEntity.AppTime = DateTime.Now;//企业报送时间。格式:YYYYMMDDhhmmss。
InventoryHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
InventoryHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
InventoryHeadEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
InventoryHeadEntity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码
InventoryHeadEntity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
InventoryHeadEntity.EbcCode = GetOrderDeclareParameterEntity.ECommerceCode; //电商企业代码
InventoryHeadEntity.EbcName = GetOrderDeclareParameterEntity.ECommerceName;//电商企业名称
InventoryHeadEntity.LogisticsCode = GetOrderDeclareParameterEntity.LogisCompanyCode; //物流企业代码
InventoryHeadEntity.LogisticsName = GetOrderDeclareParameterEntity.LogisCompanyName;//物流企业名称
InventoryHeadEntity.CopNo = GetPersonalSingleEntity.AssureCode.ToString(); //担保企业编号
string preNumber = string.Empty;
preNumber = GetOrderNumber.GetExpressPreEntryNumber();//预录入号码
InventoryHeadEntity.PreNo = preNumber;//预录入编号
InventoryHeadEntity.AssureCode = GetPersonalSingleEntity.AccountBookNo;//担保企业编号
InventoryHeadEntity.EmsNo = GetPersonalSingleEntity.AccountBookNo.ToString().Trim();// "W29916000040"账册编号
InventoryHeadEntity.InvtNo = "";// GetPersonalSingleEntity.ApplicationFormNo.ToString().Trim();//清单编号
InventoryHeadEntity.IeFlag = GetPersonalSingleEntity.IeFlag.ToString().Trim();// "I";//进出口标志
InventoryHeadEntity.DeclTime = DateTime.Now;//申报日期,以海关计算机系统接受清单申报数据时记录的日期为准。格式:YYYYMMDD。
InventoryHeadEntity.CustomsCode = GetPersonalSingleEntity.DeclPort.ToString().Trim();// "2991";//申报海关代码
InventoryHeadEntity.PortCode = GetPersonalSingleEntity.DeclPort.ToString().Trim();// 口岸海关代码
InventoryHeadEntity.IeDate = DateTime.Now;//运载所申报商品的运输工具申报进境的日期,进口申报时无法确知相应的运输工具的实际进境日期时,免填。格式:YYYYMMDD
InventoryHeadEntity.BuyerIdType = "1";// JkfOrderImportHeadEntity.PaperType;// 订购人证件类型
InventoryHeadEntity.BuyerIdNumber = JkfOrderImportHeadEntity.PaperNumber;// 订购人证件号码
InventoryHeadEntity.BuyerName = JkfOrderImportHeadEntity.Consignee;// 订购人姓名
InventoryHeadEntity.BuyerTelephone = JkfOrderImportHeadEntity.ConsigneePhone;// 订购人电话
InventoryHeadEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;// 收件地址
InventoryHeadEntity.AgentCode = GetPersonalSingleEntity.DeclareCompanyCode.ToString().Trim();// 申报企业代码 申报单位的海关注册登记编号。
InventoryHeadEntity.AgentName = GetPersonalSingleEntity.DeclareCompanyName.ToString().Trim();// 申报单位在海关注册登记的名称。
InventoryHeadEntity.AreaCode = GetPersonalSingleEntity.InternalAreaCompanyNo.ToString().Trim();// 区内企业代码 保税模式必填,区内仓储企业的海关注册登记编号
InventoryHeadEntity.AreaName = GetPersonalSingleEntity.InternalAreaCompanyName.ToString().Trim();// 区内企业名称 保税模式必填,区内仓储企业在海关注册登记的名称。
InventoryHeadEntity.TradeMode = "1210";// GetPersonalSingleEntity.TradeMode.ToString();// 贸易方式 直购进口填写“9610”,保税进口填写“1210”
InventoryHeadEntity.TrafMode = GetPersonalSingleEntity.TrafMode.ToString();// 运输方式 填写海关标准的参数代码,参照《JGS-20 海关业务代码集》- 运输方式代码。直购进口指跨境段物流运输方式,保税进口指二线出区物流
InventoryHeadEntity.TrafNo = GetPersonalSingleEntity.TrafNo.ToString();// 运输工具编号 直购进口必填。货物进出境的运输工具的名称或运输工具编号。填报内容应与运输部门向海关申报的载货清单所列相应内容一致;同报关单填制规范。保税进口免填
InventoryHeadEntity.VoyageNo = GetPersonalSingleEntity.VoyageNo.ToString();// 航班航次号 直购进口必填。货物进出境的运输工具的航次编号。保税进口免填
InventoryHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;// 提运单号 直购进口必填。货物提单或运单的编号,保税进口免填
InventoryHeadEntity.LoctNo = GetPersonalSingleEntity.CustomsField;// 监管场所代码 直购进口必填。货物进出境的运输工具的航次编号。保税进口免填。
InventoryHeadEntity.LicenseNo = "";// JkfOrderImportHeadEntity.LicenseNo;// 许可证件号
InventoryHeadEntity.Country = JkfOrderImportHeadEntity.TradeCountry;// 起运国(地区)
InventoryHeadEntity.Freight = JkfOrderImportHeadEntity.FeeAmount;// 运费
InventoryHeadEntity.InsuredFee = JkfOrderImportHeadEntity.InsureAmount;// 保费 物流企业实际收取的商品保价费用。
InventoryHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;// 币制 限定为人民币,填写“142”。
InventoryHeadEntity.WrapType = "2";//GetPersonalSingleEntity.WrapType;// 包装种类代码 海关对进出口货物实际采用的外部包装方式的标识代码,采用1 位数字表示,如:木箱、纸箱、桶装、散装、托盘、包、油罐车等
InventoryHeadEntity.PackNo = 1;// 件数 件数为包裹数量,限定为“1”。
InventoryHeadEntity.GrossWeight = JkfOrderImportHeadEntity.GrossWeight;//毛重(公斤) 货物及其包装材料的重量之和,计量单位为千克。
InventoryHeadEntity.NetWeight = JkfOrderImportHeadEntity.TotalWeight;//净重(公斤)货物的毛重减去外包装材料后的重量,即货物本身的实际重量,计量单位为千克
InventoryHeadEntity.Note = JkfOrderImportHeadEntity.Note;//备注
InventoryHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
InventoryHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
InventoryHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
InventoryHeadEntity.CreateBy = UserInfo.UserName;//创建用户
InventoryHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
InventoryHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 统一申报清单 商品明细信息
List<A8EXP_CEB621Message_InventoryListInfo> InventoryListEntity = new List<A8EXP_CEB621Message_InventoryListInfo>();
for (int K = 0; K < JkfOrderDetailList.Count; K++)
{
#region 获得商品资料
A8ERP_MaterialInfo MaterialEntity = new A8ERP_MaterialInfo();
string ConditionSql = string.Format("MaterialCode='{0}'", JkfOrderDetailList[K].GoodsCode);
MaterialEntity = BLLFactory<BLL.A8ERP_Material>.Instance.FindSingle(ConditionSql);
if (MaterialEntity == null)
continue;
#endregion
A8EXP_CEB621Message_InventoryListInfo InventoryListentity = new A8EXP_CEB621Message_InventoryListInfo();
InventoryListentity.MaterialId = JkfOrderDetailList[K].MaterialId.ToString();//商品Id
InventoryListentity.ItemRecordNo = MaterialEntity.ItemRecordNo;//账册备案料号
InventoryListentity.ItemNo = MaterialEntity.GoodsItemNo;//企业商品货号
InventoryListentity.ItemName = MaterialEntity.ItemName;//企业商品品名
InventoryListentity.GoodsCode = JkfOrderDetailList[K].GoodsCode;//商品编码
InventoryListentity.Gcode = JkfOrderDetailList[K].CodeTs;//海关10位商品编码
InventoryListentity.Gname = JkfOrderDetailList[K].GoodsName;//商品名称
InventoryListentity.Gmodel = JkfOrderDetailList[K].GoodsModel;//商品规格型号
InventoryListentity.BarCode = JkfOrderDetailList[K].GoodsBar;//条形码
InventoryListentity.Country = MaterialEntity.TradeCountry;//原产国
InventoryListentity.Currency = JkfOrderDetailList[K].Currency;//币制
InventoryListentity.Qty = JkfOrderDetailList[K].GoodsCount;//数量
InventoryListentity.Qty1 = MaterialEntity.FirstCount;//法定数量
InventoryListentity.Qty2 = MaterialEntity.SecondCount;//第二数量
InventoryListentity.Unit = JkfOrderDetailList[K].GoodsUnit;//单位
InventoryListentity.Unit1 = MaterialEntity.FirstUnit;//法定计量单位
InventoryListentity.Unit2 = MaterialEntity.SecondUnit;//第二计量单位
InventoryListentity.Price = JkfOrderDetailList[K].UnitPrice;//单价
InventoryListentity.TotalPrice = JkfOrderDetailList[K].Payment;//总价
InventoryListentity.CreateBy = UserInfo.UserName;//创建用户
InventoryListentity.OrgId = UserInfo.SubCompanyId;//当前机构
InventoryListentity.OrgName = UserInfo.SubCompanyName;//机构名称
InventoryListEntity.Add(InventoryListentity);
}
#endregion
#region 统一申报运单信息
#region 读取当前平台的运单参数
A8ERP_Customs_LogisticsWaybillInfo GetLogisticsWaybillEntity = BLLFactory<BLL.A8ERP_Customs_LogisticsWaybill>.Instance.GetObjEntity(ShopNameId);
if (GetLogisticsWaybillEntity == null)
{
MessageUtil.ShowTips("非法的平台Id,导入将终止");
continue;
}
#endregion
#region 统一申报物流运单数据
A8EXP_CEB511Message_LogisticsHeadInfo LogisticsHeadEntity = new A8EXP_CEB511Message_LogisticsHeadInfo();
LogisticsHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
LogisticsHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
LogisticsHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
LogisticsHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
LogisticsHeadEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。
LogisticsHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
LogisticsHeadEntity.LogisticsCode = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
LogisticsHeadEntity.LogisticsName = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
LogisticsHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
LogisticsHeadEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
LogisticsHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;//提运单号
LogisticsHeadEntity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运费
LogisticsHeadEntity.InsuredFee = JkfOrderImportHeadEntity.InsureAmount;//保价费
LogisticsHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;//币制
LogisticsHeadEntity.Weight = JkfOrderImportHeadEntity.GrossWeight;//毛重
LogisticsHeadEntity.PackNo = JkfOrderImportHeadEntity.TotalCount;//件数
LogisticsHeadEntity.GoodsInfo = JkfOrderImportHeadEntity.MainGName;//主要货物信息
LogisticsHeadEntity.Consingee = JkfOrderImportHeadEntity.Consignee;//收货人姓名
LogisticsHeadEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;//收货地址
LogisticsHeadEntity.ConsigneeTelephone = JkfOrderImportHeadEntity.ConsigneePhone;//收货人电话
LogisticsHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
LogisticsHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
LogisticsHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
LogisticsHeadEntity.CreateBy = UserInfo.UserName;//创建用户
LogisticsHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
LogisticsHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#endregion
#region 统一申报物流运单状态数据
A8EXP_CEB513Message_LogisticsStatusInfo LogisticsStatusEntity = new A8EXP_CEB513Message_LogisticsStatusInfo();
LogisticsStatusEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
LogisticsStatusEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
LogisticsStatusEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
LogisticsStatusEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
LogisticsStatusEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。报送时间
LogisticsStatusEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
LogisticsStatusEntity.LogisticsCode = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
LogisticsStatusEntity.LogisticsName = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
LogisticsStatusEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
LogisticsStatusEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
LogisticsHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;//提运单号
LogisticsStatusEntity.LogisticsStatus = "";//物流运单状态
LogisticsStatusEntity.LogisticsTime = DateTime.Now;//物流状态时间
LogisticsStatusEntity.Note = JkfOrderImportHeadEntity.Note;//备注
LogisticsStatusEntity.Description = JkfOrderImportHeadEntity.Description;//备注
LogisticsStatusEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
LogisticsStatusEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
LogisticsStatusEntity.CreateBy = UserInfo.UserName;//创建用户
LogisticsStatusEntity.OrgId = UserInfo.SubCompanyId;//当前机构
LogisticsStatusEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 统一申报支付凭证数据
A8EXP_CEB411Message_PaymentHeadInfo PaymentHeadEntity = new A8EXP_CEB411Message_PaymentHeadInfo();
PaymentHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
PaymentHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
PaymentHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
PaymentHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
PaymentHeadEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。
PaymentHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
PaymentHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
PaymentHeadEntity.PayCode = GetLogisticsWaybillEntity.LogisCompanyCode;//支付企业代码
PaymentHeadEntity.PayName = GetLogisticsWaybillEntity.LogisCompanyName;//支付企业名称
PaymentHeadEntity.PayTransactionId = JkfOrderImportHeadEntity.PayNumber;//支付交易编号
PaymentHeadEntity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码
PaymentHeadEntity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
PaymentHeadEntity.PayerIdType = "1";// JkfOrderImportHeadEntity.PaperType;//支付人证件类型
PaymentHeadEntity.PayerIdNumber = JkfOrderImportHeadEntity.PaperNumber;//支付人证件号码
PaymentHeadEntity.PayerName = JkfOrderImportHeadEntity.Consignee;//支付人姓名
PaymentHeadEntity.Telephone = JkfOrderImportHeadEntity.ConsigneePhone;//支付人电话
PaymentHeadEntity.AmountPaid = JkfOrderImportHeadEntity.OrderTotalAmount;//支付金额
PaymentHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;//支付币制
PaymentHeadEntity.PayTime = JkfOrderImportHeadEntity.OrderDateTime;//支付时间
PaymentHeadEntity.Note = JkfOrderImportHeadEntity.Note;//备注
PaymentHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
PaymentHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
PaymentHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
PaymentHeadEntity.CreateBy = UserInfo.UserName;//创建用户
PaymentHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
PaymentHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
#endregion
#region 进行申报订单生成操作
progress.SetProgressValue(99);
if (BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GenerateDeployment(UserInfo, OrderHeadentity, OrderListEntity, InventoryHeadEntity, InventoryListEntity, LogisticsHeadEntity, LogisticsStatusEntity, PaymentHeadEntity, out statusCode, out statusMessage))
{
itemCount++;
progress.SetStatusInfo.Text = string.Format("统一版申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
}
else
{
itemErrcount++;
progress.SetStatusInfo.Text = string.Format("统一版申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
progress.SetProgressValue(99);
progress.SetStatusInfo.Text = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
}
#endregion
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
statusMessage = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = statusMessage;
progress.Close();
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
this.FormOnLoad();
}
}
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
}
#endregion
#region 显示税款信息
public void TaxCEB816Message()
{
Grid_CEB816MessageTax.DataSource = null;
Grid_CustomsTaxDetail.DataSource = null;
SearchCondition condition = new SearchCondition();
string SqlCondition = "select * from View_TaxCEB816Message where ";
condition.AddCondition("CopNo", CurrentOrderNo, SqlOperator.Equal)//订单号
.AddCondition("DeletionStateCode", 0, SqlOperator.Equal)//删除状态
.AddCondition("Enabled", chEnabled, SqlOperator.Equal);//有效的
SqlCondition += condition.BuildConditionSql(DatabaseType.SqlServer);
Grid_CEB816MessageTax.DataSource = BLLFactory<BLL.A8EXP_CEB816Message_CustomsTax>.Instance.SqlTable(SqlCondition);
}
#region public string _currentDetaiFld 当前选种的Id
string _currentCEB816MessageId = string.Empty;
/// <summary>
/// 当前选种的ID
/// </summary>
public string CurrentCEB816MessageId
{
get
{
return _currentCEB816MessageId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_CEB816MessageTax, A8ERP_Customs_JkfOrderDetailInfo.FieldId);
}
}
#endregion
#endregion
#region 显示税款明细
/// <summary>
/// 显示税款明细
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Grid_CEB816MessageTax_SelectionChanged(object sender, EventArgs e)
{
SearchCondition condition = new SearchCondition();
SqlCondition = string.Empty;
condition.AddCondition("FId", CurrentCEB816MessageId, SqlOperator.Equal)//订单号
.AddCondition("DeletionStateCode", 0, SqlOperator.Equal)//删除状态
.AddCondition("Enabled", chEnabled, SqlOperator.Equal);//有效的
SqlCondition = condition.BuildConditionSql(DatabaseType.SqlServer);
Grid_CustomsTaxDetail.DataSource = BLLFactory<BLL.A8EXP_CEB816Message_CustomsTaxDetail>.Instance.GetDataTable(SqlCondition);
}
#endregion
}
}