Esempio n. 1
0
        //private void selectPlatform_DropDown(object sender, EventArgs e)
        //{
        //    selectPlatform.Items.Clear();
        //    var tempAllPlatforms = AllPlatforms.Where(ap => ap.Address.ToLowerInvariant().Contains(selectPlatform.Text.ToLowerInvariant())).ToList();
        //    // ReSharper disable once CoVariantArrayConversion
        //    selectPlatform.Items.AddRange(tempAllPlatforms.Select(ap => ap.Address).ToArray());
        //}

        private void saveButton_Click(object sender, EventArgs e)
        {
            var sql               = new Model();
            var platform          = selectedPlatform.Text;
            var selectedContainer = selectContainerType.Text;
            var pf = sql.FindinTable <Platform>("Address", platform).FirstOrDefault();

            if (pf == null)
            {
                MessageBox.Show(@"Платформа не выбрана");
                return;
            }
            var ct = sql.FindinTable <ContainerType>("Name", selectedContainer).FirstOrDefault();

            if (ct == null)
            {
                MessageBox.Show(@"Контейнер не выбран");
                return;
            }

            string schedule = string.Empty;

            if (monday.Checked)
            {
                schedule = "1;";
            }
            if (tuesday.Checked)
            {
                schedule = schedule + "2;";
            }
            if (wednesday.Checked)
            {
                schedule = schedule + "3;";
            }
            if (thersday.Checked)
            {
                schedule = schedule + "4;";
            }
            if (friday.Checked)
            {
                schedule = schedule + "5;";
            }
            if (satuday.Checked)
            {
                schedule = schedule + "6;";
            }
            if (sunday.Checked)
            {
                schedule = schedule + "7;";
            }
            if (!String.IsNullOrEmpty(schedule))
            {
                schedule = schedule.TrimEnd(';');
            }



            Debug.Assert(ct != null, nameof(ct) + " != null");
            Debug.Assert(pf != null, nameof(pf) + " != null");
            var orgCont = new OrganizationContainer
            {
                Organization = Org.Id,
                Container    = ct.Id,
                Platform     = pf.Id,
                Schedule     = schedule
            };

            sql.WriteToDb(orgCont);

            DialogResult = DialogResult.Yes;
            Close();
        }
Esempio n. 2
0
        private void saveNewRegistry_Click(object sender, EventArgs e)
        {
            if (!CheckSave())
            {
                return;
            }

            var tv = Single.Parse(targetVolume.Text, CultureInfo.InvariantCulture);
            var pv = Single.Parse(processedVolume.Text, CultureInfo.InvariantCulture);
            var av = Single.Parse(container.Text, CultureInfo.InvariantCulture);

            // ReSharper disable once CompareOfFloatsByEqualityOperator
            if (av == 0)
            {
                MessageBox.Show(@"Нельзя вывести ничего");
                return;
            }

            if (pv + av > tv)
            {
                MessageBox.Show(@"Превышен запланированный объем");
                return;
            }

            long selectedCont     = AllContainerTypes.Find(ac => ac.Name.Equals(selectContainer.Text)).Id;
            long selectedPlatform = AllPlatforms.Find(ap => ap.Address.Equals(selectPlatform.Text)).Id;
            long selectedDriver   = Sql.FindinTable <Driver>().Find(dr => dr.Name.Equals(selectDriver.Text)).Id;
            long selectedCar      = Sql.FindinTable <Car>().Find(cr => cr.Name.Equals(selectCar.Text)).Id;

            var newRecord = new Registry
            {
                Organization = SelectedOrg,
                Contract     = SelectedContract.Id,
                Container    = selectedCont,
                Platform     = selectedPlatform,
                Driver       = selectedDriver,
                Car          = selectedCar,
                Volume       = av,
                Entered      = processDate.Value
            };

            //Start transaction
            Sql.StartTransaction();
            //Update Registry
            var newSqlCommand = $"INSERT Into Registry (Organization, Contract, Container, " +
                                $"Platform, Driver, Car, Volume, Entered) " +
                                $"Values ('{SelectedOrg}', '{SelectedContract.Id}', '{selectedCont}', " +
                                $"'{selectedPlatform}', '{selectedDriver}', '{selectedCar}', '{av}', " +
                                $"'{processDate.Value:yyyy-MM-dd}')";

            var result = Sql.ExecuteWriteCommandWithTrans(newSqlCommand);

            if (result == -1)
            {
                Sql.EndTransaction(false);
                MessageBox.Show(@"Ошибка сохранения");
                return;
            }
            //Update Contract
            newSqlCommand = $"UPDATE Contracts " +
                            $"SET ProcessedVolume = '{(pv + av).ToString(CultureInfo.InvariantCulture)}' " +
                            $"WHERE id = {SelectedContract.Id}";

            result = Sql.ExecuteWriteCommandWithTrans(newSqlCommand);
            if (result == -1)
            {
                Sql.EndTransaction(false);
                MessageBox.Show(@"Не получилось обновить договор");
                return;
            }
            //Commit Transaction
            Sql.EndTransaction(true);

            var tempOrgCont = new OrganizationContainer
            {
                Organization = SelectedOrg,
                Container    = selectedCont,
                Platform     = selectedPlatform
            };

            var orgConts = Sql.FindinTable(tempOrgCont);

            foreach (var orgCont in orgConts)
            {
                var sqlCommand = $"SELECT Id " +
                                 $"FROM ContainersQueue " +
                                 // ReSharper disable once PossibleNullReferenceException
                                 $"WHERE Container = '{orgCont.Id}' " +
                                 $"AND Dayspast = '0' " +
                                 $"AND Processed = '0'";

                var unprocessedCont = Sql.ExecuteTextCommand(sqlCommand);

                if (unprocessedCont.Any())
                {
                    result = Sql.UpdateRecord <ContainerQueue>((long)unprocessedCont[0], "Processed", "1");
                    if (result != 1)
                    {
                        MessageBox.Show(@"Не получилось обновить очередь контейнеров");
                    }
                    break;
                }
            }

            DialogResult = DialogResult.Yes;
            Close();
        }