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