1. Create a new Table to manage Number sequence Code with CodeID and add the relation to Number sequence Code with NumberSequenceTable like as a Fixed asset Table
2. Create a new form to manage CodeID and number sequence code Fields
3. Create a CodeID Field that needs to add to the purchcreateOrder form and PurchTable form
4. Purchase order number sequence should be set to manual from procurement and sourcing -> parameters-> number sequence form
5. Create two new classes which extend the standard forms
/// <summary>
/// This class is a COC of PurchCreateOrder form
/// </summary>
[ExtensionOf(formDataFieldStr(PurchCreateOrder, PurchTable, TSSSourceApplicationCode))]
final class PurchCreateOrderFormDSField_TSS_Extension
{
public NumberSeq purchIdNumberSeq;
public PurchId purchIdAllocated;
/// <summary>
/// This method is used to modify the values
/// </summary>
public void modified()
{
FormDataObject dataObject = any2Object(this) as FormDataObject;
FormDataSource ds = dataObject.datasource();
PurchTable purchTable = ds.cursor();
#Define.empty('')
next modified();
if (purchIdNumberSeq)
{
purchIdNumberSeq.abort();
}
if (purchTable.TSSSourceApplicationCode)
{
purchIdNumberSeq = NumberSeq::newGetNumFromId(TSSPurcTSSurceApplication::find(purchTable.TSSSourceApplicationCode).NumberSequencecode, true);
if (purchIdNumberSeq)
{
PurchTable.purchid = purchIdNumberSeq.num();
if (PurchTable.purchid)
{
purchIdAllocated = PurchTable.purchid;
ds.object(fieldNum(PurchTable, PurchId)).allowEdit(false);
}
else
{
ds.object(fieldNum(PurchTable, PurchId)).allowEdit(true);
}
}
}
else
{
PurchTable.purchid = #empty;
ds.object(fieldNum(PurchTable, PurchId)).allowEdit(false);
}
if (purchIdNumberSeq)
{
element.parmPurchIdNumberSeq(purchIdNumberSeq);
}
}
}
-----------------------------------------------------------------------------------------------
/// <summary>
/// This class is a COC of PurchCreateOrder form
/// </summary>
[ExtensionOf(formStr(PurchCreateOrder))]
final class PurchCreateOrderFrom_TSS_Extension
{
public NumberSeq purchIdNumberSeq;
/// <summary>
/// this mthod is use to pass the parm values
/// </summary>
/// <param name = "_numberSeq">_numberSeq</param>
/// <returns>NumberSeq</returns>
public NumberSeq parmPurchIdNumberSeq(NumberSeq _numberSeq)
{
purchIdNumberSeq = _numberSeq;
return purchIdNumberSeq;
}
/// <summary>
/// This method is called with we close the form
/// </summary>
public void close()
{
if (! PurchTable.RecId && purchIdNumberSeq)
{
purchIdNumberSeq.abort();
}
else if if (PurchTable.RecId && purchIdNumberSeq)
{
purchIdNumberSeq.used();
}
next close();
}
/// <summary>
/// This method is used to run the logic
/// </summary>
void run()
{
next run();
PurchTable_ds.object(fieldNum(PurchTable, PurchId)).allowEdit(false);
}
}
No comments:
Post a Comment