|
|
|
@ -143,20 +143,26 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static string GetOrderDetail(DateTime date, int? minOrder) |
|
|
|
public static string GetOrderDetail(DateTime date, bool onlyNormal) |
|
|
|
{ |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail))); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("WeightBill_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Order")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("PlanNumber")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("PlanNumber")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("LiveColonyHouse_Name")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("IsHurryButcher")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("B3WeighBill_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("SecondarySplit")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Supplier_Name")); |
|
|
|
|
|
|
|
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false))); |
|
|
|
if (minOrder.HasValue) |
|
|
|
query.Where.Conditions.Add(DQCondition.GreaterThanOrEqual("Order", minOrder)); |
|
|
|
if (onlyNormal) |
|
|
|
{ |
|
|
|
var record = HurryRecordTemp.Register(query, query.From.RootSource.Alias); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Number", record)); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("IsHurryButcher", false)); |
|
|
|
} |
|
|
|
var list = new List<OrderDetail>(); |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
@ -173,6 +179,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
entity.IsHurryButcher = (bool)reader[5]; |
|
|
|
entity.B3WeighBill_ID = (long?)reader[6]; |
|
|
|
entity.SecondarySplit = (bool)reader[7]; |
|
|
|
entity.Supplier_Name = (string)reader[8]; |
|
|
|
if (onlyNormal) |
|
|
|
{ |
|
|
|
entity.HurryNumber = Convert.ToInt32(reader[9] ?? 0); |
|
|
|
entity.PlanNumber += entity.HurryNumber; |
|
|
|
} |
|
|
|
list.Add(entity); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -180,12 +192,32 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
return serializer.Serialize(list); |
|
|
|
} |
|
|
|
|
|
|
|
class HurryRecordTemp |
|
|
|
{ |
|
|
|
public long OrderDetail_ID { get; set; } |
|
|
|
|
|
|
|
public int? Number { get; set; } |
|
|
|
|
|
|
|
public static JoinAlias Register(DQueryDom rootQuery, JoinAlias rootAlias) |
|
|
|
{ |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord))); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("FromOrderDetail_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("HurryNumber")); |
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field("FromOrderDetail_ID")); |
|
|
|
rootQuery.RegisterQueryTable(typeof(HurryRecordTemp), new string[] { "OrderDetail_ID", "Number" }, query); |
|
|
|
|
|
|
|
var alias = new JoinAlias(typeof(HurryRecordTemp)); |
|
|
|
rootQuery.From.AddJoin(JoinType.Left, new DQDmoSource(alias), DQCondition.EQ(rootAlias, "ID", alias, "OrderDetail_ID")); |
|
|
|
return alias; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static int GetMaxOrder(DateTime date) |
|
|
|
{ |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(OrderDetail))); |
|
|
|
query.Columns.Add(DQSelectColumn.Max("Order")); |
|
|
|
query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("Date", date.Date, date.Date + new TimeSpan(23, 59, 29)), DQCondition.EQ("DeleteState", false))); |
|
|
|
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Date", date.Date), DQCondition.EQ("DeleteState", false))); |
|
|
|
return query.EExecuteScalar<int?>() ?? 0; |
|
|
|
} |
|
|
|
|
|
|
|
@ -248,17 +280,6 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static int UpdateHurryFlag(long id, bool isHurryButcher) |
|
|
|
{ |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
UpdateOrderDetailPartial(session, id, "IsHurryButcher", isHurryButcher); |
|
|
|
session.Commit(); |
|
|
|
} |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static int Delete(long id) |
|
|
|
{ |
|
|
|
@ -297,5 +318,56 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
update.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThan("Order", greaterThanOrder), DQCondition.EQ("Date", date), DQCondition.EQ("DeleteState", false))); |
|
|
|
session.ExecuteNonQuery(update); |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static string GetHurryRecords(long orderId) |
|
|
|
{ |
|
|
|
var query = new DmoQuery(typeof(HurryRecord)); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", orderId)); |
|
|
|
return serializer.Serialize(query.EExecuteList().Cast<HurryRecord>().ToList()); |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static int DeleteHurryRecord(long id) |
|
|
|
{ |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
var hurryNumber = InnerBLUtil.GetDmoPropertyByID<int>(session, typeof(HurryRecord), "HurryNumber", id); |
|
|
|
var delete = new DQDeleteDom(typeof(HurryRecord)); |
|
|
|
delete.Where.Conditions.Add(DQCondition.EQ("ID", id)); |
|
|
|
session.ExecuteNonQuery(delete); |
|
|
|
AddOrderNumber(session, id, hurryNumber); |
|
|
|
session.Commit(); |
|
|
|
} |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static int InsertHurryRecord(string detail) |
|
|
|
{ |
|
|
|
detail = detail.ESerializeDateTime(); |
|
|
|
var entity = serializer.Deserialize<HurryRecord>(detail); |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
session.Insert(entity); |
|
|
|
AddOrderNumber(session, entity.ID, -entity.HurryNumber); |
|
|
|
|
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(HurryRecord))); |
|
|
|
query.Columns.Add(DQSelectColumn.Sum("HurryNumber")); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("FromOrderDetail_ID", entity.FromOrderDetail_ID)); |
|
|
|
var r= Convert.ToInt32(query.EExecuteScalar(session) ?? 0); |
|
|
|
session.Commit(); |
|
|
|
return r; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static void AddOrderNumber(IDmoSession session, long ID, int subNumber) |
|
|
|
{ |
|
|
|
var update = new DQUpdateDom(typeof(OrderDetail)); |
|
|
|
update.Where.Conditions.Add(DQCondition.EQ("ID", ID)); |
|
|
|
update.Columns.Add(new DQUpdateColumn("Sync", false)); |
|
|
|
update.Columns.Add(new DQUpdateColumn("PlanNumber", DQExpression.Add(DQExpression.Field("PlanNumber"), DQExpression.Value(subNumber)))); |
|
|
|
session.ExecuteNonQuery(update); |
|
|
|
} |
|
|
|
} |
|
|
|
} |