|
@@ -669,14 +669,23 @@ procedure TZJJLData.SetHistory(const AFieldName, AValue: string;
|
|
|
var
|
|
|
HistoryRec: TsdDataRecord;
|
|
|
begin
|
|
|
- HistoryRec := sddHistory.FindKey('idxHistory', VarArrayOf([AZJJL_Rec.ValueByName('BillsID').AsInteger,
|
|
|
- AZJJL_Rec.ValueByName('Type').AsInteger, AFieldName]));
|
|
|
+ if AZJJL_Rec.ValueByName('Type').AsInteger <> Integer(ztGclGather) then
|
|
|
+ HistoryRec := sddHistory.FindKey('idxHistory', VarArrayOf([AZJJL_Rec.ValueByName('BillsID').AsInteger,
|
|
|
+ AZJJL_Rec.ValueByName('Type').AsInteger, AFieldName]))
|
|
|
+ else
|
|
|
+ HistoryRec := sddHistory.FindKey('idxGatherHistory', VarArrayOf([AZJJL_Rec.ValueByName('GatherBillsID').AsInteger,
|
|
|
+ AZJJL_Rec.ValueByName('Type').AsInteger, AZJJL_Rec.ValueByName('B_Code').AsString,
|
|
|
+ AZJJL_Rec.ValueByName('Name').AsString, AZJJL_Rec.ValueByName('Units').AsString,
|
|
|
+ AZJJL_Rec.ValueByName('Price').AsFloat, AFieldName]));
|
|
|
|
|
|
if not Assigned(HistoryRec) then
|
|
|
begin
|
|
|
HistoryRec := sddHistory.Add;
|
|
|
HistoryRec.ValueByName('ID').AsInteger := GetNewHistoryID;
|
|
|
- HistoryRec.ValueByName('BillsID').AsInteger := AZJJL_Rec.ValueByName('BillsID').AsInteger;
|
|
|
+ if AZJJL_Rec.ValueByName('Type').AsInteger <> Integer(ztGclGather) then
|
|
|
+ HistoryRec.ValueByName('BillsID').AsInteger := AZJJL_Rec.ValueByName('BillsID').AsInteger
|
|
|
+ else
|
|
|
+ HistoryRec.ValueByName('BillsID').AsInteger := AZJJL_Rec.ValueByName('GatherBillsID').AsInteger;
|
|
|
HistoryRec.ValueByName('Type').AsInteger := AZJJL_Rec.ValueByName('Type').AsInteger;
|
|
|
HistoryRec.ValueByName('FieldName').AsString := AFieldName;
|
|
|
|
|
@@ -807,6 +816,7 @@ procedure TZJJLData.GenerateAllByB_CodeGather;
|
|
|
Rec := sddZJJL.Add;
|
|
|
Rec.ValueByName('ID').AsInteger := i + 1;
|
|
|
Rec.ValueByName('BillsID').AsInteger := vZJJL.Detail[0].RelaNode.ID;
|
|
|
+ Rec.ValueByName('Type').AsInteger := Integer(ztGclGather);
|
|
|
Rec.ValueByName('GatherBillsID').AsInteger := vZJJL.GatherNode.ID;
|
|
|
Rec.ValueByName('BillsCode').AsString := vZJJL.B_Code;
|
|
|
Rec.ValueByName('B_Code').AsString := vZJJL.B_Code;
|