private void UpdateExsistingOrder(int newQty, int id = 0, string line = "", DateTime date = default(DateTime))
        {
            var jobModel = new JobModel();

            if (line == string.Empty)
            {
                line = _bar.Tag;
            }
            if (date == default(DateTime))
            {
                date = _bar.FromTime;
            }
            var duration  = jobModel.CalculateJobDuration(line, newQty, _bar.QtyH, _bar.Department, _bar.Members);
            var dailyProd = jobModel.CalculateDailyQty(line, _bar.QtyH, _bar.Department, _bar.Members, newQty);

            var durationTick = TimeSpan.FromDays(duration).Ticks;
            var eDate        = date.AddTicks(durationTick);

            var shift = new ShiftRecognition();

            eDate = shift.GetEndTimeInShift(date, eDate);

            //eDate = new DateTime(eDate.Year, eDate.Date.Month, eDate.Day, eDate.Hour, eDate.Minute, 0, 0);

            using (var con = new System.Data.SqlClient.SqlConnection(Central.SpecialConnStr))
            {
                var updateQuery = @"
update objects set loadedQty=@LoadedQty, duration=@Duration, endDate=@EndDate, dailyProd=@DailyProd, closedord=@ClosedOrd
where Id=@Id;";

                var cmd = new System.Data.SqlClient.SqlCommand(updateQuery, con);
                cmd.Parameters.Add("@LoadedQty", SqlDbType.Int).Value  = newQty;
                cmd.Parameters.Add("@Duration", SqlDbType.Float).Value = duration;
                cmd.Parameters.Add("@EndDate", SqlDbType.BigInt).Value = eDate.Ticks;
                cmd.Parameters.Add("@DailyProd", SqlDbType.Int).Value  = dailyProd;
                cmd.Parameters.Add("@Id", SqlDbType.Int).Value         = id == 0 ? _bar.Id : id;

                if (_bar.ProductionQty > 0 && _bar.LoadedQty - _bar.ProductionQty == newQty)
                {
                    cmd.Parameters.Add("@ClosedOrd", SqlDbType.Bit).Value = true;
                }
                else
                {
                    cmd.Parameters.Add("@ClosedOrd", SqlDbType.Bit).Value = false;
                }

                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
        }
        private void InsertFractionatedOrder(int newQty, int newMembers)
        {
            var loadingJob = new LoadingJob(false);

            var jobModel = new JobModel();
            var task     = Central.TaskList.Where(x => x.Id == _bar.Id).FirstOrDefault();

            var duration  = jobModel.CalculateJobDuration(cboLine.Text, newQty, _bar.QtyH, _bar.Department, newMembers);
            var startDate = !Store.Default.manualDate ? JobModel.GetLineNextDate(cboLine.Text, _bar.Department) : dtpStart.Value;

            var dailyProd = jobModel.CalculateDailyQty(cboLine.Text, _bar.QtyH, _bar.Department, newMembers, newQty);

            var newRowText = string.Empty;

            if (_bar.RowText.Contains('_'))
            {
                int.TryParse(_bar.RowText.Split('_')[1], out var newIndex);
                newRowText = _bar.RowText.Split('_')[0] + '_' + (newIndex + 1).ToString();

                var newTask = Central.TaskList.Where(x => x.Name == newRowText && x.Department == _bar.Department).FirstOrDefault();

                if (newTask != null)
                {
                    int.TryParse(newTask.Name.Split('_')[1], out var n);
                    newRowText = _bar.RowText.Split('_')[0] + '_' + (n + 1).ToString();
                }
            }
            else
            {
                newRowText = _bar.RowText + "_1";
            }

            loadingJob.InsertNewProgram(newRowText, cboLine.Text, _bar.Article, newQty,
                                        _bar.QtyH, startDate, duration, dailyProd,
                                        task.ArtPrice, _bar.Department, newMembers, dtpStart.Checked, false);
        }