public static bool CopyDataFromTemplate(int projectId, DateTime currDate, int currHeaderId) { var filtered = LabourTemplate.GetTemplate(projectId, currDate); if (filtered.Count > 0) { Project project = Project.GetProject(projectId); foreach (var src in filtered) { int entryId = SqlInsert(currHeaderId, src.EmpNum, null, null, null, null, null, project.Billable, false, src.WorkClassCode, null, null, null); foreach (var tc in TimeCode.SubList(TimeCode.EnumValueType.Hours)) { decimal?billRate = ProjectWorkClass.GetBillRate(projectId, tc.MatchId, src.WorkClassCode); LabourTimeDetail.SqlInsert(entryId, tc.MatchId, billRate, null, null); } foreach (var tc in TimeCode.SubList(TimeCode.EnumValueType.Dollars)) { LabourTimeDetail.SqlInsert(entryId, tc.MatchId, null, null, null); } } return(true); } return(false); }
public override async System.Threading.Tasks.Task <SyncResult> Receive(Guid token) { try { ProjectWorkClass.Refresh(); using (HttpClient client = new HttpClient()) { client.Init(token); HttpResponseMessage response = await client.GetAsync($"api/ProjectWorkClasses?companyId={CompanyId}"); if (response.IsSuccessStatusCode) { UpdateStatus(EnumTableSyncStatus.Receiving); List <ProjectWorkClass> list = await response.Content.ReadAsAsync <List <ProjectWorkClass> >(); list.ForEach(x => { string sql = $"insert ProjectWorkClass(MatchId, CompanyId, ProjectId, WorkClassCode, RegularBillRate, OvertimeBillRate, DoubletimeBillRate, TravelBillRate, Schedulable, CeilingCost, RegularHours, TravelHours, InSync) " + $"values({x.MatchId}, {x.CompanyId}, {x.ProjectId}, '{x.WorkClassCode}', {StrEx.ValueOrNull(x.RegularBillRate)}, {StrEx.ValueOrNull(x.OvertimeBillRate)}, {StrEx.ValueOrNull(x.DoubleTimeBillRate)}, {StrEx.ValueOrNull(x.TravelBillRate)}," + $" '{x.Schedulable}', {StrEx.ValueOrNull(x.CeilingCost)}, {StrEx.ValueOrNull(x.RegularHours)}, {StrEx.ValueOrNull(x.TravelHours)}, 1)"; MobileCommon.ExecuteNonQuery(sql); }); UpdateStatus(EnumTableSyncStatus.CompleteReceive); return(new SyncResult { Successful = true }); } throw new Exception($"Response StatusCode={response.StatusCode}"); } } catch (Exception e) { UpdateStatus(EnumTableSyncStatus.ErrorInReceive); return(new SyncResult { Successful = false, Task = TableName, Message = e.Message }); } }
public static List <LabourTemplate> GetTemplate(int projectId, DateTime currDate) { var codeList = ProjectWorkClass.ListForProject(projectId).Where(x => x.Schedulable == true).Select(x => x.WorkClassCode); return(ListForProject(projectId).Where(x => (x.StartDate == null || x.StartDate < currDate) && (x.EndDate == null || x.EndDate > currDate) && codeList.Contains(x.WorkClassCode)).ToList()); }