Beispiel #1
0
        private void load_crew_from_row(DateTime start_of_week, DataRow row)
        {
            ucSalary uc = new ucSalary(start_of_week, row["EmpName"].ToString(), row["EmpID"].ToString(), true);

            _crew.Add(row["EmpID"].ToString(), uc);
            tlpCrew.Controls.Add(uc);
            tlpCrew.RowCount += 1;
        }
Beispiel #2
0
        /*******************************************************************************************************************\
        *                                                                                                                 *
        \*******************************************************************************************************************/

        private void reset_week(DateTime start_of_week)
        {
            foreach (var c in _crew)
            {
                ucSalary uc = c.Value;

                if (!uc.LoadIt)
                {
                    uc.ShowIt = false;
                }

                uc.ResetWeek(start_of_week);
            }
        }
Beispiel #3
0
        /*******************************************************************************************************************\
        *                                                                                                                 *
        \*******************************************************************************************************************/

        private void do_delete()
        {
            bool    flag_save = false;
            DataSet ds        = dacTimebook.GetDS(RefWeek, 14);

            for (int i = 0; i < tlpCrew.RowCount; i++)
            {
                ucSalary uc = (ucSalary)tlpCrew.GetControlFromPosition(0, i);

                if (uc.EmpChk)
                {
                    if (uc.IsDirty())
                    {
                        flag_save = true;
                    }
                    continue;
                }

                if (!uc.IsDelete())
                {
                    continue;
                }


                //DataRow row;
                DateTime next_date;

                for (int day = 0; day < 14; day++)
                {
                    next_date = RefWeek.Date.AddDays(day);

                    dacTimebook.FindDel(new object[] { next_date, uc.EmpID, 0 });
                }

                uc.DeleteReset();
            }

            dacTimebook.DeleteData();
            dacCache.PutTimebook();

            cmdSave.Text    = "Save";
            cmdSave.Visible = flag_save;
        }
Beispiel #4
0
        /*******************************************************************************************************************\
        *                                                                                                                 *
        \*******************************************************************************************************************/

        private void tbxShift_TextChanged(object sender, EventArgs e)
        {
            // Mark the crew

            TextBox tbx = (TextBox)sender;

            //Boatcrew b = (Boatcrew)(tbx.Tag);
            //string name = b.boat.ToString() + b.idx.ToString();
            //int shift = 0;

            Boat b = _nboats.Get(tbx.Text);

            for (int i = 0; i < tlpCrew.RowCount; i++)
            {
                ucSalary uc = (ucSalary)tlpCrew.GetControlFromPosition(0, i);

                //uc.RefreshShift((Boatcrew)(tbx.Tag), shift);
                uc.RefreshShift(b);
            }
        }
Beispiel #5
0
        private void load_crew_from_file(DateTime start_of_week)
        {
            //tlpCrew.AutoScroll = true;

            //tlpCrew.RowStyles.Clear();
            //tlpCrew.ColumnStyles.Clear();
            //tlpCrew.RowCount = 0;
            //tlpCrew.ColumnCount = 0;

            string where = string.Format("BookDate >= '{0}' and BookDate <= '{1}'",
                                         start_of_week.ToShortDateString(), start_of_week.AddDays(14).ToShortDateString());

            DataView v = new DataView();

            //v.Table = _ds_crew.Tables[0];
            v.Table     = _dt_crew;
            v.RowFilter = where;

            DataTable view_data = v.ToTable(true, new string[] { "EmpId", "EmpName" });  // select distinct


            //DataTable dt = _ds_crew.Tables[0].AsEnumerable()
            //        .GroupBy(r => r.Field<string>("EmpId"))
            //        .Select(g => g.First())
            //            .CopyDataTable();


            foreach (DataRow row in view_data.Rows)
            {
                if (_crew.ContainsKey(row["EmpID"].ToString()))
                {
                    continue;
                }

                ucSalary uc = new ucSalary(start_of_week, row["EmpName"].ToString(), row["EmpID"].ToString(), false);

                _crew.Add(row["EmpID"].ToString(), uc);
                tlpCrew.Controls.Add(uc);
                tlpCrew.RowCount += 1;
            }
        }
