2025-03-27 15:05:14 +08:00

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("&nbsp", "") + "' 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("&nbsp", ""), 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("&nbsp", "") + "[" + _GridViewRow.Cells[5].Text.Replace("&nbsp", "") + "]";
ErrorCount++;
continue;
}
string _tempISBULK = DictionaryHelper.GetFieldEnumValue(
"ISBULK", _GridViewRow.Cells[10].Text.Replace("&nbsp", ""), Transaction);
string _tempMETERINGMETHOD = DictionaryHelper.GetFieldEnumValue(
"METERINGMETHOD", _GridViewRow.Cells[11].Text.Replace("&nbsp", ""), Transaction);
string _tempCOMMODITYSTATE = DictionaryHelper.GetFieldEnumValue(
"COMMODITYSTATE", _GridViewRow.Cells[12].Text.Replace("&nbsp", ""), Transaction);
#region
if (!string.IsNullOrEmpty(_tempCOMMODITYSTATE) && HZQR.Common.Utils.IsNumeric(_tempISBULK) &&
HZQR.Common.Utils.IsNumeric(_tempMETERINGMETHOD))
{
//质量等级
string _tempCOMMODITYGRADE = "";
if (_GridViewRow.Cells[9].Text.Replace("&nbsp", "").Length > 0)
{
_tempCOMMODITYGRADE = DictionaryHelper.GetFieldEnumValue(
"COMMODITYGRADE", _GridViewRow.Cells[9].Text.Replace("&nbsp", ""), Transaction);
}
#region 3 -->
Storage.Business.COMMODITY _COMMODITY = new Storage.Business.COMMODITY(this.Transaction);
_COMMODITY.AddSearchParameter("COMMODITY_CODE", _GridViewRow.Cells[3].Text.Replace("&nbsp", ""));
_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("&nbsp", "")) &&
!_RunningCOMMODITY.IsDuplicateHotKey(_RunningCOMMODITY.KeyID,
_GridViewRow.Cells[15].Text.Replace("&nbsp", ""),
_SERVERPART.SERVERPART_ID.ToString(), _tempBUSINESSTYPE))
{
_RunningCOMMODITY.COMMODITY_HOTKEY = _GridViewRow.Cells[15].Text.Replace("&nbsp", "");
}
//商品自定义类
if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[16].Text.Replace("&nbsp", "")))
{
DataRow[] drUserdefindType = dtUserdefindType.Select("SHOPTRADE = '" + _tempBUSINESSTYPE +
"' AND USERDEFINEDTYPE_NAME = '" + _GridViewRow.Cells[16].Text.Replace("&nbsp", "") + "'");
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("&nbsp", "");
_RunningCOMMODITY.COMMODITY_BARCODE = _GridViewRow.Cells[5].Text.Replace("&nbsp", "").Trim().Length == 0 ?
CreateBarCode(_GridViewRow.Cells[3].Text.Replace("&nbsp", "")) :
_GridViewRow.Cells[5].Text.Replace("&nbsp", "");
_RunningCOMMODITY.COMMODITY_UNIT = _GridViewRow.Cells[6].Text.Replace("&nbsp", "");
_RunningCOMMODITY.COMMODITY_RULE = _GridViewRow.Cells[7].Text.Replace("&nbsp", "");
_RunningCOMMODITY.COMMODITY_ORI = _GridViewRow.Cells[8].Text.Replace("&nbsp", "");
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("&nbsp", "")))
{
try
{
_RunningCOMMODITY.DUTY_PARAGRAPH = short.Parse(
_GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace("&nbsp", ""));
}
catch { }
}
//销售税率
if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace("&nbsp", "")))
{
try
{
_RunningCOMMODITY.RETAIL_DUTY = short.Parse(
_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace("&nbsp", ""));
}
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("&nbsp", "") +
"[" + _GridViewRow.Cells[5].Text.Replace("&nbsp", "") +
"]创建时间" + _HIGHWAYPROINSTCOMMODITY.HIGHWAYPROINST_CREATEDATE;
ErrorCount++;
}
}
}
else
{
//一般没有这种情况
_ErrNotEx += _ErrNotEx.Length > 0 ? "," : "";
_ErrNotEx += _GridViewRow.Cells[4].Text.Replace("&nbsp", "") +
"[" + _GridViewRow.Cells[5].Text.Replace("&nbsp", "") + "]";
}
}
else
{
_RunningCOMMODITY.ResetProperty();
_RunningCOMMODITY.CopyFrom(_COMMODITY);
//判断当前服务区相同业态是否存在相同的快捷键信息
if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[15].Text.Replace("&nbsp", "")) &&
!_RunningCOMMODITY.IsDuplicateHotKey(_RunningCOMMODITY.KeyID,
_GridViewRow.Cells[15].Text.Replace("&nbsp", ""),
_SERVERPART.SERVERPART_ID.ToString(), _tempBUSINESSTYPE))
{
_RunningCOMMODITY.COMMODITY_HOTKEY = _GridViewRow.Cells[15].Text.Replace("&nbsp", "");
}
//商品自定义类
if (!string.IsNullOrWhiteSpace(_GridViewRow.Cells[16].Text.Replace("&nbsp", "")))
{
DataRow[] drUserdefindType = dtUserdefindType.Select("SHOPTRADE = '" + _tempBUSINESSTYPE +
"' AND USERDEFINEDTYPE_NAME = '" + _GridViewRow.Cells[16].Text.Replace("&nbsp", "") + "'");
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("&nbsp", "");
_RunningCOMMODITY.COMMODITY_BARCODE = _GridViewRow.Cells[5].Text.Replace("&nbsp", "").Trim().Length == 0 ?
CreateBarCode(_GridViewRow.Cells[3].Text.Replace("&nbsp", "")) :
_GridViewRow.Cells[5].Text.Replace("&nbsp", "");
_RunningCOMMODITY.COMMODITY_UNIT = _GridViewRow.Cells[6].Text.Replace("&nbsp", "");
_RunningCOMMODITY.COMMODITY_RULE = _GridViewRow.Cells[7].Text.Replace("&nbsp", "");
_RunningCOMMODITY.COMMODITY_ORI = _GridViewRow.Cells[8].Text.Replace("&nbsp", "");
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("&nbsp", "")))
{
try
{
_RunningCOMMODITY.DUTY_PARAGRAPH = short.Parse(
_GridViewRow.Cells[_GridViewRow.Cells.Count - 4].Text.Replace("&nbsp", ""));
}
catch { }
}
//销售税率
if (!string.IsNullOrEmpty(_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace("&nbsp", "")))
{
try
{
_RunningCOMMODITY.RETAIL_DUTY = short.Parse(
_GridViewRow.Cells[_GridViewRow.Cells.Count - 3].Text.Replace("&nbsp", ""));
}
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("&nbsp", "") + "' 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("&nbsp", "") +
"[" + _GridViewRow.Cells[5].Text.Replace("&nbsp", "") + "]";
}
else
{
_ErrNoPro += _ErrNoPro.Length > 0 ? "," : "";
_ErrNoPro += _GridViewRow.Cells[4].Text.Replace("&nbsp", "") +
"[" + _GridViewRow.Cells[5].Text.Replace("&nbsp", "") + "]";
}
ErrorCount++;
}
#endregion
}
else
{
_ErrNorType += _ErrNorType.Length > 0 ? "," : "";
_ErrNorType += _GridViewRow.Cells[4].Text.Replace("&nbsp", "") +
"[" + _GridViewRow.Cells[5].Text.Replace("&nbsp", "") + "]";
NotExistsCount++;
}
#endregion
}
else
{
_ErrBUSINESSTYPE += _ErrBUSINESSTYPE.Length > 0 ? "," : "";
_ErrBUSINESSTYPE += _GridViewRow.Cells[4].Text.Replace("&nbsp", "") +
"[" + _GridViewRow.Cells[5].Text.Replace("&nbsp", "") + "]";
ErrorCount++;
}
#endregion
}
else
{
_ErrCOMMODITYTYPE += _ErrCOMMODITYTYPE.Length > 0 ? "," : "";
_ErrCOMMODITYTYPE += _GridViewRow.Cells[4].Text.Replace("&nbsp", "") +
"[" + _GridViewRow.Cells[5].Text.Replace("&nbsp", "") + "]";
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
}
}