private void InitializeDates(DateTime week) { WeekShown = week; var sunday = new Epicor(Settings.Default.ResourceID).GetStartOfWeek(WeekShown); SundayLabel.Text = "Sun " + sunday.ToString("MM/dd"); MondayLabel.Text = "Mon " + sunday.AddDays(1).ToString("MM/dd"); TuesdayLabel.Text = "Tue " + sunday.AddDays(2).ToString("MM/dd"); WednesdayLabel.Text = "Wed " + sunday.AddDays(3).ToString("MM/dd"); ThursdayLabel.Text = "Thu " + sunday.AddDays(4).ToString("MM/dd"); FridayLabel.Text = "Fri " + sunday.AddDays(5).ToString("MM/dd"); SaturdayLabel.Text = "Sat " + sunday.AddDays(6).ToString("MM/dd"); }
private void DeleteClick(object sender, RoutedEventArgs e) { var messageBoxResult = MessageBox.Show("Are you sure you want to delete the selected entries?", "Delete Confirmation", MessageBoxButton.YesNo); if (messageBoxResult != MessageBoxResult.Yes) { return; } Delete.IsEnabled = false; if (CurrentCharges.SelectedItems.Count == 0) { return; } var bgWorker = new BackgroundWorker(); var epicor = new Epicor(Settings.Default.ResourceID); var times = CurrentCharges.SelectedItems.OfType <Time>(); bgWorker.DoWork += (o, args) => { epicor.SaveTimes(times, TimeStates.Deleted); Dispatcher.BeginInvoke(DispatcherPriority.Background, new ThreadStart(() => { Delete.IsEnabled = true; Messages.Text = "Deleted Successfully"; InitializeCurrentCharges(); })); }; bgWorker.RunWorkerAsync(); }
private void ApproveClick(object sender, RoutedEventArgs e) { Approve.IsEnabled = false; if (CurrentCharges.SelectedItems.Count == 0) { return; } var bgWorker = new BackgroundWorker(); var epicor = new Epicor(Settings.Default.ResourceID); var times = CurrentCharges.SelectedItems.OfType <Time>(); bgWorker.DoWork += (o, args) => { epicor.SaveTimes(times, TimeStates.Modified); Dispatcher.BeginInvoke(DispatcherPriority.Background, new ThreadStart(() => { Approve.IsEnabled = true; Messages.Text = "Marked for Approval Successfully"; InitializeCurrentCharges(); })); }; bgWorker.RunWorkerAsync(); }
private void GatherTotals() { var startDate = new DateTime(Week.Year, Week.Month, 1); var endDate = new DateTime(Week.Year, Week.Month, DateTime.DaysInMonth(Week.Year, Week.Month)); var epicor = new Epicor(Settings.Default.ResourceID); var timeList = epicor.GetChargesBetween(startDate, endDate); MonthlyTotal = timeList.Sum(t => t.Hours); TotalHoursInMonth = GetBusinessDays(startDate, endDate) * 8; }
private void InitializeCodes(bool overrideCache = false) { if (retrievingCodes) { return; } retrievingCodes = true; var bgWorker = new BackgroundWorker(); EpicorTree.Items.Clear(); LoadingMessageText.Text = "Loading codes from Epicor..."; LoadingMessage.Visibility = Visibility.Visible; TabContainer.Visibility = Visibility.Hidden; bgWorker.DoWork += (sender, args) => { string message; Tree <NavigatorNode> tree; var dt = DateTime.Today - Settings.Default.LastUpdateCodesDate; if (dt.Days >= 3 || overrideCache) { message = "Retrieved from Epicor. Codes will become stale in 3 days."; tree = new Epicor(Settings.Default.ResourceID).GetSiteActivities(); CacheTree(tree); } else { message = string.Format("Using cached codes. Codes will become stale in {0} days.", 3 - dt.Days); tree = GetCachedTree(); } Dispatcher.BeginInvoke(DispatcherPriority.Background, new ThreadStart(() => { BuildChargeCodeTree(tree); CacheMessage.Text = message; LoadingMessage.Visibility = Visibility.Hidden; TabContainer.Visibility = Visibility.Visible; retrievingCodes = false; })); }; bgWorker.RunWorkerAsync(); }
private Time ConvertToTime(string dayOfWeek, decimal hours) { var epicor = new Epicor(Settings.Default.ResourceID); switch (SelectedNode.NodeType) { case "Task": return(epicor.CreateTaskTime(WeekShown, SelectedNode.Data as TaskData, Comments.Text, dayOfWeek, hours)); case "InternalCode": return(epicor.CreateInternalCodeTime(WeekShown, SelectedNode, Comments.Text, dayOfWeek, hours)); } MessageBox.Show("No time type for " + SelectedNode.NodeType, "Failed to convert time", MessageBoxButton.OK, MessageBoxImage.Error); return(null); }
public void GetNewRcvDtl(Epicor.Mfg.Core.Session epiSession, ReceiptDataSet dsReceipt) { try { Receipt myReceipt = new Receipt(epiSession.ConnectionPool); //ReceiptDataSet dsReceipt = new ReceiptDataSet(); //myReceipt.GetNewRcvDtl(dsReceipt, model.VendorNum, "", model.StoreInNum); myReceipt.GetNewRcvDtl(dsReceipt, 5, "", "IN00002-3"); DataRow drReceipt = dsReceipt.Tables[0].Rows[0]; drReceipt.BeginEdit(); drReceipt["VendorNum"] = 5; // model.VendorNum; drReceipt["PackSlip"] = "IN00002-3";//model.StoreInNum + "-2"; //drReceipt["PackLine"] = 1; //drReceipt["PartNum"] = DateTime.Now; drReceipt["WareHouseCode"] = "600"; drReceipt["OurQty"] = 10; // model.Quantity; drReceipt["PONum"] = 272; // model.PONum; drReceipt["POLine"] = 1; // model.POLine; drReceipt["PORelNum"] = 1; // model.POLine; drReceipt.EndEdit(); myReceipt.Update(dsReceipt); //IsSucces = true; //msgError = ""; } catch (Exception ex) { //IsSucces = false; //msgError = ex.Message; } }
/// <summary> /// ******************Important!***************** /// </summary> /// <param name="model"></param> /// <param name="epiSession"></param> /// <param name="IsSucces"></param> /// <param name="msgError"></param> /// <returns></returns> public bool GetNewRcv(RecieptHeadModel head, List<ReceiptDetailModel> model, Epicor.Mfg.Core.Session epiSession, out bool IsSucces, out string msgError) { msgError = ""; ReceiptDataSet dsReceipt = new ReceiptDataSet(); try { Receipt myReceipt = new Receipt(epiSession.ConnectionPool); myReceipt.ValidateMRPONum(head.PONum, head.VendorNum, out msgError); #region PO no error. if (string.IsNullOrEmpty(msgError)) { /*This OK*/ myReceipt.GetNewRcvHead(dsReceipt, head.VendorNum, ""); /*Fix for testing myReceipt.GetNewRcvHead(dsReceipt, 5, ""); */ DataRow drReceipt = dsReceipt.Tables[0].Rows[0]; drReceipt.BeginEdit(); string PackSlip = head.StoreInNum + "-RCV"; /* This OK */ drReceipt["VendorNum"] = head.VendorNum; drReceipt["PackSlip"] = PackSlip; drReceipt["ReceiptDate"] = DateTime.Now; drReceipt["ReceivePerson"] = epiSession.UserID; drReceipt["ShipViaCode"] = "UC02"; drReceipt["PONum"] = head.PONum; /*Fix for testing drReceipt["VendorNum"] = 5; drReceipt["PackSlip"] = "IN00002-5"; drReceipt["ReceiptDate"] = DateTime.Now; drReceipt["ReceivePerson"] = "manager"; drReceipt["ShipViaCode"] = "UC02"; drReceipt["PONum"] = 272; */ drReceipt.EndEdit(); myReceipt.Update(dsReceipt); //myReceipt.CreateMassReceipts(model.VendorNum, "", model.StoreInNum, 0, model.PONum.ToString(), dsReceipt); myReceipt.CreateMassReceipts(head.VendorNum, "", PackSlip, 0, head.PONum.ToString(), dsReceipt); myReceipt.ReceiveAll(dsReceipt); int i = 0; foreach (DataRow dr in dsReceipt.Tables["RcvDtl"].Rows) { //myReceipt.GetNewRcvDtl(dsReceipt, model.VendorNum, "", model.StoreInNum); //DataRow drDtl = dsReceipt.Tables["RcvDtl"].Rows[i]; //myReceipt.GetDtlQtyInfo(dsReceipt, model.VendorNum, "", model.StoreInNum, dr["PackLine"].GetInt(), 1, "KG", "", out msgError); ReceiptDetailModel result = model.Where<ReceiptDetailModel>(p => p.PONum.ToString().Equals(dr["PONum"].ToString()) && p.POLine.ToString().Equals(dr["POLine"].ToString())).Single<ReceiptDetailModel>(); dr.BeginEdit(); dr["OurQty"] = result.Weight; dr["OurUnitCost"] = 1; //dr["VendorQty"] = result.Weight; dr["ReceivedComplete"] = false; dr["DocUnitCost"] = 20; //ถ้าเป็น PO Sample จะเป็น 0 (Else result.UnitPrice) dr["POTransValue"] = 20; dr["ExtTransValue"] = 20; dr["InputOurQty"] = result.Weight; dr["Number01"] = result.Weight; //Weight dr["Received"] = true; dr.EndEdit(); i++; } myReceipt.Update(dsReceipt); myReceipt.ReceiveAllLines(true, dsReceipt); //myReceipt.CommitRcvDtl(model.VendorNum, "", model.StoreInNum, dsReceipt); IsSucces = true; msgError = ""; return IsSucces; } #endregion PO no error. IsSucces = false; return IsSucces; } catch (Exception ex) { IsSucces = false; msgError = ex.Message; return IsSucces; } }
private void InitializeCurrentCharges() { Charges = new ObservableCollection <Time>(); CurrentCharges.ItemsSource = Charges; var bgWorker = new BackgroundWorker(); bgWorker.DoWork += (sender, args) => { var e = new Epicor(Settings.Default.ResourceID); var charges = e.GetCurrentCharges(WeekShown); var from = e.GetStartOfWeek(WeekShown); var to = from.AddDays(6); var totals = Enum.GetNames(typeof(DayOfWeek)).Select(day => new Tuple <string, decimal>(day, charges.Where(c => c.TimeEntryDate.DayOfWeek == ((DayOfWeek)Enum.Parse(typeof(DayOfWeek), day))).Sum(c => c.Hours))).ToList(); var weekTotal = 0.0m; Dispatcher.BeginInvoke(DispatcherPriority.Background, new ThreadStart(() => { foreach (var time in charges) { Charges.Add(time); } WeeklyChargesLabel.Text = string.Format("Charges for {0} to {1}", from.ToShortDateString(), to.ToShortDateString()); WeeklyChargesLabel.FontStyle = FontStyles.Normal; foreach (var hours in totals) { weekTotal += hours.Item2; var elt = ((TextBlock)FindName(hours.Item1 + "Total")); if (elt == null) { continue; } elt.Text = hours.Item2.ToString("F"); if (hours.Item1 == DayOfWeek.Sunday.ToString() || hours.Item1 == DayOfWeek.Saturday.ToString()) { continue; } if (hours.Item2 >= 8m) { elt.Foreground = new SolidColorBrush(Color.FromRgb(0x00, 0xb3, 0x39)); } if (hours.Item2 <= 0m) { elt.Foreground = new SolidColorBrush(Color.FromRgb(0xb3, 0x39, 0x00)); } } WeekTotal.Text = weekTotal.ToString("F"); WeekTotal.Foreground = weekTotal >= 40m ? new SolidColorBrush(Color.FromRgb(0x00, 0xb3, 0x39)) : new SolidColorBrush(Color.FromRgb(0xb3, 0x39, 0x00)); })); }; bgWorker.RunWorkerAsync(); }