Beispiel #6
0
        /*******************************************************************************************************************\
        *                                                                                                                 *
        \*******************************************************************************************************************/

        private void update_vessels()
        {
            //foreach (var v in _oboats)
            //{
            //    List<Boatcrew> blst = (List<Boatcrew>)(v.Value);

            //    int shift = 0;
            //    foreach (Boatcrew b in blst)
            //        shift |= b.shiftid;

            //    for (int i = 0; i < tlpCrew.RowCount; i++)
            //    {
            //        ucStat uc = (ucStat)tlpCrew.GetControlFromPosition(0, i);

            //        uc.RefreshShift(blst[0], shift);
            //    }
            //}

            foreach (var v in _nboats._boats)
            {
                //List<Boat> blst = (List<Boat>)(v.Value);

                //int shift = 0;
                //foreach (Boat b in blst)
                //    shift |= b.shiftid;

                Boat b = _nboats.Get(v.Key);

                for (int i = 0; i < tlpCrew.RowCount; i++)
                {
                    ucSalary uc = (ucSalary)tlpCrew.GetControlFromPosition(0, i);

                    //uc.RefreshShift(blst[0], shift);
                    uc.RefreshShift(b);
                }
            }
        }
Beispiel #7
0
        private void do_save()
        {
            DataSet ds = dacTimebook.GetDS(RefWeek, 14);

            for (int i = 0; i < tlpCrew.RowCount; i++)
            {
                ucSalary uc = (ucSalary)tlpCrew.GetControlFromPosition(0, i);

                if (!uc.EmpChk)
                {
                    continue;
                }
                if (uc.IsDelete())
                {
                    continue;
                }
                if (!uc.IsDirty())
                {
                    continue;
                }

                //MessageBox.Show(uc.EmpName);

                //RCD rcd = uc.RcdStat;
                //for (int j = 0; j <= 13; j++)
                //    if (rcd.toff[j] != null)  MessageBox.Show(rcd.toff[j].ToString());


                DataRow  row;
                DateTime next_date;

                for (int day = 0; day < 14; day++)
                {
                    next_date = RefWeek.Date.AddDays(day);

                    string toff   = uc.EmpToff[day];
                    string vessel = uc.EmpVessel[day];

                    row            = ds.Tables[0].NewRow();
                    row["EmpName"] = uc.EmpName;

                    if (toff != null && toff.Length == 0)
                    {
                        row["ToffCode"] = null;
                    }
                    else
                    {
                        row["ToffCode"] = toff;
                    }

                    row["LogHours"] = uc.EmpHour[day];
                    row["LogOver"]  = uc.EmpOver[day];

                    if (vessel != null && vessel.Length == 0)
                    {
                        row["LogVessel"] = null;
                    }
                    else
                    {
                        row["LogVessel"] = uc.EmpVessel[day];
                    }

                    row["LogShift"] = 0;

                    row["LogNote"] = null;
                    if (uc.EmpNote[day] != null && uc.EmpNote[day].Length > 0)
                    {
                        row["LogNote"] = uc.EmpNote[day];
                    }

                    dacTimebook.FindAdd(new object[] { next_date, uc.EmpID, 0 }, row);

                    uc.SaveReset();
                }
            }

            dacTimebook.SaveData();
            dacCache.PutTimebook();
            cmdSave.Visible = false;
        }
