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

📄 doc_mod.pas

📁 基于OOP设计的一套较好的ERP系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    TTFilialiProvincia: TStringField;
    TTFilialiStato: TStringField;
    TTFilialiIdGiornale: TStringField;
    TTTestataRagione_Filiale: TStringField;
    TTFilialiCodicefiliale: TStringField;
    TTVettori: TTable;
    TTVettoriCodice: TStringField;
    TTVettoriVettore: TStringField;
    TTVettoriIndirizzo: TStringField;
    TTVettoriTelefono: TStringField;
    TTVettoriFax: TStringField;
    TTVettoriEmail: TStringField;
    TTVettoriWEB: TStringField;
    TTVettoriIdGiornale: TStringField;
    ppBDEPipeline1: TppBDEPipeline;
    DsVettori: TDataSource;
    TTArticoliPrezzoconsigliatoL: TCurrencyField;
    TTArticoliPrezzoconsigliatoE: TCurrencyField;
    TTArticoliPrezzoconsigliatoivatoL: TCurrencyField;
    TTArticoliPrezzoconsigliatoivatoE: TCurrencyField;
    TTTestataDataannullato: TDateField;
    TTConvDocSpesebancarie: TCurrencyField;
    TTConvDocSpesetrasporto: TCurrencyField;
    TTConvDocSpesevarie: TCurrencyField;
    QselTesteSpesebancarie: TCurrencyField;
    QselTesteSpesetrasporto: TCurrencyField;
    QselTesteSpesevarie: TCurrencyField;
    TTDettaglioQta_imballo: TFloatField;
    TTDettaglioQta_imballoMov: TFloatField;
    TTDettaglioDatascadenza: TDateField;
    MaxDoc: TQuery;
    MaxDocMassimo: TIntegerField;
    MaxScontr: TQuery;
    MaxScontrMassimo: TFloatField;
    MaxResi: TQuery;
    MaxResiMassimo: TIntegerField;
    MaxMovMerce: TQuery;
    MaxMovMerceMassimo: TIntegerField;
    TTGiacenzaDataultimoinventario: TDateField;
    TTGiacenzaIdDocInv: TIntegerField;
    TTGiacenzaIdScontrInv: TIntegerField;
    TTGiacenzaIdResiInv: TIntegerField;
    TTGiacenzaIdMovMerceInv: TIntegerField;
    TTCausaliTipoimpegno: TStringField;
    TTTestataTipoImpegno: TStringField;
    TTContattiStampa: TBooleanField;
    TTDettaglioProvvigione_capo: TBooleanField;
    TTTestataAliquotaenasarco: TFloatField;
    TTTestataRitenutaAcconto: TCurrencyField;
    TTTestataRitenutaEnasarco: TCurrencyField;
    TTDettaglioCoefficiente: TFloatField;
    TTDconvDocQta_imballo: TFloatField;
    TTDconvDocCoefficiente: TFloatField;
    TTTestataTotalesaldo: TCurrencyField;
    QselTesteSegnodocumento: TStringField;
    QselTestePrefissodocumento: TStringField;
    TTConvDocSegnodocumento: TStringField;
    TTConvDocPrefissodocumento: TStringField;
    TTDettaglioQtapagata: TFloatField;
    TTDettaglioPromozione: TStringField;
    procedure ModuloDatiDocumentiCreate(Sender: TObject);
    procedure TTTestataAfterInsert(DataSet: TDataSet);
    procedure TTTestataTipoValidate(Sender: TField);
    procedure TTDettaglioCalcFields(DataSet: TDataSet);
    procedure TTTestataAfterOpen(DataSet: TDataSet);
    procedure TTTestataBeforeDelete(DataSet: TDataSet);
    procedure TTDettaglioArticolointernoChange(Sender: TField);
    procedure TTTestataBeforeEdit(DataSet: TDataSet);
    procedure TTDettaglioAfterPost(DataSet: TDataSet);
    procedure TTDettaglioBeforeDelete(DataSet: TDataSet);
    procedure TTTestataAfterPost(DataSet: TDataSet);
    procedure TTEcontoCalcFields(DataSet: TDataSet);
    procedure TTDettaglioArticolofornitoreChange(Sender: TField);
    procedure TTDettaglioArticoloetichettaChange(Sender: TField);
    procedure TTTestataAccontoLChange(Sender: TField);
    procedure TTTestataAccontoEChange(Sender: TField);
    procedure TTEtichetteArticolointernoChange(Sender: TField);
    procedure TTEtichetteArticolofornitoreChange(Sender: TField);
    procedure TTEtichetteArticoloetichettaChange(Sender: TField);
    procedure modifica_etichetteCustomSaveDoc(Sender: TObject);
    procedure TTDocVarAfterPost(DataSet: TDataSet);
    procedure TTTestataCalcFields(DataSet: TDataSet);
    procedure TTDettaglioAfterInsert(DataSet: TDataSet);
    procedure TTDocVarAfterInsert(DataSet: TDataSet);
    procedure TTDocVarBeforeDelete(DataSet: TDataSet);
    procedure TTDettaglioBeforePost(DataSet: TDataSet);
    procedure TTIntestazioneCalcFields(DataSet: TDataSet);
    procedure TTTestataCuradeltrasportoChange(Sender: TField);
    procedure TTTestataVettoreChange(Sender: TField);
    procedure TTDettaglioPrezzoChange(Sender: TField);
    procedure TTDettaglioPrezzoIvatoChange(Sender: TField);
    procedure TTDettaglioDescrizioneChange(Sender: TField);
    procedure TTTestataValutaChange(Sender: TField);
    procedure SogRif_ricercaCalcFields(DataSet: TDataSet);
    procedure TTTestataBeforePost(DataSet: TDataSet);
    procedure TTEcontoSoggettoChange(Sender: TField);
    procedure TTImpostazioniSpeseditrasportoLChange(Sender: TField);
    procedure TTImpostazioniSpeseditrasportoEChange(Sender: TField);
    procedure TTImpostazioniSpesebancarieLChange(Sender: TField);
    procedure TTImpostazioniSpesebancarieEChange(Sender: TField);
    procedure TTImpostazioniSpesevarieLChange(Sender: TField);
    procedure TTImpostazioniSpesevarieEChange(Sender: TField);
    procedure TTTestataEvasoChange(Sender: TField);
    procedure TTDettaglioEvasoChange(Sender: TField);
    procedure TTTestataScontoChange(Sender: TField);
    procedure TTTestataSconto2Change(Sender: TField);
    procedure EtiSelDbArticoloInternoChange(Sender: TField);
    procedure TTGiacenzaAfterPost(DataSet: TDataSet);
    procedure TTTestataDataChange(Sender: TField);
    procedure TTTestataPagamentoChange(Sender: TField);
    procedure TTDettaglioIstatChange(Sender: TField);
    procedure TTEcontoDareLChange(Sender: TField);
    procedure TTEcontoAvereLChange(Sender: TField);
    procedure TTEcontoDareEChange(Sender: TField);
    procedure TTEcontoAvereEChange(Sender: TField);
    procedure TTGiacenzaAfterInsert(DataSet: TDataSet);
    procedure TTIvaAfterInsert(DataSet: TDataSet);
    procedure TTArticoliAfterInsert(DataSet: TDataSet);
    procedure TTEcontoAfterInsert(DataSet: TDataSet);
    procedure TTCausaliAfterInsert(DataSet: TDataSet);
    procedure TTCaudocAfterInsert(DataSet: TDataSet);
    procedure TTImpostazioniAfterInsert(DataSet: TDataSet);
    procedure Soggetti_RicercaAfterInsert(DataSet: TDataSet);
    procedure TTFiltroDocAfterInsert(DataSet: TDataSet);
    procedure SogRif_ricercaAfterInsert(DataSet: TDataSet);
    procedure TTCastivaAfterInsert(DataSet: TDataSet);
    procedure TTGrusogCodAfterInsert(DataSet: TDataSet);
    procedure TTEtichetteAfterInsert(DataSet: TDataSet);
    procedure TTPrzStoryAfterInsert(DataSet: TDataSet);
    procedure TTDettAfterInsert(DataSet: TDataSet);
    procedure EtiSelDbAfterInsert(DataSet: TDataSet);
    procedure TTIvaAfterPost(DataSet: TDataSet);
    procedure TTArticoliAfterPost(DataSet: TDataSet);
    procedure TTEcontoAfterPost(DataSet: TDataSet);
    procedure TTCausaliAfterPost(DataSet: TDataSet);
    procedure TTCaudocAfterPost(DataSet: TDataSet);
    procedure TTImpostazioniAfterPost(DataSet: TDataSet);
    procedure Soggetti_RicercaAfterPost(DataSet: TDataSet);
    procedure TTFiltroDocAfterPost(DataSet: TDataSet);
    procedure SogRif_ricercaAfterPost(DataSet: TDataSet);
    procedure TTCastivaAfterPost(DataSet: TDataSet);
    procedure TTGrusogCodAfterPost(DataSet: TDataSet);
    procedure TTEtichetteAfterPost(DataSet: TDataSet);
    procedure TTPrzStoryAfterPost(DataSet: TDataSet);
    procedure TTDettAfterPost(DataSet: TDataSet);
    procedure EtiSelDbAfterPost(DataSet: TDataSet);
    procedure TTGiacenzaBeforeDelete(DataSet: TDataSet);
    procedure TTIvaBeforeDelete(DataSet: TDataSet);
    procedure TTArticoliBeforeDelete(DataSet: TDataSet);
    procedure TTEcontoBeforeDelete(DataSet: TDataSet);
    procedure TTCausaliBeforeDelete(DataSet: TDataSet);
    procedure TTCaudocBeforeDelete(DataSet: TDataSet);
    procedure TTImpostazioniBeforeDelete(DataSet: TDataSet);
    procedure Soggetti_RicercaBeforeDelete(DataSet: TDataSet);
    procedure TTFiltroDocBeforeDelete(DataSet: TDataSet);
    procedure SogRif_ricercaBeforeDelete(DataSet: TDataSet);
    procedure TTCastivaBeforeDelete(DataSet: TDataSet);
    procedure TTGrusogCodBeforeDelete(DataSet: TDataSet);
    procedure TTEtichetteBeforeDelete(DataSet: TDataSet);
    procedure TTPrzStoryBeforeDelete(DataSet: TDataSet);
    procedure TTDettBeforeDelete(DataSet: TDataSet);
    procedure EtiSelDbBeforeDelete(DataSet: TDataSet);
    procedure TTDettaglioQtaChange(Sender: TField);
    procedure TTDettaglioIvaChange(Sender: TField);
    procedure doc_mailerSendStart(Sender: TObject);
    procedure doc_mailerSuccess(Sender: TObject);
    procedure TTTestataFilialeChange(Sender: TField);
  private
    { Private declarations }
    Qta_old : real ;
  public
    { Public declarations }
    Procedure Compila_dettaglio_varianti ;
    Procedure ImpostaFormati ;
    Procedure StampaDoc(DaImpostazioni,Anteprima : boolean) ;
    Procedure CalcolaImponibili ;
    Function Impostadoc(nomefileReport : string):string ;
    Function Pulisci_Scadenziario : boolean ;
    Procedure Compila_Scadenziario ;
    Procedure Stampa_etichette_documento(over:boolean) ;
    Procedure Seleziona_articolo(listino_prezzi:string;articolo_etichetta,articolo_interno:string ; qta:integer; qta_assoluta : boolean;descrizione2 : String);
    Procedure Stampa_eti ;
    Procedure ELimina_coda_etichette ;
    Procedure MuoviMag(Riga_old : mov_mag ; Riga_new: mov_mag) ;
    Procedure Svuota_varianti  ;
    Procedure Copia ;
    Procedure Incolla ;
    Function CheckCLip : boolean ;
    Procedure CreanuovoArticolo(cod_int,cod_forn,cod_eti:string) ;
    Function NumeratoreDettaglio : integer ;
    Function ConvertiDocs(Soggetto,TipoDocFiglio:string;Var Documento:integer;Var Datadoc:TdateTime;Creadoc,PulisciBuffer:boolean):boolean ;
    Procedure SmarcaDocs ;
    Procedure NascondiDescrizione ;
    Procedure RicercaArticolo(fornitore:string) ;
    Procedure MemorizzaPrezzi(scrivi:boolean) ;
    Procedure MostraStoricoPrezzi ;
    Function TrovaNelloStorico : boolean ;
    Procedure MostraTabelleIva ;
    Function ControllaEsistenzaDoc : boolean ;
    Procedure AssociaArticoliFornitore ;
    procedure ComparativaPrezziFornitori;
    function LeggiIvaDefault: String;
    procedure RicercaArticoloDescr(Descr:string);
    procedure ricercaArticoloForn(art: string);
    procedure Seleziona_Articolo_Lista(listino_prezzi:string;articolo_etichetta,articolo_interno:string ; qta:integer; qta_assoluta : boolean;descrizione2 : String);
    procedure AggiornaSoggetto;
    function Controlla_Istat: boolean;
    function ArrotondaImponibile(imponibile: currency;
      valuta: string): currency;
    function ArrotondaImponibile4(imponibile: real;
      valuta: string): real;
    function Etichetta_to_interno(etichetta: string): string;
    procedure InviaDoc;
    function StaInviando: boolean;
    function movimenti_giacenza: boolean;
    function round2(x: real): int64;
    procedure calcola_qta_pagata;
  end;


