This commit is contained in:
funa 2026-05-23 15:59:02 +08:00
parent 4222627ced
commit 1b33db51a9

View File

@ -138,6 +138,7 @@ begin
end
else if IOType = '¼Ó¹¤Èë¿â' then
begin
// 查询是否有工序
with ADOQueryTemp do
begin
Close;
@ -161,39 +162,10 @@ begin
if not HasProcess then
begin
if FromOrdNo = '' then
begin
Application.MessageBox(PChar('第' + IntToStr(ARow) + '行:加工入库必须关联订单号!'), PChar('验证失败'), MB_ICONERROR);
Result := False;
Exit;
end;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('SELECT 1 FROM BS_Cloth_IO');
SQL.Add('WHERE FromOrdNO = :FromOrdNo');
SQL.Add('AND ioFlag = ''出库''');
SQL.Add('AND ISNULL(stkName, '''') = ''贸易成品''');
Parameters.ParamByName('FromOrdNo').Value := FromOrdNo;
Open;
HasOutRecord := not IsEmpty;
Close;
end;
if not HasOutRecord then
begin
Application.MessageBox(PChar('第' + IntToStr(ARow) + '行:该产品无工艺工序,必须有对应的贸易成品出库记录才能入库!'), PChar('验证失败'), MB_ICONERROR);
Result := False;
Exit;
end;
end
else
begin
// 没有工序,检查染色计划单
if FromSubId = '' then
begin
Application.MessageBox(PChar('第' + IntToStr(ARow) + '行:加工入库必须关联采购计划单!'), PChar('验证失败'), MB_ICONERROR);
Application.MessageBox(PChar('第' + IntToStr(ARow) + '行:加工入库必须关联计划单!'), PChar('验证失败'), MB_ICONERROR);
Result := False;
Exit;
end;
@ -204,13 +176,9 @@ begin
SQL.Clear;
SQL.Add('SELECT 1 FROM Pur_ClothPlan_sub s');
SQL.Add('INNER JOIN Pur_ClothPlan_Main m ON s.PurMId = m.PurMId');
SQL.Add('INNER JOIN BS_Cloth_IO io ON io.FromOrdNO = m.PurNo');
SQL.Add('WHERE s.SubId = :SubId');
SQL.Add('AND m.GX = :GX');
SQL.Add('AND io.stkname = ''贸易外加工布''');
SQL.Add('AND io.ioFlag = ''出库''');
SQL.Add('AND m.PurType = ''染色''');
Parameters.ParamByName('SubId').Value := FromSubId;
Parameters.ParamByName('GX').Value := LastProcessName;
Open;
HasOutRecord := not IsEmpty;
Close;
@ -218,8 +186,38 @@ begin
if not HasOutRecord then
begin
Application.MessageBox(PChar(Format('第%d行该产品有%d道工序必须有最后一道工序"%s"对应的贸易外加工布出库记录才能入库!',
[ARow, MaxGlideIdx, LastProcessName])), PChar('验证失败'), MB_ICONERROR);
Application.MessageBox(PChar('第' + IntToStr(ARow) + '行:该生产计划单还没有下染色计划单,不能登记入库。'), PChar('验证失败'), MB_ICONERROR);
Result := False;
Exit;
end;
end
else
begin
// 有工序,检查后加工计划单
if FromSubId = '' then
begin
Application.MessageBox(PChar('第' + IntToStr(ARow) + '行:加工入库必须关联计划单!'), PChar('验证失败'), MB_ICONERROR);
Result := False;
Exit;
end;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('SELECT 1 FROM Pur_ClothPlan_sub s');
SQL.Add('INNER JOIN Pur_ClothPlan_Main m ON s.PurMId = m.PurMId');
SQL.Add('WHERE s.SubId = :SubId');
SQL.Add('AND m.PurType = ''后加工''');
Parameters.ParamByName('SubId').Value := FromSubId;
Open;
HasOutRecord := not IsEmpty;
Close;
end;
if not HasOutRecord then
begin
Application.MessageBox(PChar('第' + IntToStr(ARow) + '行:该生产计划单还没有下后加工计划单,不能登记入库。'), PChar('验证失败'), MB_ICONERROR);
Result := False;
Exit;
end;
@ -227,6 +225,7 @@ begin
end;
end;
procedure TfrmTradeFinishClothInEdit.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;