Beispiel #8
0
        private void refresh_data(DateTime start_of_week, bool show_all)
        {
            tlpCrew.Controls.Clear();
            tlpCrew.RowCount = 0;

            //_ds_crew = dacTimebook.GetDS(RefWeek, 14);
            // _dt_crew is already loaded

            //load_shift();

            string where = string.Format("BookDate >= '{0}' and BookDate <= '{1}'",
                                         start_of_week.ToShortDateString(), start_of_week.AddDays(14).ToShortDateString());

            DataView v = new DataView();

            //v.Table = _ds_crew.Tables[0];
            v.Table     = _dt_crew;
            v.RowFilter = where;

            DataTable view_data = v.ToTable(true, new string[] { "EmpId", "EmpName" });

            foreach (DataRow row in view_data.Rows)
            {
                ucSalary uc;

                if (_crew.ContainsKey(row["EmpID"].ToString()))
                {
                    uc = _crew[row["EmpID"].ToString()];

                    if (show_all)
                    {
                        uc.ShowIt = true;
                    }
                    continue;
                }

                if (show_all)
                {
                    uc = new ucSalary(start_of_week, row["EmpName"].ToString(), row["EmpID"].ToString(), false);
                    _crew.Add(row["EmpID"].ToString(), uc);
                }


                //tlpCrew.Controls.Add(uc);
                //tlpCrew.RowCount += 1;
            }


            foreach (var c in _crew)
            {
                ucSalary uc = c.Value;

                if (uc.LoadIt)
                {
                    tlpCrew.Controls.Add(uc);
                    tlpCrew.RowCount += 1;
                }
            }


            foreach (var c in _crew)
            {
                ucSalary uc = c.Value;

                if (uc.ShowIt && !uc.LoadIt)
                {
                    tlpCrew.Controls.Add(uc);
                    tlpCrew.RowCount += 1;
                }
            }
        }
Beispiel #9
0
        /*******************************************************************************************************************\
        *                                                                                                                 *
        \*******************************************************************************************************************/



        /*******************************************************************************************************************\
        *                                                                                                                 *
        \*******************************************************************************************************************/

        private void update_timebook(bool show_all)
        {
            if (RefWeek == null)
            {
                return;
            }

            //DataSet ds = dacTimebook.GetDS(RefWeek, 14);
            //foreach (DataRow row in ds.Tables[0].Rows)

            foreach (DataRow row in _dt_crew.Rows)
            {
                var bookdate_ = row["Bookdate"];

                if (bookdate_ == DBNull.Value)
                {
                    continue;
                }
                DateTime bookdate = (DateTime)bookdate_;
                //if (bookdate.Date < RefWeek.Date) continue;
                //if (bookdate.Date >= RefWeek.AddDays(14).Date) continue;
                if (bookdate.Date.CompareTo(RefWeek.Date) == -1)
                {
                    continue;
                }
                if (bookdate.Date.CompareTo(RefWeek.AddDays(14).Date) == 1)
                {
                    continue;
                }


                //ucStat uc = (ucStat)tlpCrew.GetControlFromPosition(0, 0);
                //if (!_crew.ContainsKey(row["EmpId"].ToString()))
                //    load_crew_from_row(RefWeek, row);

                try
                {
                    if (!show_all && !_crew.ContainsKey(row["EmpID"].ToString()))
                    {
                        continue;
                    }

                    ucSalary uc = _crew[row["EmpID"].ToString()];

                    string notebug = null;  // can't use row["LogNote"].ToString()
                    if (!DBNull.Value.Equals(row["LogNote"]))
                    {
                        notebug = row["LogNote"].ToString();
                    }


                    uc.RefWeek = RefWeek;
                    uc.RefreshDay(bookdate, row["ToffCode"].ToString(),
                                  Convert.ToSingle(row["LogHours"]),
                                  Convert.ToSingle(row["LogOver"]),
                                  row["LogVessel"].ToString(),
                                  Convert.ToInt32(row["LogShift"]), notebug);
                }
                catch (Exception ex)
                {
                    string msg = string.Format("Error ({0}) : Employee : [{1}:{2}] {3} => TOFF Code [{4}]",
                                               ex.Message,
                                               bookdate,
                                               row["EmpID"].ToString(),
                                               row["EmpName"].ToString(),
                                               row["ToffCode"].ToString());

                    MessageBox.Show(msg);
                }
            }
        }