Skip to main content
Skip table of contents

TbeIntercompanyInvoicingBusinessController

TbeIntercompanyInvoicingBusinessController

ab Version 7.7.1.4

Dieser Business-Controller stellt Funktionen und Methoden zur Bearbeitung von Intercompany-Abrechnungsaufträgen bereit.

Methoden

Beschreibung

CbNewPosition

Legt eine neue Auftragsposition an

Parameter

BeschreibungParameter

aDelivLocDab020IdsForInvoicing: A

Dab020-ID eines Intercompany-Abrechnungssatzes

nOrderNo:N

Auftragsnummer des D050-Auftragskopfes

nPosNo:N

Positionsnummer im Auftrag

cArtNo:C

Artikelnummer

CbEditPosition

Editiert eine Auftragsposition

Parameter

Beschreibung

nOrderNo:N

Auftragsnummer des D050-Auftragskopfes

nPosNo:N

Positionsnummer im Auftrag

CbDeletePosition

Löscht eine Auftragsposition

Parameter

Beschreibung

nOrderNo:N

Auftragsnummer des D050-Auftragskopfes

nPosNo:N

Positionsnummer im Auftrag

CbPostPosition

Speichert eine Auftragsposition

Parameter

Beschreibung

nOrderNo:N

Auftragsnummer des D050-Auftragskopfes

nPosNo:N

Positionsnummer im Auftrag

lCheckPlacingQuant:L

R-Menge validieren; (default = false)

Beispiel

CODE
|
  oDM, m_oBC, oDab000, oDab050, oMem050, m_nOrderType, m_cOrderKind, m_nCustomerNo,
  m_nAnummer:N, m_cArtNo:C, m_nPos:N, m_D020_ID, aRes
|

//******************************************************************************
// Die Funktion legt einen neuen Auftrag an und speichert diesen
// @Result: Integer - ANUMMER des neuen Auftrags
//******************************************************************************
function CreateNewOrder(oDab000, oDab050, oMem050, nCustomerNo, cOrderKind, nOrderType)
   Result := -1,
   oDM.CbTransaction_Begin(),
   startseq
      // Auftrag anlegen
      Result := AufKopfNeu(nCustomerNo, cOrderKind, nOrderType, oDab000, oDab050),
      SetErrorIf(Result = 0, 'Auftrag konnte nicht angelegt werden.'),

      // Auftrag speichern
      if AufKopfPost(Result, oDab000, oDab050, oMem050) then
         oDM.CbTransaction_Commit(),
      else
         SetError('Der Auftrag mit der Nummer: ' + Str(Result) + ' konnte nicht gespeichert werden.'),
      endif,
   onerror
      oDM.CbTransaction_TryRollback(),

      MessageDlg('Fehler beim Anlegen des Auftrags.' + CRLF + GetErrorText()),
   stopseq,
end,

//******************************************************************************
// Die Funktion legt eine neue Auftragsposition an und speichert diese
// @Result: Numeric - Auftragspositionsnummer
//******************************************************************************
function InsertNewOrderPosition(aAnummer, aPos, cArtNo, aD020_ID)
| aResPos |
   startseq
      Result := -1,
      m_oBC  := CreateObject('TBeIntercompanyInvoicingBusinessController'),
      oDM.CbTransaction_Begin(),
      startseq
         startseq
            m_oBC.CbDatamodule := oDM,
            aResPos := m_oBC.CbNewPosition(aD020_ID, aAnummer, aPos, cArtNo),
            Result  := aResPos,
            m_oBC.CbPostPosition(m_nAnummer, aResPos, false),
         onerror
            MessageDlg('Fehler beim Anlegen einer neuen Auftragsposition' + CrLf + CrLf +
               GetErrorText()),
         stopseq,

         oDM.CbTransaction_Commit(),
      always
         oDM.CbTransaction_TryRollback(),
      stopseq,
   always
      DestroyObject(m_oBC),
   stopseq,
end,

//******************************************************************************
// Die Funktion editiert eine Auftragsposition an und speichert diese
// @Result: Logical - Position erfolgreich editiert
//******************************************************************************
function EditOrderPosition(nAnummer, nPos)
   | oDab055 |
   startseq
      Result := False,
      m_oBC  := CreateObject('TBeIntercompanyInvoicingBusinessController'),
      oDM.CbTransaction_Begin(),
      startseq
         startseq
            oDab055            := DBGetTable(oDM, waDab055),
            m_oBC.CbDatamodule := oDM,
            Result := m_oBC.CbEditPosition(nAnummer, nPos),

            // Bestellmenge auf 5 setzen
            oDab055:BMENGE     := 5,

            m_oBC.CbPostPosition(m_nAnummer, nPos, false),
         onerror
            MessageDlg('Fehler beim Editieren der Auftragsposition <' + Str(nPos) + '>' + CrLf + CrLf +
               GetErrorText()),
         stopseq,
         oDM.CbTransaction_Commit(),
      always
         oDM.CbTransaction_TryRollback(),
      stopseq,
   always
      DestroyObject(m_oBC),
   stopseq,
end,

//******************************************************************************
// Die Funktion löscht eine Auftragsposition
// @Result: Null
//******************************************************************************
function DeleteOrderPosition(nAnummer, nPos)
   startseq
      m_oBC := CreateObject('TBeIntercompanyInvoicingBusinessController'),
      oDM.CbTransaction_Begin(),
      startseq
         startseq
            m_oBC.CbDatamodule := oDM,
            m_oBC.CbDeletePosition(nAnummer, nPos),
         onerror
            MessageDlg('Fehler beim Löschen der Auftragsposition <' + nPos + '>' + CrLf + CrLf +
               GetErrorText()),
         stopseq,
         oDM.CbTransaction_Commit(),
      always
         oDM.CbTransaction_TryRollback(),
      stopseq,
   always
      DestroyObject(m_oBC),
   stopseq,
end,


startseq,
   oDM            := CreateObject('TBeDbGet'),
   oDab000        := DbGetTable(oDM, waDab000),
   oDab050        := DbGetTable(oDM, waDab050),
   oMem050        := CreateObject('TMemCalcTable', 'Mem050', oDM),
   oMem050.Active := True,

   m_nCustomerNo := 60100,
   m_cOrderKind  := 'N', // Neuer Auftrag
   m_nOrderType  := 42,  // Nummer des Auftragstyps


   m_nAnummer := CreateNewOrder(oDab000, oDab050, oMem050, m_nCustomerNo, m_cOrderKind, m_nOrderType),
   m_cArtNo   := 'B-1',   // Artikelnummer
   m_nPos     := 1,       // Auftragsposition
   m_D020_ID  := {1419},  // D020-ID des IC-Verechnungsauftrages

  InsertNewOrderPosition(m_nAnummer, m_nPos, m_cArtNo, m_D020_ID ),
  EditOrderPosition(m_nAnummer, m_nPos),
  DeleteOrderPosition(m_nAnummer, m_nPos),
always
   DestroyObject(oDM),
stopseq,
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.