var
  ModuloDatiDocumenti: TModuloDatiDocumenti;
  Mod_manuale : boolean ;
  Prezzi_da_Anagrafica: boolean;
  Prezzi_vendita_da_listino : boolean ;
  Vendita_con_listino : boolean ;
  Acquisto_da_anagrafica : boolean ;
  dettaglio_old : mov_mag ;
  dettaglio_new : mov_mag ;
  Gestione_varianti_old : boolean ;
  Apri_griglia : Boolean ;
  SmarcaConvertiti : boolean ;
  Descrizione_visibile : boolean ;
  IVADEFAULT : String ;
  mod_istat: boolean;
  Sconto_Old: Integer;
  In_invio: boolean;
  doc_mailer : TNMSmtp ;
  valuta_prec : string ;
  incrementa_inventario: boolean ;
  importa_documenti: boolean ;
  Fatturazione_riepilogativa: boolean;  // Importa documenti

implementation

uses ana_mod, etichette_u, u_griglia_varianti, gestModExt, nuovo_articolo_u,
  seleziona_Documenti_u, u_editdescrizione, ricerca_u, rica_art_u_fornit,
  u_StoricoPrezzi, u_tabIVA, Prezzi_fornitore, Umenu, scade_mod,
  mail_doc_invia_U, u_request, aboutOS;

