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

📄 produzione_u.pas

📁 Mosaic ERP大型系统 v6.09.rar
💻 PAS
字号:
unit Produzione_u;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables;

type
  TProduzione = class(TDataModule)
    TTProduzione: TTable;
    TTDProduzione: TTable;
    DSProduzione: TDataSource;
    DsDproduzione: TDataSource;
    TTPartiProdotto: TTable;
    DsPartiprodotto: TDataSource;
    TTProduzioneId: TIntegerField;
    TTProduzioneNumerolotto: TIntegerField;
    TTProduzioneData: TDateField;
    TTProduzioneRiferimentointerno: TStringField;
    TTProduzioneIncaricato: TStringField;
    TTDProduzioneId: TIntegerField;
    TTDProduzioneArticolo: TStringField;
    TTDProduzioneNote: TMemoField;
    TTDProduzioneIdriga: TIntegerField;
    TTDProduzioneRiferimentoordine: TIntegerField;
    TTPartiProdottoId: TIntegerField;
    TTPartiProdottoIdriga: TIntegerField;
    TTPartiProdottoComponente: TStringField;
    TTPartiProdottoQta: TFloatField;
    TTPartiProdottoAggiunta: TBooleanField;
    TTProduzioneDepositoparti: TStringField;
    TTProduzioneDepositoprodotti: TStringField;
    TTDProduzioneDescrizione: TStringField;
    TTPartiProdottoDescrizione: TStringField;
    TTDProduzioneQta: TFloatField;
    TTProduzioneCausaleparti: TStringField;
    TTProduzioneCausaleprodotti: TStringField;
    TTPartiProdottoArticoloEtichetta: TStringField;
    TTDProduzioneArticoloetichetta: TStringField;
    TTProdMatr: TTable;
    TTProdMatrId: TIntegerField;
    TTProdMatrIdriga: TIntegerField;
    TTProdMatrMatricola: TStringField;
    TTProdMatrScaricato: TBooleanField;
    DsProdMatr: TDataSource;
    TTProduzioneDepositopartiLookUp: TStringField;
    TTProduzioneDepositoProdottiLookUp: TStringField;
    TTProduzioneCausalePartiLookUp: TStringField;
    TTProduzioneCausaleprodottilookup: TStringField;
    procedure TTProduzioneAfterInsert(DataSet: TDataSet);
    procedure TTDProduzioneAfterInsert(DataSet: TDataSet);
    procedure TTPartiProdottoBeforeEdit(DataSet: TDataSet);
    procedure TTPartiProdottoAfterInsert(DataSet: TDataSet);
    procedure TTPartiProdottoAfterPost(DataSet: TDataSet);
    procedure TTPartiProdottoBeforeDelete(DataSet: TDataSet);
    procedure TTPartiProdottoCalcFields(DataSet: TDataSet);
    procedure TTDProduzioneCalcFields(DataSet: TDataSet);
    procedure TTDProduzioneBeforeEdit(DataSet: TDataSet);
    procedure TTDProduzioneBeforeDelete(DataSet: TDataSet);
    procedure TTDProduzioneAfterPost(DataSet: TDataSet);
    procedure TTProduzioneBeforeInsert(DataSet: TDataSet);
    procedure TTProduzioneAfterOpen(DataSet: TDataSet);
  private
    { Private declarations }
    Procedure AggiornaGiacenzaParti(Deposito,
                                    Causale,Cod_old : string ;
                                    qta_old : real;
                                    Cod_new : string;
                                    Qta_new : real) ;
    Procedure AggiornaGiacenzaProdotti(Deposito,
                                       Causale,Cod_old : string ;
                                       qta_old : real;
                                       Cod_new : string;
                                       Qta_new : real) ;
  public
    { Public declarations }
  end;

