Пример #1
0
 public void MinusOperator_SubtractHoursAndMinutes_Work()
 {
     TimeItem ti = new TimeItem(4,0);
       var timeItem = ti - 1.5;
       Assert.AreEqual(2, timeItem.Hour);
       Assert.AreEqual(30, timeItem.Minute);
 }
Пример #2
0
 public WorkItem(TimeItem start, TimeItem end, string project, string position)
 {
     this.Start = start;
       this.End = end;
       this.Project = project;
       this.Position = position;
 }
Пример #3
0
 public WorkItem(TimeItem start, TimeItem end, string project, string position, string description, ShortCut shortCut, string originalString)
 {
     this.Start = start;
       this.End = end;
       this.Project = project;
       this.Position = position;
       this.Description = description;
       this.ShortCut = shortCut;
       this.OriginalString = originalString;
 }
Пример #4
0
    public static int AddTimer(CallBackFun fun, float intervalTime, int time = 1)
    {
        TimeItem item = GetTimer(fun);

        if (item != null)
        {
            RemoveTimer(item);
        }
        if (_idles.Count > 0)
        {
            item = _idles[0];
            _idles.RemoveAt(0);
            item.Reset(fun, RemoveTimer, intervalTime, time);
        }
        else
        {
            item = TimeItem.Init(fun, RemoveTimer, intervalTime, time);
        }
        _items.Add(item);
        return(item.id);
    }
Пример #5
0
        public void CreatingNewTimeSheet()
        {
            LoginPage loginpage = new LoginPage(driver);

            loginpage.GoToPage();

            HomePage home     = loginpage.Login("*****@*****.**", "password");
            string   username = home.GetUserNamefromHomePage();

            Assert.AreEqual("Sandhya Ravikumar", username);

            TimeSheetPage timeSheetPage = home.GoToTimeSheetPage();
            TimeSheet     newTimeSheet  = timeSheetPage.CreateNewTimeSheet();

            TimeItem timeItem = newTimeSheet.CreateNewTimesheet("14 June, 2021");

            timeItem.SetTime("Beach", "8");
            newTimeSheet.Submit();

            home.Logout();
        }
Пример #6
0
        private void Btn_time_out_Click(object sender, RoutedEventArgs e)
        {
            TimeItem itemtime = new TimeItem();
            DateTime timein;

            DateTime.TryParse(itemtime.TIME_IN, out timein);

            DateTime timeout;

            DateTime.TryParse(DateTime.Now.ToString("HH:mm"), out timeout);

            double totalHours = (timeout - timein).TotalHours;

            itemtime.EMP_ID   = mitem._EMPID;
            itemtime.TIME_OUT = DateTime.Now.ToString("hh:mm");
            itemtime.HOURS    = totalHours;
            itemtime.LOG_ID   = LogItem.staticLogIdItem.LOG_ID;

            Timeout(itemtime);
            btn_time_in.IsEnabled  = true;
            btn_time_out.IsEnabled = false;
        }
Пример #7
0
        public bool?UpdateExternalCommentInCRM(string ticketnumber, TimeItem timeItem)
        {
            try
            {
                Microsoft.Xrm.Sdk.Entity comment = _service.Retrieve("hsal_externalcomments", (Guid)timeItem.crmExternalCommentId, new Microsoft.Xrm.Sdk.Query.ColumnSet(true));

                Microsoft.Crm.Sdk.Messages.SetStateRequest req = new Microsoft.Crm.Sdk.Messages.SetStateRequest();
                req.EntityMoniker = new Microsoft.Xrm.Sdk.EntityReference("hsal_externalcomments", comment.Id);
                req.State         = new Microsoft.Xrm.Sdk.OptionSetValue(0);
                req.Status        = new Microsoft.Xrm.Sdk.OptionSetValue((-1));
                _service.Execute(req);

                if (timeItem.title != null)
                {
                    comment["subject"] = timeItem.title.Replace(ticketnumber, "");
                }

                if (timeItem.description != null)
                {
                    comment["description"] = timeItem.description;
                }

                _service.Update(comment);

                req.EntityMoniker = new Microsoft.Xrm.Sdk.EntityReference("hsal_externalcomments", comment.Id);
                req.State         = new Microsoft.Xrm.Sdk.OptionSetValue(1);
                req.Status        = new Microsoft.Xrm.Sdk.OptionSetValue((2));
                _service.Execute(req);

                return(true);
            }
            catch (Exception ex)
            {
                //log error
                throw ex;
            }
        }
