Mit Hilfe des folgenden Code ist es möglich eine Verkaufsrechnung für einen bestimmten Auftrag zu buchen und dabei nur ausgewählte Auftragspositionen zu verarbeiten.
Der Trick dabei ist, sich über die Standardfunktionalität über die Methode initLinesQuery() die Tabelle SalesParmLine aufbauen zu lassen und vor dem eigentlichen Buchungsvorgang diese Datensätze zu modifizieren. Beispielsweise indem man ganze Datensätze aus der SalesParmLine löscht.
static void createSalesInvoiceSelectLines(Args _args)
{
SalesTable salesTable = SalesTable::find('001562');
SalesFormLetter salesFormLetter;
SalesParmLine salesParmLine;
setPrefix(funcName());
salesFormLetter = SalesFormLetter::construct(DocumentStatus::Invoice);
// Do the steps manually, which normally are done in method salesFormLetter.update()
salesFormLetter.salesTable(salesTable);
salesFormLetter.initParmSalesTable(salesFormLetter.salesTable());
salesFormLetter.transDate(systemDateGet());
salesFormLetter.specQty(SalesUpdate::All);
salesFormLetter.proforma(salesFormLetter.salesParmUpdate().Proforma);
salesFormLetter.printFormLetter(salesFormLetter.printFormLetter());
salesFormLetter.printCODLabel(NoYes::No);
salesFormLetter.printShippingLabel(NoYes::No);
salesFormLetter.usePrintManagement(false);
salesFormLetter.creditRemaining(salesFormLetter.creditRemaining());
salesFormLetter.createParmUpdateFromParmUpdateRecord(
SalesFormletterParmData::initSalesParmUpdateFormletter(
salesFormLetter.documentStatus(),
salesFormLetter.pack(),
true,
false,
false));
salesFormLetter.initParameters(salesFormLetter.salesParmUpdate(), Printout::Current);
salesFormLetter.initLinesQuery();
while select forupdate salesParmLine
where salesParmLine.ParmId == salesFormLetter.parmId()
{
setPrefix(#PrefixField(salesParmLine, InventTransId));
// ...Modify record/Delete record...
}
// Let's go
if (salesFormLetter.validate(null))
{
salesFormLetter.run();
}
}
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.
Mehr dazu
Mit Hilfe des folgenden Code ist es möglich eine Verkaufsrechnung für einen bestimmten Auftrag zu buchen und dabei nur ausgewählte Auftragspositionen zu verarbeiten.
Der Trick dabei ist, sich über die Standardfunktionalität über die Methode initLinesQuery() die Tabelle SalesParmLine aufbauen zu lassen und vor dem eigentlichen Buchungsvorgang diese Datensätze zu modifizieren. Beispielsweise indem man ganze Datensätze aus der SalesParmLine löscht.