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

1

上级 1db9e0e7
...@@ -39,17 +39,18 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -39,17 +39,18 @@ namespace LQKJ.K3.CZXT.Pluglus
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
string Sql = @"/*dialect*/SELECT T1.*,CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END AS F_LQKJ_Unitvolume--单位体积 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 --总体积 ,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--仓租单价 ,W.F_ORA_DECIMAL_QTR 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 --仓租 ,W.F_ORA_DECIMAL_QTR * (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 --卸车单价 ,W.F_ORA_DECIMAL_QTR1 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 --卸车费 ,W.F_ORA_DECIMAL_QTR1 * (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 --装车单价 ,W.F_ORA_DECIMAL_83G 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_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 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--分拣费 ,T2.F_LQKJ_Sortingfees * (T1.FSTOCKOUTQTY * CASE WHEN JB.FVOLUME = 0 THEN 1 ELSE JB.FVOLUME END) AS F_LQKJ_Sorting--分拣费
INTO {0} INTO {0}
FROM {1} T1 FROM {1} T1
LEFT JOIN LQKJ_SettupParameters T2 on 1=1 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"; LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID";
sb.AppendFormat(Sql, tableName, strTable); sb.AppendFormat(Sql, tableName, strTable);
Logger.Info("物料收发汇总表:", sb.ToString()); Logger.Info("物料收发汇总表:", sb.ToString());
......
...@@ -139,43 +139,6 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -139,43 +139,6 @@ namespace LQKJ.K3.CZXT.Pluglus
} }
string F_LQKJ_StartDate = ""; string F_LQKJ_StartDate = "";
string F_LQKJ_EndDate = ""; 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)
{ {
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 ...@@ -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"]); 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 sqlBB = string.Format(@"/*dialect*/SELECT FSCHEMEID FROM T_BAS_FILTERSCHEME where FFORMID='STK_StockDetailRpt' and FSCHEMENAME='仓租报表专用'");
string schemeId = AppServiceContext.DBService.ExecuteScalar<string>(Context, sqlBB, "");//获取过滤条件框的方案 string schemeId = AppServiceContext.DBService.ExecuteScalar<string>(Context, sqlBB, "");//获取过滤条件框的方案
...@@ -264,7 +259,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -264,7 +259,7 @@ namespace LQKJ.K3.CZXT.Pluglus
receBillTableS.Columns.Add("FSTOCKOUTQTY", typeof(decimal));//出库数量 receBillTableS.Columns.Add("FSTOCKOUTQTY", typeof(decimal));//出库数量
receBillTableS.Columns.Add("FSTOCKJCQTY", typeof(decimal));//结存数量 receBillTableS.Columns.Add("FSTOCKJCQTY", typeof(decimal));//结存数量
receBillTableS.BeginInit(); 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开始,或者根据你的需求设置 int sequenceNumber = 1; // 序号从1开始,或者根据你的需求设置
// DataTable 有数据 // DataTable 有数据
if (dataTable != null && dataTable.Rows.Count > 0) if (dataTable != null && dataTable.Rows.Count > 0)
...@@ -276,6 +271,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -276,6 +271,7 @@ namespace LQKJ.K3.CZXT.Pluglus
// 设置自增长的序号 // 设置自增长的序号
newRow["FSEQ"] = sequenceNumber++; newRow["FSEQ"] = sequenceNumber++;
newRow["FDate"] = item["FDate"]; newRow["FDate"] = item["FDate"];
newRow["FBILLNAME"] = item["FBILLNAME"];
newRow["FSTOCKORGID"] = item["FSTOCKORGID"]; newRow["FSTOCKORGID"] = item["FSTOCKORGID"];
newRow["FSTOCKID"] = item["FSTOCKID"]; newRow["FSTOCKID"] = item["FSTOCKID"];
newRow["FMATERIALID"] = item["FMATERIALID"]; newRow["FMATERIALID"] = item["FMATERIALID"];
...@@ -296,52 +292,57 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -296,52 +292,57 @@ namespace LQKJ.K3.CZXT.Pluglus
//单据类型(组装拆卸单) 组装拆卸单只算装车费,不算卸车费 //单据类型(组装拆卸单) 组装拆卸单只算装车费,不算卸车费
string zzcxdsql = ($@"/*dialect*/merge into {receBillTableS} t1 string zzcxdsql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='组装拆卸单') on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='组装拆卸单')
when matched then 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); DBUtils.Execute(this.Context, zzcxdsql);
//单据类型(销售退货单) 退货单(负数的)不扣装车费 //单据类型(销售退货单) 退货单(负数的)不扣装车费
string xsthdsql = ($@"/*dialect*/merge into {receBillTableS} t1 string xsthdsql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='销售退货单' AND t1.FSTOCKOUTQTY<0) on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='销售退货单' AND t1.FSTOCKOUTQTY<0)
when matched then 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); DBUtils.Execute(this.Context, xsthdsql);
//单据类型(其他出库) 不算装车费 //单据类型(其他出库) 不算装车费
string qtcfsql = ($@"/*dialect*/merge into {receBillTableS} t1 string qtcfsql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他出库单') on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他出库单')
when matched then 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); DBUtils.Execute(this.Context, qtcfsql);
//单据类型(其他入库) 不算卸车费 //单据类型(其他入库) 不算卸车费
string qtrfsql = ($@"/*dialect*/merge into {receBillTableS} t1 string qtrfsql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他入库单') on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他入库单')
when matched then 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); DBUtils.Execute(this.Context, qtrfsql);
//除了以上的单据类型都算 //除了以上的单据类型都算
string dssql = ($@"/*dialect*/merge into {receBillTableS} t1 string dssql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME NOT IN ('组装拆卸单', '销售退货单','其他出库单','其他入库单')) on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME NOT IN ('组装拆卸单', '销售退货单','其他出库单','其他入库单'))
when matched then 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); DBUtils.Execute(this.Context, dssql);
string sqlsa = ($@"/*dialect*/SELECT * FROM (SELECT MIN(T1.FSEQ) AS FSEQ,T1.FDate--业务日期 string sqlsa = ($@"/*dialect*/SELECT * FROM (SELECT MIN(T1.FSEQ) AS FSEQ,T1.FDate--业务日期
,T1.FSTOCKORGID--库存组织 ,T1.FSTOCKORGID--库存组织
...@@ -356,7 +357,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -356,7 +357,7 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM {receBillTableS} T1 FROM {receBillTableS} T1
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
LEFT JOIN T_BD_STOCK CKBM ON T1.FSTOCKID=CKBM.FSTOCKID 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 GROUP BY T1.FSTOCKORGID,T1.FSTOCKID,T1.FMATERIALID,T1.FDate
UNION ALL UNION ALL
SELECT T1.FSEQ,T1.FDate--业务日期 SELECT T1.FSEQ,T1.FDate--业务日期
...@@ -366,7 +367,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -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 ,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_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
LEFT JOIN T_BD_STOCK CKBM ON T1.FSTOCKID=CKBM.FSTOCKID 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 ) t1
ORDER BY FSEQ"); ORDER BY FSEQ");
DataTable dataTablesa = DBUtils.ExecuteDataSet(this.Context, sqlsa).Tables[0]; DataTable dataTablesa = DBUtils.ExecuteDataSet(this.Context, sqlsa).Tables[0];
...@@ -413,6 +414,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -413,6 +414,8 @@ namespace LQKJ.K3.CZXT.Pluglus
if (i == 0) if (i == 0)
{ {
newRow["FDate"] = Convert.ToDateTime(startDate); 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 else
{ {
...@@ -421,13 +424,10 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -421,13 +424,10 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKORGID"] = data["FSTOCKORGID"]; newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FSTOCKID"] = data["FSTOCKID"]; newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"]; 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["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"]; newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"]; newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
newRow["FSTOCKJCQTY"] = Convert.ToDecimal(data["FSTOCKQCQTY"]) + Convert.ToDecimal(data["FSTOCKINQTY"]) - Convert.ToDecimal(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); receBillTable.Rows.Add(newRow);
} }
...@@ -446,6 +446,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -446,6 +446,8 @@ namespace LQKJ.K3.CZXT.Pluglus
if (i == 0) if (i == 0)
{ {
newRow["FDate"] = Convert.ToDateTime(startDate); 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 else
{ {
...@@ -454,8 +456,6 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -454,8 +456,6 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKORGID"] = data["FSTOCKORGID"]; newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FSTOCKID"] = data["FSTOCKID"]; newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"]; 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["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"]; newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"]; newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
...@@ -486,13 +486,21 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -486,13 +486,21 @@ namespace LQKJ.K3.CZXT.Pluglus
DataRow newRow = receBillTable.NewRow(); DataRow newRow = receBillTable.NewRow();
if (i == 0) if (i == 0)
{ {
string FSTOCKORGID = Convert.ToString(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKORGID"]); if (receBillTable.Rows.Count > 0) // 检查是否有行
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"]); string FSTOCKORGID = Convert.ToString(receBillTable.Rows[receBillTable.Rows.Count - 1]["FSTOCKORGID"]);
newRow["FSTOCKQCQTY"] = jcsl; 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 else
{ {
...@@ -504,7 +512,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -504,7 +512,8 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"]; newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"]; newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
jcsl = jcsl + Convert.ToDecimal(data["FSTOCKQCQTY"]) + Convert.ToDecimal(data["FSTOCKINQTY"]) - Convert.ToDecimal(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 else
{ {
...@@ -513,8 +522,6 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -513,8 +522,6 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKOUTQTY"] = 0; newRow["FSTOCKOUTQTY"] = 0;
newRow["FSTOCKQCQTY"] = jcsl; 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["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FSTOCKID"] = data["FSTOCKID"]; newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"]; newRow["FMATERIALID"] = data["FMATERIALID"];
...@@ -627,11 +634,6 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -627,11 +634,6 @@ namespace LQKJ.K3.CZXT.Pluglus
{ {
F_ORA_ASSISTANT1S = true; F_ORA_ASSISTANT1S = true;
} }
// 如果两个字段都找到了,可以提前结束循环
//if (F_ORA_ASSISTANT && F_ORA_ASSISTANTS)
//{
// break;
//}
} }
try try
...@@ -659,8 +661,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -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(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.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_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(CONVERT(FLOAT, T1.F_LQKJ_Enterfee), '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_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(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_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费 ,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
...@@ -674,10 +676,12 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -674,10 +676,12 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT,F_ORA_ASSISTANT1, FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT,F_ORA_ASSISTANT1,
SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总 SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总 SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, --体积 FVOLUME,-- 体积
SUM(CAST(F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, --仓租单价 F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, --装车费 F_ORA_DECIMAL_83G,-- 装车单价
SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 --卸车费 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, -- 日期 FROM(SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织 Z.FNUMBER, --组织
T1.FMATERIALID, -- 物料编码 T1.FMATERIALID, -- 物料编码
...@@ -685,16 +689,18 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -685,16 +689,18 @@ namespace LQKJ.K3.CZXT.Pluglus
T1.F_ORA_ASSISTANT,T1.F_ORA_ASSISTANT1, T1.F_ORA_ASSISTANT,T1.F_ORA_ASSISTANT1,
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总 SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总 SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积 JB.FVOLUME,-- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价 W.F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费 W.F_ORA_DECIMAL_83G,-- 装车单价
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费 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 FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表 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_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.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 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) 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, -- 日期 LEFT JOIN (SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织 Z.FNUMBER, --组织
F_ORA_ASSISTANT,F_ORA_ASSISTANT1, F_ORA_ASSISTANT,F_ORA_ASSISTANT1,
...@@ -742,8 +748,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -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(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.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_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(CONVERT(FLOAT, T1.F_LQKJ_Enterfee), '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_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(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_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费 ,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
...@@ -757,10 +763,12 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -757,10 +763,12 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT, FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT,
SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总 SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总 SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, --体积 FVOLUME,-- 体积
SUM(CAST(F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, --仓租单价 F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, --装车费 F_ORA_DECIMAL_83G,-- 装车单价
SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 --卸车费 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, -- 日期 FROM(SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织 Z.FNUMBER, --组织
T1.FMATERIALID, -- 物料编码 T1.FMATERIALID, -- 物料编码
...@@ -768,16 +776,18 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -768,16 +776,18 @@ namespace LQKJ.K3.CZXT.Pluglus
T1.F_ORA_ASSISTANT, T1.F_ORA_ASSISTANT,
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总 SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总 SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积 JB.FVOLUME,-- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价 W.F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费 W.F_ORA_DECIMAL_83G,-- 装车单价
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费 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 FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表 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_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.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 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) 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, -- 日期 LEFT JOIN (SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织 Z.FNUMBER, --组织
F_ORA_ASSISTANT, F_ORA_ASSISTANT,
...@@ -823,8 +833,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -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(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.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_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(CONVERT(FLOAT, T1.F_LQKJ_Enterfee), '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_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(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_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费 ,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
...@@ -838,10 +848,12 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -838,10 +848,12 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT1, FROM(SELECT FDate,FNUMBER,F_ORA_ASSISTANT1,
SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总 SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总 SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, --体积 FVOLUME,-- 体积
SUM(CAST(F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, --仓租单价 F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, --装车费 F_ORA_DECIMAL_83G,-- 装车单价
SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 --卸车费 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, -- 日期 FROM(SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织 Z.FNUMBER, --组织
T1.FMATERIALID, -- 物料编码 T1.FMATERIALID, -- 物料编码
...@@ -849,16 +861,18 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -849,16 +861,18 @@ namespace LQKJ.K3.CZXT.Pluglus
T1.F_ORA_ASSISTANT1, T1.F_ORA_ASSISTANT1,
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总 SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总 SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积 JB.FVOLUME,-- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价 W.F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费 W.F_ORA_DECIMAL_83G,-- 装车单价
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费 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 FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表 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_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.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 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) 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, -- 日期 LEFT JOIN (SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织 Z.FNUMBER, --组织
F_ORA_ASSISTANT1, F_ORA_ASSISTANT1,
...@@ -904,8 +918,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -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(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.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_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(CONVERT(FLOAT, T1.F_LQKJ_Enterfee), '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_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(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_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费 ,ISNULL(FORMAT(CONVERT(FLOAT, SS.F_LQKJ_JDchannelfee), '0.####'), '0') AS F_LQKJ_JDchannelfee--京东渠道贴标费
...@@ -919,26 +933,30 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -919,26 +933,30 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM(SELECT FDate,FNUMBER, FROM(SELECT FDate,FNUMBER,
SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总 SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总 SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, --体积 FVOLUME,-- 体积
SUM(CAST(F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, --仓租单价 F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, --装车费 F_ORA_DECIMAL_83G,-- 装车单价
SUM(CAST(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 --卸车费 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, -- 日期 FROM(SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织 Z.FNUMBER, --组织
T1.FMATERIALID, -- 物料编码 T1.FMATERIALID, -- 物料编码
T1.FSTOCKID, -- 仓库 T1.FSTOCKID, -- 仓库
SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总 SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY, -- 期初数量(库存)的汇总
SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总 SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY, -- 结存数量(库存)的汇总
SUM(CAST(JB.FVOLUME AS DECIMAL(18, 4))) AS FVOLUME, -- 体积 JB.FVOLUME,-- 体积
SUM(CAST(W.F_ORA_DECIMAL_QTR AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR, -- 仓租单价 W.F_ORA_DECIMAL_QTR, -- 仓租单价
SUM(CAST(T1.F_ORA_DECIMAL_83G AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_83G, -- 装车费 W.F_ORA_DECIMAL_83G,-- 装车单价
SUM(CAST(T1.F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1 -- 卸车费 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 FROM {0} T1
LEFT JOIN T_ORG_ORGANIZATIONS Z ON T1.FSTOCKORGID=Z.FORGID --组织表 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_MaterialBase JB ON JB.FMATERIALID=T1.FMATERIALID
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.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 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) T1 GROUP BY FDate,FNUMBER,FVOLUME,F_ORA_DECIMAL_QTR,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1) T1
LEFT JOIN (SELECT T1.FDate, -- 日期 LEFT JOIN (SELECT T1.FDate, -- 日期
Z.FNUMBER, --组织 Z.FNUMBER, --组织
SUM(CAST(T1.FSTOCKINQTY AS DECIMAL(18, 4))) AS FSTOCKINQTY, -- 收入&数量(库存)的汇总 SUM(CAST(T1.FSTOCKINQTY AS DECIMAL(18, 4))) AS FSTOCKINQTY, -- 收入&数量(库存)的汇总
...@@ -1172,7 +1190,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -1172,7 +1190,7 @@ namespace LQKJ.K3.CZXT.Pluglus
/// <param name="schemeId">过滤方案内码</param> /// <param name="schemeId">过滤方案内码</param>
/// <param name="currentPosition">分页账表当前位置</param> /// <param name="currentPosition">分页账表当前位置</param>
/// <returns></returns> /// <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); ISysReportService sysReporSservice = ServiceFactory.GetSysReportService(ctx);
var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(ctx);//加载字段比较条件元数据。 var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(ctx);//加载字段比较条件元数据。
...@@ -1202,14 +1220,14 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -1202,14 +1220,14 @@ namespace LQKJ.K3.CZXT.Pluglus
{ {
filterObj["EndDate"] = F_LQKJ_EndDate; filterObj["EndDate"] = F_LQKJ_EndDate;
} }
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills)) //if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills))
{ //{
filterObj["FSourceInBills"] = Convert.ToString(F_LQKJ_FSourceInBills); // filterObj["FSourceInBills"] = Convert.ToString(F_LQKJ_FSourceInBills);
} //}
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills)) //if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills))
{ //{
filterObj["FSourceOutBills"] = Convert.ToString(F_LQKJ_FSourceOutBills); // filterObj["FSourceOutBills"] = Convert.ToString(F_LQKJ_FSourceOutBills);
} //}
IRptParams rptParam = new RptParams(); IRptParams rptParam = new RptParams();
rptParam.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id; rptParam.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;
rptParam.CurrentPosition = currentPosition;//分页账表当前位置 rptParam.CurrentPosition = currentPosition;//分页账表当前位置
......
...@@ -174,6 +174,38 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -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"]); 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 sqlBB = string.Format(@"/*dialect*/SELECT FSCHEMEID FROM T_BAS_FILTERSCHEME where FFORMID='STK_StockDetailRpt' and FSCHEMENAME='仓租报表专用'");
string schemeId = AppServiceContext.DBService.ExecuteScalar<string>(Context, sqlBB, "");//获取过滤条件框的方案 string schemeId = AppServiceContext.DBService.ExecuteScalar<string>(Context, sqlBB, "");//获取过滤条件框的方案
...@@ -188,6 +220,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -188,6 +220,7 @@ namespace LQKJ.K3.CZXT.Pluglus
DataTable receBillTable = new DataTable(); DataTable receBillTable = new DataTable();
receBillTable.TableName = tmpTableName; receBillTable.TableName = tmpTableName;
receBillTable.Columns.Add("FDate", typeof(DateTime));//日期 receBillTable.Columns.Add("FDate", typeof(DateTime));//日期
receBillTable.Columns.Add("FBILLNAME", typeof(string));//单据类型
receBillTable.Columns.Add("FSTOCKORGID", typeof(int));//库存组织ID receBillTable.Columns.Add("FSTOCKORGID", typeof(int));//库存组织ID
receBillTable.Columns.Add("FOwnerId", typeof(int));//货主ID receBillTable.Columns.Add("FOwnerId", typeof(int));//货主ID
receBillTable.Columns.Add("FSTOCKID", typeof(int));//仓库ID receBillTable.Columns.Add("FSTOCKID", typeof(int));//仓库ID
...@@ -224,7 +257,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -224,7 +257,7 @@ namespace LQKJ.K3.CZXT.Pluglus
receBillTableS.Columns.Add("FSTOCKOUTQTY", typeof(decimal));//出库数量 receBillTableS.Columns.Add("FSTOCKOUTQTY", typeof(decimal));//出库数量
receBillTableS.Columns.Add("FSTOCKJCQTY", typeof(decimal));//结存数量 receBillTableS.Columns.Add("FSTOCKJCQTY", typeof(decimal));//结存数量
receBillTableS.BeginInit(); 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来存储唯一的记录标识符,用于判断重复项
HashSet<string> existingRecords = new HashSet<string>(); HashSet<string> existingRecords = new HashSet<string>();
int sequenceNumber = 1; // 序号从1开始,或者根据你的需求设置 int sequenceNumber = 1; // 序号从1开始,或者根据你的需求设置
...@@ -291,57 +324,64 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -291,57 +324,64 @@ namespace LQKJ.K3.CZXT.Pluglus
} }
receBillTableS.EndInit(); receBillTableS.EndInit();
Kingdee.BOS.App.Data.DBUtils.BulkInserts(this.Context, receBillTableS); Kingdee.BOS.App.Data.DBUtils.BulkInserts(this.Context, receBillTableS);
#region
//查询物料收发明细表的时候处理按单据类型取装车费卸车费的SQL语句 //查询物料收发明细表的时候处理按单据类型取装车费卸车费的SQL语句
//单据类型(组装拆卸单) 组装拆卸单只算装车费,不算卸车费 //单据类型(组装拆卸单) 组装拆卸单只算装车费,不算卸车费
string zzcxdsql = ($@"/*dialect*/merge into {receBillTableS} t1 string zzcxdsql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='组装拆卸单') on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='组装拆卸单')
when matched then 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); DBUtils.Execute(this.Context, zzcxdsql);
//单据类型(销售退货单) 退货单(负数的)不扣装车费 //单据类型(销售退货单) 退货单(负数的)不扣装车费
string xsthdsql = ($@"/*dialect*/merge into {receBillTableS} t1 string xsthdsql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='销售退货单' AND t1.FSTOCKOUTQTY<0) on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='销售退货单' AND t1.FSTOCKOUTQTY<0)
when matched then 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); DBUtils.Execute(this.Context, xsthdsql);
//单据类型(其他出库) 不算装车费 //单据类型(其他出库) 不算装车费
string qtcfsql = ($@"/*dialect*/merge into {receBillTableS} t1 string qtcfsql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他出库单') on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他出库单')
when matched then 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); DBUtils.Execute(this.Context, qtcfsql);
//单据类型(其他入库) 不算卸车费 //单据类型(其他入库) 不算卸车费
string qtrfsql = ($@"/*dialect*/merge into {receBillTableS} t1 string qtrfsql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他入库单') on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME='其他入库单')
when matched then 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); DBUtils.Execute(this.Context, qtrfsql);
//除了以上的单据类型都算 //除了以上的单据类型都算
string dssql = ($@"/*dialect*/merge into {receBillTableS} t1 string dssql = ($@"/*dialect*/merge into {receBillTableS} t1
using ( using (
SELECT FMATERIALID,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1 SELECT W.FMATERIALID,W.F_ORA_DECIMAL_83G,W.F_ORA_DECIMAL_QTR1,JB.FVOLUME
FROM T_BD_MATERIAL FROM T_BD_MATERIAL W
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
) t2 ) t2
on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME NOT IN ('组装拆卸单', '销售退货单','其他出库单','其他入库单')) on (t1.FMATERIALID=t2.FMATERIALID AND t1.FBILLNAME NOT IN ('组装拆卸单', '销售退货单','其他出库单','其他入库单'))
when matched then 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); DBUtils.Execute(this.Context, dssql);
#endregion
// 执行SQL查询 // 执行SQL查询
string sqlsa = ($@"/*dialect*/SELECT * FROM (SELECT MIN(FSEQ) AS FSEQ,FDate--业务日期 string sqlsa = ($@"/*dialect*/SELECT * FROM (SELECT MIN(FSEQ) AS FSEQ,FDate--业务日期
,FSTOCKORGID--库存组织 ,FSTOCKORGID--库存组织
...@@ -356,7 +396,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -356,7 +396,7 @@ namespace LQKJ.K3.CZXT.Pluglus
,SUM(CAST(FSTOCKINQTY AS DECIMAL(18, 4))) AS FSTOCKINQTY--收入&数量(库存) ,SUM(CAST(FSTOCKINQTY AS DECIMAL(18, 4))) AS FSTOCKINQTY--收入&数量(库存)
,SUM(CAST(FSTOCKOUTQTY AS DECIMAL(18, 4))) AS FSTOCKOUTQTY--发出&数量(库存) ,SUM(CAST(FSTOCKOUTQTY AS DECIMAL(18, 4))) AS FSTOCKOUTQTY--发出&数量(库存)
FROM {receBillTableS} FROM {receBillTableS}
WHERE FDate<>'' WHERE FDate<>'' {where}
GROUP BY FSTOCKORGID,FOwnerId,FSTOCKID,FMATERIALID,FOWNERTYPENAME,FSTOCKUNITID,FDate GROUP BY FSTOCKORGID,FOwnerId,FSTOCKID,FMATERIALID,FOWNERTYPENAME,FSTOCKUNITID,FDate
UNION ALL UNION ALL
SELECT FSEQ,FDate--业务日期 SELECT FSEQ,FDate--业务日期
...@@ -367,7 +407,7 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -367,7 +407,7 @@ namespace LQKJ.K3.CZXT.Pluglus
,FOWNERTYPENAME --货主类型 ,FOWNERTYPENAME --货主类型
,FSTOCKUNITID--库存单位 ,FSTOCKUNITID--库存单位
,F_ORA_DECIMAL_83G,F_ORA_DECIMAL_QTR1,FSTOCKQCQTY,FSTOCKINQTY,FSTOCKOUTQTY FROM {receBillTableS} ,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 ) t1
ORDER BY FSEQ"); ORDER BY FSEQ");
DynamicObjectCollection dynamicobj = DBUtils.ExecuteDynamicObject(Context, sqlsa); DynamicObjectCollection dynamicobj = DBUtils.ExecuteDynamicObject(Context, sqlsa);
...@@ -414,19 +454,22 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -414,19 +454,22 @@ namespace LQKJ.K3.CZXT.Pluglus
if (i == 0) if (i == 0)
{ {
newRow["FDate"] = Convert.ToDateTime(startDate); 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 else
{ {
newRow["FDate"] = Convert.ToDateTime(startDate).AddDays(i);//需要加i天 newRow["FDate"] = Convert.ToDateTime(startDate).AddDays(i);//需要加i天
} }
//newRow["FBILLNAME"] = data["FBILLNAME"];
newRow["FSTOCKORGID"] = data["FSTOCKORGID"]; newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FOwnerId"] = data["FOwnerId"]; newRow["FOwnerId"] = data["FOwnerId"];
newRow["FSTOCKID"] = data["FSTOCKID"]; newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"]; newRow["FMATERIALID"] = data["FMATERIALID"];
newRow["FSTOCKUNITID"] = data["FSTOCKUNITID"]; newRow["FSTOCKUNITID"] = data["FSTOCKUNITID"];
newRow["FOWNERTYPENAME"] = data["FOWNERTYPENAME"]; newRow["FOWNERTYPENAME"] = data["FOWNERTYPENAME"];
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"]; //newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"]; //newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"]; newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"]; newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"]; newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
...@@ -448,20 +491,22 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -448,20 +491,22 @@ namespace LQKJ.K3.CZXT.Pluglus
if (i == 0) if (i == 0)
{ {
newRow["FDate"] = Convert.ToDateTime(startDate); 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 else
{ {
newRow["FDate"] = Convert.ToDateTime(startDate).AddDays(i);//需要加i天 newRow["FDate"] = Convert.ToDateTime(startDate).AddDays(i);//需要加i天
} }
//newRow["FBILLNAME"] = data["FBILLNAME"];
newRow["FSTOCKORGID"] = data["FSTOCKORGID"]; newRow["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FOwnerId"] = data["FOwnerId"]; newRow["FOwnerId"] = data["FOwnerId"];
newRow["FSTOCKID"] = data["FSTOCKID"]; newRow["FSTOCKID"] = data["FSTOCKID"];
newRow["FMATERIALID"] = data["FMATERIALID"]; newRow["FMATERIALID"] = data["FMATERIALID"];
newRow["FSTOCKUNITID"] = data["FSTOCKUNITID"]; newRow["FSTOCKUNITID"] = data["FSTOCKUNITID"];
newRow["FOWNERTYPENAME"] = data["FOWNERTYPENAME"]; newRow["FOWNERTYPENAME"] = data["FOWNERTYPENAME"];
newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"]; //newRow["F_ORA_DECIMAL_83G"] = data["F_ORA_DECIMAL_83G"];
newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"]; //newRow["F_ORA_DECIMAL_QTR1"] = data["F_ORA_DECIMAL_QTR1"];
newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"]; newRow["FSTOCKQCQTY"] = data["FSTOCKQCQTY"];
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"]; newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"]; newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
...@@ -510,6 +555,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -510,6 +555,8 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"]; newRow["FSTOCKINQTY"] = data["FSTOCKINQTY"];
newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"]; newRow["FSTOCKOUTQTY"] = data["FSTOCKOUTQTY"];
jcsl = jcsl + Convert.ToDecimal(data["FSTOCKQCQTY"]) + Convert.ToDecimal(data["FSTOCKINQTY"]) - Convert.ToDecimal(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 else
{ {
...@@ -518,8 +565,6 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -518,8 +565,6 @@ namespace LQKJ.K3.CZXT.Pluglus
newRow["FSTOCKOUTQTY"] = 0; newRow["FSTOCKOUTQTY"] = 0;
newRow["FSTOCKQCQTY"] = jcsl; 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["FSTOCKORGID"] = data["FSTOCKORGID"];
newRow["FOwnerId"] = data["FOwnerId"]; newRow["FOwnerId"] = data["FOwnerId"];
newRow["FSTOCKID"] = data["FSTOCKID"]; newRow["FSTOCKID"] = data["FSTOCKID"];
...@@ -535,8 +580,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -535,8 +580,8 @@ namespace LQKJ.K3.CZXT.Pluglus
} }
else else
{ {
string sqldate = ($@"/*dialect*/SELECT FSTOCKORGID,FOwnerId,FSTOCKID,FMATERIALID,FOWNERTYPENAME,FSTOCKUNITID, 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_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(F_ORA_DECIMAL_QTR1 AS DECIMAL(18, 4))) AS F_ORA_DECIMAL_QTR1--卸车费
,SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 2))) AS FSTOCKQCQTY--期初&数量(库存) ,SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 2))) AS FSTOCKQCQTY--期初&数量(库存)
,SUM(CAST(FSTOCKINQTY AS DECIMAL(18, 2))) AS FSTOCKINQTY--收入&数量(库存) ,SUM(CAST(FSTOCKINQTY AS DECIMAL(18, 2))) AS FSTOCKINQTY--收入&数量(库存)
...@@ -650,10 +695,12 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -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((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((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(((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((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 * T1.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloading--卸车费 --,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_83G), '0.####'), '0') AS F_LQKJ_Loadingfee --装车费单价 ,ISNULL(FORMAT((T1.F_ORA_DECIMAL_QTR1), '0.####'), '0') AS F_LQKJ_Unloading--卸车费
,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_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((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((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--一物一码扫码出库费 ,ISNULL(FORMAT((SS.F_LQKJ_Scanfee), '0.####'), '0') AS F_LQKJ_Scanfee--一物一码扫码出库费
...@@ -662,8 +709,8 @@ namespace LQKJ.K3.CZXT.Pluglus ...@@ -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_Specialloading), '0.####'), '0') AS F_LQKJ_Specialloading--特殊装货
,ISNULL(FORMAT((SS.F_LQKJ_Inspectionfee), '0.####'), '0') AS F_LQKJ_Inspectionfee--检查及包装费 ,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((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)) ,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))
+ (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)) + (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--费用合计 + 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 FROM {0} T1
LEFT JOIN LQKJ_SettupParameters CS ON 1=1 --设置参数表 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 ...@@ -903,7 +950,7 @@ WHERE 1=1 AND (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY !=0 OR T1.FSTOC
/// <param name="schemeId">过滤方案内码</param> /// <param name="schemeId">过滤方案内码</param>
/// <param name="currentPosition">分页账表当前位置</param> /// <param name="currentPosition">分页账表当前位置</param>
/// <returns></returns> /// <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 }); //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 ...@@ -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); filterObj["EndDate"] = Convert.ToDateTime(F_LQKJ_EndDate);
} }
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills)) //if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceInBills))
{ //{
filterObj["FSourceInBills"] = Convert.ToString(F_LQKJ_FSourceInBills); // filterObj["FSourceInBills"] = Convert.ToString(F_LQKJ_FSourceInBills);
} //}
if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills)) //if (!string.IsNullOrWhiteSpace(F_LQKJ_FSourceOutBills))
{ //{
filterObj["FSourceOutBills"] = Convert.ToString(F_LQKJ_FSourceOutBills); // filterObj["FSourceOutBills"] = Convert.ToString(F_LQKJ_FSourceOutBills);
} //}
IRptParams rptParam = new RptParams(); IRptParams rptParam = new RptParams();
rptParam.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id; rptParam.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;
rptParam.CurrentPosition = currentPosition;//分页账表当前位置 rptParam.CurrentPosition = currentPosition;//分页账表当前位置
...@@ -995,6 +1042,7 @@ WHERE 1=1 AND (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY !=0 OR T1.FSTOC ...@@ -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(@"/*dialect*/IF NOT EXISTS (SELECT * FROM sysobjects WHERE name = '{0}' AND type = 'U') ", tmpTableName));
builder.AppendLine(string.Format(@"CREATE TABLE {0} (", tmpTableName)); builder.AppendLine(string.Format(@"CREATE TABLE {0} (", tmpTableName));
builder.AppendLine("FDate DATE,");//日期 builder.AppendLine("FDate DATE,");//日期
builder.AppendLine("FBILLNAME NVARCHAR(100),");//单据类型
builder.AppendLine("FSTOCKORGID INT,");//库存组织ID builder.AppendLine("FSTOCKORGID INT,");//库存组织ID
builder.AppendLine("FOwnerId INT,");//货主ID builder.AppendLine("FOwnerId INT,");//货主ID
builder.AppendLine("FSTOCKID INT,");//仓库ID builder.AppendLine("FSTOCKID INT,");//仓库ID
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论