|
|
|
@ -26,16 +26,12 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
var tech = isTang ? 0 : 1; |
|
|
|
var main = new JoinAlias(typeof(SecondOrder)); |
|
|
|
var order = new JoinAlias(typeof(OrderDetail)); |
|
|
|
var relate = new JoinAlias(typeof(OrderGradeFinishRelate)); |
|
|
|
var query = new DQueryDom(main); |
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(order), DQCondition.EQ(main, "OrderDetail_ID", order, "ID")); |
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(relate), DQCondition.And(DQCondition.EQ(main, "OrderDetail_ID", relate, "OrderDetail_ID"), DQCondition.EQ(relate, "Technics", tech))); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("OrderDetail_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Order", order)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("PlanNumber", order)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("HotFadeNumber")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Already", relate)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Finish", relate)); |
|
|
|
|
|
|
|
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("IsOk", true), DQCondition.EQ(order, "DeleteState", false), DQCondition.EQ(order, "Date", date), DQCondition.EQ(order, "IsDrop", false))); |
|
|
|
var list = new List<GradeAndWeight>(); |
|
|
|
@ -56,8 +52,6 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
continue; |
|
|
|
entity.OrderDetail_ID = (long)reader[0]; |
|
|
|
entity.Order = (int)reader[1]; |
|
|
|
entity.Already = (int?)reader[4] ?? 0; |
|
|
|
entity.Finish = (bool?)reader[5] ?? false; |
|
|
|
list.Add(entity); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -66,128 +60,25 @@ namespace BWP.B3ClientService.Rpcs.BillRpc |
|
|
|
return serializer.Serialize(list); |
|
|
|
} |
|
|
|
|
|
|
|
static long DeleteDetail(GradeAndWeight_Detail entity) |
|
|
|
{ |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
if (entity.ID > 0) |
|
|
|
{ |
|
|
|
session.Delete(new DmoIdentity(typeof(GradeAndWeight_Detail), entity.ID)); |
|
|
|
if (entity.OrderDetail_ID.HasValue) |
|
|
|
{ |
|
|
|
SubAlready(session, entity.OrderDetail_ID.Value, entity.Technics); |
|
|
|
} |
|
|
|
} |
|
|
|
session.Commit(); |
|
|
|
return entity.ID; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static void SubAlready(IDmoSession session, long orderDetailID, short technics) |
|
|
|
{ |
|
|
|
var entity = GetRelate(orderDetailID, technics); |
|
|
|
if (entity != null) |
|
|
|
{ |
|
|
|
entity.Already -= 1; |
|
|
|
session.Update(entity); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static long UpdateOrInsertDetailOrDelete(string json) |
|
|
|
{ |
|
|
|
json = json.ESerializeDateTime(); |
|
|
|
var entity = serializer.Deserialize<GradeAndWeight_Detail>(json); |
|
|
|
if (entity.IsDeleted) |
|
|
|
{ |
|
|
|
return DeleteDetail(entity); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return UpdateOrInsertDetail(entity); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static long UpdateOrInsertDetail(GradeAndWeight_Detail entity) |
|
|
|
{ |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
if (entity.ID == 0) |
|
|
|
{ |
|
|
|
session.Insert(entity); |
|
|
|
if (entity.OrderDetail_ID.HasValue) |
|
|
|
AddAlready(session, entity.OrderDetail_ID.Value, entity.Technics); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if (entity.OrderDetail_ID.HasValue) |
|
|
|
{ |
|
|
|
var old = InnerBLUtil.GetDmoPropertyByID<short>(session, typeof(GradeAndWeight_Detail), "Technics", entity.ID); |
|
|
|
if (old != entity.Technics) |
|
|
|
{ |
|
|
|
AddAlready(session, entity.OrderDetail_ID.Value, entity.Technics); |
|
|
|
SubAlready(session, entity.OrderDetail_ID.Value, old); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
session.Update(entity); |
|
|
|
|
|
|
|
} |
|
|
|
session.Commit(); |
|
|
|
return entity.ID; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
public static int SetGradeFinish(long orderDetailID, short technics) |
|
|
|
{ |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
var entity = GetRelate(orderDetailID, technics); |
|
|
|
if (entity == null) |
|
|
|
{ |
|
|
|
entity = new OrderGradeFinishRelate(); |
|
|
|
entity.OrderDetail_ID = orderDetailID; |
|
|
|
entity.Technics = technics; |
|
|
|
entity.Finish = true; |
|
|
|
session.Insert(entity); |
|
|
|
} |
|
|
|
if (entity.IsDeleted) |
|
|
|
session.Delete(new DmoIdentity(typeof(GradeAndWeight_Detail), entity.ID)); |
|
|
|
else |
|
|
|
{ |
|
|
|
entity.Finish = true; |
|
|
|
session.Update(entity); |
|
|
|
if (entity.ID == 0) |
|
|
|
session.Insert(entity); |
|
|
|
else |
|
|
|
session.Update(entity); |
|
|
|
} |
|
|
|
session.Commit(); |
|
|
|
} |
|
|
|
|
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
static void AddAlready(IDmoSession session, long orderDetailID, short technics) |
|
|
|
{ |
|
|
|
var entity = GetRelate(orderDetailID, technics); |
|
|
|
if (entity == null) |
|
|
|
{ |
|
|
|
entity = new OrderGradeFinishRelate(); |
|
|
|
entity.OrderDetail_ID = orderDetailID; |
|
|
|
entity.Technics = technics; |
|
|
|
entity.Already = 1; |
|
|
|
session.Insert(entity); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
entity.Already += 1; |
|
|
|
session.Update(entity); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static OrderGradeFinishRelate GetRelate(long orderDetailID, short technics) |
|
|
|
{ |
|
|
|
var query = new DmoQuery(typeof(OrderGradeFinishRelate)); |
|
|
|
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("OrderDetail_ID", orderDetailID), DQCondition.EQ("Technics", technics))); |
|
|
|
return query.EExecuteScalar<OrderGradeFinishRelate>(); |
|
|
|
return entity.ID; |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
|