提交 e5177d57 authored 作者: 谭富强's avatar 谭富强

1

上级 1db9e0e7
......@@ -39,17 +39,18 @@ namespace LQKJ.K3.CZXT.Pluglus
StringBuilder sb = new StringBuilder();
string Sql = @"/*dialect*/SELECT T1.*,CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END AS F_LQKJ_Unitvolume--单位体积
,T1.FSTOCKJCQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END AS F_LQKJ_Totalvolume --总体积
,T2.F_LQKJ_Warehouserent AS F_LQKJ_Warehouserent--仓租单价
,T2.F_LQKJ_Warehouserent * (T1.FSTOCKJCQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END) AS F_LQKJ_Warehouse --仓租
,T2.F_LQKJ_Unloadingfee AS F_LQKJ_Unloadingfee --卸车单价
,T2.F_LQKJ_Unloadingfee * (T1.FSTOCKINQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END) AS F_LQKJ_Unloading --卸车费
,T2.F_LQKJ_Loadingfee AS F_LQKJ_Loadingfee --装车单价
,T2.F_LQKJ_Loadingfee * (T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END) AS F_LQKJ_Loading--装车费
,W.F_ORA_DECIMAL_QTR AS F_LQKJ_Warehouserent--仓租单价
,W.F_ORA_DECIMAL_QTR * (T1.FSTOCKJCQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END) AS F_LQKJ_Warehouse --仓租
,W.F_ORA_DECIMAL_QTR1 AS F_LQKJ_Unloadingfee --卸车单价
,W.F_ORA_DECIMAL_QTR1 * (T1.FSTOCKINQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END) AS F_LQKJ_Unloading --卸车费
,W.F_ORA_DECIMAL_83G AS F_LQKJ_Loadingfee --装车单价
,W.F_ORA_DECIMAL_83G * (T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END) AS F_LQKJ_Loading--装车费
,T2.F_LQKJ_Sortingfees AS F_LQKJ_Sortingfees--分拣费单价
,T2.F_LQKJ_Sortingfees * (T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END) AS F_LQKJ_Sorting--分拣费
INTO {0}
FROM {1} T1
LEFT JOIN LQKJ_SettupParameters T2 on 1=1
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID";
sb.AppendFormat(Sql, tableName, strTable);
Logger.Info("物料收发汇总表:", sb.ToString());
......
......@@ -139,43 +139,6 @@ namespace LQKJ.K3.CZXT.Pluglus
}
string F_LQKJ_StartDate = "";
string F_LQKJ_EndDate = "";
// 获取自定义过滤器中的开始日期和结束日期
// 如果自定义过滤器没有设置日期,则默认为空字符串
//if (customFilter["F_LQKJ_Datemonth"] != null)
//{
// // 获取 F_LQKJ_Datemonth 字段的日期字符串
// string dateMonthStr = customFilter["F_LQKJ_Datemonth"]?.ToString()?.Trim(); // 去除首尾空格
// DateTime startDateS = DateTime.MinValue;
// DateTime endDateS = DateTime.MinValue;
// if (!string.IsNullOrEmpty(dateMonthStr))
// {
// try
// {
// // 解析为 DateTime 类型
// DateTime dateTime = DateTime.ParseExact(dateMonthStr, "yyyy-MM-dd HH:mm:ss", null);
// // 获取该月的第一天
// startDateS = new DateTime(dateTime.Year, dateTime.Month, 1); // 使用该年份和月份的第一天
// // 获取该月的最后一天
// endDateS = startDateS.AddMonths(1).AddDays(-1); // 下一月减去一天即为当前月的最后一天
// // 格式化为字符串
// F_LQKJ_StartDate = startDateS.ToString("yyyy-MM-dd"); // 起始日期
// F_LQKJ_EndDate = endDateS.ToString("yyyy-MM-dd"); // 截止日期
// }
// catch (FormatException)
// {
// // 如果格式不正确,处理错误(例如记录日志,或给出默认值)
// Console.WriteLine("日期格式无效: " + dateMonthStr);
// }
// }
// else
// {
// Console.WriteLine("日期字符串无效或格式不匹配");
// }
//}
if (customFilter["F_LQKJ_StartDate"] != null || customFilter["F_LQKJ_EndDate"] != null)
{
if (customFilter["F_LQKJ_StartDate"] != null && customFilter["F_LQKJ_EndDate"] != null)
......@@ -215,6 +178,38 @@ namespace LQKJ.K3.CZXT.Pluglus
{
F_LQKJ_FSourceOutBills = (customFilter["F_LQKJ_FSourceOutBills"] == null) ? string.Empty : Convert.ToString(customFilter["F_LQKJ_FSourceOutBills"]);
}
// 检查是否有过滤条件
string where = "";
List<string> wheres = new List<string>();
// 添加入库单据类型的过滤条件
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills) && F_LQKJ_FSourceInBills != "STK_INSTOCK,STK_MISCELLANEOUS,PRD_INSTOCK,SP_INSTOCK,STK_TRANSFERIN,SAL_RETURNSTOCK,PRD_RETURNMTRL,SUB_RETURNMTRL,STK_ASSEMBLEDAPP")
{
// 按逗号拆分字符串
string[] inBills = F_LQKJ_FSourceInBills.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (inBills.Length > 0)
{
// 拼接 IN 子句
string inClause = $" FBILLNAME IN ('{string.Join("','", inBills)}')";
wheres.Add(inClause);
}
}
// 添加出库单据类型的过滤条件
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills) && F_LQKJ_FSourceOutBills != "SAL_OUTSTOCK,SUB_FEEDMTRL,STK_TRANSFERDIRECT,STK_ASSEMBLEDAPP,SP_PICKMTRL,STK_TRANSFEROUT,STK_MISDELIVERY,PRD_PICKMTRL,PUR_MRB,PRD_RETSTOCK,SUB_PICKMTRL,PRD_FEEDMTRL")
{
// 按逗号拆分字符串
string[] outBills = F_LQKJ_FSourceOutBills.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (outBills.Length > 0)
{
// 拼接 IN 子句
string outClause = $" FBILLNAME IN ('{string.Join("','", outBills)}')";
wheres.Add(outClause);
}
}
// 拼接最终的 WHERE 子句
if (wheres.Count > 0)
{
where = " AND " + string.Join(" AND ", wheres);
}
//搜索物料收发明细表的自定义方案查询语句(仓租报表专用)
string sqlBB = string.Format(@"/*dialect*/SELECT FSCHEMEID FROM T_BAS_FILTERSCHEME where FFORMID='STK_StockDetailRpt' and FSCHEMENAME='仓租报表专用'");
string schemeId = AppServiceContext.DBService.ExecuteScalar<string>(Context, sqlBB, "");//获取过滤条件框的方案
......@@ -264,7 +259,7 @@ namespace LQKJ.K3.CZXT.Pluglus
receBillTableS.Columns.Add("FSTOCKOUTQTY", typeof(decimal));//出库数量
receBillTableS.Columns.Add("FSTOCKJCQTY", typeof(decimal));//结存数量
receBillTableS.BeginInit();
DataTable dataTable = GetReportData(Context, "STK_StockDetailRpt", "STK_StockDetailFilter", schemeId, F_LQKJ_OrgId, F_LQKJ_StartDate, F_LQKJ_EndDate, F_LQKJ_FSourceInBills, F_LQKJ_FSourceOutBills, 0);
DataTable dataTable = GetReportData(Context, "STK_StockDetailRpt", "STK_StockDetailFilter", schemeId, F_LQKJ_OrgId, F_LQKJ_StartDate, F_LQKJ_EndDate, 0);
int sequenceNumber = 1; // 序号从1开始,或者根据你的需求设置
// DataTable 有数据
if (dataTable != null && dataTable.Rows.Count > 0)
......@@ -276,6 +271,7 @@ namespace LQKJ.K3.CZXT.Pluglus
// 设置自增长的序号
newRow["FSEQ"] = sequenceNumber++;
newRow["FDate"] = item["FDate"];
newRow["FBILLNAME"] = item["FBILLNAME"];
newRow["FSTOCKORGID"] = item["FSTOCKORGID"];
newRow["FSTOCKID"] = item["FSTOCKID"];
newRow["FMATERIALID"] = item["FMATERIALID"];
......@@ -296,52 +292,57 @@ namespace LQKJ.K3.CZXT.Pluglus
//单据类型(组装拆卸单) 组装拆卸单只算装车费,不算卸车费
string zzcxdsql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='组装拆卸单')
when matched then
update set t1.F_ORA_DECIMAL_83G =t2.F_ORA_DECIMAL_83G;");
update set t1.F_ORA_DECIMAL_83G =t1.FSTOCKOUTQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_83G;");
DBUtils.Execute(this.Context, zzcxdsql);
//单据类型(销售退货单) 退货单(负数的)不扣装车费
string xsthdsql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='销售退货单' AND t1.FSTOCKOUTQTY<0)
when matched then
update set t1.F_ORA_DECIMAL_QTR1 =t2.F_ORA_DECIMAL_QTR1;");
update set t1.F_ORA_DECIMAL_QTR1 =T1.FSTOCKINQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_QTR1;");
DBUtils.Execute(this.Context, xsthdsql);
//单据类型(其他出库) 不算装车费
string qtcfsql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他出库单')
when matched then
update set t1.F_ORA_DECIMAL_QTR1 =t2.F_ORA_DECIMAL_QTR1;");
update set t1.F_ORA_DECIMAL_QTR1 =T1.FSTOCKINQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_QTR1;");
DBUtils.Execute(this.Context, qtcfsql);
//单据类型(其他入库) 不算卸车费
string qtrfsql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他入库单')
when matched then
update set t1.F_ORA_DECIMAL_83G =t2.F_ORA_DECIMAL_83G;");
update set t1.F_ORA_DECIMAL_83G =t1.FSTOCKOUTQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_83G;");
DBUtils.Execute(this.Context, qtrfsql);
//除了以上的单据类型都算
string dssql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME NOT IN ('组装拆卸单', '销售退货单','其他出库单','其他入库单'))
when matched then
update set t1.F_ORA_DECIMAL_83G =t2.F_ORA_DECIMAL_83G,t1.F_ORA_DECIMAL_QTR1 =t2.F_ORA_DECIMAL_QTR1;");
update set t1.F_ORA_DECIMAL_83G =t1.FSTOCKOUTQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_83G,t1.F_ORA_DECIMAL_QTR1 =T1.FSTOCKINQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_QTR1;");
DBUtils.Execute(this.Context, dssql);
string sqlsa = ($@"/*dialect*/SELECT * FROM (SELECT MIN(T1.FSEQ) AS FSEQ,T1.FDate--业务日期
,T1.FSTOCKORGID--库存组织
......@@ -356,7 +357,7 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM {receBillTableS} T1
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
LEFT JOIN T_BD_STOCK CKBM ON T1.FSTOCKID=CKBM.FSTOCKID
WHERE T1.FDate<>'' {Filter}
WHERE T1.FDate<>'' {where} {Filter}
GROUP BY T1.FSTOCKORGID,T1.FSTOCKID,T1.FMATERIALID,T1.FDate
UNION ALL
SELECT T1.FSEQ,T1.FDate--业务日期
......@@ -366,7 +367,7 @@ namespace LQKJ.K3.CZXT.Pluglus
,T1.F_ORA_DECIMAL_83G,T1.F_ORA_DECIMAL_QTR1,T1.FSTOCKQCQTY,T1.FSTOCKINQTY,T1.FSTOCKOUTQTY,T1.FSTOCKJCQTY FROM {receBillTableS} T1
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
LEFT JOIN T_BD_STOCK CKBM ON T1.FSTOCKID=CKBM.FSTOCKID
WHERE (T1.FDate IS NULL OR T1.FDate = '' ) {Filter}
WHERE (T1.FDate IS NULL OR T1.FDate = '' ) {where} {Filter}
) t1
ORDER BY FSEQ");
DataTable dataTablesa = DBUtils.ExecuteDataSet(this.Context, sqlsa).Tables[0];
......@@ -413,6 +414,8 @@ namespace LQKJ.K3.CZXT.Pluglus
if (i == 0)
{
newRow["FDate"] = Convert.ToDateTime(startDate);
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
}
else
{
......@@ -421,13 +424,10 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"];
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
newRow["FSTOCKJCQTY"] = Convert.ToDecimal(data["FSTOCKQCQTY"]) + Convert.ToDecimal(data["FSTOCKINQTY"]) - Convert.ToDecimal(data["FSTOCKOUTQTY"]);
//jcsl = Convert.ToDecimal(data["FSTOCKQCQTY"]) + Convert.ToDecimal(data["FSTOCKINQTY"]) - Convert.ToDecimal(data["FSTOCKOUTQTY"]);
receBillTable.Rows.Add(newRow);
}
......@@ -446,6 +446,8 @@ namespace LQKJ.K3.CZXT.Pluglus
if (i == 0)
{
newRow["FDate"] = Convert.ToDateTime(startDate);
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
}
else
{
......@@ -454,8 +456,6 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"];
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
......@@ -486,13 +486,21 @@ namespace LQKJ.K3.CZXT.Pluglus
DataRow newRow = receBillTable.NewRow();
if (i == 0)
{
string FSTOCKORGID = Convert.ToString(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKORGID"]);
string FSTOCKID = Convert.ToString(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKID"]);
string FMATERIALID = Convert.ToString(receBillTable.Rows[receBillTable.Rows.Count - 1]["FMATERIALID"]);
if (FSTOCKORGID == data["FSTOCKORGID"].ToString() && FSTOCKID == data["FSTOCKID"].ToString() && FMATERIALID == data["FMATERIALID"].ToString())
if (receBillTable.Rows.Count > 0) // 检查是否有行
{
jcsl = Convert.ToDecimal(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKQCQTY"]) + Convert.ToDecimal(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKINQTY"]) - Convert.ToDecimal(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKOUTQTY"]);
newRow["FSTOCKQCQTY"] = jcsl;
string FSTOCKORGID = Convert.ToString(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKORGID"]);
string FSTOCKID = Convert.ToString(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKID"]);
string FMATERIALID = Convert.ToString(receBillTable.Rows[receBillTable.Rows.Count - 1]["FMATERIALID"]);
if (FSTOCKORGID == data["FSTOCKORGID"].ToString() && FSTOCKID == data["FSTOCKID"].ToString() && FMATERIALID == data["FMATERIALID"].ToString())
{
jcsl = Convert.ToDecimal(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKQCQTY"]) + Convert.ToDecimal(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKINQTY"]) - Convert.ToDecimal(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKOUTQTY"]);
newRow["FSTOCKQCQTY"] = jcsl;
}
else
{
jcsl = 0;
newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
}
}
else
{
......@@ -504,7 +512,8 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
jcsl = jcsl + Convert.ToDecimal(data["FSTOCKQCQTY"]) + Convert.ToDecimal(data["FSTOCKINQTY"]) - Convert.ToDecimal(data["FSTOCKOUTQTY"]);
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
}
else
{
......@@ -513,8 +522,6 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKOUTQTY"] = 0;
newRow["FSTOCKQCQTY"] = jcsl;
}
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"];
......@@ -627,11 +634,6 @@ namespace LQKJ.K3.CZXT.Pluglus
{
F_ORA_ASSISTANT1S = true;
}
// 如果两个字段都找到了,可以提前结束循环
//if (F_ORA_ASSISTANT && F_ORA_ASSISTANTS)
//{
// break;
//}
}
try
......@@ -659,8 +661,8 @@ namespace LQKJ.K3.CZXT.Pluglus
,ISNULL(FORMAT(T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Outboundvolume--出库体积
,ISNULL(FORMAT((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Inventoryvolume--库存体积
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR1 * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_83G * (T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CONVERT(FLOAT, T1.F_LQKJ_Enterfee), '0.####'), '0')AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(CONVERT(FLOAT, T1.F_LQKJ_Warehousingfee), '0.####'), '0')AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CS.F_LQKJ_Sortingfees * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Cargosortingfee--货物分拣费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
......@@ -674,10 +676,12 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT,F_ORA_ASSISTANT1,
SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, --体积
SUM(CAST(F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, --仓租单价
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, --装车费
SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 --卸车费
FVOLUME,-- 体积
F_ORA_DECIMAL_QTR, -- 仓租单价
F_ORA_DECIMAL_83G,-- 装车单价
F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(F_LQKJ_Enterfee AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, --进仓费
SUM(CAST(F_LQKJ_Warehousingfee AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee --出仓费
FROM(SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织
T1.FMATERIALID, -- 物料编码
......@@ -685,16 +689,18 @@ namespace LQKJ.K3.CZXT.Pluglus
T1.F_ORA_ASSISTANT,T1.F_ORA_ASSISTANT1,
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费
JB.FVOLUME,-- 体积
W.F_ORA_DECIMAL_QTR, -- 仓租单价
W.F_ORA_DECIMAL_83G,-- 装车单价
W.F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, -- 进仓费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee -- 出仓费
FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT,T1.F_ORA_ASSISTANT1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT,F_ORA_ASSISTANT1) T1
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT,T1.F_ORA_ASSISTANT1,JB.FVOLUME,W.F_ORA_DECIMAL_QTR,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT,F_ORA_ASSISTANT1,FVOLUME,F_ORA_DECIMAL_QTR,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1) T1
LEFT JOIN (SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织
F_ORA_ASSISTANT,F_ORA_ASSISTANT1,
......@@ -742,8 +748,8 @@ namespace LQKJ.K3.CZXT.Pluglus
,ISNULL(FORMAT(T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Outboundvolume--出库体积
,ISNULL(FORMAT((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Inventoryvolume--库存体积
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR1 * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_83G * (T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CONVERT(FLOAT, T1.F_LQKJ_Enterfee), '0.####'), '0')AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(CONVERT(FLOAT, T1.F_LQKJ_Warehousingfee), '0.####'), '0')AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CS.F_LQKJ_Sortingfees * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Cargosortingfee--货物分拣费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
......@@ -757,10 +763,12 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT,
SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, --体积
SUM(CAST(F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, --仓租单价
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, --装车费
SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 --卸车费
FVOLUME,-- 体积
F_ORA_DECIMAL_QTR, -- 仓租单价
F_ORA_DECIMAL_83G,-- 装车单价
F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(F_LQKJ_Enterfee AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, --进仓费
SUM(CAST(F_LQKJ_Warehousingfee AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee --出仓费
FROM(SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织
T1.FMATERIALID, -- 物料编码
......@@ -768,16 +776,18 @@ namespace LQKJ.K3.CZXT.Pluglus
T1.F_ORA_ASSISTANT,
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费
JB.FVOLUME,-- 体积
W.F_ORA_DECIMAL_QTR, -- 仓租单价
W.F_ORA_DECIMAL_83G,-- 装车单价
W.F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, -- 进仓费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee -- 出仓费
FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT) T1
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT,JB.FVOLUME,W.F_ORA_DECIMAL_QTR,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT,FVOLUME,F_ORA_DECIMAL_QTR,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1) T1
LEFT JOIN (SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织
F_ORA_ASSISTANT,
......@@ -823,8 +833,8 @@ namespace LQKJ.K3.CZXT.Pluglus
,ISNULL(FORMAT(T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Outboundvolume--出库体积
,ISNULL(FORMAT((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Inventoryvolume--库存体积
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR1 * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_83G * (T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CONVERT(FLOAT, T1.F_LQKJ_Enterfee), '0.####'), '0')AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(CONVERT(FLOAT, T1.F_LQKJ_Warehousingfee), '0.####'), '0')AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CS.F_LQKJ_Sortingfees * (T1.FSTOCKJCQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Cargosortingfee--货物分拣费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
......@@ -838,10 +848,12 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT1,
SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, --体积
SUM(CAST(F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, --仓租单价
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, --装车费
SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 --卸车费
FVOLUME,-- 体积
F_ORA_DECIMAL_QTR, -- 仓租单价
F_ORA_DECIMAL_83G,-- 装车单价
F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(F_LQKJ_Enterfee AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, --进仓费
SUM(CAST(F_LQKJ_Warehousingfee AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee --出仓费
FROM(SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织
T1.FMATERIALID, -- 物料编码
......@@ -849,16 +861,18 @@ namespace LQKJ.K3.CZXT.Pluglus
T1.F_ORA_ASSISTANT1,
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费
JB.FVOLUME,-- 体积
W.F_ORA_DECIMAL_QTR, -- 仓租单价
W.F_ORA_DECIMAL_83G,-- 装车单价
W.F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, -- 进仓费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee -- 出仓费
FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT1) T1
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,T1.F_ORA_ASSISTANT1,JB.FVOLUME,W.F_ORA_DECIMAL_QTR,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1) T1
GROUP BY FDate,FNUMBER,F_ORA_ASSISTANT1,FVOLUME,F_ORA_DECIMAL_QTR,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1) T1
LEFT JOIN (SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织
F_ORA_ASSISTANT1,
......@@ -904,8 +918,8 @@ namespace LQKJ.K3.CZXT.Pluglus
,ISNULL(FORMAT(T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Outboundvolume--出库体积
,ISNULL(FORMAT((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END, '0.####'), '0') AS F_LQKJ_Inventoryvolume--库存体积
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_QTR1 * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(T1.F_ORA_DECIMAL_83G * (T2.FSTOCKOUTQTY * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CONVERT(FLOAT, T1.F_LQKJ_Enterfee), '0.####'), '0')AS F_LQKJ_Enterfee--进仓费
,ISNULL(FORMAT(CONVERT(FLOAT, T1.F_LQKJ_Warehousingfee), '0.####'), '0')AS F_LQKJ_Warehousingfee--出仓费
,ISNULL(FORMAT(CS.F_LQKJ_Sortingfees * ((T1.FSTOCKQCQTY+T2.FSTOCKINQTY-T2.FSTOCKOUTQTY) * CASE WHEN T1.FVOLUME = 0 THEN 1 ELSE T1.FVOLUME END), '0.####'), '0') AS F_LQKJ_Cargosortingfee--货物分拣费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
......@@ -919,26 +933,30 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM(SELECT FDate,FNUMBER,
SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, --体积
SUM(CAST(F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, --仓租单价
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, --装车费
SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 --卸车费
FVOLUME,-- 体积
F_ORA_DECIMAL_QTR, -- 仓租单价
F_ORA_DECIMAL_83G,-- 装车单价
F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(F_LQKJ_Enterfee AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, --进仓费
SUM(CAST(F_LQKJ_Warehousingfee AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee --出仓费
FROM(SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织
T1.FMATERIALID, -- 物料编码
T1.FSTOCKID, -- 仓库
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费
JB.FVOLUME,-- 体积
W.F_ORA_DECIMAL_QTR, -- 仓租单价
W.F_ORA_DECIMAL_83G,-- 装车单价
W.F_ORA_DECIMAL_QTR1, -- 卸车单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_LQKJ_Enterfee, -- 进仓费
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_LQKJ_Warehousingfee -- 出仓费
FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER) T1
GROUP BY FDate,FNUMBER) T1
GROUP BY T1.FDate,T1.FMATERIALID, T1.FSTOCKID,Z.FNUMBER,JB.FVOLUME,W.F_ORA_DECIMAL_QTR,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1) T1
GROUP BY FDate,FNUMBER,FVOLUME,F_ORA_DECIMAL_QTR,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1) T1
LEFT JOIN (SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织
SUM(CAST(T1.FSTOCKINQTY AS DECIMAL(18, 4))) AS FSTOCKINQTY, -- 收入&数量(库存)的汇总
......@@ -1172,7 +1190,7 @@ namespace LQKJ.K3.CZXT.Pluglus
/// <param name="schemeId">过滤方案内码</param>
/// <param name="currentPosition">分页账表当前位置</param>
/// <returns></returns>
public DataTable GetReportData(Context ctx, string rptFormId, string rptFilterFormId, string schemeId, string F_LQKJ_OrgId, string F_LQKJ_StartDate, string F_LQKJ_EndDate, string F_LQKJ_FSourceInBills, string F_LQKJ_FSourceOutBills, int currentPosition)
public DataTable GetReportData(Context ctx, string rptFormId, string rptFilterFormId, string schemeId, string F_LQKJ_OrgId, string F_LQKJ_StartDate, string F_LQKJ_EndDate, int currentPosition)
{
ISysReportService sysReporSservice = ServiceFactory.GetSysReportService(ctx);
var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(ctx);//加载字段比较条件元数据。
......@@ -1202,14 +1220,14 @@ namespace LQKJ.K3.CZXT.Pluglus
{
filterObj["EndDate"] = F_LQKJ_EndDate;
}
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills))
{
filterObj["FSourceInBills"] = Convert.ToString(F_LQKJ_FSourceInBills);
}
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills))
{
filterObj["FSourceOutBills"] = Convert.ToString(F_LQKJ_FSourceOutBills);
}
//if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills))
//{
// filterObj["FSourceInBills"] = Convert.ToString(F_LQKJ_FSourceInBills);
//}
//if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills))
//{
// filterObj["FSourceOutBills"] = Convert.ToString(F_LQKJ_FSourceOutBills);
//}
IRptParams rptParam = new RptParams();
rptParam.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;
rptParam.CurrentPosition = currentPosition;//分页账表当前位置
......
......@@ -174,6 +174,38 @@ namespace LQKJ.K3.CZXT.Pluglus
{
F_LQKJ_FSourceOutBills = (customFilter["F_LQKJ_FSourceOutBills"] == null) ? string.Empty : Convert.ToString(customFilter["F_LQKJ_FSourceOutBills"]);
}
// 检查是否有过滤条件
string where = "";
List<string> wheres = new List<string>();
// 添加入库单据类型的过滤条件
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills) && F_LQKJ_FSourceInBills != "STK_INSTOCK,STK_MISCELLANEOUS,PRD_INSTOCK,SP_INSTOCK,STK_TRANSFERIN,SAL_RETURNSTOCK,PRD_RETURNMTRL,SUB_RETURNMTRL,STK_ASSEMBLEDAPP")
{
// 按逗号拆分字符串
string[] inBills = F_LQKJ_FSourceInBills.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (inBills.Length > 0)
{
// 拼接 IN 子句
string inClause = $" FBILLNAME IN ('{string.Join("','", inBills)}')";
wheres.Add(inClause);
}
}
// 添加出库单据类型的过滤条件
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills) && F_LQKJ_FSourceOutBills != "SAL_OUTSTOCK,SUB_FEEDMTRL,STK_TRANSFERDIRECT,STK_ASSEMBLEDAPP,SP_PICKMTRL,STK_TRANSFEROUT,STK_MISDELIVERY,PRD_PICKMTRL,PUR_MRB,PRD_RETSTOCK,SUB_PICKMTRL,PRD_FEEDMTRL")
{
// 按逗号拆分字符串
string[] outBills = F_LQKJ_FSourceOutBills.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (outBills.Length > 0)
{
// 拼接 IN 子句
string outClause = $" FBILLNAME IN ('{string.Join("','", outBills)}')";
wheres.Add(outClause);
}
}
// 拼接最终的 WHERE 子句
if (wheres.Count > 0)
{
where = " AND " + string.Join(" AND ", wheres);
}
//搜索物料收发明细表的自定义方案查询语句(仓租报表专用)
string sqlBB = string.Format(@"/*dialect*/SELECT FSCHEMEID FROM T_BAS_FILTERSCHEME where FFORMID='STK_StockDetailRpt' and FSCHEMENAME='仓租报表专用'");
string schemeId = AppServiceContext.DBService.ExecuteScalar<string>(Context, sqlBB, "");//获取过滤条件框的方案
......@@ -188,6 +220,7 @@ namespace LQKJ.K3.CZXT.Pluglus
DataTable receBillTable = new DataTable();
receBillTable.TableName = tmpTableName;
receBillTable.Columns.Add("FDate", typeof(DateTime));//日期
receBillTable.Columns.Add("FBILLNAME", typeof(string));//单据类型
receBillTable.Columns.Add("FSTOCKORGID", typeof(int));//库存组织ID
receBillTable.Columns.Add("FOwnerId", typeof(int));//货主ID
receBillTable.Columns.Add("FSTOCKID", typeof(int));//仓库ID
......@@ -224,7 +257,7 @@ namespace LQKJ.K3.CZXT.Pluglus
receBillTableS.Columns.Add("FSTOCKOUTQTY", typeof(decimal));//出库数量
receBillTableS.Columns.Add("FSTOCKJCQTY", typeof(decimal));//结存数量
receBillTableS.BeginInit();
DataTable dataTable = GetReportData(Context, "STK_StockDetailRpt", "STK_StockDetailFilter", schemeId, F_LQKJ_OrgId, F_LQKJ_StartDate, F_LQKJ_EndDate, F_LQKJ_FSourceInBills, F_LQKJ_FSourceOutBills, 0);
DataTable dataTable = GetReportData(Context, "STK_StockDetailRpt", "STK_StockDetailFilter", schemeId, F_LQKJ_OrgId, F_LQKJ_StartDate, F_LQKJ_EndDate, 0);
// 创建一个HashSet来存储唯一的记录标识符,用于判断重复项
HashSet<string> existingRecords = new HashSet<string>();
int sequenceNumber = 1; // 序号从1开始,或者根据你的需求设置
......@@ -291,57 +324,64 @@ namespace LQKJ.K3.CZXT.Pluglus
}
receBillTableS.EndInit();
Kingdee.BOS.App.Data.DBUtils.BulkInserts(this.Context, receBillTableS);
#region
//查询物料收发明细表的时候处理按单据类型取装车费卸车费的SQL语句
//单据类型(组装拆卸单) 组装拆卸单只算装车费,不算卸车费
string zzcxdsql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='组装拆卸单')
when matched then
update set t1.F_ORA_DECIMAL_83G =t2.F_ORA_DECIMAL_83G;");
update set t1.F_ORA_DECIMAL_83G =t1.FSTOCKOUTQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_83G;");
DBUtils.Execute(this.Context, zzcxdsql);
//单据类型(销售退货单) 退货单(负数的)不扣装车费
string xsthdsql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='销售退货单' AND t1.FSTOCKOUTQTY<0)
when matched then
update set t1.F_ORA_DECIMAL_QTR1 =t2.F_ORA_DECIMAL_QTR1;");
update set t1.F_ORA_DECIMAL_QTR1 =T1.FSTOCKINQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_QTR1;");
DBUtils.Execute(this.Context, xsthdsql);
//单据类型(其他出库) 不算装车费
string qtcfsql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他出库单')
when matched then
update set t1.F_ORA_DECIMAL_QTR1 =t2.F_ORA_DECIMAL_QTR1;");
update set t1.F_ORA_DECIMAL_QTR1 =T1.FSTOCKINQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_QTR1;");
DBUtils.Execute(this.Context, qtcfsql);
//单据类型(其他入库) 不算卸车费
string qtrfsql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他入库单')
when matched then
update set t1.F_ORA_DECIMAL_83G =t2.F_ORA_DECIMAL_83G;");
update set t1.F_ORA_DECIMAL_83G =t1.FSTOCKOUTQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_83G;");
DBUtils.Execute(this.Context, qtrfsql);
//除了以上的单据类型都算
string dssql = ($@"/*dialect*/merge into {receBillTableS} t1
using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1
FROM T_BD_MATERIAL
SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME NOT IN ('组装拆卸单', '销售退货单','其他出库单','其他入库单'))
when matched then
update set t1.F_ORA_DECIMAL_83G =t2.F_ORA_DECIMAL_83G,t1.F_ORA_DECIMAL_QTR1 =t2.F_ORA_DECIMAL_QTR1;");
update set t1.F_ORA_DECIMAL_83G =t1.FSTOCKOUTQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_83G,t1.F_ORA_DECIMAL_QTR1 =T1.FSTOCKINQTY * CASE WHEN t2.FVOLUME = 0 THEN 1 ELSE t2.FVOLUME END * t2.F_ORA_DECIMAL_QTR1;");
DBUtils.Execute(this.Context, dssql);
#endregion
// 执行SQL查询
string sqlsa = ($@"/*dialect*/SELECT * FROM (SELECT MIN(FSEQ) AS FSEQ,FDate--业务日期
,FSTOCKORGID--库存组织
......@@ -356,7 +396,7 @@ namespace LQKJ.K3.CZXT.Pluglus
,SUM(CAST(FSTOCKINQTY AS DECIMAL(18, 4))) AS FSTOCKINQTY--收入&数量(库存)
,SUM(CAST(FSTOCKOUTQTY AS DECIMAL(18, 4))) AS FSTOCKOUTQTY--发出&数量(库存)
FROM {receBillTableS}
WHERE FDate<>''
WHERE FDate<>'' {where}
GROUP BY FSTOCKORGID,FOwnerId,FSTOCKID,FMATERIALID,FOWNERTYPENAME,FSTOCKUNITID,FDate
UNION ALL
SELECT FSEQ,FDate--业务日期
......@@ -367,7 +407,7 @@ namespace LQKJ.K3.CZXT.Pluglus
,FOWNERTYPENAME --货主类型
,FSTOCKUNITID--库存单位
,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1,FSTOCKQCQTY,FSTOCKINQTY,FSTOCKOUTQTY FROM {receBillTableS}
WHERE (FDate IS NULL OR FDate = '' )
WHERE (FDate IS NULL OR FDate = '' ) {where}
) t1
ORDER BY FSEQ");
DynamicObjectCollection dynamicobj = DBUtils.ExecuteDynamicObject(Context, sqlsa);
......@@ -414,19 +454,22 @@ namespace LQKJ.K3.CZXT.Pluglus
if (i == 0)
{
newRow["FDate"] = Convert.ToDateTime(startDate);
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
}
else
{
newRow["FDate"] = Convert.ToDateTime(startDate).AddDays(i);//需要加i天
}
//newRow["FBILLNAME"] = data["FBILLNAME"];
newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FOwnerId"] = data["FOwnerId"];
newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"];
newRow["FSTOCKUNITID"] = data["FSTOCKUNITID"];
newRow["FOWNERTYPENAME"] = data["FOWNERTYPENAME"];
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
//newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
//newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
......@@ -448,20 +491,22 @@ namespace LQKJ.K3.CZXT.Pluglus
if (i == 0)
{
newRow["FDate"] = Convert.ToDateTime(startDate);
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
}
else
{
newRow["FDate"] = Convert.ToDateTime(startDate).AddDays(i);//需要加i天
}
//newRow["FBILLNAME"] = data["FBILLNAME"];
newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FOwnerId"] = data["FOwnerId"];
newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"];
newRow["FSTOCKUNITID"] = data["FSTOCKUNITID"];
newRow["FOWNERTYPENAME"] = data["FOWNERTYPENAME"];
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
//newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
//newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
......@@ -510,6 +555,8 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
jcsl = jcsl + Convert.ToDecimal(data["FSTOCKQCQTY"]) + Convert.ToDecimal(data["FSTOCKINQTY"]) - Convert.ToDecimal(data["FSTOCKOUTQTY"]);
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
}
else
{
......@@ -518,8 +565,6 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKOUTQTY"] = 0;
newRow["FSTOCKQCQTY"] = jcsl;
}
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FOwnerId"] = data["FOwnerId"];
newRow["FSTOCKID"] = data["FSTOCKID"];
......@@ -535,8 +580,8 @@ namespace LQKJ.K3.CZXT.Pluglus
}
else
{
string sqldate = ($@"/*dialect*/SELECT FSTOCKORGID,FOwnerId,FSTOCKID,FMATERIALID,FOWNERTYPENAME,FSTOCKUNITID,
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G--装车费
string sqldate = ($@"/*dialect*/SELECT FSTOCKORGID,FOwnerId,FSTOCKID,FMATERIALID,FOWNERTYPENAME,FSTOCKUNITID
,SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G--装车费
,SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1--卸车费
,SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 2))) AS FSTOCKQCQTY--期初&数量(库存)
,SUM(CAST(FSTOCKINQTY AS DECIMAL(18, 2))) AS FSTOCKINQTY--收入&数量(库存)
......@@ -650,10 +695,12 @@ namespace LQKJ.K3.CZXT.Pluglus
,ISNULL(FORMAT((CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY)), '0.####'), '0') AS F_LQKJ_Totalvolume--总体积
,ISNULL(FORMAT((W.F_ORA_DECIMAL_QTR), '0.####'), '0') AS F_LQKJ_Warehouserent--仓租单价
,ISNULL(FORMAT(((CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY)) * W.F_ORA_DECIMAL_QTR), '0.####'), '0') AS F_LQKJ_Warehouse--仓租
,ISNULL(FORMAT((T1.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloadingfee--卸车费单价
,ISNULL(FORMAT((T1.FSTOCKINQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * T1.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloading--卸车费
,ISNULL(FORMAT((T1.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loadingfee --装车费单价
,ISNULL(FORMAT((T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * T1.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loading--装车费
,ISNULL(FORMAT((W.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloadingfee--卸车费单价
--,ISNULL(FORMAT((T1.FSTOCKINQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * W.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloading--卸车费
,ISNULL(FORMAT((T1.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloading--卸车费
,ISNULL(FORMAT((W.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loadingfee --装车费单价
--,ISNULL(FORMAT((T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * W.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loading--装车费
,ISNULL(FORMAT((T1.F_ORA_DECIMAL_83G), '0.####'), '0') AS F_LQKJ_Loading--装车费
,ISNULL(FORMAT((CS.F_LQKJ_Sortingfees), '0.####'), '0') AS F_LQKJ_Sortingfees--分拣费单价
,ISNULL(FORMAT((T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END * CS.F_LQKJ_Sortingfees), '0.####'), '0') AS F_LQKJ_Sorting--分拣费
,ISNULL(FORMAT((SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
......@@ -662,8 +709,8 @@ namespace LQKJ.K3.CZXT.Pluglus
,ISNULL(FORMAT((SS.F_LQKJ_Specialloading), '0.####'), '0') AS F_LQKJ_Specialloading--特殊装货
,ISNULL(FORMAT((SS.F_LQKJ_Inspectionfee), '0.####'), '0') AS F_LQKJ_Inspectionfee--检查及包装费
,ISNULL(FORMAT((SS.F_LQKJ_Wdbczce), '0.####'), '0') AS F_LQKJ_Wdbczce--未达标仓租差额
,ISNULL(FORMAT((W.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY) * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END)) + (T1.F_ORA_DECIMAL_QTR1 * ((T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY) * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END))
+ (T1.F_ORA_DECIMAL_83G * (T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END)) + (CS.F_LQKJ_Sortingfees * ((T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY) * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END))
,ISNULL(FORMAT((W.F_ORA_DECIMAL_QTR * ((T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY) * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END)) + (W.F_ORA_DECIMAL_QTR1 * ((T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY) * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END))
+ (W.F_ORA_DECIMAL_83G * (T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END)) + (CS.F_LQKJ_Sortingfees * ((T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY) * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END))
+ SS.F_LQKJ_Scanfee + SS.F_LQKJ_JDchannelfee + SS.F_LQKJ_Breturnfees + SS.F_LQKJ_Specialloading + SS.F_LQKJ_Inspectionfee + SS.F_LQKJ_Wdbczce, '0.####'), '0') AS F_LQKJ_Totalcosts--费用合计
FROM {0} T1
LEFT JOIN LQKJ_SettupParameters CS ON 1=1 --设置参数表
......@@ -903,7 +950,7 @@ WHERE 1=1 AND (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY !=0 OR T1.FSTOC
/// <param name="schemeId">过滤方案内码</param>
/// <param name="currentPosition">分页账表当前位置</param>
/// <returns></returns>
public DataTable GetReportData(Context ctx, string rptFormId, string rptFilterFormId, string schemeId, string F_LQKJ_OrgId, string F_LQKJ_StartDate, string F_LQKJ_EndDate,string F_LQKJ_FSourceInBills, string F_LQKJ_FSourceOutBills, int currentPosition)
public DataTable GetReportData(Context ctx, string rptFormId, string rptFilterFormId, string schemeId, string F_LQKJ_OrgId, string F_LQKJ_StartDate, string F_LQKJ_EndDate, int currentPosition)
{
//删除物料收发明细表临时表
//DBServiceHelper.DropTable(Context, new HashSet<string>() { tmpTableName });
......@@ -936,14 +983,14 @@ WHERE 1=1 AND (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY !=0 OR T1.FSTOC
{
filterObj["EndDate"] = Convert.ToDateTime(F_LQKJ_EndDate);
}
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills))
{
filterObj["FSourceInBills"] = Convert.ToString(F_LQKJ_FSourceInBills);
}
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills))
{
filterObj["FSourceOutBills"] = Convert.ToString(F_LQKJ_FSourceOutBills);
}
//if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills))
//{
// filterObj["FSourceInBills"] = Convert.ToString(F_LQKJ_FSourceInBills);
//}
//if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills))
//{
// filterObj["FSourceOutBills"] = Convert.ToString(F_LQKJ_FSourceOutBills);
//}
IRptParams rptParam = new RptParams();
rptParam.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;
rptParam.CurrentPosition = currentPosition;//分页账表当前位置
......@@ -995,6 +1042,7 @@ WHERE 1=1 AND (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY !=0 OR T1.FSTOC
builder.AppendLine(string.Format(@"/*dialect*/IF NOT EXISTS (SELECT * FROM sysobjects WHERE name = '{0}' AND type = 'U') ", tmpTableName));
builder.AppendLine(string.Format(@"CREATE TABLE {0} (", tmpTableName));
builder.AppendLine("FDate DATE,");//日期
builder.AppendLine("FBILLNAME NVARCHAR(100),");//单据类型
builder.AppendLine("FSTOCKORGID INT,");//库存组织ID
builder.AppendLine("FOwnerId INT,");//货主ID
builder.AppendLine("FSTOCKID INT,");//仓库ID
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论