Пример #8
0
    public static bool RemoveTimer(int id)
    {
        int count = _items.Count;

        for (int i = 0; i < count; i++)
        {
            TimeItem item = _items[i];
            if (item.id == id)
            {
                _items.RemoveAt(i);
                item.Cancel();
                if (_idles.Count < MAX_IDLE)
                {
                    _idles.Add(item);
                }
                else
                {
                    item.Dispose();
                }
                return(true);
            }
        }
        return(false);
    }
Пример #9
0
        public void Dump(int min = 0)
        {
            if (!SHOW_LOG)
            {
                return;
            }

            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Begin Dump Time Debugger :" + m_Name);
            builder.AppendLine();
            for (int i = 0; i < m_EndTimeLists.Count; ++i)
            {
                TimeItem item = m_EndTimeLists[i];
                if (item.passTime > min)
                {
                    builder.AppendLine(string.Format("#      {2}: [PassTime:{0}, PassTicks:{1}]", item.passTime, item.passTicks, item.name));
                }
            }
            builder.AppendLine();
            builder.AppendLine("End Dump Time Debugger :" + m_Name);

            Log.w(builder.ToString());
        }
Пример #10
0
 private static void RegisterActiveTimeItem(TimeItem unit)
 {
     unit.id = ++s_NextID;
     s_TimeItemMap.Add(unit.id, unit);
 }
Пример #11
0
        private void CreateThorPDF()
        {
            iTextSharp.text.Document document = new iTextSharp.text.Document();
            string docName = "ThorDoc " + DateTime.Now.Month + "-" + DateTime.Now.Day + " " + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + ".pdf";

            PdfWriter.GetInstance(document, new FileStream(docName, FileMode.Create));
            document.Open();
            int i = 0;

            List <TimeItem> timeItemList = new List <TimeItem>();

            while (i < session.totalLines)
            {
                TextBox       project     = this.Controls.Find(Constants.project + i, true).FirstOrDefault() as TextBox;
                TextBox       title       = this.Controls.Find(Constants.title + i, true).FirstOrDefault() as TextBox;
                TextBox       description = this.Controls.Find(Constants.description + i, true).FirstOrDefault() as TextBox;
                MaskedTextBox time        = this.Controls.Find(Constants.time + i, true).FirstOrDefault() as MaskedTextBox;
                CheckBox      billable    = this.Controls.Find(Constants.isBillable + i, true).FirstOrDefault() as CheckBox;
                CheckBox      submitted   = this.Controls.Find(Constants.isSubmitted + i, true).FirstOrDefault() as CheckBox;

                TimeItem timeItem = new TimeItem();
                timeItem.project        = project.Text;
                timeItem.description    = description.Text;
                timeItem.isBillable     = billable.Checked;
                timeItem.time           = time.Text;
                timeItem.title          = title.Text;
                timeItem.isCRMSubmitted = submitted.Checked;

                bool ismatch = false;
                foreach (TimeItem ti in timeItemList)
                {
                    if (ti.project == timeItem.project && ti.isBillable == timeItem.isBillable)
                    {
                        ismatch        = true;
                        ti.description = timeItem.title + ": " + ti.description + timeItem.description;
                        decimal  totalSeconds = ((decimal)(TimeSpan.Parse(ti.time).TotalSeconds) + ((decimal)TimeSpan.Parse(timeItem.time).TotalSeconds));
                        TimeSpan t            = TimeSpan.FromSeconds((double)totalSeconds);
                        ti.time = string.Format("{0:D2}:{1:D2}:{2:D2}", t.Hours, t.Minutes, t.Seconds);
                    }
                }

                if (ismatch == false)
                {
                    timeItem.description = timeItem.title + ":" + timeItem.description;
                    timeItemList.Add(timeItem);
                }

                i++;
            }

            foreach (TimeItem ti in timeItemList)
            {
                iTextSharp.text.Paragraph h = new iTextSharp.text.Paragraph(ti.project, new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 18, iTextSharp.text.Font.BOLD));
                string content = ti.description;
                if (content.Length > 254)
                {
                    content = content.Substring(0, 232) + "[FULL DETAILS IN TICKET]";
                }

                iTextSharp.text.Paragraph p = new iTextSharp.text.Paragraph(content, new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 12, iTextSharp.text.Font.NORMAL));
                iTextSharp.text.Paragraph b = new iTextSharp.text.Paragraph();

                if (ti.isBillable == true)
                {
                    b = new iTextSharp.text.Paragraph("Billable Hours: " + TimeSpan.Parse(ti.time).TotalHours, new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 12, iTextSharp.text.Font.NORMAL));
                }
                else
                {
                    b = new iTextSharp.text.Paragraph("Non-Billable Hours: " + TimeSpan.Parse(ti.time).TotalHours, new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 12, iTextSharp.text.Font.NORMAL));
                }

                document.Add(h);
                document.Add(p);
                document.Add(b);
            }

            document.Close();
            System.Diagnostics.Process.Start(docName);
        }
