SysOperationServiceController lấy parameter từ DataContract


06/04/2020- duocnt    775 Views    


Mô tả:

 - DataContract sẽ nhận parameter từ user.

 - Truyền giá trị nhận được vào Controller.

 - Xử lý với giá trị nhận được.

NỘI DUNG:

  1. Tạo class DataContract UpdateChargeValueContract.
  2. Tạo class Controller UpdateChargeValueController.
  3. Tạo method operation trong controller để nhận giá trị từ DataContract và xử lý nghiệp vụ.
  4. Tạo hàm main trong controller để chạy class controller.
  5. Review code trong Controller.
  6. Tạo MenuItem để gọi Controller.

THỰC HIỆN:

1 - Tạo class DataContract UpdateChargeValueContract.

 - New class và đặt tên UpdateChargeValueContract.

 - Code của class DataContract.

[DataContractAttribute]
public class UpdateChargeValueContract
{
    SalesId salesId;
 
    [DataMemberAttribute("SalesId")]
    public SalesId parmSalesId(SalesId _salesId = salesId)
    {
        salesId = _salesId;
        return  salesId;
    }
}

2 - Tạo class Controller UpdateChargeValueController.

 - New 1 class và đăt tên UpdateChargeValueController.

 - Extends controller từ SysOperationServiceController.

class  UpdateChargeValueController extends SysOperationServiceController

3 - Tạo method operation trong controller để nhận giá trị từ DataContract và xử lý nghiệp vụ.

    public void operation(UpdateChargeValueContract _Contract)
    {
        SalesId             _salesId;
        SalesLine           _salesLines;
        SalesTable          _salesTable;
        RetailSalesLine     _retailSalesLine;
        ReturnReasonCode    _returnReasonCode;
 
        _salesId = _Contract.parmSalesId();
                
        while select * from _salesLines
            join _retailSalesLine where _retailSalesLine.SalesLine == _salesLines.RecId
            join _salesTable where _salesLines.SalesId == _salesTable.SalesId
            && _salesTable.SalesId ==_salesId
        {
            select _returnReasonCode                     where _returnReasonCode.ReasonCodeId ==_retailSalesLine.ReturnReasonCodeId;
            if(_returnReasonCode)
            {
                if(_returnReasonCode.RemoveComission!= NoYes::Yes && _returnReasonCode.RemoveRoyalty!=NoYes::Yes)
                {                                        _salesLines.createMarkupTrans(_salesTable,true);
                }
                        }
            else
            {                                _salesLines.createMarkupTrans(_salesTable,true);
            }
           
        }
        info("Updated");
    }

4 - Tạo hàm main trong controller để chạy class controller.

    public static void main(Args _args)
    {
        UpdateChargeValueController _controller =  new UpdateChargeValueController();
        _controller.parmClassName(classStr(UpdateChargeValueController));
        _controller.parmMethodName(methodStr(UpdateChargeValueController,operation));
        _controller.parmExecutionMode(SysOperationExecutionMode::Synchronous);
        _controller.parmDialogCaption("Select Sales Order to update charge value");
        _controller.startOperation();       
    }

5 - Review code của Controller.

class  UpdateChargeValueController extends SysOperationServiceController
{
  
    public static void main(Args _args)
    {
        UpdateChargeValueController _controller =  new UpdateChargeValueController();
        _controller.parmClassName(classStr(UpdateChargeValueController));
        _controller.parmMethodName(methodStr(UpdateChargeValueController,operation));
        _controller.parmExecutionMode(SysOperationExecutionMode::Synchronous);
        _controller.parmDialogCaption("Select Sales Order to update charge value");
        _controller.startOperation();       
    }
 
    public void operation(UpdateChargeValueContract _Contract)
    {
        SalesId             _salesId;
        SalesLine           _salesLines;
        SalesTable          _salesTable;
        RetailSalesLine     _retailSalesLine;
        ReturnReasonCode    _returnReasonCode;
 
        _salesId = _Contract.parmSalesId();
               
        while select * from _salesLines
            join _retailSalesLine where _retailSalesLine.SalesLine == _salesLines.RecId
            join _salesTable where _salesLines.SalesId == _salesTable.SalesId
            && _salesTable.SalesId ==_salesId
        {
            select _returnReasonCode                     where _returnReasonCode.ReasonCodeId == _retailSalesLine.ReturnReasonCodeId;
            if(_returnReasonCode)
            {
                if(_returnReasonCode.RemoveComission != NoYes::Yes &&_returnReasonCode.RemoveRoyalty !=NoYes::Yes)
                {
                    _salesLines.createMarkupTrans(_salesTable,true);
                }
            }
            else
            {                                _salesLines.createMarkupTrans(_salesTable,true);
            }
           
        }
        info("Updated");
    }
}

6 - Tạo ActionMenuItem để gọi Controller.

 - New 1 MenuItemAction và đặt tên UpdateChargeValueController.

 - Chọn Class cho thuộc tính Object Type.

 - Chọn UpdateChargeValueController cho thuộc tính Object.

 - Nhập Update Charge Value cho thuộc tính Label.

Góp ý kiến

;
;