diff --git a/SolarPower/Controllers/ElectricitySoldRecordController.cs b/SolarPower/Controllers/ElectricitySoldRecordController.cs index a256397..a8092fb 100644 --- a/SolarPower/Controllers/ElectricitySoldRecordController.cs +++ b/SolarPower/Controllers/ElectricitySoldRecordController.cs @@ -1,10 +1,14 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; +using NPOI.SS.UserModel; +using NPOI.SS.Util; +using NPOI.XSSF.UserModel; using SolarPower.Models; using SolarPower.Models.PowerStation; using SolarPower.Repository.Interface; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Threading.Tasks; @@ -114,6 +118,7 @@ namespace SolarPower.Controllers foreach (ElectricitySoldRecordTable a in electricitySoldRecordTable) { a.Function = @" + "; a.CreatedDay = Convert.ToDateTime(a.CreatedAt).ToString("yyyy-MM-dd"); @@ -181,5 +186,279 @@ namespace SolarPower.Controllers return apiResult; } + + + public FileResult BillExcel (int post) + { + var workbook = new XSSFWorkbook(); + #region excel設定 + IFont font26 = workbook.CreateFont(); + font26.FontName = "新細明體"; + font26.FontHeightInPoints = 26; + font26.IsBold = true; + ICellStyle style26 = workbook.CreateCellStyle(); + style26.SetFont(font26); + style26.Alignment = HorizontalAlignment.Center; + style26.VerticalAlignment = VerticalAlignment.Center; + + //IFont font12Times = workbook.CreateFont(); + //font12Times.FontName = "Times New Roman"; + //font12Times.FontHeightInPoints = 12; + //IFont font18 = workbook.CreateFont(); + //font18.FontName = "新細明體"; + //font18.FontHeightInPoints = 18; + //font18.IsBold = true; + //ICellStyle styleTitle18 = workbook.CreateCellStyle(); + //styleTitle18.SetFont(font18); + //styleTitle18.Alignment = HorizontalAlignment.Center; + //styleTitle18.VerticalAlignment = VerticalAlignment.Center; + //ICellStyle styleLeft12 = workbook.CreateCellStyle(); + //styleLeft12.SetFont(font12); + //styleLeft12.Alignment = HorizontalAlignment.Left; + //styleLeft12.VerticalAlignment = VerticalAlignment.Center; + //ICellStyle styleLine12 = workbook.CreateCellStyle(); + //styleLine12.SetFont(font12); + //styleLine12.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + //styleLine12.VerticalAlignment = VerticalAlignment.Center; + //styleLine12.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + //styleLine12.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + //styleLine12.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + //styleLine12.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + //ICellStyle stylein12 = workbook.CreateCellStyle(); + //stylein12.SetFont(font12Times); + //stylein12.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left; + //stylein12.VerticalAlignment = VerticalAlignment.Center; + //stylein12.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + //stylein12.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + //stylein12.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + //stylein12.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + //stylein12.WrapText = true; + + IFont font14 = workbook.CreateFont(); + font14.FontName = "新細明體"; + font14.FontHeightInPoints = 14; + font14.IsBold = true; + ICellStyle style14 = workbook.CreateCellStyle(); + style14.SetFont(font14); + style14.Alignment = HorizontalAlignment.Left; + style14.VerticalAlignment = VerticalAlignment.Center; + + ICellStyle buttomLine14 = workbook.CreateCellStyle(); + buttomLine14.BorderBottom = BorderStyle.Medium; + + IFont fontBlue14 = workbook.CreateFont(); + fontBlue14.FontName = "新細明體"; + fontBlue14.FontHeightInPoints = 14; + fontBlue14.IsBold = true; + fontBlue14.Color = NPOI.HSSF.Util.HSSFColor.Indigo.Index; + ICellStyle buttomLineBlue14 = workbook.CreateCellStyle(); + buttomLineBlue14.SetFont(fontBlue14); + buttomLineBlue14.BorderBottom = BorderStyle.Medium; + + ICellStyle style14upleft = workbook.CreateCellStyle(); + style14upleft.SetFont(font14); + style14upleft.Alignment = HorizontalAlignment.Center; + style14upleft.VerticalAlignment = VerticalAlignment.Center; + style14upleft.BorderTop = BorderStyle.Medium; + style14upleft.BorderLeft = BorderStyle.Medium; + style14upleft.BorderRight = BorderStyle.Thin; + style14upleft.BorderBottom = BorderStyle.Thin; + + ICellStyle style14up = workbook.CreateCellStyle(); + style14up.SetFont(font14); + style14up.Alignment = HorizontalAlignment.Center; + style14up.VerticalAlignment = VerticalAlignment.Center; + style14up.BorderTop = BorderStyle.Medium; + style14up.BorderLeft = BorderStyle.Thin; + style14up.BorderRight = BorderStyle.Thin; + style14up.BorderBottom = BorderStyle.Thin; + + + #endregion + + var bill = electricitySoldRecordRepository.GetBill(post); + var sheet = workbook.CreateSheet("附件一-開立發票申請表"); + + IRow row; + ICell cell; + sheet.SetColumnWidth(0, 1 * 160 * 4); + sheet.SetColumnWidth(1, 4 * 160 * 8); + sheet.SetColumnWidth(2, 6 * 160 * 8); + sheet.SetColumnWidth(3, 4 * 160 * 8); + sheet.SetColumnWidth(4, 6 * 160 * 8); + sheet.SetColumnWidth(5, 6 * 160 * 8); + sheet.SetColumnWidth(6, 6 * 160 * 8); + + CellRangeAddress region; + row = sheet.CreateRow(1); + cell = row.CreateCell(1); + region = new CellRangeAddress(1, 1, 1, 6); + sheet.AddMergedRegion(region); + cell.SetCellValue(bill.Result.Name); + cell.CellStyle = style26; + + row = sheet.CreateRow(2); + cell = row.CreateCell(1); + region = new CellRangeAddress(2, 2, 1, 6); + sheet.AddMergedRegion(region); + cell.SetCellValue("開立統一發票申請表"); + cell.CellStyle = style26; + + row = sheet.CreateRow(4); + cell = row.CreateCell(5); + cell.SetCellValue("單據編號:"); + cell.CellStyle = style14; + + cell = row.CreateCell(6); + cell.SetCellValue(""); + cell.CellStyle = buttomLine14; + + row = sheet.CreateRow(5); //第5行 + cell = row.CreateCell(1); + cell.SetCellValue("申 請 人 :"); + cell.CellStyle = style14; + + cell = row.CreateCell(2); + cell.SetCellValue(""); + cell.CellStyle = buttomLine14; + + cell = row.CreateCell(3); + cell.SetCellValue("分 機:"); + cell.CellStyle = style14; + + cell = row.CreateCell(4); + cell.SetCellValue(""); + cell.CellStyle = buttomLine14; + + row = sheet.CreateRow(6); //第6行 + cell = row.CreateCell(1); + cell.SetCellValue("成本中心 :"); + cell.CellStyle = style14; + + cell = row.CreateCell(2); + cell.SetCellValue(""); + cell.CellStyle = buttomLine14; + + cell = row.CreateCell(3); + cell.SetCellValue("行動電話 :"); + cell.CellStyle = style14; + + cell = row.CreateCell(4); + cell.SetCellValue(""); + cell.CellStyle = buttomLine14; + + row = sheet.CreateRow(7); //第7行 + cell = row.CreateCell(1); + cell.SetCellValue("領取方式 :"); + cell.CellStyle = style14; + + cell = row.CreateCell(2); + region = new CellRangeAddress(7, 7, 2, 3); + sheet.AddMergedRegion(region); + cell.SetCellValue("□ 親自領取 □ 郵寄領取"); + cell.CellStyle = style14; + + row = sheet.CreateRow(9); //第9行 + region = new CellRangeAddress(9, 9, 1, 2); + sheet.AddMergedRegion(region); + cell = row.CreateCell(1); + cell.SetCellValue("統一發票開立基本資料"); + cell.CellStyle = style14; + + row = sheet.CreateRow(10); //第10行 + cell = row.CreateCell(1); + cell.SetCellValue("開立方式:"); + cell.CellStyle = style14; + + region = new CellRangeAddress(10, 10, 2, 6); + sheet.AddMergedRegion(region); + cell = row.CreateCell(2); + cell.SetCellValue("□一次性開立 □ 週期性開立 (自 年 月至 年 月),請檢附合約影本。"); + cell.CellStyle = style14; + + row = sheet.CreateRow(12); //第12行 + cell = row.CreateCell(1); + cell.SetCellValue("買 受 人 :"); + cell.CellStyle = style14; + + region = new CellRangeAddress(12, 12, 2, 3); + sheet.AddMergedRegion(region); + cell = row.CreateCell(2); + cell.SetCellValue("台灣電力股份有限公司桃園區營業處"); + cell.CellStyle = buttomLineBlue14; + + row = sheet.CreateRow(13); //第13行 + cell = row.CreateCell(1); + cell.SetCellValue("統一編號 :"); + cell.CellStyle = style14; + + cell = row.CreateCell(2); + cell.SetCellValue("02488533"); + cell.CellStyle = buttomLineBlue14; + + + row = sheet.CreateRow(14); //第14行 + cell = row.CreateCell(1); + cell.SetCellValue("地  址:"); + cell.CellStyle = style14; + + region = new CellRangeAddress(14, 14, 2, 4); + sheet.AddMergedRegion(region); + cell = row.CreateCell(2); + cell.SetCellValue("330桃園市觀音區中山路一段280巷90號(屋頂)"); + cell.CellStyle = buttomLineBlue14; + + row = sheet.CreateRow(16); //第16行 + region = new CellRangeAddress(16, 16, 1, 2); + sheet.AddMergedRegion(region); + cell = row.CreateCell(1); + cell.SetCellValue("統一發票開立內容:"); + cell.CellStyle = style14; + + row = sheet.CreateRow(17); //第17行 + cell = row.CreateCell(1); + cell.SetCellValue("項次"); + cell.CellStyle = style14upleft; + + cell = row.CreateCell(2); + cell.SetCellValue("品名"); + cell.CellStyle = style14up; + + cell = row.CreateCell(3); + cell.SetCellValue("數量"); + cell.CellStyle = style14up; + + cell = row.CreateCell(4); + cell.SetCellValue("發票開立金額(含稅)"); + cell.CellStyle = style14up; + + cell = row.CreateCell(5); + region = new CellRangeAddress(17, 17, 5, 6); + sheet.AddMergedRegion(region); + cell.SetCellValue("備註(Memo)"); + cell.CellStyle = style14up; + + cell = row.CreateCell(6); + cell.CellStyle = style14up; + + + + + + + + + + var ms = new NpoiMemoryStream + { + AllowClose = false + }; + workbook.Write(ms); + ms.Flush(); + ms.Seek(0, SeekOrigin.Begin); + return File(ms, "application/vnd.ms-excel", "台電躉售發票" + ".xlsx"); + } + + } } diff --git a/SolarPower/Controllers/StationReportController.cs b/SolarPower/Controllers/StationReportController.cs index 345fbe5..4d0c358 100644 --- a/SolarPower/Controllers/StationReportController.cs +++ b/SolarPower/Controllers/StationReportController.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Newtonsoft.Json; +using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.SS.Util; using NPOI.XSSF.UserModel; @@ -292,7 +293,7 @@ namespace SolarPower.Controllers foreach (var head in Formhead.Result.Data.Inv) { cell = row.CreateCell(index); - cell.SetCellValue(dbody[head] == null ? "0" : dbody[head].ToString()); + cell.SetCellValue(dbody[head] == null ? 0 : Convert.ToDouble(dbody[head].ToString())); cell.CellStyle = styleLine12; index++; } @@ -311,12 +312,12 @@ namespace SolarPower.Controllers cell = row.CreateCell(index); if (dbody[bodyname] == null) { - cell.SetCellValue("0"); + cell.SetCellValue(0); } else { var c = dbody[bodyname].ToString(); - cell.SetCellValue(c); + cell.SetCellValue(Convert.ToDouble(c)); } cell.CellStyle = styleLine12; index++; @@ -333,7 +334,7 @@ namespace SolarPower.Controllers cell.SetCellValue("日照小時:"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(thour); + cell.SetCellValue(Convert.ToDouble(thour)); cell.CellStyle = styleLine12; RowPosition++; @@ -343,7 +344,7 @@ namespace SolarPower.Controllers cell.SetCellValue("kWH/kWP:"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(kWhkwp); + cell.SetCellValue(Convert.ToDouble(kWhkwp)); cell.CellStyle = styleLine12; RowPosition++; @@ -353,7 +354,7 @@ namespace SolarPower.Controllers cell.SetCellValue("PR%:"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(tpr); + cell.SetCellValue(Convert.ToDouble(tpr)); cell.CellStyle = styleLine12; RowPosition++; @@ -364,7 +365,7 @@ namespace SolarPower.Controllers cell.SetCellValue("日發電量(kWh):"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(tkwh); + cell.SetCellValue(Convert.ToDouble(tkwh)); cell.CellStyle = styleLine12; RowPosition++; @@ -377,7 +378,7 @@ namespace SolarPower.Controllers cell.SetCellValue("日售電金額(NTD):"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(ntd); + cell.SetCellValue(Convert.ToDouble(ntd)); cell.CellStyle = styleLine12; RowPosition++; @@ -387,7 +388,7 @@ namespace SolarPower.Controllers cell.SetCellValue("日售電單價(NTD):"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(ntdone); + cell.SetCellValue(Convert.ToDouble(ntdone)); cell.CellStyle = styleLine12; } @@ -470,7 +471,7 @@ namespace SolarPower.Controllers foreach (var head in Formhead.Result.Data.Inv) { cell2 = row2.CreateCell(index2); - cell2.SetCellValue(dbody[head] == null ? "0": dbody[head].ToString()); + cell2.SetCellValue(dbody[head] == null ? 0 : Convert.ToDouble(dbody[head].ToString())); cell2.CellStyle = styleLine12; index2++; } @@ -492,12 +493,12 @@ namespace SolarPower.Controllers cell2 = row2.CreateCell(index2); if (dbody[bodyname] == null) { - cell2.SetCellValue("0"); + cell2.SetCellValue(0); } else { var c = dbody[bodyname].ToString(); - cell2.SetCellValue(c); + cell2.SetCellValue(Convert.ToDouble(c)); } cell2.CellStyle = styleLine12; index2++; @@ -562,13 +563,13 @@ namespace SolarPower.Controllers cell.CellStyle = styleLine12; index++; cell = row.CreateCell(index); - cell.SetCellValue(monthKWH); + cell.SetCellValue(Convert.ToDouble(monthKWH)); cell.CellStyle = styleLine12; index++; if (Formhead.Result.Data.ShowMoney == 1) { cell = row.CreateCell(index); - cell.SetCellValue(monthmoney); + cell.SetCellValue(Convert.ToDouble(monthmoney)); cell.CellStyle = styleLine12; index++; cell = row.CreateCell(index); @@ -625,11 +626,11 @@ namespace SolarPower.Controllers cell.CellStyle = styleLine12; index++; cell = row.CreateCell(index); - cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoney) * Convert.ToDouble(a.LeaseRate) /100,2).ToString()); + cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoney) * Convert.ToDouble(a.LeaseRate) /100,2)); cell.CellStyle = styleLine12; index++; cell = row.CreateCell(index); - cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoney) * Convert.ToDouble(a.LeaseRate) / 100 * 1.05, 2).ToString()); + cell.SetCellValue(Math.Round(Convert.ToDouble(monthmoney) * Convert.ToDouble(a.LeaseRate) / 100 * 1.05, 2)); cell.CellStyle = styleLine12; index++; } @@ -843,7 +844,7 @@ namespace SolarPower.Controllers foreach (var head in Formhead.Result.Data.Inv) { cell = row.CreateCell(index); - cell.SetCellValue(dbody[head] == null ? "0" : dbody[head].ToString()); + cell.SetCellValue(dbody[head] == null ? 0 : Convert.ToDouble(dbody[head].ToString())); cell.CellStyle = styleLine12; index++; } @@ -862,12 +863,12 @@ namespace SolarPower.Controllers cell = row.CreateCell(index); if (dbody[bodyname] == null) { - cell.SetCellValue("0"); + cell.SetCellValue(0); } else { var c = dbody[bodyname].ToString(); - cell.SetCellValue(c); + cell.SetCellValue(Convert.ToDouble(Convert.ToDouble(c))); } cell.CellStyle = styleLine12; index++; @@ -884,7 +885,7 @@ namespace SolarPower.Controllers cell.SetCellValue("日照小時:"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(thour); + cell.SetCellValue(Convert.ToDouble(thour)); cell.CellStyle = styleLine12; RowPosition++; @@ -894,7 +895,7 @@ namespace SolarPower.Controllers cell.SetCellValue("kWH/kWP:"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(kWhkwp); + cell.SetCellValue(Convert.ToDouble(kWhkwp)); cell.CellStyle = styleLine12; RowPosition++; @@ -904,7 +905,7 @@ namespace SolarPower.Controllers cell.SetCellValue("PR%:"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(tpr); + cell.SetCellValue(Convert.ToDouble(tpr)); cell.CellStyle = styleLine12; RowPosition++; @@ -915,7 +916,7 @@ namespace SolarPower.Controllers cell.SetCellValue("日發電量(kWh):"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(tkwh); + cell.SetCellValue(Convert.ToDouble(tkwh)); cell.CellStyle = styleLine12; RowPosition++; @@ -928,7 +929,7 @@ namespace SolarPower.Controllers cell.SetCellValue("日售電金額(NTD):"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(ntd); + cell.SetCellValue(Convert.ToDouble(ntd)); cell.CellStyle = styleLine12; RowPosition++; @@ -938,7 +939,7 @@ namespace SolarPower.Controllers cell.SetCellValue("日售電單價(NTD):"); cell.CellStyle = styleLine12; cell = row.CreateCell(1); - cell.SetCellValue(ntdone); + cell.SetCellValue(Convert.ToDouble(ntdone)); cell.CellStyle = styleLine12; } @@ -1021,7 +1022,7 @@ namespace SolarPower.Controllers foreach (var head in Formhead.Result.Data.Inv) { cell2 = row2.CreateCell(index2); - cell2.SetCellValue(dbody[head] == null ? "0" : dbody[head].ToString()); + cell2.SetCellValue(dbody[head] == null ? 0 : Convert.ToDouble(dbody[head].ToString())); cell2.CellStyle = styleLine12; index2++; } @@ -1043,12 +1044,12 @@ namespace SolarPower.Controllers cell2 = row2.CreateCell(index2); if (dbody[bodyname] == null) { - cell2.SetCellValue("0"); + cell2.SetCellValue(0); } else { var c = dbody[bodyname].ToString(); - cell2.SetCellValue(c); + cell2.SetCellValue(Convert.ToDouble(c)); } cell2.CellStyle = styleLine12; index2++; @@ -1113,13 +1114,13 @@ namespace SolarPower.Controllers cell.CellStyle = styleLine12; index++; cell = row.CreateCell(index); - cell.SetCellValue(monthKWH); + cell.SetCellValue(Convert.ToDouble(monthKWH)); cell.CellStyle = styleLine12; index++; if (Formhead.Result.Data.ShowMoney == 1) { cell = row.CreateCell(index); - cell.SetCellValue(monthmoney); + cell.SetCellValue(Convert.ToDouble(monthmoney)); cell.CellStyle = styleLine12; index++; cell = row.CreateCell(index); diff --git a/SolarPower/DBSchema/solar_power_schema.sql b/SolarPower/DBSchema/solar_power_schema.sql index d69b3d7..b418c5f 100644 --- a/SolarPower/DBSchema/solar_power_schema.sql +++ b/SolarPower/DBSchema/solar_power_schema.sql @@ -2113,6 +2113,11 @@ ALTER TABLE `notice_schedule` ADD COLUMN `UserId` TINYINT(1) UNSIGNED NOT NULL COMMENT '帳號Id' AFTER `Type`, ADD COLUMN `EmailType` TINYINT(1) UNSIGNED NULL DEFAULT NULL COMMENT '發送種類' AFTER `UserId`; +-- 新增發票相關資訊 20210810 +ALTER TABLE `power_station` + ADD COLUMN `GUINumber` VARCHAR(16) NULL DEFAULT NULL COMMENT '統一編號' AFTER `BoERentRatio`, + ADD COLUMN `TPCInvoiceBuyer` VARCHAR(100) NULL DEFAULT NULL COMMENT '台電發票買受人' AFTER `TPCContractNumber`, + ADD COLUMN `TPCInvoiceAddress` VARCHAR(100) NULL DEFAULT NULL COMMENT '台電發票地址' AFTER `TPCInvoiceBuyer`; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/SolarPower/Models/ElectricitySoldRecord.cs b/SolarPower/Models/ElectricitySoldRecord.cs index 9ef01f4..c8b9cb4 100644 --- a/SolarPower/Models/ElectricitySoldRecord.cs +++ b/SolarPower/Models/ElectricitySoldRecord.cs @@ -35,6 +35,15 @@ namespace SolarPower.Models public string Time { get; set; } public int SearchType { get; set; } } + public class BillInfo + { + public double Money { get; set; } + public string GUINumber { get; set; } + public string TPCInvoiceBuyer { get; set; } + public string TPCInvoiceAddress { get; set; } + public string Name { get; set; } + public string Logo { get; set; } + } } diff --git a/SolarPower/Quartz/Jobs/CalcPowerStationJob.cs b/SolarPower/Quartz/Jobs/CalcPowerStationJob.cs index ce57365..a042ccd 100644 --- a/SolarPower/Quartz/Jobs/CalcPowerStationJob.cs +++ b/SolarPower/Quartz/Jobs/CalcPowerStationJob.cs @@ -363,7 +363,7 @@ namespace SolarPower.Quartz.Jobs calcPowerStation.TodayWeatherTemp = Convert.ToDouble(Location.WeatherElement[0].ElementValue); weatherObservation.PowerStationId = powerStation.Id; weatherObservation.Temp = Convert.ToDouble(Location.WeatherElement[0].ElementValue); - weatherObservation.ObsTime = Convert.ToInt32(Location.Time.ObsTime.Substring(0, 4)) < 1970 ? null : Location.Time.ObsTime; + weatherObservation.ObsTime = Convert.ToInt32(Location.Time.ObsTime.Substring(0, 4)) < 1970 ? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : Location.Time.ObsTime; calcPowerStation.WeathersStationId = powerStation.WeathersStationId; break; } diff --git a/SolarPower/Repository/Implement/CompanyRepository.cs b/SolarPower/Repository/Implement/CompanyRepository.cs index 8fa362b..e3afe32 100644 --- a/SolarPower/Repository/Implement/CompanyRepository.cs +++ b/SolarPower/Repository/Implement/CompanyRepository.cs @@ -566,7 +566,10 @@ namespace SolarPower.Repository.Implement `BoEDiscountRate` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '能源局折扣率', `BoEDeviceRegisterNumber` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '能源局設備登記編號', `BoERentRatio` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '能源局租金比率,單位(%)', + `GUINumber` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '統一編號', `TPCContractNumber` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '台電契約編號', + `TPCInvoiceBuyer` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '台電發票買受人', + `TPCInvoiceAddress` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '台電發票地址', `TPCContractAt` timestamp NULL DEFAULT NULL COMMENT '台電簽約日期', `TPCSellDeadline` int(10) unsigned DEFAULT '0' COMMENT '台電售電期限,單位(年)', `TPCMeterReading` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '台電每期抄錶日', diff --git a/SolarPower/Repository/Implement/ElectricitySoldRecordRepository.cs b/SolarPower/Repository/Implement/ElectricitySoldRecordRepository.cs index 1fdec5a..8739af1 100644 --- a/SolarPower/Repository/Implement/ElectricitySoldRecordRepository.cs +++ b/SolarPower/Repository/Implement/ElectricitySoldRecordRepository.cs @@ -73,5 +73,31 @@ namespace SolarPower.Repository.Implement } } + + public async Task GetBill (int id) + { + using (IDbConnection conn = this._databaseHelper.GetConnection()) + { + BillInfo a = new BillInfo(); + try + { + var sql = @$"SELECT es.Money,ps.GUINumber,ps.TPCInvoiceBuyer,ps.TPCInvoiceAddress,cp.Name,cp.Logo,ps.Id + FROM electricity_sold_record es + LEFT JOIN power_station ps + ON es.PowerstationId = ps.Id + LEFT JOIN company cp + ON cp.Id = ps.CompanyId + WHERE es.Id = {id}"; + + + a = await conn.QueryFirstOrDefaultAsync(sql); + } + catch (Exception exception) + { + throw exception; + } + return a; + } + } } } diff --git a/SolarPower/Repository/Interface/IElectricitySoldRecordRepository.cs b/SolarPower/Repository/Interface/IElectricitySoldRecordRepository.cs index 03f5ad6..32ba0bb 100644 --- a/SolarPower/Repository/Interface/IElectricitySoldRecordRepository.cs +++ b/SolarPower/Repository/Interface/IElectricitySoldRecordRepository.cs @@ -9,5 +9,6 @@ namespace SolarPower.Repository.Interface public interface IElectricitySoldRecordRepository: IRepositoryBase { Task> RecordTable(ElectricitySoldRecordTablePost post); + Task GetBill(int id); } } diff --git a/SolarPower/Views/ElectricitySoldRecord/Index.cshtml b/SolarPower/Views/ElectricitySoldRecord/Index.cshtml index cb2ad94..13fefa3 100644 --- a/SolarPower/Views/ElectricitySoldRecord/Index.cshtml +++ b/SolarPower/Views/ElectricitySoldRecord/Index.cshtml @@ -627,9 +627,15 @@ $("#Money_modal").val(rel.data.money); $("#Record-modal").modal(); }, 'json'); - }); + $('#RecordTable').on("click", "button.bill-btn", function () { + selected_id = $(this).parents('tr').attr('data-id'); + window.location = "/ElectricitySoldRecord/BillExcel?post=" + selected_id; + + }) + + $('#RecordTable').on("click", "button.del-btn", function () { selected_id = $(this).parents('tr').attr('data-id'); Swal.fire( diff --git a/SolarPower/Views/StationReport/Index.cshtml b/SolarPower/Views/StationReport/Index.cshtml index c0faca1..698e8df 100644 --- a/SolarPower/Views/StationReport/Index.cshtml +++ b/SolarPower/Views/StationReport/Index.cshtml @@ -953,16 +953,16 @@ } if (send_data.FormType != null && send_data.PowerStation.length != 0 && send_data.FormType != 2) { window.location = "/StationReport/ExportExcel?post=" + JSON.stringify(send_data); - } else { + } + else + { if (send_data.FormType != 2) { toast_warning("請先選擇電站及報表類型"); } - } - - if (send_data.PowerStation.length != 0 && send_data.FormType == 2) { - window.location = "/StationReport/ExportExcelmaxtable?post=" + JSON.stringify(send_data); - } else { - toast_warning("請先選擇電站及報表類型"); + else + { + window.location = "/StationReport/ExportExcelmaxtable?post=" + JSON.stringify(send_data); + } } }