Пример #12
0
 public void MinusOperator_SubtractHours_Work()
 {
     TimeItem ti = new TimeItem(2,0);
       var timeItem = ti - 1;
       Assert.AreEqual(1, timeItem.Hour);
       Assert.AreEqual(0, timeItem.Minute);
 }
Пример #13
0
        public void Update()
        {
            TimeItem item = null;

            m_CurrentUnScaleTime = Time.unscaledTime;
            m_CurrentScaleTime   = Time.time;

            #region  受缩放影响定时器更新
            while ((item = m_UnScaleTimeHeap.Top()) != null)
            {
                if (!item.isEnable)
                {
                    m_UnScaleTimeHeap.Pop();
                    item.Recycle2Cache();
                    continue;
                }

                if (item.sortScore < m_CurrentUnScaleTime)
                {
                    m_UnScaleTimeHeap.Pop();

                    item.OnTimeTick();

                    if (item.isEnable && item.NeedRepeat())
                    {
                        Post2Really(item);
                    }
                    else
                    {
                        item.Recycle2Cache();
                    }
                }
                else
                {
                    break;
                }
            }
            #endregion

            #region 受缩放影响定时器更新
            while ((item = m_ScaleTimeHeap.Top()) != null)
            {
                if (!item.isEnable)
                {
                    m_ScaleTimeHeap.Pop();
                    item.Recycle2Cache();
                    continue;
                }

                if (item.sortScore < m_CurrentScaleTime)
                {
                    m_ScaleTimeHeap.Pop();

                    item.OnTimeTick();

                    if (item.isEnable && item.NeedRepeat())
                    {
                        Post2Scale(item);
                    }
                    else
                    {
                        item.Recycle2Cache();
                    }
                }
                else
                {
                    break;
                }
            }
            #endregion
        }
Пример #14
0
 public void MinusOperator_OutOfRange_Fail()
 {
     TimeItem ti = new TimeItem(1,0);
       Assert.Throws<ArgumentOutOfRangeException>(() => { var i = ti - 5; });
 }
Пример #15
0
 public static string IncDec(string text, int stepsToIncrementBy, INCDEC_OPERATOR incDec, ref int selectionStart)
 {
     if (!String.IsNullOrWhiteSpace(text))
     {
         var  hoursToIncrementBy = stepsToIncrementBy * 15 / 60f;
         var  parts = Enumerable.ToList(SplitIntoParts(text));
         int  idx;
         bool moveCursorLeft;
         int  cursorInPartPosition;
         var  part    = FindPositionPart(parts, selectionStart, out idx, out cursorInPartPosition);
         var  newPart = part;
         if (idx == 0 || (parts[0] == WorkDayParser.automaticPauseDeactivation && idx == 1))
         {
             // is daystart, has no -
             TimeItem ti;
             if (TimeItem.TryParse(part, out ti))
             {
                 var tiIncremented = IncDecTimeItem(incDec, ti, hoursToIncrementBy);
                 newPart = String.Format((string)"{0}", (object)tiIncremented.ToShortString());
             }
         }
         else if (part.StartsWith(WorkDayParser.endTimeStartChar.ToString()))
         {
             TimeItem ti;
             if (TimeItem.TryParse(part.TrimStart(WorkDayParser.endTimeStartChar), out ti))
             {
                 var tiIncremented = IncDecTimeItem(incDec, ti, hoursToIncrementBy);
                 newPart = String.Format("{0}{1}", WorkDayParser.endTimeStartChar, tiIncremented.ToShortString());
             }
         }
         else
         {
             double t;
             if (Double.TryParse(part, NumberStyles.Any, CultureInfo.InvariantCulture, out t))
             {
                 double hIncremented = t;
                 if (incDec == INCDEC_OPERATOR.INCREMENT)
                 {
                     hIncremented += hoursToIncrementBy;
                 }
                 else if ((hIncremented - hoursToIncrementBy) >= 0)
                 {
                     // do not go below zero
                     hIncremented -= hoursToIncrementBy;
                 }
                 newPart = hIncremented.ToString(CultureInfo.InvariantCulture);
             }
         }
         // check if we need to move cursor to left
         if (cursorInPartPosition > newPart.Length)
         {
             selectionStart = selectionStart - cursorInPartPosition + newPart.Length;
         }
         if (idx >= 0)
         {
             parts[idx] = newPart;
         }
         return(parts.Aggregate(String.Empty, (aggr, s) => aggr + s));
     }
     return(String.Empty);
 }
