diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/BarCodeInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/BarCodeInput.cs
index 9ac3fbee..406a6d2b 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/BarCodeInput.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/BarCodeInput.cs
@@ -16,6 +16,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto.Inputs
///
/// 条码数量
///
- public int code_qty { get; set; }
+ public decimal code_qty { get; set; }
}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
index ed53ce90..4ac61682 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs
@@ -628,27 +628,95 @@ namespace Tnb.WarehouseMgr
_LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】未找到采购订单,erp_pk:{input.erp_pk}");
throw new AppFriendlyException($@"未找到采购订单,erp_pk:{input.erp_pk}!", 500);
}
+ //先删除所有的子表数据
+ await db.Deleteable().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id).ExecuteCommandAsync();
if(input.details!=null && input.details.Count > 0)
{
- foreach(var item in input.details)
+
+ List wmsPurchaseOrderDs = new List();
+ foreach (var detail in input.details)
{
- WmsPurchaseOrderD wmsPurchaseOrderD = await db.Queryable().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id && r.erp_line_pk == item.erp_line_pk).FirstAsync();
- if(wmsPurchaseOrderD==null)
+ WmsPurchaseOrderD wmsPurchaseOrderD = new WmsPurchaseOrderD();
+
+ wmsPurchaseOrderD.fk_wms_purchase_order_id = wmsPurchaseOrderH.id;
+ wmsPurchaseOrderD.matcode = detail.material_code;
+ wmsPurchaseOrderD.unit = detail.unit_code;
+
+ var erpExtendField = await db.Queryable().InnerJoin((a, b) => a.table_id == b.Id).Where((a, b) => a.cunitid == detail.unit_code).Select((a, b) => b).FirstAsync();
+ if (erpExtendField != null)
{
- _LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】未找到采购订单明细数据,erp_pk:{input.erp_pk},erp_line_pk:{item.erp_line_pk}");
- throw new AppFriendlyException($@"未找到采购订单明细数据,erp_pk:{input.erp_pk},erp_line_pk{item.erp_line_pk}!", 500);
+ wmsPurchaseOrderD.unit_id = erpExtendField.Id;
+ wmsPurchaseOrderD.unit = erpExtendField.EnCode;
}
else
{
- await db.Updateable()
- .SetColumns(r => r.net_price == item.net_price)
- .SetColumns(r => r.purchase_quantity == item.purchase_quantity)
- .SetColumns(r => r.actual_quantity == item.actual_quantity)
- .Where(r => r.id == wmsPurchaseOrderD.id).ExecuteCommandAsync();
+ _LoggerErp2Mes.LogWarning($@"【PurchaseOrder】表体明细中单位{detail.unit_code}在wms系统中未找到!");
+ throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到!", 500);
}
+
+ wmsPurchaseOrderD.purchase_quantity = detail.purchase_quantity;
+ wmsPurchaseOrderD.stock_location = detail.stock_location;
+ wmsPurchaseOrderD.code_batch = detail.code_batch;
+ wmsPurchaseOrderD.delivery_date = detail.delivery_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
+ wmsPurchaseOrderD.erp_line_pk = detail.erp_line_pk;
+ wmsPurchaseOrderD.create_id = WmsWareHouseConst.ErpUserId;
+ wmsPurchaseOrderD.create_time = DateTime.Now;
+ wmsPurchaseOrderD.actual_quantity = 0;
+ wmsPurchaseOrderD.lineno = detail.lineno;
+ wmsPurchaseOrderD.gift = detail.gift;
+ wmsPurchaseOrderD.production_unit = detail.production_unit;
+
+ var material = await db.Queryable().Where(p => p.code == detail.material_code).FirstAsync();
+ if (material != null)
+ {
+ wmsPurchaseOrderD.matcode_id = material.id;
+ wmsPurchaseOrderD.material_specification = material.material_specification;
+ wmsPurchaseOrderD.material_standard = material.material_standard;
+ }
+
+ var gys_erpExtendField = await db.Queryable().Where(a => a.supplier_id == detail.auxprop_gys).FirstAsync();
+ if (gys_erpExtendField != null)
+ {
+ wmsPurchaseOrderD.auxprop_gys = gys_erpExtendField.table_id;
+ }
+ else
+ {
+ _LoggerErp2Mes.LogWarning($@"【PurchaseOrder】表体明细中组织{detail.auxprop_gys}在wms系统中未找到!");
+ throw new AppFriendlyException($@"表体明细中组织{detail.auxprop_gys}在wms系统中未找到!", 500);
+ }
+
+ wmsPurchaseOrderDs.Add(wmsPurchaseOrderD);
}
+
+ await db.Insertable(wmsPurchaseOrderDs).ExecuteCommandAsync();
}
+
+
+
+ ////查出现有的所有子表数据
+ //var nowWmsPurchaseOrderDs = await db.Queryable().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id).ToListAsync();
+
+ //if(input.details!=null && input.details.Count > 0)
+ //{
+ // foreach(var item in input.details)
+ // {
+ // WmsPurchaseOrderD wmsPurchaseOrderD = await db.Queryable().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id && r.erp_line_pk == item.erp_line_pk).FirstAsync();
+ // if(wmsPurchaseOrderD==null)
+ // {
+ // _LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】未找到采购订单明细数据,erp_pk:{input.erp_pk},erp_line_pk:{item.erp_line_pk}");
+ // throw new AppFriendlyException($@"未找到采购订单明细数据,erp_pk:{input.erp_pk},erp_line_pk{item.erp_line_pk}!", 500);
+ // }
+ // else
+ // {
+ // await db.Updateable()
+ // .SetColumns(r => r.net_price == item.net_price)
+ // .SetColumns(r => r.purchase_quantity == item.purchase_quantity)
+ // .SetColumns(r => r.actual_quantity == item.actual_quantity)
+ // .Where(r => r.id == wmsPurchaseOrderD.id).ExecuteCommandAsync();
+ // }
+ // }
+ //}
await db.Ado.CommitTranAsync();
return await ToApiResult(HttpStatusCode.OK, "成功");