Browse Source

1、进销存汇总调整和补充;2、白条汇总查询 日期查询 支持屠宰日期和批次日期

master
yibo 7 years ago
parent
commit
b23cff63f8
3 changed files with 75 additions and 38 deletions
  1. +33
    -12
      B3ClientService.Web/Pages/B3ClientService/Reports/CarcassGradeAnalyse_/CarcassGradeAnalyse.cs
  2. +33
    -20
      B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassDetailDialog.cs
  3. +9
    -6
      B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassInOutStoreAnalyse.cs

+ 33
- 12
B3ClientService.Web/Pages/B3ClientService/Reports/CarcassGradeAnalyse_/CarcassGradeAnalyse.cs View File

@ -161,10 +161,12 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_
var livestock = new JoinAlias(typeof(Livestock));
var inGoods = new JoinAlias("iGoods", typeof(Goods));
var outGoods = new JoinAlias("oGoods", typeof(Goods));
var batch = new JoinAlias(typeof(ProductBatch));
var query = new DQueryDom(main);
query.From.AddJoin(JoinType.Left, new DQDmoSource(livestock), DQCondition.EQ(main, "Livestock_ID", livestock, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(inGoods), DQCondition.EQ(main, "InStoreGoods_ID", inGoods, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(outGoods), DQCondition.EQ(main, "SaleGoods_ID", outGoods, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(batch), DQCondition.EQ(main, "ProductBatch_ID", batch, "ID"));
query.Columns.Add(DQSelectColumn.Field("Livestock_ID"));
query.Columns.Add(DQSelectColumn.Field("Name", livestock));
query.Columns.Add(DQSelectColumn.Field("GradeWeight"));
@ -177,8 +179,11 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_
query.Columns.Add(DQSelectColumn.Field("Name", outGoods));
query.Columns.Add(DQSelectColumn.Field("PickWeight"));
query.Columns.Add(DQSelectColumn.Field("ButcherDate"));
query.Columns.Add(DQSelectColumn.Field("Date", batch));
if (butcherDate.Value.HasValue)
query.Where.Conditions.Add(DQCondition.EQ("ButcherDate", butcherDate.Date));
query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ("ButcherDate", butcherDate.Date), DQCondition.EQ(batch, "Date", butcherDate.Date)));
var list = new List<TempData>();
using (var session = Dmo.NewSession())
@ -187,18 +192,34 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassGradeAnalyse_
{
while (reader.Read())
{
var dt1 = (DateTime?)reader[9];
var dt2 = (DateTime?)reader[10];
var isButcherData = butcherDate.Value == null;
var isBatchData = isButcherData;
if (butcherDate.Value.HasValue)
{
if (dt1 == null || dt1 != butcherDate.Date)
isButcherData = false;
if (dt2 == null || dt2 != butcherDate.Date)
isBatchData = false;
}
var entity = new TempData();
entity.Livestock_ID = (long?)reader[0];
entity.Livestock_Name = (string)reader[1];
entity.LWeight = (decimal?)reader[2];
entity.IGoods_ID = (long?)reader[3];
entity.IGoods_Name = (string)reader[4];
entity.IWeight = (decimal?)reader[5];
entity.OGoods_ID = (long?)reader[6];
entity.OGoods_Name = (string)reader[7];
entity.OWeight = (decimal?)reader[8];
if (isButcherData)
{
entity.Livestock_ID = (long?)reader[0];
entity.Livestock_Name = (string)reader[1];
entity.LWeight = (decimal?)reader[2];
}
if (isBatchData)
{
entity.IGoods_ID = (long?)reader[3];
entity.IGoods_Name = (string)reader[4];
entity.IWeight = (decimal?)reader[5];
entity.OGoods_ID = (long?)reader[6];
entity.OGoods_Name = (string)reader[7];
entity.OWeight = (decimal?)reader[8];
}
list.Add(entity);
}
}


+ 33
- 20
B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassDetailDialog.cs View File

@ -52,7 +52,7 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInOutStoreAnalyse_
var goodsName = string.Empty;
if (GoodsID.HasValue)
goodsName = WebBLUtil.GetDmoPropertyByID<string>(typeof(Goods), "Name", GoodsID.Value);
var billName = "期";
var billName = "期";
switch (Flag)
{
case 0:
@ -64,6 +64,9 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInOutStoreAnalyse_
case 2:
billName = "销售出库";
break;
case -2:
billName = "期初";
break;
}
return string.Format("{0}{1}信息", goodsName, billName);
@ -80,22 +83,27 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInOutStoreAnalyse_
{
var sumColumns = new List<int>();
var query = new DQueryDom(new JoinAlias(typeof(UnionTemp)));
query.RegisterQueryTable(typeof(UnionTemp), new string[] { "ProductBatch_ID", "Weight", "Time", "Flag" }, GetUnionDom(endTime));
var time = Flag == -1 ? startTime : endTime;
query.RegisterQueryTable(typeof(UnionTemp), new string[] { "ProductBatch_ID", "Weight", "Time", "Flag" }, GetUnionDom(time, Flag != -1));
query.Columns.Add(DQSelectColumn.Field("ProductBatch_Name", "批次"));
if (Flag == -1)
if (Flag < 0)
{
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("Flag", 0), DQExpression.Value(1), DQExpression.Value(-1))).ECastType<int>(), "头数"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("Flag", 0), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight")))).ECastType<decimal>(), "重量"));
query.Having.Conditions.Add(DQCondition.Or(DQCondition.InEQ(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("Flag", 0), DQExpression.Value(1), DQExpression.Value(-1))), DQExpression.Value(0)), DQCondition.InEQ(DQExpression.IfNull(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("Flag", 0), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight")))), DQExpression.Value(0)), DQExpression.Value(0))));
}
else
{
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", Flag)), DQExpression.Value(1))).ECastType<int>(), "头数"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.And(DQCondition.GreaterThanOrEqual("Time", startTime), DQCondition.EQ("Flag", Flag)), DQExpression.Field("Weight"))).ECastType<decimal>(), "重量"));
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Time", startTime));
query.Having.Conditions.Add(DQCondition.Or(DQCondition.InEQ(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("Flag", 0), DQExpression.Value(1), DQExpression.Value(-1))), DQExpression.Value(0)), DQCondition.InEQ(DQExpression.IfNull(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("Flag", 0), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight")))), DQExpression.Value(0)), DQExpression.Value(0))));
}
query.GroupBy.Expressions.Add(DQExpression.Field("ProductBatch_Name"));
query.Having.Conditions.Add(DQCondition.Or(DQCondition.InEQ(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("Flag", 0), DQExpression.Value(1), DQExpression.Value(-1))), DQExpression.Value(0)), DQCondition.InEQ(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("Flag", 0), DQExpression.Field("Weight"), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Weight")))), DQExpression.Value(0))));
var args = new LoadArguments(query);
for (var idx = 1; idx < query.Columns.Count; idx++)
{
@ -126,59 +134,64 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInOutStoreAnalyse_
public string ProductBatch_Name { get; set; }
}
DQueryDom GetUnionDom(DateTime endTime)
DQueryDom GetUnionDom(DateTime endTime, bool eq)
{
var u1 = GetInStore(endTime);
var u2 = GetPickOutStore(endTime);
var u1 = GetInStore(endTime, eq);
var u2 = GetPickOutStore(endTime, eq);
u1.UnionNext.Select = u2;
u1.UnionNext.Type = UnionType.All;
u2.UnionNext.Select = GetSaleOutStore(endTime);
u2.UnionNext.Select = GetSaleOutStore(endTime, eq);
u2.UnionNext.Type = UnionType.All;
return u1;
}
DQueryDom GetInStore(DateTime endTime)
DQueryDom GetInStore(DateTime endTime, bool eq)
{
var query = new DQueryDom(new JoinAlias("_inStore", typeof(CarcassFullInfo)));
query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
query.Columns.Add(DQSelectColumn.Field("InStoreWeight"));
query.Columns.Add(DQSelectColumn.Field("InStoreTime"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(0), "Falg"));
query.Where.Conditions.Add(DQCondition.LessThanOrEqual("InStoreTime", endTime));
AddGoodsCondition(query, "InStoreGoods_ID");
query.Where.Conditions.Add(DQCondition.And(DateCondition(endTime, "InStoreTime", eq), GoodsCondition("InStoreGoods_ID")));
return query;
}
DQueryDom GetPickOutStore(DateTime endTime)
DQueryDom GetPickOutStore(DateTime endTime, bool eq)
{
var query = new DQueryDom(new JoinAlias("_pickOut", typeof(CarcassFullInfo)));
query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
query.Columns.Add(DQSelectColumn.Field("PickWeight"));
query.Columns.Add(DQSelectColumn.Field("PickTime"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "Falg"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("PickType", 0), DQCondition.LessThanOrEqual("PickTime", endTime)));
AddGoodsCondition(query, "InStoreGoods_ID");
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("PickType", 0), DateCondition(endTime, "PickTime", eq), GoodsCondition("InStoreGoods_ID")));
return query;
}
DQueryDom GetSaleOutStore(DateTime endTime)
DQueryDom GetSaleOutStore(DateTime endTime, bool eq)
{
var query = new DQueryDom(new JoinAlias("_saleOut", typeof(CarcassFullInfo)));
query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
query.Columns.Add(DQSelectColumn.Field("PickWeight"));
query.Columns.Add(DQSelectColumn.Field("PickTime"));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(2), "Falg"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("PickType", 1), DQCondition.LessThanOrEqual("PickTime", endTime)));
AddGoodsCondition(query, "SaleGoods_ID");
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("PickType", 1), DateCondition(endTime, "PickTime", eq), GoodsCondition("SaleGoods_ID")));
return query;
}
void AddGoodsCondition(DQueryDom query, string goodsField)
IDQExpression DateCondition(DateTime endTime, string fieldName, bool eq)
{
if (eq)
return DQCondition.LessThanOrEqual(fieldName, endTime);
else
return DQCondition.LessThan(fieldName, endTime);
}
IDQExpression GoodsCondition(string goodsField)
{
if (GoodsID.HasValue)
query.Where.Conditions.Add(DQCondition.EQ(goodsField, GoodsID));
return DQCondition.EQ(goodsField, GoodsID);
else
query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(goodsField)));
return DQCondition.IsNull(DQExpression.Field(goodsField));
}
}
}