Пример #16
0
 public WorkItem(TimeItem start, TimeItem end)
 {
     this.Start = start;
       this.End = end;
 }
Пример #17
0
 public static TimeItem IncDecTimeItem(INCDEC_OPERATOR incDec, TimeItem ti, float hoursToIncrementBy)
 {
     TimeItem tiIncremented;
       if (incDec == INCDEC_OPERATOR.INCREMENT) {
     tiIncremented = ti + hoursToIncrementBy;
       } else {
     tiIncremented = ti - hoursToIncrementBy;
       }
       return tiIncremented;
 }
Пример #18
0
 private bool ProcessTempWorkItems(TimeItem dayStartTime, IEnumerable<WorkItemTemp> tmpList, bool ignoreBreakSettings, out IEnumerable<WorkItem> resultList, out string error)
 {
     bool success = false;
     error = string.Empty;
     List<WorkItem> resultListTmp = new List<WorkItem>();
     TimeItem lastTime = dayStartTime;
     foreach (var workItemTemp in tmpList)
     {
         try
         {
             // check for pause
             if (workItemTemp.IsPause)
             {
                 if (workItemTemp.DesiredEndtime != null)
                 {
                     lastTime = workItemTemp.DesiredEndtime;
                 }
                 else
                 {
                     lastTime += workItemTemp.HourCount;
                 }
             }
             else
             {
                 bool endTimeMode = false; // if endTimeMode do not add, but substract break!
                 TimeItem currentEndTime;
                 if (workItemTemp.DesiredEndtime != null)
                 {
                     currentEndTime = workItemTemp.DesiredEndtime;
                     endTimeMode = true;
                 }
                 else
                 {
                     currentEndTime = lastTime + workItemTemp.HourCount;
                 }
                 // check for split
                 if (this.settings != null && this.settings.InsertDayBreak && !ignoreBreakSettings)
                 {
                     if (endTimeMode && currentEndTime.IsBetween(this.settings.DayBreakTime, this.settings.DayBreakTime + this.settings.DayBreakDurationInMinutes / 60d))
                     {
                         success = false;
                         error = string.Format("Der Eintrag {0} hat eine absolute Endzeit und endet in der automatischen Tagespause( {1} + {2}min ). Das ist nicht auflösbar.", workItemTemp.OriginalString, this.settings.DayBreakTime, this.settings.DayBreakDurationInMinutes);
                         break;
                     }
                     // the break is in an item
                     if (this.settings.DayBreakTime.IsBetween(lastTime, currentEndTime))
                     {
                         // insert new item
                         resultListTmp.Add(new WorkItem(lastTime, this.settings.DayBreakTime, workItemTemp.ProjectString, workItemTemp.PosString, workItemTemp.Description, workItemTemp.ShortCut, workItemTemp.OriginalString));
                         lastTime = this.settings.DayBreakTime + this.settings.DayBreakDurationInMinutes / 60d;
                         if (!endTimeMode)
                         {
                             // fixup currentEndTime, need to add the dayshiftbreak
                             currentEndTime = currentEndTime + this.settings.DayBreakDurationInMinutes / 60d;
                         }
                     }
                     else if (this.settings.DayBreakTime.Equals(lastTime))
                     {
                         lastTime = lastTime + this.settings.DayBreakDurationInMinutes / 60d;
                         if (!endTimeMode)
                         {
                             currentEndTime = currentEndTime + this.settings.DayBreakDurationInMinutes / 60d;
                         }
                     }
                 }
                 resultListTmp.Add(new WorkItem(lastTime, currentEndTime, workItemTemp.ProjectString, workItemTemp.PosString, workItemTemp.Description, workItemTemp.ShortCut, workItemTemp.OriginalString));
                 lastTime = currentEndTime;
                 success = true;
             }
         }
         catch (Exception exception)
         {
             error = string.Format("Beim Verarbeiten von \"{0}\" ist dieser Fehler aufgetreten: \"{1}\"", workItemTemp.OriginalString, exception.Message);
             success = false;
         }
     }
     resultList = resultListTmp;
     return success;
 }
Пример #19
0
 private bool GetDayStartTime(string input, out TimeItem dayStartTime, out string remainingString, out string error)
 {
     bool success = false;
     var dayStartToken = input.Token(dayStartSeparator.ToString(), 1, input); // do not trim here, need original length later
     if (!string.IsNullOrEmpty(dayStartToken.Trim()))
     {
         if (TimeItem.TryParse(dayStartToken, out dayStartTime))
         {
             remainingString = dayStartToken.Length < input.Length ? input.Substring(dayStartToken.Length + 1) : string.Empty; // seems like no daystartseparator
             error = string.Empty;
             success = true;
         }
         else
         {
             remainingString = input;
             error = string.Format("Tagesbeginn wird nicht erkannt: {0}", dayStartToken);
         }
     }
     else
     {
         error = "no daystart found";
         dayStartTime = null;
         remainingString = input;
     }
     return success;
 }
