Service |
public UpdateUserTimeApprovalOut UpdateUserTimeApproval( UpdateUserTimeApprovalIn input )
Name | Description |
---|---|
BASIC |
This action will do minimal validation and is recommended if you do not want do full validation checking. The validation for this mode includes: - Validation of the EmpIdentifier - Validation that all ApprovedBy EmpIdentifer values are valid |
Note |
---|
Request Limits The API will only allow a maximum of 100 approval updates to be sent in a single request. If you attempt to send more than 100 it will fail and you will receive a message indicating this If you need to approve greater than 100 items it is advised to send them in batches of 100 or less. Business Rules: Approving in and out punches is the core of the time-web system. The WSUserTimeApproval class encapsulate the needed methods/operations to interact with a users time entry approval process. Setup: Employee > Dashboard Manager > Time Cards > Time Card Approvals |
{ "AuthToken":"...", "ValidationType" : "BASIC", "Payload":[{ "EmpIdentifier":"5555", "TimePreSliceID":136, "EmpApproved":true }, { "EmpIdentifier":"5555", "TimePreSliceID":137, "EmpApproved":true, "MgrApproved1":true, "MgrApproved1By":"1234", "MgrApproved2":true, "MgrApproved2By":"1234", "AdminApproved":false, "AdminApprovedBy":"1234" }, { "EmpIdentifier":"777", "TimePreSliceID":128, "EmpApproved":false }, { "EmpIdentifier":"5555", "TimePreSliceID":11, "EmpApproved":false }] }
{ "Report": { "APIVersion": "2.0", "ProcessTime": "0.0396155", "RequestTime": "/Date(1479243951478-0700)/", "ResponseTime": "/Date(1479243951518-0700)/", "Results": 4 }, "Results": [ { "ID": 136, "Messages": ["PASS: EmpApproved updated to True"], "Status": 1 }, { "ID": 137, "Messages": [ "PASS: AdminApproved updated to False", "PASS: MgrApproved1 updated to True", "PASS: MgrApproved2 updated to True", "PASS: EmpApproved updated to True" ], "Status": 1 }, { "ID": 0, "Messages": ["FAIL: EmpIdentifier '777' not found"], "Status": 0 }, { "ID": 11, "Messages": ["FAIL: TimeSlicePreID '11' not found for EmpIdentifier '5555'"], "Status": 0 } ] }
public class TimeCardApprovalTest : BaseServiceTest { [TestMethod] [TestCategory("SOAP_V2")] public void V2_UpdateUserTimeApproval_SOAPTest() { try { var actionTestLogic = new Action<SoapServiceV2.ServiceRouterClient>((client) => { AppOne.Core.Security.Token token = new AppOne.Core.Security.Token().GetToken(WSCustomerAlias, WSUserName, WSUserPass, "en-us", AppOne.Core.Security.Token.SourceTypes.WebService); string empID = System.Configuration.ConfigurationManager.AppSettings["Test.UserInfo.EmpIdentifier"]; bool isUpdate = false; int userID = new UserInfo().GetUserByEmployeeIdentifier(token, empID).UserID; TimeSlicePre timeSlicePre = new TimeSlicePre() { UserID = userID, PayTypeID = PayType.PayTypes.Work.GetHashCode(), TransactionDateTime = DateTime.Now.Date, TransactionUTCDateTime = DateTime.UtcNow.Date, ClosedType = TimeSlicePre.ClosedTypes.Open, TransactionType = TimeSlicePre.TransactionTypes.ClockIn, TransactionSource = TimeSlicePre.TransactionSources.WebServices }; int timeSlicePreID = timeSlicePre.Add(token, 0, true, true, null).FirstOrDefault().TimeSlicePreID; SoapServiceV2.UpdateUserTimeApprovalRequest request = new SoapServiceV2.UpdateUserTimeApprovalRequest(); SoapServiceV2.UpdateUserTimeApprovalRequest request1 = new SoapServiceV2.UpdateUserTimeApprovalRequest(); //Approve TimeCard List<UpdateUserTimeApprovalModel> payLoad = new List<UpdateUserTimeApprovalModel>(); payLoad.Add(new UpdateUserTimeApprovalModel { AdminApproved = true, AdminApprovedBy = empID, MgrApproved1 = true, MgrApproved1By = empID, MgrApproved2 = true, MgrApproved2By = empID, EmpApproved = true, EmpIdentifier = empID, TimePreSliceID = timeSlicePreID }); request.input = new SoapServiceV2.UpdateUserTimeApprovalIn() { AuthToken = AuthToken, Payload = payLoad }; timeSlicePre = new TimeSlicePre().GetTimeSliceInfoFromPreIds(token, userID, new List<int>() { timeSlicePreID }).FirstOrDefault(); if (timeSlicePre.AdminApproved && timeSlicePre.MgrApproved && timeSlicePre.Mgr2Approved && timeSlicePre.EmpApproved) { isUpdate = true; } //Unapproved TimeCard payLoad = new List<UpdateUserTimeApprovalModel>(); payLoad.Add(new UpdateUserTimeApprovalModel { AdminApproved = false, AdminApprovedBy = empID, MgrApproved1 = false, MgrApproved1By = empID, MgrApproved2 = false, MgrApproved2By = empID, EmpApproved = false, EmpIdentifier = empID, TimePreSliceID = timeSlicePreID }); request.input = new SoapServiceV2.UpdateUserTimeApprovalIn() { AuthToken = AuthToken, Payload = payLoad }; timeSlicePre = new TimeSlicePre().GetTimeSliceInfoFromPreIds(token, userID, new List<int>() { timeSlicePreID }).FirstOrDefault(); if (!timeSlicePre.AdminApproved && !timeSlicePre.MgrApproved && !timeSlicePre.Mgr2Approved && !timeSlicePre.EmpApproved) { isUpdate = true; } timeSlicePre.DeleteAndProcess(token, true); SoapServiceV2.UpdateUserTimeApprovalResponse response = client.UpdateUserTimeApproval(request); Assert.IsTrue(isUpdate && (response.UpdateUserTimeApprovalResult.Results != null ? response.UpdateUserTimeApprovalResult.Results.Count : 0) > 0); }); RunServiceClient(actionTestLogic); } catch (FaultException<SoapServiceV2.ServiceException> fe) { Assert.Fail(fe.Detail.Message); } }