589 lines
35 KiB
C#
589 lines
35 KiB
C#
using System;
|
|
using System.Configuration;
|
|
using System.Data;
|
|
using System.Data.OleDb;
|
|
using System.IO;
|
|
using System.Text.RegularExpressions;
|
|
using System.Web.UI.WebControls;
|
|
using SuperMap.RealEstate.Web.UI;
|
|
using SuperMap.RealEstate.CoreFrameWork;
|
|
using SuperMap.RealEstate.HighWay.Storage.Business;
|
|
using HWRB = SuperMap.RealEstate.HighWay.Running.Business;
|
|
using HZQR.Common;
|
|
|
|
namespace SuperMap.RealEstate.HighWay.Compents.CommodityChange
|
|
{
|
|
public partial class UpdateExcel : SuperMap.RealEstate.Web.UI.Page
|
|
{
|
|
protected string _SERVERPART_ID = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[0];
|
|
protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[2];
|
|
protected string _BusinessType = ConfigurationManager.AppSettings["BusinessType"].ToString();
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (IsPostBack) return;
|
|
|
|
btnDownExcel.Enabled = false;
|
|
//设置确认导入按钮焦点时间
|
|
SetControlClientAction(btnUpload, false);
|
|
SetControlClientAction(btnDownExcel, false);
|
|
}
|
|
|
|
|
|
#region 方法 -> 导入excel文档数据
|
|
protected void btnUpload_Click(object sender, EventArgs e)
|
|
{
|
|
if (fpUpload.PostedFile.FileName.ToString() == "")
|
|
{
|
|
Alert("请正确选择文件!");
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
Boolean fileOk = false;
|
|
if (!fpUpload.HasFile)
|
|
{
|
|
throw new Exception("上传文件不存在!");
|
|
}
|
|
//取得文件的扩展名,并转换成小写
|
|
string fileExtension = Path.GetExtension(fpUpload.FileName).ToLower();
|
|
//验证上传文件是否图片格式
|
|
if (fileExtension != ".xls" && fileExtension != ".xlsx")
|
|
{
|
|
throw new Exception("上传文件格式不正确!");
|
|
}
|
|
//
|
|
if (fpUpload.PostedFile.ContentLength <= 0)//浏览器并不是都支持PostedFile.FileName////File.Exists(ExcelFile.PostedFile.FileName))
|
|
{
|
|
throw new Exception("上传文件内容不存在!");
|
|
}
|
|
string filepath = "./Temporary/ExcelFile/";
|
|
if (Directory.Exists(Server.MapPath(filepath)) == false)//如果不存在就创建file文件夹
|
|
{
|
|
Directory.CreateDirectory(Server.MapPath(filepath));
|
|
}
|
|
|
|
string newname = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_ffff") + fileExtension;
|
|
string virpath = filepath + newname;//这是存到服务器上的虚拟路径
|
|
string mappath = Server.MapPath(virpath);//转换成服务器上的物理路径
|
|
fpUpload.PostedFile.SaveAs(mappath);//保存到指定目录
|
|
|
|
ExcelHelper excelHelper = new ExcelHelper();
|
|
DataTable dt = excelHelper.ExcelToDataTable(mappath, "商品导入模板", true);
|
|
//
|
|
dt = ValidDataTable(dt);
|
|
|
|
GridView1.DataSource = dt;
|
|
GridView1.DataBind();
|
|
if (GridView1.Rows.Count > 0)
|
|
{
|
|
btnDownExcel.Enabled = true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Alert(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 数据验证
|
|
private DataTable ValidDataTable(DataTable dt)
|
|
{
|
|
//重新处理问题--重新处理
|
|
DataTable _CopyDataTable = new DataTable();
|
|
_CopyDataTable.Columns.Add("序号");
|
|
_CopyDataTable.Columns.Add("业态");
|
|
_CopyDataTable.Columns.Add("商品类型");
|
|
_CopyDataTable.Columns.Add("商品编码");
|
|
_CopyDataTable.Columns.Add("商品名称");
|
|
_CopyDataTable.Columns.Add("商品条码");
|
|
_CopyDataTable.Columns.Add("商品单位");
|
|
_CopyDataTable.Columns.Add("商品规格");
|
|
_CopyDataTable.Columns.Add("商品产地");
|
|
_CopyDataTable.Columns.Add("质量等级");
|
|
_CopyDataTable.Columns.Add("是否散装");
|
|
_CopyDataTable.Columns.Add("称重方式");
|
|
_CopyDataTable.Columns.Add("商品状态");
|
|
_CopyDataTable.Columns.Add("进价税率");
|
|
_CopyDataTable.Columns.Add("销售税率");
|
|
_CopyDataTable.Columns.Add("快捷键值");
|
|
_CopyDataTable.Columns.Add("自定义类");
|
|
|
|
int RowCount = 1;
|
|
bool bAllowCells = true;
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
bAllowCells = true;
|
|
|
|
//验证是否为空列
|
|
#region 验证列
|
|
for (int i = 0; i < dr.ItemArray.Length; i++)
|
|
{
|
|
switch (i)
|
|
{
|
|
case 7:
|
|
case 8:
|
|
case 12:
|
|
case 13:
|
|
case 14:
|
|
case 15:
|
|
break;
|
|
default:
|
|
//验证数量 --不能为空,不能不是数字
|
|
if (dr.ItemArray[i].ToString() == "")
|
|
{
|
|
bAllowCells = false;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
if (bAllowCells)
|
|
{
|
|
DataRow _DataRow = _CopyDataTable.NewRow();
|
|
_DataRow[0] = RowCount;
|
|
//暂时就赋值前面四列
|
|
for (int x = 0; x < _CopyDataTable.Columns.Count && x < dr.ItemArray.Length; x++)
|
|
{
|
|
_DataRow[x + 1] = CommonHelper.ChangeHtmlToString(dr[x].ToString());
|
|
}
|
|
_CopyDataTable.Rows.Add(_DataRow);
|
|
RowCount++;
|
|
}
|
|
}
|
|
//验证商品数量列
|
|
return _CopyDataTable;
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 导入商品数据
|
|
protected void btnUpdata_Click(object sender, EventArgs e)
|
|
{
|
|
Alert(UpdateCommodity());
|
|
}
|
|
|
|
private string UpdateCommodity()
|
|
{
|
|
string _Result = "";
|
|
int ErrorCount = 0, NotExistsCount = 0, AddCount = 0;
|
|
//1、商品类型错误
|
|
string _ErrCOMMODITYTYPE = "";
|
|
//2、业态错误
|
|
string _ErrBUSINESSTYPE = "";
|
|
//判断业态、是否散装、称重方式、商品状态是否有误
|
|
string _ErrNorType = "";
|
|
//统一定价类
|
|
string _ErrUnPri = "";
|
|
//没有商品类
|
|
string _ErrNoPro = "";
|
|
//已存在流程
|
|
string _ErrEx = "";
|
|
//商品提交审批,却不再流程中
|
|
string _ErrNotEx = "";
|
|
HWRB.HIGHWAYPROINST _HIGHWAYPROINST = new HWRB.HIGHWAYPROINST(Transaction);
|
|
_HIGHWAYPROINST.HIGHWAYPROINST_ID_Encrypt = Request["HIGHWAYPROINST_ID"];
|
|
if (_HIGHWAYPROINST.Select())
|
|
{
|
|
#region 1、是否存在服务区
|
|
Storage.Business.SERVERPART _SERVERPART = new Storage.Business.SERVERPART(this.Transaction);
|
|
_SERVERPART.AddSearchParameter("SERVERPART_CODE", Request["SERVERPART_CODE"].ToDecrypt());
|
|
//1、是否存在服务区
|
|
if (_SERVERPART.Search())
|
|
{
|
|
//获取自定义类别
|
|
DataTable dtUserdefindType = _SERVERPART.ExecuteDataTable(string.Format(
|
|
@"SELECT A.USERDEFINEDTYPE_ID,A.USERDEFINEDTYPE_NAME,B.SHOPTRADE
|
|
FROM HIGHWAY_STORAGE.T_USERDEFINEDTYPE A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
|
|
WHERE (A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID OR
|
|
TO_CHAR(A.BUSINESSTYPE) = B.SHOPTRADE) AND A.SERVERPART_ID = {0}
|
|
GROUP BY A.USERDEFINEDTYPE_ID,A.USERDEFINEDTYPE_NAME,B.SHOPTRADE", _SERVERPART.SERVERPART_ID));
|
|
|
|
foreach (GridViewRow _GridViewRow in GridView1.Rows)
|
|
{
|
|
#region 判断是否存在商品类型
|
|
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
|
|
DataTable _DTCOMMODITYTYPE = _COMMODITYTYPE.FillDataTable("WHERE COMMODITYTYPE_NAME = '" +
|
|
_GridViewRow.Cells[2].Text.Replace(" ", "") + "' AND LENGTH(COMMODITYTYPE_CODE) = 4 AND COMMODITYTYPE_CODE" +
|
|
(_SERVERPART.SERVERPART_ID.ToString() == _SERVERPART_ID ? "" : " NOT") +
|
|
" LIKE '1%' AND PROVINCE_ID = " + _SERVERPART.PROVINCE_CODE);
|
|
//2、判断是否存在商品类型
|
|
if (_DTCOMMODITYTYPE.Rows.Count > 0)
|
|
{
|
|
#region 2、判断是否存在业态
|
|
string _tempBUSINESSTYPE = DictionaryHelper.GetFieldEnumValue(
|
|
"BUSINESSTYPE", _GridViewRow.Cells[1].Text.Replace(" ", ""), Transaction);
|
|
if (HZQR.Common.Utils.IsNumeric(_tempBUSINESSTYPE))
|
|
{
|
|
if (!string.IsNullOrEmpty(Request["BUSINESSTYPE"]) &&
|
|
((Request["BUSINESSTYPE"].ToDecrypt().StartsWith("!") &&
|
|
Request["BUSINESSTYPE"].ToDecrypt().Contains(_tempBUSINESSTYPE)) ||
|
|
(!Request["BUSINESSTYPE"].ToDecrypt().StartsWith("!") &&
|
|
!Request["BUSINESSTYPE"].ToDecrypt().Contains(_tempBUSINESSTYPE))))
|
|
{
|
|
_ErrBUSINESSTYPE += _ErrBUSINESSTYPE.Length > 0 ? "," : "";
|
|
_ErrBUSINESSTYPE += _GridViewRow.Cells[4].Text.Replace(" ", "") + "[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]";
|
|
ErrorCount++;
|
|
continue;
|
|
}
|
|
string _tempISBULK = DictionaryHelper.GetFieldEnumValue(
|
|
"ISBULK", _GridViewRow.Cells[10].Text.Replace(" ", ""), Transaction);
|
|
string _tempMETERINGMETHOD = DictionaryHelper.GetFieldEnumValue(
|
|
"METERINGMETHOD", _GridViewRow.Cells[11].Text.Replace(" ", ""), Transaction);
|
|
string _tempCOMMODITYSTATE = DictionaryHelper.GetFieldEnumValue(
|
|
"COMMODITYSTATE", _GridViewRow.Cells[12].Text.Replace(" ", ""), Transaction);
|
|
|
|
#region 判断是否散装、称重方式、商品状态是否有误
|
|
if (!string.IsNullOrEmpty(_tempCOMMODITYSTATE) && HZQR.Common.Utils.IsNumeric(_tempISBULK) &&
|
|
HZQR.Common.Utils.IsNumeric(_tempMETERINGMETHOD))
|
|
{
|
|
//质量等级
|
|
string _tempCOMMODITYGRADE = "";
|
|
if (_GridViewRow.Cells[9].Text.Replace(" ", "").Length > 0)
|
|
{
|
|
_tempCOMMODITYGRADE = DictionaryHelper.GetFieldEnumValue(
|
|
"COMMODITYGRADE", _GridViewRow.Cells[9].Text.Replace(" ", ""), Transaction);
|
|
}
|
|
|
|
#region 3、是否存在商品 --> 添加
|
|
Storage.Business.COMMODITY _COMMODITY = new Storage.Business.COMMODITY(this.Transaction);
|
|
_COMMODITY.AddSearchParameter("COMMODITY_CODE", _GridViewRow.Cells[3].Text.Replace(" ", ""));
|
|
_COMMODITY.AddSearchParameter("SERVERPART_ID", _SERVERPART.SERVERPART_ID);
|
|
//4、是否有当前商品
|
|
if (_COMMODITY.Search())
|
|
{
|
|
HWRB.COMMODITY _RunningCOMMODITY = new HWRB.COMMODITY(this.Transaction);
|
|
_RunningCOMMODITY.COMMODITY_ID = _COMMODITY.COMMODITY_ID;
|
|
|
|
#region 4、流程中是否有该商品
|
|
if (_RunningCOMMODITY.Select())
|
|
{
|
|
HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new HWRB.MODIFYFROMSTORAGE(this.Transaction);
|
|
_MODIFYFROMSTORAGE.AddSearchParameter("Table_Name", "T_COMMODITY");
|
|
_MODIFYFROMSTORAGE.AddSearchParameter("Field_Name", "COMMODITY_ID");
|
|
_MODIFYFROMSTORAGE.AddSearchParameter("Field_Value", _COMMODITY.COMMODITY_ID);
|
|
if (_MODIFYFROMSTORAGE.Search())
|
|
{
|
|
if (_HIGHWAYPROINST.HIGHWAYPROINST_ID == _MODIFYFROMSTORAGE.HIGHWAYPROINST_ID)
|
|
{
|
|
#region 如果存在当前流程则更新商品
|
|
//判断当前服务区相同业态是否存在相同的快捷键信息
|
|
if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[15].Text.Replace(" ", "")) &&
|
|
!_RunningCOMMODITY.IsDuplicateHotKey(_RunningCOMMODITY.KeyID,
|
|
_GridViewRow.Cells[15].Text.Replace(" ", ""),
|
|
_SERVERPART.SERVERPART_ID.ToString(), _tempBUSINESSTYPE))
|
|
{
|
|
_RunningCOMMODITY.COMMODITY_HOTKEY = _GridViewRow.Cells[15].Text.Replace(" ", "");
|
|
}
|
|
//商品自定义类
|
|
if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[16].Text.Replace(" ", "")))
|
|
{
|
|
DataRow[] drUserdefindType = dtUserdefindType.Select("SHOPTRADE = '" + _tempBUSINESSTYPE +
|
|
"' AND USERDEFINEDTYPE_NAME = '" + _GridViewRow.Cells[16].Text.Replace(" ", "") + "'");
|
|
if (drUserdefindType.Length > 0)
|
|
{
|
|
_RunningCOMMODITY.USERDEFINEDTYPE_ID = drUserdefindType[0]["USERDEFINEDTYPE_ID"].TryParseToInt();
|
|
}
|
|
}
|
|
//if (_RunningCOMMODITY.BUSINESSTYPE != int.Parse(_tempBUSINESSTYPE))
|
|
//{
|
|
// IsUpdate = true;
|
|
_RunningCOMMODITY.BUSINESSTYPE = int.Parse(_tempBUSINESSTYPE);
|
|
//}
|
|
_RunningCOMMODITY.COMMODITY_TYPE = _DTCOMMODITYTYPE.Rows[0]["COMMODITYTYPE_ID"].ToString();
|
|
_RunningCOMMODITY.COMMODITY_NAME = _GridViewRow.Cells[4].Text.Replace(" ", "");
|
|
_RunningCOMMODITY.COMMODITY_BARCODE = _GridViewRow.Cells[5].Text.Replace(" ", "").Trim().Length == 0 ?
|
|
CreateBarCode(_GridViewRow.Cells[3].Text.Replace(" ", "")) :
|
|
_GridViewRow.Cells[5].Text.Replace(" ", "");
|
|
_RunningCOMMODITY.COMMODITY_UNIT = _GridViewRow.Cells[6].Text.Replace(" ", "");
|
|
_RunningCOMMODITY.COMMODITY_RULE = _GridViewRow.Cells[7].Text.Replace(" ", "");
|
|
_RunningCOMMODITY.COMMODITY_ORI = _GridViewRow.Cells[8].Text.Replace(" ", "");
|
|
if (HZQR.Common.Utils.IsNumeric(_tempCOMMODITYGRADE))
|
|
{
|
|
_RunningCOMMODITY.COMMODITY_GRADE = _tempCOMMODITYGRADE;
|
|
}
|
|
_RunningCOMMODITY.ISBULK = int.Parse(_tempISBULK);
|
|
_RunningCOMMODITY.METERINGMETHOD = int.Parse(_tempMETERINGMETHOD);
|
|
_RunningCOMMODITY.COMMODITY_STATE = int.Parse(_tempCOMMODITYSTATE);
|
|
//进价税率
|
|
if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace(" ", "")))
|
|
{
|
|
try
|
|
{
|
|
_RunningCOMMODITY.DUTY_PARAGRAPH = short.Parse(
|
|
_GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace(" ", ""));
|
|
}
|
|
catch { }
|
|
}
|
|
//销售税率
|
|
if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace(" ", "")))
|
|
{
|
|
try
|
|
{
|
|
_RunningCOMMODITY.RETAIL_DUTY = short.Parse(
|
|
_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace(" ", ""));
|
|
}
|
|
catch { }
|
|
}
|
|
_RunningCOMMODITY.Update();
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
//不存在则提示
|
|
HWRB.HIGHWAYPROINST _HIGHWAYPROINSTCOMMODITY = new HWRB.HIGHWAYPROINST(Transaction);
|
|
_HIGHWAYPROINSTCOMMODITY.AddSearchParameter("HIGHWAYPROINST_ID",
|
|
_MODIFYFROMSTORAGE.HIGHWAYPROINST_ID);
|
|
if (_HIGHWAYPROINSTCOMMODITY.Search())
|
|
{
|
|
_ErrEx += _ErrEx.Length > 0 ? "," : "";
|
|
_ErrEx += _GridViewRow.Cells[4].Text.Replace(" ", "") +
|
|
"[" + _GridViewRow.Cells[5].Text.Replace(" ", "") +
|
|
"]创建时间" + _HIGHWAYPROINSTCOMMODITY.HIGHWAYPROINST_CREATEDATE;
|
|
ErrorCount++;
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
//一般没有这种情况
|
|
_ErrNotEx += _ErrNotEx.Length > 0 ? "," : "";
|
|
_ErrNotEx += _GridViewRow.Cells[4].Text.Replace(" ", "") +
|
|
"[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
_RunningCOMMODITY.ResetProperty();
|
|
_RunningCOMMODITY.CopyFrom(_COMMODITY);
|
|
//判断当前服务区相同业态是否存在相同的快捷键信息
|
|
if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[15].Text.Replace(" ", "")) &&
|
|
!_RunningCOMMODITY.IsDuplicateHotKey(_RunningCOMMODITY.KeyID,
|
|
_GridViewRow.Cells[15].Text.Replace(" ", ""),
|
|
_SERVERPART.SERVERPART_ID.ToString(), _tempBUSINESSTYPE))
|
|
{
|
|
_RunningCOMMODITY.COMMODITY_HOTKEY = _GridViewRow.Cells[15].Text.Replace(" ", "");
|
|
}
|
|
//商品自定义类
|
|
if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[16].Text.Replace(" ", "")))
|
|
{
|
|
DataRow[] drUserdefindType = dtUserdefindType.Select("SHOPTRADE = '" + _tempBUSINESSTYPE +
|
|
"' AND USERDEFINEDTYPE_NAME = '" + _GridViewRow.Cells[16].Text.Replace(" ", "") + "'");
|
|
if (drUserdefindType.Length > 0)
|
|
{
|
|
_RunningCOMMODITY.USERDEFINEDTYPE_ID = drUserdefindType[0]["USERDEFINEDTYPE_ID"].TryParseToInt();
|
|
}
|
|
}
|
|
_RunningCOMMODITY.BUSINESSTYPE = int.Parse(_tempBUSINESSTYPE);
|
|
_RunningCOMMODITY.COMMODITY_TYPE = _DTCOMMODITYTYPE.Rows[0]["COMMODITYTYPE_ID"].ToString();
|
|
_RunningCOMMODITY.COMMODITY_NAME = _GridViewRow.Cells[4].Text.Replace(" ", "");
|
|
_RunningCOMMODITY.COMMODITY_BARCODE = _GridViewRow.Cells[5].Text.Replace(" ", "").Trim().Length == 0 ?
|
|
CreateBarCode(_GridViewRow.Cells[3].Text.Replace(" ", "")) :
|
|
_GridViewRow.Cells[5].Text.Replace(" ", "");
|
|
_RunningCOMMODITY.COMMODITY_UNIT = _GridViewRow.Cells[6].Text.Replace(" ", "");
|
|
_RunningCOMMODITY.COMMODITY_RULE = _GridViewRow.Cells[7].Text.Replace(" ", "");
|
|
_RunningCOMMODITY.COMMODITY_ORI = _GridViewRow.Cells[8].Text.Replace(" ", "");
|
|
if (HZQR.Common.Utils.IsNumeric(_tempCOMMODITYGRADE))
|
|
{
|
|
_RunningCOMMODITY.COMMODITY_GRADE = _tempCOMMODITYGRADE;
|
|
}
|
|
_RunningCOMMODITY.ISBULK = int.Parse(_tempISBULK);
|
|
_RunningCOMMODITY.METERINGMETHOD = int.Parse(_tempMETERINGMETHOD);
|
|
_RunningCOMMODITY.COMMODITY_STATE = int.Parse(_tempCOMMODITYSTATE);
|
|
//进价税率
|
|
if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace(" ", "")))
|
|
{
|
|
try
|
|
{
|
|
_RunningCOMMODITY.DUTY_PARAGRAPH = short.Parse(
|
|
_GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace(" ", ""));
|
|
}
|
|
catch { }
|
|
}
|
|
//销售税率
|
|
if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace(" ", "")))
|
|
{
|
|
try
|
|
{
|
|
_RunningCOMMODITY.RETAIL_DUTY = short.Parse(
|
|
_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace(" ", ""));
|
|
}
|
|
catch { }
|
|
}
|
|
_RunningCOMMODITY.Insert();
|
|
|
|
//插入关联关系
|
|
HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new HWRB.MODIFYFROMSTORAGE(this.Transaction);
|
|
_MODIFYFROMSTORAGE.HIGHWAYPROINST_ID = _HIGHWAYPROINST.HIGHWAYPROINST_ID;
|
|
_MODIFYFROMSTORAGE.Field_Value = _COMMODITY.COMMODITY_ID.Value.ToString();
|
|
_MODIFYFROMSTORAGE.Table_Name = "T_COMMODITY";
|
|
_MODIFYFROMSTORAGE.Field_Name = "COMMODITY_ID";
|
|
_MODIFYFROMSTORAGE.Insert();
|
|
|
|
AddCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
if ((string.IsNullOrEmpty(_BusinessType) ? true : !_BusinessType.Contains(_tempBUSINESSTYPE)) &&
|
|
_SERVERPART.PROVINCE_CODE.ToString() == _PROVINCE_CODE && _HIGHWAYPROINST.ExecuteDataTable(
|
|
"SELECT 1 FROM HIGHWAY_STORAGE.V_ALL_COMMODITY WHERE COMMODITY_BARCODE = '" +
|
|
_GridViewRow.Cells[5].Text.Replace(" ", "") + "' AND COMMODITY_STATE >= 1 AND SERVERPART_ID = " +
|
|
_SERVERPART_ID + (string.IsNullOrEmpty(_BusinessType) ? "" : " AND BUSINESSTYPE NOT IN (" +
|
|
_BusinessType + ")")).Rows.Count > 0 && _SERVERPART.SERVERPART_ID.ToString() != _SERVERPART_ID)
|
|
{
|
|
_ErrUnPri += (string.IsNullOrEmpty(_ErrUnPri) ? "" : ",") +
|
|
_GridViewRow.Cells[4].Text.Replace(" ", "") +
|
|
"[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]";
|
|
}
|
|
else
|
|
{
|
|
_ErrNoPro += _ErrNoPro.Length > 0 ? "," : "";
|
|
_ErrNoPro += _GridViewRow.Cells[4].Text.Replace(" ", "") +
|
|
"[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]";
|
|
}
|
|
ErrorCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
_ErrNorType += _ErrNorType.Length > 0 ? "," : "";
|
|
_ErrNorType += _GridViewRow.Cells[4].Text.Replace(" ", "") +
|
|
"[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]";
|
|
NotExistsCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
_ErrBUSINESSTYPE += _ErrBUSINESSTYPE.Length > 0 ? "," : "";
|
|
_ErrBUSINESSTYPE += _GridViewRow.Cells[4].Text.Replace(" ", "") +
|
|
"[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]";
|
|
ErrorCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
_ErrCOMMODITYTYPE += _ErrCOMMODITYTYPE.Length > 0 ? "," : "";
|
|
_ErrCOMMODITYTYPE += _GridViewRow.Cells[4].Text.Replace(" ", "") +
|
|
"[" + _GridViewRow.Cells[5].Text.Replace(" ", "") + "]";
|
|
ErrorCount++;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return "请选择服务区!";
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
return "流程码为空!";
|
|
}
|
|
_Result += _ErrCOMMODITYTYPE.Length > 0 ? ",商品名称为" + _ErrCOMMODITYTYPE + "的商品类型无法匹配" : "";
|
|
_Result += _ErrBUSINESSTYPE.Length > 0 ? ",商品名称为" + _ErrBUSINESSTYPE + "的业态无法匹配" : "";
|
|
_Result += _ErrNorType.Length > 0 ? ",商品名称为" + _ErrNorType + "的是否散称或称重方式或商品状态无法匹配" : "";
|
|
_Result += _ErrUnPri.Length > 0 ? ",商品名称为" + _ErrUnPri + "已存在于统一定价中" : "";
|
|
_Result += _ErrNoPro.Length > 0 ? ",商品名称为" + _ErrNoPro + "不存在,请进行商品新增" : "";
|
|
_Result += _ErrEx.Length > 0 ? ",商品名称为" + _ErrEx + "已存在于其他业务流程中" : "";
|
|
_Result += _ErrNotEx.Length > 0 ? ",商品名称为" + _ErrNotEx + "已提交审批却不在业务流程中,请通知管理员" : "";
|
|
_Result = (_Result.Length > 0 ? ",其中未对应系统商品" + ErrorCount + "件" : "") + _Result;
|
|
if (GridView1.Rows.Count != ErrorCount + NotExistsCount)
|
|
{
|
|
_Result = "导入完成" + _Result;
|
|
}
|
|
else
|
|
{
|
|
_Result = "导入失败" + _Result;
|
|
}
|
|
|
|
RefreshOpenerGridPage(RefreshGridPageType.Insert, AddCount);
|
|
|
|
return _Result;
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 产生商品条码
|
|
public string CreateBarCode(string COMMODITYCode)
|
|
{
|
|
string BarCode = string.Empty;
|
|
int LastCode = 0;
|
|
BarCode = COMMODITYCode;
|
|
//8位编号补足12位
|
|
if (BarCode.Length == 8) BarCode = "2600" + BarCode;
|
|
//偶数位的数字求和*3 + 奇数位数字和
|
|
for (int i = 1; i <= 12; i++)
|
|
{
|
|
int Num = int.Parse(BarCode.Substring(i - 1, 1));
|
|
if (i % 2 == 0)
|
|
{
|
|
LastCode += Num * 3;
|
|
}
|
|
else
|
|
{
|
|
LastCode += Num;
|
|
}
|
|
}
|
|
//和求10的模
|
|
LastCode = 10 - (LastCode % 10);
|
|
if (LastCode == 10) LastCode = 0;
|
|
//返回条码
|
|
return BarCode + LastCode.ToString();
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 修改商品Symbol
|
|
public void UpdateSymbol(string SERVERPART_ID, string BUSINESS_TYPE, int COMMODITY_ID)
|
|
{
|
|
//获取服务区业态最大Symbol
|
|
DataTable dt = new Running.Business.COMMODITY(Transaction).ExecuteDataTable(
|
|
"SELECT MAX(to_number(REGEXP_REPLACE(NVL(COMMODITY_SYMBOL,0), '^[[:alpha:]]'))) FROM HIGHWAY_STORAGE.T_COMMODITY WHERE SERVERPART_ID = " +
|
|
SERVERPART_ID + " AND BUSINESSTYPE = " + BUSINESS_TYPE);
|
|
int NextSymbol = int.Parse(dt.Rows[0][0].ToString()) + 1;
|
|
if (_SERVERPART_ID == SERVERPART_ID)
|
|
{
|
|
new Running.Business.COMMODITY(Transaction).ExecuteNonQuery("UPDATE HIGHWAY_STORAGE.T_COMMODITY SET COMMODITY_SYMBOL = 'T" +
|
|
NextSymbol + "' WHERE COMMODITY_ID = " + COMMODITY_ID, null);
|
|
}
|
|
else
|
|
{
|
|
new Running.Business.COMMODITY(Transaction).ExecuteNonQuery("UPDATE HIGHWAY_STORAGE.T_COMMODITY SET COMMODITY_SYMBOL = " +
|
|
NextSymbol + " WHERE COMMODITY_ID = " + COMMODITY_ID, null);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 公共方法
|
|
/// <summary>
|
|
/// 由连字符分隔的32位数字
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private static string GetGuid()
|
|
{
|
|
System.Guid guid = new Guid();
|
|
guid = Guid.NewGuid();
|
|
return guid.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 是否为Double类型
|
|
/// </summary>
|
|
/// <param name="expression"></param>
|
|
/// <returns></returns>
|
|
public static bool IsDouble(object expression)
|
|
{
|
|
if (expression != null)
|
|
return Regex.IsMatch(expression.ToString(), @"^([0-9])[0-9]*(\.\w*)?$");
|
|
|
|
return false;
|
|
}
|
|
#endregion
|
|
}
|
|
} |