Sin descripción
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

收支單審查.cs 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5. using UnityEngine.UI;
  6. using UnityEngine.Networking;
  7. using UnityEngine.EventSystems;
  8. using System.Text.RegularExpressions;
  9. using System.Data.SqlClient;
  10. using System.Runtime.InteropServices;
  11. using System.Text;
  12. using TMPro;
  13. using System;
  14. using System.IO;
  15. using ZXing;
  16. using ZXing.QrCode;
  17. using System.Net;
  18. using System.Data;
  19. using SimpleJSON;
  20. using System.Linq;
  21. using System.ComponentModel;
  22. using System.Runtime.InteropServices;
  23. using System.Globalization;
  24. using XCharts.Runtime;
  25. public class 收支單審查 : MonoBehaviour
  26. {
  27. [SerializeField] TextMeshProUGUI 單號;
  28. [SerializeField] TextMeshProUGUI 申請人;
  29. [SerializeField] TextMeshProUGUI 日期;
  30. [SerializeField] TextMeshProUGUI 收入;
  31. [SerializeField] TextMeshProUGUI 支出;
  32. [SerializeField] TextMeshProUGUI 總和;
  33. [SerializeField] GameObject 選擇面板;
  34. [SerializeField] GameObject 彈跳是;
  35. [SerializeField] GameObject 彈跳否;
  36. [SerializeField] GameObject 彈跳叉;
  37. public GameObject buttonPrefab;
  38. public Transform buttonParent;
  39. public GameObject buttonceneter;
  40. private List<GameObject> copy = new List<GameObject>();
  41. public GameObject buttonPrefab1;
  42. public Transform buttonParent1;
  43. public GameObject buttonceneter1;
  44. private List<GameObject> copy1 = new List<GameObject>();
  45. public CanvasScaler canvasScaler;
  46. [SerializeField] GameObject 讀取面板;
  47. [SerializeField] TextMeshProUGUI 讀取;
  48. [SerializeField] GameObject 彈跳面板;
  49. [SerializeField] TextMeshProUGUI 彈跳文字;
  50. private string loadingText = "";
  51. private int dotCount = 0;
  52. private string 狀態 = "";
  53. private JSONNode 明細表;
  54. // Start is called before the first frame update
  55. void Start()
  56. {
  57. Screen.autorotateToPortrait = false;
  58. Screen.orientation = ScreenOrientation.Portrait;
  59. float rate = 1000.0f / 1600.0f;
  60. if (canvasScaler == null)
  61. {
  62. canvasScaler = GetComponent<CanvasScaler>();
  63. }
  64. if (Main.Global.rate>rate)
  65. {
  66. canvasScaler.matchWidthOrHeight = 1f;
  67. }
  68. else
  69. {
  70. canvasScaler.matchWidthOrHeight = 0f;
  71. }
  72. StartCoroutine(AnimateText());
  73. //Main.Global.阿帕契路徑="http://106.1.48.106:8080/wp-content/themes/event-star/GF_main.php?";
  74. //Main.Global.預設伺服器路徑="GF01";
  75. //Main.Global.人員="王詩文";
  76. 選擇面板.SetActive(true);
  77. StartCoroutine(收支審核清單());
  78. }
  79. IEnumerator 收支審核清單()
  80. {
  81. 讀取面板.SetActive(true);
  82. if (copy != null)
  83. {
  84. DeletetextCopy();
  85. }
  86. string strcon = "收支審核清單";
  87. string se = Main.Global.預設伺服器路徑;
  88. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}", strcon, se);
  89. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  90. yield return request.SendWebRequest();
  91. if (request.result == UnityWebRequest.Result.ConnectionError)
  92. {
  93. Debug.Log(request.error);
  94. yield break;
  95. }
  96. JSONNode json = JSON.Parse(request.downloadHandler.text);
  97. int sum = 2;
  98. for (int i = 0; i < json.Count; i++)
  99. {
  100. GameObject buttonObj = Instantiate(buttonPrefab) as GameObject;
  101. buttonObj.GetComponent<RectTransform>().anchoredPosition = new Vector2(2, -sum);
  102. buttonObj.transform.SetParent(buttonParent, false);
  103. TextMeshProUGUI[] text = buttonObj.GetComponentsInChildren<TextMeshProUGUI>();
  104. Button bt = buttonObj.GetComponentInChildren<Button>();
  105. int index = i;
  106. bt.onClick.AddListener(() =>
  107. {
  108. 單號.text=json[index][0].ToString().Trim('"');
  109. 申請人.text=json[index][3].ToString().Trim('"');
  110. 日期.text=json[index][1].ToString().Trim('"');
  111. StartCoroutine(收支明細清單());
  112. 選擇面板.SetActive(false);
  113. });
  114. text[0].text =json[i][0].ToString().Trim('"');
  115. text[1].text =json[i][1].ToString().Trim('"');
  116. text[2].text =json[i][5].ToString().Trim('"');
  117. sum+=75;
  118. copy.Add(buttonObj);
  119. }
  120. buttonceneter.GetComponent<RectTransform>().sizeDelta = new Vector2(buttonceneter.GetComponent<RectTransform>().sizeDelta.x, sum);
  121. 讀取面板.SetActive(false);
  122. }
  123. IEnumerator 收支明細清單()
  124. {
  125. 讀取面板.SetActive(true);
  126. if (copy1 != null)
  127. {
  128. DeletetextCopy1();
  129. }
  130. string strcon = "收支明細清單";
  131. string se = Main.Global.預設伺服器路徑;
  132. string pa1 = 單號.text;
  133. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}", strcon, se, pa1);
  134. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  135. yield return request.SendWebRequest();
  136. if (request.result == UnityWebRequest.Result.ConnectionError)
  137. {
  138. Debug.Log(request.error);
  139. yield break;
  140. }
  141. 明細表 = JSON.Parse(request.downloadHandler.text);
  142. int sum = 2;
  143. double tt1 = 0;
  144. double tt2 = 0;
  145. for (int i = 0; i < 明細表.Count; i++)
  146. {
  147. GameObject buttonObj = Instantiate(buttonPrefab1) as GameObject;
  148. buttonObj.GetComponent<RectTransform>().anchoredPosition = new Vector2(2, -sum);
  149. buttonObj.transform.SetParent(buttonParent1, false);
  150. TextMeshProUGUI[] text = buttonObj.GetComponentsInChildren<TextMeshProUGUI>();
  151. Toggle tg = buttonObj.GetComponentInChildren<Toggle>();
  152. text[0].text =明細表[i][1].ToString().Trim('"');
  153. text[1].text =明細表[i][2].ToString().Trim('"');
  154. text[2].text =明細表[i][3].ToString().Trim('"');
  155. text[3].text = double.Parse(明細表[i][6]).ToString("#,##0");
  156. text[4].text = double.Parse(明細表[i][7]).ToString("#,##0");
  157. tt1 +=double.Parse(明細表[i][6]);
  158. tt2 +=double.Parse(明細表[i][7]);
  159. if (明細表[i][13]==1)
  160. {
  161. tg.isOn =true;
  162. }
  163. sum+=75;
  164. copy1.Add(buttonObj);
  165. }
  166. 收入.text=tt1.ToString("#,##0");
  167. 支出.text=tt2.ToString("#,##0");
  168. 總和.text=(tt1-tt2).ToString("#,##0");
  169. if ((tt1-tt2)>0)
  170. {
  171. 總和.color = Color.blue;
  172. }
  173. else
  174. {
  175. 總和.color = Color.red;
  176. }
  177. buttonceneter1.GetComponent<RectTransform>().sizeDelta = new Vector2(buttonceneter1.GetComponent<RectTransform>().sizeDelta.x, sum);
  178. 讀取面板.SetActive(false);
  179. }
  180. public void 通過()
  181. {
  182. 狀態="通過";
  183. 彈跳是.SetActive(true);
  184. 彈跳否.SetActive(true);
  185. 彈跳叉.SetActive(false);
  186. 彈跳面板.SetActive(true);
  187. 彈跳文字.text = "確認是否通過";
  188. }
  189. public void 作廢()
  190. {
  191. 狀態="作廢";
  192. 彈跳是.SetActive(true);
  193. 彈跳否.SetActive(true);
  194. 彈跳叉.SetActive(false);
  195. 彈跳面板.SetActive(true);
  196. 彈跳文字.text = "確認是否作廢";
  197. }
  198. public void 是()
  199. {
  200. if (狀態 == "作廢")
  201. {
  202. 讀取面板.SetActive(true);
  203. 彈跳是.SetActive(false);
  204. 彈跳否.SetActive(false);
  205. 彈跳叉.SetActive(true);
  206. 選擇面板.SetActive(true);
  207. 彈跳文字.text = "作廢成功";
  208. StartCoroutine(收支審核作廢());
  209. }
  210. else
  211. {
  212. 讀取面板.SetActive(true);
  213. 彈跳是.SetActive(false);
  214. 彈跳否.SetActive(false);
  215. 彈跳叉.SetActive(true);
  216. 選擇面板.SetActive(true);
  217. 彈跳文字.text = "審核成功";
  218. StartCoroutine(收支審核控制表修改());
  219. }
  220. }
  221. public void 否()
  222. {
  223. 狀態="";
  224. 彈跳面板.SetActive(false);
  225. 彈跳文字.text = "";
  226. }
  227. IEnumerator 收支審核作廢()
  228. {
  229. string strcon = "收支審核作廢";
  230. string se = Main.Global.預設伺服器路徑;
  231. string pa1 = 單號.text;
  232. string pa2 = Main.Global.人員;
  233. DateTime currentDate = DateTime.Now;
  234. string pa3 = currentDate.ToString("yyyy/MM/dd");
  235. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}&PA2={3}&PA3={4}", strcon, se, pa1, pa2, pa3);
  236. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  237. yield return request.SendWebRequest();
  238. if (request.result == UnityWebRequest.Result.ConnectionError)
  239. {
  240. Debug.Log(request.error);
  241. yield break;
  242. }
  243. yield return StartCoroutine(收支審核清單());
  244. }
  245. IEnumerator 收支審核控制表修改()
  246. {
  247. string strcon = "收支審核控制表修改";
  248. string se = Main.Global.預設伺服器路徑;
  249. string pa1 = 單號.text;
  250. string pa2 = Main.Global.人員;
  251. DateTime currentDate = DateTime.Now;
  252. string pa3 = currentDate.ToString("yyyy/MM/dd");
  253. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}&PA2={3}&PA3={4}", strcon, se, pa1, pa2, pa3);
  254. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  255. yield return request.SendWebRequest();
  256. if (request.result == UnityWebRequest.Result.ConnectionError)
  257. {
  258. Debug.Log(request.error);
  259. yield break;
  260. }
  261. yield return StartCoroutine(收支審核流水帳修改());
  262. }
  263. IEnumerator 收支審核流水帳修改()
  264. {
  265. string strcon = "收支審核流水帳修改";
  266. string se = Main.Global.預設伺服器路徑;
  267. string pa1 = 單號.text;
  268. DateTime currentDate = DateTime.Now;
  269. string pa3 = currentDate.ToString("yyyy/MM/dd");
  270. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}&PA2={3}", strcon, se, pa1,pa3);
  271. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  272. yield return request.SendWebRequest();
  273. if (request.result == UnityWebRequest.Result.ConnectionError)
  274. {
  275. Debug.Log(request.error);
  276. yield break;
  277. }
  278. for (int i = 0; i < 明細表.Count; i++)
  279. {
  280. string str = 明細表[i][1].ToString().Trim('"');
  281. double d1 = double.Parse(明細表[i][6]);
  282. double d2 = double.Parse(明細表[i][7]);
  283. if (d1 != 0)
  284. {
  285. yield return StartCoroutine(收支審核流水帳現金修改(str));
  286. }
  287. if (d2 != 0)
  288. {
  289. yield return StartCoroutine(收支審核流水帳公帳修改(str));
  290. }
  291. }
  292. yield return StartCoroutine(收支審核清單());
  293. }
  294. IEnumerator 收支審核流水帳公帳修改(string pa2)
  295. {
  296. string strcon = "收支審核流水帳公帳修改";
  297. string se = Main.Global.預設伺服器路徑;
  298. string pa1 = 單號.text;
  299. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}&PA2={3}", strcon, se, pa1, pa2);
  300. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  301. yield return request.SendWebRequest();
  302. if (request.result == UnityWebRequest.Result.ConnectionError)
  303. {
  304. Debug.Log(request.error);
  305. yield break;
  306. }
  307. }
  308. IEnumerator 收支審核流水帳現金修改(string pa2)
  309. {
  310. string strcon = "收支審核流水帳現金修改";
  311. string se = Main.Global.預設伺服器路徑;
  312. string pa1 = 單號.text;
  313. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}&PA2={3}", strcon, se, pa1, pa2);
  314. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  315. yield return request.SendWebRequest();
  316. if (request.result == UnityWebRequest.Result.ConnectionError)
  317. {
  318. Debug.Log(request.error);
  319. yield break;
  320. }
  321. }
  322. public void 清單()
  323. {
  324. 選擇面板.SetActive(true);
  325. }
  326. public void DeletetextCopy()
  327. {
  328. foreach (GameObject i in copy)
  329. {
  330. Destroy(i);
  331. }
  332. copy.Clear();
  333. }
  334. public void DeletetextCopy1()
  335. {
  336. foreach (GameObject i in copy1)
  337. {
  338. Destroy(i);
  339. }
  340. copy1.Clear();
  341. }
  342. IEnumerator AnimateText()
  343. {
  344. string qqq = 讀取.text.ToString();
  345. while (true)
  346. {
  347. yield return new WaitForSeconds(0.5f);
  348. if (dotCount < 3)
  349. {
  350. loadingText += ".";
  351. dotCount++;
  352. }
  353. else
  354. {
  355. loadingText = "";
  356. dotCount = 0;
  357. }
  358. 讀取.text = qqq+loadingText;
  359. }
  360. }
  361. public void exit()
  362. {
  363. change_Secen(1);
  364. }
  365. public void change_Secen(int _screenNum)
  366. {
  367. //Main.Global.判斷是否第一次=true;
  368. SceneManager.LoadScene(_screenNum);
  369. }
  370. }