Пример #20
0
 private void Post2Scale(TimeItem item)
 {
     item.sortScore = m_CurrentScaleTime + item.DelayTime();
     m_ScaleTimeHeap.Insert(item);
 }
Пример #21
0
        private void Btn_time_out_Click(object sender, RoutedEventArgs e)
        {
            UserTime utiem    = new UserTime();
            TimeItem itemtime = new TimeItem();

            utiem.getclockin(mitem._EMPID);

            DateTime timein;

            DateTime.TryParse("" + ClockInItem.Clockin.DATE + "," + ClockInItem.Clockin.TIME_IN + "", out timein);
            DateTime t1 = DateTime.Parse("" + ClockInItem.Clockin.DATE + ", 8:00:00 AM");

            DateTime timeout;

            DateTime.TryParse(DateTime.Now.ToString("HH:mm"), out timeout);
            DateTime t2 = DateTime.Parse("" + ClockInItem.Clockin.DATE + ", 5:00:00 PM");
            DateTime t3 = DateTime.Parse("" + ClockInItem.Clockin.DATE + ", 12:00:00 PM");
            DateTime t4 = DateTime.Parse("" + ClockInItem.Clockin.DATE + ", 1:00:00 PM");
            DateTime t5 = DateTime.Parse("" + ClockInItem.Clockin.DATE + ", 6:00:00 PM");
            DateTime t6 = DateTime.Parse("" + ClockInItem.Clockin.DATE + ", 1:00:00 AM");

            //Normal day
            if (timein <= t1 && (timeout >= t2 && timeout < t5))
            {
                totalHours   = t2.Subtract(t1).TotalHours - 1;
                totalMinutes = t2.Subtract(t1).TotalMinutes - 60;
                remarks      = "On-Duty";
            }
            //Half-day morning  8 to after 12pm
            else if (timein <= t1 && timeout >= t3 && timeout < t4 && timeout < t2)
            {
                totalHours   = t3.Subtract(t1).TotalHours;
                totalMinutes = t3.Subtract(t1).TotalMinutes;
                remarks      = "Half-day";
            }
            //Half-day morning 8 to before 12pm
            else if (timein <= t1 && timeout < t3)
            {
                totalUndertimeMinutes = t3.Subtract(timeout).TotalMinutes;
                totalHours            = timeout.Subtract(t1).TotalHours;
                totalMinutes          = timeout.Subtract(t1).TotalMinutes;
                remarks = "Half-day";
            }
            //half-day morning late 8 to before 12pm
            else if (timein > t1 && timeout < t3)
            {
                totalUndertimeMinutes = t3.Subtract(timeout).TotalMinutes;
                totalLateminutes      = timein.Subtract(t1).Minutes;
                totalHours            = timeout.Subtract(timein).TotalHours;
                totalMinutes          = timeout.Subtract(timein).TotalMinutes;

                remarks = "Half-day";
            }
            //half-day morning late 8 to after 12pm
            else if (timein > t1 && timeout >= t3 && timeout < t4 && timeout < t2)
            {
                totalLateminutes = timein.Subtract(t1).Minutes;
                totalHours       = t3.Subtract(timein).TotalHours;
                totalMinutes     = t3.Subtract(timein).TotalMinutes;
                remarks          = "Half-day";
            }
            //Late halfday
            else if (timein > t3 && timein > t4 && timeout < t4 && timeout >= t2 && timeout < t5)
            {
                totalLateminutes = timein.Subtract(t1).Minutes;
                totalHours       = t2.Subtract(timein).TotalHours - 1;
                totalMinutes     = t2.Subtract(timein).TotalMinutes - 60;

                remarks = "Half-day";
            }
            //Late
            else if (timein > t1 && timein < t3 && timein < t4 && timeout >= t2 && timeout < t5)
            {
                totalLateminutes = timein.Subtract(t1).Minutes;
                totalHours       = t2.Subtract(timein).TotalHours - 1;
                totalMinutes     = t2.Subtract(timein).TotalMinutes - 60;

                remarks = "On-Duty";
            }
            //half-day afternoon 1pm to after 5pm
            else if (timein > t3 && timein <= t4 && timeout >= t2 && timeout < t5)
            {
                totalHours   = t2.Subtract(t4).TotalHours;
                totalMinutes = t2.Subtract(t4).TotalMinutes;
                remarks      = "Half-day";
            }

            //half-day afternoon late 1pm to  after 5pm
            else if (timein > t4 && timeout >= t2 && timeout < t5)
            {
                totalLateminutes = timein.Subtract(t4).TotalMinutes;
                totalHours       = t2.Subtract(timein).TotalHours;
                totalMinutes     = t2.Subtract(timein).TotalMinutes;
                remarks          = "Half-day";
            }

            //half-day afternoon 1pm to before 5pm
            else if (timein > t3 && timein <= t4 && timeout < t2)
            {
                totalUndertimeMinutes = t2.Subtract(timeout).TotalMinutes;
                totalHours            = timeout.Subtract(t4).TotalHours;
                totalMinutes          = timeout.Subtract(t4).TotalMinutes;
                remarks = "Half-day";
            }
            //half-day afternoon late 1pm to before 5pm
            else if (timein > t4 && timeout < t2)
            {
                totalUndertimeMinutes = t2.Subtract(timeout).TotalMinutes;
                totalLateminutes      = timein.Subtract(t4).TotalMinutes;
                totalHours            = timeout.Subtract(timein).TotalHours;
                totalMinutes          = timeout.Subtract(timein).TotalMinutes;
                remarks = "Half-day";
            }
            //Late and UnderTime
            else if (timein > t1 && timeout < t2)
            {
                totalLateminutes      = timein.Subtract(t1).TotalMinutes;
                totalUndertimeMinutes = t2.Subtract(timeout).TotalMinutes;
                totalHours            = timeout.Subtract(timein).TotalHours - 1;
                totalMinutes          = timeout.Subtract(timein).TotalMinutes - 60;
                remarks = "On-Duty";
            }
            //UnderTIme
            else if (timein <= t1 && timeout < t2)
            {
                totalUndertimeMinutes = t2.Subtract(timeout).TotalMinutes;
                totalHours            = timeout.Subtract(t1).TotalHours - 1;
                totalMinutes          = timeout.Subtract(t1).TotalMinutes - 60;
                remarks = "On-Duty";
            }

            //half-day afternoon Late OT
            else if (timein > t4 && timeout > t5)
            {
                totalOTMinutes   = timeout.Subtract(t2).TotalMinutes;
                totalLateminutes = timein.Subtract(t4).Minutes;
                totalHours       = timeout.Subtract(timein).TotalHours;
                totalMinutes     = timeout.Subtract(timein).TotalMinutes;
                remarks          = "Half-day";
            }
            //half-day afternoon OT
            else if (timein > t3 && timein <= t4 && timeout > t5)
            {
                totalOTMinutes = timeout.Subtract(t2).TotalMinutes;
                totalHours     = timeout.Subtract(t4).TotalHours;
                totalMinutes   = timeout.Subtract(t4).TotalMinutes;
                remarks        = "Half-day";
            }
            //OT
            else if (timein <= t1 && timeout >= t5 && timeout > t6)
            {
                totalOTMinutes = timeout.Subtract(t2).TotalMinutes;
                totalHours     = timeout.Subtract(t1).TotalHours - 1;
                totalMinutes   = timeout.Subtract(t1).TotalMinutes - 60;
                remarks        = "On-Duty";
            }


            //OT LATE
            else if (timein > t1 && timeout >= t5 && timeout > t6)
            {
                totalLateminutes = timein.Subtract(t1).Minutes;
                totalOTMinutes   = timeout.Subtract(t2).TotalMinutes;
                totalHours       = timeout.Subtract(timein).TotalHours - 1;
                totalMinutes     = timeout.Subtract(timein).TotalMinutes - 60;
                remarks          = "On-Duty";
            }

            else
            {
                itemtime.EMP_ID           = mitem._EMPID;
                itemtime.TIME_OUT         = "Forgot to Timeout";
                itemtime.HOURS            = 0;
                itemtime.LOG_ID           = LogItem.staticLogIdItem.LOG_ID;
                itemtime.MINUTES          = 0;
                itemtime.PAY_DAY          = 0;
                itemtime.REMARKS          = "Forgot to Timeout";
                itemtime.LOG_LATE_MINUTES = 0;
                itemtime.LOG_LATE_DEDUC   = 0;
                itemtime.LOG_OT_MINUTES   = 0;
                itemtime.LOG_OT_TOTAL     = 0;
                itemtime.LOG_UNDERTIME    = 0;
                Timeout(itemtime);
                btn_time_in.IsEnabled  = true;
                btn_time_out.IsEnabled = false;

                totalLateminutes      = 0;
                totalUndertimeMinutes = 0;
                totalOTMinutes        = 0;
                OThour = 0;
                this.Close();
            }



            //2decimal place total hours, total minutes
            double roundhrs     = Math.Round((Double)totalHours, 2);
            double roundminutes = Math.Round((Double)totalMinutes, 2);

            double roundminutesnoOT = (roundminutes - totalOTMinutes);
            //get employee salary per hour
            double hourate = mitem._HOURLY_RATE;

            //computation hourlyrate (rate per hour / 60 minutes)
            double minuterate = (hourate / 60);

            //computation late
            double TotalMinuteDeduction = ((totalUndertimeMinutes + totalLateminutes) * minuterate);
            double TotalDeduction       = Math.Round((Double)TotalMinuteDeduction, 2);

            //computation OT

            if (totalOTMinutes >= 60 && totalOTMinutes < 90)
            {
                OThour = 1;
            }
            else if (totalOTMinutes >= 90 && totalOTMinutes < 120)
            {
                OThour = 1.5;
            }
            else if (totalOTMinutes >= 120 && totalOTMinutes < 150)
            {
                OThour = 2;
            }
            else if (totalOTMinutes >= 150 && totalOTMinutes < 180)
            {
                OThour = 2.5;
            }
            else if (totalOTMinutes >= 180 && totalOTMinutes < 210)
            {
                OThour = 3;
            }
            else if (totalOTMinutes >= 210 && totalOTMinutes < 240)
            {
                OThour = 3.5;
            }
            else if (totalOTMinutes >= 240 && totalOTMinutes < 270)
            {
                OThour = 4;
            }
            else if (totalOTMinutes >= 270 && totalOTMinutes < 300)
            {
                OThour = 4.5;
            }
            else if (totalOTMinutes >= 300 && totalOTMinutes < 330)
            {
                OThour = 5;
            }
            else if (totalOTMinutes >= 330 && totalOTMinutes < 360)
            {
                OThour = 5.5;
            }
            else if (totalOTMinutes >= 360 && totalOTMinutes < 390)
            {
                OThour = 6;
            }
            else if (totalOTMinutes >= 390 && totalOTMinutes < 420)
            {
                OThour = 6.5;
            }
            else if (totalOTMinutes >= 420 && totalOTMinutes < 450)
            {
                OThour = 7;
            }
            else if (totalOTMinutes >= 450 && totalOTMinutes < 480)
            {
                OThour = 7.5;
            }
            else if (totalOTMinutes >= 480)
            {
                OThour = 8;
            }

            double TotalOvertime  = (hourate * OThour * 1.25);
            double OTtotaldecimal = Math.Round((double)TotalOvertime, 2);

            //computation PayDay
            double paydaywdeduc = (minuterate * roundminutesnoOT - TotalDeduction);
            double finpaydaywOT = (paydaywdeduc + OTtotaldecimal);

            finalpayday = Math.Round((double)finpaydaywOT, 2);



            itemtime.EMP_ID           = mitem._EMPID;
            itemtime.TIME_OUT         = DateTime.Now.ToString("hh:mm:ss tt");
            itemtime.HOURS            = roundhrs;
            itemtime.LOG_ID           = LogItem.staticLogIdItem.LOG_ID;
            itemtime.MINUTES          = roundminutes;
            itemtime.PAY_DAY          = finalpayday;
            itemtime.REMARKS          = remarks;
            itemtime.LOG_LATE_MINUTES = totalLateminutes;
            itemtime.LOG_LATE_DEDUC   = TotalDeduction;
            itemtime.LOG_OT_MINUTES   = OThour;
            itemtime.LOG_OT_TOTAL     = OTtotaldecimal;
            itemtime.LOG_UNDERTIME    = totalUndertimeMinutes;



            Timeout(itemtime);
            btn_time_in.IsEnabled  = true;
            btn_time_out.IsEnabled = false;
            totalLateminutes       = 0;
            totalUndertimeMinutes  = 0;
            totalOTMinutes         = 0;
            OThour = 0;
        }
