void UpdatePrices() { var source = dgProjectJournalLinePageGrid.GetVisibleRows() as IEnumerable <ProjectJournalLineLocal>; foreach (var rec in source) { dgProjectJournalLinePageGrid.SetLoadedRow(rec); var pro = (Uniconta.DataModel.Project)ProjectCache.Get(rec._Project); if (pro != null) { if (pro._Dim1 != null) { rec.Dimension1 = pro._Dim1; } if (pro._Dim2 != null) { rec.Dimension2 = pro._Dim2; } if (pro._Dim3 != null) { rec.Dimension3 = pro._Dim3; } if (pro._Dim4 != null) { rec.Dimension4 = pro._Dim4; } if (pro._Dim5 != null) { rec.Dimension5 = pro._Dim5; } } rec.InsidePropChange = true; if (rec._Item != null) { var cat = rec._PrCategory; SetItem(rec); SetCat(rec, cat); } getCostAndSales(rec); if (rec._Employee != null) { TimePriceLookup?.GetEmployeePrice(rec); var emp = (Uniconta.DataModel.Employee)EmployeeCache?.Get(rec._Employee); if (emp?._PayrollCategory != null) { rec.InsidePropChange = false; rec.PayrollCategory = emp._PayrollCategory; } } else if (rec._PayrollCategory != null) { PayrollCat(rec, true); } dgProjectJournalLinePageGrid.SetModifiedRow(rec); rec.InsidePropChange = false; } }
private void ButtonDashboard_Click(object sender, RoutedEventArgs e) { TextblockPanelName.Text = "Dashboard"; RoleCache.GetInstance().Clear(); EmployeeCache.GetInstance().Clear(); ResourceCache.GetInstance().Clear(); CustomerCache.GetInstance().Clear(); ProcessCache.GetInstance().Clear(); ProjectCache.GetInstance().Clear(); List <Resource> recs = ResourceCache.GetInstance().Resources; recs = ResourceCache.GetInstance().UpdateAllQSizes(); recs = recs.OrderByDescending(r => r.QSize).ToList <Resource>(); var emps = EmployeeCache.GetInstance().Employees; emps = EmployeeCache.GetInstance().UpdateAllQSizes(); emps = emps.OrderByDescending(e => e.QSize).ToList <Employee>(); DataContext = new DashboardViewModel { Resources = new ObservableCollection <Resource>(recs), SelectedResource = recs[0], Employees = new ObservableCollection <Employee>(emps), SelectedEmployee = emps[0] }; }
private void ProjectViewNewProjectClickHandler(ProjectsViewModel viewModel) { TextblockPanelName.Text = "Create New Project"; RoleCache.GetInstance().Clear(); EmployeeCache.GetInstance().Clear(); ResourceCache.GetInstance().Clear(); CustomerCache.GetInstance().Clear(); ProcessCache.GetInstance().Clear(); ProjectCache.GetInstance().Clear(); var resources = ResourceCache.GetInstance().Resources; resources = ResourceCache.GetInstance().UpdateAllQSizes(); DataContext = new AddEditProjectViewModel { Project = new Project { Id = 0, Processes = new List <Process>(), StartDate = DateTimeOffset.UtcNow, PoDate = DateTimeOffset.UtcNow, Quantity = 1, OrderStatus = Project.ProjectOrderStatus.WaitingQuote, }, BackClickedHandler = AddEditProjectViewBackClickHandler, Customers = CustomerCache.GetInstance().Customers, Processes = new ObservableCollection <Process>(new List <Process>()), Resources = resources.OrderByDescending(r => r.QSize).ToList <Resource>(), Employees = EmployeeCache.GetInstance().Employees }; }
public void Refresh() { CustomerCache.GetInstance().Clear(); EmployeeCache.GetInstance().Clear(); Customers = new ObservableCollection <Customer>(CustomerCache.GetInstance().Customers); Employees = new ObservableCollection <Employee>(EmployeeCache.GetInstance().Employees); ListViewCustomers.ItemsSource = Customers; ComboboxCustomerManager.ItemsSource = Employees; ListViewCustomers.SelectedItem = GetFirstCustomer(); }
public static IEnumerable <EmployeeCountByIntervalLine> GetEmployeeCountByInterval(DateTime initialDate, DateTime finalDate, TimeIntervalType timeInterval) { EmployeeCache.UpdateData(initialDate, finalDate); var employees = EmployeeCache.CachedData; // Query: var employeesQuery = from employee in employees where employee.HiredOn <= finalDate && (employee.FiredOn >= initialDate || employee.FiredOn == DateTime.MinValue) select employee; var dateTimes = new List <DateTime>(); if (timeInterval == TimeIntervalType.Year) { var temp = new DateTime(initialDate.Year, 1, 1); for (int i = 0; i < finalDate.Year - initialDate.Year + 1; i++) { dateTimes.Add(temp.AddYears(i)); } } else { var temp = new DateTime(initialDate.Year, initialDate.Month, 1); int months = ((finalDate.Year - initialDate.Year) * 12) + finalDate.Month - initialDate.Month + 1; for (int i = 0; i < months; i++) { dateTimes.Add(temp.AddMonths(i)); } } // Empty: var empty = from date in dateTimes select new EmployeeCountByIntervalLine(date, 0); var output = new LinkedList <EmployeeCountByIntervalLine>(); foreach (var e in empty) { DateTime beginDate = e.Date; DateTime endDate = timeInterval == TimeIntervalType.Month ? beginDate.AddMonths(1).AddDays(-1) : new DateTime(beginDate.Year, 12, 31); foreach (var employee in employeesQuery) { if (employee.HiredOn <= endDate && (employee.FiredOn >= beginDate || employee.FiredOn == DateTime.MinValue)) { e.Count++; } } output.AddLast(e); } return(output.OrderBy(x => x.Date)); }
public void Refresh() { EmployeeCache.GetInstance().Clear(); RoleCache.GetInstance().Clear(); Roles = new ObservableCollection <EmployeeRole>(RoleCache.GetInstance().Roles); Employees = new ObservableCollection <Employee>(EmployeeCache.GetInstance().Employees); ComboboxEmpRole.ItemsSource = Roles; ListViewEmployees.ItemsSource = Employees; ListViewEmployees.SelectedItem = GetFirstEmployee(); ComboboxEmpRole.SelectedItem = ((Employee)ListViewEmployees.SelectedItem).Role; }
private void EmployeeSaveClickeHandler() { foreach (var process in ProcessCache.GetInstance().GetByEmployeeId(SelectedEmployee?.Id ?? 0)) { ProcessCache.GetInstance().Update(process); } CommonFunctions.UpdateQs(); ResourceCache.GetInstance().UpdateAllQSizes(); EmployeeCache.GetInstance().UpdateAllQSizes(); Refresh(); }
private void SaveEmployee(Employee empToSave) { if (empToSave.Id > 0) { EmployeeCache.GetInstance().Update(empToSave); } else { EmployeeCache.GetInstance().Insert(empToSave); } Employees = new ObservableCollection <Employee>(EmployeeCache.GetInstance().Employees); }
public UserInfoModel(string employeeId) { EmployeeId = employeeId; var person = EmployeeCache.GetEmployee(employeeId, true); if (person != null) { Name = person.PreferredName; Phone = person.PhoneNumber; Location = person.WorkLocation; Org = person.HomeOrginization; OrcidId = person.OrcidId; } }
/// <summary> /// Closes the stream and ends the api session /// </summary> public void Close() { // cancel the renew login process _timer?.Dispose(); // close the cache services EmployeeCache?.WriteCacheEntries(); JobTitleCache?.WriteCacheEntries(); DepartmentCache?.WriteCacheEntries(); WorkflowCache?.WriteCacheEntries(); EmployeeGroupCache?.WriteCacheEntries(); EmployeeProfileCache?.WriteCacheEntries(); Logger.Debug("Closed the Api Stream"); }
private void Refresh() { int selectedResourceIndex = Resources.IndexOf(SelectedResource); int selectedEmployeeIndex = Employees.IndexOf(SelectedEmployee); SelectedResource = null; SelectedEmployee = null; Thread.Sleep(20); _ = ResourceCache.GetInstance().Resources; Resources = new ObservableCollection <Resource>(ResourceCache.GetInstance().UpdateAllQSizes().OrderByDescending(r => r.QSize)); SelectedResource = Resources[selectedResourceIndex]; _ = EmployeeCache.GetInstance().Employees; Employees = new ObservableCollection <Employee>(EmployeeCache.GetInstance().UpdateAllQSizes().OrderByDescending(e => e.QSize)); SelectedEmployee = Employees[selectedEmployeeIndex]; }
internal void Refresh() { var projectId = Project?.Id; EmployeeCache.GetInstance().Clear(); ResourceCache.GetInstance().Clear(); ProcessCache.GetInstance().Clear(); ProjectCache.GetInstance().Clear(); Resources = ResourceCache.GetInstance().Resources; Resources = ResourceCache.GetInstance().UpdateAllQSizes(); Employees = EmployeeCache.GetInstance().Employees; if (projectId.Value > 0) { Project = ProjectCache.GetInstance().GetById(projectId.Value); Processes = new ObservableCollection <Process>(Project.Processes); } }
private void ProjectViewOpenProectClickHandler(ProjectsViewModel viewModel) { TextblockPanelName.Text = "Project Details"; RoleCache.GetInstance().Clear(); EmployeeCache.GetInstance().Clear(); ResourceCache.GetInstance().Clear(); CustomerCache.GetInstance().Clear(); ProcessCache.GetInstance().Clear(); ProjectCache.GetInstance().Clear(); var resources = ResourceCache.GetInstance().Resources; resources = ResourceCache.GetInstance().UpdateAllQSizes(); DataContext = new AddEditProjectViewModel { Project = viewModel.SelectedProject, BackClickedHandler = AddEditProjectViewBackClickHandler, Customers = CustomerCache.GetInstance().Customers, Processes = new ObservableCollection <Process>(viewModel.SelectedProject.Processes), Resources = resources.OrderByDescending(r => r.QSize).ToList <Resource>(), Employees = EmployeeCache.GetInstance().Employees }; }
async void PayrollCat(ProjectBudgetLineLocal rec, bool AddItem) { double costPrice = 0, salesPrice = 0; var emp = (Uniconta.DataModel.Employee)EmployeeCache?.Get(rec._Employee); if (emp != null) { costPrice = emp._CostPrice; salesPrice = emp._SalesPrice; } var pay = (Uniconta.DataModel.EmpPayrollCategory)PayrollCache?.Get(rec._PayrollCategory); if (pay != null) { if (pay._Unit != 0 && rec._Unit != pay._Unit) { rec._Unit = pay._Unit; rec.NotifyPropertyChanged("Unit"); } if (pay._PrCategory != null) { rec.PrCategory = pay._PrCategory; } if (pay._Rate != 0) { costPrice = pay._Rate; } if (pay._SalesPrice != 0) { salesPrice = pay._SalesPrice; } string Item = pay._Item; if (pay._Dim1 != null) { rec.Dimension1 = pay._Dim1; } if (pay._Dim2 != null) { rec.Dimension2 = pay._Dim2; } if (pay._Dim3 != null) { rec.Dimension3 = pay._Dim3; } if (pay._Dim4 != null) { rec.Dimension4 = pay._Dim4; } if (pay._Dim5 != null) { rec.Dimension5 = pay._Dim5; } if (emp != null) { Uniconta.DataModel.EmpPayrollCategoryEmployee found = null; var Rates = pay.Rates ?? await pay.LoadRates(api); foreach (var rate in Rates) { if (rate._ValidFrom != DateTime.MinValue && rate._ValidFrom > rec._Date) { continue; } if (rate._ValidTo != DateTime.MinValue && rate._ValidTo < rec._Date) { continue; } if (rate._Employee != emp._Number) { continue; } if (rate._Project != null) { if (rate._Project == rec._Project) { found = rate; break; } } else if (found == null) { found = rate; } } if (found != null) { if (found._CostPrice != 0d) { costPrice = found._CostPrice; } else if (found._Rate != 0d) { costPrice = found._Rate; } if (found._SalesPrice != 0d) { salesPrice = found._SalesPrice; } if (found._Item != null) { Item = found._Item; } if (found._Dim1 != null) { rec.Dimension1 = found._Dim1; } if (found._Dim2 != null) { rec.Dimension2 = found._Dim2; } if (found._Dim3 != null) { rec.Dimension3 = found._Dim3; } if (found._Dim4 != null) { rec.Dimension4 = found._Dim4; } if (found._Dim5 != null) { rec.Dimension5 = found._Dim5; } } } if (AddItem && Item != null) { rec.Item = Item; } } if (costPrice != 0d) { if (rec._Qty == 0) { rec.Qty = 1d; } rec.CostPrice = costPrice; } if (salesPrice != 0d) { if (rec._Qty == 0) { rec.Qty = 1d; } rec.SalesPrice = salesPrice; } }
private void SelectedItem_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { var rec = (ProjectBudgetLineLocal)sender; switch (e.PropertyName) { case "Item": if (!rec.InsidePropChange) { rec.InsidePropChange = true; SetItem(rec); rec.InsidePropChange = false; } break; case "Employee": if (rec._Employee != null) { var emp = (Uniconta.DataModel.Employee)EmployeeCache?.Get(rec._Employee); if (emp?._PayrollCategory != null) { rec.PayrollCategory = emp._PayrollCategory; } else if (!rec.InsidePropChange) { rec.InsidePropChange = true; PayrollCat(rec, true); rec.InsidePropChange = false; } } break; case "PayrollCategory": if (rec._Employee != null && rec._PayrollCategory != null) { if (!rec.InsidePropChange) { rec.InsidePropChange = true; PayrollCat(rec, true); rec.InsidePropChange = false; } } break; case "TimeFrom": case "TimeTo": if (rec._ToTime >= rec._FromTime) { rec.Qty = (rec._ToTime - rec._FromTime) / 60d; } break; case "Qty": if (rec._Qty != (rec._ToTime - rec._FromTime) / 60d) { rec._FromTime = 0; rec._ToTime = 0; } break; case "CostPrice": case "SalesPrice": if (rec._Qty == 0d) { rec.Qty = 1d; } break; } }
public JsonResult GetUserName(string id) { return(Json(EmployeeCache.GetName(id))); }
private void SelectedItem_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { var rec = (ProjectJournalLineLocal)sender; switch (e.PropertyName) { case "Item": if (!rec.InsidePropChange) { rec.InsidePropChange = true; SetItem(rec); getCostAndSales(rec); rec.InsidePropChange = false; } break; case "Project": var pro = (Uniconta.DataModel.Project)ProjectCache.Get(rec._Project); if (pro != null) { if (pro._Dim1 != null) { rec.Dimension1 = pro._Dim1; } if (pro._Dim2 != null) { rec.Dimension2 = pro._Dim2; } if (pro._Dim3 != null) { rec.Dimension3 = pro._Dim3; } if (pro._Dim4 != null) { rec.Dimension4 = pro._Dim4; } if (pro._Dim5 != null) { rec.Dimension5 = pro._Dim5; } rec.Invoiceable = pro._InvoiceAble; getCostAndSales(rec); TimePriceLookup?.GetEmployeePrice(rec); setTask(pro, rec); } break; case "PrCategory": getCostAndSales(rec); SetInvoiceable(rec); break; case "Employee": if (rec._Employee != null) { var emp = (Uniconta.DataModel.Employee)EmployeeCache?.Get(rec._Employee); if (emp?._PayrollCategory != null) { rec.PayrollCategory = emp._PayrollCategory; } if (!rec.InsidePropChange) { rec.InsidePropChange = true; TimePriceLookup?.GetEmployeePrice(rec); PayrollCat(rec, true); //rec.InsidePropChange = false; done inside method } } break; case "PayrollCategory": if (rec._Employee != null && rec._PayrollCategory != null) { if (!rec.InsidePropChange) { rec.InsidePropChange = true; TimePriceLookup?.GetEmployeePrice(rec); PayrollCat(rec, true); //rec.InsidePropChange = false; done inside method } } break; case "Warehouse": if (WarehouseCache != null) { var selected = (InvWarehouse)WarehouseCache.Get(rec._Warehouse); setLocation(selected, rec); } break; case "Location": if (string.IsNullOrEmpty(rec._Warehouse)) { rec._Location = null; } break; case "TimeFrom": case "TimeTo": if (rec._TimeTo >= rec._TimeFrom) { rec.Qty = (rec._TimeTo - rec._TimeFrom) / 60d; } else { rec.Qty = ((rec._TimeTo + 24 * 60) - rec._TimeFrom) / 60d; } break; case "Qty": UpdatePrice(rec); double tim; if (rec._TimeTo >= rec._TimeFrom) { tim = (rec._TimeTo - rec._TimeFrom) / 60d; } else { tim = ((rec._TimeTo + 24 * 60) - rec._TimeFrom) / 60d; } if (rec._Qty != tim) { rec._TimeFrom = 0; rec._TimeTo = 0; } break; case "EAN": FindOnEAN(rec); break; case "SerieBatch": if (ItemsCache != null) { if (rec._Item == null || rec._Item == string.Empty) { GetItemFromSerailNumber(rec); } } break; case "Task": if (!rec.InsidePropChange) { rec.InsidePropChange = true; if (rec._Task != null && rec._Project != null) { var proj = (Uniconta.DataModel.Project)ProjectCache.Get(rec._Project); var task = proj.FindTask(rec._Task); if (task != null) { rec.WorkSpace = task._WorkSpace; rec.PayrollCategory = task._PayrollCategory != null ? task._PayrollCategory : rec.PayrollCategory; } } rec.InsidePropChange = false; } break; case "WorkSpace": if (!rec.InsidePropChange) { rec.InsidePropChange = true; if (rec._Task != null && rec._Project != null) { var proj = (Uniconta.DataModel.Project)ProjectCache.Get(rec._Project); var task = proj.FindTask(rec._Task); if (task != null && task._WorkSpace != rec._WorkSpace) { rec.Task = null; } } rec.InsidePropChange = false; } break; } }
private void DeleteSelectedEmployee() { EmployeeCache.GetInstance().Delete(ListViewEmployees.SelectedItem as Employee); Employees = new ObservableCollection <Employee>(EmployeeCache.GetInstance().Employees); }
/// <summary> /// Writes the user to the stream /// </summary> /// <param name="user">Reference to the user to write to the stream.</param> public void Write(ActiveDirectoryUser user) { var employee = new MetaObject(); // process each of the field values in the map string employeeNum = null; EntityId workflowTemplate = null; EntityId division = null; SortedList <string, string> groups = null; foreach (MapElement map in StreamConfig.Mapping) { object value = null; switch (map.To) { case SystemFields.JobTitleId: value = GetJobTitleValue(map.From, division, user); break; case SystemFields.EmployeeNum: employeeNum = GetFieldValue(map.From, user); value = employeeNum; break; case SystemFields.Department: value = GetDepartment(map.From, user, division); break; case SystemFields.PrimaryDivision: division = GetDivisionFieldValue(map.From, user); value = division; break; case SystemFields.Groups: groups = GetFieldValueAsObject(map.From, user) as SortedList <string, string>; break; case SystemFields.WorkflowTemplate: break; default: value = GetFieldValue(map.From, user); break; } // only map the property if a value is present if (value != null) { employee[map.To] = value; } } if (employeeNum == null) { var userJson = JsonConvert.SerializeObject(user); Logger.Error("Error writing Employee to stream. Missing EmployeeNum map \"to\" value. {0}", userJson); return; } if (division == null) { var userJson = JsonConvert.SerializeObject(user); Logger.Error("Error writing Employee to stream. Missing PrimaryDivision map \"to\" value. {0}", userJson); return; } if (workflowTemplate == null) { workflowTemplate = GetDefaultWorkflowTemplate(); employee[SystemFields.WorkflowTemplate] = workflowTemplate; } // get the id of the employee from the cache...if found this is an update // otherwise we are creating a new employee. EntityId employeeId = null; if (EmployeeCache.ContainsKey(employeeNum)) { employeeId = new EntityId(EmployeeCache.GetValue(employeeNum)); } else { // check to see if the username already exists in c360 var empId = ApiService.GetEmployeeIdAsync(employeeNum, AuthToken).GetAwaiter().GetResult(); if (empId != null) { employeeId = new EntityId(empId); EmployeeCache.Add(employeeNum, employeeId.Token); } } if (employeeId == null) { // create the new employee record employee[SystemFields.CanLogin] = true; employee[SystemFields.Password] = Guid.NewGuid().ToString(); employeeId = new EntityId(ApiService.CreateEmployeeAsync(employee, AuthToken).GetAwaiter().GetResult()); EmployeeCache.Add(employeeNum, employeeId.Token); } else { // update an existing employee record ApiService.UpdateEmployeeAsync(employeeId, employee, AuthToken).GetAwaiter().GetResult(); } if (groups != null) { ProcessGroupChanges(employeeId, groups.Values.ToList()); } }