diff --git a/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/SettingControl.Designer.cs b/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/SettingControl.Designer.cs index 1efe4ac..0c9a406 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/SettingControl.Designer.cs +++ b/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/SettingControl.Designer.cs @@ -244,7 +244,7 @@ this.groupBox2.Size = new System.Drawing.Size(302, 100); this.groupBox2.TabIndex = 20; this.groupBox2.TabStop = false; - this.groupBox2.Text = "이용 금액(1년)"; + this.groupBox2.Text = "이용 금액(1월)"; // // metroLabel1 // diff --git a/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.Designer.cs b/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.Designer.cs index 5fed8ed..9eb0c30 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.Designer.cs +++ b/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.Designer.cs @@ -47,6 +47,8 @@ this.metroComboBox_SearchType = new MetroFramework.Controls.MetroComboBox(); this.dataGridView_List = new System.Windows.Forms.DataGridView(); this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog(); + this.metroButton1 = new MetroFramework.Controls.MetroButton(); + this.metroButton2 = new MetroFramework.Controls.MetroButton(); this.groupBox1.SuspendLayout(); this.metroPanel1.SuspendLayout(); this.groupBox2.SuspendLayout(); @@ -100,6 +102,8 @@ // // metroPanel1 // + this.metroPanel1.Controls.Add(this.metroButton2); + this.metroPanel1.Controls.Add(this.metroButton1); this.metroPanel1.Controls.Add(this.metroButton_UpdateUserData); this.metroPanel1.Controls.Add(this.metroButton_Certificate); this.metroPanel1.Controls.Add(this.metroButton_ExportExcel); @@ -115,7 +119,7 @@ this.metroPanel1.Location = new System.Drawing.Point(0, 0); this.metroPanel1.Margin = new System.Windows.Forms.Padding(0); this.metroPanel1.Name = "metroPanel1"; - this.metroPanel1.Size = new System.Drawing.Size(750, 470); + this.metroPanel1.Size = new System.Drawing.Size(750, 600); this.metroPanel1.TabIndex = 0; this.metroPanel1.VerticalScrollbarBarColor = true; this.metroPanel1.VerticalScrollbarHighlightOnWheel = false; @@ -151,7 +155,7 @@ this.metroButton_ExportExcel.BackgroundImage = global::HSUCO_Cargo_Garage_Operation_Program.Properties.Resources.file_type_excel_icon_130611; this.metroButton_ExportExcel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; this.metroButton_ExportExcel.FontSize = MetroFramework.MetroButtonSize.Tall; - this.metroButton_ExportExcel.Location = new System.Drawing.Point(626, 335); + this.metroButton_ExportExcel.Location = new System.Drawing.Point(626, 465); this.metroButton_ExportExcel.Name = "metroButton_ExportExcel"; this.metroButton_ExportExcel.Size = new System.Drawing.Size(121, 115); this.metroButton_ExportExcel.TabIndex = 9; @@ -162,7 +166,7 @@ // this.metroButton_Refund.Anchor = System.Windows.Forms.AnchorStyles.Right; this.metroButton_Refund.FontSize = MetroFramework.MetroButtonSize.Tall; - this.metroButton_Refund.Location = new System.Drawing.Point(626, 289); + this.metroButton_Refund.Location = new System.Drawing.Point(626, 420); this.metroButton_Refund.Name = "metroButton_Refund"; this.metroButton_Refund.Size = new System.Drawing.Size(121, 40); this.metroButton_Refund.TabIndex = 8; @@ -174,7 +178,7 @@ // this.metroButton_Extended.Anchor = System.Windows.Forms.AnchorStyles.Right; this.metroButton_Extended.FontSize = MetroFramework.MetroButtonSize.Tall; - this.metroButton_Extended.Location = new System.Drawing.Point(626, 243); + this.metroButton_Extended.Location = new System.Drawing.Point(626, 374); this.metroButton_Extended.Name = "metroButton_Extended"; this.metroButton_Extended.Size = new System.Drawing.Size(121, 40); this.metroButton_Extended.TabIndex = 8; @@ -294,16 +298,38 @@ this.dataGridView_List.ReadOnly = true; this.dataGridView_List.RowTemplate.Height = 23; this.dataGridView_List.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dataGridView_List.Size = new System.Drawing.Size(600, 330); + this.dataGridView_List.Size = new System.Drawing.Size(600, 460); this.dataGridView_List.TabIndex = 6; // + // metroButton1 + // + this.metroButton1.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.metroButton1.FontSize = MetroFramework.MetroButtonSize.Tall; + this.metroButton1.Location = new System.Drawing.Point(626, 233); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new System.Drawing.Size(121, 40); + this.metroButton1.TabIndex = 14; + this.metroButton1.Text = "결재 확인"; + this.metroButton1.UseSelectable = true; + // + // metroButton2 + // + this.metroButton2.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.metroButton2.FontSize = MetroFramework.MetroButtonSize.Tall; + this.metroButton2.Location = new System.Drawing.Point(626, 279); + this.metroButton2.Name = "metroButton2"; + this.metroButton2.Size = new System.Drawing.Size(121, 40); + this.metroButton2.TabIndex = 15; + this.metroButton2.Text = "결재대기 삭제"; + this.metroButton2.UseSelectable = true; + // // UserList // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.metroPanel1); this.Name = "UserList"; - this.Size = new System.Drawing.Size(750, 470); + this.Size = new System.Drawing.Size(750, 600); this.Load += new System.EventHandler(this.ApplicantList_Load); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); @@ -335,5 +361,7 @@ private MetroFramework.Controls.MetroButton metroButton_ExportExcel; private MetroFramework.Controls.MetroButton metroButton_Certificate; private MetroFramework.Controls.MetroButton metroButton_UpdateUserData; + private MetroFramework.Controls.MetroButton metroButton2; + private MetroFramework.Controls.MetroButton metroButton1; } } diff --git a/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.cs b/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.cs index f3fc42a..ac6cdd6 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.cs +++ b/HSUCO_Cargo_Garage_Operation_Program/CustomUserControl/UserList.cs @@ -225,8 +225,14 @@ namespace HSUCO_Cargo_Garage_Operation_Program.CustomUserControl if (getRefundInformation.ExtensionStart < refundDateTime) { // 연장 시작 부와 비교 - var leftDays = (getRefundInformation.DateEnd - refundDateTime).TotalDays + 1; - int leftAmount = (getRefundInformation.ExtensionFee / 365) * (int)leftDays; + ProgressDays progressDays = Extends.GetProgressDays(refundDateTime, getRefundInformation.DateEnd); + int totalMonth = Extends.GetProgressMonth(getRefundInformation.ExtensionStart.Year, getRefundInformation.ExtensionStart.Month, getRefundInformation.DateEnd.Year, getRefundInformation.DateEnd.Month); + int monthAmount = getRefundInformation.ExtensionFee / totalMonth; + int leftAmount = progressDays.Month * monthAmount; + if (progressDays.StartDay != 0) + { + leftAmount += (monthAmount / progressDays.StartTotalDay) * (progressDays.StartTotalDay - progressDays.StartDay); + } if (leftAmount > 0) { leftAmount = leftAmount / 10 * 10; @@ -237,14 +243,21 @@ namespace HSUCO_Cargo_Garage_Operation_Program.CustomUserControl } else { - // 최초 이용일에서 남은 이용일 게산 - var leftDays = (getRefundInformation.ExtensionStart.AddDays(-1) - refundDateTime).TotalDays + 1; - int leftAmount = (getRefundInformation.BaseFee / 365) * (int)leftDays; - if(leftAmount > 0) + DateTime endDate = getRefundInformation.ExtensionStart.AddDays(-1); + ProgressDays progressDays = Extends.GetProgressDays(refundDateTime, endDate); + int totalMonth = Extends.GetProgressMonth(getRefundInformation.DateStart.Year, getRefundInformation.DateStart.Month, endDate.Year, endDate.Month); + int monthAmount = getRefundInformation.BaseFee / totalMonth; + int leftAmount = progressDays.Month * monthAmount; + if (progressDays.StartDay != 0) + { + leftAmount += (monthAmount / progressDays.StartTotalDay) * (progressDays.StartTotalDay - progressDays.StartDay); + } + if (leftAmount > 0) { leftAmount = leftAmount / 10 * 10; } totalAmount += leftAmount; + // 연장 부분 전체 totalAmount += getRefundInformation.ExtensionFee; } // 연장한 경우 @@ -253,8 +266,14 @@ namespace HSUCO_Cargo_Garage_Operation_Program.CustomUserControl { // 연장안한경우 - var leftDays = (getRefundInformation.DateEnd - refundDateTime).TotalDays + 1; - int leftAmount = (getRefundInformation.ExtensionFee / 365) * (int)leftDays; + ProgressDays progressDays = Extends.GetProgressDays(refundDateTime, getRefundInformation.DateEnd); + int totalMonth = Extends.GetProgressMonth(getRefundInformation.DateStart.Year, getRefundInformation.DateStart.Month, getRefundInformation.DateEnd.Year, getRefundInformation.DateEnd.Month); + int monthAmount = getRefundInformation.BaseFee / totalMonth; + int leftAmount = progressDays.Month * monthAmount; + if(progressDays.StartDay != 0) + { + leftAmount += (monthAmount / progressDays.StartTotalDay) * (progressDays.StartTotalDay - progressDays.StartDay); + } if (leftAmount > 0) { leftAmount = leftAmount / 10 * 10; diff --git a/HSUCO_Cargo_Garage_Operation_Program/DevelopReadMe.txt b/HSUCO_Cargo_Garage_Operation_Program/DevelopReadMe.txt index 6423290..34243ad 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/DevelopReadMe.txt +++ b/HSUCO_Cargo_Garage_Operation_Program/DevelopReadMe.txt @@ -21,3 +21,5 @@ UserList Status = 0 결재 대기 1 결재 완료 2 환불 + +// 무조건 이용시작일은 1일로 고정, 이용종료일을 마지막날로 고정임 \ No newline at end of file diff --git a/HSUCO_Cargo_Garage_Operation_Program/Extends.cs b/HSUCO_Cargo_Garage_Operation_Program/Extends.cs index 96cc7cd..611984d 100644 --- a/HSUCO_Cargo_Garage_Operation_Program/Extends.cs +++ b/HSUCO_Cargo_Garage_Operation_Program/Extends.cs @@ -48,8 +48,64 @@ namespace HSUCO_Cargo_Garage_Operation_Program { return value ? 1 : 0; } + public static ProgressDays GetProgressDays(DateTime start, DateTime end) + { + ProgressDays progressDays = new ProgressDays(); + DateTime midDay = new DateTime(start.Year, start.Month, 1); + if (start.Day != 1) + { + progressDays.StartDay = start.Day; + progressDays.StartTotalDay = DateTime.DaysInMonth(start.Year, start.Month); + midDay = midDay.AddMonths(1); + } + int month = 0; + while (true) + { + DateTime get = new DateTime(midDay.Year, midDay.Month, DateTime.DaysInMonth(midDay.Year, midDay.Month)); + if (get <= end.Date) + { + month++; + midDay = midDay.AddMonths(1); + } + else + { + break; + } + } + return progressDays; + } + public static int GetProgressMonth(int startYear, int startMonth, int endYear, int endMonth) + { + DateTime progressDate = new DateTime(startYear, startMonth, 1); + DateTime endDate = new DateTime(endYear, endMonth, DateTime.DaysInMonth(endYear, endMonth)); + int month = 0; + while (true) + { + + if (progressDate <= endDate.Date) + { + month++; + progressDate = progressDate.AddMonths(1); + + } + else + { + break; + } + } + return month; + } + } + public struct ProgressDays + { + public int StartDay; + public int StartTotalDay; + public int Month; } + + } +