var
  Produzione: TProduzione;
  Componente_old,prodotto_old : string ;
  Qta_old,Qta_prodotto_old : real ;
  Deposito_parti_old,deposito_prodotti_old :string ;
  Causale_parti,
  Causale_prodotti,
  Deposito_parti,
  Deposito_prodotti,
  Riferimento,
  Incaricato : string ;

implementation

uses ana_mod, Doc_mod;

{$R *.DFM}
Procedure Tproduzione.AggiornaGiacenzaParti(Deposito,
                                            Causale,Cod_old : string ;
                                            qta_old : real;
                                            Cod_new : string;
                                            Qta_new : real) ;
begin
 // Scarichiamo codice precedente, se diverso da ''
 If Cod_old <> '' then
   With ModulodatiDocumenti do
    begin
     If TTGiacenza.FindKey([Cod_old,deposito]) then
      begin
       TTGiacenza.Edit ;
       TTGiacenzaQtaScarico.Value := TTgiacenzaQtaSCarico.Value - qta_old ;
       TTGiacenza.Post ;
      end
     else
      begin
       TTGiacenza.Insert ;
       TTGiacenzaArticolo.asString := Cod_old ;
       TTGiacenzaDeposito.asString := deposito ;
       TTGiacenzaQtaScarico.Value := - qta_old ;
       TTGiacenza.Post ;
      end ;
    end ;
   // Carichiamo codice nuovo se diverso da ''
 If Cod_new <> '' then
   With ModulodatiDocumenti do
    begin
     If TTGiacenza.FindKey([Cod_new,deposito]) then
      begin
       TTGiacenza.Edit ;
       TTGiacenzaQtaScarico.Value := TTgiacenzaQtaSCarico.Value + qta_new ;
       TTGiacenza.Post ;
      end
     else
      begin
       TTGiacenza.Insert ;
       TTGiacenzaArticolo.asString := Cod_new ;
       TTGiacenzaDeposito.asString := deposito ;
       TTGiacenzaQtaScarico.Value := qta_new ;
       TTGiacenza.Post ;
      end ;
    end ;
end ;

Procedure Tproduzione.AggiornaGiacenzaProdotti(Deposito,
                                               Causale,Cod_old : string ;
                                               qta_old : real;
                                               Cod_new : string;
                                               Qta_new : real) ;
begin
 // Scarichiamo codice precedente, se diverso da ''
 If Cod_old <> '' then
   With ModulodatiDocumenti do
    begin
     If TTGiacenza.FindKey([Cod_old,deposito]) then
      begin
       TTGiacenza.Edit ;
       TTGiacenzaQtacarico.Value := TTgiacenzaQtaCarico.Value - qta_old ;
       TTGiacenza.Post ;
      end
     else
      begin
       TTGiacenza.Insert ;
       TTGiacenzaArticolo.asString := Cod_old ;
       TTGiacenzaDeposito.asString := deposito ;
       TTGiacenzaQtacarico.Value := - qta_old ;
       TTGiacenza.Post ;
      end ;
    end ;
   // Carichiamo codice nuovo se diverso da ''
 If Cod_new <> '' then
   With ModulodatiDocumenti do
    begin
     If TTGiacenza.FindKey([Cod_new,deposito]) then
      begin
       TTGiacenza.Edit ;
       TTGiacenzaQtaCarico.Value := TTgiacenzaQtaCarico.Value + qta_new ;
       TTGiacenza.Post ;
      end
     else
      begin
       TTGiacenza.Insert ;
       TTGiacenzaArticolo.asString := Cod_new ;
       TTGiacenzaDeposito.asString := deposito ;
       TTGiacenzaQtacarico.Value := qta_new ;
       TTGiacenza.Post ;
      end ;
    end ;
end ;

