using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
namespace Core.StlMes.Client.Sale.BLL.SaleBusinessMgt.Trans
{
public class YdmZcLoadVehicleMatMgt : SaleBusinessMgt.BllBase.BaseBll
{
public YdmZcLoadVehicleMatMgt(OpeBase ob)
: base(ob)
{
}
private DataSet GetYdmZcBillM(string sqlCondition)
{
string sqlstr = string.Format(" select * from ydm_zc_bill_m where 1 = 1 and validflag = '1' {0}", sqlCondition);
return base.ExecuteQuery(sqlstr);
}
private DataSet GetYdmZcLoadVehicleMat(string sqlCondition)
{
string sqlstr = string.Format(" select * from ydm_zc_loadvehicle_mat where 1 = 1 and validflag = '2' {0}", sqlCondition);
return base.ExecuteQuery(sqlstr);
}
private DataSet GetYdmZcLoadvehicle(string sqlCondition)
{
string sqlstr = string.Format(" select * from ydm_zc_loadvehicle where 1 = 1 and validflag = '1' {0}", sqlCondition);
return base.ExecuteQuery(sqlstr);
}
private DataSet GetSlmOrderLineDeliveryTransit(string sqlCondition)
{
string sqlstr = string.Format(" select * from slm_order_delivery_transit where 1 = 1 and VALIDFLAG = '1' {0}", sqlCondition);
return base.ExecuteQuery(sqlstr);
}
public DataSet GetDistinctOrderLineDeliveryTransitByBillNo(string billno)
{
string sqlStr = @"select a.agency_fl,
a.transit_typ TRANS_TYPE,
b.order_no,b.order_seq,B.DELIVERY_NO,
a.ord_pk,a.ord_ln_pk,a.ord_ln_dly_pk,a.index_seq,
a.destination,
a.station_no,
a.station_nm,
a.spcl_ln_no,
a.spcl_ln_nm,
a.port_no,
a.port_desc,
a.carrier_unit,
a.receivor,c.delvry_addr,c.receiv_addr
from ydm_zc_bill_m b
join slm_order_delivery_transit a on b.ord_pk = a.ord_pk
and b.ord_ln_pk = a.ord_ln_pk
and b.ord_ln_dly_pk = a.ord_ln_dly_pk
join slm_order_line_delivery c
on c.ord_pk = a.ord_pk
and c.ord_ln_pk = a.ord_ln_pk
and c.ord_ln_dly_pk = a.ord_ln_dly_pk
where b.validflag = '1'
and b.loadvehicle_type = '1'
and a.validflag = '1' {0} ";
string sqlCondition = string.Format(" and bill_no = '{0}' ",billno);
sqlStr = string.Format(sqlStr,sqlCondition);
return base.ExecuteQuery(sqlStr );
}
///
///
///
///
///
///
///
public DataSet GetSlmOrderLineDeliveryTransitByOrdPkAndOrdLnPkAndOrdLnDlvPk(string ORD_PK, string ORD_LN_PK, string ORD_LN_DLY_PK)
{
string sqlCondition = string.Format(" and ORD_PK ||ORD_LN_PK||ORD_LN_DLY_PK = '{0}' ", ORD_PK + ORD_LN_PK + ORD_LN_DLY_PK);
return GetSlmOrderLineDeliveryTransit(sqlCondition);
}
///
/// 通过装车时间获取装车数据,包括已经确认和未确认
///
///
///
///
public DataSet GetYdmZcLoadvehicleByDelivy_Time(DateTime dtBegin, DateTime dtEnd)
{
string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("DELIVY_TIME", dtBegin, dtEnd);
return GetYdmZcLoadvehicle(sqlConditino);
}
///
/// 通过装车时间获取确认的装车数据
///
///
///
///
public DataSet GetAffrimYdmZcLoadvehicleByDelivy_Time(DateTime dtBegin, DateTime dtEnd)
{
string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("DELIVY_TIME", dtBegin, dtEnd);
sqlConditino += " and AFFIRM_FLAG = '2' ";
return GetYdmZcLoadvehicle(sqlConditino);
}
public DataSet GetYdmZcBillMByOrderNo(string orderNo)
{
string sqlCondition = string.Format(" and order_no = '{0}' ",orderNo);
return this.GetYdmZcBillM(sqlCondition);
}
public DataSet GetYdmZcBillMByCreateTime(DateTime dtBegin, DateTime dtEnd)
{
string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("CREATE_TIME", dtBegin, dtEnd);
return this.GetYdmZcBillM(sqlConditino);
}
public DataSet GetYdmZcBillMByBillNo(string billno)
{
string sqlCondition = string.Format(" and bill_no = '{0}' ", billno);
return this.GetYdmZcBillM(sqlCondition);
}
public DataSet GetUnAcceptVirtulYdmZcBillM()
{
string sqlCondition = " and loadvehicle_type = '2' and ispreclose = '1' ";
return this.GetYdmZcBillM(sqlCondition);
}
public DataSet GetNotClosedYdmZcBillMByBillNo(string billno)
{
string sqlCondition = string.Format(" and bill_no = '{0}' and (bill_status = '0' or bill_status = '1' or bill_status = '2' or bill_status = '3') ", billno);
return this.GetYdmZcBillM(sqlCondition);
}
public Boolean IsBillNoAllClosed(string billNo)
{
DataSet ds = GetNotClosedYdmZcBillMByBillNo(billNo);
try
{
return !(ds.Tables[0].Rows.Count > 0);
}
catch
{
return false;
}
}
private string BILL_STATUS_CLOSE = "4";
///
/// 实单
///
///
public List GetClosedBillM()
{
List listBill = new List();
List listBillNotClosed = new List();
string sqlCondition = string.Format(" and loadvehicle_type = '1' and bill_status = '{0}' ", BILL_STATUS_CLOSE);
DataSet ds = this.GetYdmZcBillM(sqlCondition);
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
return listBill;
string billNo = "";
foreach (DataRow dr in ds.Tables[0].Rows)
{
billNo = dr[BILL_NO].ToString();
if(!listBill.Contains(billNo))
listBill.Add(billNo);
}
//foreach (DataRow dr in ds.Tables[0].Rows)
//{
// billNo = dr[BILL_NO].ToString();
// if (listBillNotClosed.Contains(billNo))
// continue;
// if (!listBill.Contains(billNo))
// {
// if (IsBillNoAllClosed(billNo))
// {
// listBill.Add(billNo);
// }
// else
// {
// if (!listBillNotClosed.Contains(billNo))
// {
// listBillNotClosed.Add(billNo);
// }
// }
// }
//}
return listBill;
}
public DataSet GetCanAcceptMatInfo()
{
List closedBillNo = this.GetClosedBillM();
string sqlConditon = Util.ConverObject.ConvertListStringValueToSqlCondition(BILL_NO,closedBillNo);
DataSet ds = this.GetYdmZcLoadVehicleMat(sqlConditon);
return ds;
}
public void Accept(ArrayList listbillNo,out string errMsg)
{
errMsg = "";
}
public void AcceptSignle( string billNo,out string errMsg )
{
errMsg = "";
CoreClientParam param = base.GetCoreClientParam(_ServerName, "acceptBalaneDetail", new object[] { billNo });
CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
errMsg = base.GetReturnErrorInfo(result);
}
public void AcceptTicketBySendTicketToInvoice(string billNo,ArrayList listOutStock,String billType, String billck,
String outStockCk,string transck,string person, out string errMsg)
{
errMsg = "";
CoreClientParam param = base.GetCoreClientParam(_ServerName, "acceptBalaneDetailBySignTicket",
new object[] { billNo, listOutStock,billType,billck,outStockCk,transck,person });
CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
errMsg = base.GetReturnErrorInfo(result);
}
public void RollBackTicketBySendTicketToInvoice(string billNo, String billType, String billck,
String outStockCk, string transck, string person, out string errMsg)
{
errMsg = "";
CoreClientParam param = base.GetCoreClientParam(_ServerName, "rollBackTicketsAndOutStockMnyAndTransMnyByAksplid",
new object[] { billNo, billType, billck, outStockCk, transck, person });
CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
errMsg = base.GetReturnErrorInfo(result);
}
public void AffrimAline(ArrayList listbillNo, string person, out string errMsg)
{
errMsg = "";
CoreClientParam param = base.GetCoreClientParam("core.stlmes.server.sale.service.Bill.YdmZcBillMgt", "makeTicketAline", new object[] { listbillNo, person });
CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
errMsg = base.GetReturnErrorInfo(result);
}
public void UnAffrimAline(ArrayList listbillNo, string person, out string errMsg)
{
errMsg = "";
CoreClientParam param = base.GetCoreClientParam("core.stlmes.server.sale.service.Bill.YdmZcBillMgt", "makeTicketNoAline", new object[] { listbillNo, person });
CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
errMsg = base.GetReturnErrorInfo(result);
}
///
/// 获取票据对齐数据
///
///
///
///
public DataSet GetBillNoAfterCloseByBillCreateTime(DateTime dtBegin, DateTime dtEnd, DateTime date3, DateTime date4)
{
DataSet ds = new DataSet();
string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.CREATE_TIME", dtBegin, dtEnd);
if (date3 != default(DateTime))
{
sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.PRINT_FLAG", date3, date4);
}
sqlConditino += " and (BILL_TICKET_STATUS = '0' or OUTSTOCK_TICKET_STATUS = '0' or TRANSMNY_TICKET_STATUS = '0')";
string sql = string.Format(GetSqlStr(),sqlConditino);
ds = base.ExecuteQuery(sql);
return ds;
}
public DataSet GetBillNoAfterCloseByBillno(string billNo)
{
DataSet ds = new DataSet();
string sqlConditino = string.Format(" and a.bill_no like '%'||'{0}'||'%' ",billNo);
sqlConditino += " and (BILL_TICKET_STATUS = '0' or OUTSTOCK_TICKET_STATUS = '0' or TRANSMNY_TICKET_STATUS = '0')";
string sql = string.Format(GetSqlStr(), sqlConditino);
ds = base.ExecuteQuery(sql);
return ds;
}
public DataSet GetAlineBillNoAfterCloseByBillCreateTime(DateTime dtBegin, DateTime dtEnd, DateTime date3, DateTime date4)
{
DataSet ds = new DataSet();
string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.CREATE_TIME", dtBegin, dtEnd);
if (date3 != default(DateTime))
{
sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.PRINT_FLAG", date3, date4);
}
sqlConditino += " and instr(BILL_TICKET_STATUS||OUTSTOCK_TICKET_STATUS||TRANSMNY_TICKET_STATUS,'0') = 0 ";
sqlConditino += " and instr(BILL_TICKET_STATUS||OUTSTOCK_TICKET_STATUS||TRANSMNY_TICKET_STATUS,'1') > 0";
string sql = string.Format(GetSqlStr(), sqlConditino);
ds = base.ExecuteQuery(sql);
return ds;
}
public DataSet GetAlineBillNoAfterCloseByBillno(string billNo)
{
DataSet ds = new DataSet();
string sqlConditino = string.Format(" and a.bill_no like '%'||'{0}'||'%' ", billNo);
sqlConditino += " and instr(BILL_TICKET_STATUS||OUTSTOCK_TICKET_STATUS||TRANSMNY_TICKET_STATUS,'0') = 0 ";
sqlConditino += " and instr(BILL_TICKET_STATUS||OUTSTOCK_TICKET_STATUS||TRANSMNY_TICKET_STATUS,'1') > 0";
string sql = string.Format(GetSqlStr(), sqlConditino);
ds = base.ExecuteQuery(sql);
return ds;
}
public DataSet GetSendSuccessBillNoAfterCloseByBillCreateTime(DateTime dtBegin, DateTime dtEnd, DateTime date3, DateTime date4)
{
DataSet ds = new DataSet();
string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.CREATE_TIME", dtBegin, dtEnd);
if (date3 != default(DateTime))
{
sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.PRINT_FLAG", date3, date4);
}
sqlConditino += " and (BILL_TICKET_STATUS = '2' and OUTSTOCK_TICKET_STATUS = '2' and TRANSMNY_TICKET_STATUS ='2')";
string sql = string.Format(GetSqlStr(), sqlConditino);
ds = base.ExecuteQuery(sql);
return ds;
}
public DataSet GetSendSuccessBillNoAfterCloseByBillno(string billNo)
{
DataSet ds = new DataSet();
string sqlConditino = string.Format(" and a.bill_no like '%'||'{0}'||'%' ", billNo);
sqlConditino += " and (BILL_TICKET_STATUS ='2' and OUTSTOCK_TICKET_STATUS = '2' and TRANSMNY_TICKET_STATUS = '2')";
string sql = string.Format(GetSqlStr(), sqlConditino);
ds = base.ExecuteQuery(sql);
return ds;
}
public DataSet GetAlineBillMateByBillNo(string billno)
{
DataSet ds = new DataSet();
string sql = this.GetBillMateByBillNo(billno);
ds = base.ExecuteQuery(sql);
return ds;
}
public DataSet GetAlineVirtualBillMateByBillNo(string billno)
{
DataSet ds = new DataSet();
string sql = this.GetVirtualBillInfoByBillNo(billno);
ds = base.ExecuteQuery(sql);
return ds;
}
public DataSet GetAlineTransDeliveryByBillNo(string billno)
{
DataSet ds = new DataSet();
string sql = string.Format("select * from ydm_order_delivery_transit a where a.validflag = '1' {0} ",
string.Format(" and bill_no = '{0}' ", billno));
ds = base.ExecuteQuery(sql);
return ds;
}
private string GetSqlStr()
{
string str = @"
SELECT MIN(A.CREATE_TIME) CREATE_TIME,min(to_char(INVOICEDATE,'yyyy-mm-dd')) INVOICEDATE,
min(a.management_name) management_name,
min(a.sale_org_desc) sale_org_desc,
min(a.loadvehicle_type) loadvehicle_type,
min(a.supply_unit) supply_unit,
min(a.supply_unit_desc) supply_unit_desc,
MIN(A.CUSTOMER_NO) CUSTOMER_NO,
MIN(A.CUSTOMER_NM) CUSTOMER_NM,
MIN(A.RECEIV_NO) RECEIV_NO,
MIN(A.RECEIV_NM) RECEIV_NM,
MIN(B.CARRY_COMPANY_CODE),
MIN(B.CARRY_COMPANY_NAME),
max(a.plan_num) QUANTITY,
max(a.plan_wt) WEIGHT,
max(a.trans_area) TRANS_AREA,
min(case
when a.loadvehicle_type = '2' and a.bill_status = '4' then
'二次关闭'
when a.loadvehicle_type = '2' and a.bill_status >= '2' then
'理货'
else
'未理货'
end) virsts,
SUM(case
when a.loadvehicle_type = '2' and a.bill_status < '4' then
0
else
B.ACT_COUNT
end) ACT_COUNT,
SUM(case
when a.loadvehicle_type = '2' and a.bill_status < '4' then
0
else
CASE
WHEN NVL(B.PONDER_GROSS_WT,0) <> 0 THEN
B.PONDER_GROSS_WT
WHEN (NVL(B.PONDER_GROSS_WT,0) = 0) AND ((SELECT min(ORDER_UNIT) FROM SLM_ORDER_LINE WHERE ORD_LN_PK = A.ORD_LN_PK) = '吨') AND (NVL(B.SEND_NUM,0)>0) THEN
B.SEND_NUM
ELSE
B.ACT_WEIGHT
END end) ACT_WEIGHT,
A.BILL_NO,
SUM(B.SEND_NUM) SEND_NUM,
MIN(LOADVEHICLE_TYPE) LOADVEHICLE_TYPE,
MIN(CASE
WHEN A.BILL_TICKET_STATUS = '0' THEN
'N'
WHEN A.BILL_TICKET_STATUS = '1' THEN
'已对齐'
WHEN A.BILL_TICKET_STATUS = '2' THEN
'发送结算'
END) BILL_TICKET_STATUS,
MIN(
case
when a.loadvehicle_type = '1' then
case
WHEN OUTSTOCK_TICKET_STATUS = '1' THEN
'已对齐'
WHEN OUTSTOCK_TICKET_STATUS = '2' THEN
'发送结算'
when a.extra_flag = '1' then
'N'
when a.agency_fl = '0' and a.delvry_addr = 'TPCO库房' then
'OK'
WHEN A.DELVRY_ADDR NOT IN ('TPCO库房车板', '指定地点', 'TPCO库房') THEN
'OK'
ELSE
CASE
WHEN OUTSTOCK_TICKET_STATUS = '0' THEN
'N'
WHEN OUTSTOCK_TICKET_STATUS = '1' THEN
'已对齐'
WHEN OUTSTOCK_TICKET_STATUS = '2' THEN
'发送结算'
END END WHEN A.LOADVEHICLE_TYPE = '2' THEN CASE
WHEN A.BILL_STATUS < '4' THEN
''
WHEN A.BILL_STATUS >= '4' THEN
case
WHEN OUTSTOCK_TICKET_STATUS = '1' THEN
'已对齐'
WHEN OUTSTOCK_TICKET_STATUS = '2' THEN
'发送结算'
when a.agency_fl = '0' and a.delvry_addr = 'TPCO库房' then
'OK'
when a.extra_flag = '1' then
'N'
WHEN A.DELVRY_ADDR NOT IN ('TPCO库房车板', '指定地点', 'TPCO库房') THEN
'OK'
ELSE
CASE
WHEN OUTSTOCK_TICKET_STATUS = '0' THEN
'N'
END END END END)
OUTSTOCK_TICKET_STATUS,
MIN(case
when A.TRANSMNY_TICKET_STATUS = '2' then
'发送结算'
when (tr.Ord_Pk is null) then
'OK'
when A.TRANSMNY_TICKET_STATUS = '1' then
'已对齐'
when A.TRANSMNY_TICKET_STATUS = '2' then
'发送结算'
when (tr.Ord_Pk is not null) then
'N'
end) TRANSMNY_TICKET_STATUS,
min(a.management_no) create_dept,
min(bill_status) bill_status,
min((SELECT BASENAME FROM COM_BASE_INFO WHERE BASECODE= a.plan_trans_type)) TRANS_TPE
FROM (select MIN(A.CREATE_TIME) CREATE_TIME,
min(a.loadvehicle_type) loadvehicle_type,
MIN(A.CUSTOMER_NO) CUSTOMER_NO,
MIN(A.CUSTOMER_NM) CUSTOMER_NM,
min (a.ORD_LN_PK) ORD_LN_PK,
MIN(A.RECEIV_NO) RECEIV_NO,
MIN(A.RECEIV_NM) RECEIV_NM,
min(a.PRINT_FLAG) INVOICEDATE,
min(a.TRANSMNY_TICKET_STATUS) TRANSMNY_TICKET_STATUS,
MIN(A.OUTSTOCK_TICKET_STATUS) OUTSTOCK_TICKET_STATUS,
MIN(A.BILL_STATUS) BILL_STATUS,
MIN(A.DELVRY_ADDR) DELVRY_ADDR,
MIN(A.BILL_TICKET_STATUS) BILL_TICKET_STATUS,
min(a.plan_trans_type) plan_trans_type,
min(a.extra_flag) extra_flag,
sum(a.plan_num) plan_num,
sum(a.plan_wt) plan_wt,
min(a.management_no) management_no,
min(a.management_name) management_name,
min(a.sale_org_desc) sale_org_desc,
min(a.agency_fl) agency_fl,
min(a.supply_unit) supply_unit,
min(a.supply_unit_desc) supply_unit_desc,
a.BILL_NO,
(select listagg(t3.STORAGE_NAME,';') WITHIN GROUP(ORDER BY t3.bill_no) from (SELECT distinct t1.STORAGE_NAME,t2.bill_no FROM YDM_BS_STORAGE t1,YDM_ZC_BILL_c t2 WHERE t1.VALIDFLAG='1' and t1.storage_no=t2.storage_no)t3 where a.bill_no=t3.bill_no)trans_area
from YDM_ZC_BILL_M a
where 1 = 1
and a.validflag = '1'
{0}
AND (A.BILL_STATUS >= '4' OR A.ISPRECLOSE >= '1')
group by a.bill_no) A
LEFT JOIN YDM_ZC_LOADVEHICLE_MAT B ON A.BILL_NO = B.BILL_NO
AND B.VALIDFLAG <> '0'
left join (select bill_no,
min(ord_pk) ord_pk,
min(ord_ln_pk) ord_ln_pk,
min(ord_ln_dly_pk) ord_ln_dly_pk
from ydm_order_delivery_transit
group by bill_no) tr on a.bill_no = tr.bill_no
GROUP BY a.BILL_NO,b.bill_no
";
return str;
}
private string GetBillMateByBillNo(string billno)
{
string str = @" select a.*,
case
when ticketype = '无' then
0
else
weight *
(decode(TRANS_TPE, '110501', 8.62, '110502', 19.83, 8.62))
end outstockmny,
case
when ticketype = '无' then
'自付'
else
'TPCO付'
end TKp
from (select min(a.order_no || '/' || a.order_seq) orderno,
a.JUDGE_STOVE_NO,
a.batch_no,
sum(a.act_count) quantity,
sum(case
when a.ponder_gross_wt > 0 then
a.ponder_gross_wt
WHEN (NVL(a.PONDER_GROSS_WT,0) <= 0) AND ((SELECT min(ORDER_UNIT) FROM SLM_ORDER_LINE WHERE ORD_LN_PK = a.ORD_LN_PK) = '吨') AND (NVL(a.SEND_NUM,0)>0) THEN
a.SEND_NUM
else
a.act_weight
end) weight,
a.ord_pk,
a.ord_ln_pk,
a.ord_ln_dly_pk,
min(b.agency_fl) agency_fl,
min(b.delvry_addr) delvry_addr,
min(b.plan_trans_type) TRANS_TPE,
min(a.pline_name) pline_name,
min(case
when b.EXTRA_FLAG = '1' then
'应收'
when (b.delvry_addr = 'TPCO库房车板' or b.delvry_addr = '指定地点') then
'报销'
else
'无'
end
) ticketype
from ydm_zc_loadvehicle_mat a
join ( select min(b.agency_fl) agency_fl,
min(b.delvry_addr) delvry_addr,
min(b.plan_trans_type) plan_trans_type,bill_no ,
min(EXTRA_FLAG) EXTRA_FLAG from
ydm_zc_bill_m b group by bill_no ) b
on a.bill_no = b.bill_no
where 1 = 1
and a.validflag <> '0'
{0}
group by a.bill_no,
a.order_no || a.order_seq,
a.judge_stove_no,
a.batch_no,
a.ord_pk,
a.ord_ln_pk,
a.ord_ln_dly_pk) a
";
str = string.Format(str, string.Format(" and a.bill_no = '{0}' ",billno));
return str;
}
private string GetTransDelivByBIllNo(string billNo)
{
string sqlStr = @" select B.INDEX_SEQ,
B.AGENCY_FL,
B.TRANSIT_TYP,
B.DESTINATION,
B.STATION_NM,
B.SPCL_LN_NM,
C.DELVRY_ADDR,
c.RECEIV_ADDR,
a.bill_no,
b.ord_pk,
b.ord_ln_pk,
b.ord_ln_dly_pk
from (select min(ord_pk || ord_ln_pk || ord_ln_dly_pk) ord_pk, a.bill_no
from ydm_zc_bill_m a
where a.validflag = '1'
{0}
group by a.bill_no) a
join slm_order_delivery_transit b on b.ord_pk || b.ord_ln_pk ||
b.ord_ln_dly_pk = a.ord_pk
join slm_order_line_delivery c on c.ord_pk = b.ord_pk
and c.ord_ln_pk = b.ord_ln_pk
and c.ord_ln_dly_pk = b.ord_ln_dly_pk
where b.validflag = '1'
";
sqlStr = string.Format(sqlStr, string.Format(" and a.bill_no = '{0}' ",billNo));
return sqlStr;
}
private string GetVirtualBillInfoByBillNo(string billno)
{
string str = @"
select a.*,
case
when ticketype = '无' then
0
else
0 * (decode(TRANS_TPE, '110501', 8.62, '110502', 19.83, 8.62))
end outstockmny,
case
when ticketype = '无' then
'自付'
else
'TPCO付'
end TKp
from (select min(a.order_no || '/' || a.order_seq) orderno,
a.bill_no,
c.JUDGE_STOVE_NO,
c.batch_no,
sum(c.act_count) quantity,
sum(c.act_weight) weight,
a.ord_pk,
a.ord_ln_pk,
a.ord_ln_dly_pk,
min(pline_name) pline_name,
min(a.agency_fl) agency_fl,
min(a.delvry_addr) delvry_addr,
min(a.plan_trans_type) TRANS_TPE,
min(case
when a.agency_fl = '0' and a.delvry_addr = 'TPCO库房' then
'无'
when a.agency_fl = '1' and a.delvry_addr = 'TPCO库房' then
'应收'
when (a.delvry_addr = 'TPCO库房车板' or a.delvry_addr = '指定地点') then
'报销'
else
'无'
end
) ticketype
from ydm_zc_bill_m a
join ydm_zc_bill_c c on a.bill_no = c.bill_no
and a.ord_pk=c.ord_pk
and a.ord_ln_pk = c.ord_ln_pk
and a.ord_ln_dly_pk = c.ord_ln_dly_pk
{0}
where 1 = 1
and a.validflag <> '0'
and a.loadvehicle_type = '2'
and c.validflag = '1'
-- and a.bill_no = 'THM1510260005'
group by a.bill_no,
a.order_no || a.order_seq,
c.judge_stove_no,
c.batch_no,
a.ord_pk,
a.ord_ln_pk,
a.ord_ln_dly_pk) a
";
str = string.Format(str, string.Format(" and a.bill_no = '{0}' ", billno));
return str;
}
private string BILL_NO = "BILL_NO";
private string _ServerName = "core.stlmes.server.sale.service.balance.SlmBalanceTickets";
}
}