1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- unit DealPayFinalDm;
- interface
- uses
- SysUtils, Classes, sdDB, sdProvider, ADODB, Variants;
- type
- TDealPayFinalData = class(TDataModule)
- sdpDealPayFinal: TsdADOProvider;
- sddDealPayFinal: TsdDataSet;
- private
- FProjectData: TObject;
- public
- constructor Create(AProjectData: TObject);
- destructor Destroy; override;
- procedure Open(AConnection: TADOConnection);
- procedure Close;
- procedure Save;
- procedure LoadLastestDealPayData;
- end;
- implementation
- uses
- ProjectData, DealPaymentDm;
- {$R *.dfm}
- { TDealPayFinalData }
- procedure TDealPayFinalData.Close;
- begin
- sddDealPayFinal.Close;
- end;
- constructor TDealPayFinalData.Create(AProjectData: TObject);
- begin
- inherited Create(nil);
- FProjectData := AProjectData;
- end;
- destructor TDealPayFinalData.Destroy;
- begin
- inherited;
- end;
- procedure TDealPayFinalData.Open(AConnection: TADOConnection);
- begin
- sdpDealPayFinal.Connection := AConnection;
- sddDealPayFinal.Open;
- end;
- procedure TDealPayFinalData.Save;
- begin
- sddDealPayFinal.Save;
- end;
- procedure TDealPayFinalData.LoadLastestDealPayData;
- var
- iPhase, iRec: Integer;
- vDealRec, vRec, vDealPayRec: TsdDataRecord;
- sTpField: string;
- begin
- iPhase := TProjectData(FProjectData).PhaseIndex;
- sTpField := 'TotalPrice' + IntToStr(TProjectData(FProjectData).PhaseData.PhaseProperty.AuditCount);
- for iRec := 0 to TProjectData(FProjectData).DealPaymentData.sddDealPayment.RecordCount - 1 do
- begin
- vDealRec := TProjectData(FProjectData).DealPaymentData.sddDealPayment.Records[iRec];
- vRec := sddDealPayFinal.Locate('PhaseID;DealID', VarArrayOf([iPhase, vDealRec.ValueByName('ID').AsInteger]));
- if not Assigned(vRec) then
- begin
- vRec := sddDealPayFinal.Add;
- vRec.ValueByName('PhaseID').AsInteger := iPhase;
- vRec.ValueByName('DealID').AsInteger := vDealRec.ValueByName('ID').AsInteger;
- end;
- vDealPayRec := TProjectData(FProjectData).PhaseData.PhasePayData.PayRecord(vDealRec.ValueByName('ID').AsInteger);
- if Assigned(vDealPayRec) then
- begin
- vRec.ValueByName('TotalPrice').AsFloat := vDealPayRec.ValueByName(sTpField).AsFloat;
- vRec.ValueByName('EndTotalPrice').AsFloat := vDealPayRec.ValueByName('End' + sTpField).AsFloat;
- vRec.ValueByName('PreTotalPrice').AsFloat := vDealPayRec.ValueByName('Pre' + sTpField).AsFloat;
- end;
- end;
- end;
- end.
|