commit c7d073eb90e4545fb08ecba735d2af76d8944397 Author: Student Date: Wed Nov 19 16:11:00 2025 +0400 work1911: Исходный код и EER diff --git a/EER/EER_Neshina.sql b/EER/EER_Neshina.sql new file mode 100644 index 0000000..3f81b25 --- /dev/null +++ b/EER/EER_Neshina.sql @@ -0,0 +1,244 @@ +-- MySQL dump 10.13 Distrib 8.0.36, for Win64 (x86_64) +-- +-- Host: git.pgk.alspio.com Database: ISP41_Neshina_dem2 +-- ------------------------------------------------------ +-- Server version 5.7.44 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!50503 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `Materials` +-- + +DROP TABLE IF EXISTS `Materials`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `Materials` ( + `idMaterials` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `Type` int(11) DEFAULT NULL, + `Price` decimal(10,2) DEFAULT NULL, + `Quantity` int(11) DEFAULT NULL, + `MinQuantity` int(11) DEFAULT NULL, + `QuantityPack` int(11) DEFAULT NULL, + `Unit` int(11) DEFAULT NULL, + PRIMARY KEY (`idMaterials`), + KEY `fk_type_idx` (`Type`), + KEY `fk_unit_idx` (`Unit`), + CONSTRAINT `fk_type` FOREIGN KEY (`Type`) REFERENCES `TypeMaterial` (`idTypeMaterial`) ON DELETE NO ACTION ON UPDATE CASCADE, + CONSTRAINT `fk_unit` FOREIGN KEY (`Unit`) REFERENCES `Unit` (`idUnit`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Materials` +-- + +LOCK TABLES `Materials` WRITE; +/*!40000 ALTER TABLE `Materials` DISABLE KEYS */; +INSERT INTO `Materials` VALUES (1,'Глина',1,15.29,1570,5500,30,1),(2,'Каолин',1,18.20,1030,3500,25,1),(3,'Гидрослюда',3,9999.00,2147,3500,25,1),(4,'Монтмориллонит',1,17.67,3000,3000,30,1),(5,'Перлит',2,13.99,150,1000,50,2),(6,'Стекло',2,2.40,3000,1500,500,1),(7,'Дегидратированная глина',2,21.95,3000,2500,20,1),(9,'Техническая сода',3,54.55,1200,1500,25,1),(10,'Жидкое стекло',3,76.59,500,1500,15,1),(11,'Кварц',4,18.20,1500,2500,10,1),(12,'Полевой шпат',4,15.99,750,1500,100,1),(13,'Краска-раствор',5,200.90,1496,2500,5,2),(16,'Жильный кварц',3,18.60,2556,1600,25,1),(17,'Барий углекислый',4,303.64,340,1500,25,1),(18,'Бура техническая',4,125.99,165,1300,25,1),(19,'Углещелочной реагент',3,3.45,450,1100,25,1),(20,'Пирофосфат натрия',3,700.99,356,1200,25,1); +/*!40000 ALTER TABLE `Materials` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `NameSupplier` +-- + +DROP TABLE IF EXISTS `NameSupplier`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `NameSupplier` ( + `idNameSupplier` int(11) NOT NULL AUTO_INCREMENT, + `Material` int(11) DEFAULT NULL, + `Supplier` int(11) DEFAULT NULL, + PRIMARY KEY (`idNameSupplier`), + KEY `fk_material_idx` (`Material`), + KEY `fk_pol_idx` (`Supplier`), + CONSTRAINT `fk_material` FOREIGN KEY (`Material`) REFERENCES `Materials` (`idMaterials`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_pol` FOREIGN KEY (`Supplier`) REFERENCES `Supplier` (`idSupplier`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `NameSupplier` +-- + +LOCK TABLES `NameSupplier` WRITE; +/*!40000 ALTER TABLE `NameSupplier` DISABLE KEYS */; +INSERT INTO `NameSupplier` VALUES (1,13,19),(2,2,3),(3,2,9),(4,6,19),(6,5,6),(7,1,4),(9,7,9),(10,12,4),(11,1,1),(13,16,17),(14,12,1),(15,3,9),(16,6,20),(17,12,12),(18,4,9),(19,11,11),(20,17,17),(21,10,12),(23,1,6),(24,11,15),(25,3,3),(26,5,9),(28,17,20),(29,18,20),(30,9,18),(31,20,20),(32,3,4),(33,16,15),(34,5,10),(36,4,4),(37,13,12),(38,6,7),(40,2,1),(41,10,18),(42,18,7),(43,7,11),(44,18,13),(45,4,3),(46,10,16),(47,10,7),(50,19,16),(51,11,14),(52,16,13),(53,13,16),(54,11,13),(55,7,2),(57,17,7),(59,7,7),(60,3,5),(61,20,7),(62,5,5),(63,9,7),(64,1,10),(65,9,16),(66,4,10),(67,19,12),(68,9,8),(69,18,2),(70,20,5),(71,16,10),(72,6,2),(73,19,8),(74,17,5),(75,20,8),(76,2,5),(78,19,5),(79,13,8),(80,12,10); +/*!40000 ALTER TABLE `NameSupplier` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Supplier` +-- + +DROP TABLE IF EXISTS `Supplier`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `Supplier` ( + `idSupplier` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `Type` int(11) DEFAULT NULL, + `INN` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `Rating` int(11) DEFAULT NULL, + `Date` date DEFAULT NULL, + PRIMARY KEY (`idSupplier`), + KEY `fk_types_idx` (`Type`), + CONSTRAINT `fk_types` FOREIGN KEY (`Type`) REFERENCES `TypeSupplier` (`idTypeSupplier`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Supplier` +-- + +LOCK TABLES `Supplier` WRITE; +/*!40000 ALTER TABLE `Supplier` DISABLE KEYS */; +INSERT INTO `Supplier` VALUES (1,'БрянскСтройресурс',1,'9432455179',8,'2015-12-20'),(2,'Стройкомплект',1,'7803888520',7,'2017-09-13'),(3,'Железногорская руда',2,'8430391035',7,'2016-12-23'),(4,'Белая гора',2,'4318170454',8,'2019-05-27'),(5,'Тульский обрабатывающий завод',2,'7687851800',7,'2015-06-16'),(6,'ГорТехРазработка',3,'6119144874',9,'2021-12-27'),(7,'Сапфир',4,'1122170258',3,'2022-04-10'),(8,'ХимБытСервис',3,'8355114917',5,'2022-03-13'),(9,'ВоронежРудоКомбинат',4,'3532367439',8,'2023-11-11'),(10,'Смоленский добывающий комбинат',4,'2362431140',3,'2018-11-23'),(11,'МосКарьер',3,'4159215346',2,'2012-07-07'),(12,'КурскРесурс',1,'9032455179',4,'2021-07-23'),(13,'Нижегородская разработка',4,'3776671267',9,'2016-05-23'),(14,'Речная долина',4,'7447864518',8,'2015-06-25'),(15,'Карелия добыча',3,'9037040523',6,'2017-03-09'),(16,'Московский ХимЗавод',3,'6221520857',4,'2015-05-07'),(17,'Горная компания',1,'2262431140',3,'2020-12-22'),(18,'Минерал Ресурс',2,'4155215346',7,'2015-05-22'),(19,'Арсенал',1,'3961234561',5,'2010-11-25'),(20,'КамчаткаСтройМинералы',1,'9600275878',7,'2016-12-20'); +/*!40000 ALTER TABLE `Supplier` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `TypeMaterial` +-- + +DROP TABLE IF EXISTS `TypeMaterial`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `TypeMaterial` ( + `idTypeMaterial` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`idTypeMaterial`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `TypeMaterial` +-- + +LOCK TABLES `TypeMaterial` WRITE; +/*!40000 ALTER TABLE `TypeMaterial` DISABLE KEYS */; +INSERT INTO `TypeMaterial` VALUES (1,'Пластичные материалы'),(2,'Добавка'),(3,'Электролит'),(4,'Глазурь'),(5,'Пигмент'); +/*!40000 ALTER TABLE `TypeMaterial` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `TypeProduction` +-- + +DROP TABLE IF EXISTS `TypeProduction`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `TypeProduction` ( + `idTypeProduction` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `Coefficient` decimal(10,2) DEFAULT NULL, + PRIMARY KEY (`idTypeProduction`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `TypeProduction` +-- + +LOCK TABLES `TypeProduction` WRITE; +/*!40000 ALTER TABLE `TypeProduction` DISABLE KEYS */; +INSERT INTO `TypeProduction` VALUES (1,'Тип продукции 1',1.20),(2,'Тип продукции 2',90.00),(3,'Тип продукции 3',3.45); +/*!40000 ALTER TABLE `TypeProduction` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `TypeSupplier` +-- + +DROP TABLE IF EXISTS `TypeSupplier`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `TypeSupplier` ( + `idTypeSupplier` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`idTypeSupplier`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `TypeSupplier` +-- + +LOCK TABLES `TypeSupplier` WRITE; +/*!40000 ALTER TABLE `TypeSupplier` DISABLE KEYS */; +INSERT INTO `TypeSupplier` VALUES (1,'ЗАО'),(2,'ООО'),(3,'ПАО'),(4,'ОАО'); +/*!40000 ALTER TABLE `TypeSupplier` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `TypeWithProcent` +-- + +DROP TABLE IF EXISTS `TypeWithProcent`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `TypeWithProcent` ( + `idTypeWithProcent` int(11) NOT NULL AUTO_INCREMENT, + `Name` int(11) DEFAULT NULL, + `Procent` decimal(10,4) DEFAULT NULL, + PRIMARY KEY (`idTypeWithProcent`), + KEY `fk_oioi_idx` (`Name`), + CONSTRAINT `fk_oioi` FOREIGN KEY (`Name`) REFERENCES `TypeMaterial` (`idTypeMaterial`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `TypeWithProcent` +-- + +LOCK TABLES `TypeWithProcent` WRITE; +/*!40000 ALTER TABLE `TypeWithProcent` DISABLE KEYS */; +INSERT INTO `TypeWithProcent` VALUES (1,1,0.0012),(2,2,0.0020),(3,3,0.0015),(4,4,0.0030),(5,5,0.0025); +/*!40000 ALTER TABLE `TypeWithProcent` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Unit` +-- + +DROP TABLE IF EXISTS `Unit`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `Unit` ( + `idUnit` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`idUnit`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Unit` +-- + +LOCK TABLES `Unit` WRITE; +/*!40000 ALTER TABLE `Unit` DISABLE KEYS */; +INSERT INTO `Unit` VALUES (1,'кг'),(2,'л'); +/*!40000 ALTER TABLE `Unit` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2025-11-19 15:59:52 diff --git a/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/33efc72d-f127-4f8a-a66d-d6b11f47e3a4.vsidx b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/33efc72d-f127-4f8a-a66d-d6b11f47e3a4.vsidx new file mode 100644 index 0000000..5411535 Binary files /dev/null and b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/33efc72d-f127-4f8a-a66d-d6b11f47e3a4.vsidx differ diff --git a/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/8d13013d-4c19-45f6-a8b9-184372402372.vsidx b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/8d13013d-4c19-45f6-a8b9-184372402372.vsidx new file mode 100644 index 0000000..b648dec Binary files /dev/null and b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/8d13013d-4c19-45f6-a8b9-184372402372.vsidx differ diff --git a/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/9b686963-f9df-416b-8a30-202b7ac67ea4.vsidx b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/9b686963-f9df-416b-8a30-202b7ac67ea4.vsidx new file mode 100644 index 0000000..ae8f029 Binary files /dev/null and b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/9b686963-f9df-416b-8a30-202b7ac67ea4.vsidx differ diff --git a/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/a7cebfef-8666-4806-b053-49ba92925726.vsidx b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/a7cebfef-8666-4806-b053-49ba92925726.vsidx new file mode 100644 index 0000000..f62f6bc Binary files /dev/null and b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/a7cebfef-8666-4806-b053-49ba92925726.vsidx differ diff --git a/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/ee2a30b2-8b4e-49f6-8e1b-c95133ecc1f6.vsidx b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/ee2a30b2-8b4e-49f6-8e1b-c95133ecc1f6.vsidx new file mode 100644 index 0000000..04e579a Binary files /dev/null and b/NeshinaDem3/.vs/NeshinaDem3/FileContentIndex/ee2a30b2-8b4e-49f6-8e1b-c95133ecc1f6.vsidx differ diff --git a/NeshinaDem3/.vs/NeshinaDem3/v17/.suo b/NeshinaDem3/.vs/NeshinaDem3/v17/.suo new file mode 100644 index 0000000..fd54393 Binary files /dev/null and b/NeshinaDem3/.vs/NeshinaDem3/v17/.suo differ diff --git a/NeshinaDem3/NeshinaDem3.sln b/NeshinaDem3/NeshinaDem3.sln new file mode 100644 index 0000000..d9606c0 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NeshinaDem3", "NeshinaDem3\NeshinaDem3.csproj", "{E6B40B3D-4197-489D-AD89-F7FDABAF4249}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E6B40B3D-4197-489D-AD89-F7FDABAF4249}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6B40B3D-4197-489D-AD89-F7FDABAF4249}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6B40B3D-4197-489D-AD89-F7FDABAF4249}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6B40B3D-4197-489D-AD89-F7FDABAF4249}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {515958ED-882C-432E-980A-F00EFA219FAF} + EndGlobalSection +EndGlobal diff --git a/NeshinaDem3/NeshinaDem3/Add.Designer.cs b/NeshinaDem3/NeshinaDem3/Add.Designer.cs new file mode 100644 index 0000000..41ab8cf --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Add.Designer.cs @@ -0,0 +1,261 @@ +namespace NeshinaDem3 +{ + partial class Add + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Add)); + this.txtName = new System.Windows.Forms.TextBox(); + this.cmbType = new System.Windows.Forms.ComboBox(); + this.txtPrice = new System.Windows.Forms.TextBox(); + this.txtQuantity = new System.Windows.Forms.TextBox(); + this.txtMinQuantity = new System.Windows.Forms.TextBox(); + this.txtStockQuantity = new System.Windows.Forms.TextBox(); + this.cmbUnit = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.btnSave = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // txtName + // + this.txtName.Location = new System.Drawing.Point(13, 85); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(318, 20); + this.txtName.TabIndex = 0; + // + // cmbType + // + this.cmbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbType.FormattingEnabled = true; + this.cmbType.Location = new System.Drawing.Point(13, 131); + this.cmbType.Name = "cmbType"; + this.cmbType.Size = new System.Drawing.Size(318, 21); + this.cmbType.TabIndex = 1; + // + // txtPrice + // + this.txtPrice.Location = new System.Drawing.Point(13, 178); + this.txtPrice.Name = "txtPrice"; + this.txtPrice.Size = new System.Drawing.Size(318, 20); + this.txtPrice.TabIndex = 2; + // + // txtQuantity + // + this.txtQuantity.Location = new System.Drawing.Point(13, 224); + this.txtQuantity.Name = "txtQuantity"; + this.txtQuantity.Size = new System.Drawing.Size(318, 20); + this.txtQuantity.TabIndex = 3; + // + // txtMinQuantity + // + this.txtMinQuantity.Location = new System.Drawing.Point(13, 276); + this.txtMinQuantity.Name = "txtMinQuantity"; + this.txtMinQuantity.Size = new System.Drawing.Size(318, 20); + this.txtMinQuantity.TabIndex = 4; + // + // txtStockQuantity + // + this.txtStockQuantity.Location = new System.Drawing.Point(13, 322); + this.txtStockQuantity.Name = "txtStockQuantity"; + this.txtStockQuantity.Size = new System.Drawing.Size(318, 20); + this.txtStockQuantity.TabIndex = 5; + // + // cmbUnit + // + this.cmbUnit.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbUnit.FormattingEnabled = true; + this.cmbUnit.Location = new System.Drawing.Point(13, 373); + this.cmbUnit.Name = "cmbUnit"; + this.cmbUnit.Size = new System.Drawing.Size(318, 21); + this.cmbUnit.TabIndex = 6; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Comic Sans MS", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.Location = new System.Drawing.Point(94, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(148, 40); + this.label1.TabIndex = 7; + this.label1.Text = "Добавить"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label2.Location = new System.Drawing.Point(10, 69); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(57, 15); + this.label2.TabIndex = 8; + this.label2.Text = "Название"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label3.Location = new System.Drawing.Point(10, 115); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(28, 15); + this.label3.TabIndex = 9; + this.label3.Text = "Тип"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label4.Location = new System.Drawing.Point(10, 162); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(34, 15); + this.label4.TabIndex = 10; + this.label4.Text = "Цена"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label5.Location = new System.Drawing.Point(10, 208); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(71, 15); + this.label5.TabIndex = 11; + this.label5.Text = "Количество"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label6.Location = new System.Drawing.Point(10, 260); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(147, 15); + this.label6.TabIndex = 12; + this.label6.Text = "Минимальное количество"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label7.Location = new System.Drawing.Point(10, 306); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(126, 15); + this.label7.TabIndex = 13; + this.label7.Text = "Количество на складе"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label8.Location = new System.Drawing.Point(10, 357); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(114, 15); + this.label8.TabIndex = 14; + this.label8.Text = "Единица измерения"; + // + // btnSave + // + this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(111)))), ((int)(((byte)(148))))); + this.btnSave.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnSave.ForeColor = System.Drawing.SystemColors.Control; + this.btnSave.Location = new System.Drawing.Point(83, 419); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(184, 64); + this.btnSave.TabIndex = 25; + this.btnSave.Text = "Сохранить изменения"; + this.btnSave.UseVisualStyleBackColor = false; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // button1 + // + this.button1.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button1.Location = new System.Drawing.Point(13, 461); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(54, 23); + this.button1.TabIndex = 26; + this.button1.Text = "Назад"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Add + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(207)))), ((int)(((byte)(206))))); + this.ClientSize = new System.Drawing.Size(343, 496); + this.Controls.Add(this.button1); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.cmbUnit); + this.Controls.Add(this.txtStockQuantity); + this.Controls.Add(this.txtMinQuantity); + this.Controls.Add(this.txtQuantity); + this.Controls.Add(this.txtPrice); + this.Controls.Add(this.cmbType); + this.Controls.Add(this.txtName); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "Add"; + this.Text = "Add"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox txtName; + private System.Windows.Forms.ComboBox cmbType; + private System.Windows.Forms.TextBox txtPrice; + private System.Windows.Forms.TextBox txtQuantity; + private System.Windows.Forms.TextBox txtMinQuantity; + private System.Windows.Forms.TextBox txtStockQuantity; + private System.Windows.Forms.ComboBox cmbUnit; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/Add.cs b/NeshinaDem3/NeshinaDem3/Add.cs new file mode 100644 index 0000000..6dba593 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Add.cs @@ -0,0 +1,171 @@ +using MySql.Data.MySqlClient; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace NeshinaDem3 +{ + public partial class Add : Form + { + public Add() + { + InitializeComponent(); + LoadTypes(); + LoadUnits(); + } + + private void btnSave_Click(object sender, EventArgs e) //ДОБАВЛЕНИЕ + { + if (string.IsNullOrWhiteSpace(txtName.Text)) + { + MessageBox.Show("Введите название материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtName.Focus(); + return; + } + + if (cmbType.SelectedItem == null) + { + MessageBox.Show("Выберите тип материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + cmbType.Focus(); + return; + } + + if (!decimal.TryParse(txtPrice.Text, out decimal price) || price < 0) + { + MessageBox.Show("Введите корректную цену (неотрицательное число).", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtPrice.Focus(); + return; + } + + if (!int.TryParse(txtQuantity.Text, out int quantity) || quantity < 0) + { + MessageBox.Show("Введите корректное количество (неотрицательное целое число).", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtQuantity.Focus(); + return; + } + + if (!int.TryParse(txtMinQuantity.Text, out int minQty) || minQty < 0) + { + MessageBox.Show("Введите корректное минимальное количество.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtMinQuantity.Focus(); + return; + } + + if (!int.TryParse(txtStockQuantity.Text, out int stockQty) || stockQty < 0) + { + MessageBox.Show("Введите корректное количество на складе.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtStockQuantity.Focus(); + return; + } + + if (cmbUnit.SelectedItem == null) + { + MessageBox.Show("Выберите единицу измерения.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + cmbUnit.Focus(); + return; + } + + var typeItem = (ComboItem)cmbType.SelectedItem; + var unitItem = (ComboItem)cmbUnit.SelectedItem; + //ЗАПРОС + string insertQuery = @" + INSERT INTO Materials (Name, Type, Price, Quantity, MinQuantity, QuantityPack, Unit) + VALUES (@name, @type, @price, @quantity, @minQty, @stockQty, @unit)"; + + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + using (var cmd = new MySqlCommand(insertQuery, conn)) + { + cmd.Parameters.AddWithValue("@name", txtName.Text.Trim()); + cmd.Parameters.AddWithValue("@type", typeItem.Id); + cmd.Parameters.AddWithValue("@price", price); + cmd.Parameters.AddWithValue("@quantity", quantity); + cmd.Parameters.AddWithValue("@minQty", minQty); + cmd.Parameters.AddWithValue("@stockQty", stockQty); + cmd.Parameters.AddWithValue("@unit", unitItem.Id); + + try + { + cmd.ExecuteNonQuery(); + MessageBox.Show("Материал успешно добавлен!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + this.DialogResult = DialogResult.OK; + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show($"Ошибка при добавлении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void LoadTypes() //ЗАГРУЗКА ТИПОВ МАТЕРИАЛОВ + { + string query = "SELECT idTypeMaterial, Name FROM TypeMaterial"; + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + using (var cmd = new MySqlCommand(query, conn)) + { + using (var reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + cmbType.Items.Add(new ComboItem + { + Id = reader.GetInt32("idTypeMaterial"), + Name = reader.GetString("Name") + }); + } + } + } + } + + private void LoadUnits() //ЗАГРУЗКА ЕДИНИЦ + { + string query = "SELECT idUnit, Name FROM Unit"; + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + using (var cmd = new MySqlCommand(query, conn)) + { + using (var reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + cmbUnit.Items.Add(new ComboItem + { + Id = reader.GetInt32("idUnit"), + Name = reader.GetString("Name") + }); + } + } + } + } + + public class ComboItem //НУЖНО ПРОСТО + { + public int Id { get; set; } + public string Name { get; set; } + + public override string ToString() + { + return Name; + } + } + + private void button1_Click(object sender, EventArgs e) + { + this.Hide(); + } + } +} diff --git a/NeshinaDem3/NeshinaDem3/Add.resx b/NeshinaDem3/NeshinaDem3/Add.resx new file mode 100644 index 0000000..0a68749 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Add.resx @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/AddInf.Designer.cs b/NeshinaDem3/NeshinaDem3/AddInf.Designer.cs new file mode 100644 index 0000000..f81bdd0 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/AddInf.Designer.cs @@ -0,0 +1,210 @@ +namespace NeshinaDem3 +{ + partial class AddInf + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddInf)); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.txtName = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.txtCoefficient = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.btnSave = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Comic Sans MS", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.Location = new System.Drawing.Point(91, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(148, 40); + this.label1.TabIndex = 8; + this.label1.Text = "Добавить"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(9, 71); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(0, 13); + this.label2.TabIndex = 9; + this.label2.Click += new System.EventHandler(this.label2_Click); + // + // txtName + // + this.txtName.Location = new System.Drawing.Point(12, 87); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(318, 20); + this.txtName.TabIndex = 10; + this.txtName.TextChanged += new System.EventHandler(this.txtName_TextChanged); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(9, 121); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(0, 13); + this.label3.TabIndex = 11; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(9, 174); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(0, 13); + this.label4.TabIndex = 13; + // + // txtCoefficient + // + this.txtCoefficient.Location = new System.Drawing.Point(12, 139); + this.txtCoefficient.Name = "txtCoefficient"; + this.txtCoefficient.Size = new System.Drawing.Size(318, 20); + this.txtCoefficient.TabIndex = 14; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(9, 224); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(0, 13); + this.label5.TabIndex = 15; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(9, 273); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(0, 13); + this.label6.TabIndex = 17; + this.label6.Click += new System.EventHandler(this.label6_Click); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(9, 322); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(0, 13); + this.label7.TabIndex = 19; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label8.Location = new System.Drawing.Point(12, 71); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(57, 15); + this.label8.TabIndex = 20; + this.label8.Text = "Название"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label9.Location = new System.Drawing.Point(12, 121); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(83, 15); + this.label9.TabIndex = 21; + this.label9.Text = "Коэффициент"; + // + // btnSave + // + this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(111)))), ((int)(((byte)(148))))); + this.btnSave.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnSave.ForeColor = System.Drawing.SystemColors.ButtonFace; + this.btnSave.Location = new System.Drawing.Point(71, 192); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(173, 23); + this.btnSave.TabIndex = 22; + this.btnSave.Text = "Добавить"; + this.btnSave.UseVisualStyleBackColor = false; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // btnCancel + // + this.btnCancel.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnCancel.Location = new System.Drawing.Point(12, 219); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(67, 23); + this.btnCancel.TabIndex = 23; + this.btnCancel.Text = "Назад"; + this.btnCancel.UseVisualStyleBackColor = true; + // + // AddInf + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(207)))), ((int)(((byte)(206))))); + this.ClientSize = new System.Drawing.Size(336, 251); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.label9); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.txtCoefficient); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.txtName); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "AddInf"; + this.Text = "AddInf"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtName; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox txtCoefficient; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.Button btnCancel; + } +} \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/AddInf.cs b/NeshinaDem3/NeshinaDem3/AddInf.cs new file mode 100644 index 0000000..dceefb1 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/AddInf.cs @@ -0,0 +1,85 @@ +using MySql.Data.MySqlClient; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace NeshinaDem3 +{ + public partial class AddInf : Form + { + public AddInf() + { + InitializeComponent(); + } + + + private void label2_Click(object sender, EventArgs e) + { + + } + + private void txtName_TextChanged(object sender, EventArgs e) + { + + } + + private void label6_Click(object sender, EventArgs e) + { + + } + + private void btnSave_Click(object sender, EventArgs e) //СОХРАНИТЬ ПО КНОПКЕ + { + if (string.IsNullOrWhiteSpace(txtName.Text)) + { + MessageBox.Show("Поле 'Название' обязательно для заполнения.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + if (!double.TryParse(txtCoefficient.Text, out double coefficient) || coefficient < 0) + { + MessageBox.Show("Поле 'Коэффициент' должно быть числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + string insertQuery = @" + INSERT INTO TypeProduction (Name, Coefficient) + VALUES (@name, @coefficient)"; + + using (var cmd = new MySqlCommand(insertQuery, conn)) + { + cmd.Parameters.AddWithValue("@name", txtName.Text.Trim()); + cmd.Parameters.AddWithValue("@coefficient", coefficient); + + try + { + int rowsAffected = cmd.ExecuteNonQuery(); + if (rowsAffected > 0) + { + MessageBox.Show("Запись успешно добавлена!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + this.DialogResult = DialogResult.OK; + this.Close(); + } + else + { + MessageBox.Show("Не удалось добавить запись.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + catch (Exception ex) + { + MessageBox.Show($"Ошибка при добавлении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + } +} diff --git a/NeshinaDem3/NeshinaDem3/AddInf.resx b/NeshinaDem3/NeshinaDem3/AddInf.resx new file mode 100644 index 0000000..0a68749 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/AddInf.resx @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAAAAAAAEAIACRMQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAMVhJ + REFUeNrtnVuMJctVpr8Vkbl3Xfvefe4+Fx8b25jBeGyPh2EwYwFjMTAIBBohXkZIPPAyEvYD0gjxgBAS + D4DECw9IiBeLBzNjGAZhDMMMGGawQTZX+xzc5+o+fc7pe1dX1d47MyNiHiJ31r5k7trVXV1ZFZG/dE5X + Zd0yVqz1x4q1VqwQHhI+85Uv1z3eAN4JvA/4VuA9wLPAM8ApOnSIB1vAq8ArwIvAXwP/ALwBbM9+849+ + 2wcfykvIERj+OvCvgH8LfAfwzcB5oNfpQIcOFQbAjZIMPg/8KfA1YPdhEsGhEUCN4T8P/BDwCeAj+NW/ + Q4cOy+EW8LfA54DPApcfBhE8MAHMGL4CPgT8Z+DfA89189ihwwPjckkCvwN86TCJ4L4JoGbFfw74L8CP + Axe6OevQ4dBxDfgN4DeBlw+DCO6LAGaMfxP4MeCn8UG9Dh06PFy8APwq8NvAvQchgQMTwIzxfxD4OeD7 + Ad3NS4cORwYD/D7wX/HBwvsigQMRwITxC97V/3l8Gq9Dhw7t4EXgF4BPA+6gJLA0AUwY/ybwSeBT5ccd + OnRoF/eAXwZ+pfx4aRJYigAmjH8D+CXgp3gINQQdOnS4bzjg14GfoSwkWoYE9jXizvg7dAiXBKQz/g4d + 4iUBtYTxb3bG36HDiYGUtvpLpe02nctpJoCZaP8nO+Pv0OFEksAnx3bbRAJqgfGDT/V9qjP+Dh1OJAl8 + qrRhmkhALfgF7wV+li7V16HDScUmvlanMQgwRQAz+/5fBL6pk2GHDicaz+KrdWvjAU0ewI8BP9DJrkOH + IPD9pU3PodrbTzDDc8Af0B3s6dAhJLwA/AfKU4Tj1GCdB/ATnfF36BAc3oM/rj9l8wqmVv+PAD/ZyapD + hyDx4/iGPZXNz3oAPwJc6uTUoUOQuIDv1lVBJlb/54E/LP/t0KFDmHgZ367vMkx7AD/UGX+HDsHjudLW + mSSANXz33g4dOoSPT+Db9VcE8F7gA51cOnSIAh/B39VREcDHgXOdXDp0iAIb+It6UOUn39vJpEOHqPAd + wIYCnqCr+e/QITZ8M/BOBXwL3UUeHTrEhvPA+xLgw8DqsXs9AZltQyDjwwvj5276627uCTjnn7lDfC+R + uscTJyuk+oPOgat9sSX+lMiMHNzisT6sMe/7nuP/1TyfkIdz4NwBX6oc/7TM3TGb79lP/FiZfWN3RBOy + HHrAtyYcA/dfRMaW4oVnHEVekI1yRqMcay1KhEQrisJgjMVZizW2mmjrHCYvyPPCPy+FnucFo2FGluUH + V746qfVS1tZXSBJd/W1RQq/fI00TEFBaI0pQSuj3e/RWe/RX+zhZrJeCV3ZnLUVWMNgdYnPjx1yYalzG + GPIsp8jN3O8wxjIaZYyGGcbahzpvzoFSwtr6Cisr/SmaUiKsrPXRWqO0IuklpL2UjTPr6DTZ9920UrjC + MNgZMhpkmKLAOoct/Lw758iznGyUT8k0zwp2dwe1sjkolPbz1++n6CSp5khpRa+XohNdkYOIoLRCtJCU + 85+X85Ukmn4/Je2lJKlGlEKU4Eq9bRHvSWj5Yg8RId8Z8cLfXebmjTve4I0hzwqyLCfLCpzzhm6MIS8M + 1toaMnW1K4Jz4+eHI2i/GjG34snkklB6KiLC6uoKGxurnL94hg9/57fS31itJaKxHP7+S1/lxo075KOc + we6I3cGwlIFbuMJMWqWDQyG7g8yhNHoA/rnWivX1Vc6eO8X7P/Aunnr3k5iGd1Qi3H7zFn/9l3/Pvbs7 + bG/vMhzlc+OuG6Ofb3d4DsCEgc+SdY0bgIgfa5okKK0qMuuVBJCmCVprVlf7PP7kJZ775qdxWrVlfs8m + wDPtEgBcfe0t/vLPv+KZfUJx5nWq7tlSVju/nXgA1LlzrsHv3Nra5u7de7z55g2efPoxnn3/07XGKwKv + ff0KX/qrf8Rah1Su5/2NWeRou7jVG+OeTKy13L69xc2bd7hx/TY/eO4UGxdONZLh5a+9yte++gpa6wlZ + LK9U8pDH56b/NwXvheWNOjP+VV9/8TXOXjzNuSfOY20rnsAzCXCqTQLAwZ1bWzjnUFrhnCuF4epX+RMD + B/htgFIKYyy3bt7hOZ6pHYc4uPb2Tax16HJF8LKwJ2zctRaJUt5L0FqzvT3g5tu32bxwqnZkRVawdXcH + rRVKCc45jDEnXAbzssjygsHOkMmY0RHjVNK6mTjHnTv3KoZ95NHzvOPZx0+8ygNYY7j8wmtsbe0Afn/a + NDBnHdnEquGc48LFszz7/BOAnFh5CFAUBZdfeJ1793YQEayx3L61xbPj2M/MD9jCsH1vx4/bOc6dP81z + 73rqyL2ahyEMWxguv/g6d+9uAzAcjFoNDrZOADgYDfMqQvzU04/yrz/+QYrjFTG9L8V3WcHNt29Xk20K + 4+MZNSjKYOVYx611PPb4BT768X+Jce5Et2XOhxk3377N1ta2JwBn2dkZ1Cq+4Alid3eEiJfD+Ytn+Oi/ + +yDupPemFjDDnNs37nLnzj1EhN2d4ZHGa44hATictVSJAAfGOqyzrb/aAw9tYl8nAnmW+0j+bNBHoMgN + g92xO7gHa23bkeIHV/o5912wC1x6YwxZPrGHdmCdxQbgFubGVAbvrGM0HCEirZGAalsg1tiA9nf7TH5e + YIytsRHBGctwwgMIC/ODMoWZIsgpuBnnIBShyPQHDsdwkLXq3am2BWIKU+Zsw797pBgrfc1Q86JgNMqC + l8HYnovc1JIhgLOWmXxfkHJwDoajrNUtQMsegFDkBUVRxKD2vpjHNim9K4tj4riEKc8LTGEaDCNMg6+D + mShmi44ABMjK6r0wXd+Zya7281Kv9NHovZTbIVPLd9a6aRIIWTdaJrvWYwDivGscvsrvKXZNfRPOnPyg + 50GEkecFRWFqC7T8FmDyQaBikL3KxTgJQECca3QFQ1N6Z2194Mt5V9A5F4UnJPjYj2pY2t2sVxywTKy1 + bVUBtk8AAhTGUhh78os8loBzrvFMgilMRFsAn+prmnGfAp7YKgUsF2t9GjxKAvCKYBsDYwGY/AwBNCtz + URhcsJpeXy/fVOsxK6eQFwdrIvYAxqWesUR9RfzR0LrR+irBUOVQUwewyPWdO3gTrlzs+Fh7SxzXugdw + mEc3j7viW+tQDatZnhehprup8wDmIv0LpRi2B9Bm+rd1AnA2nvSXMcYf9a35WlGYYAte5pVbcAt6Giit + yh8ZH58NUy4ipSdkbGsU1zIBuOZy0BAJoHHVcxRFETAPuqVoYc8wZHrVDzkLYGxjRWQEBEAQh34e0A5w + LnQP4GDymPcXAt4C2HaD4O1vAcyC0HhgaApmiwjOuoDtXw7EALVt3YIlABexB+AIOAXYrOBzkyCCavFI + 6MOXQn3x07LDDToN2HIWrP0tQNBBQDmAHGzAya5maqj7YgzVkJUErKWftteW4xgQQLiKP6/YzQ0+x30Q + Y6OAxu+XSZoIeAtQng2RGOsAHKFvAWYJoNkYbNCnAd2BHscDwTlirgSkuuwiBsVf5AG4iDyh/exf5i6E + CndP0HYl7LHYAsTi+o77/LsDGEOUmGGAYLVD6PoBhB0EXNYDCPs8xERr1OnndrkCoZCDgo6YPYCIDgKN + CaCOGECCTnXJDBWMG2HMNf6YsPgpeQSsIi33A+myAEel+nvjdbV7Wq1UwCvdgsBnrf3PbgFCXyQc0R4G + shGdBQAoGlqg++vAIkqALxqt1NhHqKbvXNweQFxbgINofbyQiEQzvhErWgIIG3VBwBgNvenUjzQ/nzoM + GHRb4Fb/eusEoFQkHORAlDQqc4y8IAufxyOQeD0AEZJEBzzV0/FvJWqBBxCywi9Y6Zd4Hn4QsD0cAw9A + Atb9+jqAOoWWkMVQIxWRxTGRaGThiPhegLHmRwKptH7WIEpKiIQIx4NdPh7SBUjDJYCYhK3qld43hTDx + BQiXHG9n/gETQNgBn/mzAI3bXhWfmi8bDgk6BtDmWeBjQQDRrHrOewBIbeZHKRVFMHTu+TK23cUAwyWA + sP27+SBgbQcc4gqGjge9LPfHcU4iUgIIu8hjZgvQEANAQGt9DNThiNW8wbBnA6KhV4u2yW+dB/BQUZMG + bBBCokOuhziYAc9WTIa/TYw4BhBNJSC+EKiJ7nWiI0qJusbt0NgcYokNScsFIK1fDx5T6stvAeq/liQ6 + WPuvawiilfKEWG8V03coBqwiIlLKoZ1tzvGoBAx3ems+a/YAQo2HSA0VaK0a535uYQg4BKBEWrWB9oOA + QTfCmB3rAg9A66gqXrTWzbUPMxmCUOsAnFsQGI6CACR0D2BmuAuK33WiAt4OzY8rSTSmqSMQsbQEcyhR + cXsAPggYT8CnycaV1lHIAPzKl6YJWqt625aZLUDA6qG0orC2tfNAx2ALEIkH4BYEPMUrgohEckGwI00T + kkQzu7z77njxNE7RSrXq4LRMABLNFqAqbqlT7HIvGFMMwHsAmvp7Q100BJAkuiTCKAnABwGj6QewIM7v + i4RCFcTMKu8gSROUnlc/AbLC1DwNUCrOZ3+SRLfmBRyLfgCxVHovLH5RUnYGjuPki05UYxHYbBowZF9A + J8oXgcVZB+Aaz8gHSQcLLgdNkoReL41CDn7e1cJDgnHEhhyJ1o1boQgIwCt+kiTTwa8Q5r5utW/wdhwO + pYWVlV5NEPBkC8OPeE4QJGmy4HJQXwk4LYsQYiQy5wXqRKOT9swwaVMczvmKsF6aMBgMASjygmKQcfLv + CxLMKMcYWxqA2+uB5+YYAJ0krK72mbwlxhSGYnjSZSEUwxxT2GpcSoT19RVvDM7VEkDlFQoY4+XgQlgY + clveiC0453z2p8VMQLsEAKhUs7LS485dXxPw0te/wZ1bW0FsC4rCcP3aLZQSjHELD/ukvYT+Sr+yB6WE + 1159k53//mcnXhZFYbh+43aV8dFasb6xVnvM1+G8z6DGZKF4843r/NFn/zyAilHBGMO1a14W1jiSJGnV + s2mVAHCOfj8l7aeMT4htb+9y797OiTf+8YRPpjkXzbMoQae6MgoRYWdnwPb2blBycM4hWrN5eqP5uycO + A4nA7u6IV1+9GohOTJyAFeHMmQ1EFDgbIQEAOk04c/YUb1y55i8KdfMXJYoc/NSgt6ODO1b3+WMNv8kx + vgrQGLvwHkQHPPbERV7659fJswJjLc6O+wXPy8PvJ/c3vL3vf4CRuH0lVivzvZ9zWOv8CUCtuXDhDJtn + N5rFLN49NsbgnNSO6QH56D5/ixxIlq5GeM5RNoBV9HsJlx4777c2Le0BWicAtOKj3/UBnnnnE7z15g1G + www3URpZ5AWD3SHDwWjpi0SVVqRpQtqQa55SpbI8d3LfuVeyO/PvxNenFElmzvlNfL2aeOt44h2PNL6L + dY7n3/8slx47z91b99i6u83uzoDRKC/3jA6cd6ezLCcb+f9m3WjrLHlekOfGk8dhKZY0TZ+Xdb+X0l/p + kaZJdZw36flqP6U1q6t91jdWOXV6gzMXTrO6uVZ/O7DzxTHPf9PTnDl/mtkb1WeNqiKdaqjlx85V3zv+ + dlfexe2YuJSzvKLe7cOARWHI84KiMLgl9VAnmtXVni/zHse7+imiFBubazz+5EUeeepSqx2P5DNf+XLr + EabK4Mo3kQm9dcZWCm+XFJRSvsOOTvS+lYZ7xlxG6KWMXEvN9+yxxoSxL7kSTBj6Uu/DRIqmUn6HM46i + KChyQ14Uc6tzolS1euLwZPogNzALiChESa2RKCVorXE4kqq8t3TjtdojYJGpsS9SeoG9fgAy3ThUZiTq + 6oTM9I27ru7vTlzKuYwBGmN9UNaYpcu1tVb0emmlg6IUSbLXFMbSfruz9j0A9rkiWQvpWo/eWv9gv3Nq + yTjg++zz+dQTd/iyqJSuQR5ap+iVlJVlHdkH9Zrdst/m5kRj9pbfA/25+/m5xjFP+e3zMZllxKMEevch + yFmZmAcZU6gEsIxGdPfDPYBMOtF1OtiA7magDh0iRkcAHTpEjOO5BZD7vy/gsBuN2vvcrz2MCPyyMlEy + HbCT6Rc70N+c/RE5gEzq0mBHJYO5Hz/kQ2fHQi9CIgCtFDgwRUGeFeAc1kzUBViLMZY8yykKU0VxR6OM + 4TDzUe9SQayxZHnuo9/3M+vOpxL7vdTnpMtcfJpqVlb69HoJ47rutJeQpD7VNU5liFL+ZJ8S0l6K0gpb + ppuWUtQJAjT5njyMKWsDrI9I51lBNswYDEbkeVFW0QnOWkZZPp02dQ5nli8qFpGyR8FEJ99SJqJ8RF9E + 6PVSVlf79Po90l7iT7YpqQ776ERXMqjSb0sYgUjZRt2BNX6szjpfK2KtH0v5O8aysNYX0xhjGY0yRqOs + fCZoEYqiIMsKPw9ycJ1AhDTR9PspZqpGw6HLVGevnyL4DEivl6LTce9Df9pTtCJJNTpNcM7dN5EEQwAi + YEcFr1y+yrW3bjLYGbK9s8tgZ8hwlGPHFVKlwVvrcBPP7FgpKj33n1vrHvi9RMQTk4zLUss7/KoDHVKd + Zpw85JFozepKn7X1FdY2VtnYXOOxJy/x6NOPYBconhIh2xlx+/odbl67zc7OgN3tATvbA4aDEYNRVhbH + uJII9sZqJ6LmpiyoOmzdGhulKolh7G2pssPvnmy8oays9FhbW2F9Y42V9T6nTq1z4ZFznDp/Ct1PFr9f + brn81Ze5cf0Oo2HG7s6A3d0hw2HmU3F2OrW3VzTlnQ5bFVKV32MtttSfB5OBVGOdeo5fNFSpB4In0MlT + j700YWN9jc3T62yeWudd73uG05fOUNh2qgCPBQEoES5/9TX+1+e/SFGYJavcZEop6yZJ68Nx+GxZPAI+ + b4uZ7d9Wr1C33T0m89GnT6/zg//pu9m8eLrWExARRjtD/vj3/oI3r14nzwusdVNHiOfHKrVVbbM36xw2 + JmUC4ApTK4dxkc74WxOtSNKE973/Ob79uz+Ea6jR0Erx+ktX+JM/+iJ5nk+MZZFe1FVLPkS9qDFaY/fX + jZs3tyqZvHz5Ct/3wx9j9exGa/UArQcBnYUrr79FUZiyV7yaWlXr/6P6rw1M/v2mdxyvElr7/wa7I7Zu + 32s0TBG4e+MuV9+4Rp4XpbLuyaNeJsfjhGyTHGZl4IDRKOfly1fY2dptlgVw7e2b5HmB1rqUwX56Qet6 + sYxuTMrk2rVbfOOVN6cvQTlitO4BOGMZDrNq0twhuGnHCaq896Awhq072wt6YAg3rt0uvSAJThZjOSgl + DAYjBjsD1s9t1G4DrHWMBtmejgSnE1I2gHVce/Mm72lxbK0TQDEOcpUTffbsKS49ej6IpiC2sLxx5W12 + d/05ht3dYfM3O8ftW1v+0Iz2ynH69AaPPH7hxN8ZaAvD1SvX2N0dIiJYa7l3d4cLT16s/X5TFAwHI18F + 7FxZN38piCPi1liuXrnGzs4Q52B3MLy/oGQIBCAijIYjRsOsVAzHc88/ybd/z4cwJ53xBdyo4A9+53/z + 2mtvloptGufZWUc2yvcUxTqeevoxvuv7Poo5wRVoAuTDnM/9tz9jZ+dNRARTWO7evlffHAVwZkyWXice + e/wi3/MfvwN30glAwIxyPv/ZL/Dyy1d8ALzwWQ10O7vx1j0AW6ZsJlgB6zj5HYHcfHvrojC1wSOAPNtb + 9SZEgZNjVTp+cDGIr+ufHJd1lu2dAVI3rtJD2PMA/DMnAegEzEX8C2MwhV14avVhot3bgQUwjrwwhN4U + XwSKrMAaV/tFUxTsbg+ClMP8OULBlLUc89/rPaVhlgetD+PR2sL4GpaWpr31i0FyYybSf2Ejy/KqYGlW + 6YvcsDvjAYSk6LMoJgp3ZuGsK3sgjB+Ee5rJGDs91rgIwG8B7EQ7pKbLc0IwAk8AtpbtTdlwIgaIQJ7l + 3guoI4AlqyZDkIMpK1zbuh2j/cNAzj3M4/XHCr6EuX6EzrradmiBqj6jUe4Jr2a41oSw218OvpIzZg/A + NlWQBUgAeYFucG9s4Ut8w/R+Zq5IE3zg19Uf7rHGwIRehHxxzLiUPVoCqGtXFeJ8i0BeGF/eW7cnLkJ2 + /+fHm2dF4963KMlwrwFYuP6AP8/R3vhavxrMs99859QQYUxzGjAb5Q/Wu+94q/k8ARRFbUAUfEB0MgYQ + 8u2RbVc5HgMPYN4gQvX4THkirZYAsjzgwNd8a2+zoFlpURRT26GQA4IO16qHo1oevWc/16wqgc124/hG + o5AJ4GAoctP6Ofmj1YuIPQBrp/nPEXTad2HxS7hKX9//v8kDyEsPoJJPwEHAmZPV8RGAc7btVzhSM2jq + BWCNDTgGIA1zX+8SFTNVgkF7Ri2PrVUCcBDUMc+lJrthuEVhAo52z6cBXdmibI4qZL7vYMgeQNsk0KUB + j9wUGgJfB7hx5uShofbB2jlCFARxUn+bT4cACaDhfrhwGaD+SmyfEotL0Zu8v71LYhfyRzgq0RFAHGhq + 1ClI2IHPemHUpoDHBNDdZhQLAcwZA2EzfufOVvPe7AE4lui7GgzaLHQ6Jh7A9G2vUQZ9Ay92qTX0hgzQ + rE4EnQaEiAuBiC/AE2NASxo0vyntOUsMIUusbWo7BseBA5/hOU1uKIoJWgZSP+0NY/aXv8RCAbETwFLq + EhAHuIXsEOqoG2RxHxcVBog2tzitE8Ds/XMRzHe9gbiQBy61Y15+7xtwfMQ5VnppvAQwdytKwO5wrI5s + o6EvKZBwg4BCUfYElDibgpYewLRMOgSn5g+IQJlTxJeAFy12xW6fAGJoB3xYhtAJJEC4uM8C1MmjQ3Aq + XmPxsnwBTEcUERFA4JMdoy5LDRUcRBjBl060qBSdB3DUEx3Rlmd+SmVGFMvJIkKRRUwAEvaE1yt94Hnu + anzT7K6WnOjwqycjrgOon/CQCWCRDkTUEkwO4AF0QYC4CCBoNCh9TNmQSvlUsyxikkbU/QDisn0hwh1A + 7QAFQZRqlNPkj3QbgI4AQmKBCAddvwVQDQTQ5Bl05t8RQAD2Lx0x7GPoXkZyTEzkCOy/SwPGYv3Nx2KC + H/jkeF25HdKqViBKTW+VQs4CePuP+TRgROEeachxCoLWmlDXuiaCa0oDaqWn9CLkAGljXCgWAoguw9Mw + 3kSrYHcB0vRQyVx4oDoVHYle+B6YQluhTtX24GNMf9UhTZPo8t11c++cwzgXTyCw5ZTnMTgNuNyzEKBU + /RbAOocomT8aHY6Wz5p5uR2q/+4kmd4ChBoDcKWuR90RqKlfXIjQWjfue9M0Wbo0NgQkiW5MA6aJjsMz + HAdDo24JVjf4QBlgrPR1w+v3ewErvauVhdaqQU7JlCxClouItEr87bcEUzJzSjzM+I9zXuldQ81/r59G + swVwDnq9tJHnkzSZkkXIaVIlQuFsa+df2iWAGmsPOSOeJMnUrbeTSHtpRAFRR7+fohNda9xp6rcAMVyh + oJSiMKa9v38cBBAHCTh6vcS7vTUDTNIkGqUH6PV7JGlSL4sqBhC+MJRSZQ1IrAQg8SR9017aONkqUQGL + YdqQnYN0TIY10ImeSpaEnB5VWjXKIQICKMtB5x+HZwKujPQ3TLYoVZJhiKve/IQmiW6UhdLTWYCQ04BJ + okmSmD2AmlSQhJoFSHVjgUuaavr9XpgDryE1tUDp5y6LCTg54gkgaS3QmbQtA5k5+BHK9eCC4GaCenq8 + ss2saA6HTjRrayvcvn1v3v09wYwoNZFeEVhfW/Ef1K3uStBzRHmy5TCWxXSg18+7TnRrjl/LBOB8Plgp + jPE3whaFYbg7wjRcHX1yJhu0BWv3xqESXT/PDpJewvr6KmV9GADGWIa7Q8wJ3hYI4HKLnbgJWGvNqdMb + ta792C1eWemxtbUDgDWW0WCEDWB7JMZNjTspCaCtkbVKAM756Hev32OU5SglvPT117l1424Q5cDWOq5d + u42IQsSxvr7SPBFJQn+1Xy2ISgmvvXKV7c/unPj0oLWW69dvV9s9rRWbpzcalUKUsLa2givPBLz5xnX+ + +He/UBHKSdeJsSyMsT7gqSRSAsCR9lPW11fY2tpBKeHevV22tnZPvvWzZ8giftVb31hr3uspYfPUWkV8 + IsLOzoDt7UEwcvD27UjThP5av1HpdaJZW1+r5LC7O+K1V98MSifGYztzZtPHPFyMMQAHK2srbJ7e4OrV + G1DukUKrh3HOE8DGqbXGeXY4Lj16Hq011tqqRjw0WVjrOHv2FOubzWSoE01/tVe5ym0fmHmYRPDI4xea + YyHBEwAgieJ9738nV69cY3d3iHOulEWdQCbrwyeeiixOFR3ikcvafWvj+1IV92xsrLK2ubaQJC49cZF3 + vfsdvPLyG+R54f+WmyyFrRt/+yTh5oKaTCn0+OSfiLC+vsKzzz9JupJimuZMhIuXztHrpeXFmYtSgfU6 + 0TQXD2f88/PfpBOTsnjnO5/kyWcebawOPRL7+8xXvtx6ZEUDt96+w91bW2zf3eHOnXvs7Az2Jt86THmL + qjcKR14YirzAGEthjM8rS11W01EUhnz8s/crKBGSRJHovYMqWivSNCFJfSBnvMcVEZRWrK+tsLG5xubp + DS4+eo5zj55bGNBTIpis4Pa1O2xv7XDvzjZbWzsMdocMRzlFlmMK/xussWRZTp4X5IWZCjbuR1j3O/7a + udOKNEn29veJotdL6fVTkjRhdbXP+toqm6fX2TizwcbmGmcunkYSvfjdCsu1K9e5feMuW3e32dkeMBxl + 1c/Y8lrtYmJerbXkWYGxds72rPV6UhhzqBF3pcSn8sqOTkoJaZqQ9hJf0VjKRSlFv5+ysbnG6TObbJxe + 5/EnL5Gs9/37xkwAY0EKgrUWZ910usw5TGEpylXROciynCzLScT/DKJqBSkCWoQsL3DW4crfP6t7Ir4Y + x+eg6w0gTfwhlaLMWCSJpt9PSXspSbo32eO21qL86j/+nZOR8P1kAVK9q4h4EszyihSLwpBnOc468pII + J5cfZyymMOR54X/mPmdZREhT7UuVy8IdgbKfn1Sn+kw5tjTV9Ff69Fd6qHSioEeklIdbmpSUUuAc1loU + M16edRhjKPI9AjDGMhplFPl8bX2qvX7kuanks+dtLq8H86St6PUSzPg9taLf79EvCVCU8r9G+S2dY5z6 + FuwBZPGw0PoWYI+hHZWWjqOi1arjV9TeSlJ9vlrNWJlz975ygxKP1Xb/OXX7ft3VtLGafuYm/xUqV/6B + ZKEFvdpDlwNYGY9E9hmZe/ASE5maixqJuLo/62bk6XD2YG9SeTUi2Nl3UIJKFL2VdOI9hfUFg5ADdBo+ + 2JvOy2BSJ9ysXjh3bK6/OjYEsKScJ8VbPdtPxRft0U8c3IwEKj1zD/dPHtdyXDdjdAu+L/zuywdH1xa8 + Q4eOADp06BAjjt8WYHwg7oiPgy50o/fxHGXqAEPNb3IPJo/JPb5zjr3tv+z7s4csoH2+ZW/fuycTd9+7 + h/HvqH7vsuN+GOM/JDm52cBARwBl1NxBkecUhUVN5u2do8gN9mF0TamKbWSv2GRcfDN+B5F6ZRo/d458 + nFqaCDSNlXfyd2mtFp6CG8tCpEx9Gp/5qNJaAonWSJkVMYWpgnxFXjAaZuR5URFFlhVkeT6dIbgPAkq0 + 9qm9NKkMMO0n9Pu96iiriKDL485OqNJtIr6wJ0nK8/9lcme/6LctTJW50VqhSjIxhcWUYzTGMhyMyLJ8 + hmR86nc0kTV5+Drsy7l7aVLKxKcEV1Z69Po9lBLf/KOXYHEopej100oe0RKACGzd3OK1f/4G19+6xb3t + 3UqJxwZmjPXVcYf/1yujrQx1MmMgk9/D/FHF0lsZpx+V+EkWJdXHSklZn+B4/j1P8+4PPN9Y+GELy9vf + uMad21vkg4x7Wztsbe2wOxhVEXFdFhZZ6/Pg49XRWp8Tt6WxO/wzU6a7HgRKxBthdXTbfz59vNk/E60Q + kUomidasr69w6tQGG6fW6K/1uXDpHGcunWnugegcL37lMi989RUKY/aaZk6MGxzW+sXBzCwOjpJArVk6 + 9XoYUEqhy/kfLx7VeX/xKUOdaFCwub7Gk08/yjPveQdrp9biJQBnHH/zhb/na//4ks+Z1jDiUVW6HSxZ + sFedJ0vklIwxnDl/mnc3EqHwxstX+T+f+yI7u4NKBrOc49x+MplNDz44rHPYwuCcqRn//LvNvp+bSNko + UZw+u8knfvhjnL10Zp6cBLJBzitfv8Kbb1zzXZTdfrogdbx+5LDWL1TTejRfISjANW7xyktX2N7e5UPf + 9YHGFunBE0CR5Wzf2/GrppIFpbbHDbLU+6myoETc4qu/nHNcee0ttnd2vRdR1g84V09KzX9zNj3YDqaM + lrIYqpTZva0ddrd2OHvpTI1UhSzLGQyGpRw8wY5XcucWjHni0+Oc8Bt7CNZabt282+rLtkoAIkI2ysmz + AspKr9OnN7hw8QwhdAUxxvD2WzcZDrNaPZ2lkzzPJ4ofHZub61y8dPbEH4QxheGtt24yHGV+1+Qsd25u + 8fg7H6/9/iIvGGV5JYe19VUeffR8EAeCjLG8/dYNrxPObxvavBegdQ9gXNI7Zvnn3vUUH/7YB1qtjz4U + CLjc8Cf/4y957dWrlTI3kYAtLPkwr7wEax3vePYxvv27P9TqYZEHFoMI+SDjT//g//L6a28hSrDWcffu + 9ly2ZwwHe62yHZy/dJbv/L6Ptto669BkMcz4sz/8K155+epElWiDIGIggDwrpiK1SivSfoo68QQgOCmW + W7UE8ixnsDuaUgRRXhYnnQCwdqLhqSeAwpjqbMAsZq8GE4Gkn5KmyYluEDo+3+L3++WWpjyX0pYP0PrF + IHleYAoTXhfY2lhG/YZeEIbDjMFgOBMnOOab2WXE0FQH0BDbqP1aaTgnXS/qzpGMD7+1hdYrAQtjKE76 + ar+8BjQiy/K9WEEMojC2OZI5c1hmuWNcJ1cOrkX9b50A0iRplQGPdLJdc1Wcqo4Zx3FJijGmcd7dzAnG + oA5zTcFvh/xx9ggJQAA9sR8KGcI+6UKJQw7gPfoiX9DExM54AAFzoq8diHgLEM1leNVYm9IANhb7Byi7 + OZnalc+a6dtyQ1aRcfFQWy5A6wTgTn6cazkIC5uWxLINGgujKAy2qPcAbBUfmD5gFZwUBKxxWGMjzQKM + GSASONucxTaFr9mP4YZwEV/0VBhTe7LPjM84RIDotwAuGhdgvAOoH6wxRbCXYNYhz03jST1rzLSYAmbF + KggYLQFE5Pq6Bf356hpZhgxjbHVyse5rTHhDITtF1tnICcD5o52xEEDTUM0Dti0/cYpvLbbh/kdr4wkC + upYLnDoP4JhMtu9vH4skZOHe1x+pnaoECFon4o0BOFodfBuT3aTMeV5EExAVKXsMNBTBG+Mm2y2UZeKB + VgK2bANdEPAox2qb6uJddelJLHDOeZOuGbIPAh5d2/O25RDtFmDcuikWtW+6CcZRbgGiMX7/77jHYJ2c + ooFzraY8W/cAYprsRYc+Hqhx58mTBKVvX68Txk4fBpz4f1iQ1i9dOR5bgCgwcRdc3b43qlLgvSaftQRg + 604KhroFaDf00xHAUY7VNp8GnI98By+NRqO2sw0Fpz8ITg5RbwFiSwM2MUBU+95JDqgzCDdz9+OiQ1Qn + GDJ51CHG48CVUUQCa5sjvnEdBjqoToRbC9h2EqwjgCMeqw8BSNRyWMYoJm1fJGQScF0QMJaGIHZByie6 + q6vdkl93y/7ACRVDy8NqnQBC6PW+LAO4BQ0gOw9gQilV3W1LIW8DIvYAlFZBT+7sRDd6AHE4QktAqrv0 + ZiQU5GittZiYS4G1br8nydERQLMeLzoqHBsSrafiJCHLZXxTcrQdgUTiIQAbQG/7I1KK6U8jGHJbWhGP + 9R2HSV7QFrzD8TOOGNARwFETQIM6i0gkkZCDo5NLwAQQ1eQuuh1YJC5hHGCsnQcQMAHEpPSL2oJHkw69 + H5Xo9k0BE0BE8L0PmrYAnXwaCaETTpgEEPKlj7UEUP2vThYRKrks97zLnARKAOBXvpgowDXKIcZVbgED + yIySBCyCNofXbQGO1v6bJ0LFRgDN450ziIAdAKFd8j8eZwEi0f1FeqyUimgbUJZESrNOTMoiaAdAJHIC + iG7lq4fWKqK9kG/z3XQz0KxBhBwCiJsAJNLgVw18/Xsk5l8ONG+4HnzeKwyXAToPoPMAEChPwMVyKtLH + PJRIrW3HEhB1zo+1SQ5xEEDAt74cQAgkaTweADi0Uo2Bzzn7D5YQHEqk1QDwsUgDxmPnzRueJEmiEoYn + ALVATnHIQpQ0yiEOAlDxZAEWOTtJmkRFhjrRjb0glJoJiAYcBFRKWu2J0fUDONrRNjLAylq/1ZXgqLHo + dmClFSLio/+BNwWNPgiIiicPoBZUffX66Z7SR4BFl2JqraZ65od8OahasBWKgwAigijVzPaRHQdO08TH + PRqMYlIYIZ8FSLT2GaAYCcABWVFEE/zSSvmUTxMBRALnoNdLSVNdu66rygMI2x1yzsdCklS31hb+WDQE + SSJoDOqcz/WrhrEWxkR0IMjR66XeA6hZ3dUiTykwOSSJRmsdaR2A866g1jqKI59JotFK1bK9iJAmCbH0 + v0n7KbrB9VURdYrWiULFugWAsSuYRDDVftXTST3b93oJ/X4ahdI7B0na7A2Jmo6MhxwmVlrHWwjkgP5K + j34/nbKJINy/miGk/bRW6R2Ofr/Hymp/xiM++YFBQWrDG0ovKH2eS5e4IIKkUjOfogTXor63u/Q6R6/f + o9fvVXtB5xymMI054pNEAP6023hckPZStFbYeQYg7SWsrPaZvCt6LIsTvTsSMIWdIfhS8Wm+Kn1sE66U + nS0MVuRkHw0UKedz4j5w8TURWrWzDWjd9/ZRUP8aSgmvvfQGw91REGxvCsON63cQUThnSdJy1asLfCWa + Xj+tvqSUcPX1t/jCH37xRMtCEIq84Ob1O5Vnp5RiY311gZ0I/V7KdkkWd27c4f/98d8E4RkaY7j+9q2K + 4E6f2mi1DqB1AnDiXePxxN+8eZebN+6e+ImulLm86FKJoBLdGOJzJQmMFUNEuH37Hrdv3QtACNMVb0op + Lj5yrix8mpaIc47V1T5nzp7ixo07KKXY3h7wtX98ORCFmJbFhUtnUVq1FgRPgC3gVFvyUEp46ulH/co/ + zJiPkMkhpMjloaXZ3aJOn+xVvCVJwqVHzi3SCx577AIvJC+R5UV1Jn7/95ZjWUJQZ9jjfy9eOsvZS2ca + f7a30uPshdPYF33noIMfGG1HJm5PIRbCWotzsL62wunzp/zY2rH/rQR4FfgXrSkK8Nx7n2ZtfYWbN+6S + DzPyUQ5Anhfs7AzYHYzIsrxqqzspY2ddKdCGW3etwxhT1Z5b58r23DVqI2Vp5pIBJwG0LvO4JbP7zj5e + AUWEtbUVVlb6PPL4BR57+pHm24GBd7z7Kf5NUbB9Z4etO/cYDjOKomAwzGDyWjHnx2yM9WMzjuN0tagg + pGlSnnQTH/AD1tdXefTxCzz//mdZP73ePGfA8+97hiIruH3rLoNBxnA0mvr9dTbjKpl4uRz1qqqU8o1d + yqj+WB9ECbZ8l5V+n7NnNzl1doMLj5zj/KPnGq+MPwK8Kp/5ypd/F/jB1pWmNBqsZ8gxUxa5IS8KnHWk + ZQptT2AOaxxFXmCMmTDLPVUqCkM2yhgOM7IsJ8sLijIQM7mndM6hlKLfS+mXdfnLvPPKio/e+8nWpP20 + SmMV1qC0Jk38c7ekHHCOfJR7RbYWZx2JUn7c4sdfZDnZKGc4HDEa5ceqjkIpxcbmGmmSoBJFr9+jcBad + KFbXVhC1v8srJXlno4y8MBSFqb6mlSJValqeDkxhyLOc4WDEcDjCFPYoWY9eL2VltV+VOOtEkfZSRAtZ + qXNJolnp90h7KU5aL3P+vQR44TgQwNTFmWq8V9T0Uk2f/qFMUM2H8+9x4BdfcmwHkANA0k9Jlm2Zdhxj + Y4uuQV9C6V2pB721Pv37GaAcnzEDrM7IwC64JeoI8WIC/B2QAb1jqEblaTB3KL/nvo38uI895OLB+53/ + 7i6R/TAA/loBXwVudvLo0CEq3AD+QQEvAf/UyaNDh6jwIvCGAraBv+jk0aFDVPg8sD0uQfpCSQQdOnQI + H7eAP4W9w0BfBL7UyaVDhyjwt8DXJglgB/hcJ5cOHaLA54DdSQIA+CwQSMF1hw4dGnC5tHUA1I9+2wcn + v/BHnXw6dAgany1tnR/9tg/ONQT5LXx+sEOHDuHhGvA7kw/UmAlK/A3w6U5OHToEid+gDPaPbX7WA7DA + r+HPB3To0CEcvAD85uzDigAmvICXgV8FTCezDh2CgClt+uUZW29sCvrbwP/s5NahQxD4/dKm5zB3aPIz + X/ny+MMP4gMGz3by69DhxOJF4IcoC38mV39Y3Bb8y8DPAQE0pevQIUrcA35hbPx1mCOAGYb4NPDLdKer + O3Q4aXCl7X66wbbrCWDmGx3wK8CvdyTQocOJMv5fL23XNRk/7NM4aSIesAH8EvBTRHWJdYcOJ9b4f4by + hG+T8e9LAB0JdOgQrvEvRQAdCXToEKbxL00AMySwCXwS+FT5cYcOHdrFPXzA71fKj5cy/gMRwAwJCPDj + wM8C39TJv0OH1vAKPl3/afYJ+D0wAcyQAMB7gV8EfgDQx1hIHTqEBoOv1v15fM0OBzX++yKAGhLYBH4M + +GngPd28dOjw0PECvrb/t5ko1Duo8d83AdSQAMBzwE8APwlc6uaoQ4dDxw28q/9rzHTvuh/jfyACWEAE + HwF+BF9//Hw3Zx06PDBexnfr+i18zw77oIZ/aASwgAieL0ngE8AHgHPdPHbosDS28c07PsdEG6/DMvxD + J4AFRLCGDxZ+HPhefNbgAtP3JXboEDsy/BV9/4S/qOcL+Hb9Ow/D8B8aASwgAvCFRE8A3wJ8uCSDZ4Fn + gFOdDnSICFvAq/g03gv4S3q/ir+qb+6SnsM2/DH+P7lyWHF6ioYgAAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/App.config b/NeshinaDem3/NeshinaDem3/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/DB.cs b/NeshinaDem3/NeshinaDem3/DB.cs new file mode 100644 index 0000000..4591533 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/DB.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MySql.Data.MySqlClient; + +namespace NeshinaDem3 +{ + internal class DB + { + private static DB instance; + private MySqlConnection connection; + //ПОДКЧЛЮЧЕНИЕ + private readonly string connectionString = + "server=192.168.201.207;port=3306;username=ISP41_Neshina;password=ISP41_Neshina;database=ISP41_Neshina_dem2;SslMode=none;Charset=utf8mb4"; + + private DB() + { + connection = new MySqlConnection(connectionString); + OpenConnection(); + } + + public static DB GetInstance() + { + if (instance == null) + instance = new DB(); + return instance; + } + + public void OpenConnection() + { + if (connection.State == ConnectionState.Closed) + connection.Open(); + } + + public MySqlConnection GetConnection() => connection; + } +} diff --git a/NeshinaDem3/NeshinaDem3/Edit.Designer.cs b/NeshinaDem3/NeshinaDem3/Edit.Designer.cs new file mode 100644 index 0000000..b703081 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Edit.Designer.cs @@ -0,0 +1,261 @@ +namespace NeshinaDem3 +{ + partial class Edit + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Edit)); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.txtName = new System.Windows.Forms.TextBox(); + this.cmbType = new System.Windows.Forms.ComboBox(); + this.txtPrice = new System.Windows.Forms.TextBox(); + this.txtQuantity = new System.Windows.Forms.TextBox(); + this.txtMinQuantity = new System.Windows.Forms.TextBox(); + this.txtStockQuantity = new System.Windows.Forms.TextBox(); + this.cmbUnit = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.btnSave = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label2.Location = new System.Drawing.Point(9, 64); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(57, 15); + this.label2.TabIndex = 9; + this.label2.Text = "Название"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label3.Location = new System.Drawing.Point(9, 115); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(28, 15); + this.label3.TabIndex = 10; + this.label3.Text = "Тип"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label4.Location = new System.Drawing.Point(9, 168); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(34, 15); + this.label4.TabIndex = 11; + this.label4.Text = "Цена"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label5.Location = new System.Drawing.Point(9, 221); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(71, 15); + this.label5.TabIndex = 12; + this.label5.Text = "Количество"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label6.Location = new System.Drawing.Point(9, 275); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(147, 15); + this.label6.TabIndex = 13; + this.label6.Text = "Минимальное количество"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label7.Location = new System.Drawing.Point(9, 329); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(126, 15); + this.label7.TabIndex = 14; + this.label7.Text = "Количество на складе"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label8.Location = new System.Drawing.Point(9, 382); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(114, 15); + this.label8.TabIndex = 15; + this.label8.Text = "Единица измерения"; + // + // txtName + // + this.txtName.Location = new System.Drawing.Point(12, 80); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(320, 20); + this.txtName.TabIndex = 16; + // + // cmbType + // + this.cmbType.FormattingEnabled = true; + this.cmbType.Location = new System.Drawing.Point(12, 131); + this.cmbType.Name = "cmbType"; + this.cmbType.Size = new System.Drawing.Size(320, 21); + this.cmbType.TabIndex = 17; + // + // txtPrice + // + this.txtPrice.Location = new System.Drawing.Point(12, 184); + this.txtPrice.Name = "txtPrice"; + this.txtPrice.Size = new System.Drawing.Size(320, 20); + this.txtPrice.TabIndex = 18; + // + // txtQuantity + // + this.txtQuantity.Location = new System.Drawing.Point(12, 238); + this.txtQuantity.Name = "txtQuantity"; + this.txtQuantity.Size = new System.Drawing.Size(320, 20); + this.txtQuantity.TabIndex = 19; + // + // txtMinQuantity + // + this.txtMinQuantity.Location = new System.Drawing.Point(12, 292); + this.txtMinQuantity.Name = "txtMinQuantity"; + this.txtMinQuantity.Size = new System.Drawing.Size(320, 20); + this.txtMinQuantity.TabIndex = 20; + // + // txtStockQuantity + // + this.txtStockQuantity.Location = new System.Drawing.Point(12, 345); + this.txtStockQuantity.Name = "txtStockQuantity"; + this.txtStockQuantity.Size = new System.Drawing.Size(320, 20); + this.txtStockQuantity.TabIndex = 21; + // + // cmbUnit + // + this.cmbUnit.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbUnit.FormattingEnabled = true; + this.cmbUnit.Location = new System.Drawing.Point(12, 399); + this.cmbUnit.Name = "cmbUnit"; + this.cmbUnit.Size = new System.Drawing.Size(320, 21); + this.cmbUnit.TabIndex = 22; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Comic Sans MS", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.Location = new System.Drawing.Point(40, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(269, 45); + this.label1.TabIndex = 23; + this.label1.Text = "Редактирование"; + // + // btnSave + // + this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(111)))), ((int)(((byte)(148))))); + this.btnSave.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnSave.ForeColor = System.Drawing.SystemColors.ButtonHighlight; + this.btnSave.Location = new System.Drawing.Point(81, 447); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(184, 64); + this.btnSave.TabIndex = 24; + this.btnSave.Text = "Сохранить изменения"; + this.btnSave.UseVisualStyleBackColor = false; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // button1 + // + this.button1.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.button1.Location = new System.Drawing.Point(12, 488); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(63, 23); + this.button1.TabIndex = 25; + this.button1.Text = "Назад"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Edit + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(207)))), ((int)(((byte)(206))))); + this.ClientSize = new System.Drawing.Size(344, 523); + this.Controls.Add(this.button1); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.label1); + this.Controls.Add(this.cmbUnit); + this.Controls.Add(this.txtStockQuantity); + this.Controls.Add(this.txtMinQuantity); + this.Controls.Add(this.txtQuantity); + this.Controls.Add(this.txtPrice); + this.Controls.Add(this.cmbType); + this.Controls.Add(this.txtName); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.label5); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "Edit"; + this.Text = "Edit"; + this.Load += new System.EventHandler(this.Edit_Load_1); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox txtName; + private System.Windows.Forms.ComboBox cmbType; + private System.Windows.Forms.TextBox txtPrice; + private System.Windows.Forms.TextBox txtMinQuantity; + private System.Windows.Forms.TextBox txtStockQuantity; + private System.Windows.Forms.ComboBox cmbUnit; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.TextBox txtQuantity; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/Edit.cs b/NeshinaDem3/NeshinaDem3/Edit.cs new file mode 100644 index 0000000..3cce55e --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Edit.cs @@ -0,0 +1,261 @@ +using MySql.Data.MySqlClient; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using static NeshinaDem3.Add; + +namespace NeshinaDem3 +{ + public partial class Edit : Form + { + public Edit() + { + InitializeComponent(); + + } + public int MaterialId { get; set; } + private void btnSave_Click(object sender, EventArgs e) //СОХРАНЕНИЕ С ПРОВЕРКАМИ + { + if (string.IsNullOrWhiteSpace(txtName.Text)) + { + MessageBox.Show("Введите название материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtName.Focus(); + return; + } + + if (cmbType.SelectedItem == null) + { + MessageBox.Show("Выберите тип материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + cmbType.Focus(); + return; + } + + if (!decimal.TryParse(txtPrice.Text, out decimal price) || price < 0) + { + MessageBox.Show("Введите корректную цену (неотрицательное число).", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtPrice.Focus(); + return; + } + + if (!int.TryParse(txtQuantity.Text, out int quantity) || quantity < 0) + { + MessageBox.Show("Введите корректное количество (неотрицательное целое число).", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtQuantity.Focus(); + return; + } + + if (!int.TryParse(txtMinQuantity.Text, out int minQty) || minQty < 0) + { + MessageBox.Show("Введите корректное минимальное количество.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtMinQuantity.Focus(); + return; + } + + if (!int.TryParse(txtStockQuantity.Text, out int stockQty) || stockQty < 0) + { + MessageBox.Show("Введите корректное количество на складе.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtStockQuantity.Focus(); + return; + } + + if (cmbUnit.SelectedItem == null) + { + MessageBox.Show("Выберите единицу измерения.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + cmbUnit.Focus(); + return; + } + + var typeItem = (ComboItem)cmbType.SelectedItem; + var unitItem = (ComboItem)cmbUnit.SelectedItem; + //ОБНОВЛЕНИЕ + string updateQuery = @" + UPDATE Materials + SET + Name = @name, + Type = @type, + Price = @price, + Quantity = @quantity, + MinQuantity = @minQty, + QuantityPack = @stockQty, + Unit = @unit + WHERE idMaterials = @id"; + + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + using (var cmd = new MySqlCommand(updateQuery, conn)) + { + cmd.Parameters.AddWithValue("@name", txtName.Text.Trim()); + cmd.Parameters.AddWithValue("@type", typeItem.Id); + cmd.Parameters.AddWithValue("@price", price); + cmd.Parameters.AddWithValue("@quantity", quantity); + cmd.Parameters.AddWithValue("@minQty", minQty); + cmd.Parameters.AddWithValue("@stockQty", stockQty); + cmd.Parameters.AddWithValue("@unit", unitItem.Id); + cmd.Parameters.AddWithValue("@id", MaterialId); + + try + { + int rowsAffected = cmd.ExecuteNonQuery(); + if (rowsAffected > 0) + { + MessageBox.Show("Материал успешно обновлён!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + this.DialogResult = DialogResult.OK; + this.Close(); + } + else + { + MessageBox.Show("Не удалось обновить материал. Возможно, он был удалён.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + } + catch (Exception ex) + { + MessageBox.Show($"Ошибка при обновлении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void LoadMaterialData() //ЗАГРУЗКА МАТЕРИАЛОВ + { + if (MaterialId <= 0) + { + MessageBox.Show("Некорректный ID материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + this.DialogResult = DialogResult.Cancel; + this.Close(); + return; + } + + LoadTypes(); + LoadUnits(); + + string query = @" + SELECT + m.Name, + m.Type, + m.Price, + m.Quantity, + m.MinQuantity, + m.QuantityPack, + m.Unit + FROM Materials m + WHERE m.idMaterials = @id"; + + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + using (var cmd = new MySqlCommand(query, conn)) + { + cmd.Parameters.AddWithValue("@id", MaterialId); + + using (var reader = cmd.ExecuteReader()) + { + if (reader.Read()) + { + txtName.Text = reader.GetString("Name"); + decimal price = reader.GetDecimal("Price"); + txtPrice.Text = price.ToString(); + + int quantity = reader.GetInt32("Quantity"); + txtQuantity.Text = quantity.ToString(); + + int minQty = reader.GetInt32("MinQuantity"); + txtMinQuantity.Text = minQty.ToString(); + + int stockQty = reader.GetInt32("QuantityPack"); + txtStockQuantity.Text = stockQty.ToString(); + + SelectComboBoxItem(cmbType, reader.GetInt32("Type")); + SelectComboBoxItem(cmbUnit, reader.GetInt32("Unit")); + } + else + { + MessageBox.Show("Материал не найден. Возможно, он был удалён.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + } + } + + } + + private void SelectComboBoxItem(ComboBox comboBox, int id) + { + foreach (ComboItem item in comboBox.Items) + { + if (item.Id == id) + { + comboBox.SelectedItem = item; + break; + } + } + } + + private void LoadTypes() //ЗАГРУЗКА ТИПОВ МАТЕРИАЛОВ + { + string query = "SELECT idTypeMaterial, Name FROM TypeMaterial"; + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + using (var cmd = new MySqlCommand(query, conn)) + { + using (var reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + cmbType.Items.Add(new ComboItem + { + Id = reader.GetInt32("idTypeMaterial"), + Name = reader.GetString("Name") + }); + } + } + } + } + + private void LoadUnits() //ЗАГРУЗКА ЕДИНИЦ + { + string query = "SELECT idUnit, Name FROM Unit"; + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + using (var cmd = new MySqlCommand(query, conn)) + { + using (var reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + cmbUnit.Items.Add(new ComboItem + { + Id = reader.GetInt32("idUnit"), + Name = reader.GetString("Name") + }); + } + } + } + } + + private void Edit_Load_1(object sender, EventArgs e) + { + LoadMaterialData(); + + } + + private void button1_Click(object sender, EventArgs e) + { + + this.Hide(); + } + } +} diff --git a/NeshinaDem3/NeshinaDem3/Edit.resx b/NeshinaDem3/NeshinaDem3/Edit.resx new file mode 100644 index 0000000..0a68749 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Edit.resx @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/EditInf.Designer.cs b/NeshinaDem3/NeshinaDem3/EditInf.Designer.cs new file mode 100644 index 0000000..57ab87e --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/EditInf.Designer.cs @@ -0,0 +1,143 @@ +namespace NeshinaDem3 +{ + partial class EditInf + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditInf)); + this.label8 = new System.Windows.Forms.Label(); + this.txtName = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); + this.txtCoefficient = new System.Windows.Forms.TextBox(); + this.btnSave = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.btnCancel = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label8.Location = new System.Drawing.Point(6, 81); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(57, 15); + this.label8.TabIndex = 21; + this.label8.Text = "Название"; + // + // txtName + // + this.txtName.Location = new System.Drawing.Point(9, 97); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(318, 20); + this.txtName.TabIndex = 22; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label9.Location = new System.Drawing.Point(6, 137); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(83, 15); + this.label9.TabIndex = 23; + this.label9.Text = "Коэффициент"; + // + // txtCoefficient + // + this.txtCoefficient.Location = new System.Drawing.Point(6, 153); + this.txtCoefficient.Name = "txtCoefficient"; + this.txtCoefficient.Size = new System.Drawing.Size(318, 20); + this.txtCoefficient.TabIndex = 24; + // + // btnSave + // + this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(111)))), ((int)(((byte)(148))))); + this.btnSave.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnSave.ForeColor = System.Drawing.SystemColors.ButtonFace; + this.btnSave.Location = new System.Drawing.Point(74, 192); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(173, 23); + this.btnSave.TabIndex = 25; + this.btnSave.Text = "Редактировать"; + this.btnSave.UseVisualStyleBackColor = false; + this.btnSave.Click += new System.EventHandler(this.button1_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Comic Sans MS", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.Location = new System.Drawing.Point(40, 27); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(244, 45); + this.label1.TabIndex = 26; + this.label1.Text = "Редактировать"; + // + // btnCancel + // + this.btnCancel.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnCancel.Location = new System.Drawing.Point(6, 216); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(62, 23); + this.btnCancel.TabIndex = 27; + this.btnCancel.Text = "Назад"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.button2_Click); + // + // EditInf + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(207)))), ((int)(((byte)(206))))); + this.ClientSize = new System.Drawing.Size(336, 251); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.label1); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.txtCoefficient); + this.Controls.Add(this.label9); + this.Controls.Add(this.txtName); + this.Controls.Add(this.label8); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "EditInf"; + this.Text = "EditInf"; + this.Load += new System.EventHandler(this.EditInf_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox txtName; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox txtCoefficient; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button btnCancel; + } +} \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/EditInf.cs b/NeshinaDem3/NeshinaDem3/EditInf.cs new file mode 100644 index 0000000..5ae0bd9 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/EditInf.cs @@ -0,0 +1,114 @@ +using MySql.Data.MySqlClient; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace NeshinaDem3 +{ + public partial class EditInf : Form + { + public EditInf() + { + InitializeComponent(); + } + public int TypeProductionId { get; set; } + + private void button1_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(txtName.Text)) + { + MessageBox.Show("Поле 'Название' обязательно для заполнения.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + if (!double.TryParse(txtCoefficient.Text, out double coefficient) || coefficient < 0) + { + MessageBox.Show("Поле 'Коэффициент' должно быть числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + string updateQuery = @" + UPDATE TypeProduction + SET Name = @name, Coefficient = @coefficient + WHERE idTypeProduction = @id"; + + using (var cmd = new MySqlCommand(updateQuery, conn)) + { + cmd.Parameters.AddWithValue("@name", txtName.Text.Trim()); + cmd.Parameters.AddWithValue("@coefficient", coefficient); + cmd.Parameters.AddWithValue("@id", TypeProductionId); + + try + { + int rowsAffected = cmd.ExecuteNonQuery(); + if (rowsAffected > 0) + { + MessageBox.Show("Запись успешно обновлена!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + this.DialogResult = DialogResult.OK; + this.Close(); + } + else + { + MessageBox.Show("Не удалось обновить запись. Возможно, она была удалена.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + catch (Exception ex) + { + MessageBox.Show($"Ошибка при сохранении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void button2_Click(object sender, EventArgs e) + { + this.Hide(); + } + + private void EditInf_Load(object sender, EventArgs e) + { + if (TypeProductionId <= 0) + { + MessageBox.Show("Не указан ID записи для редактирования.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + this.DialogResult = DialogResult.Cancel; + this.Close(); + return; + } + + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + string query = "SELECT Name, Coefficient FROM TypeProduction WHERE idTypeProduction = @id"; + + using (var cmd = new MySqlCommand(query, conn)) + { + cmd.Parameters.AddWithValue("@id", TypeProductionId); + + using (var reader = cmd.ExecuteReader()) + { + if (reader.Read()) + { + txtName.Text = reader["Name"].ToString(); + txtCoefficient.Text = reader["Coefficient"].ToString(); + } + else + { + MessageBox.Show("Запись не найдена.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + } + } + } + } +} diff --git a/NeshinaDem3/NeshinaDem3/EditInf.resx b/NeshinaDem3/NeshinaDem3/EditInf.resx new file mode 100644 index 0000000..0a68749 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/EditInf.resx @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/Form1.Designer.cs b/NeshinaDem3/NeshinaDem3/Form1.Designer.cs new file mode 100644 index 0000000..15c014e --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Form1.Designer.cs @@ -0,0 +1,213 @@ +namespace NeshinaDem3 +{ + partial class MainForm + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.dgvAll = new System.Windows.Forms.DataGridView(); + this.btnAdd = new System.Windows.Forms.Button(); + this.btnEdit = new System.Windows.Forms.Button(); + this.btnDelete = new System.Windows.Forms.Button(); + this.btnCalculate = new System.Windows.Forms.Button(); + this.menu = new System.Windows.Forms.MenuStrip(); + this.поставщикиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.материалыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.дополнительнаяИнформацияToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label1 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.dgvAll)).BeginInit(); + this.menu.SuspendLayout(); + this.SuspendLayout(); + // + // dgvAll + // + this.dgvAll.AllowUserToAddRows = false; + this.dgvAll.AllowUserToDeleteRows = false; + this.dgvAll.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dgvAll.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dgvAll.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(171)))), ((int)(((byte)(207)))), ((int)(((byte)(206))))); + this.dgvAll.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvAll.Location = new System.Drawing.Point(12, 36); + this.dgvAll.Name = "dgvAll"; + this.dgvAll.ReadOnly = true; + this.dgvAll.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvAll.Size = new System.Drawing.Size(487, 281); + this.dgvAll.TabIndex = 0; + this.dgvAll.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick); + // + // btnAdd + // + this.btnAdd.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(111)))), ((int)(((byte)(148))))); + this.btnAdd.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnAdd.ForeColor = System.Drawing.SystemColors.ButtonFace; + this.btnAdd.Location = new System.Drawing.Point(525, 36); + this.btnAdd.Name = "btnAdd"; + this.btnAdd.Size = new System.Drawing.Size(263, 23); + this.btnAdd.TabIndex = 1; + this.btnAdd.Text = "Добавить"; + this.btnAdd.UseVisualStyleBackColor = false; + this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); + // + // btnEdit + // + this.btnEdit.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(111)))), ((int)(((byte)(148))))); + this.btnEdit.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnEdit.ForeColor = System.Drawing.SystemColors.Control; + this.btnEdit.Location = new System.Drawing.Point(525, 75); + this.btnEdit.Name = "btnEdit"; + this.btnEdit.Size = new System.Drawing.Size(263, 23); + this.btnEdit.TabIndex = 2; + this.btnEdit.Text = "Редактировать"; + this.btnEdit.UseVisualStyleBackColor = false; + this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click); + // + // btnDelete + // + this.btnDelete.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(111)))), ((int)(((byte)(148))))); + this.btnDelete.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnDelete.ForeColor = System.Drawing.SystemColors.Control; + this.btnDelete.Location = new System.Drawing.Point(525, 117); + this.btnDelete.Name = "btnDelete"; + this.btnDelete.Size = new System.Drawing.Size(263, 23); + this.btnDelete.TabIndex = 3; + this.btnDelete.Text = "Удалить"; + this.btnDelete.UseVisualStyleBackColor = false; + this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click); + // + // btnCalculate + // + this.btnCalculate.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(84)))), ((int)(((byte)(111)))), ((int)(((byte)(148))))); + this.btnCalculate.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btnCalculate.ForeColor = System.Drawing.SystemColors.Control; + this.btnCalculate.Location = new System.Drawing.Point(293, 323); + this.btnCalculate.Name = "btnCalculate"; + this.btnCalculate.Size = new System.Drawing.Size(206, 23); + this.btnCalculate.TabIndex = 5; + this.btnCalculate.Text = "Можно произвести"; + this.btnCalculate.UseVisualStyleBackColor = false; + this.btnCalculate.Click += new System.EventHandler(this.btnCalculate_Click); + // + // menu + // + this.menu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.поставщикиToolStripMenuItem, + this.материалыToolStripMenuItem, + this.дополнительнаяИнформацияToolStripMenuItem}); + this.menu.Location = new System.Drawing.Point(0, 0); + this.menu.Name = "menu"; + this.menu.Size = new System.Drawing.Size(800, 25); + this.menu.TabIndex = 8; + this.menu.Text = "menuStrip1"; + // + // поставщикиToolStripMenuItem + // + this.поставщикиToolStripMenuItem.Font = new System.Drawing.Font("Comic Sans MS", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.поставщикиToolStripMenuItem.Name = "поставщикиToolStripMenuItem"; + this.поставщикиToolStripMenuItem.Size = new System.Drawing.Size(94, 21); + this.поставщикиToolStripMenuItem.Text = "Поставщики"; + this.поставщикиToolStripMenuItem.Click += new System.EventHandler(this.поставщикиToolStripMenuItem_Click); + // + // материалыToolStripMenuItem + // + this.материалыToolStripMenuItem.Font = new System.Drawing.Font("Comic Sans MS", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.материалыToolStripMenuItem.Name = "материалыToolStripMenuItem"; + this.материалыToolStripMenuItem.Size = new System.Drawing.Size(85, 21); + this.материалыToolStripMenuItem.Text = "Материалы"; + this.материалыToolStripMenuItem.Click += new System.EventHandler(this.материалыToolStripMenuItem_Click); + // + // дополнительнаяИнформацияToolStripMenuItem + // + this.дополнительнаяИнформацияToolStripMenuItem.Font = new System.Drawing.Font("Comic Sans MS", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.дополнительнаяИнформацияToolStripMenuItem.Name = "дополнительнаяИнформацияToolStripMenuItem"; + this.дополнительнаяИнформацияToolStripMenuItem.Size = new System.Drawing.Size(197, 21); + this.дополнительнаяИнформацияToolStripMenuItem.Text = "Дополнительная информация"; + this.дополнительнаяИнформацияToolStripMenuItem.Click += new System.EventHandler(this.дополнительнаяИнформацияToolStripMenuItem_Click); + // + // panel1 + // + this.panel1.BackgroundImage = global::NeshinaDem3.Properties.Resources.Мозаика; + this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.panel1.Location = new System.Drawing.Point(741, 393); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(47, 45); + this.panel1.TabIndex = 9; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.Location = new System.Drawing.Point(641, 403); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(91, 27); + this.label1.TabIndex = 10; + this.label1.Text = "Мозаика"; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.label1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.menu); + this.Controls.Add(this.btnCalculate); + this.Controls.Add(this.btnDelete); + this.Controls.Add(this.btnEdit); + this.Controls.Add(this.btnAdd); + this.Controls.Add(this.dgvAll); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.menu; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Main"; + ((System.ComponentModel.ISupportInitialize)(this.dgvAll)).EndInit(); + this.menu.ResumeLayout(false); + this.menu.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgvAll; + private System.Windows.Forms.Button btnAdd; + private System.Windows.Forms.Button btnEdit; + private System.Windows.Forms.Button btnDelete; + private System.Windows.Forms.Button btnCalculate; + private System.Windows.Forms.MenuStrip menu; + private System.Windows.Forms.ToolStripMenuItem поставщикиToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem материалыToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem дополнительнаяИнформацияToolStripMenuItem; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label1; + } +} + diff --git a/NeshinaDem3/NeshinaDem3/Form1.cs b/NeshinaDem3/NeshinaDem3/Form1.cs new file mode 100644 index 0000000..2f55702 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Form1.cs @@ -0,0 +1,497 @@ +using MySql.Data.MySqlClient; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace NeshinaDem3 +{ + public partial class MainForm : Form + { + + public enum ViewMode + { + Materials, + Suppliers, + TypeProduction + } + + private ViewMode currentMode = ViewMode.Materials; + public int CalculateProductOutput( + int productTypeId, + int materialTypeId, + int rawMaterialAmount, + double param1, + double param2) + { + if (productTypeId <= 0 || + materialTypeId <= 0 || + rawMaterialAmount <= 0 || + param1 <= 0 || + param2 <= 0) + { + return -1; + } + + double productCoeff = 0; + double lossPercent = 0; + + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + string productQuery = "SELECT Coefficient FROM TypeProduction WHERE idTypeProduction = @productId"; + using (var cmd = new MySqlCommand(productQuery, conn)) + { + cmd.Parameters.AddWithValue("@productId", productTypeId); + var result = cmd.ExecuteScalar(); + if (result == null || result == DBNull.Value) + { + return -1; // Тип продукции не найден + } + productCoeff = Convert.ToDouble(result); + } + + string materialQuery = "SELECT Procent FROM TypeWithProcent WHERE idTypeWithProcent = @materialId"; + using (var cmd = new MySqlCommand(materialQuery, conn)) + { + cmd.Parameters.AddWithValue("@materialId", materialTypeId); + var result = cmd.ExecuteScalar(); + if (result == null || result == DBNull.Value) + { + return -1; // Тип материала не найден + } + lossPercent = Convert.ToDouble(result); + } + + if (lossPercent < 0 || lossPercent >= 100) + { + return -1; // Невозможные потери + } + + double baseMaterialPerUnit = param1 * param2 * productCoeff; + + if (baseMaterialPerUnit <= 0) + { + return -1; // Некорректный расчёт + } + + double effectiveMaterialPerUnit = baseMaterialPerUnit / (1.0 - lossPercent / 100.0); + + if (effectiveMaterialPerUnit > rawMaterialAmount) + { + return 0; // Сырья не хватает даже на 1 шт. + } + + int maxUnits = (int)Math.Floor((double)rawMaterialAmount / effectiveMaterialPerUnit); + + return Math.Max(0, maxUnits); + } + public MainForm() + { + InitializeComponent(); + btnAdd.Visible = true; + btnEdit.Visible = true; + btnDelete.Visible = true; + + + } + + private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + + } + + + private void LoadMaterials() //ЗАГРУЗКА МАТЕРИАЛОВ +{ + string query = @" + SELECT + m.idMaterials, + m.Name, + t.Name AS TypeName, + m.Price, + m.Quantity, + m.MinQuantity, + m.QuantityPack, + u.Name AS UnitName + FROM Materials m + LEFT JOIN TypeMaterial t ON m.Type = t.idTypeMaterial + LEFT JOIN Unit u ON m.Unit = u.idUnit"; + + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + DataTable dt; + using (var cmd = new MySqlCommand(query, conn)) + { + var adapter = new MySqlDataAdapter(cmd); + dt = new DataTable(); + adapter.Fill(dt); + } + + dgvAll.DataSource = dt; + if (dgvAll.Columns.Contains("idMaterials")) + dgvAll.Columns["idMaterials"].Visible = false; + dgvAll.Columns["Name"].HeaderText = "Наименование"; + dgvAll.Columns["TypeName"].HeaderText = "Тип"; + dgvAll.Columns["Price"].HeaderText = "Цена"; + dgvAll.Columns["Quantity"].HeaderText = "Кол-во на складе"; + dgvAll.Columns["MinQuantity"].HeaderText = "Мин. кол-во"; + dgvAll.Columns["QuantityPack"].HeaderText = "Кол-во в упаковке"; + dgvAll.Columns["UnitName"].HeaderText = "Ед. изм."; + if(dgvAll.Columns.Contains("MinPartyCost")) + dgvAll.Columns.Remove("MinPartyCost"); + var minPartyCostCol = new DataGridViewTextBoxColumn + { + Name = "MinPartyCost", + HeaderText = "Стоимость минимальной партии", + ReadOnly = true, + DefaultCellStyle = { Format = "C2" } + }; + dgvAll.Columns.Add(minPartyCostCol); + foreach (DataGridViewRow row in dgvAll.Rows) + { + if (row.IsNewRow) continue; + + try + { + if (row.Cells["MinQuantity"].Value == null || + row.Cells["Quantity"].Value == null || + row.Cells["QuantityPack"].Value == null || + row.Cells["Price"].Value == null) + { + row.Cells["MinPartyCost"].Value = 0m; + continue; + } + int minQty = Convert.ToInt32(row.Cells["MinQuantity"].Value); + int stockQty = Convert.ToInt32(row.Cells["Quantity"].Value); + int packQty = Convert.ToInt32(row.Cells["QuantityPack"].Value); + decimal price = Convert.ToDecimal(row.Cells["Price"].Value); + decimal cost = 0m; + if (stockQty < minQty) + { + int deficit = minQty - stockQty; + if (packQty > 0) // Защита от деления на ноль + { + int packsNeeded = (int)Math.Ceiling((double)deficit / packQty); + int orderVolume = packsNeeded * packQty; + cost = orderVolume * price; + } + } + cost = Math.Max(0m, Math.Round(cost, 2)); + row.Cells["MinPartyCost"].Value = cost; + } + catch (Exception ex) + { + row.Cells["MinPartyCost"].Value = 0m; + } + + currentMode = ViewMode.Materials; + btnAdd.Visible = true; + btnEdit.Visible = true; + btnDelete.Visible = true; + this.Text = "Управление материалами"; + } +} + + private void LoadSuppliers() //ЗАГРУЗКА ПОСТАВЩИКОВ + { + string query = @"SELECT + m.Name, + y.Name, + m.INN, + m.Rating, + m.Date FROM Supplier m + left join TypeSupplier y on m.Type = y.idTypeSupplier"; + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + using (var cmd = new MySqlCommand(query, conn)) + { + var adapter = new MySqlDataAdapter(cmd); + var dt = new DataTable(); + adapter.Fill(dt); + dgvAll.DataSource = dt; + if (dgvAll.Columns.Contains("TotalCost")) + dgvAll.Columns.Remove("TotalCost"); + } + + currentMode = ViewMode.Suppliers; + btnAdd.Visible = false; // или true, если у вас будет AddSupplier + btnEdit.Visible = false; + btnDelete.Visible = false; + this.Text = "Поставщики"; + } + + + private bool isShowingSuppliers = false; + private void btnAdd_Click(object sender, EventArgs e) + { + + switch (currentMode) + { + case ViewMode.Materials: + var addForm = new Add(); + if (addForm.ShowDialog() == DialogResult.OK) + { + LoadMaterials(); + } + break; + + case ViewMode.TypeProduction: + var addInfForm = new AddInf(); + if (addInfForm.ShowDialog() == DialogResult.OK) + { + Information(); // перезагружаем данные + } + break; + + } + } + + private void btnEdit_Click(object sender, EventArgs e) //РЕДАКТИРОВАНИЕ + { + + if (dgvAll.SelectedRows.Count == 0) + { + MessageBox.Show("Выберите строку для редактирования.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + var selectedRow = dgvAll.SelectedRows[0]; + + switch (currentMode) + { + case ViewMode.Materials: + if (selectedRow.Cells["idMaterials"].Value == null) + { + MessageBox.Show("Не удалось получить ID материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + int materialId = Convert.ToInt32(selectedRow.Cells["idMaterials"].Value); + var editForm = new Edit { MaterialId = materialId }; + if (editForm.ShowDialog() == DialogResult.OK) + { + LoadMaterials(); + } + break; + + case ViewMode.TypeProduction: + if (selectedRow.Cells["idTypeProduction"].Value == null) + { + MessageBox.Show("Не удалось получить ID записи.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + int typeId = Convert.ToInt32(selectedRow.Cells["idTypeProduction"].Value); + var editInfForm = new EditInf { TypeProductionId = typeId }; + if (editInfForm.ShowDialog() == DialogResult.OK) + { + Information(); + } + break; + } + + } + + + private void btnDelete_Click(object sender, EventArgs e) //УДАЛЕНИЕ + { + + if (dgvAll.SelectedRows.Count == 0) + { + MessageBox.Show("Выберите строку для удаления.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + var selectedRow = dgvAll.SelectedRows[0]; + + switch (currentMode) + { + case ViewMode.Materials: + if (selectedRow.Cells["idMaterials"].Value == null) + { + MessageBox.Show("Не удалось получить ID материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + int materialId = Convert.ToInt32(selectedRow.Cells["idMaterials"].Value); + string materialName = selectedRow.Cells["Name"]?.Value?.ToString() ?? "неизвестный"; + + var result = MessageBox.Show( + $"Вы уверены, что хотите удалить материал:\n\n«{materialName}»?\n\nЭто действие нельзя отменить.", + "Подтверждение удаления", + MessageBoxButtons.YesNo, + MessageBoxIcon.Warning + ); + + if (result == DialogResult.No) + return; + + string deleteQuery = "DELETE FROM Materials WHERE idMaterials = @id"; + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + using (var cmd = new MySqlCommand(deleteQuery, conn)) + { + cmd.Parameters.AddWithValue("@id", materialId); + try + { + int rowsAffected = cmd.ExecuteNonQuery(); + if (rowsAffected > 0) + { + MessageBox.Show("Материал успешно удалён!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + LoadMaterials(); + } + else + { + MessageBox.Show("Не удалось удалить материал. Возможно, он уже был удалён.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + catch (Exception ex) + { + MessageBox.Show($"Ошибка при удалении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + break; + + case ViewMode.TypeProduction: + if (selectedRow.Cells["idTypeProduction"].Value == null) + { + MessageBox.Show("Не удалось получить ID записи.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + int typeId = Convert.ToInt32(selectedRow.Cells["idTypeProduction"].Value); + string typeName = selectedRow.Cells["Name"]?.Value?.ToString() ?? "неизвестный"; + + var confirmResult = MessageBox.Show( + $"Вы уверены, что хотите удалить запись:\n\n«{typeName}»?", + "Подтверждение удаления", + MessageBoxButtons.YesNo, + MessageBoxIcon.Warning + ); + + if (confirmResult == DialogResult.No) + return; + + string deleteTypeQuery = "DELETE FROM TypeProduction WHERE idTypeProduction = @id"; + var typeConn = DB.GetInstance().GetConnection(); + if (typeConn.State == ConnectionState.Closed) + typeConn.Open(); + + using (var cmd = new MySqlCommand(deleteTypeQuery, typeConn)) + { + cmd.Parameters.AddWithValue("@id", typeId); + try + { + int rowsAffected = cmd.ExecuteNonQuery(); + if (rowsAffected > 0) + { + MessageBox.Show("Запись успешно удалена!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); + Information(); // перезагружаем таблицу TypeProduction + } + else + { + MessageBox.Show("Запись не найдена или уже удалена.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + } + catch (Exception ex) + { + MessageBox.Show($"Ошибка при удалении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + break; + + default: + MessageBox.Show("Удаление не поддерживается для текущего режима.", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); + break; + } + } + + private void btnCalculate_Click(object sender, EventArgs e) //ЧЁТ СЧИТАЕТ + { + int output = CalculateProductOutput( + productTypeId: 1, + materialTypeId: 2, + rawMaterialAmount: 1000, + param1: 1.5, + param2: 2.0 + ); + + if (output == -1) + { + MessageBox.Show("Ошибка: неверные параметры или типы не найдены.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + MessageBox.Show($"Можно произвести: {output} единиц продукции.", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void поставщикиToolStripMenuItem_Click(object sender, EventArgs e) //ЗАГРУЗКА ПОСТАВЩИКОВ ЧЕРЕЗ МЕНЮ И СКРЫТИЕ КНОПОК + { + if (isShowingSuppliers) + { + LoadMaterials(); + btnAdd.Visible = true; + btnEdit.Visible = true; + btnDelete.Visible = true; + } + else + { + LoadSuppliers(); + btnAdd.Visible = false; + btnEdit.Visible = false; + btnDelete.Visible = false; + } + isShowingSuppliers = !isShowingSuppliers; + } + + private void материалыToolStripMenuItem_Click(object sender, EventArgs e) + { + LoadMaterials(); + } + + private void дополнительнаяИнформацияToolStripMenuItem_Click(object sender, EventArgs e) + { + Information(); + } + + + + private void Information() + { + string query = "SELECT * FROM TypeProduction"; + var conn = DB.GetInstance().GetConnection(); + if (conn.State == ConnectionState.Closed) + conn.Open(); + + DataTable dt; + using (var cmd = new MySqlCommand(query, conn)) + { + var adapter = new MySqlDataAdapter(cmd); + dt = new DataTable(); + adapter.Fill(dt); + } + + dgvAll.DataSource = dt; + currentMode = ViewMode.TypeProduction; + + // Показываем кнопки для TypeProduction + btnAdd.Visible = true; + btnEdit.Visible = true; + btnDelete.Visible = true; + + // Опционально: обновить заголовок формы + this.Text = "Дополнительная информация — Типы продукции"; + } + } +} diff --git a/NeshinaDem3/NeshinaDem3/Form1.resx b/NeshinaDem3/NeshinaDem3/Form1.resx new file mode 100644 index 0000000..428a268 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Form1.resx @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 4, 18 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/NeshinaDem3.csproj b/NeshinaDem3/NeshinaDem3/NeshinaDem3.csproj new file mode 100644 index 0000000..7c8bdbb --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/NeshinaDem3.csproj @@ -0,0 +1,127 @@ + + + + + Debug + AnyCPU + {E6B40B3D-4197-489D-AD89-F7FDABAF4249} + WinExe + NeshinaDem3 + NeshinaDem3 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\Users\Student\Desktop\MySql.Data.dll + + + + + + + + + + + + + + + + Form + + + Add.cs + + + Form + + + AddInf.cs + + + + Form + + + Edit.cs + + + Form + + + EditInf.cs + + + Form + + + Form1.cs + + + + + Add.cs + + + AddInf.cs + + + Edit.cs + + + EditInf.cs + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/Program.cs b/NeshinaDem3/NeshinaDem3/Program.cs new file mode 100644 index 0000000..0e1ec90 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace NeshinaDem3 +{ + internal static class Program + { + /// + /// Главная точка входа для приложения. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MainForm()); + } + } +} diff --git a/NeshinaDem3/NeshinaDem3/Properties/AssemblyInfo.cs b/NeshinaDem3/NeshinaDem3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3ee8e75 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанных со сборкой. +[assembly: AssemblyTitle("NeshinaDem3")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("NeshinaDem3")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, следует установить атрибут ComVisible в TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("e6b40b3d-4197-489d-ad89-f7fdabaf4249")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/NeshinaDem3/NeshinaDem3/Properties/Resources.Designer.cs b/NeshinaDem3/NeshinaDem3/Properties/Resources.Designer.cs new file mode 100644 index 0000000..3a32594 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace NeshinaDem3.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("NeshinaDem3.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Мозаика { + get { + object obj = ResourceManager.GetObject("Мозаика", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/NeshinaDem3/NeshinaDem3/Properties/Resources.resx b/NeshinaDem3/NeshinaDem3/Properties/Resources.resx new file mode 100644 index 0000000..b247be2 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Мозаика.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/Properties/Settings.Designer.cs b/NeshinaDem3/NeshinaDem3/Properties/Settings.Designer.cs new file mode 100644 index 0000000..d7dcc5f --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace NeshinaDem3.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/NeshinaDem3/NeshinaDem3/Properties/Settings.settings b/NeshinaDem3/NeshinaDem3/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/NeshinaDem3/NeshinaDem3/Resources/Мозаика.png b/NeshinaDem3/NeshinaDem3/Resources/Мозаика.png new file mode 100644 index 0000000..fdcf2fd Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/Resources/Мозаика.png differ diff --git a/NeshinaDem3/NeshinaDem3/bin/Debug/MySql.Data.dll b/NeshinaDem3/NeshinaDem3/bin/Debug/MySql.Data.dll new file mode 100644 index 0000000..a851892 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/bin/Debug/MySql.Data.dll differ diff --git a/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.exe b/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.exe new file mode 100644 index 0000000..396fc2d Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.exe differ diff --git a/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.exe.config b/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.exe.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.pdb b/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.pdb new file mode 100644 index 0000000..b67cf0e Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/bin/Debug/NeshinaDem3.pdb differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/NeshinaDem3/NeshinaDem3/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..15efebf --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/NeshinaDem3/NeshinaDem3/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..5d25611 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/NeshinaDem3/NeshinaDem3/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..47a0612 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Add.resources b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Add.resources new file mode 100644 index 0000000..fcb0161 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Add.resources differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.AddInf.resources b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.AddInf.resources new file mode 100644 index 0000000..fcb0161 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.AddInf.resources differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Edit.resources b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Edit.resources new file mode 100644 index 0000000..fcb0161 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Edit.resources differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.EditInf.resources b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.EditInf.resources new file mode 100644 index 0000000..fcb0161 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.EditInf.resources differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.MainForm.resources b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.MainForm.resources new file mode 100644 index 0000000..fcb0161 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.MainForm.resources differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Properties.Resources.resources b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Properties.Resources.resources new file mode 100644 index 0000000..bb1fed7 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.Properties.Resources.resources differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.AssemblyReference.cache b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.AssemblyReference.cache new file mode 100644 index 0000000..231f326 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.AssemblyReference.cache differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.CopyComplete b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.CoreCompileInputs.cache b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..280efb0 --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +900084b4915286c93bad341ccfaac782f71e1668c51fbab658605202469ce726 diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.FileListAbsolute.txt b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..e543c5c --- /dev/null +++ b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.FileListAbsolute.txt @@ -0,0 +1,16 @@ +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\bin\Debug\NeshinaDem3.exe.config +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\bin\Debug\NeshinaDem3.exe +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\bin\Debug\NeshinaDem3.pdb +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\bin\Debug\MySql.Data.dll +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.csproj.AssemblyReference.cache +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.Add.resources +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.Edit.resources +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.Properties.Resources.resources +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.csproj.GenerateResource.cache +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.csproj.CoreCompileInputs.cache +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.csproj.CopyComplete +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.exe +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.pdb +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.AddInf.resources +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.EditInf.resources +C:\NeshinaPolina1811\NeshinaDem3\NeshinaDem3\obj\Debug\NeshinaDem3.MainForm.resources diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.GenerateResource.cache b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.GenerateResource.cache new file mode 100644 index 0000000..b54ccd5 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.csproj.GenerateResource.cache differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.exe b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.exe new file mode 100644 index 0000000..396fc2d Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.exe differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.pdb b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.pdb new file mode 100644 index 0000000..b67cf0e Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/NeshinaDem3.pdb differ diff --git a/NeshinaDem3/NeshinaDem3/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/NeshinaDem3/NeshinaDem3/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..0817b64 Binary files /dev/null and b/NeshinaDem3/NeshinaDem3/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ diff --git a/PDF/PDF_Neshina.pdf b/PDF/PDF_Neshina.pdf new file mode 100644 index 0000000..c18503f Binary files /dev/null and b/PDF/PDF_Neshina.pdf differ