原材料仓退料 退料单同步等
This commit is contained in:
@@ -660,8 +660,25 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
try
|
||||
{
|
||||
BasWarehouse warehouse_outstock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == input.warehouse_outstock).FirstAsync();
|
||||
BasWarehouse warehouse_instock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == input.warehouse_instock).FirstAsync();
|
||||
WmsErpWarehouserelaH wmsErpWarehouserelaHout = await db.Queryable<WmsErpWarehouserelaH>().Where(r => r.erp_warehousecode == input.warehouse_outstock).FirstAsync();
|
||||
if (wmsErpWarehouserelaHout == null)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($@"【TransferOrder】不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系!");
|
||||
throw new AppFriendlyException($@"不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系!", 500);
|
||||
}
|
||||
|
||||
WmsErpWarehouserelaH wmsErpWarehouserelaHin = await db.Queryable<WmsErpWarehouserelaH>().Where(r => r.erp_warehousecode == input.warehouse_instock).FirstAsync();
|
||||
if (wmsErpWarehouserelaHin == null)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($@"【TransferOrder】不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系!");
|
||||
throw new AppFriendlyException($@"不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系!", 500);
|
||||
}
|
||||
|
||||
string warehouse_outstock_code = wmsErpWarehouserelaHout.wms_warehousecode;
|
||||
string warehouse_instock_code = wmsErpWarehouserelaHin.wms_warehousecode;
|
||||
|
||||
BasWarehouse warehouse_outstock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == warehouse_outstock_code).FirstAsync();
|
||||
BasWarehouse warehouse_instock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == warehouse_instock_code).FirstAsync();
|
||||
if (warehouse_outstock == null)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($"【MaterialTransfer】无法查询到出库仓库{input.warehouse_outstock}的档案记录!");
|
||||
@@ -804,67 +821,56 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
if (details_return.Count > 0)
|
||||
{
|
||||
//WmsPrdReturnH wmsPrdReturnH = new WmsPrdReturnH();
|
||||
//string Code = await _billRuleService.GetBillNumber("WMSPRDRETURN");
|
||||
//wmsPrdReturnH.bill_code = Code;
|
||||
//wmsPrdReturnH.status = WmsWareHouseConst.BILLSTATUS_ADD_ID;
|
||||
//wmsPrdReturnH.bill_date = DateTime.Now;
|
||||
//wmsPrdReturnH.warehouse_outstock = warehouse_outstock.id;
|
||||
//wmsPrdReturnH.warehouse_instock = warehouse_instock.id;
|
||||
//wmsPrdReturnH.biller_out = input.biller_out;
|
||||
//wmsPrdReturnH.depart_out = input.depart_out;
|
||||
//wmsPrdReturnH.biller_in = input.biller_in;
|
||||
//wmsPrdReturnH.depart_in = input.depart_in;
|
||||
//wmsPrdReturnH.deliver_date = input.deliver_date;
|
||||
//wmsPrdReturnH.arrival_date = input.arrival_date;
|
||||
//wmsPrdReturnH.create_id = WmsWareHouseConst.ErpUserId;
|
||||
//wmsPrdReturnH.create_time = DateTime.Now;
|
||||
//wmsPrdReturnH.org_id = WmsWareHouseConst.AdministratorOrgId;
|
||||
//wmsPrdReturnH.erp_bill_code = input.bill_code;
|
||||
//wmsPrdReturnH.transfer_type = transfer_type;
|
||||
//wmsPrdReturnH.erp_pk = input.erp_pk;
|
||||
WmsPrdReturnH wmsPrdReturnH = new WmsPrdReturnH();
|
||||
string Code = await _billRuleService.GetBillNumber("WMSPRDRETURN");
|
||||
wmsPrdReturnH.bill_code = Code;
|
||||
wmsPrdReturnH.status = WmsWareHouseConst.BILLSTATUS_ADD_ID;
|
||||
wmsPrdReturnH.warehouse_id = warehouse_instock.id;
|
||||
wmsPrdReturnH.create_id = WmsWareHouseConst.ErpUserId;
|
||||
wmsPrdReturnH.create_time = DateTime.Now;
|
||||
wmsPrdReturnH.erp_bill_code = input.bill_code;
|
||||
wmsPrdReturnH.transfer_type = transfer_type;
|
||||
wmsPrdReturnH.erp_pk = input.erp_pk;
|
||||
|
||||
//await db.Insertable(wmsPrdReturnH).ExecuteCommandAsync();
|
||||
await db.Insertable(wmsPrdReturnH).ExecuteCommandAsync();
|
||||
|
||||
//List<WmsPrdReturnD> wmsPrdReturnDs = new List<WmsPrdReturnD>();
|
||||
//foreach (var detail in input.details)
|
||||
//{
|
||||
// WmsPrdReturnD wmsPrdReturnD = new WmsPrdReturnD();
|
||||
// wmsPrdReturnD.lineno = detail.lineno;
|
||||
// wmsPrdReturnD.material_code = detail.material_code;
|
||||
// wmsPrdReturnD.code_batch = detail.code_batch;
|
||||
// wmsPrdReturnD.station_code = detail.station_code;
|
||||
// wmsPrdReturnD.qty = detail.qty;
|
||||
// wmsPrdReturnD.bill_id = wmsMaterialTransfer.id;
|
||||
List<WmsPrdReturnD> wmsPrdReturnDs = new List<WmsPrdReturnD>();
|
||||
foreach (var detail in input.details)
|
||||
{
|
||||
WmsPrdReturnD wmsPrdReturnD = new WmsPrdReturnD();
|
||||
wmsPrdReturnD.lineno = detail.lineno;
|
||||
wmsPrdReturnD.material_code = detail.material_code;
|
||||
wmsPrdReturnD.code_batch = detail.code_batch;
|
||||
wmsPrdReturnD.qty = -detail.qty;
|
||||
wmsPrdReturnD.bill_id = wmsPrdReturnH.id;
|
||||
|
||||
// wmsPrdReturnD.yxfqty = 0;
|
||||
// wmsPrdReturnD.yzqty = 0;
|
||||
// wmsPrdReturnD.erp_line_pk = detail.erp_line_pk;
|
||||
wmsPrdReturnD.ytqty = 0;
|
||||
wmsPrdReturnD.erp_line_pk = detail.erp_line_pk;
|
||||
|
||||
// var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
|
||||
// if (material != null)
|
||||
// {
|
||||
// wmsPrdReturnD.material_id = material.id;
|
||||
// wmsPrdReturnD.material_code = material.code;
|
||||
// wmsPrdReturnD.material_name = material.name;
|
||||
// }
|
||||
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
|
||||
if (material != null)
|
||||
{
|
||||
wmsPrdReturnD.material_id = material.id;
|
||||
wmsPrdReturnD.material_code = material.code;
|
||||
wmsPrdReturnD.material_name = material.name;
|
||||
}
|
||||
|
||||
// var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => b.EnCode == detail.unit_code).Select((a, b) => b).FirstAsync();
|
||||
// if (erpExtendField != null)
|
||||
// {
|
||||
// wmsPrdReturnD.unit_id = erpExtendField.Id;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// _LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体明细中单位{detail.unit_code}在wms系统中未找到!");
|
||||
// throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到!", 500);
|
||||
// }
|
||||
var erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id).Where((a, b) => b.EnCode == detail.unit_code).Select((a, b) => b).FirstAsync();
|
||||
if (erpExtendField != null)
|
||||
{
|
||||
wmsPrdReturnD.unit_id = erpExtendField.Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体明细中单位{detail.unit_code}在wms系统中未找到!");
|
||||
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到!", 500);
|
||||
}
|
||||
|
||||
// wmsPrdReturnDs.Add(wmsPrdReturnD);
|
||||
//}
|
||||
wmsPrdReturnDs.Add(wmsPrdReturnD);
|
||||
}
|
||||
|
||||
//await db.Insertable(wmsPrdReturnDs).ExecuteCommandAsync();
|
||||
//LoggerErp2Mes.LogInformation($"【MaterialTransfer】成功生成单据:{Code}");
|
||||
await db.Insertable(wmsPrdReturnDs).ExecuteCommandAsync();
|
||||
LoggerErp2Mes.LogInformation($"【MaterialTransfer】成功生成单据:{Code}");
|
||||
}
|
||||
|
||||
await db.Ado.CommitTranAsync();
|
||||
|
||||
Reference in New Issue
Block a user