調整版型設計

This commit is contained in:
2026-07-17 17:40:17 +08:00
parent dee05d6ff9
commit 59bb0ff824
8 changed files with 1523 additions and 26 deletions
+43 -11
View File
@@ -7,6 +7,7 @@ using NPOI.SS.UserModel;
using OfficeOpenXml; using OfficeOpenXml;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.Entity;
using System.Data.SqlClient; using System.Data.SqlClient;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@@ -146,10 +147,18 @@ public class statisticsController: ApiController
return Ok(data); return Ok(data);
} }
//public static IEnumerable<T> Between<T>(
// this IEnumerable<T> source,
// T low,
// T high) where T : IComparable<T>
//{
// // 運用 IComparable 比較大小,泛型可支援 int, double, DateTime 等
// return source.Where(item => item.CompareTo(low) >= 0 && item.CompareTo(high) <= 0);
//}
[HttpPost] [HttpPost]
[Route("api/statistics/GetStatistic")] [Route("api/statistics/GetStatistic")]
public IHttpActionResult GetStatistic(string statistic_mode) public IHttpActionResult GetStatistic(string statistic_mode,string s_date,string e_date)
{ {
try try
{ {
@@ -166,6 +175,15 @@ public class statisticsController: ApiController
LogUtility log = new LogUtility(); LogUtility log = new LogUtility();
// 建立分頁 // 建立分頁
var ws = excel.Workbook.Worksheets.Add("MySheet"); var ws = excel.Workbook.Worksheets.Add("MySheet");
//var query = _db.activities.AsQueryable();
//if (!string.IsNullOrEmpty(s_date))
//{
// query= query.Where(a => a.startDate_solar.Value.ToString("yyyyMMdd").CompareTo(s_date) >= 0);
//}
//if (!string.IsNullOrEmpty(e_date))
//{
// query = query.Where(a => a.endDate_solar.Value.ToString("yyyyMMdd").CompareTo(e_date) <= 0);
//}
var data = (from a in _db.activities var data = (from a in _db.activities
join b in _db.pro_order on a.num equals b.activity_num join b in _db.pro_order on a.num equals b.activity_num
join c in _db.pro_order_detail on b.order_no equals c.order_no join c in _db.pro_order_detail on b.order_no equals c.order_no
@@ -181,9 +199,19 @@ public class statisticsController: ApiController
c.actItem_num, c.actItem_num,
item_subject = f.subject, item_subject = f.subject,
c.qty, c.qty,
c.price c.price,
a.startDate_solar,
a.endDate_solar
}).ToList(); }).ToList();
if (!string.IsNullOrEmpty(s_date))
{
data = data.Where(a => a.startDate_solar.Value.ToString("yyyyMMdd").CompareTo(s_date) >= 0).ToList();
}
if (!string.IsNullOrEmpty(e_date))
{
data = data.Where(a => a.endDate_solar.Value.ToString("yyyyMMdd").CompareTo(e_date) <= 0).ToList();
}
int i = 0; int i = 0;
i++; i++;
if (statistic_mode == "01") if (statistic_mode == "01")
@@ -198,7 +226,7 @@ public class statisticsController: ApiController
ws.Cells[i, 8].Value = "應收"; ws.Cells[i, 8].Value = "應收";
ws.Cells[i, 9].Value = "應付"; ws.Cells[i, 9].Value = "應付";
i++; i++;
var list = data.GroupBy(x => new { x.num, x.subject, x.actItem_num, x.item_subject }).Select(y => var list = data.ToList().GroupBy(x => new { x.num, x.subject, x.actItem_num, x.item_subject }).Select(y =>
new new
{ {
y.Key.num, y.Key.num,
@@ -213,8 +241,8 @@ public class statisticsController: ApiController
ws.Cells[i, 1].Value = i - 1; ws.Cells[i, 1].Value = i - 1;
ws.Cells[i, 2].Value = item.subject; ws.Cells[i, 2].Value = item.subject;
ws.Cells[i, 3].Value = item.item_subject; ws.Cells[i, 3].Value = item.item_subject;
ws.Cells[i, 4].Value = item.qty.Value; ws.Cells[i, 4].Value =item.qty==null?0: item.qty.Value;
ws.Cells[i, 5].Value = item.price.Value; ws.Cells[i, 5].Value =item.price==null?0: item.price.Value;
ws.Cells[i, 6].Formula = $"=D{i}*E{i}"; ws.Cells[i, 6].Formula = $"=D{i}*E{i}";
var draftList = (from a in drafts var draftList = (from a in drafts
@@ -240,13 +268,17 @@ public class statisticsController: ApiController
} }
else else
{ {
var jj = JsonConvert.DeserializeObject<JObject>(items.draft); var jj = JsonConvert.DeserializeObject<JObject>(items.draft);
foreach (var j in jj["pro_order_detail_items"]) if (jj["pro_order_detail_items"]!=null)
{ {
if (item.subject == j["activity_name"].ToString() && foreach (var j in jj["pro_order_detail_items"])
item.item_subject == j["actitem_name"].ToString())
{ {
payed = payed + decimal.Parse(j["reconcile"].ToString()); if (item.subject == j["activity_name"].ToString() &&
item.item_subject == j["actitem_name"].ToString())
{
payed = payed + decimal.Parse(j["reconcile"].ToString());
}
} }
} }
} }
@@ -301,7 +333,7 @@ public class statisticsController: ApiController
decimal payed = 0; decimal payed = 0;
foreach (var d in dd) foreach (var d in dd)
{ {
payed = payed + (decimal)d.check_amount;// -(decimal)d.remain_amount; payed = payed +d.check_amount==null?0: (decimal)d.check_amount;// -(decimal)d.remain_amount;
} }
ws.Cells[i, 5].Value = payed; ws.Cells[i, 5].Value = payed;
ws.Cells[i, 6].Formula = $"=if(D{i}>E{i},D{i}-E{i},0)"; ws.Cells[i, 6].Formula = $"=if(D{i}>E{i},D{i}-E{i},0)";
@@ -357,7 +389,7 @@ public class statisticsController: ApiController
} }
catch (Exception ex) catch (Exception ex)
{ {
return Ok(new { result = "N", message = ex.Message}); return Ok(new { result = "N", message = ex.Message+ex.StackTrace});
//return BadRequest($"{ex.Message}{ex.StackTrace}"); //return BadRequest($"{ex.Message}{ex.StackTrace}");
} }
} }
+6 -5
View File
@@ -598,9 +598,9 @@
<button class="nav-link active" id="sec2-tab1" data-bs-toggle="tab" data-bs-target="#sec2-page1" <button class="nav-link active" id="sec2-tab1" data-bs-toggle="tab" data-bs-target="#sec2-page1"
type="button" role="tab" aria-controls="home" aria-selected="true"> type="button" role="tab" aria-controls="home" aria-selected="true">
基本資料</button> 基本資料</button>
<button class="nav-link" id="sec2-tab2" data-bs-toggle="tab" data-bs-target="#sec2-page2" <%--<button class="nav-link" id="sec2-tab2" data-bs-toggle="tab" data-bs-target="#sec2-page2"
type="button" role="tab" aria-controls="profile" aria-selected="false"> type="button" role="tab" aria-controls="profile" aria-selected="false">
相關文件</button> 相關文件</button>--%>
<button class="nav-link" id="sec2-tab3" data-bs-toggle="tab" data-bs-target="#sec2-page3" <button class="nav-link" id="sec2-tab3" data-bs-toggle="tab" data-bs-target="#sec2-page3"
type="button" role="tab" aria-controls="bom" aria-selected="false"> type="button" role="tab" aria-controls="bom" aria-selected="false">
功德項目</button> 功德項目</button>
@@ -726,7 +726,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="tab-pane fade giftItems label-sm-right" id="sec2-page2" role="tabpanel" aria-labelledby="sec2-tab2"> <%-- <div class="tab-pane fade giftItems label-sm-right" id="sec2-page2" role="tabpanel" aria-labelledby="sec2-tab2">
<v-card class="mx-auto mt-10" outlined v-if="this_id!=''"> <v-card class="mx-auto mt-10" outlined v-if="this_id!=''">
<v-data-table <v-data-table
:headers="headersDetail" :headers="headersDetail"
@@ -734,7 +734,7 @@
:footer-props="footersDetail" :footer-props="footersDetail"
:search="searchDetail" :search="searchDetail"
:options.sync="optionsDetail" class="elevation-1" fixed-header height="350px" :options.sync="optionsDetail" class="elevation-1" fixed-header height="350px"
<%-- :server-items-length="desserts_count"--%>
> >
<v-divider inset></v-divider> <v-divider inset></v-divider>
<template v-slot:top> <template v-slot:top>
@@ -787,7 +787,8 @@
<div class="mx-auto" v-else > <div class="mx-auto" v-else >
<p class="lead">請先儲存基本資料後再新增相關文件</p> <p class="lead">請先儲存基本資料後再新增相關文件</p>
</div> </div>
</div> </div>--%>
<%-- :server-items-length="desserts_count"--%>
<div class="tab-pane fade giftItems label-sm-right" id="sec2-page3" role="tabpanel" aria-labelledby="sec2-tab3"> <div class="tab-pane fade giftItems label-sm-right" id="sec2-page3" role="tabpanel" aria-labelledby="sec2-tab3">
<asp:Panel ID="bom_panel" runat="server"> <asp:Panel ID="bom_panel" runat="server">
<div class="row mb-1"> <div class="row mb-1">
+7
View File
@@ -162,10 +162,17 @@ public partial class admin_activity_item_reg : MyWeb.config
actItem.sort_order = maxSort + 1; actItem.sort_order = maxSort + 1;
_db.actItems.Add(actItem); _db.actItems.Add(actItem);
_db.SaveChanges(); _db.SaveChanges();
int _id = actItem.num; int _id = actItem.num;
if( _id > 0) if( _id > 0)
{ {
Model.actItem_files file=new Model.actItem_files();
file.actItem_num= _id;
file.files_num = 211;
file.file.reg_time=DateTime.Now;
_db.actItem_files.Add(file);
_db.SaveChanges();
Model.admin_log admin_log = new Model.admin_log(); Model.admin_log admin_log = new Model.admin_log();
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Item, (int)Model.admin_log.Status.Insert, subject.Text); admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Item, (int)Model.admin_log.Status.Insert, subject.Text);
+1 -1
View File
@@ -70,7 +70,7 @@
this.message_dialog.show = true; this.message_dialog.show = true;
return false; return false;
} }
const params = { statistic_mode: this.category_id } const params = { statistic_mode: this.category_id, s_date: this.query.s_date, e_date: this.query.e_date }
const search = { const search = {
num: 0, kind: 0, kindName: "", order_no: "", u_name: "", pay_type: "", subject: "", amount: 0, price: 0, pay_mode: "", status: "", num: 0, kind: 0, kindName: "", order_no: "", u_name: "", pay_type: "", subject: "", amount: 0, price: 0, pay_mode: "", status: "",
acc_num: 0, f_num: 0, acc_kind: 0, check_amount: 0, remain_amount: 0, check_status: "", actItem_num: 0, draft: "", d_nnum: 0 acc_num: 0, f_num: 0, acc_kind: 0, check_amount: 0, remain_amount: 0, check_status: "", actItem_num: 0, draft: "", d_nnum: 0
+8 -2
View File
@@ -13,7 +13,9 @@
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div class="d-flex overflow-hidden" style="height:1920px"> <div class="d-flex overflow-hidden" style="height:1920px">
<div class="p-2 bg-dark text-white floting-box" style="width: 250px; left: 20px; top: 80px;"> <div class="p-2 bg-dark text-white floting-box" style="width: 250px; left: 20px; top: 80px;">
<h6 class="border-bottom pb-2">設計工具箱</h6> <h6 class="border-bottom pb-2">設計工具箱</h6>
<div class="input-group mb-3"> <div class="input-group mb-3">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" <button class="btn btn-outline-secondary dropdown-toggle" type="button"
@@ -86,8 +88,8 @@
<div> <div>
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item dropdown"> <li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">顯示物件 <a class="nav-link dropdown-toggle" href="#" role="button"
</a> data-bs-toggle="dropdown" aria-expanded="false">選擇牌位顯示項目</a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><span class="btn btn-sm btn-outline-light w-100 mb-2 dropdown-item" onclick="Designer.displayItem('address')">地址欄</span></li> <li><span class="btn btn-sm btn-outline-light w-100 mb-2 dropdown-item" onclick="Designer.displayItem('address')">地址欄</span></li>
<li><span class="btn btn-sm btn-outline-light w-100 mb-2 dropdown-item" onclick="Designer.displayItem('title1')">牌位正名</span></li> <li><span class="btn btn-sm btn-outline-light w-100 mb-2 dropdown-item" onclick="Designer.displayItem('title1')">牌位正名</span></li>
@@ -260,11 +262,15 @@
</div> </div>
</div> </div>
</asp:Content> </asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="footer_script" runat="Server"> <asp:Content ID="Content4" ContentPlaceHolderID="footer_script" runat="Server">
<script> <script>
const Designer = { const Designer = {
vuetify: new Vuetify(vuetify_options),
tab: "疏文",
elements: [], elements: [],
activeId: null, activeId: null,
styleID: null, styleID: null,
File diff suppressed because it is too large Load Diff
+14
View File
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class admin_print_TabletDesign :MyWeb.config
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
+4 -4
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<configSections> <configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
@@ -48,8 +48,8 @@
</appSettings> </appSettings>
<connectionStrings> <connectionStrings>
<!--SQL用--> <!--SQL用-->
<add name="shopConn" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.5.225;Initial Catalog=17168erp_c;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Provider=SQLOLEDB;Connection Timeout=10;" /> <add name="shopConn" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.2.252;Initial Catalog=17168erp_c1;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Provider=SQLOLEDB;Connection Timeout=10;" />
<add name="ezEntities" providerName="System.Data.EntityClient" connectionString="metadata=res://*/App_Code.Model.Model.csdl|res://*/App_Code.Model.Model.ssdl|res://*/App_Code.Model.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=192.168.5.225;Initial Catalog=17168erp_c;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Connection Timeout=10;&quot;" /> <add name="ezEntities" providerName="System.Data.EntityClient" connectionString="metadata=res://*/App_Code.Model.Model.csdl|res://*/App_Code.Model.Model.ssdl|res://*/App_Code.Model.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=192.168.2.252;Initial Catalog=17168erp_c1;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Connection Timeout=10;&quot;" />
<!-- <!--
--> -->
<!--SQL用--> <!--SQL用-->
@@ -225,7 +225,7 @@
<urlCompression doStaticCompression="true" doDynamicCompression="true" /> <urlCompression doStaticCompression="true" doDynamicCompression="true" />
<staticContent> <staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="777.00:00:00" /> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="777.00:00:00" />
<mimeMap fileExtension=".vue" mimeType="application/javascript"/> <mimeMap fileExtension=".vue" mimeType="application/javascript" />
</staticContent> </staticContent>
</system.webServer> </system.webServer>
<runtime> <runtime>