📄 scade_mod.pas
字号:
procedure TModuloDatiScadenziario.TTTpnotaBeforeInsert(DataSet: TDataSet);
begin
TTTPnota.Last ;
end;
procedure TModuloDatiScadenziario.TTTpnotaAfterPost(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogM(TTTpnotaIdGiornale.AsString,TTTpnota.TableName);
CalcolaSaldoProgressivoPnota ;
end;
procedure TModuloDatiScadenziario.TTTpnotaAfterDelete(DataSet: TDataSet);
begin
CalcolaSaldoProgressivoPnota ;
end;
procedure TModuloDatiScadenziario.TTTpnotaAfterOpen(DataSet: TDataSet);
begin
// CalcolaSaldoProgressivoPnota ;
end;
procedure TModuloDatiScadenziario.TTEcontoBeforeOpen(DataSet: TDataSet);
begin
RefreshSoggettiEconto ;
end;
procedure TModuloDatiScadenziario.TTTpnotaBeforeDelete(DataSet: TDataSet);
Var
EcontoDb,DecontoDb : TTable ;
doc : integer ;
scad : TdateTime ;
begin
ModuloDatiAnagrafiche.LogC(TTTpnotaIdGiornale.AsString,TTTpnota.TableName);
DEcontoDb := TTable.Create(nil) ;
DecontoDb.DatabaseName := 'euro2000' ;
DecontoDb.TableName := 'deconto.db' ;
DecontoDb.open ;
If DecontoDb.Locate('Registrazione',TTTPnotaID.asInteger,[]) then
begin
if (MessageDlg('Esistono collegamenti allo scadenziario, eliminare la registrazione comunque ?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
begin
EcontoDb := TTable.Create(nil) ;
econtoDb.DatabaseName := 'euro2000' ;
econtoDb.TableName := 'econto.db' ;
econtoDb.open ;
While DecontoDb.Locate('Registrazione',TTTPnotaID.asInteger,[]) do
begin
Doc := DecontoDb.FieldByName('Documento').asInteger ;
Scad := DecontoDb.FieldByName('Scadenza').asDateTime ;
If EcontoDb.FindKey([doc,scad]) then
begin
EcontoDb.Edit ;
If EcontoDb.FieldByname('AP').AsString = 'A' then
EcontoDb.FieldByName('Dare L').asCurrency := EcontoDb.FieldByName('Dare L').asCurrency - Abs(TTTPnotaSaldo.AsCurrency)
else
EcontoDb.FieldByName('Avere L').asCurrency := EcontoDb.FieldByName('Avere L').asCurrency - Abs(TTTPnotaSaldo.AsCurrency) ;
EcontoDb.FieldByName('Saldato').AsBoolean := false ;
EcontoDb.FieldByName('Data pagamento').Clear ;
EcontoDb.Post ;
end ;
DecontoDb.Delete ;
end ;
EcontoDb.Close ;
EcontoDb.Free ;
end
else
abort ;
end ;
DecontoDb.Close ;
DEcontoDb.Free ;
end;
procedure TModuloDatiScadenziario.Registra;
Var
Entrata,Uscita : Currency ;
TipoDoc,eurolire: String ;
Tdoc : Ttable ;
Procedure ImpostaRitenuta(DataRit : Tdate ; CodiceRit : string; ImportoRit : Currency; documento:integer) ;
Var
GiornoScadenza : String ;
Giorno,Mese,Anno : Word ;
Aliquota : real ;
begin
If ModuloDatiAnagrafiche.TTanaCatRit.FindKey([codiceRit]) then
Aliquota := ModuloDatiAnagrafiche.TTAnaCatRitAliquota.asFloat / 100
else
Aliquota := 0 ;
GiornoScadenza := '18' ;
ModuloDatiAnagrafiche.LeggiChiave('SCADENZA RITENUTE',GiornoScadenza) ;
DecodeDate(Datarit,Anno,Mese,Giorno) ;
If Mese = 12 then
begin
Mese := 1 ;
Inc(Anno) ;
end
else
Inc(mese) ;
With ModuloDatiScadenziario do
begin
TTPagamRit.Insert ;
TTPagamRitDataScadenza.AsDateTime := StrToDate(GiornoScadenza + '/' + IntToStr(Mese) + '/' + IntToStr(anno)) ;
TTPagamRitDocumento.AsInteger := Documento ;
TTPagamRitImportoE.AsCurrency := ImportoRit * Aliquota ;
TTPagamRitImportoL.AsCurrency := ModuloDatiAnagrafiche.EuroLire(TTPagamRitImportoE.AsCurrency) ;
TTPagamRitCodiceRitenuta.AsString := CodiceRit ;
TTPagamRit.Post ;
end ;
end ;
begin
// Registriamo il pagamento / incasso della singola voce, scrivendo direttamente nella prima nota la relativa registrazione
Tdoc := TTable.Create(nil) ;
Tdoc.DatabaseName := 'euro2000' ;
Tdoc.TableName := 'tdoc.db' ;
Tdoc.Open ;
eurolire := ModuloDatiAnagrafiche.El ;
If TTTPnota.Filtered then TTTpnota.Filtered := False ;
TTTpnota.Insert ;
If TTEcontoAp.asString = 'A' then
TTTPnotaDescrizione.asString := 'Incasso '
else
TTTPnotaDescrizione.asString := 'Pagamento ' ;
{
if (ModuloDatiDocumenti.TTTestata.State <> dsInsert) and (ModuloDatiDocumenti.TTTestata.State <> dsEdit) then
showmessage('Not edit') ;
}
TipoDoc := ModuloDatiDocumenti.TTTestata.Lookup('Documento',TTEcontoDocumento.asInteger,'Tipo') ;
TTTPnotaDescrizione.asString := TTTPnotaDescrizione.asString + ' ' + ModuloDatiAnagrafiche.TTTipidoc.Lookup('codice',TipoDoc,'Descrizione') + ' n.' +
TTEcontoNumeroDoc.AsString + ' del ' + TTEcontoDatadoc.asString + ' ' + TTEcontoRagionesociale.asString ;
{
if (ModuloDatiDocumenti.TTTestata.State <> dsInsert) and (ModuloDatiDocumenti.TTTestata.State <> dsEdit) then
showmessage('Not edit') ;
}
If TTEcontoAp.asString = 'A' then
begin
If EUROLIRE = 'L' then
entrata := TTEcontoSaldoL.AsCurrency
else
entrata := TTEcontoSaldoE.AsCurrency ;
uscita := 0 ;
end
else
begin
entrata := 0 ;
If EUROLIRE = 'L' then
uscita := TTEcontoSaldoL.asCurrency * - 1
else
uscita := TTEcontoSaldoE.asCurrency * - 1 ;
end ;
TTTPnotaEntrata.AsCurrency := entrata ;
TTTPnotaUscita.asCurrency := uscita ;
Pagamenti_form := Tpagamenti_form.Create(self) ;
Pagamenti_form.ShowModal ;
If Pagamenti_form.ModalResult = mrOk then
begin
Try
TTDEconto.Insert ;
TTDEcontoRegistrazione.AsInteger := TTTPnotaID.AsInteger ;
TTDEconto.Post ;
except
TTDEconto.Cancel ;
end ;
TTEconto.Edit ;
If TTEcontoAP.AsString = 'A' then
begin
If EUROLIRE = 'L' then
TTEcontoDareL.asCurrency := TTEcontoDareL.asCurrency + TTTPnotaSaldo.AsCurrency
else
TTEcontoDareE.asCurrency := TTecontoDareE.asCurrency + TTTPnotaSaldo.asCurrency ;
end
else
begin
If EUROLIRE = 'L' then
TTEcontoAvereL.AsCurrency := TTEcontoAvereL.AsCurrency + ABS(TTTPnotaSaldo.AsCurrency)
else
TTEcontoAvereE.AsCurrency := TTecontoAvereE.AsCurrency + ABS(TTTPnotaSaldo.asCurrency) ;
end ;
TTEcontoDataPagamento.asDatetime := TTTPnotaData.AsDateTime ;
If TTEcontoSaldoE.AsCurrency = 0 then
TTEcontoSaldato.AsBoolean := true ;
TTEcontoManuale.AsBoolean := true ;
TTEconto.Post ;
end ;
Tdoc.Close ;
Tdoc.Free ;
Pagamenti_form.free ;
end;
procedure TModuloDatiScadenziario.QueryPnotaCalcFields(DataSet: TDataSet);
begin
QueryPnotaSaldo.AsCurrency := QueryPnotaEntrata.AsCurrency - QueryPnotaUscita.AsCurrency ;
end;
procedure TModuloDatiScadenziario.TTEcontoAfterInsert(DataSet: TDataSet);
begin
TTEcontoIDGiornale.AsString := ModuloDatiAnagrafiche.LogI(TTEconto.TableName);
end;
procedure TModuloDatiScadenziario.TTEcontoAfterPost(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogM(TTEcontoIdGiornale.AsString,TTEconto.TableName);
end;
procedure TModuloDatiScadenziario.TTEcontoBeforeDelete(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogC(TTEcontoIdGiornale.AsString,TTEconto.TableName);
end;
procedure TModuloDatiScadenziario.TTSoggettiAfterInsert(DataSet: TDataSet);
begin
TTSoggettiIDGiornale.AsString := ModuloDatiAnagrafiche.LogI(TTSoggetti.TableName);
end;
procedure TModuloDatiScadenziario.TTModPagAfterInsert(DataSet: TDataSet);
begin
TTModPagIDGiornale.AsString := ModuloDatiAnagrafiche.LogI(TTModPag.TableName);
end;
procedure TModuloDatiScadenziario.TTContiAfterInsert(DataSet: TDataSet);
begin
TTContiIDGiornale.AsString := ModuloDatiAnagrafiche.LogI(TTConti.TableName);
end;
procedure TModuloDatiScadenziario.TTDocumentiAfterInsert(
DataSet: TDataSet);
begin
TTDocumentiIDGiornale.AsString := ModuloDatiAnagrafiche.LogI(TTDocumenti.TableName);
end;
procedure TModuloDatiScadenziario.TTpagamRitAfterInsert(DataSet: TDataSet);
begin
TTpagamRitIDGiornale.AsString := ModuloDatiAnagrafiche.LogI(TTpagamRit.TableName);
end;
procedure TModuloDatiScadenziario.TTDEcontoAfterInsert(DataSet: TDataSet);
begin
TTDEcontoIDGiornale.AsString := ModuloDatiAnagrafiche.LogI(TTDEconto.TableName);
end;
procedure TModuloDatiScadenziario.TTSoggettiAfterPost(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogM(TTSoggettiIdGiornale.AsString,TTSoggetti.TableName);
end;
procedure TModuloDatiScadenziario.TTModPagAfterPost(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogM(TTModPagIdGiornale.AsString,TTModPag.TableName);
end;
procedure TModuloDatiScadenziario.TTContiAfterPost(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogM(TTContiIdGiornale.AsString,TTConti.TableName);
end;
procedure TModuloDatiScadenziario.TTDocumentiAfterPost(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogM(TTDocumentiIdGiornale.AsString,TTDocumenti.TableName);
end;
procedure TModuloDatiScadenziario.TTpagamRitAfterPost(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogM(TTpagamRitIdGiornale.AsString,TTpagamRit.TableName);
end;
procedure TModuloDatiScadenziario.TTDEcontoAfterPost(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogM(TTDEcontoIdGiornale.AsString,TTDEconto.TableName);
end;
procedure TModuloDatiScadenziario.TTSoggettiBeforeDelete(
DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogC(TTSoggettiIdGiornale.AsString,TTSoggetti.TableName);
end;
procedure TModuloDatiScadenziario.TTModPagBeforeDelete(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogC(TTModPagIdGiornale.AsString,TTModPag.TableName);
end;
procedure TModuloDatiScadenziario.TTContiBeforeDelete(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogC(TTContiIdGiornale.AsString,TTConti.TableName);
end;
procedure TModuloDatiScadenziario.TTDocumentiBeforeDelete(
DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogC(TTDocumentiIdGiornale.AsString,TTDocumenti.TableName);
end;
procedure TModuloDatiScadenziario.TTpagamRitBeforeDelete(
DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogC(TTpagamRitIdGiornale.AsString,TTpagamRit.TableName);
end;
procedure TModuloDatiScadenziario.TTDEcontoBeforeDelete(DataSet: TDataSet);
begin
ModuloDatiAnagrafiche.LogC(TTDEcontoIdGiornale.AsString,TTDEconto.TableName);
end;
procedure TModuloDatiScadenziario.modifica_pag;
var eurolire : string ;
Tpnota : Ttable ;
begin
Tpnota := TTable.Create(nil) ;
Tpnota.DatabaseName := 'euro2000' ;
Tpnota.TableName := 'Tpnota.db' ;
Tpnota.open ;
if Tpnota.FindKey([TTTpNotaRegistrazione.AsString]) then
begin
eurolire := ModuloDatiAnagrafiche.El ;
TTEconto.Edit ;
If TTEcontoAP.AsString = 'A' then
begin
If EUROLIRE = 'L' then
begin
TTEcontoDareL.AsCurrency := TTEcontoDareL.AsCurrency - (TpNota.FieldByName('Entrata').AsCurrency-TpNota.FieldByName('Uscita').AsCurrency) ;
TTEcontoDareL.asCurrency := TTEcontoDareL.asCurrency + TTTPnotaSaldo.AsCurrency ;
end
else
begin
TTEcontoDareE.AsCurrency := TTecontoDareE.AsCurrency - (TpNota.FieldByName('Entrata').AsCurrency-TpNota.FieldByName('Uscita').AsCurrency) ;
TTEcontoDareE.asCurrency := TTecontoDareE.asCurrency + TTTPnotaSaldo.asCurrency ;
end ;
end
else
begin
If EUROLIRE = 'L' then
begin
TTEcontoAvereL.AsCurrency := TTEcontoAvereL.AsCurrency - ABS((TpNota.FieldByName('Entrata').AsCurrency-TpNota.FieldByName('Uscita').AsCurrency)) ;
TTEcontoAvereL.AsCurrency := TTEcontoAvereL.AsCurrency + ABS(TTTPnotaSaldo.AsCurrency) ;
end
else
begin
TTEcontoAvereL.AsCurrency := TTEcontoAvereL.AsCurrency - ABS((TpNota.FieldByName('Entrata').AsCurrency-TpNota.FieldByName('Uscita').AsCurrency)) ;
TTEcontoAvereE.AsCurrency := TTecontoAvereE.AsCurrency + ABS(TTTPnotaSaldo.asCurrency) ;
end ;
end ;
TTEcontoDataPagamento.asDatetime := TTTPnotaData.AsDateTime ;
If TTEcontoSaldoE.AsCurrency = 0 then
TTEcontoSaldato.AsBoolean := true ;
TTEcontoManuale.AsBoolean := true ;
TTEconto.Post ;
end ;
Tpnota.Close ;
Tpnota.Free ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -