原材料/成品调拨出库接口、采购收货添加是否赠品、单价、是否自制字段

This commit is contained in:
2024-08-19 10:30:34 +08:00
parent 4cc672766b
commit 3d74fea016
15 changed files with 635 additions and 149 deletions

View File

@@ -1001,8 +1001,19 @@ namespace Tnb.WarehouseMgr
wmsTransferOrderH.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOrderH.create_time = DateTime.Now;
wmsTransferOrderH.org_id = WmsWareHouseConst.AdministratorOrgId;
await db.Insertable(wmsTransferOrderH).ExecuteCommandAsync();
var _erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id)
.Where((a, b) => a.transaction_type_id == input.transaction_type).Select((a, b) => b).FirstAsync();
if (_erpExtendField != null)
{
wmsTransferOrderH.transaction_type = _erpExtendField.EnCode;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】表头交易类型{input.transaction_type}在wms系统中未找到");
throw new AppFriendlyException($@"表头交易类型{input.transaction_type}在wms系统中未找到", 500);
}
await db.Insertable(wmsTransferOrderH).ExecuteCommandAsync();
List<WmsTransferOrderD> wmsTransferOrderDs = new List<WmsTransferOrderD>();
foreach (var detail in input.details)
@@ -1047,7 +1058,7 @@ namespace Tnb.WarehouseMgr
if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID)
{
WmsRawmatTransferoutstockH wmsRawmatTransferoutstockH = new WmsRawmatTransferoutstockH();
string code = await _billRuleService.GetBillNumber("WmsRawmatTransferoutstockH");
string code = await _billRuleService.GetBillNumber("RawmatTransferoutstock");
wmsRawmatTransferoutstockH.bill_code = code;
wmsRawmatTransferoutstockH.create_id = WmsWareHouseConst.ErpUserId;
wmsRawmatTransferoutstockH.create_time = DateTime.Now;
@@ -1056,6 +1067,9 @@ namespace Tnb.WarehouseMgr
wmsRawmatTransferoutstockH.warehouse_code = warehouse_outstock.whcode;
wmsRawmatTransferoutstockH.erp_pk = input.erp_pk;
wmsRawmatTransferoutstockH.transfer_order_id = wmsTransferOrderH.bill_code;
wmsRawmatTransferoutstockH.issuance_status = "0";
wmsRawmatTransferoutstockH.transaction_type = _erpExtendField.EnCode;
wmsRawmatTransferoutstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
List<WmsRawmatTransferoutstockD> wmsRawmatTransferoutstockDs = new List <WmsRawmatTransferoutstockD>();
foreach (var detail in input.details)
{
@@ -1073,13 +1087,13 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsRawmatTransferoutstockD.qty = detail.qty;
wmsRawmatTransferoutstockD.code_batch = detail.code_batch;
wmsRawmatTransferoutstockD.erp_line_pk = detail.erp_line_pk;
wmsRawmatTransferoutstockD.create_id = WmsWareHouseConst.ErpUserId;
wmsRawmatTransferoutstockD.create_time = DateTime.Now;
wmsRawmatTransferoutstockD.lineno = detail.lineno;
wmsRawmatTransferoutstockD.actual_qty = 0;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
@@ -1098,15 +1112,53 @@ namespace Tnb.WarehouseMgr
else if(warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_CP_ID)
{
WmsTransferOutstockH wmsTransferOutstockH = new WmsTransferOutstockH();
string code = await _billRuleService.GetBillNumber("WmsTransferOutstockH");
string code = await _billRuleService.GetBillNumber("WmsTransferOutstock");
wmsTransferOutstockH.bill_code = code;
wmsTransferOutstockH.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOutstockH.create_time = DateTime.Now;
wmsTransferOutstockH.warehouse_code = warehouse_outstock.whcode;
wmsTransferOutstockH.erp_pk = input.erp_pk;
wmsTransferOutstockH.transfer_order_id = wmsTransferOrderH.bill_code;
wmsTransferOutstockH.issuance_status = "0";
wmsTransferOutstockH.transaction_type = _erpExtendField.EnCode;
wmsTransferOutstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
List<WmsTransferOutstockD> wmsTransferOutstockDs = new List<WmsTransferOutstockD>();
foreach (var detail in input.details)
{
WmsTransferOutstockD wmsTransferOutstockD = new WmsTransferOutstockD();
wmsTransferOutstockD.bill_id = wmsTransferOutstockH.id;
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => a.cunitid == detail.unit_code).Select((a, b) => b).FirstAsync();
if (erpExtendField != null)
{
wmsTransferOutstockD.unit_id = erpExtendField.Id;
wmsTransferOutstockD.unit_code = erpExtendField.EnCode;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】表体明细中单位{detail.unit_code}在wms系统中未找到");
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsTransferOutstockD.pr_qty = detail.qty;
wmsTransferOutstockD.xf_qty = 0;
wmsTransferOutstockD.qty = 0;
wmsTransferOutstockD.pi_code = detail.code_batch;
wmsTransferOutstockD.erp_line_pk = detail.erp_line_pk;
wmsTransferOutstockD.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOutstockD.create_time = DateTime.Now;
wmsTransferOutstockD.lineno = detail.lineno;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
{
wmsTransferOutstockD.material_id = material.id;
wmsTransferOutstockD.material_code = material.code;
wmsTransferOutstockD.material_desc = material.material_specification;
}
wmsTransferOutstockDs.Add(wmsTransferOutstockD);
}
await db.Insertable(wmsTransferOutstockH).ExecuteCommandAsync();
await db.Insertable(wmsTransferOutstockDs).ExecuteCommandAsync();
}