You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
310 lines
12 KiB
310 lines
12 KiB
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using NFine.Code;
|
|
using NFine.Data.Extensions;
|
|
using NFine.Domain._03_Entity.SRM;
|
|
using NFine.Repository;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.Common;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace NFine.Application.KBSSRM
|
|
{
|
|
public class InvMaintenanceApp : RepositoryFactory<ICSVendor>
|
|
{
|
|
public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = string.Empty;
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql = @"select DISTINCT b.ID, b.InvCode,b.InvName, b.EATTRIBUTE11,b.EATTRIBUTE12,b.EATTRIBUTE13,b.EATTRIBUTE14,b.EATTRIBUTE15,b.EATTRIBUTE16,b.EATTRIBUTE17,b.EATTRIBUTE18,
|
|
case when b.EATTRIBUTE19='1' THEN '是' when b.EATTRIBUTE19='0' then '否' else '' end as EATTRIBUTE19,
|
|
b.EATTRIBUTE20,b.EATTRIBUTE21,b.EATTRIBUTE22,b.EATTRIBUTE23 , b.WorkPoint from ICSPurchaseOrder a
|
|
inner join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
where 1=1 and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "' ";
|
|
}
|
|
else
|
|
{
|
|
sql = @"select b.ID,
|
|
b.InvCode,b.InvName, b.EATTRIBUTE11,b.EATTRIBUTE12,b.EATTRIBUTE13,b.EATTRIBUTE14,b.EATTRIBUTE15,b.EATTRIBUTE16,b.EATTRIBUTE17,b.EATTRIBUTE18,
|
|
case when b.EATTRIBUTE19='1' THEN '是' when b.EATTRIBUTE19='0' then '否' else '' end as EATTRIBUTE19,
|
|
b.EATTRIBUTE20,b.EATTRIBUTE21,b.EATTRIBUTE22,b.EATTRIBUTE23 , b.WorkPoint
|
|
from ICSInventory b
|
|
where 1=1 ";
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and b.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and b.EATTRIBUTE20 like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and b.EATTRIBUTE21 like '%" + queryParam["VenName"].ToString() + "%' ";
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
|
|
public DataTable GetICSInventoryInfo(string InvCode,string WorkPoint)
|
|
{
|
|
try
|
|
{
|
|
// string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"select b.InvCode,b.InvName, b.EATTRIBUTE11,b.EATTRIBUTE12,b.EATTRIBUTE13,b.EATTRIBUTE15,b.EATTRIBUTE16,b.EATTRIBUTE17,b.EATTRIBUTE18,
|
|
b.EATTRIBUTE19,b.EATTRIBUTE20,b.EATTRIBUTE21,b.EATTRIBUTE22,b.EATTRIBUTE23
|
|
from ICSInventory b
|
|
WHERE 1=1 AND b.InvCode='{0}' and b.WorkPoint='{1}' ";
|
|
sql = string.Format(sql, InvCode, WorkPoint);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message.ToString());
|
|
}
|
|
}
|
|
|
|
|
|
public string UpdateICSInventory(string keyValue)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string msg = "";
|
|
|
|
string sql = string.Empty;
|
|
sql = @"UPDATE dbo.ICSInventory set
|
|
EATTRIBUTE11='{0}'
|
|
,EATTRIBUTE12='{1}'
|
|
,EATTRIBUTE13='{2}'
|
|
,EATTRIBUTE14='{3}'
|
|
,EATTRIBUTE15='{4}'
|
|
,EATTRIBUTE16='{5}'
|
|
,EATTRIBUTE17='{6}'
|
|
,EATTRIBUTE18='{7}'
|
|
,EATTRIBUTE19='{8}'
|
|
,EATTRIBUTE20='{9}'
|
|
,EATTRIBUTE21='{10}'
|
|
,EATTRIBUTE22=getdate()
|
|
WHERE InvCode='{11}'";
|
|
sql = string.Format(sql,
|
|
queryParam["EATTRIBUTE11"].ToString(),
|
|
queryParam["EATTRIBUTE12"].ToString(),
|
|
queryParam["EATTRIBUTE13"].ToString(),
|
|
queryParam["EATTRIBUTE14"].ToString(),
|
|
queryParam["EATTRIBUTE15"].ToString(),
|
|
queryParam["EATTRIBUTE16"].ToString(),
|
|
queryParam["EATTRIBUTE17"].ToString(),
|
|
queryParam["EATTRIBUTE18"].ToString(),
|
|
queryParam["EATTRIBUTE19"].ToString(),
|
|
MUSER,
|
|
MUSERNAME,
|
|
queryParam["InvCode"].ToString()
|
|
);
|
|
try
|
|
{
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
msg = "维护失败";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
|
|
return msg;
|
|
}
|
|
|
|
|
|
|
|
|
|
//public string SetData_PR(String savePath)
|
|
//{
|
|
// DataTable data = FileToExcel.ExcelToTable(savePath);
|
|
// string msg = EmailNotice(data);
|
|
// return msg;
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
public string SetData_PR(String savePath)
|
|
{
|
|
|
|
string msg = "";
|
|
//数据获取
|
|
try
|
|
{
|
|
DataTable data = FileToExcel.ExcelToTable(savePath);
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
SqlConnection conn = SqlHelper.GetDataCenterConn();
|
|
string sql = "";
|
|
int count = 0;
|
|
if (data != null && data.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dr in data.Rows)
|
|
{
|
|
string isEnable = "";
|
|
string GUID = Guid.NewGuid().ToString();
|
|
if (string.IsNullOrWhiteSpace(dr["物料编码"].ToString()))
|
|
throw new Exception("物料编码不能为空!");
|
|
string sqlInv = "SELECT INVName FROM ICSINVENTORY WHERE INVCODE='" + dr["物料编码"].ToString() + "'";
|
|
DataTable dtInv = SqlHelper.GetDataTableBySql(sqlInv);
|
|
if (dtInv == null || dtInv.Rows.Count <= 0)
|
|
{
|
|
msg += "物料编码" + dr["物料编码"].ToString() + "不存在";
|
|
continue;
|
|
}
|
|
string INVName = dtInv.Rows[0]["INVName"].ToString();
|
|
if (dr["是否食品安全级"].ToString()=="1"|| dr["是否食品安全级"].ToString()=="是")
|
|
{
|
|
isEnable = "1";
|
|
}
|
|
else
|
|
{
|
|
isEnable = "0";
|
|
}
|
|
sql += @"UPDATE dbo.ICSInventory set
|
|
EATTRIBUTE11='{0}'
|
|
,EATTRIBUTE12='{1}'
|
|
,EATTRIBUTE13='{2}'
|
|
,EATTRIBUTE14='{3}'
|
|
,EATTRIBUTE15='{4}'
|
|
,EATTRIBUTE16='{5}'
|
|
,EATTRIBUTE17='{6}'
|
|
,EATTRIBUTE18='{7}'
|
|
,EATTRIBUTE19='{8}'
|
|
,EATTRIBUTE20='{9}'
|
|
,EATTRIBUTE21='{10}'
|
|
,EATTRIBUTE22=getdate()
|
|
WHERE InvCode='{11}'";
|
|
|
|
|
|
sql = string.Format(sql, dr["原材料厂商"].ToString(), dr["UL证书编号"].ToString(), dr["工厂UL编号"].ToString(), dr["采购贸易商"].ToString()
|
|
, dr["版本"].ToString(), dr["制造商"].ToString(), dr["地址"].ToString(), dr["重量"].ToString(), isEnable,
|
|
MUSER, MUSERNAME, dr["物料编码"].ToString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
|
|
if (count > 0)
|
|
{
|
|
|
|
msg = "导入成功" + msg.TrimEnd(';');
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("无有效的导入数据!");
|
|
}
|
|
return msg;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception("" + msg + "异常信息:" + ex.Message + "!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public DataTable GetInvInfo(string InvCode, string InvName, string VenCode, string VenName)
|
|
{
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = string.Empty;
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql = @"select DISTINCT b.InvCode as '物料编码'
|
|
,b.InvName as '物料名称',
|
|
b.EATTRIBUTE11 as '原材料厂商',
|
|
b.EATTRIBUTE12 as 'UL证书编号',
|
|
b.EATTRIBUTE13 as '工厂UL编号',
|
|
b.EATTRIBUTE14 as '采购贸易商',
|
|
b.EATTRIBUTE15 as '版本',
|
|
b.EATTRIBUTE16 as '制造商',
|
|
b.EATTRIBUTE17 as '地址',
|
|
b.EATTRIBUTE18 as '重量',
|
|
case when b.EATTRIBUTE19='1' THEN '是' when b.EATTRIBUTE19='0' then '否' else '' end as '是否食品安全级'
|
|
from ICSPurchaseOrder a
|
|
inner join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
where 1=1 and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "' ";
|
|
}
|
|
else
|
|
{
|
|
sql = @"select b.InvCode as '物料编码'
|
|
,b.InvName as '物料名称',
|
|
b.EATTRIBUTE11 as '原材料厂商',
|
|
b.EATTRIBUTE12 as 'UL证书编号',
|
|
b.EATTRIBUTE13 as '工厂UL编号',
|
|
b.EATTRIBUTE14 as '采购贸易商',
|
|
b.EATTRIBUTE15 as '版本',
|
|
b.EATTRIBUTE16 as '制造商',
|
|
b.EATTRIBUTE17 as '地址',
|
|
b.EATTRIBUTE18 as '重量',
|
|
case when b.EATTRIBUTE19='1' THEN '是' when b.EATTRIBUTE19='0' then '否' else '' end as '是否食品安全级'
|
|
from ICSInventory b
|
|
where 1=1 ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(InvCode))
|
|
sql += " and b.InvCode like '%" + InvCode + "%'";
|
|
if (!string.IsNullOrWhiteSpace(InvName))
|
|
sql += " and b.InvName like '%" + InvName + "%'";
|
|
if (!string.IsNullOrWhiteSpace(VenCode))
|
|
sql += " and b.EATTRIBUTE20 like '%" + VenCode + "%'";
|
|
if (!string.IsNullOrWhiteSpace(VenCode))
|
|
sql += " and b.EATTRIBUTE21 like '%" + VenName + "%'";
|
|
sql += " order by b.InvCode";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|