commit 3646eadb6955e1ad5e4dbe6ae374c4e4a50bb5a6 Author: Arisssssa Date: Mon Nov 24 01:18:10 2025 +0400 homework1 diff --git a/.vs/NeshinaPolina2111/FileContentIndex/01fa34ab-d7ba-4f26-8168-998d83c57679.vsidx b/.vs/NeshinaPolina2111/FileContentIndex/01fa34ab-d7ba-4f26-8168-998d83c57679.vsidx new file mode 100644 index 0000000..4da92c0 Binary files /dev/null and b/.vs/NeshinaPolina2111/FileContentIndex/01fa34ab-d7ba-4f26-8168-998d83c57679.vsidx differ diff --git a/.vs/NeshinaPolina2111/FileContentIndex/17bf2686-5761-4920-ace3-2c198a93b073.vsidx b/.vs/NeshinaPolina2111/FileContentIndex/17bf2686-5761-4920-ace3-2c198a93b073.vsidx new file mode 100644 index 0000000..025403c Binary files /dev/null and b/.vs/NeshinaPolina2111/FileContentIndex/17bf2686-5761-4920-ace3-2c198a93b073.vsidx differ diff --git a/.vs/NeshinaPolina2111/FileContentIndex/49c1da92-1e19-4411-b07d-c0e8d6355194.vsidx b/.vs/NeshinaPolina2111/FileContentIndex/49c1da92-1e19-4411-b07d-c0e8d6355194.vsidx new file mode 100644 index 0000000..3ea0258 Binary files /dev/null and b/.vs/NeshinaPolina2111/FileContentIndex/49c1da92-1e19-4411-b07d-c0e8d6355194.vsidx differ diff --git a/.vs/NeshinaPolina2111/FileContentIndex/83ca087f-235e-4982-94c1-eabdb2d69841.vsidx b/.vs/NeshinaPolina2111/FileContentIndex/83ca087f-235e-4982-94c1-eabdb2d69841.vsidx new file mode 100644 index 0000000..48940ac Binary files /dev/null and b/.vs/NeshinaPolina2111/FileContentIndex/83ca087f-235e-4982-94c1-eabdb2d69841.vsidx differ diff --git a/.vs/NeshinaPolina2111/FileContentIndex/c53cdbfe-3e6d-4b3d-ae66-651420a31360.vsidx b/.vs/NeshinaPolina2111/FileContentIndex/c53cdbfe-3e6d-4b3d-ae66-651420a31360.vsidx new file mode 100644 index 0000000..e03f1c4 Binary files /dev/null and b/.vs/NeshinaPolina2111/FileContentIndex/c53cdbfe-3e6d-4b3d-ae66-651420a31360.vsidx differ diff --git a/.vs/NeshinaPolina2111/v17/.suo b/.vs/NeshinaPolina2111/v17/.suo new file mode 100644 index 0000000..54f24ed Binary files /dev/null and b/.vs/NeshinaPolina2111/v17/.suo differ diff --git a/.vs/NeshinaPolina2111/v17/DocumentLayout.backup.json b/.vs/NeshinaPolina2111/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..d23cd3d --- /dev/null +++ b/.vs/NeshinaPolina2111/v17/DocumentLayout.backup.json @@ -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": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/NeshinaPolina2111/v17/DocumentLayout.json b/.vs/NeshinaPolina2111/v17/DocumentLayout.json new file mode 100644 index 0000000..c0475f5 --- /dev/null +++ b/.vs/NeshinaPolina2111/v17/DocumentLayout.json @@ -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" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/NeshinaPolina2111.sln b/NeshinaPolina2111.sln new file mode 100644 index 0000000..5a5be2c --- /dev/null +++ b/NeshinaPolina2111.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "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 diff --git a/NeshinaPolina2111/AddMaterials.Designer.cs b/NeshinaPolina2111/AddMaterials.Designer.cs new file mode 100644 index 0000000..4d80433 --- /dev/null +++ b/NeshinaPolina2111/AddMaterials.Designer.cs @@ -0,0 +1,255 @@ +namespace NeshinaPolina2111 +{ + partial class AddMaterials + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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; + } +} \ No newline at end of file diff --git a/NeshinaPolina2111/AddMaterials.cs b/NeshinaPolina2111/AddMaterials.cs new file mode 100644 index 0000000..8b8e569 --- /dev/null +++ b/NeshinaPolina2111/AddMaterials.cs @@ -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(); + } + } +} diff --git a/NeshinaPolina2111/AddMaterials.resx b/NeshinaPolina2111/AddMaterials.resx new file mode 100644 index 0000000..98e091f --- /dev/null +++ b/NeshinaPolina2111/AddMaterials.resx @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaPolina2111/AddProduction.Designer.cs b/NeshinaPolina2111/AddProduction.Designer.cs new file mode 100644 index 0000000..a3eda42 --- /dev/null +++ b/NeshinaPolina2111/AddProduction.Designer.cs @@ -0,0 +1,207 @@ +namespace NeshinaPolina2111 +{ + partial class AddProduction + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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; + } +} \ No newline at end of file diff --git a/NeshinaPolina2111/AddProduction.cs b/NeshinaPolina2111/AddProduction.cs new file mode 100644 index 0000000..475ab05 --- /dev/null +++ b/NeshinaPolina2111/AddProduction.cs @@ -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(); + } + } +} diff --git a/NeshinaPolina2111/AddProduction.resx b/NeshinaPolina2111/AddProduction.resx new file mode 100644 index 0000000..98e091f --- /dev/null +++ b/NeshinaPolina2111/AddProduction.resx @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaPolina2111/App.config b/NeshinaPolina2111/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/NeshinaPolina2111/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/NeshinaPolina2111/Authorization.Designer.cs b/NeshinaPolina2111/Authorization.Designer.cs new file mode 100644 index 0000000..c0277ac --- /dev/null +++ b/NeshinaPolina2111/Authorization.Designer.cs @@ -0,0 +1,122 @@ +namespace NeshinaPolina2111 +{ + partial class Authorization + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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; + } +} \ No newline at end of file diff --git a/NeshinaPolina2111/Authorization.cs b/NeshinaPolina2111/Authorization.cs new file mode 100644 index 0000000..e301041 --- /dev/null +++ b/NeshinaPolina2111/Authorization.cs @@ -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); + } + } + + + } +} diff --git a/NeshinaPolina2111/Authorization.resx b/NeshinaPolina2111/Authorization.resx new file mode 100644 index 0000000..98e091f --- /dev/null +++ b/NeshinaPolina2111/Authorization.resx @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaPolina2111/DB.cs b/NeshinaPolina2111/DB.cs new file mode 100644 index 0000000..500dda7 --- /dev/null +++ b/NeshinaPolina2111/DB.cs @@ -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; + } + } +} diff --git a/NeshinaPolina2111/EditMaterials.Designer.cs b/NeshinaPolina2111/EditMaterials.Designer.cs new file mode 100644 index 0000000..34053d8 --- /dev/null +++ b/NeshinaPolina2111/EditMaterials.Designer.cs @@ -0,0 +1,254 @@ +namespace NeshinaPolina2111 +{ + partial class EditMaterials + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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; + } +} \ No newline at end of file diff --git a/NeshinaPolina2111/EditMaterials.cs b/NeshinaPolina2111/EditMaterials.cs new file mode 100644 index 0000000..a7f319e --- /dev/null +++ b/NeshinaPolina2111/EditMaterials.cs @@ -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(); + + } + } +} diff --git a/NeshinaPolina2111/EditMaterials.resx b/NeshinaPolina2111/EditMaterials.resx new file mode 100644 index 0000000..98e091f --- /dev/null +++ b/NeshinaPolina2111/EditMaterials.resx @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaPolina2111/EditProduction.Designer.cs b/NeshinaPolina2111/EditProduction.Designer.cs new file mode 100644 index 0000000..706d2e2 --- /dev/null +++ b/NeshinaPolina2111/EditProduction.Designer.cs @@ -0,0 +1,213 @@ +namespace NeshinaPolina2111 +{ + partial class EditProduction + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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; + } +} \ No newline at end of file diff --git a/NeshinaPolina2111/EditProduction.cs b/NeshinaPolina2111/EditProduction.cs new file mode 100644 index 0000000..a1ed1e7 --- /dev/null +++ b/NeshinaPolina2111/EditProduction.cs @@ -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(); + } + } +} diff --git a/NeshinaPolina2111/EditProduction.resx b/NeshinaPolina2111/EditProduction.resx new file mode 100644 index 0000000..98e091f --- /dev/null +++ b/NeshinaPolina2111/EditProduction.resx @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaPolina2111/Form1.Designer.cs b/NeshinaPolina2111/Form1.Designer.cs new file mode 100644 index 0000000..5169d44 --- /dev/null +++ b/NeshinaPolina2111/Form1.Designer.cs @@ -0,0 +1,320 @@ +namespace NeshinaPolina2111 +{ + partial class MainForm + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.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; + } +} + diff --git a/NeshinaPolina2111/Form1.cs b/NeshinaPolina2111/Form1.cs new file mode 100644 index 0000000..4373a5f --- /dev/null +++ b/NeshinaPolina2111/Form1.cs @@ -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; + + } + } +} \ No newline at end of file diff --git a/NeshinaPolina2111/Form1.resx b/NeshinaPolina2111/Form1.resx new file mode 100644 index 0000000..0d43a67 --- /dev/null +++ b/NeshinaPolina2111/Form1.resx @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 25 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaPolina2111/MaterialPurchaseCalculatorForm.Designer.cs b/NeshinaPolina2111/MaterialPurchaseCalculatorForm.Designer.cs new file mode 100644 index 0000000..ce68dd9 --- /dev/null +++ b/NeshinaPolina2111/MaterialPurchaseCalculatorForm.Designer.cs @@ -0,0 +1,231 @@ +namespace NeshinaPolina2111 +{ + partial class MaterialPurchaseCalculatorForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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; + } +} \ No newline at end of file diff --git a/NeshinaPolina2111/MaterialPurchaseCalculatorForm.cs b/NeshinaPolina2111/MaterialPurchaseCalculatorForm.cs new file mode 100644 index 0000000..f89a2b6 --- /dev/null +++ b/NeshinaPolina2111/MaterialPurchaseCalculatorForm.cs @@ -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; + } + } + } +} + + diff --git a/NeshinaPolina2111/MaterialPurchaseCalculatorForm.resx b/NeshinaPolina2111/MaterialPurchaseCalculatorForm.resx new file mode 100644 index 0000000..98e091f --- /dev/null +++ b/NeshinaPolina2111/MaterialPurchaseCalculatorForm.resx @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaPolina2111/NeshinaPolina2111.csproj b/NeshinaPolina2111/NeshinaPolina2111.csproj new file mode 100644 index 0000000..1337e56 --- /dev/null +++ b/NeshinaPolina2111/NeshinaPolina2111.csproj @@ -0,0 +1,154 @@ + + + + + Debug + AnyCPU + {2FB93473-AD29-4E9F-B2A7-43AECEF50DDB} + WinExe + NeshinaPolina2111 + NeshinaPolina2111 + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\Users\Student\Desktop\MySql.Data.dll + + + + + + + + + + + + + + + + Form + + + AddMaterials.cs + + + Form + + + AddProduction.cs + + + Form + + + Authorization.cs + + + + Form + + + EditMaterials.cs + + + Form + + + EditProduction.cs + + + Form + + + Form1.cs + + + Form + + + MaterialPurchaseCalculatorForm.cs + + + Form + + + PartnerDiscountsForm.cs + + + + + AddMaterials.cs + + + AddProduction.cs + + + Authorization.cs + + + EditMaterials.cs + + + EditProduction.cs + + + Form1.cs + + + MaterialPurchaseCalculatorForm.cs + + + PartnerDiscountsForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + \ No newline at end of file diff --git a/NeshinaPolina2111/PartnerDiscountsForm.Designer.cs b/NeshinaPolina2111/PartnerDiscountsForm.Designer.cs new file mode 100644 index 0000000..8581304 --- /dev/null +++ b/NeshinaPolina2111/PartnerDiscountsForm.Designer.cs @@ -0,0 +1,114 @@ +namespace NeshinaPolina2111 +{ + partial class PartnerDiscountsForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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; + } +} \ No newline at end of file diff --git a/NeshinaPolina2111/PartnerDiscountsForm.cs b/NeshinaPolina2111/PartnerDiscountsForm.cs new file mode 100644 index 0000000..6ba75c8 --- /dev/null +++ b/NeshinaPolina2111/PartnerDiscountsForm.cs @@ -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) + { + + } + } +} diff --git a/NeshinaPolina2111/PartnerDiscountsForm.resx b/NeshinaPolina2111/PartnerDiscountsForm.resx new file mode 100644 index 0000000..98e091f --- /dev/null +++ b/NeshinaPolina2111/PartnerDiscountsForm.resx @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/NeshinaPolina2111/Program.cs b/NeshinaPolina2111/Program.cs new file mode 100644 index 0000000..b6b1a91 --- /dev/null +++ b/NeshinaPolina2111/Program.cs @@ -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 + { + /// + /// Главная точка входа для приложения. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + // Сначала открываем форму авторизации + var authForm = new Authorization(); + authForm.ShowDialog(); // ждём, пока пользователь войдёт + + // Если форма авторизации закрыта — выходим (если не вошёл) + if (authForm.Visible) // если форма всё ещё видна — значит, пользователь не вошёл или закрыл без входа + { + return; + } + + // Всё хорошо — приложение завершилось успешно, но мы не запускаем MainForm здесь + // Потому что MainForm создаётся и показывается внутри Authorization после успешного входа + } + + + + } +} diff --git a/NeshinaPolina2111/Properties/AssemblyInfo.cs b/NeshinaPolina2111/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d112aae --- /dev/null +++ b/NeshinaPolina2111/Properties/AssemblyInfo.cs @@ -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")] diff --git a/NeshinaPolina2111/Properties/Resources.Designer.cs b/NeshinaPolina2111/Properties/Resources.Designer.cs new file mode 100644 index 0000000..ecfd584 --- /dev/null +++ b/NeshinaPolina2111/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace NeshinaPolina2111.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("NeshinaPolina2111.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Наш_декор { + get { + object obj = ResourceManager.GetObject("Наш декор", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/NeshinaPolina2111/Properties/Resources.resx b/NeshinaPolina2111/Properties/Resources.resx new file mode 100644 index 0000000..c54591a --- /dev/null +++ b/NeshinaPolina2111/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Наш декор.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/NeshinaPolina2111/Properties/Settings.Designer.cs b/NeshinaPolina2111/Properties/Settings.Designer.cs new file mode 100644 index 0000000..57fdf27 --- /dev/null +++ b/NeshinaPolina2111/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace 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; + } + } + } +} diff --git a/NeshinaPolina2111/Properties/Settings.settings b/NeshinaPolina2111/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/NeshinaPolina2111/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/NeshinaPolina2111/Resources/Наш декор.png b/NeshinaPolina2111/Resources/Наш декор.png new file mode 100644 index 0000000..7e8c945 Binary files /dev/null and b/NeshinaPolina2111/Resources/Наш декор.png differ diff --git a/NeshinaPolina2111/bin/Debug/MySql.Data.dll b/NeshinaPolina2111/bin/Debug/MySql.Data.dll new file mode 100644 index 0000000..a851892 Binary files /dev/null and b/NeshinaPolina2111/bin/Debug/MySql.Data.dll differ diff --git a/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.exe b/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.exe new file mode 100644 index 0000000..64df1a4 Binary files /dev/null and b/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.exe differ diff --git a/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.exe.config b/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.exe.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.pdb b/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.pdb new file mode 100644 index 0000000..81af906 Binary files /dev/null and b/NeshinaPolina2111/bin/Debug/NeshinaPolina2111.pdb differ diff --git a/NeshinaPolina2111/bin/Debug/System.Buffers.dll b/NeshinaPolina2111/bin/Debug/System.Buffers.dll new file mode 100644 index 0000000..f2d83c5 Binary files /dev/null and b/NeshinaPolina2111/bin/Debug/System.Buffers.dll differ diff --git a/NeshinaPolina2111/bin/Debug/System.Memory.dll b/NeshinaPolina2111/bin/Debug/System.Memory.dll new file mode 100644 index 0000000..4617199 Binary files /dev/null and b/NeshinaPolina2111/bin/Debug/System.Memory.dll differ diff --git a/NeshinaPolina2111/bin/Debug/System.Numerics.Vectors.dll b/NeshinaPolina2111/bin/Debug/System.Numerics.Vectors.dll new file mode 100644 index 0000000..0865972 Binary files /dev/null and b/NeshinaPolina2111/bin/Debug/System.Numerics.Vectors.dll differ diff --git a/NeshinaPolina2111/bin/Debug/System.Threading.Tasks.Extensions.dll b/NeshinaPolina2111/bin/Debug/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..eeec928 Binary files /dev/null and b/NeshinaPolina2111/bin/Debug/System.Threading.Tasks.Extensions.dll differ diff --git a/NeshinaPolina2111/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/NeshinaPolina2111/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..15efebf --- /dev/null +++ b/NeshinaPolina2111/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/NeshinaPolina2111/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/NeshinaPolina2111/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..5d25611 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/NeshinaPolina2111/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/NeshinaPolina2111/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..0776913 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaP.DA1DAE13.Up2Date b/NeshinaPolina2111/obj/Debug/NeshinaP.DA1DAE13.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.AddMaterials.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.AddMaterials.resources new file mode 100644 index 0000000..b71cc88 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.AddMaterials.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.AddProduction.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.AddProduction.resources new file mode 100644 index 0000000..b71cc88 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.AddProduction.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.Authorization.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.Authorization.resources new file mode 100644 index 0000000..b71cc88 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.Authorization.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.EditMaterials.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.EditMaterials.resources new file mode 100644 index 0000000..b71cc88 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.EditMaterials.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.EditProduction.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.EditProduction.resources new file mode 100644 index 0000000..b71cc88 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.EditProduction.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.MainForm.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.MainForm.resources new file mode 100644 index 0000000..b71cc88 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.MainForm.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.MaterialPurchaseCalculatorForm.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.MaterialPurchaseCalculatorForm.resources new file mode 100644 index 0000000..b71cc88 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.MaterialPurchaseCalculatorForm.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.PartnerDiscountsForm.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.PartnerDiscountsForm.resources new file mode 100644 index 0000000..b71cc88 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.PartnerDiscountsForm.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.Properties.Resources.resources b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.Properties.Resources.resources new file mode 100644 index 0000000..afc9cf8 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.Properties.Resources.resources differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.AssemblyReference.cache b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.AssemblyReference.cache new file mode 100644 index 0000000..8ffc043 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.AssemblyReference.cache differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.CopyComplete b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.CoreCompileInputs.cache b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..edcf9fd --- /dev/null +++ b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +e59db2da920f4c72132217abff4bf83fbb8a4aff904c77f78018d931d061831a diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.FileListAbsolute.txt b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..65d3ffc --- /dev/null +++ b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.FileListAbsolute.txt @@ -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 diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.GenerateResource.cache b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.GenerateResource.cache new file mode 100644 index 0000000..8ed4209 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.csproj.GenerateResource.cache differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.exe b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.exe new file mode 100644 index 0000000..64df1a4 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.exe differ diff --git a/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.pdb b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.pdb new file mode 100644 index 0000000..81af906 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/NeshinaPolina2111.pdb differ diff --git a/NeshinaPolina2111/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/NeshinaPolina2111/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..fb52e43 Binary files /dev/null and b/NeshinaPolina2111/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll differ