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.
231 lines
28 KiB
231 lines
28 KiB
using ICSSoft.ERPWMS.Entity;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace ICSSoft.ERPWMS.SQL
|
|
{
|
|
public class GetPOInfo
|
|
{
|
|
public static Result Get(POCondition condition)
|
|
{
|
|
Result res = new Result();
|
|
try
|
|
{
|
|
if (condition.PageIndex ==null)
|
|
{
|
|
throw new Exception("页码未传!");
|
|
}
|
|
if (condition.PageSize == null)
|
|
{
|
|
throw new Exception("每页数量未传!");
|
|
}
|
|
if (string.IsNullOrWhiteSpace(condition.WorkPoint))
|
|
{
|
|
throw new Exception("站点未传!");
|
|
}
|
|
string WorkPoint = ICSHelper.GetConnectStringTest(condition.WorkPoint);
|
|
|
|
if (WorkPoint == "NotExit")
|
|
{
|
|
throw new Exception("站点编码不存在!");
|
|
}
|
|
|
|
string sql = @"select a.cPOID as '采购订单号',b.ivouchrowno as '采购订单行号',a.cVenCode as '供应商代码',a.cDepCode as '部门代码',a.cPersonCode as '业务员代码',
|
|
'标准' as '采购类型名称',b.cInvCode as '物料代码',b.iQuantity as '数量',b.iNum as '辅计量数量',b.iUnitPrice as '原币无税单价',b.cFree1 '料品版本',
|
|
b.iMoney as '原币无税金额',b.iTaxPrice as '原币含税单价',b.iPerTaxRate as '税率',b.iTax as '原币税额',b.iSum as '原币价税合计',
|
|
a.cexch_name as '币种',a.nflat as '汇率',a.iverifystateex as '状态',b.dArriveDate as '计划到货日期',a.cMemo as '头备注',b.cbMemo as '行备注',
|
|
a.cMaker as '创建人',a.cmaketime as '创建时间',a.dCloseDate as '停用日期',a.cChanger as '变更人',
|
|
case when a.cChangAuditTime >=(case when yy.cMakeTime>=(case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)
|
|
then yy.cMakeTime else (case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)end) then a.cChangAuditTime
|
|
else (case when yy.cMakeTime>=(case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)
|
|
then yy.cMakeTime else (case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)end) end as '变更日期',
|
|
case when b.iArrQTY is null then isnull(b.iReceivedQTY,0) when cast(b.iArrQTY as int)=0 then isnull(b.iReceivedQTY,0) else b.iArrQTY end as '到货数量',
|
|
b.cbCloser as '行关闭人',xx.chdefine31 '订单送货地址',xx.chdefine32 '发票接收地址'
|
|
from {0}.dbo.PO_Pomain a
|
|
left join {0}.dbo.PO_Podetails b on a.POID = b.POID
|
|
LEFT JOIN {0}.dbo.ICSPoModifyTimeRecord hh on a.POID = hh.POID
|
|
left join {0}.dbo.po_pomain_extradefine xx on a.poid = xx.poid
|
|
left join (select PO_Pomain.cPOID as 'cpocode',MAX(PU_ArrivalVouch.cMakeTime) as 'cMakeTime' from {0}.dbo.PU_ArrivalVouch left join {0}.dbo.PU_ArrivalVouchs on PU_ArrivalVouch.id = PU_ArrivalVouchs.ID
|
|
left join {0}.dbo.PO_Podetails on PO_Podetails.ID = PU_ArrivalVouchs.iPOsID
|
|
left join {0}.dbo.PO_Pomain on PO_Pomain.POID = PO_Podetails.POID
|
|
group by PO_Pomain.cPOID) yy on a.cPOID = yy.cpocode
|
|
where a.cVerifier is not null and a.cVerifier!=''";
|
|
string sql2 = @"select c.cCode as '采购订单号',d.iVouchRowNo as '采购订单行号',c.cVenCode as '供应商代码',c.cDepCode as '部门代码',c.cPersonCode as '业务员代码',
|
|
'委外' as '采购类型名称',d.cInvCode as '物料代码',d.iQuantity as '数量',d.iNum as '辅计量数量',d.iUnitPrice as '原币无税单价',d.cFree1 '料品版本',
|
|
d.iMoney as '原币无税金额',d.iTaxPrice as '原币含税单价',d.iPerTaxRate as '税率',d.iTax as '原币税额',d.iSum as '原币价税合计',
|
|
c.cexch_name as '币种',c.nflat as '汇率',c.iVerifyStateNew as '状态',d.dArriveDate as '计划到货日期',yy.chdefine39 as '头备注',d.cbMemo as '行备注',
|
|
c.cMaker as '创建人',c.dCreateTime as '创建时间',c.dCloseDate as '停用日期',c.cChanger as '变更人',
|
|
case when c.dChangeVerifyTime >=(case when xx.cMakeTime >=(case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end)
|
|
then xx.cMakeTime else (case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end) end) then c.dChangeVerifyTime
|
|
ELSE (case when xx.cMakeTime >=(case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end)
|
|
then xx.cMakeTime else (case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end) end) end as '变更日期',
|
|
case when d.iArrQTY is null then isnull(d.iReceivedQTY,0) when cast(d.iArrQTY as int)=0 then isnull(d.iReceivedQTY,0) else d.iArrQTY end as '到货数量',
|
|
d.cbCloser as '行关闭人',yy.chdefine31 '订单送货地址',yy.chdefine32 '发票接收地址'
|
|
from {0}.dbo.OM_MOMain c
|
|
left join {0}.dbo.OM_MODetails d on c.MOID = d.MOID
|
|
left join {0}.dbo.OM_MOMain_extradefine yy on c.MOID = yy.MOID
|
|
left join (select OM_MOMain.cCode as 'cpocode',MAX(PU_ArrivalVouch.cMakeTime) as 'cMakeTime' from {0}.dbo.PU_ArrivalVouch left join {0}.dbo.PU_ArrivalVouchs on PU_ArrivalVouch.id = PU_ArrivalVouchs.ID
|
|
left join {0}.dbo.OM_MODetails on OM_MODetails.MODetailsID = PU_ArrivalVouchs.iPOsID
|
|
left join {0}.dbo.OM_MOMain on OM_MOMain.MOID = OM_MODetails.MOID
|
|
group by OM_MOMain.cCode) xx on c.cCode = xx.cpocode
|
|
where c.cVerifier is not null and c.cVerifier!=''";
|
|
sql = string.Format(sql, WorkPoint);
|
|
sql2 = string.Format(sql2, WorkPoint);
|
|
if (condition.dModifyDateFrom != null)
|
|
{
|
|
sql += @" and (case when a.cChangAuditTime >=(case when yy.cMakeTime>=(case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)
|
|
then yy.cMakeTime else (case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)end) then a.cChangAuditTime
|
|
else (case when yy.cMakeTime>=(case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)
|
|
then yy.cMakeTime else (case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)end) end) >= '{0}'";
|
|
sql = string.Format(sql, condition.dModifyDateFrom);
|
|
sql2 += @" and (case when c.dChangeVerifyTime >=(case when xx.cMakeTime >=(case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end)
|
|
then xx.cMakeTime else (case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end) end) then c.dChangeVerifyTime
|
|
ELSE (case when xx.cMakeTime >=(case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end)
|
|
then xx.cMakeTime else (case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end) end) end) >= '{0}'";
|
|
sql2 = string.Format(sql2, condition.dModifyDateFrom);
|
|
}
|
|
if (condition.dModifyDateTo != null)
|
|
{
|
|
sql += @" and (case when a.cChangAuditTime >=(case when yy.cMakeTime>=(case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)
|
|
then yy.cMakeTime else (case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)end) then a.cChangAuditTime
|
|
else (case when yy.cMakeTime>=(case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)
|
|
then yy.cMakeTime else (case when b.cbCloseTime >= (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end)
|
|
then b.cbCloseTime else (case when hh.ModifyTime >= (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) then hh.ModifyTime else (case when a.cAuditTime >= ISNULL(a.cModifyTime, a.cmaketime) then a.cAuditTime else ISNULL(a.cModifyTime, a.cmaketime) end) end) end)end) end) <= '{0}'";
|
|
sql = string.Format(sql, condition.dModifyDateTo);
|
|
sql2 += @" and (case when c.dChangeVerifyTime >=(case when xx.cMakeTime >=(case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end)
|
|
then xx.cMakeTime else (case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end) end) then c.dChangeVerifyTime
|
|
ELSE (case when xx.cMakeTime >=(case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end)
|
|
then xx.cMakeTime else (case when d.dbCloseTime >= (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end)
|
|
then d.dbCloseTime else (case when c.dAlterTime >= (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) then c.dAlterTime else (case when c.dVerifyTime >= ISNULL(c.dModifyTime,c.dCreateTime) then c.dVerifyTime else ISNULL(c.dModifyTime,c.dCreateTime) end) end) end) end) end) <= '{0}'"; ;
|
|
sql2 = string.Format(sql2, condition.dModifyDateTo);
|
|
}
|
|
if (condition.POCode != null)
|
|
{
|
|
sql += " and a.cPOID like '%{0}%'";
|
|
sql = string.Format(sql, condition.POCode);
|
|
sql2 += " and c.cCode like '%{0}%'";
|
|
sql2 = string.Format(sql2, condition.POCode);
|
|
}
|
|
|
|
sql = sql + " Union All " + sql2;
|
|
|
|
string sqlNew = @" select * from (select aa.*,rn=dense_rank() over(order by 采购订单号) from( ";
|
|
sqlNew += sql;
|
|
sqlNew += ") aa)bb where bb.rn between {0} and {1} ";
|
|
sqlNew = string.Format(sqlNew, (condition.PageIndex - 1) * condition.PageSize + 1, condition.PageIndex * condition.PageSize);
|
|
|
|
|
|
DataTable dt = ICSHelper.GetDataTableERP(sqlNew);
|
|
List<POEntity> entityList = new List<POEntity>();
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
POEntity entity = new POEntity();
|
|
entity.POCode = dr["采购订单号"].ToString();
|
|
entity.Sequence = string.IsNullOrWhiteSpace(dr["采购订单行号"].ToString()) ? 0 : Convert.ToInt32(dr["采购订单行号"].ToString());
|
|
entity.VenCode = dr["供应商代码"].ToString();
|
|
entity.DepCode = dr["部门代码"].ToString();
|
|
entity.PersonCode = dr["业务员代码"].ToString();
|
|
entity.POType = dr["采购类型名称"].ToString() == "标准" ? 1 : 2;
|
|
entity.InvCode = dr["物料代码"].ToString();
|
|
entity.Quantity = string.IsNullOrWhiteSpace(dr["数量"].ToString()) ? 0 : float.Parse(dr["数量"].ToString());
|
|
entity.Amount = string.IsNullOrWhiteSpace(dr["辅计量数量"].ToString()) ? 0 : float.Parse(dr["辅计量数量"].ToString());
|
|
entity.UnitPrice = string.IsNullOrWhiteSpace(dr["原币无税单价"].ToString()) ? 0 : float.Parse(dr["原币无税单价"].ToString());
|
|
entity.iMoney = string.IsNullOrWhiteSpace(dr["原币无税金额"].ToString()) ? 0 : float.Parse(dr["原币无税金额"].ToString());
|
|
entity.iTaxPrice = string.IsNullOrWhiteSpace(dr["原币含税单价"].ToString()) ? 0 : float.Parse(dr["原币含税单价"].ToString());
|
|
entity.iPerTaxRate = string.IsNullOrWhiteSpace(dr["原币含税单价"].ToString()) ? 0 : float.Parse(dr["税率"].ToString());
|
|
entity.iTax = string.IsNullOrWhiteSpace(dr["原币税额"].ToString()) ? 0 : float.Parse(dr["原币税额"].ToString());
|
|
entity.iSum = string.IsNullOrWhiteSpace(dr["原币价税合计"].ToString()) ? 0 : float.Parse(dr["原币价税合计"].ToString());
|
|
entity.Currency = dr["币种"].ToString();
|
|
entity.nFlat = string.IsNullOrWhiteSpace(dr["汇率"].ToString()) ? 0 : float.Parse(dr["汇率"].ToString());
|
|
entity.Status = string.IsNullOrWhiteSpace(dr["状态"].ToString()) ? 0 : Convert.ToInt32(dr["状态"].ToString());
|
|
if (!string.IsNullOrWhiteSpace(dr["行关闭人"].ToString()))
|
|
{
|
|
entity.Status = 3;
|
|
}
|
|
entity.cMemo = dr["头备注"].ToString();
|
|
entity.cbMemo = dr["行备注"].ToString();
|
|
entity.CreatePerson = dr["创建人"].ToString();
|
|
entity.CreateDateTime = dr["创建时间"].ToString();
|
|
entity.cModifyPerson = dr["变更人"].ToString();
|
|
if (string.IsNullOrWhiteSpace(dr["计划到货日期"].ToString()))
|
|
{
|
|
entity.dArriveDate = null;
|
|
}
|
|
else
|
|
{
|
|
entity.dArriveDate = Convert.ToDateTime(dr["计划到货日期"].ToString());
|
|
}
|
|
if (string.IsNullOrWhiteSpace(dr["停用日期"].ToString()))
|
|
{
|
|
entity.dEndDate = null;
|
|
}
|
|
else
|
|
{
|
|
entity.dEndDate = Convert.ToDateTime(dr["停用日期"].ToString());
|
|
}
|
|
if (string.IsNullOrWhiteSpace(dr["变更日期"].ToString()))
|
|
{
|
|
entity.dModifyDate = null;
|
|
}
|
|
else
|
|
{
|
|
entity.dModifyDate = Convert.ToDateTime(dr["变更日期"].ToString());
|
|
}
|
|
entity.iReceivedQTY = string.IsNullOrWhiteSpace(dr["到货数量"].ToString()) ? 0.00f : float.Parse(dr["到货数量"].ToString());
|
|
entity.ShipAddress = dr["订单送货地址"].ToString();
|
|
entity.AcceptAddress = dr["发票接收地址"].ToString();
|
|
entity.InvVersion = dr["料品版本"].ToString();
|
|
entityList.Add(entity);
|
|
}
|
|
res.IsSuccess = true;
|
|
res.Message = "执行成功!";
|
|
res.data = entityList;
|
|
return res;
|
|
}
|
|
else
|
|
{
|
|
res.IsSuccess = true;
|
|
res.Message = "查询无数据!";
|
|
res.data = entityList;
|
|
return res;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
res.IsSuccess = false;
|
|
res.Message = ex.Message;
|
|
return res;
|
|
}
|
|
}
|
|
}
|
|
}
|