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.
 
 
 
 

1814 lines
100 KiB

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NFine.Code;
using NFine.Data.Extensions;
using NFine.Domain._03_Entity.SRM;
using NFine.Domain.Entity.ProductManage;
using NFine.Domain.IRepository.ProductManage;
using NFine.Repository;
using NFine.Repository.ProductManage;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace NFine.Application
{
public class InvoiceManageApp : 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 = @"SELECT DISTINCT a.ID,a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100),a.MTIME,23) AS MTIME,
CASE Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '记账' WHEN 3 THEN '退回' END STATUS,
CASE Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '记账' WHEN 3 THEN '退回' END HIDDSTATUS,
CASE InvoiceType WHEN 02 THEN '普票' WHEN 01 THEN '专票' END INVOICETYPE,Tax,
CASE ISNULL(IsERP, 0) WHEN 0 THEN '否' WHEN 1 THEN '是' END ISERP,
SupplierCode,SupplierName,PubUser,CONVERT(VARCHAR(100),PubTime,23) AS PubTime,Remark,PaperNo,a.WorkPoint,a.dVouDate,a.Filename,a.FilePath
FROM ICSInvoiceNew a
left join ( select distinct a.DocNo,e.CreatePerson,a.WorkPoint,e.pocode,b.src_CADocNo,e.InvCode FROM ICSInvoiceNew a
left join ICSInvoiceNewDetail b on a.DocNo=b.DocNo and a.WorkPoint=b.WorkPoint
left join dbo.ICSCANewdetail c on b.Src_CadocNO=c.DocNO and b.WorkPoint=c.WorkPoint
left join dbo.ICSPurchaseOrder e on c.POCode=e.POCode and c.PORow=e.Sequence and c.WorkPoint=e.WorkPoint) b on a.DocNo=b.DocNo and a.WorkPoint=b.WorkPoint
left join ICSINVENTORY f on b.InvCode=f.invCode and b.WorkPoint=f.WorkPoint
WHERE 1=1";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
{
sql += " and a.DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
{
sql += " and a.SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
{
sql += " and a.SupplierName like '%" + queryParam["SupplierName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
{
sql += " and a.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
{
sql += " and a.MTIME <= '" + queryParam["TimeTo"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["PoCode"].ToString()))
{
sql += " and b.PoCode like '%" + queryParam["PoCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["CACOde"].ToString()))
{
sql += " and b.src_CADocNo like '%" + queryParam["CACOde"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
{
sql += " and f.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
{
sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
}
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
{
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
{
sql += " and a.SupplierCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=b.WorkPoint)AND a.SupplierName='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public string ChridenList(string keyValue, string WorkPoint)
{
keyValue = keyValue.Substring(1, keyValue.Length - 2);
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
string msg = "";
string sql = "SELECT DocNo FROM dbo.ICSInvoiceNewDetail WHERE DocNo in ({0}) and WorkPoint='{1}'";
sql = string.Format(sql, keyValue.TrimEnd(','), WorkPoint);
DataTable dt = SqlHelper.GetDataTableBySql(sql);
int Count = dt.Rows.Count;
if (Count <= 0)
{
msg = "该单据无表单明细信息,请点开查看!";
}
return msg;
}
public DataTable GetGridJsonAdmin(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @" SELECT DISTINCT a.ID,a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100),a.MTIME,23) AS MTIME,
CASE Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '记账' WHEN 3 THEN '退回' END STATUS,
CASE Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '记账' WHEN 3 THEN '退回' END HIDDSTATUS,
CASE a.InvoiceType WHEN 02 THEN '普票' WHEN 01 THEN '专票' END INVOICETYPE,a.Tax,
CASE ISNULL(a.IsERP, 0) WHEN 0 THEN '否' WHEN 1 THEN '是' END ISERP,
a.SupplierCode,a.SupplierName,a.PubUser,CONVERT(VARCHAR(100),a.PubTime,23) AS PubTime,a.Remark,a.PaperNo,a.WorkPoint,a.dVouDate,a.Filename,a.FilePath
FROM ICSInvoiceNew a
left join ( select distinct a.DocNo,e.CreatePerson,a.WorkPoint,e.pocode,b.src_CADocNo,e.InvCode FROM ICSInvoiceNew a
left join ICSInvoiceNewDetail b on a.DocNo=b.DocNo and a.WorkPoint=b.WorkPoint
left join dbo.ICSCANewdetail c on b.Src_CadocNO=c.DocNO and b.WorkPoint=c.WorkPoint
left join dbo.ICSPurchaseOrder e on c.POCode=e.POCode and c.PORow=e.Sequence and c.WorkPoint=e.WorkPoint
) b on a.DocNo=b.DocNo and a.WorkPoint=b.WorkPoint left join ICSINVENTORY f on b.InvCode=f.invCode and b.WorkPoint=f.WorkPoint WHERE 1=1 AND a.Status IN (1,2,3)";
// string sql = @" SELECT DISTINCT a.ID,a.DocNo,a.MUSER,a.MUSERName,CONVERT(VARCHAR(100),a.MTIME,23) AS MTIME,
// CASE a.Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '记账' WHEN 3 THEN '退回' END STATUS,
// CASE InvoiceType WHEN 0 THEN '普票' WHEN 1 THEN '专票' END INVOICETYPE,Tax,
// CASE ISNULL(IsERP, 0) WHEN 0 THEN '否' WHEN 1 THEN '是' END ISERP,
// SupplierCode,SupplierName,PubUser,CONVERT(VARCHAR(100),PubTime,23) AS PubTime,a.Remark,PaperNo,a.WorkPoint,d.CreatePerson
// from ICSInvoice a
// LEFT join ICSInvoiceDetail b ON a.DocNo=b.DocNo
// left JOIN view_PoMain c ON b.ASNNo = c.DNNO AND b.InvCode = c.InvCode
// LEFT JOIN dbo.ICSPO_PoMain d ON c.POCode=d.POCode WHERE 1=1 AND a.Status IN (1,2,3) ";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["DocNo"].ToString()))
{
sql += " and a.DocNo like '%" + queryParam["DocNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["SupplierCode"].ToString()))
{
sql += " and a.SupplierCode like '%" + queryParam["SupplierCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["SupplierName"].ToString()))
{
sql += " and a.SupplierName like '%" + queryParam["SupplierName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["CreatePerson"].ToString()))
{
sql += " and b.CreatePerson like '%" + queryParam["CreatePerson"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
{
sql += " and a.MTIME >= '" + queryParam["TimeFrom"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeTo"].ToString()))
{
sql += " and a.MTIME <= '" + queryParam["TimeTo"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["PoCode"].ToString()))
{
sql += " and b.PoCode like '%" + queryParam["PoCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["CACOde"].ToString()))
{
sql += " and b.src_CADocNo like '%" + queryParam["CACOde"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
{
sql += " and f.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
{
sql += " and f.InvName like '%" + queryParam["InvName"].ToString() + "%'";
}
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
{
string ReleaseState = queryParam["ReleaseState"].ToString();
if (ReleaseState == "1")
sql += " and a.Status = '1'";
else if (ReleaseState == "2")
sql += " and a.Status = '2'";
else if (ReleaseState == "3")
sql += " and a.Status = '3'";
}
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
{
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
{
sql += " and a.SupplierCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)AND a.SupplierName='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode != "admin")
{
sql = SqlHelper.OrganizeByVendor_F_ParentIdBYDZ(sql, NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
}
//dt = SqlHelper.GetDataTableBySql(sql);
//else
//{
// if (NFine.Code.OperatorProvider.Provider.GetCurrent().IsSystem == false)
// {
// sql += " and d.CreatePerson='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'";
// }
//}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 子表查询
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetSubGridJson(string ID, ref Pagination jqgridparam, string WorkPoint)
{
//string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
//DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
//string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
//string DBName = dtU9.Rows[0]["DBName"].ToString();
string DBLANK = SqlHelper.GetItemsDetails("ERP001", WorkPoint);
string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint2", WorkPoint);
DataTable dt = new DataTable();
List<DbParameter> parameter = new List<DbParameter>();
// string sql = @"SELECT DISTINCT a.ID,a.InvCode,j.InvName,a.Qty,j.InvUnit AS InvUom,
// CAST(a.TaxPriceSell AS DECIMAL(18,2)) AS Price,CAST(g.ioriSum AS DECIMAL(18,2)) AS Total,
// a.Src_CADocNo AS CACOde,f.POCode,ISNULL(g.iOriMoney,0) AS iOriMoney,ISNULL(g.iOriTaxPrice,0) AS iOriTaxPrice
// FROM ICSInvoiceNewDetail a
// left join ICSCANew c on a.Src_CADocNo=c.DocNo and a.WorkPoint=c.WorkPoint
//LEFT JOIN ICSCANewdetail e ON c.DocNo=e.DocNo AND a.Src_CADocLineNo=e.DocLineNo AND a.InvCode=e.InvCode
// LEFT JOIN (SELECT ioriSum,AutoID,iOriMoney,iOriTaxPrice FROM {2}.dbo.rdrecords01 with(nolock)) g ON e.EATTRIBUTE1=g.AutoID
// LEFT JOIN dbo.ICSPurchaseOrder f ON e.POCode=f.POCode AND e.porow=f.Sequence and e.WorkPoint=f.WorkPoint and e.InvCode=f.InvCode
//LEFT JOIN ICSINVENTORY j ON f.invcode=j.invCode AND j.WorkPoint=f.WorkPoint
// WHERE a.DocNo = '{0}' AND a.WorkPoint = '{1}' ";
string sql = @"SELECT DISTINCT a.ID,a.InvCode,j.InvName,a.Qty,j.InvUnit AS InvUom,
CAST(a.TaxPriceSell AS DECIMAL(18,2)) AS Price,CAST(g.ioriSum AS DECIMAL(18,2)) AS Total,
a.Src_CADocNo AS CACOde,f.POCode,ISNULL(g.iOriMoney,0) AS iOriMoney,ISNULL(g.iOriTaxPrice,0) AS iOriTaxPrice
FROM ICSInvoiceNewDetail a
left join ICSCANew c on a.Src_CADocNo=c.DocNo and a.WorkPoint=c.WorkPoint
LEFT JOIN ICSCANewdetail e ON c.DocNo=e.DocNo AND a.Src_CADocLineNo=e.DocLineNo AND a.InvCode=e.InvCode
LEFT JOIN " + Views + @" g ON e.EATTRIBUTE1=g.AutoID
LEFT JOIN dbo.ICSPurchaseOrder f ON e.POCode=f.POCode AND e.porow=f.Sequence and e.WorkPoint=f.WorkPoint and e.InvCode=f.InvCode
LEFT JOIN ICSINVENTORY j ON f.invcode=j.invCode AND j.WorkPoint=f.WorkPoint
WHERE a.DocNo = '{0}' AND a.WorkPoint = '{1}' ";
sql = string.Format(sql, ID, WorkPoint, DBLANK);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 查询送货单新增/修改页面数据
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetSubGridJson_Add(string queryJson, ref Pagination jqgridparam)
{
//string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
//DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
//string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
//string DBName = dtU9.Rows[0]["DBName"].ToString();
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
string DBLANK = SqlHelper.GetItemsDetails("ERP001", queryParam["WorkPoint"].ToString());
string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", queryParam["WorkPoint"].ToString());
List<DbParameter> parameter = new List<DbParameter>();
//lacy.xu modifly 2021-08-31 单价取值:采购订单行单价
// string sql = @"SELECT DISTINCT a.ID,b.InvCode,b.InvName,a.Qty,b.InvUom,
// CAST(a.TaxPriceSell AS DECIMAL(18,2)) AS Price,CAST(a.TotalMoneySell AS DECIMAL(18,2)) AS Total,
// a.Src_CADocNo AS CACOde,b.DNNO AS DNCOde,b.POCode
// FROM ICSInvoiceDetail a
// LEFT JOIN view_PoMain b ON a.ASNNo = b.DNNO AND a.InvCode = b.InvCode
// WHERE a.DocNo = '{0}' AND a.WorkPoint = '{1}' ";
//string sql = @"SELECT DISTINCT a.ID,a.DocNo AS ASDocNo,e.InvCode,f.InvName,f.InvStd,b.Src_CADocNo AS CACOde,
// b.Qty,
// f.InvStd InvUom,CAST(e.UnitPrice AS DECIMAL(18,2)) AS Price,
// ISNULL(g.ioriSum,0) AS Total,
// CONVERT(VARCHAR(100),a.MTIME,23) AS ASDate,
// CASE a.Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
// e.POCode AS POCode,CONVERT(VARCHAR(100),e.ReleaseDate,23) AS PODate,a.SupplierCode,a.PaperNo,d.EATTRIBUTE1
// ,ISNULL(g.iOriMoney,0) AS iOriMoney,ISNULL(g.iOriTaxPrice,0) AS iOriTaxPrice
// FROM ICSInvoiceNew a
// INNER JOIN (select sum(Qty )AS Qty,Src_CADocNo,DocNo,Src_CADocLineNo,InvCode from ICSInvoiceNewDetail group by Src_CADocNo,DocNo,Src_CADocLineNo,InvCode) b ON a.DocNo = b.DocNo
// LEFT JOIN ICSCANewDetail d on b.Src_CADocNo=d.DocNo and b.Src_CADocLineNo=d.DocLineNo and b.InvCode=d.InvCode
// LEFT JOIN (SELECT ioriSum,AutoID,iOriMoney,iOriTaxPrice FROM {1}.dbo.rdrecords01 with(nolock)) g ON d.EATTRIBUTE1=g.AutoID
// --LEFT JOIN Viewrd01 c ON d.EATTRIBUTE1=c.AutoID
// --LEFT JOIN Viewrd01 c ON c.cpoid=d.poCode AND c.ivouchrowno=d.porow and c.AutoID=a.EATTRIBUTE1
// left join dbo.ICSPurchaseOrder e on d.PoCode=e.POCode and d.PoRow=e.Sequence
// left join ICSINVENTORY f on d.InvCode=f.INVCODE and d.WorkPoint=f.WorkPoint
// WHERE a.DocNo = '{0}' ";
string sql = @"SELECT DISTINCT a.ID,a.DocNo AS ASDocNo,e.InvCode,f.InvName,f.InvStd,b.Src_CADocNo AS CACOde,
b.Qty,
f.InvStd InvUom,CAST(e.UnitPrice AS DECIMAL(18,2)) AS Price,
ISNULL(g.ioriSum,0) AS Total,
CONVERT(VARCHAR(100),a.MTIME,23) AS ASDate,
CASE a.Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
e.POCode AS POCode,CONVERT(VARCHAR(100),e.ReleaseDate,23) AS PODate,a.SupplierCode,a.PaperNo,d.EATTRIBUTE1
,ISNULL(g.iOriMoney,0) AS iOriMoney,ISNULL(g.iOriTaxPrice,0) AS iOriTaxPrice
FROM ICSInvoiceNew a
INNER JOIN (select sum(Qty )AS Qty,Src_CADocNo,DocNo,Src_CADocLineNo,InvCode from ICSInvoiceNewDetail group by Src_CADocNo,DocNo,Src_CADocLineNo,InvCode) b ON a.DocNo = b.DocNo
LEFT JOIN ICSCANewDetail d on b.Src_CADocNo=d.DocNo and b.Src_CADocLineNo=d.DocLineNo and b.InvCode=d.InvCode
left join dbo.ICSPurchaseOrder e on d.PoCode=e.POCode and d.PoRow=e.Sequence
LEFT JOIN " + Views + @" g ON d.EATTRIBUTE1=g.AutoID
left join ICSINVENTORY f on d.InvCode=f.INVCODE and d.WorkPoint=f.WorkPoint
WHERE a.DocNo = '{0}' ";
sql = string.Format(sql, queryParam["DocNo"].ToString(), DBLANK);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 子表查询
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetSubGridJson(string CartonNo, string queryJson, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,c.TYPE
FROM dbo.ICSITEMLot2Carton a
LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
if (!string.IsNullOrEmpty(queryJson))
{
sql += @"UNION ALL
SELECT a.ID,a.ItemCODE,b.INVNAME,a.VenderLotNO,a.LOTQTY,a.TYPE FROM
dbo.ICSITEMLot a
LEFT JOIN dbo.ICSINVENTORY b ON a.ItemCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
WHERE a.ID IN (" + queryJson.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetSubGridJsonByCreate(string POCode, string PORow)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.ID, a.POCode,a.PORow,a.PODate,a.ORDERNO,a.VenCode,a.VenName,a.InvCode,
b.INVNAME,b.INVSTD,b.INVDESC,b.INVUOM,a.Quantity,ISNULL(c.CreatedQty,0) AS CreatedQty,isnull(c.InQty,0) as InQty,a.WorkPoint
FROM dbo.ICSPO_PoMain a
LEFT JOIN dbo.ICSINVENTORY b ON a.InvCode=b.INVCODE AND a.WorkPoint=b.WorkPoint
LEFT JOIN (SELECT SUM(x.LOTQTY) CreatedQty,TransNO,TransLine,x.WorkPoint,
SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.LOTQTY ELSE 0 END) AS InQty
FROM dbo.ICSITEMLot x
LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
GROUP BY TransNO,TransLine,x.WorkPoint) c ON a.POCode=c.TransNO AND a.PORow=c.TransLine AND a.WorkPoint=c.WorkPoint
WHERE 1=1
and a.POCode='" + POCode + "' and a.PORow='" + PORow + "' and a.WorkPoint='" + WorkPoint + "'";
return Repository().FindTableBySql(sql.ToString());
}
public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
{
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string dtPre = DateTime.Now.ToString("yyyyMMdd");
string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
return Repository().FindTableBySql(sql.ToString());
}
/// <summary>
/// 生成条码
/// </summary>
/// <param name="POCode"></param>
/// <param name="PORow"></param>
/// <param name="keyValue"></param>
/// <returns></returns>
public int CreateItemLotNo(string POCode, string PORow, string keyValue)
{
var queryParam = keyValue.ToJObject();
int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
decimal LOTQTY = minPackQty;
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string VenCode = GetVendorCode(POCode, PORow, WorkPoint);
string Pre = VenCode + DateTime.Now.ToString("yyMMdd");
string sql = string.Empty;
string VendorLot = queryParam["VendorLot"].ToString();
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
for (int i = 0; i < createPageCount; i++)
{
if (i + 1 == createPageCount)
{
if (minPackQty * createPageCount > thisCreateQty)
{
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
}
}
string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 5);
sql += string.Format(@"INSERT INTO dbo.ICSITEMLot
( ID ,LotNO ,ItemCODE ,TransNO ,TransLine ,VENDORITEMCODE ,VENDORCODE ,
VenderLotNO ,PRODUCTDATE ,LOTQTY ,ACTIVE ,Exdate ,WorkPoint ,
MUSER ,MUSERName ,MTIME ,TYPE,ORDERNO)
SELECT NEWID(),'{0}',InvCode,POCode,PORow,'',NULL,
'{1}',GETDATE(),'{2}','Y','2999-12-31 00:00:00.000','{3}',
'{4}','{5}',GETDATE(),'采购原料',ORDERNO
FROM dbo.ICSPO_PoMain WHERE POCode='{6}' AND PORow='{7}' AND WorkPoint='{3}'",
LotNo, VendorLot, LOTQTY, WorkPoint, MUSER, MUSERNAME, POCode, PORow);
sql += "\r\n";
}
int count = SqlHelper.ExecuteNonQuery(sql);
return count;
}
public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
{
string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
}
public string GetVendorCode(string POCode, string PORow, string WorkPoint)
{
string sql = string.Format(@"SELECT VenCode FROM dbo.ICSPO_PoMain
WHERE POCode='{0}' AND PORow='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
DataTable dt = SqlHelper.GetDataTableBySql(sql);
string VenCode = string.Empty;
if (dt != null && dt.Rows.Count > 0)
{
VenCode = dt.Rows[0][0].ToString();
}
return VenCode;
}
/// <summary>
/// 删除送货单内的条码或者箱号
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteInfo(string keyValue, string WorkPoint, string objInvCode)
{
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
// string sql = string.Format(@"DELETE
// FROM dbo.ICSInvoice
// WHERE ID IN ({0}) and WorkPoint ='{1}' ", keyValue.TrimEnd(','), WorkPoint);
string sql = string.Format(@"DELETE FROM ICSInvoiceNewDetail WHERE Src_CADocNo IN ({0}) and WorkPoint ='{1}'and InvCode in({2})
DELETE FROM ICSInvoiceNew WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint, objInvCode.TrimEnd(','));
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
/// <summary>
/// 删除对账单
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteDocNo(string keyValue, string WorkPoint)
{
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
string sql = string.Empty;
if (string.IsNullOrEmpty(msg))
{
sql = string.Format(@"DELETE FROM ICSInvoiceNewDetail WHERE DocNo IN ({0}) and WorkPoint ='{1}'
DELETE FROM ICSInvoiceNew WHERE DocNo IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
SqlHelper.ExecuteNonQuery(sql);
}
return msg;
}
/// <summary>
/// 删除对账单
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string UpdatePaperNo(string keyValue, string PaperNo, string WorkPoint, string dVouDate)
{
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
dVouDate = dVouDate.Substring(1, dVouDate.Length - 2);
string sql = string.Empty;
if (string.IsNullOrEmpty(msg))
{
sql = @"UPDATE ICSInvoiceNew SET PaperNo='{0}',dVouDate='{2}' WHERE DocNo={1}";
sql = string.Format(sql, PaperNo, keyValue.TrimEnd(','), dVouDate);
SqlHelper.ExecuteNonQuery(sql);
}
return msg;
}
public int UpDateByDocNo(string keyValue, string Status, string WorkPoint)
{
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
keyValue = keyValue.Substring(1, keyValue.Length - 2);
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
string sql = string.Empty;
// try
// {
// sql = @"select c.EATTRIBUTE2
// FROM ICSInvoiceNew a
// left join ICSInvoiceNewDetail b on a.DocNo=b.DocNo and a.WorkPoint=b.WorkPoint
// left join dbo.ICSCANewdetail c on b.Src_CadocNO=c.DocNO and b.WorkPoint=c.WorkPoint
// where a.DocNo={0}";
// DataTable dtcCode = SqlHelper.GetDataTableBySql(sql);
// for (int i = 0; i < dtcCode.Rows.Count; i++)
// {
// if (string.IsNullOrWhiteSpace(dtcCode.Rows[i]["EATTRIBUTE2"].ToString()))
// {
// throw new Exception("采购入库单已发生变更,请联系采购员!");
// }
// }
if (Status == "0")
{
sql = @"UPDATE ICSInvoiceNew SET STATUS = '{1}',PubUser = NULL,PubTime = NULL WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status);
}
else if (Status == "1")
{
sql = @"UPDATE ICSInvoiceNew SET STATUS = '{1}',PubUser = '{2}',PubTime = GETDATE() WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status, MUSER);
}
return SqlHelper.ExecuteNonQuery(sql);
//}
//catch (Exception ex)
//{
// throw new Exception(ex.Message);
//}
}
public void UpDateByDocNoBYPush(string keyValue, string Status, string WorkPoint)
{
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
keyValue = keyValue.Substring(1, keyValue.Length - 2);
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
//string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
// DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
// string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
// string DBName = dtU9.Rows[0]["DBName"].ToString();
string DBLANK = SqlHelper.GetItemsDetails("ERP001", WorkPoint);
string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", WorkPoint);
string sql = string.Empty;
try
{
//sql = @"select d.AutoID as EATTRIBUTE2
// FROM ICSInvoiceNew a
// left join ICSInvoiceNewDetail b on a.DocNo=b.DocNo and a.WorkPoint=b.WorkPoint
// left join dbo.ICSCANewdetail c on b.Src_CadocNO=c.DocNO and b.WorkPoint=c.WorkPoint
// left join {1}.dbo.RdRecords01 d on c.EATTRIBUTE1=d.AutoID
// where a.DocNo={0}";
sql = @"select d.AutoID as EATTRIBUTE2
FROM ICSInvoiceNew a
left join ICSInvoiceNewDetail b on a.DocNo=b.DocNo and a.WorkPoint=b.WorkPoint
left join dbo.ICSCANewdetail c on b.Src_CadocNO=c.DocNO and b.WorkPoint=c.WorkPoint AND b.Src_CADocLineNo=c.DocLineNo
LEFT JOIN " + Views + @" d ON c.EATTRIBUTE1 = d.AutoID
where a.DocNo in ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), DBLANK);
DataTable dtcCode = SqlHelper.GetDataTableBySql(sql);
for (int i = 0; i < dtcCode.Rows.Count; i++)
{
if (string.IsNullOrWhiteSpace(dtcCode.Rows[i]["EATTRIBUTE2"].ToString()))
{
throw new Exception("采购入库单已发生变更,请联系采购员!");
}
}
if (Status == "0")
{
sql = @"UPDATE ICSInvoiceNew SET STATUS = '{1}',PubUser = NULL,PubTime = NULL WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status);
}
else if (Status == "1")
{
sql = @"UPDATE ICSInvoiceNew SET STATUS = '{1}',PubUser = '{2}',PubTime = GETDATE() WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status, MUSER);
}
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
public int UpDateByDocNoAdmin(string keyValue, string Status)
{
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Empty;
if (Status == "2")
{
sql = @"UPDATE ICSInvoiceNew SET STATUS = '{1}',CAComptTime = GETDATE(),CAComptUser = '{2}',ModifyTime = GETDATE(),ModifyUser = '{2}'
WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status, MUSER);
}
else if (Status == "3")
{
sql = @"UPDATE ICSInvoiceNew SET STATUS = '{1}',CAComptTime = NULL,CAComptUser = NULL,ModifyTime =NULL,ModifyUser = NULL
WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), Status);
}
return SqlHelper.ExecuteNonQuery(sql);
}
public void Bookkeeping2(string keyValue, string PaperNo, string WorkPoint)
{
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", WorkPoint);
string DBLANK = SqlHelper.GetItemsDetails("ERP001", WorkPoint);
string sql = string.Empty;
string msg = string.Empty;
string U8ConnStr = string.Empty;
//根据站点选择需要生成发票的u8数据库
if (WorkPoint == "01")
{
U8ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString;
}
else if (WorkPoint == "02")
{
U8ConnStr = ConfigurationManager.ConnectionStrings["U8connstr02"].ConnectionString;
}
else if (WorkPoint == "03")
{
U8ConnStr = ConfigurationManager.ConnectionStrings["U8connstr03"].ConnectionString;
}
else
{
U8ConnStr = ConfigurationManager.ConnectionStrings["U8connstr"].ConnectionString;
}
keyValue = keyValue.Substring(1, keyValue.Length - 2);
PaperNo = PaperNo.Substring(1, PaperNo.Length - 2);
DateTime date = Convert.ToDateTime(DateTime.Now);
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
SqlConnection conn = new System.Data.SqlClient.SqlConnection(U8ConnStr);
conn.Open();
SqlTransaction sqlTran = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Transaction = sqlTran;
cmd.Connection = conn;
try
{
#region [查询发票号和供应商是否存在]
string cContactCode = string.Empty;
string cContactName = string.Empty;
string BIDocNo = keyValue.TrimEnd(',').Replace("'", "");
string[] PrintParas = BIDocNo.Split(',');
PaperNo = PaperNo.TrimEnd(',');
string[] PrintPara = PaperNo.Split(',');
string VenderCode = string.Empty;
for (int i = 0; i <= PrintParas.Length - 1; i++)
{
#region 判断入库单是否发生变更
sql = @"select d.AutoID as EATTRIBUTE2
FROM ICSInvoiceNew a
left join ICSInvoiceNewDetail b on a.DocNo=b.DocNo and a.WorkPoint=b.WorkPoint
left join dbo.ICSCANewdetail c on b.Src_CadocNO=c.DocNO and b.WorkPoint=c.WorkPoint
left join {1}.dbo.RdRecords01 d on c.EATTRIBUTE1=d.AutoID
where a.DocNo='{0}'";
sql = string.Format(sql, PrintParas[i].ToString(), DBLANK);
DataTable dtcCode = SqlHelper.GetDataTableBySql(sql);
for (int s = 0; s < dtcCode.Rows.Count; s++)
{
if (string.IsNullOrWhiteSpace(dtcCode.Rows[s]["EATTRIBUTE2"].ToString()))
{
throw new Exception("采购入库单已发生变更,请联系采购员!");
}
}
#endregion
#region [获取发票的供应商编码]
sql = @"SELECT SupplierCode FROM ICSInvoiceNew WHERE DocNo = '{0}'";
sql = string.Format(sql, PrintParas[i].ToString());
DataTable dtVender = SqlHelper.GetDataTableBySql(sql);
if (dtVender != null && dtVender.Rows.Count > 0 && !string.IsNullOrWhiteSpace(dtVender.Rows[0][0].ToString()))
VenderCode = dtVender.Rows[0][0].ToString();
#endregion
string sqlPurBillVouch = @"SELECT * FROM PurBillVouch WHERE cPBVCode = {0}";
sqlPurBillVouch = string.Format(sqlPurBillVouch, PrintPara[i].ToString().Trim());
DataTable dtPurBillVouch = SqlHelper.GetDataTableBySqlWithConn(U8ConnStr, sqlPurBillVouch);
if (dtPurBillVouch != null && dtPurBillVouch.Rows.Count > 0 && !string.IsNullOrWhiteSpace(dtPurBillVouch.Rows[0][0].ToString()))
{
throw new Exception("发票号" + PrintPara[i].ToString().Trim() + "已存在!");
}
else
{
string sqlVendor = @"SELECT a.cVenCode,b.cContactCode,b.cContactName
FROM Vendor a
LEFT JOIN Ven_Contact b ON a.cVenPerson = b.cContactName
WHERE a.cVenCode='{0}'";
sqlVendor = string.Format(sqlVendor, VenderCode);
DataTable dtVendor = SqlHelper.GetDataTableBySqlWithConn(U8ConnStr, sqlVendor);
if (dtVendor != null && dtVendor.Rows.Count > 0)
{
if (string.IsNullOrWhiteSpace(dtVendor.Rows[0]["cVenCode"].ToString()))
{
throw new Exception("发票号" + PrintParas[i].ToString() + "U8供应商不存在!");
}
//else if (string.IsNullOrWhiteSpace(dtVendor.Rows[0]["cContactCode"].ToString()))
//{
// throw new Exception("发票号" + PrintParas[i].ToString() + "U8供应商联系人不存在!");
//}
else
{
cContactCode = dtVendor.Rows[0]["cContactCode"].ToString();
cContactName = dtVendor.Rows[0]["cContactName"].ToString();
}
}
}
#endregion
#region [回写U8发票]
sql = @"SELECT DISTINCT a.invcode as cinvcode ,b.DocNo,e.InvoiceType,e.SupplierCode,e.Tax,e.ComptUser,c.CreatePerson,f. VenPayCond cVenPayCond,f.VenBank cVenBank,f.VenAccount cVenAccount,c.DepCode GroupCode,c.POCode,
h.cCode as ReturnDoc,
g.irowno as ReturnDocLine,
e.dVouDate,a.Qty as Qty,c.POType SubjectCode
--g.iQuantity as Qty
from ICSInvoiceNewDetail a
LEFT JOIN ICSInvoiceNew e ON a.DocNo = e.DocNo AND a.WorkPoint = e.WorkPoint
LEFT JOIN ICSCANEWdetail b ON a.Src_Cadocno=b.DocNo and a.InvCode =b.InvCode AND a.sRC_CadocLineNO=b.DocLineNo
--LEFT JOIN view_PoMain b ON a.ASNNo = b.DNNO AND a.InvCode = b.InvCode
LEFT JOIN dbo.ICSPurchaseOrder c ON b.POCode=c.POCode AND b.PORow=c.Sequence
LEFT JOIN dbo.ICSVendor f ON c.VenCode=f.VenCode AND c.WorkPoint=f.WorkPoint
-- LEFT JOIN {1}.dbo.rdrecords01 g ON b.EATTRIBUTE1=g.AutoID
--LEFT JOIN {1}.dbo.rdrecord01 h ON g.ID=h.ID
LEFT JOIN (SELECT irowno,iQuantity,AutoID,ID FROM {1}.dbo.rdrecords01 )g ON b.EATTRIBUTE1=g.AutoID
LEFT JOIN (SELECT cCode,ID FROM {1}.dbo.rdrecord01) h ON g.ID=h.ID
WHERE a.DocNO = '{0}'";
sql = string.Format(sql, PrintParas[i].ToString(), DBLANK);
DataTable dt = SqlHelper.GetDataTableBySql(sql);
//int id = 0, did = 0;
//string cVouchType = "PURBILL";
string cAcc_Id = U8ConnStr.Substring(U8ConnStr.IndexOf("UFDATA_") + 7, 3);
//FindInvoiceIDFromERP(U8ConnStr, cVouchType, cAcc_Id, dt.Rows.Count, out id, out did);
//判断是否在U8中开票过
string ISPUR = @" select * from " + Views + @" v
LEFT JOIN ICSCANEWdetail b ON b.EATTRIBUTE1=v.AutoID
LEFT JOIN ICSInvoiceNewDetail c ON c.Src_Cadocno = b.DocNo and c.Src_CADocLineNo=b.DocLineNo AND b.WorkPoint = c.WorkPoint
LEFT JOIN ICSInvoiceNew e ON c.DocNo = e.DocNo AND c.WorkPoint = e.WorkPoint
where e.DocNO ='{0}'";
ISPUR = string.Format(ISPUR, PrintParas[i].ToString(), DBLANK);
DataTable dtPUR = SqlHelper.GetDataTableBySql(ISPUR);
if (dtPUR == null || dtPUR.Rows.Count <= 0)
{
throw new Exception("发票号:" + PrintPara[i].ToString().Trim() + "中的入库单已在U8中开票,无法记账!");
}
sql = "";
string SqlDetail = "";
if (dt != null)
{
Dictionary<string, int> dic = SqlHelper.GetAllCode("" + cAcc_Id + "", "PURBILL", "" + dt.Rows.Count + "");
int iFatherId = Convert.ToInt32(dic["iFatherId"].ToString());
int iChildId = Convert.ToInt32(dic["iChildId"].ToString());
#region [主表]
string cPBVBillType = dt.Rows[0]["InvoiceType"].ToString();
string SubjectCode = dt.Rows[0]["SubjectCode"].ToString();
string cVenCode = dt.Rows[0]["SupplierCode"].ToString();
string iPBVTaxRate = dt.Rows[0]["Tax"].ToString();
string cPBVMaker = dt.Rows[0]["CreatePerson"].ToString();
if (string.IsNullOrWhiteSpace(cPBVMaker))
{
throw new Exception("发票号" + PrintParas[i].ToString() + "制单人不存在!");
}
string DepCode = dt.Rows[0]["GroupCode"].ToString();//部门编码
string VenPayCond = dt.Rows[0]["cVenPayCond"].ToString();//支付方式
string cVenBank = dt.Rows[0]["cVenBank"].ToString();//银行
string cVenAccount = dt.Rows[0]["cVenAccount"].ToString();//银行账号
string dVouDate = dt.Rows[0]["dVouDate"].ToString();//开票时间
// string sqlErp = @" INSERT INTO PurBillVouch (PBVID,cPBVBillType,cPBVCode,cPTCode,dPBVDate,
// cVenCode,cUnitCode,cexch_name,cExchRate,iPBVTaxRate,cPBVMemo,cInCode,cBusType,
// cPBVMaker,bNegative,bOriginal,bFirst,iVTid,cSource,iDiscountTaxType,
// cContactCode,cVenPerson,IsWfControlled)
// select {0},'{1}',{2},'99',GETDATE(),
// '{3}','{3}','人民币',1,{4},'',cCode,'普通采购',
// '{5}',0,0,0,8163,'采购','{6}','{7}','{8}',0
// from RdRecord01 a
// Left join RdRecords01 b on a.ID =b.ID
// Where cCode ='{9}'and irowno='{10}'";
string sqlErp = "";
if (VenPayCond != "")
{
sqlErp = @" INSERT INTO PurBillVouch (PBVID,cPBVBillType,cPBVCode,cPTCode,dPBVDate,
cVenCode,cUnitCode,cexch_name,cExchRate,iPBVTaxRate,cPBVMemo,cInCode,cBusType,
cPBVMaker,bNegative,bOriginal,bFirst,iVTid,cSource,iDiscountTaxType,
cContactCode,cVenPerson,IsWfControlled,cDepCode,cPayCode ,cVenAccount
,cVenBank,dVouDate,cPersonCode )
VALUES({0},'{1}',{2},'{14}',CONVERT(varchar(12),GETDATE(),23),
'{3}','{3}','人民币',1,{4},'','cInCode','普通采购',
'{5}',0,0,0,131468,'采购',0
,'{7}','{8}',0,'{9}','{10}','{11}','{12}','{13}','{15}')";
}
else
{
sqlErp = @" INSERT INTO PurBillVouch (PBVID,cPBVBillType,cPBVCode,cPTCode,dPBVDate,
cVenCode,cUnitCode,cexch_name,cExchRate,iPBVTaxRate,cPBVMemo,cInCode,cBusType,
cPBVMaker,bNegative,bOriginal,bFirst,iVTid,cSource,iDiscountTaxType,
cContactCode,cVenPerson,IsWfControlled,cDepCode,cPayCode ,cVenAccount,
cVenBank,dVouDate,cPersonCode )
VALUES({0},'{1}',{2},'{14}',CONVERT(varchar(12),GETDATE(),23),
'{3}','{3}','人民币',1,{4},'','cInCode','普通采购',
'{5}',0,0,0,131468,'采购',0
,'{7}','{8}',0,'{9}',NUll,'{11}','{12}','{13}','{15}')";
}
sqlErp = string.Format(sqlErp, iFatherId, cPBVBillType, PrintPara[i].ToString().Trim(), cVenCode, Convert.ToDecimal(iPBVTaxRate),
cPBVMaker, cPBVBillType, cContactCode, cContactName, DepCode, VenPayCond, cVenAccount, cVenBank, dVouDate, SubjectCode, MUSER);
cmd.CommandText = sqlErp;
try
{
int count = cmd.ExecuteNonQuery();
if (count <= 0)
{
throw new Exception("发票号" + PrintParas[i].ToString() + "生成发票单表头失败,受影响行数<=0;");
}
}
catch (Exception ex)
{
throw new Exception("发票号" + PrintParas[i].ToString() + "生成发票单表头失败!异常:" + ex.Message + ";SQL:\r\n" + sql, ex);
}
//int main = SqlHelper.ExecuteNonQueryWithConn(U8ConnStr, sqlErp);
//if (main <= 0)
// msg = "主表插入失败!";
#region [子表]
int rowCount = 0;
foreach (DataRow row in dt.Rows)
{
rowCount++;
//string ReturnDoc = row["ReturnDoc"].ToString();
//string ReturnDocLine = row["ReturnDocLine"].ToString();
string cInvCode = row["cinvcode"].ToString();
decimal iPBVQuantity = Convert.ToDecimal(row["Qty"].ToString());
string ReturnDoc = row["ReturnDoc"].ToString();
string ReturnDocLine = row["ReturnDocLine"].ToString();
//string cPBVBillType = dt.Rows[0]["InvoiceType"].ToString();
//string iPBVTaxRate = dt.Rows[0]["Tax"].ToString();
//decimal taxPrice = Convert.ToDecimal(row["TaxPriceSell"].ToString());
//decimal price = 0;
//decimal iOriMoney = 0;
//decimal iOriTaxPrice = 0;
//decimal ioriSum = 0;
//decimal tax = Convert.ToDecimal(iPBVTaxRate) / 100;
//if (cPBVBillType == "01")
//{
// price = taxPrice / (1 + tax);//无税单价
// iOriMoney = Math.Round(price * iPBVQuantity, 2, MidpointRounding.AwayFromZero);//金额
// iOriTaxPrice = Math.Round(decimal.Parse(iOriMoney.ToString()) * tax, 2, MidpointRounding.AwayFromZero);//税额
// ioriSum = Math.Round(decimal.Parse(taxPrice.ToString()) * iPBVQuantity, 2, MidpointRounding.AwayFromZero);//价税合计
//}
//else
//{
// price = taxPrice - taxPrice * tax;
// iOriMoney = Math.Round(price * iPBVQuantity, 2, MidpointRounding.AwayFromZero);//金额
// iOriTaxPrice = Math.Round(taxPrice * tax * iPBVQuantity, 2, MidpointRounding.AwayFromZero);//税额
// ioriSum = Math.Round(decimal.Parse(taxPrice.ToString()) * iPBVQuantity, 2, MidpointRounding.AwayFromZero);//价税合计
//}
string sqlErps = @"
INSERT INTO PurBillVouchs
(ID,PBVID,cInvCode,bExBill,iPBVQuantity,
iNum,iOriCost,iOriTaxCost,iOriTaxPrice,iOriMoney,
iOriSum,iCost,iMoney,iTaxPrice,iSum,
iTaxRate,RdsId,UpSoType,bCosting,bTaxCost,
iinvexchrate,brettax,ivouchrowno,iPOsID)
select {0},{1},'{2}', 0,{3},
0,b.iOriCost,
ROUND(iOriTaxCost,4) AS iOriTaxCost,--原币含税单价
ROUND(iOriTaxPrice,2) AS iOriTaxPrice ,--原币税额
ROUND(iOriMoney,2)AS iOriMoney,--原币金额
ROUND(b.iOriSum,2) AS iOriSum,--原币价税合计
ROUND(iUnitCost,4) AS iCost,--本币无税单价
ROUND(b.iPrice,2) AS iMoney,--本币金额
ROUND(iTaxPrice,2) AS iTaxPrice, --本币税额 
--round(round(round(iOriCost*a.iExchRate,4)*{3} ,2)*(1+b.iTaxRate /100),2) AS iSum,
round(b.iSum,2) AS iSum,--本币价税合计
b.iTaxRate,
b.AutoID ,'rd',0,1,0,
0,{4},b.iPOsID
from RdRecord01 a
Left join RdRecords01 b on a.ID =b.ID
LEFT JOIN dbo.exch z ON a.cExch_Name =z.cexch_name AND z.itype='2' AND z.iYear='{7}' AND z.iperiod='{8}'
Where cCode ='{5}'and irowno='{6}'";
sqlErps += @"update b set iSumBillQuantity=isnull(c.iPBVQuantity,0)
from RdRecord01 a inner join RdRecords01 b on a.id=b.ID
Left join RdRecord01 d on a.ID =d.ID
left join (
select RdsId,sum(isnull(iPBVQuantity ,0)) iPBVQuantity from PurBillVouchs group by RdsId) c on b.autoid=c.RdsId
Where d.cCode ='{5}'and b.irowno='{6}'";
sqlErps = string.Format(sqlErps, iChildId, iFatherId, cInvCode, iPBVQuantity, rowCount, ReturnDoc, ReturnDocLine, date.Year, date.Month);
cmd.CommandText = sqlErps;
try
{
int count = cmd.ExecuteNonQuery();
if (count <= 0)
{
throw new Exception("发票号" + PrintParas[i].ToString() + "生成发票单表体失败,受影响行数<=0;");
}
}
catch (Exception ex)
{
throw new Exception("发票号" + PrintParas[i].ToString() + "生成发票单表体失败!异常:" + ex.Message + ";SQL:\r\n" + sql, ex);
}
//int sub = SqlHelper.ExecuteNonQueryWithConn(U8ConnStr, sqlErps);
//if (sub <= 0)
// msg = "子表插入失败!";
iChildId--;
}
SqlDetail = @"update x set iInvQTY=y.iQuantity,fPoValidQuantity=y.iQuantity
from PO_Podetails x inner join (
select a.iPOsID ,sum(a.iQuantity)iQuantity from RdRecords01 a right join PurBillVouchs b on a.autoid=b.RdsId
inner join PurBillVouch c on b.pbvid=c.pbvid where cPBVCode in ({0})
group by a.iPOsID) y on x.ID=y.iPOsID
";
SqlDetail += @"update aa set iInvMoney=bb.iOriSum,iNatInvMoney=bb.iSum
from PO_Podetails aa
right join
(select iPOsID,sum(isnull(iOriSum ,0)) as iOriSum,sum(isnull(iSum ,0)) as iSum
from PurBillVouch a inner JOIN PurBillVouchs b on a.pbvid=b.pbvid
where cPBVCode in ({0})
group by iPOsID) bb on aa.id=bb.iPOsID
";
SqlDetail = string.Format(SqlDetail, PrintPara[i].ToString().Trim());
cmd.CommandText = SqlDetail;
try
{
int count = cmd.ExecuteNonQuery();
if (count <= 0)
{
throw new Exception("发票号" + PrintParas[i].ToString() + "回写采购订单失败,受影响行数<=0;");
}
}
catch (Exception ex)
{
throw new Exception("发票号" + PrintParas[i].ToString() + "回写采购订单失败!异常:" + ex.Message + ";SQL:\r\n" + sql, ex);
}
//int subqty = SqlHelper.ExecuteNonQueryWithConn(U8ConnStr, SqlDetail);
//if (subqty <= 0)
// msg = "回写采购订单失败!";
#endregion
}
#endregion
}
cmd.Transaction.Commit();
#endregion
#region [更新发票状态和信息]
sql = @"UPDATE ICSInvoiceNew SET Status = '2',ModifyUser = '{1}',ModifyTime = GETDATE(),
ComptUser = '{1}',ComptTime = GETDATE(),IsERP = 1
WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','), MUSER);
SqlHelper.ExecuteNonQuery(sql);
#endregion
}
catch (Exception ex)
{
string sqlError = @"UPDATE ICSInvoiceNew SET Status = '1',ModifyUser = NULL,ModifyTime = NULL,
ComptUser = NULL,ComptTime = NULL,IsERP = NULL
WHERE DocNo IN ({0})";
sqlError = string.Format(sqlError, keyValue.TrimEnd(','));
SqlHelper.ExecuteNonQuery(sqlError);
msg += ex.Message;
cmd.Transaction.Rollback();
throw new Exception(ex.Message);
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
conn.Dispose();
}
}
public string Bookkeeping(string keyValue, string PaperNo, string WorkPoint)
{
string sql = string.Empty;
string sqlUp = string.Empty;
string msg = string.Empty;
keyValue = keyValue.Substring(1, keyValue.Length - 2);
DateTime date = Convert.ToDateTime(DateTime.Now);
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
try
{
sql = @"SELECT DISTINCT
a.DocNo+a.WorkPoint as Costre,
a.DocNo,a.WorkPoint,
e.PaperNo,
e.InvoiceType cPBVBillType,
e.SupplierCode cVenCode,cast(e.Tax as nvarchar(50)) iPBVTaxRate,
e.ComptUser,f. VenPayCond ,f.VenBank cVenBank,
f.VenAccount cVenAccount,c.DepCode DepCode,
e.dVouDate dPBVDate
,c.POType SubjectCode,
a.invcode as cInvCode ,
cast(a.Qty as nvarchar(50)) as iPBVQuantity,
b.EATTRIBUTE2 as ReturnDocID,
b.EATTRIBUTE1 as ReturnDocLineID,
cast(year(GETDATE()) as nvarchar(50)) [Year],
cast(MONTH(GETDATE()) as nvarchar(50)) [Month],
b.DeductionAmount
INTO #TempERP
from ICSInvoiceNewDetail a
LEFT JOIN ICSInvoiceNew e ON a.DocNo = e.DocNo AND a.WorkPoint = e.WorkPoint
LEFT JOIN ICSCANEWdetail b ON a.Src_Cadocno=b.DocNo and a.InvCode =b.InvCode AND a.sRC_CadocLineNO=b.DocLineNo
LEFT JOIN dbo.ICSPurchaseOrder c ON b.POCode=c.POCode AND b.PORow=c.Sequence
LEFT JOIN dbo.ICSVendor f ON c.VenCode=f.VenCode AND c.WorkPoint=f.WorkPoint
where a.DocNo in (" + keyValue.TrimEnd(',') + @")
select distinct Costre,WorkPoint,cPBVBillType,PaperNo as cPBVCode,dPBVDate,cVenCode,iPBVTaxRate,'" + MUSERName + "' as cPBVMaker, '" + MUSER + "' as cContactCode,'" + MUSER + @"' as MUSER,SubjectCode,getdate(),cVenBank,cVenAccount,VenPayCond,DepCode,'' as cContactName FROM #TempERP
select Costre, WorkPoint,cInvCode,iPBVQuantity, ReturnDocID,ReturnDocLineID,Year,Month,DeductionAmount FROM #TempERP
DROP TABLE #TempERP";
DataSet DSet = SqlHelper.GetDataSetBySql(sql);
string Inputstr = SqlHelper.DataSetToJson(DSet, "details", "Costre");
string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "PurBillVouch/Create";
string result = HttpPost(APIURL, Inputstr);
JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
string MessAge = Obj["Message"].ToString();
string Success = Obj["Success"].ToString();
if (Success.ToUpper() == "FALSE")
{
throw new Exception("ERP接口调用失败:" + MessAge);
}
else
{
sqlUp = @"UPDATE ICSInvoiceNew SET Status = '2',ModifyUser = '{1}',ModifyTime = GETDATE(),
ComptUser = '{1}',ComptTime = GETDATE(),IsERP = 1
WHERE DocNo IN ({0})";
sqlUp = string.Format(sqlUp, keyValue.TrimEnd(','), MUSER);
SqlHelper.ExecuteNonQuery(sqlUp);
}
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
public static string HttpPost(string url, string body)
{
try
{
Encoding encoding = Encoding.UTF8;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
request.ContentType = "application/json; charset=utf-8";
byte[] buffer = encoding.GetBytes(body);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
{
return reader.ReadToEnd();
}
}
catch (WebException ex)
{
throw new Exception(ex.Message);
}
}
public int ReturnByDocNo(string keyValue, string WorkPoint)
{
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = @"UPDATE ICSInvoiceNew SET Status = '3',IsERP = NULL
WHERE DocNo IN ({0})";
sql = string.Format(sql, keyValue.TrimEnd(','));
return SqlHelper.ExecuteNonQuery(sql);
}
// public static void FindInvoiceIDFromERP(string connectstring, string IDtype, string cAcc_id, int rowCount, out int id, out int DID)
// {
// try
// {
// string str = @"DECLARE @ID int
// DECLARE @DID int
// SET @ID = 0
// SET @DID = 0
//
// IF NOT EXISTS (SELECT * FROM ufsystem..ua_identity WHERE cacc_id = '{0}' AND cVouchType = '{1}')
// BEGIN
// INSERT INTO ufsystem..ua_identity(cAcc_Id,cVouchType,iFatherId,iChildId) VALUES('{0}','{1}',1,1)
//
// SELECT @ID = ifatherID + 1 ,@DID = ichildID + {2}
// FROM ufsystem..ua_identity
// WHERE cVouchType = '{1}'
// AND cAcc_id = '{0}'
// END
// ELSE
// BEGIN
// UPDATE ufsystem..ua_identity
// SET ifatherID = ifatherID + 1,ichildID = ichildID + {2}
// WHERE cVouchType = '{1}' AND cAcc_id = '{0}'
// END
// select ifatherID ID,ichildID DID FROM ufsystem..ua_identity
// WHERE cVouchType = '{1}' AND cAcc_id = '{0}' ";
// str = string.Format(str, cAcc_id, IDtype, rowCount.ToString());
// DataTable dt = SqlHelper.GetDataTableBySqlWithConn(connectstring, str);
// if (dt.Rows.Count == 0)
// {
// throw new Exception("ID取得失败");
// }
// id = Convert.ToInt32(dt.Rows[0]["ID"]) + 1000000000;
// DID = Convert.ToInt32(dt.Rows[0]["DID"]) + 1000000000;
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// }
public string ChangeStatusBySTNO(string keyValue)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Empty;
sql = "SELECT STNO FROM dbo.ICSPOArrive WHERE STNO IN (" + keyValue.TrimEnd(',') + ")";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
foreach (DataRow dr in dt.Rows)
{
string STNO = dr["STNO"].ToString();
if (!string.IsNullOrEmpty(STNO))
{
msg += "送货单号:" + STNO + "已生成到货单,无法删除!";
}
}
if (string.IsNullOrEmpty(msg))
{
sql = string.Format(@"DELETE FROM dbo.ICSASNDETAIL WHERE STNO IN ({0}) and WorkPoint ='{1}'
DELETE FROM dbo.ICSASN WHERE STNO IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
SqlHelper.ExecuteNonQuery(sql);
}
return msg;
}
/// <summary>
/// 删除送货单
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
public string DeleteCartonNo(string keyValue)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Format(@"SELECT * FROM dbo.ICSASNDETAIL
WHERE LOTNO IN (
SELECT LotNO FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}') and WorkPoint='{1}'", keyValue.TrimEnd(','), WorkPoint);
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt == null || dt.Rows.Count <= 0)
{
sql = string.Format(@"DELETE FROM dbo.ICSCarton WHERE CartonNO in ({0}) and WorkPoint='{1}'
DELETE FROM dbo.ICSITEMLot2Carton WHERE CartonNO in ({0}) and WorkPoint='{1}' ", keyValue.TrimEnd(','), WorkPoint);
DbHelper.ExecuteNonQuery(CommandType.Text, sql);
}
else
{
msg = "所选箱号中已有加入送货单中,请先在送单号中删除!";
}
return msg;
}
/// <summary>
/// 选择明细
/// </summary>
/// <returns></returns>
/// 增加EATTRIBUTE2记录入库单号 判断U8入库单是否有更改
public DataTable GetInfoByVenCode(string queryJson, ref Pagination jqgridparam, string WorkPoint)
{
var queryParam = queryJson.ToJObject();
WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
List<DbParameter> parameter = new List<DbParameter>();
//string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
//DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
//string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
//string DBName = dtU9.Rows[0]["DBName"].ToString();
string DBLANK = SqlHelper.GetItemsDetails("ERP001", WorkPoint);
string Views = SqlHelper.GetItemsDetails("ViewsWorkpoint", WorkPoint);
// string sql = @"SELECT b.ID,a.DocNo AS ASDocNo,c.InvCode,d.InvName,d.InvStd,
// sum(CAST(b.qty AS DECIMAL(18,2))) AS RkQty,
// d.InvUnit InvUom,CAST(c.UnitPrice AS DECIMAL(18,2)) AS PoPrice,
// CAST(c.UnitPrice*a.Tax AS DECIMAL(18,2)) AS TotalPrice,
// CONVERT(VARCHAR(100),a.MTIME,23) AS ASDate,
// CASE a.Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
// c.POCode AS POCode,CONVERT(VARCHAR(100),c.ReleaseDate,23) AS PODate,a.SupplierCode,f.AutoID as EATTRIBUTE2
// FROM ICSCANew a
// INNER JOIN ICSCANewDetail b ON a.DocNo = b.DocNo
// left join {0}.dbo.RdRecords01 f on b.EATTRIBUTE1=f.AutoID
// LEFT JOIN dbo.ICSPurchaseOrder c ON b.pocode = c.pocode AND b.porow=c.Sequence
//LEFT JOIN ICSINVENTORY d ON c.invCode=d.invCode AND d.WorkPoint=c.WorkPoint
// LEFT JOIN ICSInvoiceNewDetail e ON b.DocNo=e.Src_CADocNo AND b.DocLineNo=e.Src_CADocLineNo
// WHERE 1=1 AND a.Status = 2 AND e.DocNo IS NULL";
string sql = @"SELECT b.ID,a.DocNo AS ASDocNo,c.InvCode,d.InvName,d.InvStd,
sum(CAST(b.qty AS DECIMAL(18,2))) AS RkQty,
d.InvUnit InvUom,CAST(c.UnitPrice AS DECIMAL(18,2)) AS PoPrice,
CAST(c.UnitPrice*a.Tax AS DECIMAL(18,2)) AS TotalPrice,
CONVERT(VARCHAR(100),a.MTIME,23) AS ASDate,
CASE a.Status WHEN 0 THEN '开立' WHEN 1 THEN '发布' WHEN 2 THEN '完成' WHEN 3 THEN '退回' END STATUS,
c.POCode AS POCode,CONVERT(VARCHAR(100),c.ReleaseDate,23) AS PODate,a.SupplierCode,f.AutoID as EATTRIBUTE2
FROM ICSCANew a
INNER JOIN ICSCANewDetail b ON a.DocNo = b.DocNo
LEFT JOIN " + Views + @" f ON b.EATTRIBUTE1=f.AutoID
LEFT JOIN dbo.ICSPurchaseOrder c ON b.pocode = c.pocode AND b.porow=c.Sequence
LEFT JOIN ICSINVENTORY d ON c.invCode=d.invCode AND d.WorkPoint=c.WorkPoint
LEFT JOIN ICSInvoiceNewDetail e ON b.DocNo=e.Src_CADocNo AND b.DocLineNo=e.Src_CADocLineNo
WHERE 1=1 AND a.Status = 2 AND e.DocNo IS NULL";
// --AND a.STNO NOT IN (SELECT Src_ASNDocNo FROM ICSCADetail) AND a.SupplierCode = '51085'
if (!string.IsNullOrEmpty(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["ASDocNo"].ToString()))
sql += " AND a.DocNo like '%" + queryParam["ASDocNo"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
sql += " AND c.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
//if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
// sql += " AND c.InvName like '%" + queryParam["InvName"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
sql += " AND d.InvName like '%" + queryParam["InvName"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
sql += " AND c.POCode like '%" + queryParam["POCode"].ToString() + "%'";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
sql += " AND a.SupplierCode in (SELECT VenCode FROM ICSVendor where VenName = '" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
else
sql += " AND a.SupplierCode = '" + queryParam["VenCode"].ToString() + "'";
sql += " AND a.WorkPoint='" + WorkPoint + "'";
sql += @" GROUP BY b.ID,a.DocNo,c.InvCode,d.InvName,d.InvStd,d.InvUnit,c.UnitPrice,a.MTIME,a.Status,
c.POCode,c.ReleaseDate,a.SupplierCode,a.Tax,f.AutoID ";
sql = string.Format(sql, DBLANK);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 获取供应商列表
/// </summary>
/// <returns></returns>
public DataTable GetVendor()
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string sql = @"
select '' as F_VenCode,'' as cVenName
union all
SELECT DISTINCT a.F_VenCode,isnull(b.VenName,'') as cVenName FROM dbo.Sys_SRM_User a
LEFT JOIN dbo.ICSVendor b ON a.F_VenCode=b.VenCode and a.F_Location=b.WorkPoint
WHERE a.F_VenCode IS NOT NULL AND a.F_VenCode <>''";
string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
if (role != "admin")
{
sql += " and b.WorkPoint in (" + WorkPoint + ")";
}
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public string GetDocNo(string InvoiceType, string WorkPoint, string Vendor)
{
string DocNo = string.Empty;
//string SupplierCode = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
string SupplierName = string.Empty;
if (!string.IsNullOrEmpty(Vendor))
{
string Date = DateTime.Now.ToString("yy");
string Pre = "BI" + Vendor + Date;
DocNo = GetSerialCode(WorkPoint, "ICSInvoiceNew", "DocNo", Pre, 5);
SupplierName = GetSupplierName(Vendor, WorkPoint);
}
if (!string.IsNullOrEmpty(DocNo))
{
string sql = string.Empty;
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
sql = @"INSERT INTO ICSInvoiceNew (ID,DocNo,Status,BizType,SupplierCode,SupplierName,Tax,InvoiceType,MUSER,MUSERName,MTIME,WorkPoint)
VALUES (NEWID(),'{0}',0,0,'{1}','{2}',17,'{3}','{4}','{5}',GETDATE(),'{6}')";
sql = string.Format(sql, DocNo, Vendor, SupplierName, InvoiceType, MUSER, MUSERNAME, WorkPoint);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
return DocNo;
}
public string GetDocNoByPerson(string SupplierCode, string InvoiceType, string WorkPoint)
{
string DocNo = string.Empty;
string Date = DateTime.Now.ToString("yy");
string Pre = "BI" + SupplierCode + Date;
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DocNo = GetSerialCode(WorkPoint, "ICSInvoiceNew", "DocNo", Pre, 5);
if (!string.IsNullOrEmpty(DocNo))
{
string sql = string.Empty;
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string SupplierName = GetSupplierName(SupplierCode, WorkPoint);
sql = @"INSERT INTO ICSInvoiceNew (ID,DocNo,Status,BizType,SupplierCode,SupplierName,Tax,InvoiceType,MUSER,MUSERName,MTIME,WorkPoint)
VALUES (NEWID(),'{0}',0,0,'{1}','{2}',0,'{3}','{4}','{5}',GETDATE(),'{6}')";
sql = string.Format(sql, DocNo, SupplierCode, SupplierName, InvoiceType, MUSER, MUSERNAME, WorkPoint);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
return DocNo;
}
public string GetSupplierName(string SupplierCode, string WorkPoint)
{
string sql = @"SELECT VenName as cVenName FROM ICSVendor WHERE VenCode = '{0}' and WorkPoint='{1}'";
sql = string.Format(sql, SupplierCode, WorkPoint);
try
{
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrEmpty(dt.Rows[0][0].ToString()))
return dt.Rows[0][0].ToString();
else
return "";
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
public string CheckSTNO_ItemCode(string JsonData, string DocNo, string WorkPoint)
{
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 = @"INSERT INTO ICSCADetail(ID,DocNo,DocLineNo,Src_ASNDocNo,Src_ASNDocLineNo,
// InvCode,Qty,InvUom,MUSER,MUSERName,MTIME,WorkPoint)
// SELECT NEWID(),'{0}',[送货单行],[送货单号],[送货单行],[条码号],[条码数量],[单位],
// '{1}','{2}',GETDATE(),'{3}'
// FROM view_PoMain
// WHERE [条码号] IN (" + JsonData.TrimEnd(',') + ")";
// sql = string.Format(sql, DocNo, MUSER, MUSERNAME, WorkPoint);
string[] PrintParas = JsonData.TrimEnd(',').Split(',');
for (int i = 0; i < PrintParas.Length; i++)
{
sql += @"INSERT INTO ICSInvoiceNewDetail (ID,DocNo,DocLineNo,Src_CADocNo,Src_CADocLineNo,InvCode,Qty,InvUom,
TaxPriceSell,TotalMoneySell,MUSER,MUSERName,MTIME,WorkPoint)
SELECT NEWID(),'{0}',1,a.DocNo,b.DocLineNo,c.InvCode,
CAST(b.qty AS DECIMAL(18,2)) AS RkQty,d.InvUnit,
CAST(c.UnitPrice AS DECIMAL(18,2)) AS PoPrice,
CAST(c.UnitPrice*b.Qty AS DECIMAL(18,2)) AS TotalPrice,'{1}','{2}',GETDATE(),'{3}'
FROM ICSCANew a
LEFT JOIN ICSCANewDetail b ON a.DocNo = b.DocNo
LEFT JOIN ICSPurchaseOrder c ON b.pocode = c.pocode AND b.porow=c.Sequence
LEFT JOIN ICSINVENTORY d ON c.invCode=d.invCode AND d.WorkPoint=c.WorkPoint
WHERE b.ID in({4})";
sql += @"UPDATE ICSInvoiceNew SET Tax=b.Tax from
(select a.Tax from dbo.ICSCANew a
LEFT JOIN ICSCANewDetail b ON a.DOcNo=b.DOcNo AND a.WorkPoint=b.WorkPoint
WHERE b.ID = {4}) b
Where ICSInvoiceNew.DocNo='{0}'";
sql = string.Format(sql, DocNo, MUSER, MUSERNAME, WorkPoint, PrintParas[i]);
}
try
{
SqlHelper.CmdExecuteNonQueryLi(sql);
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
public string CheckSTNO_CartonNo(string JsonData, string STNO)
{
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 = @"INSERT INTO dbo.ICSASNDETAIL
( ASNDETAILID ,CREATEDATE ,CREATETIME ,CREATEUSER ,
ITEMCODE ,ITEMNAME ,LOGDATE ,LOGTIME ,LOGUSER ,
LOTNO ,PLANQTY ,STDSTATUS ,STLINE ,
STNO ,WorkPoint)
SELECT NEWID(),GETDATE(),GETDATE(),'" + MUSER + @"',
a.INVCODE,b.INVNAME,GETDATE(),GETDATE(),'" + MUSER + @"',
a.LotNO,c.LOTQTY,'0',0,
'" + STNO + "','" + WorkPoint + @"'
FROM dbo.ICSITEMLot2Carton a
LEFT JOIN dbo.ICSINVENTORY b ON a.INVCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
WHERE a.CartonNO IN (" + JsonData.TrimEnd(',') + ") and a.WorkPoint='" + WorkPoint + "'";
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
/// <summary>
/// 获取箱号主表信息
/// </summary>
/// <param name="queryJson"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetCartonGridJson(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT Serial,a.CartonNO,CartonStatus,PrintTimes,
lastPrintTime,a.MUSERName,a.MTIME,EATTRIBUTE8
FROM dbo.ICSCarton a
LEFT JOIN
(SELECT COUNT(x.LotNO) AS LotNoCount,CartonNO,x.WorkPoint FROM dbo.ICSITEMLot2Carton x
LEFT JOIN dbo.ICSITEMLot y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
GROUP BY CartonNO,x.WorkPoint) b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
WHERE b.LotNoCount>0 and a.EATTRIBUTE3='SRM'
AND a.CartonNo not IN
(SELECT b.CartonNO FROM dbo.ICSASNDETAIL a inner JOIN dbo.ICSITEMLot2Carton b ON a.LOTNO =b.LotNO AND a.WorkPoint=b.WorkPoint)
";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["CartonNo"].ToString()))
{
sql += " and a.CartonNO like '%" + queryParam["CartonNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["OrderNo"].ToString()))
{
sql += " and b.OrderNO like '%" + queryParam["OrderNo"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TransNo"].ToString()))
{
sql += " and b.TransNO like '%" + queryParam["TransNO"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TransLine"].ToString()))
{
sql += " and b.TransLine like '%" + queryParam["TransLine"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
{
sql += " and a.EATTRIBUTE8 like '%" + queryParam["VenCode"].ToString() + "%' ";
}
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
{
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
/// <summary>
/// 箱号子表查询
/// </summary>
/// <param name="CartonNo"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetCartonSubGridJson(string CartonNo, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.LotNO, a.ID,c.ItemCODE,d.INVNAME,c.VenderLotNO,c.LOTQTY,
c.TYPE,b.EATTRIBUTE8,c.ORDERNO,c.TransNO,c.TransLine,d.INVDESC,d.INVTYPE,e.MEMO,d.INVSTD,d.INVPARSETYPE
FROM dbo.ICSITEMLot2Carton a
LEFT JOIN dbo.ICSCarton b ON a.CartonNO=b.CartonNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot c ON a.LotNo_ID=c.ID AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON c.ItemCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
LEFT JOIN dbo.ICSPO_PoMain e ON c.TransNO=e.POCode AND c.TransLine =e.PORow AND a.WorkPoint=e.WorkPoint
WHERE a.CartonNO='" + CartonNo + "' and a.WorkPoint='" + WorkPoint + "'";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetASNListGridJson(string queryJson, ref Pagination jqgridparam)
{
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.ASNDETAILID, a.STNO,a.ITEMCODE,d.INVNAME,d.INVTYPE,d.INVDESC,h.ReMark,a.LOTNO,b.VenderLotNO,
b.LOTQTY,c.CartonNO,e.VENDORCODE,f.cVenName,
b.TransNO,b.TransLine,g.F_RealName,CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME,d.INVSTD,d.INVPARSETYPE,case
when a.RECEIVEQTY is null then '否'
else '是'
end as IsReceive
FROM dbo.ICSASNDETAIL a
LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot2Carton c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON a.ITEMCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
LEFT JOIN dbo.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.VenCode AND a.WorkPoint=f.WorkPoint
LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account and g.F_Location=a.WorkPoint
LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint where 1=1";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["STNO"].ToString()))
{
sql += " and a.STNO like '%" + queryParam["STNO"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
{
sql += " and e.VENDORCODE like '%" + queryParam["VenCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
{
sql += " and f.cVenName like '%" + queryParam["VenName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
{
sql += " and e.CREATETIME >= '%" + queryParam["BeginDate"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
{
sql += " and e.CREATETIME <= '%" + queryParam["EndDate"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenderLotNO"].ToString()))
{
sql += " and b.VenderLotNO = '%" + queryParam["VenderLotNO"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["IsReceive"].ToString()))
{
string IsReceive = queryParam["IsReceive"].ToString();
if (IsReceive == "1")
{
sql += " and isnull(a.RECEIVEQTY,0) <>0 ";
}
else if (IsReceive == "2")
{
sql += " and isnull(a.RECEIVEQTY,0)=0 ";
}
}
}
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
{
sql += " and e.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
}
//DataTable dt = SqlHelper.GetDataTableBySql(sql);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetASNListExport(string keyVaule)
{
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.STNO AS 送货单号,a.ITEMCODE 物料编码,d.INVNAME 物料名称,d.INVSTD AS 规格型号,
d.INVPARSETYPE AS 存货代码
,d.INVTYPE 描述1,d.INVDESC 描述2,h.ReMark 行备注,case
when a.RECEIVEQTY is null then '否'
else '是'
end as 是否到货,
a.LOTNO 条码,b.VenderLotNO 条码批次,
b.LOTQTY 数量,c.CartonNO 箱号,e.VENDORCODE 供应商编码,f.cVenName 供应商名称,
b.TransNO 采购单号,b.TransLine 采购单行,g.F_RealName 维护人, CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME 维护时间
FROM dbo.ICSASNDETAIL a
LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot2Carton c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON a.ITEMCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
LEFT JOIN dbo.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.VenCode AND a.WorkPoint=f.WorkPoint
LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account
LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint where 1=1";
sql += " and a.ASNDETAILID in (" + keyVaule + ")";
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public DataTable GetASNListExport(string ORDERNO, string STNO, string BeginDate, string EndDate, string VenCode, string VenName, string VenderLotNO, string IsReceive)
{
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.STNO AS 送货单号,h.ORDERNO as 项目号,a.ITEMCODE 物料编码,d.INVNAME 物料名称,
d.INVSTD AS 规格型号,d.INVPARSETYPE AS 存货代码,
d.INVTYPE 描述1,d.INVDESC 描述2,h.ReMark 行备注,case
when a.RECEIVEQTY is null then '否'
else '是'
end as 是否到货,
a.LOTNO 条码,b.VenderLotNO 条码批次,
b.LOTQTY 数量,c.CartonNO 箱号,e.VENDORCODE 供应商编码,f.cVenName 供应商名称,
b.TransNO 采购单号,b.TransLine 采购单行,g.F_RealName 维护人,CONVERT(NVARCHAR(50),e.CREATETIME,23) as CREATETIME 维护时间
FROM dbo.ICSASNDETAIL a
LEFT JOIN dbo.ICSITEMLot b ON a.LOTNO=b.LotNO AND a.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSITEMLot2Carton c ON a.LOTNO=c.LotNO AND a.WorkPoint=c.WorkPoint
LEFT JOIN dbo.ICSINVENTORY d ON a.ITEMCODE=d.INVCODE AND a.WorkPoint=d.WorkPoint
LEFT JOIN dbo.ICSASN e ON a.STNO=e.STNO AND a.WorkPoint=e.WorkPoint
LEFT JOIN dbo.ICSVendor f ON e.VENDORCODE=f.VenCode AND a.WorkPoint=f.WorkPoint
LEFT JOIN dbo.Sys_SRM_User g ON e.LOGUSER=g.F_Account
LEFT JOIN dbo.ICSPO_PoMain h ON b.TransNO=h.POCode AND b.TransLine=h.PORow AND a.WorkPoint=h.WorkPoint where 1=1";
if (!string.IsNullOrWhiteSpace(ORDERNO))
sql += " and a.ORDERNO like '%" + ORDERNO + "%'";
if (!string.IsNullOrWhiteSpace(STNO))
sql += " and a.STNO like '%" + STNO + "%'";
if (!string.IsNullOrWhiteSpace(BeginDate))
sql += " and e.CREATETIME >= '" + BeginDate + "'";
if (!string.IsNullOrWhiteSpace(BeginDate))
sql += " and e.CREATETIME <= '" + EndDate + "'";
if (!string.IsNullOrWhiteSpace(VenCode))
sql += " and e.VENDORCODE like '%" + VenCode + "%'";
if (!string.IsNullOrWhiteSpace(VenCode))
sql += " and f.cVenName like '%" + VenName + "%'";
if (!string.IsNullOrWhiteSpace(VenderLotNO))
sql += " and b.VenderLotNO like '%" + VenderLotNO + "%'";
if (IsReceive == "1")
{
sql += " and isnull(a.RECEIVEQTY,0)<>0";
}
else if (IsReceive == "2")
{
sql += " and isnull(a.RECEIVEQTY,0)=0";
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
{
sql += " and e.VenCode in (SELECT VenCode FROM ICSVendor where VenName ='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserName + "'AND WorkPoint=a.WorkPoint)";
}
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public string CheckIsAll(string STNO)
{
string sql = @"SELECT * FROM dbo.ICSASNDETAIL WHERE STNO='" + STNO + "' AND ISNULL(RECEIVEQTY,0)<>0";
sql += " and WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt != null && dt.Rows.Count > 0)
{
return "0";
}
else
{
return "1";
}
}
// public void ISInvoice(string queryJson, string WorkPoint)
// {
// string sql = string.Empty;
// WorkPoint = WorkPoint.Substring(1, WorkPoint.Length - 2);
// queryJson = queryJson.Substring(1, queryJson.Length - 2);
// string msg = string.Empty;
// try
// {
// try
// {
// sql = @"SELECT * FROM dbo.ICSInvoiceNewDetail a
// WHERE a.Src_CADocNo in({0}) and WorkPoint='{1}'
// ";
// sql = string.Format(sql, queryJson.TrimEnd(','), WorkPoint);
// DataTable dtID = SqlHelper.GetDataTableBySql(sql);
// if (dtID.Rows.Count > 0)
// {
// throw new Exception("对账单已加入发发票");
// }
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// }
// catch (Exception ex)
// {
// throw new Exception(ex.Message);
// }
// }
/// <summary>
/// 判断发票是否存在
/// </summary>
/// <param name="TEMPVENDORCODE"></param>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable ISPaperNo(string PaperNo)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DataTable dt = new DataTable();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT * FROM ICSInvoiceNew WHERE PaperNo='" + PaperNo + "' ";
dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public string GetVendorWorkPoint(string WorkPoint)
{
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string msg = "";
string VenCode = "";
string sql = " SELECT VenCode FROM dbo.ICSVendor WHERE VenName='" + MUSERNAME + "'and WorkPoint='" + WorkPoint + "'";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
if (dt.Rows.Count > 0)
{
VenCode = dt.Rows[0]["VenCode"].ToString();
}
else
{
msg = "该站点没有供应商信息,请确认!";
}
var JsonData = new
{
VenCode = VenCode,
mag = msg
};
return (JsonData.ToJson());
}
/// <summary>
/// 获取文件路径
/// </summary>
/// <param name="DocNo"></param>
/// <returns></returns>
public DataTable GetInvoiceFile(string DocNo)
{
//string Vendor = NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode;
DataTable dt = new DataTable();
string sql = @"SELECT Filename FROM ICSSORRFQ WHERE RFQCODE='{0}'";
sql = string.Format(sql, DocNo);
dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
/// <summary>
/// 上传文件变更订单状态为确认中,新增上传次数
/// </summary>
/// <param name="PoCode"></param>
/// <param name="FileName"></param>
/// <param name="FilePath"></param>
/// <returns></returns>
public string UpLoadFile(string PoCode, string FileName, string FilePath, string WorkPoint)
{
string msg = "";
try
{
string sql = @"UPDATE ICSInvoiceNew SET Filename = '{1}',FilePath = '{2}' WHERE DocNo = '{0}' and WorkPoint='{3}'";
sql = string.Format(sql, PoCode, FileName, FilePath,WorkPoint);
int count = SqlHelper.ExecuteNonQuery(sql);
if (count <= 0)
msg = "上传失败";
}
catch (Exception ex)
{
msg = ex.Message.ToString();
}
return msg;
}
}
}