⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scade_mod.pas

📁 基于OOP设计的一套较好的ERP系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:

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 + -