Esempio n. 1
1
        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");
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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;
            }
        }
Esempio n. 8
0
        /// <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;
            }
        }
Esempio n. 9
0
        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();
        }