{$R *.DFM}

Function TModuloDatiDocumenti.TrovaNelloStorico : boolean ;
begin
 result := false ;
 If (Acquisto_Da_Anagrafica) and (Vendita_con_listino) then exit ;
 TTPrzStory.Filtered := false ;
 TTPrzStory.Filter := 'Soggetto = ''' + TTTestataSoggetto.asString + ''' and Articolo = ''' + TTDettaglioArticoloInterno.AsString + '''' ;
 TTPrzStory.Filtered := True ;
 If (TTPrzStory.Eof) and TTPrzStory.Bof then
  begin
   result := False ;
   exit ;
  end ;
 TTPrzStory.Last ;
 If TTPrzStoryValuta.asString = TTTestataValuta.AsString then
    TTDettaglioPrezzo.AsCurrency := TTPrzStoryPrezzo.asCurrency
 else
  begin
   If TTPrzStoryValuta.asString = 'E' then
    TTDettaglioPrezzo.asCurrency := ModuloDatiAnagrafiche.EuroLire(TTPrzStoryPrezzo.asCurrency)
   else
    TTDettaglioPrezzo.asCurrency := ModuloDatiAnagrafiche.LireEuro(TTPrzStoryPrezzo.asCurrency)
  end ;
 TTDettaglioSconto.asFloat := TTPrzStorySconto.asFloat ;
 TTDettaglioSconto2.asFloat := TTPrzStorySconto2.asFloat ;
 TTDettaglioSconto3.asFloat := TTPrzStorySconto3.asFloat ;
 Result := True ;
end;


Procedure TmoduloDatiDocumenti.MostraTabelleIva ;
begin
 TabelleIva_form := TTabelleIva_form.Create(self) ;
 TabelleIva_form.ShowModal ;
 If TabelleIva_form.ModalResult = mrOk then
  begin
   TTDettaglio.Edit ;
   TTDettaglioIVA.AsString := ModuloDatiAnagrafiche.TTIvaCodice.asString ;
  end ;
 TabelleIva_form.Free ;
end ;

Procedure TmoduloDatiDocumenti.MostraStoricoPrezzi ;
begin
 If ModuloDatiAnagrafiche.TTarticoli.FindKey([TTdettaglioArticoloInterno.asString]) then
  begin
     StoriaPrezzi_form := TStoriaPrezzi_form.Create(Self) ;
     StoriaPrezzi_form.QStorico.ParamByName('soggetto').Value := TTTestataSoggetto.asString ;
     StoriaPrezzi_form.Qstorico.ParamByname('articolo').Value := TTDettaglioArticoloInterno.asString ;
     StoriaPrezzi_form.QStorico.Prepare ;
     StoriaPrezzi_form.QStorico.Open ;
     StoriaPrezzi_form.QStorico.Last ;
     StoriaPrezzi_form.Showmodal ;
     If StoriaPrezzi_form.ModalResult = mrOk then
      begin
       TTdettaglio.Edit ;
       If StoriaPrezzi_form.QStoricoValuta.asString = TTTestataValuta.AsString then
          TTDettaglioPrezzo.AsCurrency := StoriaPrezzi_form.QStoricoPrezzo.asCurrency
       else
        begin
         If StoriaPrezzi_form.QStoricoValuta.asString = 'E' then
          TTDettaglioPrezzo.asCurrency := ModuloDatiAnagrafiche.EuroLire(StoriaPrezzi_form.QStoricoPrezzo.asCurrency)
         else
          TTDettaglioPrezzo.asCurrency := ModuloDatiAnagrafiche.LireEuro(StoriaPrezzi_form.QStoricoPrezzo.asCurrency)
        end ;
       TTDettaglioSconto.asFloat := StoriaPrezzi_form.QStoricoSconto.asFloat ;
       TTDettaglioSconto2.asFloat := StoriaPrezzi_form.QStoricoSconto2.asFloat ;
       TTDettaglioSconto3.asFloat := StoriaPrezzi_form.QStoricoSconto3.asFloat ;
      end ;
     StoriaPrezzi_form.QStorico.Close ;
     StoriaPrezzi_form.Release ;
  end
 else
  ShowMessage('Articolo non esistente....') ;
end ;

Procedure TModuloDatiDocumenti.AssociaArticoliFornitore ;
Var
   Dettaglio : TTable ;
   Articoli : TTable ;
   Artforn : TTable ;
   Articolo,FornAtt : string ;

begin
 If TTTestataTipoMovimento.AsString = 'Scarico' then exit ;
 Dettaglio := TTable.Create(nil) ;
 Dettaglio.DatabaseName := 'euro2000' ;
 Dettaglio.Tablename := 'ddoc.db' ;
 Dettaglio.Open ;
 if Dettaglio.Locate('Documento',TTTestataDocumento.asString,[]) then
  begin
   Articoli := TTable.Create(nil) ;
   Articoli.DataBaseName := 'euro2000' ;
   Articoli.TableName := 'Articoli.db' ;
   Articoli.Open ;
   ArtForn := TTable.Create(nil) ;
   ArtForn.DatabaseName := 'euro2000' ;
   ArtForn.TableName := 'Artforn.db' ;
   // Scansione del dettaglio documento ;
   While (Dettaglio.FieldByName('Documento').asInteger = TTTestataDocumento.asInteger) and
         (Not Dettaglio.Eof) do
    begin
     Articolo := Dettaglio.FieldByName('Articolo interno').asString ;
     // Se articolo esiste ...
     If Articoli.FindKey([articolo]) then
      begin
       fornAtt := Articoli.FieldByName('Fornitore').asString ;
       // Se articolo 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -