homework1

This commit is contained in:
Arisssssa 2025-11-24 01:18:10 +04:00
commit 3646eadb69
72 changed files with 8363 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,352 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\authorization.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\authorization.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\authorization.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\authorization.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\partnerdiscountsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\partnerdiscountsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\partnerdiscountsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\partnerdiscountsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\materialpurchasecalculatorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\materialpurchasecalculatorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\materialpurchasecalculatorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\materialpurchasecalculatorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\editproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\editproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\editmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\editmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\addproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\addproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\addmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\addmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\editmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\editmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\db.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\db.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\addproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\addproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\addmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\addmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\editproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\editproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 253,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{e1b7d1f8-9b3c-49b1-8f4f-bfc63a88835d}"
},
{
"$type": "Bookmark",
"Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
}
]
},
{
"DockedWidth": 200,
"SelectedChildIndex": 2,
"Children": [
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "PartnerDiscountsForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\PartnerDiscountsForm.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\PartnerDiscountsForm.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\PartnerDiscountsForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\PartnerDiscountsForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:58:05.324Z",
"IsPinned": true,
"EditorCaption": " [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "PartnerDiscountsForm.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\PartnerDiscountsForm.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\PartnerDiscountsForm.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\PartnerDiscountsForm.cs",
"RelativeToolTip": "NeshinaPolina2111\\PartnerDiscountsForm.cs",
"ViewState": "AgIAAAMAAAAAAAAAAAAAABMAAAALAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T19:02:22.087Z",
"IsPinned": true,
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Form1.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Form1.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\Form1.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Form1.cs",
"RelativeToolTip": "NeshinaPolina2111\\Form1.cs",
"ViewState": "AgIAAA8AAAAAAAAAAAAAACMAAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.282Z",
"IsPinned": true,
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "Authorization.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Authorization.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\Authorization.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Authorization.cs",
"RelativeToolTip": "NeshinaPolina2111\\Authorization.cs",
"ViewState": "AgIAABEAAAAAAAAAAAAYwD4AAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:41:19.301Z",
"IsPinned": true,
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "Form1.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Form1.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\Form1.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Form1.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\Form1.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.282Z",
"IsPinned": true,
"EditorCaption": " [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "NativeWindow.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs",
"RelativeDocumentMoniker": "..\\..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
"RelativeToolTip": "..\\..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
"ViewState": "AgIAALwCAAAAAAAAAAAQwNYCAAAFAAAAAQAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T19:13:51.354Z",
"EditorCaption": " [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]"
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "MaterialPurchaseCalculatorForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:12:49.021Z",
"EditorCaption": " [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]"
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "EditMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditMaterials.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\EditMaterials.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\EditMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T17:04:46.048Z",
"EditorCaption": " [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]"
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "AddMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddMaterials.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\AddMaterials.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\AddMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T17:04:26.104Z",
"EditorCaption": " [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Authorization.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Authorization.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\Authorization.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Authorization.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\Authorization.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:35:26.426Z",
"EditorCaption": " [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]"
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "MaterialPurchaseCalculatorForm.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"RelativeToolTip": "NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAABIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:17:09.878Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 13,
"Title": "EditMaterials.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditMaterials.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\EditMaterials.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditMaterials.cs",
"RelativeToolTip": "NeshinaPolina2111\\EditMaterials.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAI8AAAAdAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T17:11:39.597Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 16,
"Title": "AddMaterials.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddMaterials.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\AddMaterials.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddMaterials.cs",
"RelativeToolTip": "NeshinaPolina2111\\AddMaterials.cs",
"ViewState": "AgIAAH0AAAAAAAAAAAAgwJoAAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T17:05:53.625Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 17,
"Title": "EditProduction.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditProduction.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\EditProduction.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditProduction.cs",
"RelativeToolTip": "NeshinaPolina2111\\EditProduction.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.094Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "EditProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditProduction.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\EditProduction.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\EditProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.11Z",
"EditorCaption": " [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]"
},
{
"$type": "Document",
"DocumentIndex": 15,
"Title": "AddProduction.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddProduction.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\AddProduction.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddProduction.cs",
"RelativeToolTip": "NeshinaPolina2111\\AddProduction.cs",
"ViewState": "AgIAAGgAAAAAAAAAAAAAAEAAAAAjAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.172Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "AddProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddProduction.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\AddProduction.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\AddProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.282Z",
"EditorCaption": " [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]"
},
{
"$type": "Document",
"DocumentIndex": 14,
"Title": "DB.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\DB.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\DB.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\DB.cs",
"RelativeToolTip": "NeshinaPolina2111\\DB.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.282Z",
"EditorCaption": ""
}
]
}
]
}
]
}

View File

@ -0,0 +1,336 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|c:\\users\\\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\neshinapolina2111\\neshinapolina2111\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\authorization.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\authorization.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\authorization.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\authorization.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\partnerdiscountsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\partnerdiscountsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\partnerdiscountsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\partnerdiscountsform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\materialpurchasecalculatorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\materialpurchasecalculatorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\materialpurchasecalculatorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\materialpurchasecalculatorform.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\editproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\editproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\editmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\editmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\addproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\addproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\addmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\addmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\editmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\editmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\db.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\db.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\addproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\addproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\addmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\addmaterials.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\neshinapolina2111\\editproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}|NeshinaPolina2111\\NeshinaPolina2111.csproj|solutionrelative:neshinapolina2111\\editproduction.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 253,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{e1b7d1f8-9b3c-49b1-8f4f-bfc63a88835d}"
},
{
"$type": "Bookmark",
"Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
}
]
},
{
"DockedWidth": 200,
"SelectedChildIndex": 2,
"Children": [
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "PartnerDiscountsForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\PartnerDiscountsForm.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\PartnerDiscountsForm.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\PartnerDiscountsForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\PartnerDiscountsForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:58:05.324Z",
"IsPinned": true
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "PartnerDiscountsForm.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\PartnerDiscountsForm.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\PartnerDiscountsForm.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\PartnerDiscountsForm.cs",
"RelativeToolTip": "NeshinaPolina2111\\PartnerDiscountsForm.cs",
"ViewState": "AgIAAAMAAAAAAAAAAAAAABMAAAALAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T19:02:22.087Z",
"IsPinned": true
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Form1.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Form1.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\Form1.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Form1.cs",
"RelativeToolTip": "NeshinaPolina2111\\Form1.cs",
"ViewState": "AgIAAA8AAAAAAAAAAAAAACMAAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.282Z",
"IsPinned": true,
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "Authorization.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Authorization.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\Authorization.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Authorization.cs",
"RelativeToolTip": "NeshinaPolina2111\\Authorization.cs",
"ViewState": "AgIAABEAAAAAAAAAAAAYwD4AAAAnAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:41:19.301Z",
"IsPinned": true
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "Form1.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Form1.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\Form1.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Form1.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\Form1.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.282Z",
"IsPinned": true
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "NativeWindow.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs",
"RelativeDocumentMoniker": "..\\..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
"RelativeToolTip": "..\\..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\828643da17a02d332cf7e7e5b6e6392a423f0f0c791fad3baa903fb9c0493c01\\NativeWindow.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
"ViewState": "AgIAALwCAAAAAAAAAAAQwNYCAAAFAAAAAQAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T19:13:51.354Z",
"EditorCaption": " [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]"
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "MaterialPurchaseCalculatorForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:12:49.021Z"
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "EditMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditMaterials.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\EditMaterials.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\EditMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T17:04:46.048Z"
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "AddMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddMaterials.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\AddMaterials.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\AddMaterials.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T17:04:26.104Z"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Authorization.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Authorization.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\Authorization.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\Authorization.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\Authorization.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:35:26.426Z"
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "MaterialPurchaseCalculatorForm.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"RelativeToolTip": "NeshinaPolina2111\\MaterialPurchaseCalculatorForm.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAABIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T18:17:09.878Z"
},
{
"$type": "Document",
"DocumentIndex": 13,
"Title": "EditMaterials.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditMaterials.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\EditMaterials.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditMaterials.cs",
"RelativeToolTip": "NeshinaPolina2111\\EditMaterials.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAI8AAAAdAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T17:11:39.597Z"
},
{
"$type": "Document",
"DocumentIndex": 16,
"Title": "AddMaterials.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddMaterials.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\AddMaterials.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddMaterials.cs",
"RelativeToolTip": "NeshinaPolina2111\\AddMaterials.cs",
"ViewState": "AgIAAH0AAAAAAAAAAAAgwJoAAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T17:05:53.625Z"
},
{
"$type": "Document",
"DocumentIndex": 17,
"Title": "EditProduction.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditProduction.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\EditProduction.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditProduction.cs",
"RelativeToolTip": "NeshinaPolina2111\\EditProduction.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.094Z"
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "EditProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditProduction.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\EditProduction.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\EditProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\EditProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.11Z"
},
{
"$type": "Document",
"DocumentIndex": 15,
"Title": "AddProduction.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddProduction.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\AddProduction.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddProduction.cs",
"RelativeToolTip": "NeshinaPolina2111\\AddProduction.cs",
"ViewState": "AgIAAGgAAAAAAAAAAAAAAEAAAAAjAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.172Z"
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "AddProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddProduction.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\AddProduction.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\AddProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"RelativeToolTip": "NeshinaPolina2111\\AddProduction.cs [\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.282Z"
},
{
"$type": "Document",
"DocumentIndex": 14,
"Title": "DB.cs",
"DocumentMoniker": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\DB.cs",
"RelativeDocumentMoniker": "NeshinaPolina2111\\DB.cs",
"ToolTip": "C:\\Users\\\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\\source\\repos\\rep2111\\NeshinaPolina2111\\NeshinaPolina2111\\DB.cs",
"RelativeToolTip": "NeshinaPolina2111\\DB.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-23T16:57:00.282Z"
}
]
}
]
}
]
}

25
NeshinaPolina2111.sln Normal file
View File

@ -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}") = "NeshinaPolina2111", "NeshinaPolina2111\NeshinaPolina2111.csproj", "{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {39E90884-BF64-4F8A-9D9F-483487069815}
EndGlobalSection
EndGlobal

255
NeshinaPolina2111/AddMaterials.Designer.cs generated Normal file
View File

@ -0,0 +1,255 @@
namespace NeshinaPolina2111
{
partial class AddMaterials
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddMaterials));
this.label1 = new System.Windows.Forms.Label();
this.txtName = new System.Windows.Forms.TextBox();
this.txtPrice = new System.Windows.Forms.TextBox();
this.txtQuantity = new System.Windows.Forms.TextBox();
this.txtMinQuantity = new System.Windows.Forms.TextBox();
this.txtQuantityPack = new System.Windows.Forms.TextBox();
this.cmbType = new System.Windows.Forms.ComboBox();
this.cmbUnit = new System.Windows.Forms.ComboBox();
this.btnAdd = new System.Windows.Forms.Button();
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.btnExit = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// 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(130, 69);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(313, 67);
this.label1.TabIndex = 3;
this.label1.Text = "Добавление";
//
// txtName
//
this.txtName.Location = new System.Drawing.Point(72, 191);
this.txtName.Name = "txtName";
this.txtName.Size = new System.Drawing.Size(419, 26);
this.txtName.TabIndex = 4;
//
// txtPrice
//
this.txtPrice.Location = new System.Drawing.Point(72, 264);
this.txtPrice.Name = "txtPrice";
this.txtPrice.Size = new System.Drawing.Size(419, 26);
this.txtPrice.TabIndex = 5;
//
// txtQuantity
//
this.txtQuantity.Location = new System.Drawing.Point(72, 336);
this.txtQuantity.Name = "txtQuantity";
this.txtQuantity.Size = new System.Drawing.Size(419, 26);
this.txtQuantity.TabIndex = 6;
//
// txtMinQuantity
//
this.txtMinQuantity.Location = new System.Drawing.Point(72, 415);
this.txtMinQuantity.Name = "txtMinQuantity";
this.txtMinQuantity.Size = new System.Drawing.Size(419, 26);
this.txtMinQuantity.TabIndex = 7;
//
// txtQuantityPack
//
this.txtQuantityPack.Location = new System.Drawing.Point(72, 493);
this.txtQuantityPack.Name = "txtQuantityPack";
this.txtQuantityPack.Size = new System.Drawing.Size(419, 26);
this.txtQuantityPack.TabIndex = 8;
//
// cmbType
//
this.cmbType.FormattingEnabled = true;
this.cmbType.Location = new System.Drawing.Point(72, 568);
this.cmbType.Name = "cmbType";
this.cmbType.Size = new System.Drawing.Size(419, 28);
this.cmbType.TabIndex = 9;
//
// cmbUnit
//
this.cmbUnit.FormattingEnabled = true;
this.cmbUnit.Location = new System.Drawing.Point(72, 653);
this.cmbUnit.Name = "cmbUnit";
this.cmbUnit.Size = new System.Drawing.Size(419, 28);
this.cmbUnit.TabIndex = 10;
//
// btnAdd
//
this.btnAdd.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnAdd.Font = new System.Drawing.Font("Comic Sans MS", 14.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(142, 703);
this.btnAdd.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnAdd.Name = "btnAdd";
this.btnAdd.Size = new System.Drawing.Size(285, 69);
this.btnAdd.TabIndex = 11;
this.btnAdd.Text = "Добавить";
this.btnAdd.UseVisualStyleBackColor = false;
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(68, 168);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(83, 20);
this.label2.TabIndex = 12;
this.label2.Text = "Название";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(68, 241);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(48, 20);
this.label3.TabIndex = 13;
this.label3.Text = "Цена";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(68, 313);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(100, 20);
this.label4.TabIndex = 14;
this.label4.Text = "Количество";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(72, 389);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(208, 20);
this.label5.TabIndex = 15;
this.label5.Text = "Минимальное количество";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(68, 470);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(185, 20);
this.label6.TabIndex = 16;
this.label6.Text = "Количество в упаковке";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(68, 545);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(36, 20);
this.label7.TabIndex = 17;
this.label7.Text = "Тип";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(68, 630);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(162, 20);
this.label8.TabIndex = 18;
this.label8.Text = "Единица измерения";
//
// btnExit
//
this.btnExit.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnExit.Location = new System.Drawing.Point(4, 737);
this.btnExit.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(112, 35);
this.btnExit.TabIndex = 19;
this.btnExit.Text = "Назад";
this.btnExit.UseVisualStyleBackColor = true;
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
//
// AddMaterials
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.ClientSize = new System.Drawing.Size(558, 786);
this.Controls.Add(this.btnExit);
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.btnAdd);
this.Controls.Add(this.cmbUnit);
this.Controls.Add(this.cmbType);
this.Controls.Add(this.txtQuantityPack);
this.Controls.Add(this.txtMinQuantity);
this.Controls.Add(this.txtQuantity);
this.Controls.Add(this.txtPrice);
this.Controls.Add(this.txtName);
this.Controls.Add(this.label1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "AddMaterials";
this.Text = "AddMaterials";
this.Load += new System.EventHandler(this.AddMaterials_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtName;
private System.Windows.Forms.TextBox txtPrice;
private System.Windows.Forms.TextBox txtQuantity;
private System.Windows.Forms.TextBox txtMinQuantity;
private System.Windows.Forms.TextBox txtQuantityPack;
private System.Windows.Forms.ComboBox cmbType;
private System.Windows.Forms.ComboBox cmbUnit;
private System.Windows.Forms.Button btnAdd;
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 btnExit;
}
}

View File

@ -0,0 +1,171 @@
using MySql.Data.MySqlClient;
using NeshinaPolina2111;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
namespace NeshinaPolina2111
{
public partial class AddMaterials : Form
{
public AddMaterials()
{
InitializeComponent();
LoadTypes();
LoadUnits();
}
private void AddMaterials_Load(object sender, EventArgs e)
{
}
private void btnAdd_Click(object sender, EventArgs e)
{ //ПРОВЕРКИ
if (string.IsNullOrWhiteSpace(txtName.Text))
{
MessageBox.Show("Введите название материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (cmbType.SelectedValue == null || cmbUnit.SelectedValue == null)
{
MessageBox.Show("Выберите тип материала и единицу измерения.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
decimal price;
int quantity, minQuantity, quantityPack;
if (!decimal.TryParse(txtPrice.Text, out price) || price < 0)
{
MessageBox.Show("Цена должна быть числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!int.TryParse(txtQuantity.Text, out quantity) || quantity < 0)
{
MessageBox.Show("Количество должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!int.TryParse(txtMinQuantity.Text, out minQuantity) || minQuantity< 0)
{
MessageBox.Show("Минимальное количество должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!int.TryParse(txtQuantityPack.Text, out quantityPack) || quantityPack< 0)
{
MessageBox.Show("Количество в упаковке должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//ВСТАВИТЬ В БД
string insertQuery = @"
INSERT INTO Materials_import (
Name,
idMaterial_type_import,
PriceUnitMaterial,
Quantity,
MinQuantity,
QuantityPack,
idUnit
) VALUES (
@Name,
@idMaterial_type_import,
@PriceUnitMaterial,
@Quantity,
@MinQuantity,
@QuantityPack,
@idUnit
)";
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("@idMaterial_type_import", cmbType.SelectedValue);
cmd.Parameters.AddWithValue("@PriceUnitMaterial", price);
cmd.Parameters.AddWithValue("@Quantity", quantity);
cmd.Parameters.AddWithValue("@MinQuantity", minQuantity);
cmd.Parameters.AddWithValue("@QuantityPack", quantityPack);
cmd.Parameters.AddWithValue("@idUnit", cmbUnit.SelectedValue);
try
{
int rowsAffected = cmd.ExecuteNonQuery();
if (rowsAffected > 0)
{
MessageBox.Show("Материал успешно добавлен!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
DialogResult = DialogResult.OK;
Close();
}
else
{
MessageBox.Show("Не удалось добавить материал.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка при добавлении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void LoadTypes() //ЗАГРУЗКА ТИПОВ В КОМБО
{
string query = "SELECT idMaterial_type_import, Name FROM Material_type_import ORDER BY Name";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
var adapter = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
cmbType.DisplayMember = "Name";
cmbType.ValueMember = "idMaterial_type_import";
cmbType.DataSource = dt;
}
}
private void LoadUnits() //В КОМБОБОКС ЕДИНИЦЫ ЗАГРУЗИТЬ
{
string query = "SELECT idUnit, Name FROM Unit ORDER BY Name";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
var adapter = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
cmbUnit.DisplayMember = "Name";
cmbUnit.ValueMember = "idUnit";
cmbUnit.DataSource = dt;
}
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Hide();
}
}
}

View File

@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAAAAAAAEAIAD8SwAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAS8NJ
REFUeNrtnXd8VHW6/9/fc6Zl0iEkIZBAIIReBATBSresq65KkWJbde/ub6+4u+Lu3Xplryvbu11BiW3t
BREBG3ZRkA4BkhAIpNfJtHO+vz/OTEiAQMqcNM6Hl4oQyMyZ7/vzPN/2PAKT5K2uPtUvxwCDgRHAWGAY
kAkMBOKwZOnsUTWQBxwE9gBfANuAw0DtiV/sijMHD9EB4EcDk4ELgQuAkUBvwGGNAUuWGlQPlIbMYB2w
EdgFeMw0gogZwCnAzwKuAS4FJmFEf0uWLLVM5cAWYC3wMpBrhhG02wBOAF8BJgI3AXOAQdbnaMlSu5Ub
MoEXgM8jaQRtNoBTRPxBwH8DC4Ek6zOzZCniKgYeAR4HDkTCCNpkACfAHwssAO7CWNSzZMmSudoN/AV4
Bqhpjwm02gBOgH888CvgW4BqfS6WLHWYNOB14H8wFgvbZAKtMoBG8AuMVP9ejG08S5YsdY72AL8FcgDZ
WhNosQE0gj8W+BHw49DPLVmy1LmqAf4E/Dn08xabQIsMoBH8McAK4L8w4QyBJUuW2iwJPADcQ+ggUUtM
4IwQW/BbstRzTUBY8FuydPaagNIC+GMt+C1Z6jYSIVZXhNht7l5O8wZwwmr/jyz4LVnqlibwozC3zZmA
chr4wdjq+7EFvyVL3dIEfhximOZMQDnNXzAc+AXWVp8lS91VsRhndcY39wVNDOCEef99wFDrGVqy1K2V
iXFa95TrAc1lAAuAK61nZ8lSj9C3QkyfpIa5fSNnGAS8iXWxx5KlnqTdwBWEbhGGtwZPlQHcYsFvyVKP
0zCM6/pNmFegSfSfBNxmPStLlnqkFmIU7Glg/sQM4Dog2XpOliz1SCVhVOtqkNIo+odr+FmyZKnnak6I
dbzV1U0ygGvCv2HJkqUeq0E0CvRhA3BjVO+1ZMlSz9elGOX6GwxgODDOei6WLJ0VmoTRq6PBAKYDvazn
YsnSWaEYjEY92EL/M9t6JpYsgYLS7NU3KSXSKLvXE3QBEGMD+mGd+bd0lkogjH8LgVf3cMxXiI6OBHSp
gzBMQREKUUo0ve3J2IUdiezuhjASGGwDRmM18rB01oGvINGp1asp8ObyTfUX5NXvZ2v1R1QFKghKHU1q
CASqUFCFQpprAKNjJ5PiTGNc3GQyXFm41WiQdEcj6A2MsAHnAlHWkLB0toCPkBT5C/is8j3WlbxInmcf
x3yFaFJvejIuPBUIsV3kPcSXlZtQhUKKsz9DY0Yzq893OC9+Or3tfbpbRuAAxgpvdfUrwFXW0LDUs8EX
IOCY/wgbyl7lreL/sKf2GwK6DwEorSx5o0vQAZcaxfj4C5ifdjuT4y/BKaKQ6N3lsbwqvNXVW4Ex1hCx
1FOlCAWPXst75Wt47sjD7KzeTEAGUJtb7ANkCHDDPAyDEM18rSYh3t6Lq1OXcEPa90h19DfWD7q+vhHe
6uoqIK47vFpLllonY3HvQP0uVhX+nQ2lr1IXrD4lzLo0YLYrLuzCQbIzmWRnfxShUuEv5rD3EH7dT0D3
IJr580IoTE6czg8G/JKRMeORsstPB6qFt7q6x+xrWLLUCH2CBPi4cgMP5v+OXTVfnRb8NNdAxsWfx/m9
ZpPsSCPR1os4WyKKENQGqykPlFEZLOPtkhf4oOxNfHr9KTMCTcLg6JH8ePDvmBI/rcubgGUAlnoe/EKh
Xq/lhaNPsOrQXynzHzsp3Zch+NOjsrg0+Xou6X0Zg6NG4FRcKIiGbb6wmQghEAh2ebbyk52LKKzf3+y6
gRb6e+/J+iPnJ8zo0iZgs4aLpZ4kRShUaRU8UvAHXih6BJ9WfxL8uoRoWwIz+1zFvL63k+0eiSps6FJH
Sh2NE83CSBMECtFqDHG2hNOu9asCDtXn8of99xCd/U/OiZ3SZdcEFGvIWOopEkKhJHCUvx38Nc8efgC/
Xn9SlNYkpDgz+Mng+7ln0B8YHj0WgdIiQCWS3vYUkp3pZ1znVwXke/bwt4O/It+7H0V0TdQsA7DUI6QI
hZJAEX868HNeOboKncBJc3RNwrDYsfwy++98O/kGXCKqlZFZ4hBO0lz9WgSOKmBr1aesLPwrtVp16NSh
ZQCWLEUc/vJgCf/Iu5d1Jf8BtCaoGfN9hQt6X8pvsv/N1IQZbT69JxCkOvtjV+wt+3ohWXPsWV4pfgrt
pMmFZQCWLLVLQihUaZX8O/8+1hx7BtBPgl9KlTnJc/mfrL8wzD223YtysbZ4VGFvkX0IwK/Xk1P4b7bX
bu5yUwHLACx1X/gReLQaHi5YwStFK5EET4IfaeOq1Ju4e9B9pDnS270YJ4SgOlhBUPe3OKFXBBR583n6
yL+p0aq61FTAMgBL3RZ+v/Sx+si/+M+Rh0+a8xvR2c41fW9laeZv6G1PjshKvC518usPEJDB1oEmYFPZ
OjZVrOtSnTYtA+gGA70lP8426ei8WfIsTxX+g4D0nQS/wM51fW/lvzN/SYItMSLwCwR1eg1HvAVt+LPg
0Wp4sWgl5YGSLvOZWecAuqAUFIQQ+HU/fukLDWqJxLiiCqAKW8OBFQWVKNWNgoIuZXe6jNI2EIXCZ1Ub
eaTgj9QGq5rs80tAwc51abfx/QH/Q5yaELE9eCEUDtbvZV/dtjZFTkXA9uov+LhyA1f2WdAlDghZBtBV
BnXommpQBsj35nHMf4Q9tVv5puZT6oIe/DJIUA+iEwx9cHbsig2n6qCfcwDj4s8nyZ5CijONNOcAVNQG
4+hJUoTCXs92/nbw1xR5806CH2x8p++tfH/Az4lV4yN6AEeTQT6t2Ei5v7jVtweNzxjqdQ9rip/ngsTZ
JKi9Ov3zsQygswc0CkGClAQO80XVB2yu/IjtNV9wxHsIv+5Dk4HTDhHjpprgpaNP4RB2BrizGB07iSm9
pjMiejy97cmoQu0ut9POAJCgIljGI4d+z+6ar08+3isFs5Ov5XsDfkpchOFXhMKB+j2sLX4BKXVEGzN4
VcC26s/5puZzLk68rNOzAMsAOnEwI6DAu5+1pS+yvuQVCur349HqUDh+/VRt0UCT6NJLvfSys+ZrdtR8
zZri5xngHsK03lcwOfEShkSNwqk4u7ERGJd7Xjy6kvdL3zzlCb/ze83mhwN/SS9bUkTfp0Dg0328dHQl
+fV72xT9j/9dUBOs4r2yNUxJmI4NO50pywA6YygLhTqtmvfK15Bz+F/srt2KlDqKALs4Fd7G+fVTDabG
g7GxYdRpFWyv/pwd1V/wQlE6F/SawxXJ8xkePa5bGoEQ8EH5WnIK/0FA9zV535qE4bHj+OHAX9HfOTDi
700IwWeV77Km+Ll2Rf+wFODLyg/Jr9/PEPeITv0sLAPoYClCoThQxAP597G2+HnqtToD2lNcWNFDvxxr
iyPRnoJTjWpYPQ7qAWq1Ssr9xfj1IEIYAyt8V/24GUiOegv4z5FHeK/sDaYlfZtrUpaQ7R6FgtotFgwV
oXDQu5dHC/5ERaC0SVakSejrSueHA/+XodFjIg6TIhRyPTt5uOB3lPuLW5iRnenvhKPeQnI9uxjiHtGp
z9YygA6UEIL99bv5Z95y3it9HSH0Uw4oCfR1ZXBx7yvp60onzdmfTPdQYm0JRtlqwKvXc9RXyEHPXqqD
1ZT4j/B55bsU+4qoDVYCx7OBcLQs9RXx/OGH+KR8A99OXcSVyQtIcfQLzUO75mKhQFCr1fDEob+wq2bz
SYt+sbZe3DHg55xnwt17RSgUeA/wt7xfs6N6c0TgDysovXxdvYkZva7EJjoPQ8sAOkiKUMit38V9uT/m
q8oPTjuYpIQZfa7ihwN+g1O4mtxNb6x+joFMjLsQAJ9eT0ngKPn1ubxXtoat1Z9yoG43QelvWE8IG0Fh
fS4P5i3n04oNLO7/30xNmIEdR5fMBqSQvFP2CutLXm6S9hvbfTbm9buNy/pchwhtiUby89pfv5s/H/gf
Pil/p13z/lNJB3bWfEOtVkWiLanTdgPUX/zsZ7+x8DRXQigU+Q/xxwM/47OK9WeMJBIoC5QyPHY8ac7T
HV+VDT9UoRKvJpIeNYipiTOYkjidQdHDqQlWUeYvISiDDYNYhKYGh70FfFrxHnV6LZnubGJtcV1q21AR
CjvqvuJP+39Gqf9oEwh1CdP7fJv/yvg5MUp8xF53uPjHttov+eOBn/J5xbsRh7/x5zcp8RL6OtMtA+ix
8COo0av528Ffsb7kpRalkUJAZaCCGq2KKYkzcCktq9puDCKJQJBg783wmLGc32sW/aMyKQuUUuI/ipSy
YRFLEeDVPHxT/Rm5nt0MihlGH0dql3luVVoF/8j7X76u+uikeX92zFiWDf49/V2ZEctcFBR80sfG8tf5
w/6fsqvmq4im/Sd+xh6tjuGx4xkZM6HTDMA6CmyypIANZa/yTulLCNHyD1kV8FnFRjaUv4ZswyA0qttI
kmwpXJtyM/cPe5wb039EgiMZrdHLMKKbxsfl6/j1nu/zfsVb6OidflRVCslbJc/zftmak1L/GFs8N/b/
IVkRWkE3or5CUeAQ/y5Yzv/tW0qeZ7dp8B83Mp0jvgIC0t9pz9nKAEyUEjo6+peDv6DYd7hVqaQAAnqA
A57dZMeMor9rYDuihCTB1ovx8VMZFjOa0kAJR7z5GNnCcSMo9R9jc9VHxNnjyHKPRBVqpz23nXVb+NvB
X5186k4qXJf2Xeb3vQNbBJawFKFSL2t5v3wNfz34K94peRGf7jEd/rCZxdsTuTBxDk6lc3rzWAZgooIE
eOrwP3m39LU2DSghoCpQwZ66baRFZZDmGoBNtO3giHFnQGFAVBbnJlyEhs4Bzx78uq/JlKAuWMNXVZ/g
tLkYETsOtYPXicMXbv6d/398Wfn+San/uPgp/Hfm/9LL3qfNhigQKELBL/18U/sZDxWs4MnCv5Ffvw9F
yA7NfSSCWX2uIU5N6JRpgLULYJKMM+u7WF/6Mu3ZYlME7Kn9ht/s/QFz+lzLzKSrGeIeQbQai5S0ev6r
S50Uez9+OODXZEeP5t9591HsK2iyZVgbrOTBvPvQpWRB2h04cHTY4JRCsq7sFd4tff2kRb9ejhRuzfhJ
mw77hJuAIqBWq2Jn7RbWlb7Ih2VvN2RnaifMeuqCHuo1j5HydcIygGUAJikoA7xd8hJH6vPavYqsCij1
HSGn8J+sKX6OyQmXMC3pW4yJnUwvWxJOxWXM+Vs4giQ6LhHFt5NvIMmRwl8O/Jz9dTubmEC9VsMj+fcT
a4vl6uQlHbImoKCQ783lucMPUa/VNgFSCJWrUxczKf4S9Bbv94tQtBfUabWUBYr5rOpdPi5fz+aqTVQF
yltx3DryEgKC0k+1VtFpey+WAZg0kA/78/mg7K2IfbBKaOuuMlDMmuLn+aBsLWlRA5iaOINxcecxKnYi
cWoidmFHESpIiX6a7CBc6vr8hFnEZyfyYP59fFKxgXA9PUWAR6vmkYI/kOpMZ2rCTKTJR1b9+Hnp6Cr2
1X5zUuo/IWEq1/e99bTnFcJbeCAIygBBGaDQd5AdNV/xVdVHbKn+jKPeQ3h1o1S42gWu5GvST1Wg3Dj8
YRlAz5AUsKNmM4URiP4nD3KwCajXq9lXu419tdt4wRZLVvQo+jr7MzHhQoa4R5FgTyTVkY5DcRpbfw0b
PvK4AQBS6oyOmcgvh/ydB/Lv541jOchQdR3jyGoB/8pbTp/svmS7R5p2bl0RClurP2XNseeQjRYndQlJ
jr7c1H8pfR0Zxln80O+G34MQxiGgymAZR32F1GsettduZkvVJ+TV76PAs4+gNMqFCWE8vy4zVpBoUrMy
gJ6kgPSzqXw9Xt1j2mBrnLrWazVsqfqELcCG0teIUtykuPoyPGYiSY5k0lzpjI6dRIKtN6pQcSsxuNWY
0LTTOGWY6kjnrsx7capuXjzyKBJ/w/fYWbOZf+Xdy6+G/INettMvvoXn2oo48YKDbLZYiUBQrVXy3JFH
KfEfOSky948aiF/6+KzqXRyKk4D0U6/VUeYvptR/FL/uo06r54gvj/1126kMVODVPARkoOE9dIVo3+wz
68TXZhlAxMFUKAsc44Bnd4etJoezAgBd+qjVfFTXVrCnZidCgFt1E2dLwm2LIc4Ww7CYcQx2jyTGFkuc
LYHMqKH0svchSonmjoy7cQgHLxx5mID0AEYm8FH5Ol4pfoob0+5suI/Q5F0LQVAG8en17PVs55jvMH7d
j46OioJTdZEdPZo05wDswtF0OiFgU8U6Pip/+6SMSRGwu/Zrlu/9IUKooQtMGprUCOhefHo9QakjJSdd
iOpKkb45KUIlSonurDVAywAi/4EKcj27yPPsMfEI6ZkNoXHU8+kein0FhKqLsbXqc0BgV2zE2uJJdQ4k
wZ5ElOIk1dWPzOjhZMeOZlvVZw33CDQZ4MUjTzAp/mJGx0xsmAoIoeDT69nv2c0H5WvYVv0VeZ7dlPmL
CEgtdPJQYBc20qOGMDJ2PFenLmFMzLkoKEahM6lz2JtPXbAO+ymOpvl1L37dC9AA+knm103LIqo4iLUl
GtMYaW0DdntpUuOwN496zdNpBnAqQzg5zZToMkBloJRyf2lD9FGFwCGikGhNXr8i4Ig3j2ePPMygwUNx
KzFIJPs9O3mu6FHeL3uDUv9RNKk3vZYc+jsCUiO3bjv76rbzReUH3D7gHi7vMw87doRQGBd3HgOjh1Lg
2XNSut74f0UPqn8qJdgUO9FqTKe9BusocIQVkH7y6/dCF+wC05w5qKGFMZsAgcQvPQTD6cIJ2lb9JWWB
EoQQ1Ot1PFP0EM8dfpgS3xEEOjbBKdtwN/4+R7x5/PXAr9lY9jpSGAuR42On8ushfycrelSTo8o9WRJI
diYTq8Z1WmkwywAiCpPAr/vYX7e7W5fiPF2QTbD3Mm4NSolDcRJnSzDm3q2IzKqAykAxD+Tfx+66rShC
QSCYEHc+S9J/SJQa08NKmTZvACNixhN7hm7DlgF0IwVkgAp/ZQ99d4KJCecTq8YDRoXbPM+eNk2/w91z
Xzn21PHS51Iyo9e3uTxl/lkxNG1CZXD0iNBtTysD6BHS0XtkXX4JuNUYxsVNxSYcgOCQ9yDbar5u1/rb
5xXvUug92LAg6FZjuTX9R0xJnNmjpwK6hBRnOuPiJnfq67AMIMLSZPC0J/C67/uC0XETGRU7ASkNkztU
vx+vVtuuEtmHvfns9+wJneAz1gP6OjJYmrmciQkX9lgTkMDIuAlkuAZ3amlwywAiDQoaUnaPBcDWDFan
4mRWn2tItPVuOAhUGSwj2M677EE9SKn/WBPTlFJniHsk9wz+I1N7zUJKpUetCYRrGlyRPA+3Et2pVZgs
A4iwbNhQRM/aXdUljIydyIWJl3K8Oomgtz0Zu3C292+nMlhCUAZO+J46We6R/CLrb1yZuhgF5ylLo3dH
aRImJVzM+Lipnd4YxDKACMsu7NiFvce8HwlE2+KY3+92kh1pDesbAkF/VyYuNaZ991hOWxxVJ82ZwY8G
/R/fz/wFyc7+BGVXrV/cMhlz//7MS7uj02oAWAZgolRhI8bm7jkGIGF2n2tD0V82sYY05wCGRI9o54qH
wK44G11WOhEYnTglniVpP+TeYQ9xbsI0FBzdcm1AAjZhZ17abUyIm9olmrNYBhBh2RUH/VwDe8R7MTru
jGdxvx+cNFeVSOJsCUzr/S1swt72OCYhSok+4X6BUbEnfD4gXM1octzF3DfsEe4c9FuyokcjUbqNERgv
U+XbqTdyXeotHV5pyTKADvmQJU7hYmjMOEQn1dOLlHQJfZxp/NfAn5MZNezU0UrC9N7f4uLeV6K1MTUX
QiHOlthQf1AgCEgfB+p3s9eznRq9CkUoodek08eWwsK07/HHEU/x3Yx7GBw9Cona5u/fUfBLqXJ58kK+
P/DnxNkSu0z5desuQISlCpU0ZwYO4SAg67vlHRUJuNRobky/kynx05stBCKR9LYn86NBy1GFwnulrxFo
1IikJSbjVB0k2HoBRk2A8mApTx3+J28X/we/9HFO3Pks6v8DRkVPaDgrgISBzizuSP8plyVfzycV77K+
9BX21n5DdaAKVRy/i9DZ0iQ4lSiuTruZ29J/Qm9bny7Vl9EqChphCSHQ0Pi4Yj0VgbIucyGoNfAr2FnY
/wcsSvsBjhNW+Y0SWyoilJ7r6MTbEjk34UL6ONMo9R+jOlhNUAYbonL4Hz30jyYNOO1KNJckXcHVKYtx
q7GUBo7x17xf8Z8jj1AdrKBeqyXXs4svKj/AptgZFD0Mp+JsaIYiEPSyJTEqdgIX9bqUYbHjiLbFUROs
xKf7CciA0V+xE8wg3NtxgHsotw1YxpK0H5Bg69XlmrIKb3X1WXL1osMeKT5Zzy/23sH6kpe7xZ30xvCr
wsF1fb/L9wb8D3FKQpNVfxDUaBXk1e9Dk0ES7En0cw7ALpyhqjw6hd6D7K77hk3l73DUdxS/7sGn1wPg
UFw4FBc2YScjaiCTEy5hdOxEkuypFPkL+EfectYWPwvoTYDVpJGRXJZ8PYv7/ZDMqKEgZZM0OlwOzKd7
OeQ9wMH6vXxQvpYDdXvZ79lOvebh+AYmphhzuIuzBJIcqUxLupLr+t5CtnskQoou1XXJMgCzHqgQqIrK
M0UP8cfcZegn7G93ZfjtwsX8ft/ju+l3h9ptGeW3NIIc8xdR4j/CG8XP8GHZGjQZINnZn7FxUxkSPYLx
ceeT6uhPlBqNjk5A+gnKAF49VPUWcClROBUXqrBhE3YcwoGGxlfVH/NIwR/4onIjjXsVnPj6pIThsRO4
Y8BPOS9+WkMx1BOlCGOqEND9lAdL2FbzJcd8R9ha/Ql76nbh1Wop9x/Fpx8vExa+wtzUypt/Vg0/D0V6
CcTZEkhx9ufC3nO4IHEWo2Im4FKiunQrdssAIgS9EIKgrlFaXc72AzvZVLKBNx3/Rrd5uwX8TsXNwvT/
x639f0yUiEaXOgoKZYFi1pQ+z2vHnqEqUEq5/yhaqHBoePC7VTdprgwu7HUZc/pcF2o9rpzhmSmUB4t5
o/hZni78N0d9h1pUtkuTkGjvwxUp85nb97ukuwZhLAucehiHewDo6NRpNdRqNZT6j7K5ahPHfMcISB8l
/sPsqf2GqkBVQ3s1XeroBE5e/xACFaPwqkCht6M3w2PHk+Loz/j48xgec07ogJQDvRucCLUMoF3gKyhC
UF5XyYGiPNZ9tZEdebvYU7CPoN2HOrUAmVZJl74aIACvHfv+/tyQ/n1mjZ7JgOR03I4oCr0HeKjgd7xT
+jJerb7Z1DkcnRGCgVHDmJv2XeYkfafZrrdBgmyp+ZQnC//BZxUbCOr+VqXkegjsoTHjuKHf95nW6wpi
1LgzRtqG3gDIhvCuSY1arZpifxG1wRo0gmgyiEer5ZivkJpQq/WwXKqbfq6BxKjx2IWDOFsCqc5+uNUY
Y5GyDb0aLAPoZlIVFb8WoLiyhA+2f8zHOz7j69yt1HrrkFJiU20gBWJQGXJiAShdMBKEgat0w/Y0ZGEc
qlCJdkVzwZjJpI+N43PWsqXqo9BUoGUy5uturkpdxO3pPz1lEdG3yp7nLwd+SamvqMU7Bs19L7cawyVJ
32Jhvx8w1D0aG7ZWX8YKrx8crzZs/FuT2kmmIoRAFTbCXx0uqtoV5/eWAUTyQYXSfH8wwI6C3Xyw7WPe
2/oBh4oLCWhBVEVtuNEWHkXCpSEnH0SmVSG60lMWgKbAoV6IXSnIyigQEnQBUQGCg4oguwTFJdt0UCS8
nnBzxo+5ud9dOISzAZCgDPCLfbex9thLp6z/15bvpUvoH5XJt1MXc1nSdfR3ZZ52WmDJMoBWgq9Q661j
e/5OXv/0LT7b/SWlVWWAkQ00Ozh1cGZ4EecV4FVrOn9fOvwCqt2IvcnIvEQIqAb8UkBCPcroIvS0SlD0
dp2s0SUkOJL57dCHmRo/o2Hbrlav5se7lvBZxYaI7pDo0qiwmx0zhqtSFzOz91Uk2VO6dXTuCFkHgU4j
VVHx+Ov5av83vPrxG3y883NqPDUoinJa8I0BqRPljGLJmJuIGeTlocL7qA1WdM65gND3FD47FCQic/sY
UT8MhgCRXokceQQ9wXN8474dUgRU+It55ehKxsZMIlqNNbwnWElNsDLiZhhuc76r5mv21+1kY+nrfCf1
JqYkTCfelmgZgWUAreBFKGhS45uD23jxw9d4/5sPqaqrRlVUY35/BulSx+VwsWTWDSyZMR+7XQEVHsy/
j7qONIFwP8yACkXxkNsHWRJtpP/hqO8IIrJLILsYnIGIn6fdU7uTsmBxgwH4pe+kq7+RlCogKH18VvEu
O6q/ZFz8FK5MuYFJCReTaOsTmhr0vIItlgFEBHwj3T9cdoSXP36DVz9+k+LKUhRFaRH4jeG/cfZCFk+f
R5TDCRLm9r0Vh+LkXwfvpSpYam6nmvBid0BFlMVAbhKyKO54uh+CXyR4YUQRMr0clMgfphcC6rRKDnvz
yHBmEaIPs0/tH2+fVsNH5evYXLWJsXHncWmfa5maOJNkRxpIYRmBZQDHpSgK9QEfG7a8z3Pvvcj2vJ3G
A1JbfqnnRPjdDldDwQc7dq5JWUyCPZFVh/7GzpqvkOiRNQIlxJbfjiiJgfxE5NE48NmM3xAhAAWQVgWj
i5C9aiOS8jcHok/3Uhkoa/gGdsWO2kH1EsKlyP26h08rNrKl6mOGxo5lVtI1XNhrDmmODByKK1Ti7Oyc
Hpz1BiAQCEVhX9EBnn//Jd74dC0eX32rwG8C/6wbToIfjBVpFRuzel/NsOixvFacw7riFznszSMogyi0
4Xhqw7a2gKCCKI9ClsQgDicgK10G+OGIj/F1wqHBoFLksGPIKL/pV+hswkaUerw+glOJCu0KdORnbGQE
Aenlm6rP2FH9JS8WPcH5vWYxvfeVDIsei1uNRkjRI+s5WgbQ3MAQCr6gj4+3f8G/X3uYfYcPoCpK++Cf
Mf8k+GlsAxLSnZl8L/1nXNrnOj6tfJcPy97hsHc/h+vzGgbgid1wlBPaXwm/Dem1g9eGOBqHLHdDZRTU
25EydNhFafQapIAYH4w8CgPKQdVMh1+GzvD3cfQNOxVRihuH0jkFU443VNXI8+wh37OXt4qf45z485nW
+wrGxp5HqrMfduE8a7KCs9YAFEWhoq6Kx9Y+xWufvEm1p6bV4DfAbzcW/BbPmHca+JvYAAoKWVHDGeQa
yjXJSzjk28+26q+o02qoCpZRUJ9Lse8wQkhq/XUUHjuMXu1A1tmNuXyNC1HhRvpUZEAFXSBF6IRb40MH
oZRfpNYgRx1B9qkxLeU/+X1CtBpPH0da6F1L7MJBoj2h0z9/wwgklYES1pe8wkfl6+jrzGBqr1mcm3AB
Y2ImEWuLxyGc6D3YDM5CAxAIAbsLc3l07So2fP2eMSCUdsA/21jtbwn8J/55ALcSzTD3WIa7xxmXWKSf
2mANAenDHwzy7zce5eDn61A1OwQVA3bjrdBwrFU5xfeVAmw6ZJbCiGPg9nV41Yx09wBibfEN/28XDsbG
T+Ld0leRBLvAaDCmB37dQ55nNwc8u3nt6JMMcGczNXEG4+KmMMg9lD72vsb5f0nDdWTLALob+sKoFLH+
6/f412uPkHcsv03gN8DfsNU3r9XwN+E0dJw0LBUbvRxJ1PnqeeDtx3hn0yaE7jwOvdKC76MLRKwfMfwY
+sBSpE3rcPgFULbfR1lyFRlJMWiahiJUhkaPxaXG4NEqu0zBlMa3Auu0KrZXf8HOms1EqdEMiR7N0JjR
TEmczuCo4fSyJxOtxoY+M9lwdLhbMnG2nAQUQqBJnbWbN/CXF/9JaVVZi7f2Tgm/3cWSWQuMyO+Mimh5
Z0Uo1PnrefDNx3h6438aWmy30E2M0ZxUhxh9BJlcc3z1v4OJEh4H+qZMpvSZzl3X/4DBqQNBQqm/iHt2
38Tmqo+6fL0EyfECJtG2eHo7+jAufgpDo8cwLHo0We6ROBUXLiXKKJAiZbfaXjwrMgAhBB5/PS9seo3H
3nqSak91u+B32p0snrWAJTPn43Z0JfgFqDpKZgVyeBEyxtth8/1TqiQOURnNppJPqFxVyQ+v/h6ThpxD
b0cKo+Mmsbnqo64/dqDBpOq1Kg55qsj35KIKQZKjL6nODIbFjmJC/MUk2BLp60ynrzMDJfRDCBEqptw1
pw09PgNQhEJZbQWPr1vNix++is/vQ1HadgslHPkXz1rAjV0u8guE248cdgwxuAxpC3Ye+AJE0AafDkQe
SgAh0XSNfklpfP/K27hswky+qtnE3TuXUBUs6ZZ1E43xYFxNVgCb4sKlOMlwD2Fg1FCSHH04J34KA13Z
OBUX8bZE3KHTkOGpQ8NH14nG0KMNQBEKx6pK+efrD/PW5+vQdb3lQHUC/B5/PQ+8+ThPb3y+9fAn1RkH
e1KqOiflP9EACnvBZwOQfuX43XtdIzE2kf/37duZMekCfrXvdt4vfatblU077ccQNgVp7DJE2xKIUWNJ
sCcwPHYiA6Oycatu+rsGMiR6JC7FjYIaqpKkdkrloB5rAIpQKK4q5c8v/4t1X24w3my74HeyeNYN3GhW
2h+o58E3Wgm/FAhVh4wK5KgiCKf8nSkRunT0aSbySBwn3oPWdZ1Ydwx3XvMD9MHF/D73bjTp67ZZwJkM
QcqmszC7UEmwJ9HbkUasLZZUVxpjYqdwTtwUBkUNbahJYBlAe96UEJTXVvLnl/7FW5+vazf8TruTJbNu
MDntbz38RAVQhhUjB5cg7cGusRAtBGJfMvLrfkZ9gVM9U10nITqBBd+6io8Snmdr9cd07y4KrR1Tx03B
mIzaGB0/kd8M+ReZrqEduojY4xqDCCGo9Xl4dO2TvP3F+nbD7wov+JkAvxAKnkA9D7UBftHbA5Py0Yce
7ULwgyiLhr19jBuHzQ06RaGyrpLn176B80gyLiXqrDqJrwhjimALn/AkSJ5nN3n1e9s8Vi0DCIEe1DVe
+PBVXt70GrrU2x35F81cwI0zFhBtQuSvD3h58I3HyWkp/FKAkIjMcpiSB2mVHL9h1wXgD9hgTwqy2sWZ
SiApikJ5VTm5n5YRU5uMOEt7VGmhhcTB0aPJjh7dbBMWs9SztgGF4O2vNvLE20/hC/obWkq1Ff7FMxdw
40xz4PcEvDz4Zivg1wXCHYTsYuSQY2DXut7Zk7zeyMJ4Wlr/TCiCyhIPjq1RiHMdSLu/e7f+baHCi4UC
hYyowVzU+1K+nbKIvo70Dt8R6DkGEDrh95cX/0m1pxZV6Zrwi8bwb3iu5ZG/t8dY5e9bBULvWqAIUMri
kHuTjxcbaekfVSBQ6EYkJcKQYz0afF2GCpna3Ax0D2NW0tVc0vsyMlyDQ2XEO34XoEcYgKIobMvfxd9e
eaDdJ/wM+OebBn99wGvM+VsCf2iVSGRUIEceQcbXd+7Bnmbgp86J/CYVWe2kTdVPNQW5uw96fC0ipa5r
FVBtJ/A64cNETga6BzIidiLnJV7CxPgLSHH0Q5FGz4LOah7S7Q3AuNVXzRPrcigsOdwO+GUj+G8wFf6c
Dc+hnxF+Ac4gDDsGWaXgCHS99Dg075c7+iKPxtJWcnU0YoKJXOi+kK3ONRypz+82PRXD7zg8VML+LBD0
cabSy55KpnsIF/e+giHRI0LR3m5UJJJ6p9cf6NYGYBzx9fLwmid4b8sH7brYYyz4mQ3/E+RseL5F8Ite
9TCyCNmvwrjm2xWjoq4g9qVAfi9kG4HVpU6UI4qb5ixk3iXfYW3FCP60/2f49NoOPxugCBu61AnoZ4ZS
YqzgRylRuNQYFGFHRSEzOosxcVNItPdmWPRoBkYNwa3GEBWqgaBL/aSTgJYBtBUsRWHTjk959ZM32z6G
Q5F/0Yz53GQm/GueCEX+0+xMSGHc9OtfgRxzBOK6YMrfWAWJ6Lv7GFeU2xD9w/Dfculibph2HVF2F5cm
Xcee2q28WPRYqJR4B3mZhEHRQ5maOJPKQBUBGURKrUmENpqBKKEmIgpu1cXQmFFkuUcSrcZiE3ZibXEk
2vpgE7Ymtzy7an/AbmsAiqKwpzCXR9Y8gcfraeN9fonT7mDRTPPhX73+OeSZ4HcFUYaWoA82p0Jv5N4Y
cCQetqYdLzvWDvgXTrsel90ovBGtxHJb+jLK/SVsKH3V3OKpJ7yn6kAV03pfydjYyWhSa3TvP5zUH7eB
4z8TTXabwuXHtW7QFxC66TkAIQTegI+n332evYW5EYDfvAW/h0ORX57pTEKsF87NRx9+pN3w6xKCEgK6
8d/jxQMjNGLKYmBLf/A4IxD5DfjDz16ik+xIY+mg3zIpcUbo9XcMCMd8hbxybDU+3Ysa+mHDhg07Nmyo
2FBRj9/0Cz1TXeoN/3S3QiHd8iiwEAqvfPomv3/ur/gCvlYf9pFS4rA7WDhjHjfPuoFop9sk+FeyesOz
LbuEdE6hseDXgkwxvI/cgLYQKNgRKChCkuRIZVD0SGLUBCQaEOSrqo8o9R9tnw0IEDVu+HwAsji6XfDf
fOkiFk6bS1Qj+JsAKRT2eHawfN9StlV/0iEXhnQJCfZk7hv+GFPip3Xptt6RUrebAiiKQkHJYZ5776U2
Ve+VUuKw2Vk0Yx43zVpoauRfvf65Fp9GFAEbUhcn3+QTjf4rQNcgRoknxZWOTTgQaAyLHcv4+AuJURMI
6l6SHClkhW6bCQQ7ajezs/ZrpDSq3rQVfqUuCrako7cT/nDkbw7+8Ndmu0fy06wV/G7fT9he87npJqAI
KA8U88rRVYyOmUi0EtPjC4N2OwMIaBrPvP8Cuwv2tA3+UOS/adYNJsK/slXwI0HmJiGifcj+lU2bdARV
lFoXeq0DzQvZycNZMG4hU1Om4RAugjJAlOIm2haLEprRNe5YqwoVj1ZLbbCqXfCLOhd83R+9MLZ9kX/O
ojPCf/zz0hkZPZ6fZf2R3+X+hB01n5u+JqAK+Lh8A19Uf8C0xCsiOj4sA2inFEVh876veefLjQil66X9
3oCXh98Kpf2tuYcggHob8uv+cLAX2HXjJl1AgYAN6beh1cOo9JHcPX0po/sPO+naqJQSDa0Z+CSeoK/t
8HtciC3p6K045tsc/Aunz20R/E1MIOa4CZidCQigOljBC0ceY0zMJHrZknp0FtBtFgGFENR6Pfzng1co
qSpt1Tn/cNpvOvxrVrJ6/bNtKzwiAJ8Kx+KgMMFYZS+OhYoogrWCkRkjWTZvKWMyRxjv6YQfzb53JB69
Fo1g6+f/DfD3Rz8UT1tWJtsD/4km8MvsvzIh4RLTFwZVAZ9Xvs/a0hd6/BSgWxnAJ7s+58PtH7dq1b8B
/pnzQ2m/eZH/qQ3PtqvqUENN//A/ikQjyMjMEdwzdymjB4xo5W0xgU/3srN2M5r0tx7+Wjfiq3T0goT2
w9/CtP90JjDMPYZfDfkrF/f+FhJhGpoCCOg+Xih6jNz6nW2+VGYZQAThr6yr5oVNr+Lx1rcYsDD8N4Tm
/DFmwr++nfCfQpquMXJgW+E/3ptvW/Xm1q1oKyCqohGbQ2l/m+F3cdOchQb87Sib3vjvHOjK4n+y/sic
PtcjUE0zAVVAXt1uXih6nHq9vsMr9VgGcIIBfLbnS7Yd2NHiW35SSuwh+G+evdBE+FeZCP/wNsMffm75
3lwKvQdbPnwVoDwGvkxHPxLbPvhnL2LRtLkRgb/x353q6M+PB/2OJelLcavxaCa5gBDwdvGLfF71bocX
6rAMoNEgrvV6WLd5I7X1tS36IMLwLzQVfh+PvLWKp9Y/YyL8d7UZfgBNanxW+R7HvIUtu1wjMNYdPs9A
Fse0Y8HPxU1zFrFoemThb/z59ralcEf6z/jRoN+R4kw3xQQEUBUsI+fwvyn2H0H0vAJa3cMAdhbs5vM9
m1t006/Jgp9Z8Ad9PPLWSp40C/4Bw1nWTvgFCkW+Q2wsfa1lC1kCKIqHzwdAubt98JsQ+cNjwRvwUV1f
g0TiFE6uSlnEr7P/wZj4yegy8usCqoDNlZt46dgqggQsA+hoBbQga79cT42n5oyghSP/ghlzuzf885Yy
ph3wg3HF9t3y18it23H66C8MsxAFveCLDGhBOa/m4Hc5XNw425zIL4SCx+/lkbVP8umeL1EUYVwWkjAl
YSbLsx/iipSF2ISr4ZRkpKTLIC8WPc6X1R/0uAXBLv1uFEVhf1Een+3+8oxf2zjtv2X2IvPgX7OSJ98x
E/67GDNgZLvgV1Ao8O7ntWPP4tdPU3JbAEEVsTcVNmdAnbNd8N80exGLTYI/fKnqibefYt3mjdT5PA3P
X0qdAa4slg1ewV2Dfktf16CIbhUqAkp8Raw89HeKA0U9airQpd+JLiUf7/qMwpLDp936a1jwmz6Xm2eZ
GflXmRb5RwwYzrK5SxkzYHi74BcI6qWHF44+Tm7d9uZPzgnAa0dsSzOq+Xht7YR/obnwv/k4T294HoAt
+7eRW3SwyWegS51YJY55fW/nt0MfZGqvWQjsEcsGjKnA+7x49AmC+Okp6rIGIISgoraSjVs+OC1sjeG/
ZfYiYlzmwP/oW6t48p2nTYJ/GPfMXcqYgSPbv1WGzsayN3j92NOI5m4WCRA1UbA5Hbk3GRkUEYB/nonw
P8HqUC0FVVEprSrl3S0fnvS9ZKhC8vi4qdyb/SDfHfBTkkMLhJF4VZoM8lLRSr6q/rjHTAW6tAFszt3C
waKDzT7sjoR/lWnwG6v9Bvztu30mEHxR9R4P5i+nJlB+cuofulAkjibAp5lQkHi8m3Bb4Ld3BPyPk7Ph
2Sb1E4UQfLF3M0UVx045NnSpk2RL4db+P2LF8JVMT7oGu4hq906BMRU4wuOH/kyxv2dMBbrsOwhoQTZt
/5TqZhb/msK/sJvCP4xlc+9kzMAREYH/kO8gjx76E4fqD5688CdABFXY1wf5WQay1N3mEgHHF/wWsshM
+NecuoSaIhRyDx/gwNG8Zt+DREdFZVzsZH495O8sy/oDQ2LGoEvRrmmBImBz5Ye8fOzJHrEr0CUNQFEU
8ooP8XXu1lNu/TWs9k+/PhT5o02C/0lz4Nc0RmQMY9ncuxg7cFS7X7tA4NU9PF/0MF9VfXTyvF+AqHXB
lnTY2h88jrYX8AxF/htnLWTxjHm4TYL/4TVPkLP+1JeqhBD4Aj7Wf/0+AS14xtcbpyZwTcqN/GH4Km7K
+BHJznSCbZwWCECTAV4oepTN1Zu6/VSgy776/UcOcLT86EkP2Py0Xxjwr32SVe/kmBf5593F2AhEfghn
8Qo2YWt65VcAUjE69X6cicztbdwwbC/8s82Hf/UZKidLKdl/5AAVtVVn3h5GgpQMdA3h+xk/Z8XwJ7gq
dQkxamKbjCC8K7Cq8G/dfiqg/uJnP/tNV3tRvmCAR95aRe7hAyiKchL84cgfa0rk9/PY2idZtc4c+Idn
DOOeeUsZG4EFv8ayCTuZMcPYdmwrRwL5KGoo6u9OQWzvi6xxtasy2HH4b2DxjPkmwt+yWgqKolBeU8GI
gcMYkjaoRa9FIlFQ6OtMZ3LiJQyPHYdX91HiP4pP9yFEyx+PIuCwt4BoWyzj4iZ3WxPocvUAhBBU1VVx
pKyoyQm2BvinXc+tJqX9vqCPx9Y+yUrT4B8agn9UxHvACVWhpKCG2g/jETIDnEBpDFREGTXr29Fto0Ph
b0UtBV/AT96xAoK61ipf06VOlHBzYeIczombwhdVH/LasRy+qPyAmmAlaguNQJdBXih6nLFxkzmvm5YQ
63IZgKqofLDjY17+6I1QWWgRgt/GgulzuWWOGZFf4Av6jbR/3dMmRv67Ih75ARRV5ZuDO1iecz/78vOw
VcVCWTR47e2uB9rh8Lfi2UskHl8908ZehNsZ1ervLZE4hJNMdzbn95rJsJhxKIpKie8o9ZqnofZ/868d
aoI1VARKOS9xOm4lutsZQJfLWySSkqoyvH5vI/jtzJ9mVtofhv8pVq17Gk3XTIn8y+YujciCX7Pwr17B
3sJco0yaYtQSaG+PrTD8S0yE3xvw8shbbSukIhBU1lQapwLb6HISiS51YpQ4pvW6gl9m/ZU/jchhXr/v
keHORpfKac8RqAK+rPyAdaUvdcviIV1qCmDc+6/ik52fI0Rj+K/j1jmLTYP/sbefYtW6HPPgn3cX4yKw
z3/S4FNVth7cwfKcFew9nNvmtmjNw+9kyawFLDER/oZaCm1o5S4UQUlVGZ/u+oKMC/u167SPUUdRI0pE
MyHufMbETiIvdS9fVm1iY+lr7KvbSUWgBIGRFTSu1erVfHxS8S5XJM8nVonvVkbQtQwAqPN6yDuab8Bv
t3UI/CvfNhH+uWH4TYj8eTsN+AvNgv8GlsxcYD78bZxyCQT1vnoKigsj9trCBVVVVIa4R5LlHsFlfa5n
d91WPq7YyFdVmzhQtwevXkNQypAhCDLdQ3EpUd0uC+hai4BCUFpdjtfvxWF3MH/a9SbCH+CxtU+x0szI
P3cp4zIjD78agv/e1fd3Y/gjU0hFKAqlVaV4fPVE2V0RBTC8qBevJnJe/DTOjbuI4sARDtUf5KOKd9hT
uwOf7iU7ZiQL0m7HjsMygPZISvhw+8fU1tdxw/TrTY78q02Df1gD/KNMi/z3rjYv8i82Ff7IFlJRFYWv
crdSUHKYYf2zkHrkAQxnBQJBqj2dvo4MxsdNxad78UsfbiUGh+h+8Hc9A0Cntr6Oay+6ilsvXWJa5H/8
7dWsfHu1afDfYyL82xrg3xdx+J0h+G+cOd9E+CNbS0EgqKmvbVg07ogxKqVx5dqtROMm+oyVmS0DaClA
ms7sCdMZkJxuXtr/9lOsXLe620V+tUnk32de5J8xH7cjqlvAf3zcaFTVVXd4E4+eUDK8SxmAqiiMHTiy
YQcg0vA//vZT5kX+9GyWzV3KOSam/ctNgT/UHn3mglDkjzKnlsJac2op6FInO30ISfG9z4pefpFWlzsH
EOnqqw3wr3uKJ0yE/555d5kCv6qqbM/bxfLVK9hjCvwOFs9cwI0zF5gHv4m1FEaFyqaPSM+2aO4JBmAK
/G+bC/+yeeal/dvydnJvzv0mwK83gd+MPokdAf+yuUsZlTG8x/fwswygjfA/sW41T6xbjaZFHv6hDWn/
aJPg38W9OSvYc8iktH/GfFPhN7OK0siBRgm10QNGRPyA1dmkbtcduLXwP/72U6bBf8/cpZwzyCT483cZ
kf+QOWn/opnzuWnmDabCv8pE+NvbM8GSoR6XAXQU/MtMhn/5ajMiv95h8JtWOXngCAv+CKpHZQAN8L9j
JvxDWDZ3KeNNgn97CP7dh/ZGFH7ZkPbPMxf+tU/y5DtPo5lUNv0eK+23DKA5+P1aCP615sF/z9y7TIv8
2/N3ca8J8Dek/TPmcdOshabBb2YhFSvttwzgtPD7tAAr1+XwxFozI393hn8+N80yY8FPNBRSMQ3+CLRK
s9RDDSAc+Veuy+HxtU8SNAH+7P5mp/27TYHfSPuNbkk3zTIn7feF6yeuMzHtn2el/ZYBnAb+J9bl8Nja
J02J/Nn9h3DPvKWMHzTGRPjvNwV+o0nqfG42Ke034DevkEq4T+LoASMt+E1St90FaAy/aXP+bgq/HoZ/
5nxuNiXyh9N+8wqpjGhokmrBbxnAGeAPakFTIv/dc02GP2eFeZF/5rwQ/G5zrlObWEthxACjcrIFv2UA
zcK/ct3ToTm/GfBnsWzuUiYMNgf+HQUh+Av2RBx+u83eaLXfbULaH6qiZCb8c++y4LcM4PTwP2bqgt9d
JsK/x1jwMxP+2WZ0SDa5hJrWCP6B1oKfZQDNwf9OGH6zIv+dJsN/P7tMgn+h6fA/aV7kH2i0ShtjQv1E
S82rW+wCGPAHDfjfMhP+u7o1/DebBn+4ipJJ8GcMjViHZEs9zACOw59jDvyaRna6Bf/p4DezipLRIXmp
lfZ3krr0FKBDIn+62Qt+e1ies8JE+OeaHPlD8GuaKd2SzGqYYqll6rIZQBj+Ve88zWNvrTIF/iH9wvCP
NQX+nQV7Wb56BTsLdpsC/w0z5nLz7EXmwb/uKdNqKZjZJ9FSNzeAxvA/+tYqAloQxYQ5/92mwr+He3PM
g3/h9LncPMtk+N82E/5wn0QL/s5Ul6wJ6NeCrFp/PPJHGv4hIfgnmg1/vkmRf3oo8rvMgf+JdatNhd9K
+7uOulxvQJ8W4Kn1z/DoGnMi/5B+g1lmJvyH9poO/y1zzIv8ZhZSOR75rbS/q6iLZQCClz96nYfXrDQn
8vczVvtNhX/1/ebCP7v7wr9srjlpv6IoEa8mbRlAJ0gi2Xd4P/W+ehMW/AazbO6dTMwyD/7lq82L/Aum
G+3RTUn7tXDa/5Spab8p3ZIUld2HczlaWWyZQHc3AAHEumNRFTWiAzArnPZnjTMV/h35u0yD/9bZi02b
869824DfjKPVx7sljTalPfq2/J387eUHKK+psAyg2xuAEJw37FwSYuIjMtA7Av5dobTfTPjNivzG0eoc
HjcL/lDlZCPyRx7+7fm7+fWT/0ecO4ZBqZlI3VpX6NYGgIT0Pv2IikCHmsbwn2sq/Cam/dMM+M3ok3j8
OvWT5sE/7y7TGqaEr1Pvyt9DSkIyUQ5nD+jUd5YbgETisjtJTujTrsaLmq6RlWY2/Pu4N8estN9mwD+n
u8NvXgm15Tkr2JW/m8TYBIZabcF6iAFISe/YRC4ee0GbB04D/PNMhL9wH/fm3M+OvMjDb7PZmN/N4V/W
EPkjn/YbtRSMexWqopIYm8i4QaPBOlPQ/Q0AjC2dpLjebQLLgH8Qy+beaWrkX77aHPjDkf/WOYtNht+8
Ob9ZHZJVVWV7Qah4aoFRRUkiSUlMxu2KstL/nmIAui45Z/AYMlMHoOlaG+BfyrlDzjEt8i/PWcF2k+Cf
bzL8K9952rQSamZ3S9pesJvlq5teqpISLh5zAQnuOOtUYU8xACl1khOSSO2V0uIPtSPg3124j3tX38/2
vJ2RT/tVs+EP36hcZRL8Q0ztk7ijYM9J8AM47HZSEpNRlB7d5PrsMgAAp83B9HEXY7fZWwz/3SZH/ntX
rzBtzr/AdPjDtRTM6pN4l6nwn6qWQlALMiw9m/GDx6Jb2389ywCEEAztn0V89OlTO03XGByCf5KJkX/5
6hXmRH6bjfmXXMetl5qX9q8ysZbC8T6JJhZSaaaWgkCQkdyfxOh4K/3vaQYgdcmg1IFMzD6HoBY89QDU
DPjNTftzudcs+FUD/u9eusS0yB++Tm0K/KHiqUa3JDNW+0OR/xRnLCQSh93BzHOmYbf1yA73Z7kBIIly
uDhn8FhcDtdJZwI0XWNwv0Esu/5Ozh1yTsS3gBrm/Dn3mxf5p5kNfw6PmhX5+w9h2TzzWqWdqYqSrutk
9RtEdv8srOX/HmgAIRdg6sjJ9ElIQuqyKfxpmSybeyeTssebBH8uy3N+z/aD5kT+eZdc2wGR/0kCJjVM
WWZStyQlVEtheQuuU58/cgppvVLRrWvFPdMAdKmTmpDMxWPOb/iQw3P+ZXPv4twh401L+5fnrGDbwR3m
wD/tWm679MYOSfuVbtYncVcLainoUicpvjfTxlyAsKJ/zzUAAKfdwfkjp5AQk0BACxoLfmam/YdNhv+S
a/nuHBMj/3rz5vxmRv7W1FLQdcmEIecwICXDWvyLgLr0Coqu64zNHMXIAcM4XFZkpP0mRf49h3NZvtpk
+C9bQpwrxhT4n1z/jIn1E43V/gmdDL+UkmiXmzkTZxDjcqNpGpZ6sAFIKXE7XNw8ZzG61E1b7d9zeD/3
mg3/pebC/8ialaYVTzWzbHprqihpusbozBFMyBpn7f2fDQYQ1oTBY4zFXtPgv998+KMiD38gHPlNKqFm
drekna28Tm232ZkzcWbEn+XZrO7TGzDCf18YfjPn/HMv+Y5p8Pu1IKs2PMOjb63ErwW6Xau0nYf2hlb7
W3a6MlzTcfLQiQisyj+R0ll5iqIx/N8c2G4a/LddeqNpkf+p9c8a8AeDKCJyPt4R8O9qQwk1VVG57NxZ
pPVOtdL/COqsu0XRE+BfteEZHmmAP/I9E8yc8+86FLpX0Qr4w6Y0e8I06+CPZQBdHP6LzYX/yQ3P8uia
VfiDfpPKppvXLcnY529d/USJxGFzcO2FV5Ec38fqJ2AZQNsH4N4j5sJ//cXf4bbLzIX/kTUr8QcDEU/7
h/TL4p555jVMCddSaO2NSl3XmZB9DtPHXmTN/C0DaB/89642C36VuRd/h9vNgl8/EX4TIv88EyN/Qy2F
1sEvpcTtdDP/kmvpFZNorfyboB6/CKiqKnsP72d5zu9NjPzXmBr5n2qA329K5F9mduRvYy0FXepcOeVy
Jg+dYKX+JqlHZwBG5D/A8pzfs/XAtojDr6oq1198DbdfdpN58G98jodNg9/cPontqaWg6RqD+mZy3YVX
4bI7rehvknpsBtAA/+oVpsE/18w5v25E/ofNmPNrGkP6Dzb6JGaNNbGEWtvgl1LitDu5ec4ihvTNtLb9
TFSPzACOR35z4LepKtdfZKT98VGxJsHfOPJHds6f1X+w0R7dVPh/3+ZaChLJnIkzuGT0BVbktwyg9QNw
Xxj+/Sal/Rddw+2X32Qa/Ks3PMfDbz5hStqf1W8w95jYMCV8nXp7XttOVwa1INn9svjuZTcSGxVtGYDJ
6lFTgDD895oK/3dMjPwaqzc8x0NmwK8Zkd/MPom7C3ONKkptLKSiS5346HhunL2Q9N5pVupvGUArAFIU
9h7Zz29z/mBy5L/RxMj/vHmRv7+5rdIaIn8b4ZdSYlft3HrpEuZMmG4d+Osg9YgpgBCCspoK/vziP/lq
35ZumPZrrN7wPA+9+Tg+U9L+QabCvycChVQ0XeOCUVO4asrlKAir1ZdlAK2DNC4qhovHXEh8dFzE6sQ1
gf+ym0xO+x83ac4fKqFmIvztraUQ1IKMHzKOH159BwnRVpcfywDaILtq47oLvs2tl9+Iw+Zo9yAKw3/d
RVcb8LtNgn/jczxsBvyhsul3X7+0S8Ov6RrDM4bys/k/YlDKAGvebxlAO4AVCtdfcDVXTf0WCNrcYrwx
/HdcdrNp8OdsfJ6H3zAn7R8cSvsnmVpF6ffthr9v71TuvOa/yE4bbJX4sgyg/SYQ7YziljmLuGj0+W2K
JlJKVEXlugvNh/+hNx4zB/60joD/frYdbPvRamPFP447rriFSdnjrchvGUDkTCA1vg9Lr/k+5w6dQLAV
UaUB/ouu5o7LLfibg7+9xVN1qRPlcHHrpTdy+cRZKGdfWQrLAMyULnUGJmfw03l3MSF7XIvajDdJ+02E
/+kOgN/M4qnLc1bwTTsjv8vh4pZLb2TeRddgV21tnqpZsgyg+YGmawzum8nPF9zN5GET0XW92YEWjvzX
Xng1t5sEf1DXePrd53nQrDl/I/jNKJ66NwKFVHRdJ9oVze2X38zi6XNx2OzWin8nS3irq3v0J6AoCvkl
hfzj1Yd4d8sHSCmbFNAMR/5rL7yKOy6/hQST4F+9MbTPH/CZAv/doZ4JZsF/bzvh13SNPvFJ3Hb5TVx1
3uUW/JYBdKAJCIWSmjKeeOdpXvrgVXxBA8KGyH/RVdxx+c0kuONMgT/n3f/w4BuPmQN/30zunrfUPPgj
cKMyqAUZnJbJ/7vqDi4aOQVVUS34LQPo4DcqBPUBHy98+CoPv/k4NfW1Rq25bgz/oL6ZxsWebDPhv5+t
7Yj8AS3IuMGjufv6OxmVMcwC3zKAzjUBTeq8uOk1nliXwyVjLuCOK7oh/JrGoLRMY7XfNPj3hyL/9jaf
7QeYMOQc7pm3lCFpg6x9fssAuoYJBHWNXYf20q93X3rFJJi04PcfHjAx8psLf/uuU2u6Rowrmu9ceBUL
LrmOvonJ1j6/ZQBdzwiQRHQLqifAv+/IAe5tx5xf0zVSE1O441u3cMWkOdgVm1XPrwvrrOwMBER8Ltpx
8N9pLvxtrKIUjvCXjL2Qm+csYlTGcBQhLPgtA+j5aoD/vRdMgz+z70Bjqy97grnwtzLtl0iCQY3UXil8
54Irue7Cq+gT2xtN16wFP8sAzjL4X3/UpMg/kLvnLmVyF4Nf0zXsNjvnj53C4hnzmDBkHAqiRScvLVkG
0KPgf9BM+K83F/7lOb9vFfy61NF1nax+g7nuwqu4/NzZxLtjT3va0pJlAD0S/mfee5EHX38Urxnwp4bg
H2oS/EUHWZ7ze7bs/6ZF8BvgS5ITkrhs0myumnIFg1IyjN+zVvktAzi74Nd55r0XeeD1R0yBPzM1lPab
Cf/qFS2CX9N1QJIU15uLxlzA1VOvYHj6UOyqaoFvGcBZBj8CXzDAM+/9hwffMKeMV2bqQJaZCH9uC+CX
UqJLiZQ6/ZLSuGj0+Vx27iyGp2fjsNnRdd2C3zKAs9IB8Pg8bAs1vfD6vSCMS0eRgv/uuXeaGvl/m9M8
/FJKglqQKGcUGcn9mXHOJVw85gKy+mZiV+3oumaB35OG89l6EKhdD00Iqjw17Cncx7qv3uWLPZs5XHrE
OOoqQFXUdsF/3tCJ5kX+nBV8ndsUfiklmq6hKApRjigmZp/DtLEXMXnYRFIT+6AIxYLeMgBLJ5qAQBCU
GnnHCthZsId3Nm/k4LF8CksOI6VEURQEosn1486F//d8nbvVuI2HNNJ8XSfWHUtGcjqTh03kvOHnMnLA
MGJd0SCJWIVlS5YB9FgpioIE6v1eCksPs3nfFnbk7+Lz3Zup99VT7alpuHp84lShAf7r7+S8YZGHX1FU
co8ac/4v9n6FKhSiXW5iomLISMlgyvBzGZg6gAlZY4mNisGh2tGlbh3isQzAUqsfZijaC0VQ6/VQWl3G
oeJCPtj+MRW1lezM38OximOAcUde13UGp2Vy99ylpkR+IQT7j+bzf8/8gZ35uzl36HgSYxIZN3g047PG
EuuOJSk2EYGwoLcMwFKk4RMIJMZqelALcvBYPqXV5dR4avhwxyeUVpVx0+yF5sCPoNZXx5YD2wkE/cRE
xTCs/xCiXdEojV6bBb1lANYI6CCF1wR0qeMN+ELVcaNMa4OlhVbsXQ4XgBXlLZ3SAKqAOOtRdPCDD/3b
OjprqRNVrQB51nPoeEmw4LfU2cpTgIPWc7Bk6azUQQXYbT0HS5bOSu1RgK2A33oWliydVaoHvlCAnUCZ
9TwsWTqrVApsU4D9wA7reViydFZpD3BYAWqBTdbzsGTprNI6oDZ8MP3DkBFYsmSp56sc2AjHuwN/Bnxu
PRdLls4KbQF2NTaAOmCt9VwsWTortBbwNDYAgJeBA9azsWSpRys3xDoAiisurvFvvG09H0uWerReDrGO
Ky6OEwvZrcTYH7RkyVLPUzHwQuNfUMJOENKXQI71nCxZ6pF6hNBif5j5EzMAHfg71v0AS5Z6mnYDj5/4
iw0G0CgLOAD8BbAavFmy1DOkhZg+cALrNFfM/hngDeu5WbLUI/R6iOmTdFK9am91dfin4zEWDDKt52fJ
UrfVHuAaQgd/Gkd/aD4DAPgK+BVQYz1DS5a6pWqA34bhP5VOMoATHCIH+BNYtassWepmkiF2c5ph+9QG
cMIXSuDPwAOWCViy1K3gfyDErmwOfjjFGkBjNVoPiAFWAP91pj9jyZKlLgH/PYRu+DYH/xkNwDIBS5Z6
LvwtMgDLBCxZ6pnwt9gATjCBWOBHwI9DP7dkyVLnqgZjwe/PoZ+3CP5WGcAJJiCAhcAvgKHW87dkqdN0
EGO7PoczLPi12wBOMAGA4cB9wJWAan0Wlix1mDSM07r3YpzZobXwt8kATmECscAC4C5gmPW5WLJkunZj
nO1/hkYH9VoLf5sN4BQmADAIuAW4DUi2PiNLliKuUoxU/++cUL2rLfC3ywBOYwSTgOswzh9nWZ+ZJUvt
1gGMal0rMWp26O0FP2IGcBojyAqZwKXAOKCX9TlastRi1WIU71hLozJekQI/4gZwGiNwYywWTgdmY+wa
JAFR1mdsyVKD/Bgt+nZgNOr5EKNcf50Z4JtmAKcxAjAOEvUDRgPnhswgExgIxGHJ0tmjaiAPYxtvN0aT
3p0YrfpOatITafDD+v9urYMrTd0duwAAAABJRU5ErkJggg==
</value>
</data>
</root>

View File

@ -0,0 +1,207 @@
namespace NeshinaPolina2111
{
partial class AddProduction
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddProduction));
this.btnAdd = new System.Windows.Forms.Button();
this.btnExit = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.cmbProduct = new System.Windows.Forms.ComboBox();
this.tbName = new System.Windows.Forms.TextBox();
this.tbArticle = new System.Windows.Forms.TextBox();
this.tbMinPrice = new System.Windows.Forms.TextBox();
this.tbWidth = new System.Windows.Forms.TextBox();
this.lbType = new System.Windows.Forms.Label();
this.lbName = new System.Windows.Forms.Label();
this.lbArticle = new System.Windows.Forms.Label();
this.lbMinPrice = new System.Windows.Forms.Label();
this.lbWidth = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// btnAdd
//
this.btnAdd.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnAdd.Font = new System.Drawing.Font("Comic Sans MS", 14.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(93, 402);
this.btnAdd.Name = "btnAdd";
this.btnAdd.Size = new System.Drawing.Size(190, 45);
this.btnAdd.TabIndex = 0;
this.btnAdd.Text = "Добавить";
this.btnAdd.UseVisualStyleBackColor = false;
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
//
// btnExit
//
this.btnExit.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnExit.Location = new System.Drawing.Point(13, 470);
this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(75, 23);
this.btnExit.TabIndex = 1;
this.btnExit.Text = "Назад";
this.btnExit.UseVisualStyleBackColor = true;
this.btnExit.Click += new System.EventHandler(this.btnExit_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(86, 40);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(210, 45);
this.label1.TabIndex = 2;
this.label1.Text = "Добавление";
//
// cmbProduct
//
this.cmbProduct.FormattingEnabled = true;
this.cmbProduct.Location = new System.Drawing.Point(13, 133);
this.cmbProduct.Name = "cmbProduct";
this.cmbProduct.Size = new System.Drawing.Size(347, 21);
this.cmbProduct.TabIndex = 3;
//
// tbName
//
this.tbName.Location = new System.Drawing.Point(13, 185);
this.tbName.Name = "tbName";
this.tbName.Size = new System.Drawing.Size(347, 20);
this.tbName.TabIndex = 4;
//
// tbArticle
//
this.tbArticle.Location = new System.Drawing.Point(13, 239);
this.tbArticle.Name = "tbArticle";
this.tbArticle.Size = new System.Drawing.Size(347, 20);
this.tbArticle.TabIndex = 5;
//
// tbMinPrice
//
this.tbMinPrice.Location = new System.Drawing.Point(13, 288);
this.tbMinPrice.Name = "tbMinPrice";
this.tbMinPrice.Size = new System.Drawing.Size(347, 20);
this.tbMinPrice.TabIndex = 6;
//
// tbWidth
//
this.tbWidth.Location = new System.Drawing.Point(13, 342);
this.tbWidth.Name = "tbWidth";
this.tbWidth.Size = new System.Drawing.Size(347, 20);
this.tbWidth.TabIndex = 7;
//
// lbType
//
this.lbType.AutoSize = true;
this.lbType.Location = new System.Drawing.Point(10, 117);
this.lbType.Name = "lbType";
this.lbType.Size = new System.Drawing.Size(82, 13);
this.lbType.TabIndex = 8;
this.lbType.Text = "Тип продукции";
//
// lbName
//
this.lbName.AutoSize = true;
this.lbName.Location = new System.Drawing.Point(10, 169);
this.lbName.Name = "lbName";
this.lbName.Size = new System.Drawing.Size(57, 13);
this.lbName.TabIndex = 9;
this.lbName.Text = "Название";
//
// lbArticle
//
this.lbArticle.AutoSize = true;
this.lbArticle.Location = new System.Drawing.Point(10, 223);
this.lbArticle.Name = "lbArticle";
this.lbArticle.Size = new System.Drawing.Size(48, 13);
this.lbArticle.TabIndex = 10;
this.lbArticle.Text = "Артикул";
//
// lbMinPrice
//
this.lbMinPrice.AutoSize = true;
this.lbMinPrice.Location = new System.Drawing.Point(10, 272);
this.lbMinPrice.Name = "lbMinPrice";
this.lbMinPrice.Size = new System.Drawing.Size(105, 13);
this.lbMinPrice.TabIndex = 11;
this.lbMinPrice.Text = "Минимальная цена";
//
// lbWidth
//
this.lbWidth.AutoSize = true;
this.lbWidth.Location = new System.Drawing.Point(10, 326);
this.lbWidth.Name = "lbWidth";
this.lbWidth.Size = new System.Drawing.Size(102, 13);
this.lbWidth.TabIndex = 12;
this.lbWidth.Text = "Ширина продукции";
//
// AddProduction
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.ClientSize = new System.Drawing.Size(372, 511);
this.Controls.Add(this.lbWidth);
this.Controls.Add(this.lbMinPrice);
this.Controls.Add(this.lbArticle);
this.Controls.Add(this.lbName);
this.Controls.Add(this.lbType);
this.Controls.Add(this.tbWidth);
this.Controls.Add(this.tbMinPrice);
this.Controls.Add(this.tbArticle);
this.Controls.Add(this.tbName);
this.Controls.Add(this.cmbProduct);
this.Controls.Add(this.label1);
this.Controls.Add(this.btnExit);
this.Controls.Add(this.btnAdd);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "AddProduction";
this.Text = "AddProduction";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnAdd;
private System.Windows.Forms.Button btnExit;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox cmbProduct;
private System.Windows.Forms.TextBox tbName;
private System.Windows.Forms.TextBox tbArticle;
private System.Windows.Forms.TextBox tbMinPrice;
private System.Windows.Forms.TextBox tbWidth;
private System.Windows.Forms.Label lbType;
private System.Windows.Forms.Label lbName;
private System.Windows.Forms.Label lbArticle;
private System.Windows.Forms.Label lbMinPrice;
private System.Windows.Forms.Label lbWidth;
}
}

View File

@ -0,0 +1,155 @@
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
namespace NeshinaPolina2111
{
public partial class AddProduction : Form
{
public AddProduction()
{
InitializeComponent();
LoadTypes(); //загрузка типов
}
private void btnAdd_Click(object sender, EventArgs e)
{
//НАЧАЛО ВСЕХ ПРОВЕРОК
if (string.IsNullOrEmpty(tbArticle.Text))
{
MessageBox.Show("Введите Артикул", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbArticle.Focus();
return;
}
if (string.IsNullOrEmpty(tbMinPrice.Text))
{
MessageBox.Show("Введите Минимальную цену", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbArticle.Focus();
return;
}
if (string.IsNullOrEmpty(tbName.Text))
{
MessageBox.Show("Введите Название", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbArticle.Focus();
return;
}
if (string.IsNullOrEmpty(tbWidth.Text))
{
MessageBox.Show("Введите Ширину", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbArticle.Focus();
return;
}
if (cmbProduct.SelectedItem == null)
{
MessageBox.Show("Выберите тип продукта.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
cmbProduct.Focus();
return;
}
if (!decimal.TryParse(tbMinPrice.Text, out decimal price) || price < 0)
{
MessageBox.Show("Введите корректную цену (неотрицательное число)", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbMinPrice.Focus();
return;
}
if (!decimal.TryParse(tbWidth.Text, out decimal Width) || price < 0)
{
MessageBox.Show("Введите корректную ширину", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbWidth.Focus();
return;
}
if (!int.TryParse(tbArticle.Text, out int quantity) || quantity < 0)
{
MessageBox.Show("Введите корректный артикул", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbArticle.Focus();
return;
}
//ДОБАВЛЕНИЕ
var typeItem = (ComboItem)cmbProduct.SelectedItem;
string insert = @"insert into Products_import (idProduct_type_import, Name, Article, MinPrice, Width)
values (@idProduct_type_import, @Name, @Article, @MinPrice, @Width)";
var connec = DB.GetInstance().GetConnection();
if (connec.State == ConnectionState.Closed)
connec.Open();
using (var cmd = new MySqlCommand(insert, connec))
{
cmd.Parameters.AddWithValue("@idProduct_type_import", typeItem.Id);
cmd.Parameters.AddWithValue("@Name", tbName.Text.Trim());
cmd.Parameters.AddWithValue("@Article", tbArticle.Text.Trim());
cmd.Parameters.AddWithValue("@MinPrice", tbMinPrice.Text.Trim());
cmd.Parameters.AddWithValue("@Width", tbWidth.Text.Trim());
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 idProduct_type_import, TypeProduction from Product_type_import";
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())
{
cmbProduct.Items.Add(new ComboItem
{
Id = reader.GetInt32("idProduct_type_import"),
Name = reader.GetString("TypeProduction")
});
}
}
}
}
public class ComboItem //НУЖНО
{
public int Id { get; set; }
public string Name { get; set; }
public override string ToString()
{
return Name;
}
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Hide();
}
}
}

View File

@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>

View File

@ -0,0 +1,122 @@
namespace NeshinaPolina2111
{
partial class Authorization
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Authorization));
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.tbLogin = new System.Windows.Forms.TextBox();
this.tbPassword = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.label1.Font = new System.Drawing.Font("Comic Sans MS", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.label1.Location = new System.Drawing.Point(106, 94);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(191, 39);
this.label1.TabIndex = 0;
this.label1.Text = "Авторизация";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(39, 178);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(55, 20);
this.label2.TabIndex = 1;
this.label2.Text = "Логин";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(39, 228);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(67, 20);
this.label3.TabIndex = 2;
this.label3.Text = "Пароль";
//
// button1
//
this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.button1.Location = new System.Drawing.Point(113, 342);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(168, 38);
this.button1.TabIndex = 3;
this.button1.Text = "Войти";
this.button1.UseVisualStyleBackColor = false;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// tbLogin
//
this.tbLogin.Location = new System.Drawing.Point(129, 178);
this.tbLogin.Name = "tbLogin";
this.tbLogin.Size = new System.Drawing.Size(209, 26);
this.tbLogin.TabIndex = 4;
//
// tbPassword
//
this.tbPassword.Location = new System.Drawing.Point(129, 225);
this.tbPassword.Name = "tbPassword";
this.tbPassword.Size = new System.Drawing.Size(209, 26);
this.tbPassword.TabIndex = 5;
//
// Authorization
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(413, 450);
this.Controls.Add(this.tbPassword);
this.Controls.Add(this.tbLogin);
this.Controls.Add(this.button1);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Authorization";
this.Text = "Authorization";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox tbLogin;
private System.Windows.Forms.TextBox tbPassword;
}
}

View File

@ -0,0 +1,74 @@
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 NeshinaPolina2111
{
public partial class Authorization : Form
{
public Authorization()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string login = tbLogin.Text.Trim();
string password = tbPassword.Text.Trim();
if (string.IsNullOrWhiteSpace(login) || string.IsNullOrWhiteSpace(password))
{
MessageBox.Show("Введите логин и пароль.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
var db = DB.GetInstance();
var conn = db.GetConnection();
try
{
string query = "SELECT idAuthorization, idRole FROM Authorization WHERE Login = @login AND Password = @password";
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@login", login);
cmd.Parameters.AddWithValue("@password", password);
int authId = 0;
int roleId = 0;
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
authId = Convert.ToInt32(reader["idAuthorization"]);
roleId = Convert.ToInt32(reader["idRole"]);
}
else
{
MessageBox.Show("Неверный логин или пароль.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
MainForm mainForm = new MainForm(roleId, authId, this);
this.Hide();
mainForm.ShowDialog();
this.Show();
tbLogin.Clear();
tbPassword.Clear();
}
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка при входе: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

129
NeshinaPolina2111/DB.cs Normal file
View File

@ -0,0 +1,129 @@
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NeshinaPolina2111
{
internal class DB
{
private static DB instance;
private MySqlConnection connection;
private string connectionString = "server=git.pgk.alspio.com; port=3306; username=ISP41_Neshina; password=ISP41_Neshina; database=ISP41_Neshina_Dem2011; 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 == System.Data.ConnectionState.Closed)
connection.Open();
}
public MySqlConnection GetConnection() => connection;
public static decimal CalculateProductCost(int productId) //метод расчёта для модуоля 2
{
string query = @"
SELECT
COALESCE(SUM(m.PriceUnitMaterial * pc.Quantity), 0) AS TotalCost
FROM Product_composition pc
JOIN Materials_import m ON pc.idMaterials_import = m.idMaterials_import
WHERE pc.idProducts_import = @productId";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@productId", productId);
var result = cmd.ExecuteScalar();
return Convert.ToDecimal(result);
}
}
//это для выполнения метода из 4 модуля рассчёт
public static int CalculateMaterialToPurchase(
int productTypeId,
int materialTypeId,
int quantityProduced,
decimal param1,
decimal param2,
decimal stockMaterial)
{//1 валидация
if (productTypeId <= 0 ||
materialTypeId <= 0 ||
quantityProduced <= 0 ||
param1 <= 0 ||
param2 <= 0 ||
stockMaterial < 0)
{
return -1;
}
// загрузка коэфф тип продукт
decimal productCoefficient;
string productQuery = "SELECT Coefficient FROM Product_type_import WHERE idProduct_type_import = @productTypeId";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(productQuery, conn))
{
cmd.Parameters.AddWithValue("@productTypeId", productTypeId);
var result = cmd.ExecuteScalar();
if (result == null || result == DBNull.Value)
return -1; // тип продукции не найден
productCoefficient = Convert.ToDecimal(result);
}
// загрузка процент брака
decimal scrapPercent;
string materialQuery = "SELECT Procent FROM Material_type_import WHERE idMaterial_type_import = @materialTypeId";
using (var cmd = new MySqlCommand(materialQuery, conn))
{
cmd.Parameters.AddWithValue("@materialTypeId", materialTypeId);
var result = cmd.ExecuteScalar();
if (result == null || result == DBNull.Value)
return -1; // тип материала не найден
scrapPercent = Convert.ToDecimal(result);
}
// базовая потребность на 1
decimal baseNeedPerUnit = param1 * param2 * productCoefficient;
// общая потреб без брак
decimal totalNeed = baseNeedPerUnit * quantityProduced;
// + учесть брак
decimal scrapMultiplier = 1.0m + (scrapPercent / 100.0m);
decimal totalNeedWithScrap = totalNeed * scrapMultiplier;
// минус остатки склада
decimal needToPurchase = totalNeedWithScrap - stockMaterial;
if (needToPurchase <= 0)
return 0;
// округлить до целого
// купить только целое
int resultInt = (int)Math.Ceiling(needToPurchase);
return resultInt;
}
}
}

View File

@ -0,0 +1,254 @@
namespace NeshinaPolina2111
{
partial class EditMaterials
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditMaterials));
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.label1 = new System.Windows.Forms.Label();
this.btnEdit = new System.Windows.Forms.Button();
this.btnExit = new System.Windows.Forms.Button();
this.txtName = new System.Windows.Forms.TextBox();
this.txtPrice = new System.Windows.Forms.TextBox();
this.txtQuantity = new System.Windows.Forms.TextBox();
this.txtMinQuantity = new System.Windows.Forms.TextBox();
this.txtQuantityPack = new System.Windows.Forms.TextBox();
this.cmbType = new System.Windows.Forms.ComboBox();
this.cmbUnit = new System.Windows.Forms.ComboBox();
this.SuspendLayout();
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(55, 149);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(83, 20);
this.label2.TabIndex = 13;
this.label2.Text = "Название";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(55, 222);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(48, 20);
this.label3.TabIndex = 15;
this.label3.Text = "Цена";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(55, 291);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(100, 20);
this.label4.TabIndex = 17;
this.label4.Text = "Количество";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(55, 364);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(208, 20);
this.label5.TabIndex = 19;
this.label5.Text = "Минимальное количество";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(55, 433);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(185, 20);
this.label6.TabIndex = 21;
this.label6.Text = "Количество в упаковке";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(55, 506);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(36, 20);
this.label7.TabIndex = 23;
this.label7.Text = "Тип";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(55, 575);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(162, 20);
this.label8.TabIndex = 25;
this.label8.Text = "Единица измерения";
//
// 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(62, 26);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(405, 67);
this.label1.TabIndex = 27;
this.label1.Text = "Редактирование";
//
// btnEdit
//
this.btnEdit.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnEdit.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnEdit.ForeColor = System.Drawing.SystemColors.ButtonFace;
this.btnEdit.Location = new System.Drawing.Point(133, 664);
this.btnEdit.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnEdit.Name = "btnEdit";
this.btnEdit.Size = new System.Drawing.Size(285, 69);
this.btnEdit.TabIndex = 28;
this.btnEdit.Text = "Сохранить";
this.btnEdit.UseVisualStyleBackColor = false;
this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click);
//
// btnExit
//
this.btnExit.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnExit.Location = new System.Drawing.Point(13, 737);
this.btnExit.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(112, 35);
this.btnExit.TabIndex = 29;
this.btnExit.Text = "Назад";
this.btnExit.UseVisualStyleBackColor = true;
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
//
// txtName
//
this.txtName.Location = new System.Drawing.Point(59, 172);
this.txtName.Name = "txtName";
this.txtName.Size = new System.Drawing.Size(419, 26);
this.txtName.TabIndex = 30;
//
// txtPrice
//
this.txtPrice.Location = new System.Drawing.Point(59, 245);
this.txtPrice.Name = "txtPrice";
this.txtPrice.Size = new System.Drawing.Size(419, 26);
this.txtPrice.TabIndex = 31;
//
// txtQuantity
//
this.txtQuantity.Location = new System.Drawing.Point(59, 314);
this.txtQuantity.Name = "txtQuantity";
this.txtQuantity.Size = new System.Drawing.Size(419, 26);
this.txtQuantity.TabIndex = 32;
//
// txtMinQuantity
//
this.txtMinQuantity.Location = new System.Drawing.Point(59, 387);
this.txtMinQuantity.Name = "txtMinQuantity";
this.txtMinQuantity.Size = new System.Drawing.Size(419, 26);
this.txtMinQuantity.TabIndex = 33;
//
// txtQuantityPack
//
this.txtQuantityPack.Location = new System.Drawing.Point(59, 456);
this.txtQuantityPack.Name = "txtQuantityPack";
this.txtQuantityPack.Size = new System.Drawing.Size(419, 26);
this.txtQuantityPack.TabIndex = 34;
//
// cmbType
//
this.cmbType.FormattingEnabled = true;
this.cmbType.Location = new System.Drawing.Point(59, 529);
this.cmbType.Name = "cmbType";
this.cmbType.Size = new System.Drawing.Size(419, 28);
this.cmbType.TabIndex = 35;
//
// cmbUnit
//
this.cmbUnit.FormattingEnabled = true;
this.cmbUnit.Location = new System.Drawing.Point(59, 598);
this.cmbUnit.Name = "cmbUnit";
this.cmbUnit.Size = new System.Drawing.Size(419, 28);
this.cmbUnit.TabIndex = 36;
//
// EditMaterials
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.ClientSize = new System.Drawing.Size(545, 786);
this.Controls.Add(this.cmbUnit);
this.Controls.Add(this.cmbType);
this.Controls.Add(this.txtQuantityPack);
this.Controls.Add(this.txtMinQuantity);
this.Controls.Add(this.txtQuantity);
this.Controls.Add(this.txtPrice);
this.Controls.Add(this.txtName);
this.Controls.Add(this.btnExit);
this.Controls.Add(this.btnEdit);
this.Controls.Add(this.label1);
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.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "EditMaterials";
this.Text = "EditMaterials";
this.Load += new System.EventHandler(this.EditMaterials_Load);
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.Label label1;
private System.Windows.Forms.Button btnEdit;
private System.Windows.Forms.Button btnExit;
private System.Windows.Forms.TextBox txtName;
private System.Windows.Forms.TextBox txtPrice;
private System.Windows.Forms.TextBox txtQuantity;
private System.Windows.Forms.TextBox txtMinQuantity;
private System.Windows.Forms.TextBox txtQuantityPack;
private System.Windows.Forms.ComboBox cmbType;
private System.Windows.Forms.ComboBox cmbUnit;
}
}

View File

@ -0,0 +1,195 @@
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace NeshinaPolina2111
{
public partial class EditMaterials : Form
{
public EditMaterials()
{
InitializeComponent();
}
public int MaterialId { get; set; } //ДЛЯ ПЕРЕХОДА
private void EditMaterials_Load(object sender, EventArgs e)
{
LoadTypes();
LoadUnits();
LoadMaterialData();
}
private void LoadTypes() //ТИПЫ
{
string query = "SELECT idMaterial_type_import, Name FROM Material_type_import ORDER BY Name";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
var adapter = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
cmbType.DisplayMember = "Name";
cmbType.ValueMember = "idMaterial_type_import";
cmbType.DataSource = dt;
}
}
private void LoadUnits() //ИЗМЕРЕНИЕ ЕДИНИЦЫ
{
string query = "SELECT idUnit, Name FROM Unit ORDER BY Name";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
var adapter = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
cmbUnit.DisplayMember = "Name";
cmbUnit.ValueMember = "idUnit";
cmbUnit.DataSource = dt;
}
}
private void LoadMaterialData() //САМА ТАБЛИЦА
{
string query = @"
SELECT
m.Name,
m.idMaterial_type_import,
m.PriceUnitMaterial,
m.Quantity,
m.MinQuantity,
m.QuantityPack,
m.idUnit
FROM Materials_import m
WHERE m.idMaterials_import = @idMaterials_import";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@idMaterials_import", MaterialId);
var reader = cmd.ExecuteReader();
if (reader.Read())
{
txtName.Text = reader["Name"].ToString();
txtPrice.Text = reader["PriceUnitMaterial"].ToString();
txtQuantity.Text = reader["Quantity"].ToString();
txtMinQuantity.Text = reader["MinQuantity"].ToString();
txtQuantityPack.Text = reader["QuantityPack"].ToString();
cmbType.SelectedValue = reader["idMaterial_type_import"];
cmbUnit.SelectedValue = reader["idUnit"];
}
else
{
MessageBox.Show("Материал не найден.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
DialogResult = DialogResult.Cancel;
Close();
}
reader.Close();
}
}
private void btnEdit_Click(object sender, EventArgs e) //СОХРАНЕНИЕ
{
if (string.IsNullOrWhiteSpace(txtName.Text)) //ПРОВЕРКИ НА ВСЁ
{
MessageBox.Show("Введите название материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (cmbType.SelectedValue == null || cmbUnit.SelectedValue == null)
{
MessageBox.Show("Выберите тип материала и единицу измерения.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
decimal price;
int quantity, minQuantity, quantityPack;
if (!decimal.TryParse(txtPrice.Text, out price) || price < 0)
{
MessageBox.Show("Цена должна быть числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!int.TryParse(txtQuantity.Text, out quantity) || quantity < 0)
{
MessageBox.Show("Количество должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!int.TryParse(txtMinQuantity.Text, out minQuantity) || minQuantity < 0)
{
MessageBox.Show("Минимальное количество должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!int.TryParse(txtQuantityPack.Text, out quantityPack) || quantityPack < 0)
{
MessageBox.Show("Количество в упаковке должно быть целым числом ≥ 0.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}//ОБНОВЛЕНИЕ ТУТ
string updateQuery = @"
UPDATE Materials_import SET
Name = @Name,
idMaterial_type_import = @idMaterial_type_import,
PriceUnitMaterial = @PriceUnitMaterial,
Quantity = @Quantity,
MinQuantity = @MinQuantity,
QuantityPack = @QuantityPack,
idUnit = @idUnit
WHERE idMaterials_import = @idMaterials_import";
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("@idMaterial_type_import", cmbType.SelectedValue);
cmd.Parameters.AddWithValue("@PriceUnitMaterial", price);
cmd.Parameters.AddWithValue("@Quantity", quantity);
cmd.Parameters.AddWithValue("@MinQuantity", minQuantity);
cmd.Parameters.AddWithValue("@QuantityPack", quantityPack);
cmd.Parameters.AddWithValue("@idUnit", cmbUnit.SelectedValue);
cmd.Parameters.AddWithValue("@idMaterials_import", MaterialId);
try
{
int rowsAffected = cmd.ExecuteNonQuery();
if (rowsAffected > 0)
{
MessageBox.Show("Материал успешно обновлён!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
DialogResult = DialogResult.OK;
Close();
}
else
{
MessageBox.Show("Не удалось обновить материал.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка при обновлении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Hide();
}
}
}

View File

@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

View File

@ -0,0 +1,213 @@
namespace NeshinaPolina2111
{
partial class EditProduction
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditProduction));
this.label1 = new System.Windows.Forms.Label();
this.cmbProduct = new System.Windows.Forms.ComboBox();
this.tbName = new System.Windows.Forms.TextBox();
this.tbArticle = new System.Windows.Forms.TextBox();
this.tbMinPrice = new System.Windows.Forms.TextBox();
this.tbWidth = new System.Windows.Forms.TextBox();
this.lbType = new System.Windows.Forms.Label();
this.lbName = new System.Windows.Forms.Label();
this.lbArticle = new System.Windows.Forms.Label();
this.lbMinPrice = new System.Windows.Forms.Label();
this.lbWidth = new System.Windows.Forms.Label();
this.btnEdit = new System.Windows.Forms.Button();
this.btnExit = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// 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(48, 45);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(269, 45);
this.label1.TabIndex = 0;
this.label1.Text = "Редактирование";
//
// cmbProduct
//
this.cmbProduct.FormattingEnabled = true;
this.cmbProduct.Location = new System.Drawing.Point(13, 136);
this.cmbProduct.Name = "cmbProduct";
this.cmbProduct.Size = new System.Drawing.Size(347, 21);
this.cmbProduct.TabIndex = 4;
//
// tbName
//
this.tbName.Location = new System.Drawing.Point(13, 191);
this.tbName.Name = "tbName";
this.tbName.Size = new System.Drawing.Size(347, 20);
this.tbName.TabIndex = 5;
//
// tbArticle
//
this.tbArticle.Location = new System.Drawing.Point(13, 247);
this.tbArticle.Name = "tbArticle";
this.tbArticle.Size = new System.Drawing.Size(347, 20);
this.tbArticle.TabIndex = 6;
//
// tbMinPrice
//
this.tbMinPrice.Location = new System.Drawing.Point(13, 303);
this.tbMinPrice.Name = "tbMinPrice";
this.tbMinPrice.Size = new System.Drawing.Size(347, 20);
this.tbMinPrice.TabIndex = 7;
//
// tbWidth
//
this.tbWidth.Location = new System.Drawing.Point(13, 361);
this.tbWidth.Name = "tbWidth";
this.tbWidth.Size = new System.Drawing.Size(347, 20);
this.tbWidth.TabIndex = 8;
//
// lbType
//
this.lbType.AutoSize = true;
this.lbType.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.lbType.Location = new System.Drawing.Point(10, 120);
this.lbType.Name = "lbType";
this.lbType.Size = new System.Drawing.Size(90, 15);
this.lbType.TabIndex = 9;
this.lbType.Text = "Тип продукции";
//
// lbName
//
this.lbName.AutoSize = true;
this.lbName.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.lbName.Location = new System.Drawing.Point(10, 175);
this.lbName.Name = "lbName";
this.lbName.Size = new System.Drawing.Size(57, 15);
this.lbName.TabIndex = 10;
this.lbName.Text = "Название";
//
// lbArticle
//
this.lbArticle.AutoSize = true;
this.lbArticle.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.lbArticle.Location = new System.Drawing.Point(10, 231);
this.lbArticle.Name = "lbArticle";
this.lbArticle.Size = new System.Drawing.Size(51, 15);
this.lbArticle.TabIndex = 11;
this.lbArticle.Text = "Артикул";
//
// lbMinPrice
//
this.lbMinPrice.AutoSize = true;
this.lbMinPrice.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.lbMinPrice.Location = new System.Drawing.Point(10, 287);
this.lbMinPrice.Name = "lbMinPrice";
this.lbMinPrice.Size = new System.Drawing.Size(109, 15);
this.lbMinPrice.TabIndex = 12;
this.lbMinPrice.Text = "Минимальная цена";
//
// lbWidth
//
this.lbWidth.AutoSize = true;
this.lbWidth.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.lbWidth.Location = new System.Drawing.Point(10, 345);
this.lbWidth.Name = "lbWidth";
this.lbWidth.Size = new System.Drawing.Size(111, 15);
this.lbWidth.TabIndex = 13;
this.lbWidth.Text = "Ширина продукции";
//
// btnEdit
//
this.btnEdit.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnEdit.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnEdit.ForeColor = System.Drawing.SystemColors.ButtonFace;
this.btnEdit.Location = new System.Drawing.Point(86, 410);
this.btnEdit.Name = "btnEdit";
this.btnEdit.Size = new System.Drawing.Size(190, 45);
this.btnEdit.TabIndex = 14;
this.btnEdit.Text = "Сохранить";
this.btnEdit.UseVisualStyleBackColor = false;
this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click);
//
// btnExit
//
this.btnExit.Font = new System.Drawing.Font("Comic Sans MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnExit.Location = new System.Drawing.Point(13, 476);
this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(75, 23);
this.btnExit.TabIndex = 15;
this.btnExit.Text = "Назад";
this.btnExit.UseVisualStyleBackColor = true;
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
//
// EditProduction
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.ClientSize = new System.Drawing.Size(372, 511);
this.Controls.Add(this.btnExit);
this.Controls.Add(this.btnEdit);
this.Controls.Add(this.lbWidth);
this.Controls.Add(this.lbMinPrice);
this.Controls.Add(this.lbArticle);
this.Controls.Add(this.lbName);
this.Controls.Add(this.lbType);
this.Controls.Add(this.tbWidth);
this.Controls.Add(this.tbMinPrice);
this.Controls.Add(this.tbArticle);
this.Controls.Add(this.tbName);
this.Controls.Add(this.cmbProduct);
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 = "EditProduction";
this.Text = "EditProduction";
this.Load += new System.EventHandler(this.EditProduction_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox cmbProduct;
private System.Windows.Forms.TextBox tbName;
private System.Windows.Forms.TextBox tbArticle;
private System.Windows.Forms.TextBox tbMinPrice;
private System.Windows.Forms.TextBox tbWidth;
private System.Windows.Forms.Label lbType;
private System.Windows.Forms.Label lbName;
private System.Windows.Forms.Label lbArticle;
private System.Windows.Forms.Label lbMinPrice;
private System.Windows.Forms.Label lbWidth;
private System.Windows.Forms.Button btnEdit;
private System.Windows.Forms.Button btnExit;
}
}

View File

@ -0,0 +1,225 @@
using MySql.Data.MySqlClient;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using static NeshinaPolina2111.AddProduction;
namespace NeshinaPolina2111
{
public partial class EditProduction : Form
{
public EditProduction()
{
InitializeComponent();
}
public int ProductId { get; set; }
private void btnEdit_Click(object sender, EventArgs e)
{
//проверки все
if (ProductId <= 0)
{
MessageBox.Show("ID материала не задан.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
return;
}
if (string.IsNullOrEmpty(tbArticle.Text))
{
MessageBox.Show("Введите Артикул", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbArticle.Focus();
return;
}
if (string.IsNullOrEmpty(tbMinPrice.Text))
{
MessageBox.Show("Введите Минимальную цену", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbMinPrice.Focus();
return;
}
if (string.IsNullOrEmpty(tbName.Text))
{
MessageBox.Show("Введите Название", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbName.Focus();
return;
}
if (string.IsNullOrEmpty(tbWidth.Text))
{
MessageBox.Show("Введите Ширину", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbWidth.Focus();
return;
}
if (cmbProduct.SelectedItem == null)
{
MessageBox.Show("Выберите тип продукта.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
cmbProduct.Focus();
return;
}
if (!decimal.TryParse(tbMinPrice.Text, out decimal price) || price < 0)
{
MessageBox.Show("Введите корректную цену (неотрицательное число)", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
tbMinPrice.Focus();
return;
}
var typeItem = (ComboItem)cmbProduct.SelectedItem;
string upquery = @"
update Products_import
set
Name = @Name,
Article = @Article,
MinPrice = @MinPrice,
Width = @Width,
idProduct_type_import = @idProduct_type_import
where idProducts_import = @idProducts_import";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(upquery, conn))
{
cmd.Parameters.AddWithValue("@idProduct_type_import", typeItem.Id);
cmd.Parameters.AddWithValue("@Name", tbName.Text.Trim());
cmd.Parameters.AddWithValue("@Article", tbArticle.Text.Trim());
cmd.Parameters.AddWithValue("@MinPrice", price);
cmd.Parameters.AddWithValue("@Width", tbWidth.Text.Trim());
cmd.Parameters.AddWithValue("@idProducts_import", ProductId);
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($"Ошибка при обновлении:\n{ex.ToString()}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void LoadProduct() //загрузка продуктов
{
if (ProductId <= 0)
{
MessageBox.Show("Некорректный ID материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.DialogResult = DialogResult.Cancel;
this.Close();
return;
}
LoadTypes();
string query = @"
select
p.idProduct_type_import,
p.Name,
p.Article,
p.MinPrice,
p.Width
from Products_import p
WHERE p.idProducts_import = @id";
var conn = DB.GetInstance().GetConnection();
if(conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@id", ProductId);
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
tbName.Text = reader.GetString("Name");
tbArticle.Text = reader.GetString("Article");
decimal price = reader.GetDecimal("MinPrice");
tbMinPrice.Text = price.ToString();
tbWidth.Text = reader.GetString("Width");
int productTypeId = reader.GetInt32("idProduct_type_import");
SelectComboBoxItem(cmbProduct, productTypeId);
}
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 idProduct_type_import, TypeProduction from Product_type_import";
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())
{
cmbProduct.Items.Add(new ComboItem
{
Id = reader.GetInt32("idProduct_type_import"),
Name = reader.GetString("TypeProduction")
});
}
}
}
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Hide();
}
private void EditProduction_Load(object sender, EventArgs e)
{
LoadProduct();
}
}
}

View File

@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

320
NeshinaPolina2111/Form1.Designer.cs generated Normal file
View File

@ -0,0 +1,320 @@
namespace NeshinaPolina2111
{
partial class MainForm
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором форм Windows
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.продукцияToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.списокМатериаловToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.dgvMain = 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.btnCalculator = new System.Windows.Forms.Button();
this.btnMyDiscounts = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.txtSearch = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.cmbSort = new System.Windows.Forms.ComboBox();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.cmbFilter = new System.Windows.Forms.ComboBox();
this.menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvMain)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.label1.Location = new System.Drawing.Point(99, 45);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(0, 61);
this.label1.TabIndex = 0;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(60, 162);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(0, 20);
this.label2.TabIndex = 2;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(60, 274);
this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(0, 20);
this.label3.TabIndex = 3;
//
// menuStrip1
//
this.menuStrip1.GripMargin = new System.Windows.Forms.Padding(2, 2, 0, 2);
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.продукцияToolStripMenuItem,
this.списокМатериаловToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(1382, 34);
this.menuStrip1.TabIndex = 4;
this.menuStrip1.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(123, 28);
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(199, 28);
this.списокМатериаловToolStripMenuItem.Text = "Список Материалов";
this.списокМатериаловToolStripMenuItem.Click += new System.EventHandler(this.списокМатериаловToolStripMenuItem_Click);
//
// dgvMain
//
this.dgvMain.AllowUserToAddRows = false;
this.dgvMain.AllowUserToDeleteRows = false;
this.dgvMain.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
this.dgvMain.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dgvMain.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.dgvMain.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvMain.Location = new System.Drawing.Point(18, 91);
this.dgvMain.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.dgvMain.Name = "dgvMain";
this.dgvMain.ReadOnly = true;
this.dgvMain.RowHeadersWidth = 62;
this.dgvMain.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgvMain.Size = new System.Drawing.Size(926, 589);
this.dgvMain.TabIndex = 5;
//
// btnAdd
//
this.btnAdd.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnAdd.Font = new System.Drawing.Font("Comic Sans MS", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnAdd.ForeColor = System.Drawing.SystemColors.Control;
this.btnAdd.Location = new System.Drawing.Point(952, 220);
this.btnAdd.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnAdd.Name = "btnAdd";
this.btnAdd.Size = new System.Drawing.Size(410, 74);
this.btnAdd.TabIndex = 6;
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)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnEdit.Font = new System.Drawing.Font("Comic Sans MS", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnEdit.ForeColor = System.Drawing.SystemColors.Control;
this.btnEdit.Location = new System.Drawing.Point(954, 308);
this.btnEdit.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnEdit.Name = "btnEdit";
this.btnEdit.Size = new System.Drawing.Size(410, 83);
this.btnEdit.TabIndex = 7;
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)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnDelete.Font = new System.Drawing.Font("Comic Sans MS", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnDelete.ForeColor = System.Drawing.SystemColors.Control;
this.btnDelete.Location = new System.Drawing.Point(952, 401);
this.btnDelete.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.btnDelete.Name = "btnDelete";
this.btnDelete.Size = new System.Drawing.Size(410, 80);
this.btnDelete.TabIndex = 8;
this.btnDelete.Text = "Удалить";
this.btnDelete.UseVisualStyleBackColor = false;
this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);
//
// btnCalculator
//
this.btnCalculator.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnCalculator.Font = new System.Drawing.Font("Comic Sans MS", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnCalculator.ForeColor = System.Drawing.SystemColors.Control;
this.btnCalculator.Location = new System.Drawing.Point(559, 705);
this.btnCalculator.Name = "btnCalculator";
this.btnCalculator.Size = new System.Drawing.Size(385, 67);
this.btnCalculator.TabIndex = 10;
this.btnCalculator.Text = "Перейти к калькулятору ";
this.btnCalculator.UseVisualStyleBackColor = false;
this.btnCalculator.Click += new System.EventHandler(this.button1_Click);
//
// btnMyDiscounts
//
this.btnMyDiscounts.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnMyDiscounts.Font = new System.Drawing.Font("Comic Sans MS", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnMyDiscounts.ForeColor = System.Drawing.SystemColors.ButtonFace;
this.btnMyDiscounts.Location = new System.Drawing.Point(1011, 572);
this.btnMyDiscounts.Name = "btnMyDiscounts";
this.btnMyDiscounts.Size = new System.Drawing.Size(319, 82);
this.btnMyDiscounts.TabIndex = 11;
this.btnMyDiscounts.Text = "Рассчитать скидку";
this.btnMyDiscounts.UseVisualStyleBackColor = false;
this.btnMyDiscounts.Click += new System.EventHandler(this.btnMyDiscounts_Click);
//
// panel1
//
this.panel1.BackgroundImage = global::NeshinaPolina2111.Properties.Resources.Нашекор;
this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.panel1.Location = new System.Drawing.Point(1214, 686);
this.panel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(150, 151);
this.panel1.TabIndex = 9;
//
// txtSearch
//
this.txtSearch.Location = new System.Drawing.Point(510, 57);
this.txtSearch.Name = "txtSearch";
this.txtSearch.Size = new System.Drawing.Size(434, 26);
this.txtSearch.TabIndex = 12;
this.txtSearch.TextChanged += new System.EventHandler(this.txtSearch_TextChanged);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(449, 60);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(55, 20);
this.label4.TabIndex = 13;
this.label4.Text = "Поиск";
//
// cmbSort
//
this.cmbSort.FormattingEnabled = true;
this.cmbSort.Location = new System.Drawing.Point(952, 114);
this.cmbSort.Name = "cmbSort";
this.cmbSort.Size = new System.Drawing.Size(408, 28);
this.cmbSort.TabIndex = 14;
this.cmbSort.SelectedIndexChanged += new System.EventHandler(this.cmbSort_SelectedIndexChanged);
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(948, 91);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(110, 20);
this.label5.TabIndex = 15;
this.label5.Text = "Сортировать";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(948, 145);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(106, 20);
this.label6.TabIndex = 16;
this.label6.Text = "Фильтрация";
//
// cmbFilter
//
this.cmbFilter.FormattingEnabled = true;
this.cmbFilter.Location = new System.Drawing.Point(952, 168);
this.cmbFilter.Name = "cmbFilter";
this.cmbFilter.Size = new System.Drawing.Size(408, 28);
this.cmbFilter.TabIndex = 17;
this.cmbFilter.SelectedIndexChanged += new System.EventHandler(this.cmbFilter_SelectedIndexChanged);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1382, 855);
this.Controls.Add(this.cmbFilter);
this.Controls.Add(this.label6);
this.Controls.Add(this.label5);
this.Controls.Add(this.cmbSort);
this.Controls.Add(this.label4);
this.Controls.Add(this.txtSearch);
this.Controls.Add(this.btnMyDiscounts);
this.Controls.Add(this.btnCalculator);
this.Controls.Add(this.panel1);
this.Controls.Add(this.btnDelete);
this.Controls.Add(this.btnEdit);
this.Controls.Add(this.btnAdd);
this.Controls.Add(this.dgvMain);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.menuStrip1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip1;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.MaximizeBox = false;
this.Name = "MainForm";
this.Text = "MainForm";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvMain)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem продукцияToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem списокМатериаловToolStripMenuItem;
private System.Windows.Forms.DataGridView dgvMain;
private System.Windows.Forms.Button btnAdd;
private System.Windows.Forms.Button btnEdit;
private System.Windows.Forms.Button btnDelete;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Button btnCalculator;
private System.Windows.Forms.Button btnMyDiscounts;
private System.Windows.Forms.TextBox txtSearch;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.ComboBox cmbSort;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.ComboBox cmbFilter;
}
}

602
NeshinaPolina2111/Form1.cs Normal file
View File

@ -0,0 +1,602 @@
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 MySql.Data.MySqlClient;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
namespace NeshinaPolina2111
{
public partial class MainForm : Form
{
public enum ViewMode
{
Production,
Materials
}
private ViewMode currentMode = ViewMode.Production;
private int userRoleId; // 1=Работник, 2=Менеджер, 3=Партнёр //ЭТО НОВОЕ
private Authorization authForm;
private int partnerId;
private DataTable originalProductionData; // для продукции поиск+
private DataTable originalMaterialsData; // для материалов поиск +
public MainForm(int roleId, int partnerId, Authorization authForm)
{
InitializeComponent();
this.userRoleId = roleId;
this.authForm = authForm;
this.partnerId = partnerId;
ApplyRolePermissions();
UpdateControlVisibility();
продукцияToolStripMenuItem_Click(null, EventArgs.Empty);
SetupProductionFiltersAndSorts(); //КОМБОБОКСЫ
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) //ЭТО ЧТОБ ПРИ ЗАКРЫТИИ АВТОРИЗАЦИЯ ВОЗВРАЩАЛАСЬ
{
e.Cancel = true;
this.Hide();
authForm.Show();
}
private void ApplyRolePermissions() //ЭТО ОБРАБОТЧИК КНОПОК ПОКАЗА
{
btnAdd.Visible = true;
btnEdit.Visible = true;
btnDelete.Visible = true;
switch (userRoleId)
{
case 1: //РАБОТНИК НИЧЕ НЕ МОЖЕТ ДЕЛАТЬ
btnAdd.Visible = false;
btnEdit.Visible = false;
btnDelete.Visible = false;
btnMyDiscounts.Visible = false;
btnCalculator.Visible = false;
txtSearch.Visible = false;
label4.Visible = false;
//cmbFilter.Visible = false;
//cmbSort.Visible = false;
//label5.Visible = false;
//label6.Visible = false;
//txtSearch.Visible = false;
this.Text = "Главная форма — Работник";
break;
case 2: //МЕНЕДЖЕР МОЖЕТ ВСЁ ДЕЛАТЬ С ИНФОЙ, НО НЕ РАСЧЁТ СКИДОК
btnMyDiscounts.Visible = false;
this.Text = "Главная форма — Менеджер";
break;
case 3: //ПАРТНЁР МОЖЕТ ТОЛЬКО СКИДКУ ДЕЛАТЬ
btnAdd.Visible = false;
btnEdit.Visible = false;
btnDelete.Visible = false;
btnMyDiscounts.Visible = true;
btnCalculator.Visible = false;
txtSearch.Visible = false;
label4.Visible = false;
//cmbFilter.Visible = false;
//cmbSort.Visible = false;
//label5.Visible = false;
//label6.Visible = false;
//txtSearch.Visible = false;
this.Text = "Главная форма — Партнёр";
break;
case 4: //ВСЁ МОЖНО РАЗРАБУ
this.Text = "Главная форма — Разработчик";
break;
default:
MessageBox.Show("Неизвестная роль. Доступ ограничен.");
btnAdd.Visible = false;
btnEdit.Visible = false;
btnDelete.Visible = false;
break;
}
}
private void LoadProduction() //ЗАГРУЗКА ПРОДУКЦИИ + ПОИСК ЧАТЬ
{
string query = @"
SELECT
p.idProducts_import,
t.TypeProduction,
p.Name,
p.Article,
p.Width,
p.MinPrice,
COALESCE(
(SELECT SUM(m.PriceUnitMaterial * pc.Quantity)
FROM Product_composition pc
JOIN Materials_import m ON pc.idMaterials_import = m.idMaterials_import
WHERE pc.idProducts_import = p.idProducts_import),
0
) AS CalculatedCost
FROM Products_import p
LEFT JOIN Product_type_import t ON p.idProduct_type_import = t.idProduct_type_import";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
var adapter = new MySqlDataAdapter(cmd);
originalProductionData = new DataTable();
adapter.Fill(originalProductionData);
}
dgvMain.DataSource = originalProductionData;
currentMode = ViewMode.Production;
UpdateControlVisibility(); // ← вызываем здесь
// показываем элементы для продукции
//txtSearch.Visible = true;
//cmbFilter.Visible = true;
//cmbSort.Visible = true;
originalProductionData.Columns.Add("SearchName", typeof(string), "CONVERT(Name, 'System.String')");
originalProductionData.Columns.Add("SearchArticle", typeof(string), "CONVERT(Article, 'System.String')");
originalProductionData.Columns.Add("SearchType", typeof(string), "CONVERT(TypeProduction, 'System.String')");
originalProductionData.Columns.Add("SearchWidth", typeof(string), "CONVERT(Width, 'System.String')");
originalProductionData.Columns.Add("SearchMinPrice", typeof(string), "CONVERT(MinPrice, 'System.String')");
originalProductionData.Columns.Add("SearchCalculatedCost", typeof(string), "CONVERT(CalculatedCost, 'System.String')");
dgvMain.DataSource = originalProductionData; //СКРОПЙ ВЕРХНИЕ ПОЛЧЯ
foreach (DataGridViewColumn col in dgvMain.Columns)
{
if (col.Name.StartsWith("Search"))
col.Visible = false;
}
ApplySearchFilter();
}
private void LoadMaterials() //ЗАГРУЗКА МАТЕРИАЛОВ + ПОИСК ЧАТЬ
{
string query = @"
SELECT
m.idMaterials_import AS Id,
m.Name,
t.Name AS TypeName,
m.PriceUnitMaterial,
m.Quantity,
m.MinQuantity,
m.QuantityPack,
u.Name AS UnitName
FROM Materials_import m
LEFT JOIN Material_type_import t ON m.idMaterial_type_import = t.idMaterial_type_import
LEFT JOIN Unit u ON m.idUnit = u.idUnit";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
var adapter = new MySqlDataAdapter(cmd);
originalMaterialsData = new DataTable();
adapter.Fill(originalMaterialsData);
}
dgvMain.DataSource = originalMaterialsData;
currentMode = ViewMode.Materials;
UpdateControlVisibility(); // ← вызываем здесь
//txtSearch.Visible = true;
//cmbFilter.Visible = false;
//cmbSort.Visible = false;
//label5.Visible = false;
//label6.Visible = false;
//ПОЛЯ ДЛЯ ПОИСК КРЧ
originalMaterialsData.Columns.Add("SearchName", typeof(string), "CONVERT(Name, 'System.String')");
originalMaterialsData.Columns.Add("SearchTypeName", typeof(string), "CONVERT(TypeName, 'System.String')");
originalMaterialsData.Columns.Add("SearchPrice", typeof(string), "CONVERT(PriceUnitMaterial, 'System.String')");
originalMaterialsData.Columns.Add("SearchQuantity", typeof(string), "CONVERT(Quantity, 'System.String')");
originalMaterialsData.Columns.Add("SearchMinQuantity", typeof(string), "CONVERT(MinQuantity, 'System.String')");
originalMaterialsData.Columns.Add("SearchQuantityPack", typeof(string), "CONVERT(QuantityPack, 'System.String')");
originalMaterialsData.Columns.Add("SearchUnitName", typeof(string), "CONVERT(UnitName, 'System.String')");
dgvMain.DataSource = originalMaterialsData;
foreach (DataGridViewColumn col in dgvMain.Columns)
{
if (col.Name.StartsWith("Search"))
col.Visible = false;
}
ApplySearchFilter();
}
private void ApplySearchFilter() //ПОИСК ПО ВСМЕУ КРТ
{
string search = txtSearch.Text.Trim();
if (currentMode == ViewMode.Production)
{
string baseFilter = "";
switch (cmbFilter.SelectedIndex)
{
case 0: baseFilter = ""; break;
case 1: baseFilter = "CalculatedCost > 1000"; break;
case 2: baseFilter = "CalculatedCost < 500"; break;
case 3: baseFilter = "MinPrice < CalculatedCost"; break;
case 4: baseFilter = "Width > 10"; break;
}
if (!string.IsNullOrEmpty(search))
{
search = search.Replace("'", "''");
string searchFilter = $"SearchName LIKE '%{search}%' OR " +
$"SearchArticle LIKE '%{search}%' OR " +
$"SearchType LIKE '%{search}%' OR " +
$"SearchWidth LIKE '%{search}%' OR " +
$"SearchMinPrice LIKE '%{search}%' OR " +
$"SearchCalculatedCost LIKE '%{search}%'";
if (!string.IsNullOrEmpty(baseFilter))
baseFilter = $"({baseFilter}) AND ({searchFilter})";
else
baseFilter = searchFilter;
}
string sort = "";
switch (cmbSort.SelectedIndex)
{
case 0: sort = "Name ASC"; break;
case 1: sort = "Name DESC"; break;
case 2: sort = "CalculatedCost ASC"; break;
case 3: sort = "CalculatedCost DESC"; break;
case 4: sort = "Article ASC"; break;
}
try
{
DataView view = originalProductionData.DefaultView;
view.RowFilter = baseFilter;
view.Sort = sort;
dgvMain.DataSource = view;
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка фильтрации продукции: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
else if (currentMode == ViewMode.Materials)
{
string filter = "";
if (!string.IsNullOrEmpty(search))
{
search = search.Replace("'", "''");
filter = $"SearchName LIKE '%{search}%' OR " +
$"SearchTypeName LIKE '%{search}%' OR " +
$"SearchPrice LIKE '%{search}%' OR " +
$"SearchQuantity LIKE '%{search}%' OR " +
$"SearchMinQuantity LIKE '%{search}%' OR " +
$"SearchQuantityPack LIKE '%{search}%' OR " +
$"SearchUnitName LIKE '%{search}%'";
}
try
{
DataView view = originalMaterialsData.DefaultView;
view.RowFilter = filter;
dgvMain.DataSource = view;
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка поиска материалов: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
private void btnAdd_Click(object sender, EventArgs e) //ДОБАВИИТЬ
{
switch (currentMode) //СМОТРЯ Чё ОТКРЫТО, ТО ОТКРЫВАТЕСЯЧ
{
case ViewMode.Production:
var addProd = new AddProduction();
if (addProd.ShowDialog() == DialogResult.OK)
{
LoadProduction();
}
break;
case ViewMode.Materials:
var addMat = new AddMaterials();
if (addMat.ShowDialog() == DialogResult.OK)
{
LoadMaterials();
}
break;
}
}
private void btnEdit_Click(object sender, EventArgs e) //ИЗМЕНИТЬ
{
if (dgvMain.SelectedRows.Count == 0)
{
MessageBox.Show("Выберите строку для редактирования.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
var selectedRow = dgvMain.SelectedRows[0];
object idValue = null;
switch (currentMode)
{
case ViewMode.Production:
idValue = selectedRow.Cells["idProducts_import"]?.Value;
if (idValue == null)
{
MessageBox.Show("Не удалось получить ID продукта.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
int prodId = Convert.ToInt32(idValue);
var editProd = new EditProduction { ProductId = prodId };
if (editProd.ShowDialog() == DialogResult.OK)
{
LoadProduction();
}
break;
case ViewMode.Materials:
idValue = selectedRow.Cells["Id"]?.Value;
if (idValue == null)
{
MessageBox.Show("Не удалось получить ID материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
int matId = Convert.ToInt32(idValue);
var editMat = new EditMaterials { MaterialId = matId };
if (editMat.ShowDialog() == DialogResult.OK)
{
LoadMaterials();
}
break;
}
}
private void btnDelete_Click(object sender, EventArgs e) //УДАИЛИТЬ
{
if (dgvMain.SelectedRows.Count == 0)
{
MessageBox.Show("Выберите строку для удаления.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
var selectedRow = dgvMain.SelectedRows[0];
object idValue = null;
string itemName = "неизвестный";
switch (currentMode)
{
case ViewMode.Production:
idValue = selectedRow.Cells["idProducts_import"]?.Value;
itemName = selectedRow.Cells["Name"]?.Value?.ToString() ?? "неизвестный";
if (idValue == null)
{
MessageBox.Show("Не удалось получить ID продукта.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
ConfirmAndDelete("Products_import", "idProducts_import", Convert.ToInt32(idValue), itemName);
LoadProduction();
break;
case ViewMode.Materials:
idValue = selectedRow.Cells["Id"]?.Value; //УДАЛЕНИЕ ПО АЙДИШНИКУ
itemName = selectedRow.Cells["Name"]?.Value?.ToString() ?? "неизвестный";
if (idValue == null)
{
MessageBox.Show("Не удалось получить ID материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
ConfirmAndDelete("Materials_import", "idMaterials_import", Convert.ToInt32(idValue), itemName);
LoadMaterials();
break;
}
}
private void ConfirmAndDelete(string tableName, string idColumnName, int id, string itemName) //УДАЛЕНИЕ НАДО
{
var result = MessageBox.Show(
$"Вы уверены, что хотите удалить:\n\n«{itemName}»?\n\nЭто действие нельзя отменить.",
"Подтверждение удаления",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning
);
if (result == DialogResult.No) return;
string query = $"DELETE FROM {tableName} WHERE {idColumnName} = @id";
var conn = DB.GetInstance().GetConnection();
if (conn.State == ConnectionState.Closed)
conn.Open();
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@id", id);
try
{
int rowsAffected = cmd.ExecuteNonQuery();
if (rowsAffected > 0)
{
MessageBox.Show("Запись успешно удалена!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Не удалось удалить запись.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка при удалении: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void продукцияToolStripMenuItem_Click(object sender, EventArgs e)
{
LoadProduction();
}
private void списокМатериаловToolStripMenuItem_Click(object sender, EventArgs e)
{
LoadMaterials();
}
private void button1_Click(object sender, EventArgs e) //КАЛЬКУЛЯТОР
{
var form = new MaterialPurchaseCalculatorForm();
form.ShowDialog();
}
private void btnMyDiscounts_Click(object sender, EventArgs e) //ЭТО НА ФОРМУ СО СКИДКАМИ
{
PartnerDiscountsForm partnerDiscountsForm = new PartnerDiscountsForm(partnerId);
partnerDiscountsForm.ShowDialog();
MessageBox.Show($"Текущий partnerId: {partnerId}");
}
private void txtSearch_TextChanged(object sender, EventArgs e)
{
ApplySearchFilter();
}
private void SetupProductionFiltersAndSorts() //СОРТ, ФИЛЬТР
{
// ФИЛЬТРАЦИЯ
cmbFilter.Items.Clear();
cmbFilter.Items.Add("Все");
cmbFilter.Items.Add("Себестоимость > 1000 ₽");
cmbFilter.Items.Add("Себестоимость < 500 ₽");
cmbFilter.Items.Add("С минимальной ценой < себестоимости");
cmbFilter.Items.Add("Ширина > 10");
//СОРТИРОЧКА
cmbSort.Items.Clear();
cmbSort.Items.Add("По названию (А→Я)");
cmbSort.Items.Add("По названию (Я→А)");
cmbSort.Items.Add("По себестоимости (возр.)");
cmbSort.Items.Add("По себестоимости (убыв.)");
cmbSort.Items.Add("По артикулу");
cmbFilter.SelectedIndex = 0;
cmbSort.SelectedIndex = 0;
}
private void ApplyProductionFilterAndSort() //СОРТИРОВКА, ФИЛТРАЦИЯ
{
if (currentMode != ViewMode.Production || originalProductionData == null)
return;
string filter = "";
string sort = "";
switch (cmbFilter.SelectedIndex)
{
case 0:
filter = "";
break;
case 1:
filter = "CalculatedCost > 1000";
break;
case 2:
filter = "CalculatedCost < 500";
break;
case 3:
filter = "MinPrice < CalculatedCost";
break;
case 4:
filter = "Width > 10";
break;
}
switch (cmbSort.SelectedIndex)
{
case 0: sort = "Name ASC"; break;
case 1: sort = "Name DESC"; break;
case 2: sort = "CalculatedCost ASC"; break;
case 3: sort = "CalculatedCost DESC"; break;
case 4: sort = "Article ASC"; break;
}
try
{
DataView view = originalProductionData.DefaultView;
view.RowFilter = filter;
view.Sort = sort;
dgvMain.DataSource = view;
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка применения фильтра/сортировки: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void cmbSort_SelectedIndexChanged(object sender, EventArgs e)
{
ApplyProductionFilterAndSort();
}
private void cmbFilter_SelectedIndexChanged(object sender, EventArgs e)
{
ApplyProductionFilterAndSort();
}
private void UpdateControlVisibility() //СКРЫТИЕ КНОПОК ПРЯМ МНОГО СКРЫВАТЬ
{
bool isDeveloper = (userRoleId == 4); // РАЗРАБ ВСЁ ВИДИТ
bool isManager = (userRoleId == 2); // МЕНЕДЖЕР +- ЧЁТ ВИДИТ
bool isWorkerOrPartner = (userRoleId == 1 || userRoleId == 3); // РАБОТЯГА И ПАРТНЁРЫ +- НИЧЕГО НЕ ВИДЯТ
bool isProduction = (currentMode == ViewMode.Production);
bool isMaterials = (currentMode == ViewMode.Materials);
if (isDeveloper)
{
txtSearch.Visible = true;
}
else if (isManager)
{
txtSearch.Visible = isProduction || isMaterials;
}
else
{
txtSearch.Visible = false;
}
if (isDeveloper)
{
cmbFilter.Visible = isProduction;
cmbSort.Visible = isProduction;
}
else if (isManager)
{
cmbFilter.Visible = isProduction;
cmbSort.Visible = isProduction;
}
else
{
cmbFilter.Visible = false;
cmbSort.Visible = false;
}
label5.Visible = isDeveloper;
label6.Visible = isDeveloper;
}
}
}

View File

@ -0,0 +1,456 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

View File

@ -0,0 +1,231 @@
namespace NeshinaPolina2111
{
partial class MaterialPurchaseCalculatorForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MaterialPurchaseCalculatorForm));
this.cmbProductType = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.cmbMaterialType = new System.Windows.Forms.ComboBox();
this.numQuantityProduced = new System.Windows.Forms.NumericUpDown();
this.txtParam1 = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.txtParam2 = new System.Windows.Forms.TextBox();
this.txtStock = new System.Windows.Forms.TextBox();
this.btnCalculate = new System.Windows.Forms.Button();
this.lblResult = 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();
((System.ComponentModel.ISupportInitialize)(this.numQuantityProduced)).BeginInit();
this.SuspendLayout();
//
// cmbProductType
//
this.cmbProductType.FormattingEnabled = true;
this.cmbProductType.Location = new System.Drawing.Point(237, 61);
this.cmbProductType.Name = "cmbProductType";
this.cmbProductType.Size = new System.Drawing.Size(234, 28);
this.cmbProductType.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(35, 69);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(120, 20);
this.label1.TabIndex = 1;
this.label1.Text = "Тип продукции";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(35, 110);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(124, 20);
this.label2.TabIndex = 2;
this.label2.Text = "Тип материала";
//
// cmbMaterialType
//
this.cmbMaterialType.FormattingEnabled = true;
this.cmbMaterialType.Location = new System.Drawing.Point(237, 102);
this.cmbMaterialType.Name = "cmbMaterialType";
this.cmbMaterialType.Size = new System.Drawing.Size(234, 28);
this.cmbMaterialType.TabIndex = 3;
//
// numQuantityProduced
//
this.numQuantityProduced.Location = new System.Drawing.Point(237, 146);
this.numQuantityProduced.Name = "numQuantityProduced";
this.numQuantityProduced.Size = new System.Drawing.Size(234, 26);
this.numQuantityProduced.TabIndex = 4;
//
// txtParam1
//
this.txtParam1.Location = new System.Drawing.Point(237, 178);
this.txtParam1.Name = "txtParam1";
this.txtParam1.Size = new System.Drawing.Size(234, 26);
this.txtParam1.TabIndex = 5;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(35, 152);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(184, 20);
this.label3.TabIndex = 6;
this.label3.Text = "Количество продукции";
//
// txtParam2
//
this.txtParam2.Location = new System.Drawing.Point(237, 210);
this.txtParam2.Name = "txtParam2";
this.txtParam2.Size = new System.Drawing.Size(234, 26);
this.txtParam2.TabIndex = 7;
//
// txtStock
//
this.txtStock.Location = new System.Drawing.Point(237, 242);
this.txtStock.Name = "txtStock";
this.txtStock.Size = new System.Drawing.Size(235, 26);
this.txtStock.TabIndex = 8;
//
// btnCalculate
//
this.btnCalculate.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(96)))), ((int)(((byte)(51)))));
this.btnCalculate.Font = new System.Drawing.Font("Comic Sans MS", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnCalculate.ForeColor = System.Drawing.SystemColors.ButtonFace;
this.btnCalculate.Location = new System.Drawing.Point(141, 382);
this.btnCalculate.Name = "btnCalculate";
this.btnCalculate.Size = new System.Drawing.Size(234, 64);
this.btnCalculate.TabIndex = 9;
this.btnCalculate.Text = "Рассчитать";
this.btnCalculate.UseVisualStyleBackColor = false;
this.btnCalculate.Click += new System.EventHandler(this.btnCalculate_Click);
//
// lblResult
//
this.lblResult.AutoSize = true;
this.lblResult.Location = new System.Drawing.Point(35, 317);
this.lblResult.Name = "lblResult";
this.lblResult.Size = new System.Drawing.Size(60, 20);
this.lblResult.TabIndex = 10;
this.lblResult.Text = "Вывод";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(35, 184);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(99, 20);
this.label4.TabIndex = 11;
this.label4.Text = "Параметр 1";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(35, 216);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(99, 20);
this.label5.TabIndex = 12;
this.label5.Text = "Параметр 2";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(35, 248);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(55, 20);
this.label6.TabIndex = 13;
this.label6.Text = "Запас";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.label7.Location = new System.Drawing.Point(193, 9);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(113, 32);
this.label7.TabIndex = 14;
this.label7.Text = "Расчёт";
//
// MaterialPurchaseCalculatorForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.ClientSize = new System.Drawing.Size(506, 458);
this.Controls.Add(this.label7);
this.Controls.Add(this.label6);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.lblResult);
this.Controls.Add(this.btnCalculate);
this.Controls.Add(this.txtStock);
this.Controls.Add(this.txtParam2);
this.Controls.Add(this.label3);
this.Controls.Add(this.txtParam1);
this.Controls.Add(this.numQuantityProduced);
this.Controls.Add(this.cmbMaterialType);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.cmbProductType);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "MaterialPurchaseCalculatorForm";
this.Text = "MaterialPurchaseCalculatorForm";
this.Load += new System.EventHandler(this.MaterialPurchaseCalculatorForm_Load);
((System.ComponentModel.ISupportInitialize)(this.numQuantityProduced)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ComboBox cmbProductType;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ComboBox cmbMaterialType;
private System.Windows.Forms.NumericUpDown numQuantityProduced;
private System.Windows.Forms.TextBox txtParam1;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtParam2;
private System.Windows.Forms.TextBox txtStock;
private System.Windows.Forms.Button btnCalculate;
private System.Windows.Forms.Label lblResult;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
}
}

View File

@ -0,0 +1,141 @@
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 NeshinaPolina2111
{
public partial class MaterialPurchaseCalculatorForm : Form
{
public MaterialPurchaseCalculatorForm()
{
InitializeComponent();
}
private void MaterialPurchaseCalculatorForm_Load(object sender, EventArgs e)
{
LoadProductTypes();
LoadMaterialTypes();
lblResult.Text = "";
}
private void LoadProductTypes()
{
string query = "SELECT idProduct_type_import, TypeProduction, Coefficient FROM Product_type_import ORDER BY TypeProduction";
LoadComboBox(cmbProductType, query, "TypeProduction", "idProduct_type_import");
}
private void LoadMaterialTypes()
{
string query = "SELECT idMaterial_type_import, Name, Procent FROM Material_type_import ORDER BY Name";
LoadComboBox(cmbMaterialType, query, "Name", "idMaterial_type_import");
}
private void LoadComboBox(ComboBox comboBox, string query, string displayMember, string valueMember)
{
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);
comboBox.DisplayMember = displayMember;
comboBox.ValueMember = valueMember;
comboBox.DataSource = dt;
}
}
private bool TryParsePositiveDecimal(string input, out decimal result)
{
result = 0;
if (string.IsNullOrWhiteSpace(input))
return false;
if (!decimal.TryParse(input.Replace('.', ','), out result))
return false;
return result > 0;
}
private bool TryParseNonNegativeDecimal(string input, out decimal result)
{
result = 0;
if (string.IsNullOrWhiteSpace(input))
return false;
if (!decimal.TryParse(input.Replace('.', ','), out result))
return false;
return result >= 0;
}
private void btnCalculate_Click(object sender, EventArgs e)
{
// 1. Проверка выбора типов
if (cmbProductType.SelectedValue == null || cmbMaterialType.SelectedValue == null)
{
MessageBox.Show("Выберите тип продукции и тип материала.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int productTypeId = Convert.ToInt32(cmbProductType.SelectedValue);
int materialTypeId = Convert.ToInt32(cmbMaterialType.SelectedValue);
int quantityProduced = (int)numQuantityProduced.Value;
// 2. Проверка параметров
decimal param1, param2, stock;
if (!TryParsePositiveDecimal(txtParam1.Text, out param1))
{
MessageBox.Show("Параметр 1 должен быть положительным числом.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!TryParsePositiveDecimal(txtParam2.Text, out param2))
{
MessageBox.Show("Параметр 2 должен быть положительным числом.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (!TryParseNonNegativeDecimal(txtStock.Text, out stock))
{
MessageBox.Show("Количество на складе не может быть отрицательным.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
// 3. Вызов метода расчёта
int result = DB.CalculateMaterialToPurchase(
productTypeId,
materialTypeId,
quantityProduced,
param1,
param2,
stock
);
// 4. Обработка результата
if (result == -1)
{
lblResult.Text = "❌ Ошибка: не найдены типы продукции или материала.";
lblResult.ForeColor = Color.Red;
}
else if (result == 0)
{
lblResult.Text = "✅ Материал на складе достаточен — ничего докупать не нужно.";
lblResult.ForeColor = Color.Green;
}
else
{
lblResult.Text = $"🔹 Требуется докупить материала: {result} ед.";
lblResult.ForeColor = Color.Blue;
}
}
}
}

View File

@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

View File

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{2FB93473-AD29-4E9F-B2A7-43AECEF50DDB}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>NeshinaPolina2111</RootNamespace>
<AssemblyName>NeshinaPolina2111</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="MySql.Data">
<HintPath>..\..\..\Users\Student\Desktop\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AddMaterials.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AddMaterials.Designer.cs">
<DependentUpon>AddMaterials.cs</DependentUpon>
</Compile>
<Compile Include="AddProduction.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AddProduction.Designer.cs">
<DependentUpon>AddProduction.cs</DependentUpon>
</Compile>
<Compile Include="Authorization.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Authorization.Designer.cs">
<DependentUpon>Authorization.cs</DependentUpon>
</Compile>
<Compile Include="DB.cs" />
<Compile Include="EditMaterials.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="EditMaterials.Designer.cs">
<DependentUpon>EditMaterials.cs</DependentUpon>
</Compile>
<Compile Include="EditProduction.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="EditProduction.Designer.cs">
<DependentUpon>EditProduction.cs</DependentUpon>
</Compile>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="MaterialPurchaseCalculatorForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MaterialPurchaseCalculatorForm.Designer.cs">
<DependentUpon>MaterialPurchaseCalculatorForm.cs</DependentUpon>
</Compile>
<Compile Include="PartnerDiscountsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PartnerDiscountsForm.Designer.cs">
<DependentUpon>PartnerDiscountsForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="AddMaterials.resx">
<DependentUpon>AddMaterials.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="AddProduction.resx">
<DependentUpon>AddProduction.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Authorization.resx">
<DependentUpon>Authorization.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="EditMaterials.resx">
<DependentUpon>EditMaterials.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="EditProduction.resx">
<DependentUpon>EditProduction.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MaterialPurchaseCalculatorForm.resx">
<DependentUpon>MaterialPurchaseCalculatorForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PartnerDiscountsForm.resx">
<DependentUpon>PartnerDiscountsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Наш декор.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -0,0 +1,114 @@
namespace NeshinaPolina2111
{
partial class PartnerDiscountsForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PartnerDiscountsForm));
this.lblTitle = new System.Windows.Forms.Label();
this.lblTotalSales = new System.Windows.Forms.Label();
this.lblCurrentDiscount = new System.Windows.Forms.Label();
this.lblNextLevel = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// lblTitle
//
this.lblTitle.AutoSize = true;
this.lblTitle.Location = new System.Drawing.Point(42, 109);
this.lblTitle.Name = "lblTitle";
this.lblTitle.Size = new System.Drawing.Size(0, 20);
this.lblTitle.TabIndex = 0;
//
// lblTotalSales
//
this.lblTotalSales.AutoSize = true;
this.lblTotalSales.Location = new System.Drawing.Point(42, 152);
this.lblTotalSales.Name = "lblTotalSales";
this.lblTotalSales.Size = new System.Drawing.Size(51, 20);
this.lblTotalSales.TabIndex = 1;
this.lblTotalSales.Text = "label1";
//
// lblCurrentDiscount
//
this.lblCurrentDiscount.AutoSize = true;
this.lblCurrentDiscount.Location = new System.Drawing.Point(42, 191);
this.lblCurrentDiscount.Name = "lblCurrentDiscount";
this.lblCurrentDiscount.Size = new System.Drawing.Size(51, 20);
this.lblCurrentDiscount.TabIndex = 2;
this.lblCurrentDiscount.Text = "label1";
//
// lblNextLevel
//
this.lblNextLevel.AutoSize = true;
this.lblNextLevel.Location = new System.Drawing.Point(42, 238);
this.lblNextLevel.Name = "lblNextLevel";
this.lblNextLevel.Size = new System.Drawing.Size(51, 20);
this.lblNextLevel.TabIndex = 4;
this.lblNextLevel.Text = "label2";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Comic Sans MS", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.label1.Location = new System.Drawing.Point(202, 33);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(113, 39);
this.label1.TabIndex = 6;
this.label1.Text = "Скидка";
//
// PartnerDiscountsForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(187)))), ((int)(((byte)(217)))), ((int)(((byte)(178)))));
this.ClientSize = new System.Drawing.Size(496, 330);
this.Controls.Add(this.label1);
this.Controls.Add(this.lblNextLevel);
this.Controls.Add(this.lblCurrentDiscount);
this.Controls.Add(this.lblTotalSales);
this.Controls.Add(this.lblTitle);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "PartnerDiscountsForm";
this.Text = "PartnerDiscountsForm";
this.Load += new System.EventHandler(this.PartnerDiscountsForm_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblTitle;
private System.Windows.Forms.Label lblTotalSales;
private System.Windows.Forms.Label lblCurrentDiscount;
private System.Windows.Forms.Label lblNextLevel;
private System.Windows.Forms.Label label1;
}
}

View File

@ -0,0 +1,122 @@
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 NeshinaPolina2111
{
public partial class PartnerDiscountsForm : Form
{
public PartnerDiscountsForm (int partnerId)
{
InitializeComponent();
this.partnerId = partnerId;
MessageBox.Show($"ID партнёра в форме: {partnerId}");
LoadData();
}
public int partnerId { get; set; }
private void PartnerDiscountsForm_Load(object sender, EventArgs e)
{
}
private void LoadData()
{
try
{
decimal totalSales = GetTotalSales(partnerId);
decimal currentDiscount = GetDiscountBySales(totalSales);
lblTotalSales.Text = $"Общий объём продаж: {totalSales:F2} ₽";
lblCurrentDiscount.Text = $"Текущая скидка: {currentDiscount:F1}%";
string nextLevel = GetNextDiscountLevel(totalSales);
lblNextLevel.Text = $"Следующий уровень: {nextLevel}";
}
catch (Exception ex)
{
MessageBox.Show($"Ошибка загрузки данных: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private decimal GetTotalSales(int partnerId)
{
string query = "SELECT COALESCE(SUM(SaleAmount), 0) FROM PartnerSales WHERE idAuthorization = @partnerId";
var conn = DB.GetInstance().GetConnection();
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@partnerId", partnerId);
return Convert.ToDecimal(cmd.ExecuteScalar());
}
}
private decimal GetDiscountBySales(decimal totalSales)
{
string query = @"
SELECT DiscountPercent
FROM Discounts
WHERE MinSales <= @totalSales
ORDER BY MinSales DESC
LIMIT 1";
var conn = DB.GetInstance().GetConnection();
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@totalSales", totalSales);
var result = cmd.ExecuteScalar();
return result != null ? Convert.ToDecimal(result) : 0;
}
}
private string GetNextDiscountLevel(decimal currentSales)
{
string query = @"
SELECT MinSales, DiscountPercent
FROM Discounts
WHERE MinSales > @currentSales
ORDER BY MinSales ASC
LIMIT 1";
var conn = DB.GetInstance().GetConnection();
using (var cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@currentSales", currentSales);
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
decimal minSales = Convert.ToDecimal(reader["MinSales"]);
decimal discount = Convert.ToDecimal(reader["DiscountPercent"]);
return $"{minSales:F2} ₽ → {discount:F1}%";
}
else
{
return "Вы достигли максимального уровня скидок!";
}
}
}
}
private void btnClose_Click(object sender, EventArgs e)
{
}
}
}

View File

@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

View File

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace NeshinaPolina2111
{
internal static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Сначала открываем форму авторизации
var authForm = new Authorization();
authForm.ShowDialog(); // ждём, пока пользователь войдёт
// Если форма авторизации закрыта — выходим (если не вошёл)
if (authForm.Visible) // если форма всё ещё видна — значит, пользователь не вошёл или закрыл без входа
{
return;
}
// Всё хорошо — приложение завершилось успешно, но мы не запускаем MainForm здесь
// Потому что MainForm создаётся и показывается внутри Authorization после успешного входа
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Общие сведения об этой сборке предоставляются следующим набором
// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
// связанных со сборкой.
[assembly: AssemblyTitle("NeshinaPolina2111")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("NeshinaPolina2111")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
// COM, следует установить атрибут ComVisible в TRUE для этого типа.
[assembly: ComVisible(false)]
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
[assembly: Guid("2fb93473-ad29-4e9f-b2a7-43aecef50ddb")]
// Сведения о версии сборки состоят из указанных ниже четырех значений:
//
// Основной номер версии
// Дополнительный номер версии
// Номер сборки
// Редакция
//
// Можно задать все значения или принять номера сборки и редакции по умолчанию
// используя "*", как показано ниже:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,73 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace NeshinaPolina2111.Properties {
using System;
/// <summary>
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
/// </summary>
// Этот класс создан автоматически классом 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() {
}
/// <summary>
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
/// </summary>
[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("NeshinaPolina2111.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Нашекор {
get {
object obj = ResourceManager.GetObject("Наш декор", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Наш декор" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Наш декор.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
namespace NeshinaPolina2111.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;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]

View File

@ -0,0 +1 @@
e59db2da920f4c72132217abff4bf83fbb8a4aff904c77f78018d931d061831a

View File

@ -0,0 +1,36 @@
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\NeshinaPolina2111.exe.config
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\NeshinaPolina2111.exe
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\NeshinaPolina2111.pdb
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\MySql.Data.dll
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.csproj.AssemblyReference.cache
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.MainForm.resources
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.Properties.Resources.resources
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.csproj.GenerateResource.cache
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.csproj.CoreCompileInputs.cache
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.csproj.CopyComplete
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.exe
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.pdb
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.AddProduction.resources
C:\NeshinaPolina2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.EditProduction.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\NeshinaPolina2111.exe.config
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\NeshinaPolina2111.exe
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\NeshinaPolina2111.pdb
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\System.Memory.dll
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\System.Threading.Tasks.Extensions.dll
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\System.Numerics.Vectors.dll
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\bin\Debug\System.Buffers.dll
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.csproj.AssemblyReference.cache
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.AddMaterials.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.AddProduction.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.EditMaterials.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.EditProduction.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.MainForm.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.Properties.Resources.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.csproj.GenerateResource.cache
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.csproj.CoreCompileInputs.cache
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaP.DA1DAE13.Up2Date
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.exe
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.pdb
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.MaterialPurchaseCalculatorForm.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.Authorization.resources
C:\Users\Пользователь\Source\Repos\rep2111\NeshinaPolina2111\NeshinaPolina2111\obj\Debug\NeshinaPolina2111.PartnerDiscountsForm.resources

Binary file not shown.

Binary file not shown.