Restore deleted Sales order from the void salesorder
class TECRestoreDeletedSOBatch extends RunBaseBatch
{
// User Input fields
DialogField fieldSalesid;
DialogField fieldName;
// Variables to store user input
SalesTable salesTable;
Name salesID;
// pack() and unpack() methods are used to load the last value from user
// for our simple example we are not going to use them.
public container pack()
{
return conNull();
}
public boolean unpack(container packedClass)
{
return true;
}
// Dialog method to capture runtime user inputs for customer details
public Object dialog()
{
Dialog dialog = super();
// Set a title for dialog
dialog.caption( 'Restored deleted Sales order');
// Add a new field to Dialog
fieldSalesid = dialog.addField(extendedTypeStr(name), 'Sales order number'); //SalesIdDelete
return dialog;
}
// Retrieve values from Dialog
public boolean getFromDialog()
{
salesid = fieldSalesid.value();
return super();
}
public void run()
{
SalesTableDelete salesTableDelete;
SalesLineDelete salesLineDelete;
SalesLine salesLine;
// Set Dialog field value to find CustTable
SalesTableDelete = SalesTableDelete::find(salesid, true);
ttsbegin;
switch (salesTableDelete.Cancelled)
{
case Voided::Voided :
salesTable = conpeek(salesTableDelete.SalesTable, 1);
salesTable.insert();
while select forupdate salesLineDelete where salesLineDelete.SalesId == salesTableDelete.SalesId
{
salesLine = conpeek(salesLineDelete.SalesLine, 1);
salesLine.insert();
}
salesTableDelete.delete();
break;
case Voided::linesVoided :
while select forupdate salesLineDelete where salesLineDelete.SalesId == salesTableDelete.SalesId
{
salesLine = conpeek(salesLineDelete.SalesLine, 1);
salesLine.insert();
salesLineDelete.delete();
}
salesTableDelete.delete();
break;
}
ttscommit;
}
public static void main(Args _args)
{
TECRestoreDeletedSOBatch tecRestoreDeletedSOBatch = new TECRestoreDeletedSOBatch();
// Prompt the dialog, if user clicks OK it returns true
if (tecRestoreDeletedSOBatch.prompt())
{
tecRestoreDeletedSOBatch.run();
}
}
}
Comments
Post a Comment