跨境电商个人物品清单申报开发代码
经过几个月的开发终于完成的跨境电商统一申报开发
这里把一些代码分享给大家:
#region 发送到总署申报
/// <summary>
/// 发送到总署申报
/// </summary>
public void SendReceivedDeclare()
{
if (Grid_GoodsMainDeclare.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_GoodsMainDeclare, "ColSelected"))
{
int itemCount = 0;
int itemErrcount = 0;
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
progress.Show();
try
{
#region 批量提交申报
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string Id = string.Empty;
string FileName = string.Empty;
string CurrentOrderNo = string.Empty;
string XmlFileName = string.Empty;
string OrderXml = string.Empty;
string orderStatusCode = string.Empty;
string ShopNameId = string.Empty;
bool returnValueMsg = false;
//过滤表获得当前选中行的记录
string businessType = "PERSONAL_GOODS_DECLAR";//业务类型//运单信息
string sourceType = chkbusinessType.Checked == true ? "1" : "2";//申报类型//1新增 2修改
DataTable GoodsMainDeclaredtXml = new DataTable();
Id = GetSelecteIds()[i].ToString();
string Condition = string.Format("Id='{0}'", Id);
GoodsMainDeclaredtXml = BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.GetDataTable(Condition);
if (GoodsMainDeclaredtXml.Rows.Count == 0)
continue;
string AuditState = string.Empty;
for (int K = 0; K < GoodsMainDeclaredtXml.Rows.Count; K++)
{
CurrentOrderNo = GoodsMainDeclaredtXml.Rows[K]["OrderNo"].ToString();
ShopNameId = GoodsMainDeclaredtXml.Rows[K]["ShopNameId"].ToString();
AuditState = GoodsMainDeclaredtXml.Rows[K]["AuditState"].ToString();
}
#region 订单状态是否 已申报 已申报//已出库//海关入库
if ((AuditState == "30") || (AuditState == "40") || (AuditState == "120"))
{
progress.SetStatusInfo.Text = "订单已进入出货流程不能再申报...";
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 GoodsDetaildt = new DataTable(A8ERP_Customs_GoodsDeclareDetailInfo.TableName);//个人申报明细表
string condition = string.Format("FId='{0}'", Id);
GoodsDetaildt = BLLFactory<BLL.A8ERP_Customs_GoodsDeclareDetail>.Instance.GetDataTable(condition);
#endregion
#region 开始申报
FileName = WebServiceXMLHelper.CareateXMLFileName(sourceType, businessType, CurrentOrderNo);//创建Xml文件名发送文件CurrentHeadOrderNo
XmlFileName = WebServiceXMLHelper.CareateXml(FileName);//创建并返回路径
OrderXml = OrderDelareUtilities.GetCreateGoodsDeclare(SignTableXml, GoodsMainDeclaredtXml, GoodsDetaildt, XmlFileName, businessType);//写入Xml文件
string ResultstatusMessage = WebServiceSend.OrderXmlSend(OrderXml, businessType, sourceType);
returnValueMsg = XmlOperation.MessageResultXml(ResultstatusMessage, CurrentOrderNo, out statusMessage);
if (returnValueMsg)
{
orderStatusCode = CustomsOrderState.Declaration.ToString();//申报中
if (BLLFactory<A8ERP_Customs_GoodsMainDeclare>.Instance.UPOrderAuditState(UserInfo, Id, orderStatusCode))
{
statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
itemCount++;
}
#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 = "30";//状态
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
progress.SetStatusInfo.Text = "已申报: " + itemCount + " 条" + "错误:" + itemErrcount + "条";
}
else
{
itemErrcount++;
statusMessage = string.Format(A8AppMessage.MSG, statusMessage);
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
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}条 " + "错误:{2} 条", statusMessage, itemCount, itemErrcount);
DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
//FormOnLoad();
}
}
}
#endregion
跨境监管仓库软件,跟申报一起
/// <summary>
/// 杭州版申报发送
/// </summary>
public override void RundeclareVoid()
{
if (Grid_GoodsMainDeclare.CurrentRow == null)
return;
if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_GoodsMainDeclare, "ColSelected"))
{
int itemCount = 0;
int itemErrcount = 0;
ProgressForm progress = new ProgressForm(this);
string statusCode = string.Empty;
string statusMessage = string.Empty;
progress.Show();
try
{
#region 批量提交申报
for (int i = 0; i < GetSelecteIds().Length; i++)
{
progress.SetProgressValue(1);
string Id = string.Empty;
string FileName = string.Empty;
string CurrentOrderNo = string.Empty;
string XmlFileName = string.Empty;
string OrderXml = string.Empty;
string orderStatusCode = string.Empty;
string ShopNameId = string.Empty;
bool returnValueMsg = false;
//过滤表获得当前选中行的记录
string businessType = "PERSONAL_GOODS_DECLAR";//业务类型//运单信息
string sourceType = chkbusinessType.Checked == true ? "1" : "2";//申报类型//1新增 2修改
DataTable GoodsMainDeclaredtXml = new DataTable();
Id = GetSelecteIds()[i].ToString();
string Condition = string.Format("Id='{0}'", Id);
GoodsMainDeclaredtXml = BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.GetDataTable(Condition);
for (int K = 0; K < GoodsMainDeclaredtXml.Rows.Count; K++)
{
CurrentOrderNo = GoodsMainDeclaredtXml.Rows[K]["OrderNo"].ToString();
ShopNameId = GoodsMainDeclaredtXml.Rows[K]["ShopNameId"].ToString();
}
#region 订单状态是否已申报
int OrderAuditState = BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.GetOrderAuditState(CurrentOrderNo);
if (OrderAuditState >= 30)
{
statusMessage = "订单已进入出货流程不能再申报...";
progress.SetStatusInfo.Text = statusMessage;
DevExpress.XtraEditors.XtraMessageBox.Show(AppMessage.Format(statusMessage, BaseInterfaceLogic.TargetNode.Text), AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
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 GoodsDetaildt = new DataTable(A8ERP_Customs_GoodsDeclareDetailInfo.TableName);//个人申报明细表
string condition = string.Format("FId='{0}'", Id);
GoodsDetaildt = BLLFactory<BLL.A8ERP_Customs_GoodsDeclareDetail>.Instance.GetDataTable(condition);
#endregion
#region 开始申报
FileName = WebServiceXMLHelper.CareateXMLFileName(sourceType, businessType, CurrentOrderNo);//创建Xml文件名发送文件CurrentHeadOrderNo
XmlFileName = WebServiceXMLHelper.CareateXml(FileName);//创建并返回路径
OrderXml = XmlOperation.CreateGoodsDeclare(SignTableXml, GoodsMainDeclaredtXml, GoodsDetaildt, XmlFileName, businessType);//写入Xml文件
string ResultstatusMessage = WebServiceSend.OrderXmlSend(OrderXml, businessType, sourceType);
returnValueMsg = XmlOperation.MessageResultXml(ResultstatusMessage, CurrentOrderNo, out statusMessage);
if (returnValueMsg)
{
orderStatusCode = CustomsOrderState.Declaration.ToString();//申报中
if (BLLFactory<A8ERP_Customs_GoodsMainDeclare>.Instance.UPOrderAuditState(UserInfo, Id, orderStatusCode))
{
statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
itemCount++;
}
#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 = "30";//状态
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
progress.SetStatusInfo.Text = "已申报: " + itemCount + " 条" + "错误:" + itemErrcount + "条";
}
else
{
itemErrcount++;
statusMessage = string.Format(A8AppMessage.MSG, statusMessage);
MessageUtil.ShowTips(statusMessage);
}
#endregion
progress.SetProgressValue(100);
}
#endregion
}
catch (Exception ex)
{
MessageUtil.ShowTips(ex.Message);
}
finally
{
progress.SetProgressValue(100);
progress.SetStatusInfo.Text = "查找完毕...";
progress.Close();
MessageUtil.ShowTips(string.Format("申报{0}:{1}条 " + "错误:{2} 条", statusMessage, itemCount, itemErrcount));
this.FormOnLoad();
}
}
}
转载于:https://www.cnblogs.com/kuangood/p/6806985.html
跨境电商个人物品清单申报开发代码相关推荐
- 跨境电商零售进口商品条码推广您知道如何申报吗?
--申报指南-- 跨境电商零售进口 商品条码推广 您知道如何申报吗? 商品条码作为国际通用的商品标识,是商品流通的"身份证号",在国际消费品流通领域应用广泛,涵盖了大部分跨境电商商 ...
- php 武汉海关对接_“双11”临近 海口海关全力备战跨境电商监管高峰
中新网海南新闻11月6日电(李佳臣)海口海关6日发布消息称,面对"双11"这一中国电商行业的年度盛事,海口马村港海关已做好准备,确保"双11"期间跨境电商业务2 ...
- 跨境电商最新资讯——扬帆际海
随着国家一带一路倡议在沿线国家和地区的影响越来越大,以跨境电子商务为代表的跨境数字贸易帮助中国的外贸发展模式从制造驱动向服务驱动转变和升级.跨境电子商务利用互联网和高科技的优势,进入了一个强劲的增长时 ...
- 收藏 外贸企业必备的跨境电商B2B出口报关完整指南
跨境企业想要将货物出口到国外,报关是重要步骤之一,它是货物合法进出国境的通行证.许多初入跨境电商行业的B2B企业在报关上由于无人指引走了许多弯路,浪费了时间. 一.跨境出口模式 根据海关总署规定,跨境 ...
- WoShop跨境电商国际支付Paypal支付商城全开源无加密商城源码
WoShop跨境电商国际支付Paypal支付商城全开源无加密商城源码 现在的企业都喜欢直接用源码进行开发,特别是在跨境电商版块这一行,很多企业都是直接购买跨境电商系统源码再进行一个二次开发,从而给自己 ...
- 扬帆际海——跨境电商转型升级新时代来临!
对于跨境电商卖家来说,2020年的疫情爆发既是黑天鹅又是分水岭.今天扬帆际海就给大家介绍一下跨境电商的现状. 一方面,随着疫情的肆虐,国内生产链停滞不前.此外,海外需求也经历了从低到高增长的过程.跨境 ...
- 跨境电商独立站模式分析
随着以Shopyy为代表的快速建站工具的兴起,独立站的入门门槛大大降低.因此2019年可能会是独立站一个新的爆发之年.那么国内跨境电商独立站是如何发展演变的,到底有哪些模式?对于希望转型做独立站的平台 ...
- 跨境电商三单对碰三单申报流程详解
跨境电商三单对碰三单申报流程详解 概要:三单申报是指"电子订单.电子运单.支付凭证". 1.电子订单: 适合申报企业类型"电商企业.电商交易平台.电商境内代理企业&quo ...
- 跨境电商的商品是如何出口的-扬帆际海
自2016年中国提出一带一路政策以来,据海关统计,2020年中国跨境电商进出口额达到1.69万亿元,增长31.1%. 由于一系列优惠政策,跨境电子商务的快速发展.2020年,中国与22个国家的丝绸之路 ...
- (跨境电商模式)境外商品进口的4种方式
一.一般贸易 传统意义上的进口贸易,境内具备进出口经营权的外贸公司向境外的供应商采购商品,面向国内销售. 二.进口跨境贸易电子商务-直购进口(9610) 境内电子商务企业将境外商品销售给境内个人消费者 ...
最新文章
- linux命令简单汇总,直通车
- c语言三元组稀疏矩阵的转置实验报告,稀疏矩阵三元组实现矩阵转置算法实验报告.doc...
- 《Effective Java》读书笔记八(异常)
- 客户端网页编程,第二章思维导图
- 科大星云诗社动态20210417
- bootstrap table 搜索列formatter之后,单字节搜索异常
- 通过yum安装php7
- VC添加皮肤――SkinMagic msvcrtd.dll_本地测试
- 才子进销存软件各版本说明
- Arduino-定义串口
- stm32 JTAG做普通io口(来自www.ourdev.com)
- Android程序崩溃异常收集框架
- qlv转mp4播放不了,解决方法
- Unsupervised Domain Adaptation via Structurally Regularized Deep Clustering-CVPR2020
- 局域网大附件上传,支持断点续传
- Linux内核的删除
- nginx必须使用域名访问的两种设置方法
- html5视频播放器 一 (改写默认样式)
- 一、Django基础介绍
- js原生-获取屏幕宽度写响应式页面比较实用
热门文章
- Java解析富文本rtf中文乱码
- C语言课程设计之火车订票系统实现
- matlab茎叶图命令,[转载]转载:Stata命令(转自人大论坛)
- 机器人系统设计及控制技术附加学习资料
- 《Adaptive Unimodal Cost Volume Filtering for Deep Stereo Matching》
- Nios II自学笔记一:Nios II软硬件架构介绍
- E45: ‘readonly‘ option is set (add ! to override)
- 指令引用的内存不能为written怎么解决
- POI导出Excel设置自适应列宽
- bi工具市场排行榜-bi工具报价