COC for table level methods
1. SalesLine update method
[ExtensionOf(tableStr(SalesLine))]
final class HFGIOMSalesLine_Extension
{
public void update(boolean _dropInvent,
Common _childBuffer,
boolean _updateOrderLineOfDeliverySchedule,
boolean _mcrAutoallocate,
boolean _cameFromCreate,
boolean _promptSuppItem
)
{
SalesLine salesLine = this.orig();
InventQty qtyOrdered = salesLine.QtyOrdered;
SalesQty remainingPhysicalQty = salesLine.RemainSalesPhysical;
TransDate receiptDateConfirmed = salesLine.ReceiptDateConfirmed;
next update(_dropInvent,_childBuffer,_updateOrderLineOfDeliverySchedule,
_mcrAutoallocate,_cameFromCreate,_promptSuppItem);
if(this.QtyOrdered != qtyOrdered || this.RemainSalesPhysical != remainingPhysicalQty
|| this.ReceiptDateConfirmed != receiptDateConfirmed)
{
//calling HFGIOMSalesLineUpdateBusinessEvent
HFGIOMSalesLineUpdateBusinessEvent::newFromSalesLine(this).send();
}
}
}
2 . MarkUpTrans table Insert() :-
/// <summary>
/// class for sales order event log for maintain charges
/// </summary>
[ExtensionOf(tablestr(MarkupTrans))]
final class BASBBRSalesOrderMaintainChargesLine_Extension
{
public void insert(SourceDocumentLineAccountingStatus _targetAccountingStatus)
{
next insert(_targetAccountingStatus);
if(this.TransTableId == tableNum(SalesTable))
{
SalesTable salesTable = this.parentRecord();
if(salesTable.getRetailChannelName())
{
SalesTable salesTableLocal;
MarkupTrans markUpTrans;
select count(RecId) from markUpTrans
join salesTableLocal
where salesTableLocal.RecId == markupTrans.TransRecId
&& salesTableLocal.SalesId == salesTable.SalesId;
if(markUpTrans.RecId > 1)
{
SalesOrdersEventsLog salesOrdersEventLog;
ttsbegin;
salesOrdersEventLog.clear();
salesOrdersEventLog.SalesId = salesTable.SalesId;
salesOrdersEventLog.EventType = BASBBREventType::BAS_AdditionOfChargeLine;
salesOrdersEventLog.CreatedDateAndTime = DateTimeUtil::getSystemDateTime();
salesOrdersEventLog.insert();
ttscommit;
}
}
}
}
3. MarkUpTrans table Update() :-
public void update(boolean _updateMiscMatching, boolean _isEditingBlockedByVendorInvoice)
{
MarkupTrans markupTrans = this.orig();
MarkupValue value = markupTrans.Value;
next update(_updateMiscMatching,_isEditingBlockedByVendorInvoice);
SalesTable salesTable;
select firstonly salesTable
join markupTrans
where salesTable.RecId == this.TransRecId;
if(this.TransTableId == tableNum(SalesTable))
{
if(this.Value!=value && salesTable.getRetailChannelName())
{
SalesOrdersEventsLog salesOrdersEventLog;
ttsbegin;
salesOrdersEventLog.clear();
salesOrdersEventLog.SalesId = salesTable.SalesId;
salesOrdersEventLog.EventType = BASBBREventType::BAS_ModificationOfChargeAmount;
salesOrdersEventLog.CreatedDateAndTime = DateTimeUtil::getSystemDateTime();
salesOrdersEventLog.insert();
ttscommit;
}
}
}
}
4. SalesLine table insert() :-
/// <summary>
/// class for sales order event log for creation and deletion of line
/// </summary>
[ExtensionOf(tableStr(SalesLine))]
final class BASBBRSalesLinesEvents_Extension
{
public void insert(boolean _dropInvent,
boolean _findMarkup,
Common _childBuffer,
boolean _skipCreditLimitCheck,
boolean _skipWHSProcesses,
InventRefTransId _interCompanyInventTransId)
{
next insert(_dropInvent,_findMarkup,_childBuffer,_skipCreditLimitCheck,_skipWHSProcesses,_interCompanyInventTransId);
//Declaration of Events table
SalesLine salesLine;
SalesTable salesTable;
RetailSalesTable retailSalesTable;
SalesOrdersEventsLog salesEvents;
select count(RecId) from salesLine
where salesLine.SalesId == this.SalesId
join SalesTable
where salesTable.SalesId == salesLine.SalesId
join retailSalesTable
where retailSalesTable.SalesTable == salesTable.RecId;
//inserting created sales line records
if(salesLine.RecId > 1)
{
ttsbegin;
salesEvents.clear();
salesEvents.SalesId = this.SalesId;
salesEvents.EventType = BASBBREventType::BAS_AdditionOfNewLine;
salesEvents.CreatedDateAndTime = DateTimeUtil::getSystemDateTime();
salesEvents.insert();
ttscommit;
}
}
5. SalesLine table delete() :-
public void delete(Common childBuffer, boolean updateOrderLineOfDeliverySchedule)
{
next delete(childBuffer,updateOrderLineOfDeliverySchedule);
SalesTable salesTable = SalesTable::find(this.SalesId);
//Declaration of Events table
SalesOrdersEventsLog salesEvents;
//inserting created sales line records
if(salesTable.getRetailChannelName())
{
ttsbegin;
salesEvents.clear();
salesEvents.SalesId = this.SalesId;
salesEvents.EventType = BASBBREventType::BAS_DeletionOfExistingLine;
salesEvents.CreatedDateAndTime = DateTimeUtil::getSystemDateTime();
salesEvents.insert();
ttscommit;
}
}
}
6. CreditCardAuthTrans table Insert() :-
/// <summary>
/// class for sales order event log for refund payment id
/// </summary>
[ExtensionOf(tableStr(CreditCardAuthTrans))]
final class BASBBRPaymentRefundAuthTrans_Extension
{
public void insert()
{
next insert();
SalesTable salesTable = SalesTable::find(this.SalesId);
//Declaration of Events table
SalesOrdersEventsLog salesEvents;
//inserting created sales line records
if(salesTable.DocumentStatus == DocumentStatus::Invoice && salesTable.SalesType == SalesType::ReturnItem)
{
ttsbegin;
salesEvents.clear();
salesEvents.SalesId = this.SalesId;
salesEvents.PaymetRecID = this.RecId;
salesEvents.EventType = BASBBREventType::BAS_HeaderCancellation;
salesEvents.CreatedDateAndTime = DateTimeUtil::getSystemDateTime();
salesEvents.insert();
ttscommit;
}
}
}
7. SalesLine table insert() :-
/// <summary>
/// class for sales order event log for Partial Cancellation
/// </summary>
[ExtensionOf(tableStr(SalesLine))]
final class BASBBRPartialCancellation_Extension
{
public void update(boolean _dropInvent,
Common _childBuffer,
boolean _updateOrderLineOfDeliverySchedule,
boolean _mcrAutoallocate,
boolean _cameFromCreate,
boolean _promptSuppItem)
{
SalesTable salesTable = SalesTable::find(this.SalesId);
SalesLine salesLineOrig = this.orig();
InventQty remainInventPhysical = salesLineOrig.RemainInventPhysical;
SalesQty salesQty = salesLineOrig.SalesQty;
next update(_dropInvent,_childBuffer,_updateOrderLineOfDeliverySchedule,_mcrAutoallocate,_cameFromCreate,_promptSuppItem);
if(salesTable.getRetailChannelName())
{
SalesOrdersEventsLog salesOrdersEventLog;
if(this.RemainInventPhysical != remainInventPhysical && this.SalesQty==salesQty && this.RemainInventPhysical != 0)
{
ttsbegin;
salesOrdersEventLog.clear();
salesOrdersEventLog.SalesId = this.SalesId;
salesOrdersEventLog.EventType = basbbrEventType::BAS_PartialCancellationUsingDeliveryRemainder;
salesOrdersEventLog.CreatedDateandTime = DateTimeUtil::getSystemDateTime();
salesOrdersEventLog.insert();
ttscommit;
}
}
}
}
8. CustPackingSlipJour table insert() :-
/// <summary>
/// class for sales order event log for change of PackingSlip order status
/// </summary>
[ExtensionOf(tableStr(CustPackingSlipJour))]
final class BASBBRPackingSlipUpdate_Extension
{
public void insert()
{
SalesTable salesTable;
RetailSalesTable retailSalesTable;
SalesOrdersEventsLog salesEvents;
next insert();
select firstonly SalesId from salesTable
where salesTable.SalesId == this.SalesId
join retailSalesTable
where retailSalesTable.SalesTable == salesTable.RecId;
//inserting created sales line records
if(salesTable.SalesId)
{
ttsbegin;
salesEvents.clear();
salesEvents.SalesId = this.SalesId;
salesEvents.EventType = BASBBREventType::BAS_ChangeOfOrderStatus;
salesEvents.CreatedDateAndTime = DateTimeUtil::getSystemDateTime();
salesEvents.insert();
ttscommit;
}
}
}
9. CustInvoiceJour table insert() :-
/// <summary>
/// class for sales order event log for change of Invoice order status
/// </summary>
[ExtensionOf(tableStr(CustInvoiceJour))]
final class BASBBRInvoiceStatusUpdate_Extension
{
public void insert()
{
SalesTable salesTable;
RetailSalesTable retailSalesTable;
SalesOrdersEventsLog salesEvents;
next insert();
select firstonly SalesId from salesTable
where salesTable.SalesId == this.SalesId
join retailSalesTable
where retailSalesTable.SalesTable == salesTable.RecId;
//inserting created sales line records
if(salesTable.SalesId)
{
ttsbegin;
salesEvents.clear();
salesEvents.SalesId = this.SalesId;
salesEvents.EventType = BASBBREventType::BAS_ChangeOfOrderStatus;
salesEvents.CreatedDateAndTime = DateTimeUtil::getSystemDateTime();
salesEvents.insert();
ttscommit;
}
}
}
10. Display()
[ExtensionOf(tableStr(CustTable))]
final class BAS_DisplayInvoicedCustTable_Extension
{
public display real displayInvoiced()
{
CustInvoiceJour custinvoice;
select sum(InvoiceAmount) from custinvoice
where custinvoice.OrderAccount == this.AccountNum;
return custinvoice.InvoiceAmount;
//Info(strFmt("Hey I'm working"));
}
}
11. PurchTable initValue() :-
[ExtensionOf(tableStr(PurchTable))]
final class BAS_PurchTable_Extension
{
public void initValue(PurchaseType _purchaseType) // Datasource initValue method
{
//Write something : info message which will be executed before the standard code execution
Info(strFmt("Working on PurchTable"));
next initValue(); // Call original method
this.BAS_Madule = "AccountPayable";
info(strFmt("AccountPayable"));
}
public boolean validateDelete(boolean _intercompanyForce)
{
boolean ret;
ret = next validateDelete(_intercompanyForce);
Info("Checking for validateDelete Method");
//Info(any2Str(this.BAS_PurchOrder));
return ret;
}
}
Comments
Post a Comment