after change of callsign, report, date or time, the QSO was still marked as uploaded to LotW/eQSL - fixed

This commit is contained in:
Petr Hlozek 2015-01-11 19:54:26 +01:00
parent 05c8733ed1
commit a562372a9e
3 changed files with 102 additions and 3 deletions

View File

@ -7,6 +7,7 @@ Legend:
1.9.0
+ configuration can be stored into database or local computer only (Preferences -> Program -> Configure storage settings)
+ second directory path to auto backup added
- after change of callsign, report, date or time, the QSO was still marked as uploaded to LotW/eQSL - fixed
1.8.3
+ Added support for setting the QTH Nickname in eQSL.cc download dialog (Florian, DF2ET)

View File

@ -307,6 +307,8 @@ type
procedure EditCallAlert(const id : Integer; const callsign, band, mode : String);
procedure MarkAllAsUploadedToeQSL;
procedure MarkAllAsUploadedToLoTW;
procedure RemoveeQSLUploadedFlag(id : Integer);
procedure RemoveLoTWUploadedFlag(id : Integer);
end;
var
@ -3739,6 +3741,83 @@ begin
lTr.Commit
end;
{
eqsl_qsl_sent varchar(1) default '' not null,
eqsl_qslsdate date default null,
}
procedure TdmData.RemoveeQSLUploadedFlag(id : Integer);
const
C_UPD = 'update cqrlog_main set eqsl_qsl_sent=%s,eqsl_qslsdate=NULL where id_cqrlog_main=%d';
var
t : TSQLQuery;
tr : TSQLTransaction;
begin
t := TSQLQuery.Create(nil);
tr := TSQLTransaction.Create(nil);
try try
t.Transaction := tr;
tr.DataBase := MainCon;
t.DataBase := MainCon;
tr.StartTransaction;
t.SQL.Text := Format(C_UPD,[QuotedStr(''),id]);
if fDebugLevel>=1 then Writeln(t.SQL.Text);
t.ExecSQL
except
on E : Exception do
begin
Writeln(E.Message);
tr.Rollback
end
end;
finally
t.Close;
if tr.Active then
tr.Commit;
FreeAndNil(t);
FreeAndNil(tr)
end
end;
{
lotw_qslsdate DATE default null,
lotw_qsls VARCHAR(3) DEFAULT '' not null,
}
procedure TdmData.RemoveLoTWUploadedFlag(id : Integer);
const
C_UPD = 'update cqrlog_main set lotw_qsls=%s,lotw_qslsdate=NULL where id_cqrlog_main=%d';
var
t : TSQLQuery;
tr : TSQLTransaction;
begin
t := TSQLQuery.Create(nil);
tr := TSQLTransaction.Create(nil);
try try
t.Transaction := tr;
tr.DataBase := MainCon;
t.DataBase := MainCon;
tr.StartTransaction;
t.SQL.Text := Format(C_UPD,[QuotedStr(''),id]);
if fDebugLevel>=1 then Writeln(t.SQL.Text);
t.ExecSQL
except
on E : Exception do
begin
Writeln(E.Message);
tr.Rollback
end
end;
finally
t.Close;
if tr.Active then
tr.Commit;
FreeAndNil(t);
FreeAndNil(tr)
end
end;
initialization
{$I dData.lrs}

View File

@ -493,6 +493,9 @@ type
old_qslr : String;
posun : String;
old_call : String;
old_time : String;
old_rsts : String;
old_rstr : String;
ChangeDXCC : Boolean;
StartTime : TDateTime;
Running : Boolean;
@ -971,6 +974,9 @@ begin
QTHfromCb := False;
lblAmbiguous.Visible := False;
old_call := '';
old_time := '';
old_rstr := '';
old_rsts := '';
lblCfmLoTW.Visible := False;
lblQSLRcvdDate.Visible := False;
lblQSLRcvdDate.Caption := '';
@ -1951,7 +1957,14 @@ begin
lblCont.Caption,
ChangeDXCC,
dmData.GetNRFromProfile(cmbProfiles.Text),
id)
id);
if (old_call<>edtCall.Text) or (old_mode<>cmbMode.Text) or (StrToFloat(old_freq)<>StrToFloat(cmbFreq.Text)) or
(old_date<>StrToDate(edtDate.Text)) or (old_time<>edtStartTime.Text) or (old_rsts<>edtHisRST.Text) or
(old_rstr<>edtMyRST.Text) then
begin
dmData.RemoveeQSLUploadedFlag(id);
dmData.RemoveLoTWUploadedFlag(id)
end
end
else begin
if not mnuRemoteMode.Checked then
@ -4717,7 +4730,10 @@ begin
old_mode := dmData.qQSOBefore.FieldByName('mode').AsString;
old_adif := dmDXCC.AdifFromPfx(dmData.qQSOBefore.FieldByName('dxcc_ref').AsString);
old_qslr := dmData.qQSOBefore.FieldByName('qsl_r').AsString;
old_call := dmData.qQSOBefore.FieldByName('callsign').AsString
old_call := dmData.qQSOBefore.FieldByName('callsign').AsString;
old_time := dmData.qQSOBefore.FieldByName('time_on').AsString;
old_rsts := dmData.qQSOBefore.FieldByName('rst_s').AsString;
old_rstr := dmData.qQSOBefore.FieldByName('rst_r').AsString
end
else begin
old_date := dmUtils.MyStrToDate(dmData.qCQRLOG.FieldByName('qsodate').AsString);
@ -4725,7 +4741,10 @@ begin
old_mode := dmData.qCQRLOG.FieldByName('mode').AsString;
old_adif := dmDXCC.AdifFromPfx(dmData.qCQRLOG.FieldByName('dxcc_ref').AsString);
old_qslr := dmData.qCQRLOG.FieldByName('qsl_r').AsString;
old_call := dmData.qCQRLOG.FieldByName('callsign').AsString
old_call := dmData.qCQRLOG.FieldByName('callsign').AsString;
old_time := dmData.qCQRLOG.FieldByName('time_on').AsString;
old_rsts := dmData.qCQRLOG.FieldByName('rst_s').AsString;
old_rstr := dmData.qCQRLOG.FieldByName('rst_r').AsString
end;
if fViewQSO then
old_call := '';