+ 9
- 6
B3ClientService.Web/Pages/B3ClientService/Reports/CarcassInOutStoreAnalyse_/CarcassInOutStoreAnalyse.cs View File

@ -55,17 +55,20 @@ namespace BWP.Web.Pages.B3ClientService.Reports.CarcassInOutStoreAnalyse_
var gName = (string)row["Goods_Name"];
var url = BuildUrl(string.Format("{0}", row["Goods_ID"]));
url = WpfPageUrl.ToGlobal(url);
url = AspUtil.AddParamToUrl(url, "flag", "0");
SetCellAtt(tr.Cells[4], url, "进销存明细");
url = AspUtil.AddParamToUrl(url, "flag", "-1");
SetCellAtt(tr.Cells[3], url, "进销存明细");//期初
url = AspUtil.UpdateUrlParam(url, "flag", "0");
SetCellAtt(tr.Cells[4], url, "进销存明细");//入库
url = AspUtil.UpdateUrlParam(url, "flag", "1");
SetCellAtt(tr.Cells[6], url, "进销存明细");
SetCellAtt(tr.Cells[6], url, "进销存明细");//领用
url = AspUtil.UpdateUrlParam(url, "flag", "2");
SetCellAtt(tr.Cells[7], url, "进销存明细");
SetCellAtt(tr.Cells[7], url, "进销存明细");//销售
url = AspUtil.UpdateUrlParam(url, "flag", "-1");
SetCellAtt(tr.Cells[9], url, "进销存明细");
url = AspUtil.UpdateUrlParam(url, "flag", "-2");
SetCellAtt(tr.Cells[9], url, "进销存明细");//期末
};
}


Loading…
Cancel
Save