Пример #22
0
 private void Timeout(TimeItem newitem)
 {
     utime.Time_out(newitem);
 }
Пример #23
0
    // Start is called before the first frame update

    void Start()
    {
        shotSpd   = Constants.Instance.shotSpds[Index];
        shotDamge = Constants.Instance.bulletDamage[Index];
        item      = Timer.Instance.Post2Really(Shot, 1 / shotSpd, -1);
    }
Пример #24
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Settings);
            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetDisplayShowHomeEnabled(true);
            SupportActionBar.Title = "Ustawienia";

            HoursList = FindViewById <MedicationDosageTimeLayout>(Resource.Id.hoursList);
            HoursList.ItemTemplateId = Resource.Layout.time_item;

            addHour = FindViewById <TextView>(Resource.Id.addHourBtn);
            var hoursAdapter = (MedicationDosageTimeListAdapter)HoursList.Adapter;

            hoursAdapter.CLickItem.Subscribe(item =>
            {
                TimePickerDialog timePicker = new TimePickerDialog(
                    this,
                    (s, args) =>
                {
                    if (((TimePicker)s).IsShown)
                    {
                        newItem      = new TimeItem(item.Name);
                        newItem.Hour = new TimeSpan(args.HourOfDay, args.Minute, 0);
                        var id       = this.ViewModel.HoursList.IndexOf(item);
                        if (id >= 0)
                        {
                            this.ViewModel.HoursList.RemoveAt(id);
                            this.ViewModel.HoursList.Insert(id, newItem);
                        }
                    }
                },
                    item.Hour.Hours,
                    item.Hour.Minutes,
                    true);
                timePicker.Show();
            });

            hoursAdapter.DeleteRequested.Subscribe(time => this.ViewModel.HoursList.Remove(time));

            soundLabel        = FindViewById <TextView>(Resource.Id.soundLabel);
            soundLabel.Click += (o, e) =>
            {
                Intent intent = new Intent(RingtoneManager.ActionRingtonePicker);
                intent.PutExtra(RingtoneManager.ExtraRingtoneTitle, true);
                intent.PutExtra(RingtoneManager.ExtraRingtoneShowSilent, false);
                intent.PutExtra(RingtoneManager.ExtraRingtoneShowDefault, true);

                Android.Net.Uri uri;
                if (!String.IsNullOrEmpty(this.ViewModel.RingUri))
                {
                    uri = Android.Net.Uri.Parse(this.ViewModel.RingUri);
                }
                else
                {
                    uri = RingtoneManager.GetDefaultUri(RingtoneType.Alarm);
                }

                intent.PutExtra(RingtoneManager.ExtraRingtoneExistingUri, uri);

                StartActivityForResult(Intent.CreateChooser(intent, "Wybierz dzwonek"), 0);

                //Android.Net.Uri ring = (Android.Net.Uri)intent.GetParcelableExtra(RingtoneManager.ExtraRingtonePickedUri);
            };

            this.snooze        = this.FindViewById <TextView>(Resource.Id.snooze);
            this.snooze.Click += (sender, e) => { this.InputClicked(sender, e, this.ViewModel.SetSnooze, this.ViewModel.SnoozeMinutes, "Drzemka"); };

            this.window        = this.FindViewById <TextView>(Resource.Id.window);
            this.window.Click += (sender, e) => { this.InputClicked(sender, e, this.ViewModel.SetWindow, this.ViewModel.WindowHours, "Okienko 'najbliższe"); };

            SetBinding();
        }
