Exemplo n.º 1
0
            public static void CloseShift(ChangeShiftStatusRequest request, ChangeShiftStatusResponse response)
            {
                ThrowIf.Null(request, "CreateShiftRequest");
                ThrowIf.Null(response, "CreateShiftResponse");

                InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest(
                    "RemoveOpenedShift",
                    response.Shift.StoreRecordId,
                    response.Shift.TerminalId,
                    response.Shift.ShiftId);

                InvokeExtensionMethodRealtimeResponse RTSResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest);
                ReadOnlyCollection <object>           results     = RTSResponse.Result;

                bool success = Convert.ToBoolean(results[0]);

                if (!success)
                {
                    using (var databaseContext = new DatabaseContext(request))
                    {
                        ParameterSet parameters = new ParameterSet();
                        parameters["@CHANNEL"]    = response.Shift.StoreRecordId;
                        parameters["@TERMINALID"] = response.Shift.TerminalId;
                        parameters["@SHIFTID"]    = response.Shift.ShiftId;

                        databaseContext.ExecuteStoredProcedureNonQuery("[ext].[DeleteClosedShift]", parameters);
                    }
                }
            }
Exemplo n.º 2
0
            private static void OnChangeShiftStatusExecuting(ChangeShiftStatusRequest request)
            {
                switch (request.ToStatus)
                {
                case ShiftStatus.Closed:
                    bool isNonDrawerOperationCheckRequired = IsNonDrawerOperationCheckRequired(request.RequestContext, request.ShiftId);
                    request.RequestContext.Execute <NullResponse>(new CheckAccessServiceRequest(RetailOperation.CloseShift, isNonDrawerOperationCheckRequired));
                    break;

                case ShiftStatus.BlindClosed:
                    request.RequestContext.Execute <NullResponse>(new CheckAccessServiceRequest(RetailOperation.BlindCloseShift));
                    break;

                case ShiftStatus.Suspended:
                    request.RequestContext.Execute <NullResponse>(new CheckAccessServiceRequest(RetailOperation.SuspendShift));
                    break;
                }
            }
Exemplo n.º 3
0
            public static void ChangeShiftStatus(ChangeShiftStatusRequest request, ChangeShiftStatusResponse response)
            {
                ThrowIf.Null(request, "CreateShiftRequest");
                ThrowIf.Null(response, "CreateShiftResponse");

                InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest(
                    "ChangeShiftStatus",
                    response.Shift.StoreRecordId,
                    response.Shift.TerminalId,
                    response.Shift.ShiftId,
                    Convert.ToInt32(response.Shift.Status),
                    response.Shift.CurrentTerminalId,
                    response.Shift.CurrentStaffId);

                InvokeExtensionMethodRealtimeResponse RTSResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest);
                ReadOnlyCollection <object>           results     = RTSResponse.Result;

                bool success = Convert.ToBoolean(results[0]);

                if (!success)
                {
                    using (var databaseContext = new DatabaseContext(request))
                    {
                        ParameterSet parameters = new ParameterSet();
                        parameters["@CHANNEL"]           = response.Shift.StoreRecordId;
                        parameters["@TERMINALID"]        = response.Shift.TerminalId;
                        parameters["@SHIFTID"]           = response.Shift.ShiftId;
                        parameters["@STATUS"]            = response.Shift.Status;
                        parameters["@STATUSDATETIMEUTC"] = response.Shift.StatusDateTime;
                        parameters["@CURRENTSTAFFID"]    = response.Shift.CurrentStaffId;
                        parameters["@CURRENTTERMINALID"] = response.Shift.CurrentTerminalId;

                        databaseContext.ExecuteStoredProcedureNonQuery("[ext].[ChangeShiftStaus]", parameters);
                    }
                }
            }
 /// <summary>
 /// Initializes a new instance of the <see cref="ShiftTransitionHelper"/> class.
 /// </summary>
 /// <param name="context">The request context.</param>
 /// <param name="request">The request.</param>
 internal ShiftTransitionHelper(RequestContext context, ChangeShiftStatusRequest request)
 {
     this.context = context;
     this.request = request;
     this.InitShiftTransitions();
 }