procedure TProduzione.TTProduzioneAfterInsert(DataSet: TDataSet);
begin
     TTProduzioneId.Value := ModuloDatiAnagrafiche.IncNumeratore('PR','','','') ;
     TTProduzioneData.Value := Now ;
     TTProduzioneNumeroLotto.Value := TTProduzioneId.Value ;
     TTProduzioneCausaleParti.asString := Causale_parti ;
     TTProduzioneCausaleProdotti.asString := Causale_prodotti ;
     TTProduzioneDepositoParti.asString := Deposito_parti ;
     TTProduzioneDepositoProdotti.asString := Deposito_prodotti ;
     TTProduzioneIncaricato.asString := Incaricato ;
     TTProduzioneRiferimentoInterno.asString := Riferimento ;
end;

procedure TProduzione.TTDProduzioneAfterInsert(DataSet: TDataSet);
begin
     TTDproduzioneIdRiga.Value := ModuloDatiAnagrafiche.IncNumeratore('PR','DTPR','','') ;
     Prodotto_old := '' ;
     qta_prodotto_old := 0 ;
end;

procedure TProduzione.TTPartiProdottoBeforeEdit(DataSet: TDataSet);
begin
     Componente_old := TTPartiProdottoArticoloEtichetta.AsString ;
     qta_old := TTPartiProdottoQta.Value ;
end;

procedure TProduzione.TTPartiProdottoAfterInsert(DataSet: TDataSet);
begin
     Componente_old := '' ;
     Qta_old := 0 ;
end;

procedure TProduzione.TTPartiProdottoAfterPost(DataSet: TDataSet);
begin
     AggiornaGiacenzaParti(TTProduzioneDepositoparti.asString,
                           TTProduzioneCausaleParti.asString,
                           Componente_old,
                           Qta_old,
                           TTPartiProdottoArticoloEtichetta.asString,
                           TTPartiProdottoQta.Value) ;

end;

procedure TProduzione.TTPartiProdottoBeforeDelete(DataSet: TDataSet);
begin
     AggiornaGiacenzaParti(TTProduzioneDepositoParti.asString,
                      TTProduzioneCausaleParti.asString,
                      TTPartiProdottoArticoloEtichetta.asString,
                      TTPartiProdottoQta.Value,
                      '',
                      0) ;
end;

procedure TProduzione.TTPartiProdottoCalcFields(DataSet: TDataSet);
begin
     If ModulodatiAnagrafiche.TTarticoliLookup.FindKey([TTPartiProdottocomponente.asstring]) then
        TTPartiProdottoArticoloEtichetta.asString := ModulodatiAnagrafiche.TTArticoliLookUpArticoloEtichetta.asString ;
end;

procedure TProduzione.TTDProduzioneCalcFields(DataSet: TDataSet);
begin
     If ModulodatiAnagrafiche.TTarticoliLookUp.FindKey([TTDproduzionearticolo.asstring]) then
        TTDProduzioneArticoloEtichetta.asString := ModulodatiAnagrafiche.TTArticoliLookUpArticoloEtichetta.asString ;
end;

procedure TProduzione.TTDProduzioneBeforeEdit(DataSet: TDataSet);
begin
     Prodotto_old := TTDProduzioneArticoloetichetta.AsString ;
     qta_prodotto_old := TTDProduzioneQta.Value ;
end;

procedure TProduzione.TTDProduzioneBeforeDelete(DataSet: TDataSet);
begin
     AggiornaGiacenzaProdotti(TTProduzioneDepositoProdotti.asString,
                              TTProduzioneCausaleProdotti.asString,
                              TTDProduzioneArticoloEtichetta.asString,
                              TTDProduzioneQta.Value,
                              '',
                              0) ;
end;

procedure TProduzione.TTDProduzioneAfterPost(DataSet: TDataSet);
begin
     AggiornaGiacenzaProdotti(TTProduzioneDepositoProdotti.asString,
                              TTProduzioneCausaleProdotti.asString,
                              Prodotto_old,
                              qta_prodotto_old,
                              TTDProduzioneArticoloEtichetta.asString,
                              TTDproduzioneQta.Value) ;
     // Creiamo il dettaglio per questa riga.
     // Primo : Cancelliamo il dettaglio se gi

⌨️ 快捷键说明

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