Пример #25
0
 public void MinusOperator_SubtractMinutes_HourOverflow_Work()
 {
     TimeItem ti = new TimeItem(1,30);
       var timeItem = ti - 0.75;
       Assert.AreEqual(0, timeItem.Hour);
       Assert.AreEqual(45, timeItem.Minute);
 }
Пример #26
0
 public bool SimilarTime(TimeItem other)
 {
     return(Timestamp.Subtract(other.Timestamp).Duration().TotalSeconds < 1);
 }
Пример #27
0
 public WorkItem(TimeItem start, TimeItem end)
 {
     this.Start = start;
     this.End   = end;
 }
Пример #28
0
 public void PlusOperator_AddHours_Work()
 {
     TimeItem ti = new TimeItem(1,0);
       var timeItem = ti + 1;
       Assert.AreEqual(2, timeItem.Hour);
       Assert.AreEqual(0, timeItem.Minute);
 }
Пример #29
0
 public void PlusOperator_AddMinutes_HourOverflow_Work()
 {
     TimeItem ti = new TimeItem(1,30);
       var timeItem = ti + 0.75;
       Assert.AreEqual(2, timeItem.Hour);
       Assert.AreEqual(15, timeItem.Minute);
 }
Пример #30
0
 public void PlusOperator_AddMinutes_Work()
 {
     TimeItem ti = new TimeItem(1,0);
       var timeItem = ti + 0.5;
       Assert.AreEqual(1, timeItem.Hour);
       Assert.AreEqual(30, timeItem.Minute);
 }
Пример #31
0
 private void AddTimein(TimeItem newitem)
 {
     utime.Time_in(newitem);
 }
Пример #32
0
        public void MinusOperator_OutOfRange_Fail()
        {
            TimeItem ti = new TimeItem(1, 0);

            Assert.Throws <ArgumentOutOfRangeException>(() => { var i = ti - 5; });
        }