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

Popular posts from this blog

How to Create a wizard in x++ d365

how to post trade agreement journals automatically using x++ code

X++ code to CREATE AND POST A TRADE AGREEMENT IN MICROSOFT DYNAMICS 365 in D365 F & O