122 Angajamente 5e8cdd6216 ... 1d98ba5239

Autor SHA1 Permisiunea de a trimite mesaje. Dacă este dezactivată, utilizatorul nu va putea trimite nici un fel de mesaj Data
  hokky 1d98ba5239 240703-1918-Kim 4 luni în urmă
  hokky 825e92deca Merge branch 'master' of http://git.daboryhost.com:10880/dbrerp-themes/kbgolf 4 luni în urmă
  hokky 79ecf17694 240703-1726-Kim 4 luni în urmă
  System User for kbgolf cdcc026917 240703-1726-Kim 4 luni în urmă
  hokky 723268a45a 240703-1631-Kim 4 luni în urmă
  hokky e0635ea13b 240703-1629-Kim 4 luni în urmă
  hokky d31c4a631c 240703-1625-Kim 4 luni în urmă
  hokky ca04f384f3 240703-1622-Kim 4 luni în urmă
  hokky 4ccdd7c732 240703-1617-Kim 4 luni în urmă
  wngur6076 f2e37e0701 Merge remote-tracking branch 'refs/remotes/origin/master' 4 luni în urmă
  wngur6076 bc612db64f t 4 luni în urmă
  hokky 29da615346 240703-1559-Kim 4 luni în urmă
  hokky d80ded72d5 240703-1528-Kim 4 luni în urmă
  hokky 5cd5a08b0c 240703-1521-Kim 4 luni în urmă
  hokky e1ca4b681d 240703-1514-Kim 4 luni în urmă
  hokky f7d8d35025 240703-1506-Kim 4 luni în urmă
  System User for kbgolf 3348014c87 240703-1505-Kim 4 luni în urmă
  hokky 2b0e35a655 240703-1504-Kim 4 luni în urmă
  hokky 9ec2cb1525 240703-1444-Kim 4 luni în urmă
  System User for kbgolf ab6cb0b9fb 240703-1439-Kim 4 luni în urmă
  hokky ed9627b606 240703-1439-Kim 4 luni în urmă
  hokky 2c987af336 240703-1342-Kim 4 luni în urmă
  hokky 71341939c6 240703-1308-Kim 4 luni în urmă
  hokky 66feec4b5f 240703-1307-Kim 4 luni în urmă
  hokky 4c6b38d25c 240703-1029-Kim 4 luni în urmă
  hokky 08669b159b 240703-1015-Kim 4 luni în urmă
  hokky 8b42309775 240703-1012-Kim 4 luni în urmă
  hokky 18a8638ec1 Merge branch 'master' of http://git.daboryhost.com:10880/dbrerp-themes/kbgolf 4 luni în urmă
  System User for kbgolf b95acf40bb 240703-0939-Kim 4 luni în urmă
  hokky 19c43c4921 240703-0938-Kim 4 luni în urmă
  hokky c6eb9d5cd5 Merge branch 'master' of http://git.daboryhost.com:10880/dbrerp-themes/kbgolf 4 luni în urmă
  hokky 05de7b2c3d commit 4 luni în urmă
  hokky 6866064990 240702-2158-Kim 4 luni în urmă
  hokky 034006f089 240702-2157-Kim 4 luni în urmă
  hokky 24d8a42557 240702-2151-Kim 4 luni în urmă
  hokky 6933d54d26 240702-2139-Kim 4 luni în urmă
  hokky eaf8c24b2c 240702-2135-Kim 4 luni în urmă
  hokky 2893e66cf7 commit 4 luni în urmă
  hokky 75761ff58c commit 4 luni în urmă
  hokky 4799c34e6d 240702-1829-Kim 4 luni în urmă
  hokky b2d99f94ca Merge branch 'master' of http://git.daboryhost.com:10880/dbrerp-themes/kbgolf 4 luni în urmă
  System User for kbgolf ebbb8018e4 240702-1817-Kim 4 luni în urmă
  hokky dbef650d19 240702-1817-Kim 4 luni în urmă
  hokky 2823442598 240702-1802-Kim 4 luni în urmă
  hokky f6446dbac5 240702-1800-Kim 4 luni în urmă
  hokky befba15e93 240702-1749-Kim 4 luni în urmă
  hokky 92656efa02 240702-1643-Kim 4 luni în urmă
  hokky e68bc6933d 240702-1544-Kim 4 luni în urmă
  hokky 792919d7ec commit 4 luni în urmă
  EricKIm e7bfe1deeb 240702-1308-Kim 4 luni în urmă
  hokky 31153468e3 commit 4 luni în urmă
  hokky 068a7afec8 240702-0816-Kim 4 luni în urmă
  kimhi65 95b09fee98 240701-2326-Kim 4 luni în urmă
  wngur6076 25623d9853 t 4 luni în urmă
  wngur6076 a673c65e8f t 4 luni în urmă
  wngur6076 09d158c597 t 4 luni în urmă
  wngur6076 12bab8eb26 t 4 luni în urmă
  wngur6076 179b82308e t 4 luni în urmă
  wngur6076 5fed866c23 t 4 luni în urmă
  wngur6076 89471acc88 t 4 luni în urmă
  wngur6076 cfb3301329 t 4 luni în urmă
  wngur6076 12e3567b51 t 4 luni în urmă
  wngur6076 bc26fc106e t 4 luni în urmă
  wngur6076 8a513170b7 t 4 luni în urmă
  wngur6076 fe8e30c257 t 4 luni în urmă
  hokky 6a3d4fd4c5 240701-1830-Kim 4 luni în urmă
  hokky 158049a5e9 240701-1426-Kim 4 luni în urmă
  hokky 00c13a23e3 240701-1423-Kim 4 luni în urmă
  hokky 87698bc439 240701-1419-Kim 4 luni în urmă
  hokky fe60387fbf 240701-1408-Kim 4 luni în urmă
  hokky 5c8364aec6 240701-1401-Kim 4 luni în urmă
  hokky 94b10ce909 240701-1350-Kim 4 luni în urmă
  hokky b09cba37ad 240701-1336-Kim 4 luni în urmă
  hokky 9e0a06ccdf 240701-1048-Kim 4 luni în urmă
  hokky 29b2d2096c 240701-1047-Kim 4 luni în urmă
  hokky 1c675e73f4 240701-1044-Kim 4 luni în urmă
  hokky 276bacc266 240701-1039-Kim 4 luni în urmă
  hokky 55055620c8 240630-2305-Kim 4 luni în urmă
  hokky 9f5df95f38 240630-2104-Kim 4 luni în urmă
  hokky 2c4ac0b1ea 240630-1820-Kim 4 luni în urmă
  hokky f56b5bbb1f Merge branch 'master' of http://git.daboryhost.com:10880/dbrerp-themes/kbgolf 4 luni în urmă
  hokky bda6c568a2 240630-1813-Kim 4 luni în urmă
  System User for kbgolf 7f2636105a 240626-2026-Kim 4 luni în urmă
  hokky 9e193196f6 240626-2026-Kim 4 luni în urmă
  hokky d32bf01054 240626-2017-Kim 4 luni în urmă
  hokky 01ae513c8e 240626-2005-Kim 4 luni în urmă
  hokky b5f0ac1262 240626-1958-Kim 4 luni în urmă
  hokky 6b68844a9f 240626-1952-Kim 4 luni în urmă
  hokky 8f01c3cf68 240626-1934-Kim 4 luni în urmă
  hokky 60c6829dbe 240626-1929-Kim 4 luni în urmă
  hokky d3d5446018 240626-1918-Kim 4 luni în urmă
  hokky 5f07d2eaef 240626-1904-Kim 4 luni în urmă
  hokky d79e4bcebf 240626-1903-Kim 4 luni în urmă
  hokky 53f5b01632 240626-1851-Kim 4 luni în urmă
  hokky 9d89fc5dd6 240626-1839-Kim 4 luni în urmă
  hokky 208b802b0b 240626-1838-Kim 4 luni în urmă
  hokky 3b644e8219 240626-1818-Kim 4 luni în urmă
  hokky 43de2cd157 240626-1806-Kim 4 luni în urmă
  hokky ce15cbbf59 240626-1805-Kim 4 luni în urmă
  hokky b6581243d5 240626-1805-Kim 4 luni în urmă
  hokky ccb031d685 240626-1737-Kim 4 luni în urmă
  hokky 877f6f49a7 240626-1732-Kim 4 luni în urmă
  System User for kbgolf d88b2d41bc 240626-1731-Kim 4 luni în urmă
  hokky 58ba87d5ae 240626-1731-Kim 4 luni în urmă
  hokky 2246bbb10f 240626-1704-Kim 4 luni în urmă
  System User for kbgolf e59d8fefc3 240626-1701-Kim 4 luni în urmă
  hokky 6b5c0b55d2 240626-1701-Kim 4 luni în urmă
  hokky f7e7798882 240626-1651-Kim 4 luni în urmă
  hokky cb5be38256 240626-1650-Kim 4 luni în urmă
  hokky d579326839 240626-1640-Kim 4 luni în urmă
  hokky 1021f9ee00 240626-1626-Kim 4 luni în urmă
  hokky 35d990bbde 240626-1622-Kim 4 luni în urmă
  hokky bc12877a4f 240626-1620-Kim 4 luni în urmă
  hokky 5e99094ffc 240626-1615-Kim 4 luni în urmă
  hokky 19ee8c54a6 240626-1614-Kim 4 luni în urmă
  hokky 2f6d562047 240626-1609-Kim 4 luni în urmă
  System User for kbgolf 1b1f320564 240626-1550-Kim 4 luni în urmă
  hokky d7ba551708 240626-1550-Kim 4 luni în urmă
  System User for kbgolf 5289976f5f 240626-1547-Kim 4 luni în urmă
  hokky 3301f56925 240626-1545-Kim 4 luni în urmă
  hokky 0593144219 Merge branch 'master' of http://git.daboryhost.com:10880/dbrerp-themes/kbgolf 4 luni în urmă
  System User for kbgolf 814f56fb66 240624-1657-Kim 5 luni în urmă
30 a modificat fișierele cu 638 adăugiri și 658 ștergeri
  1. 1 1
      erp/para/ko_KR/list/list-type1/download/sise.json
  2. 258 0
      erp/para/ko_KR/list/list-type1/downupload/post/post-sise.json
  3. 27 35
      erp/para/ko_KR/list/list-type1/post-sise-input.json
  4. 7 7
      erp/para/ko_KR/popup/popup-form1/form-insert/sise.json
  5. 0 423
      erp/resources/views/form-post/standard.blade.php
  6. 5 6
      erp/resources/views/popup/popup-form1/form-a/post/sise-form.blade.php
  7. 26 25
      erp/resources/views/popup/popup-form1/form-insert.blade.php
  8. 66 29
      pro/app/Http/Controllers/Auth/SocialTalkController.php
  9. 3 1
      pro/app/Http/Controllers/IndexController.php
  10. 0 1
      pro/app/Http/Controllers/Page/ContactUsCustomController.php
  11. 2 1
      pro/app/Http/Controllers/Page/SiseController.php
  12. 55 25
      pro/app/Services/SocialService.php
  13. 4 2
      pro/resources/css/style.css
  14. 61 20
      pro/resources/views/index.blade.php
  15. 41 34
      pro/resources/views/layouts/master.blade.php
  16. 1 1
      pro/resources/views/page/contactus-custom-list.blade.php
  17. 2 1
      pro/resources/views/page/contactus-custom.blade.php
  18. 1 1
      pro/resources/views/page/map.blade.php
  19. 35 11
      pro/resources/views/page/sise.blade.php
  20. 4 3
      pro/routes/web.php
  21. 1 0
      qry/erp/list/list-type1-insert/post/sise/insert1.sql
  22. 12 0
      qry/erp/list/list-type1-insert/post/sise/insert2.sql
  23. 0 1
      qry/erp/list/list-type1-insert/sise/sise-input/1_delete_sise.sql
  24. 0 8
      qry/erp/list/list-type1-insert/sise/sise-input/2_insert_sise.sql
  25. 7 0
      qry/erp/list/list-type1/download/post/contactus-custom/plain_cnt.sql
  26. 13 0
      qry/erp/list/list-type1/download/post/post-sise/subqry/insert1.sql
  27. 0 14
      qry/erp/list/list-type1/download/post/sise/plain.sql
  28. 0 0
      qry/erp/list/list-type1/download/post/sise/plain_cnt.sql
  29. 6 7
      qry/erp/list/list-type1/post/post-sise-input/plain.sql
  30. 0 1
      qry/erp/list/list-type1/post/post-sise-input/plain_cnt.sql

+ 1 - 1
erp/para/ko_KR/list/list-type1/download/sise.json

@@ -5,7 +5,7 @@
     },
 
     "QueryVars": {
-        "QueryName": "kbgolf::download/sise",
+        "QueryName": "kbgolf::post/sise",
         "FilterName": "",
         "FilterValue": "",
         "FilterDate": "",

+ 258 - 0
erp/para/ko_KR/list/list-type1/downupload/post/post-sise.json

@@ -0,0 +1,258 @@
+{
+    "General": {
+        "Title": "회원권 시세 불러오기",
+        "PageApi": "list-type1-page",
+        "ActApi": "post-act"
+    },
+
+    "QueryVars": {
+        "QueryName": "kbgolf::download/post/post-sise",
+        "FilterName": "",
+        "FilterValue": "",
+        "FilterDate": "mx.pc6",
+        "SimpleFilter": "mx.post_type_id=59"
+    },
+
+    "HeadSelectOptions": [
+        {
+            "Value": "new",
+            "Caption": "회원권 등록"
+        },
+        {
+            "Value": "multi-delete",
+            "Caption": "회원권 일괄 삭제"
+        },
+        {
+            "Value": "excel-upload",
+            "Caption": "(1)엑셀 업로드"
+        },
+        {
+            "Value": "dummy",
+            "Caption": "(2)적용",
+            "Component": "kbgolf::popup.popup-form1.form-insert",
+            "Parameter": "/popup/popup-form1/form-insert/sise",
+            "ThemeDir": "kbgolf/erp"
+        }
+    ],
+
+    "//FormVars": "FormVars[0]-caption, FormVars[1]-searchPopup",
+    "FormVars": [
+        {
+            "ListButton": "조회",
+            "DateRange": "",
+            "DateNavi": "이전 | (오늘지정) | 이후",
+            "Date": "시세일자",
+            "From": "부터",
+            "To": "까지",
+            "FirstRange": "",
+            "SecondRange": "",
+            "ThirdRange": "",
+            "FourthRange": "",
+            "AddTotalLine": "",
+            "SelectPopup": "팝업 선택(라디오 버튼)",
+            "MultiPopup": "",
+            "ChartPopup": "",
+            "DownloadList": "",
+            "ShowOnlyClosed": "",
+            "Balance": "",
+            "OrderBy": "표시 순서",
+            "FilterOption": "검색 조건",
+            "SimpleOption": "회원권별 검색"
+        }
+    ],
+
+    "FilterSelectOptions": [
+        {
+            "Value": "",
+            "Caption": "=검색 조건="
+        },
+        {
+            "Value": "mx.post_title",
+            "Caption": "회원권명"
+        },
+        {
+            "Value": "mx.pc1",
+            "Caption": "회원권코드"
+        },
+        {
+            "Value": "mx.pc2",
+            "Caption": "지역코드"
+        }
+    ],
+
+    "SimpleSelectOptions": [
+        {
+            "Value": "",
+            "Caption": "전체"
+        },
+        {
+            "Value": "mx.pc1='golf'",
+            "Caption": "골프회원권"
+        },
+        {
+            "Value": "mx.pc1='condo'",
+            "Caption": "콘도회원권"
+        },
+        {
+            "Value": "mx.pc1='fitness'",
+            "Caption": "휘트니스회원권"
+        }
+    ],
+    "//ListType1RangeVars": "[0]-filter, [1]-component, [2]-parameter",
+    "ListType1RangeVars": [
+        {
+            "FirstRange": "",
+            "SecondRange": "",
+            "ThirdRange": "",
+            "FourthRange": ""
+        },
+        {
+            "FirstRange": "",
+            "SecondRange": "",
+            "ThirdRange": "",
+            "FourthRange": ""
+        },
+        {
+            "FirstRange": "",
+            "SecondRange": "",
+            "ThirdRange": "",
+            "FourthRange": ""
+        }
+    ],
+
+    "DateRangeOptions": [
+    ],
+
+    "DateNaviOptions": [
+        {
+            "Value": "day",
+            "Caption": "일"
+        },
+        {
+            "Value": "week",
+            "Caption": "주"
+        },
+        {
+            "Value": "month",
+            "Caption": "월"
+        },
+        {
+            "Value": "quarterly",
+            "Caption": "분기"
+        },
+        {
+            "Value": "semiannual",
+            "Caption": "반기"
+        },
+        {
+            "Value": "year",
+            "Caption": "년"
+        },
+        {
+            "Value": "all",
+            "Caption": "전체"
+        }
+    ],
+
+    "SelectPopupOptions": [
+        {
+            "Caption": "회원권 관리",
+            "Component": "kbgolf::popup.popup-form1.form-a.post.sise-form",
+            "Parameter": "kbgolf::/popup/popup-form1/form-a/post/sise"
+        }
+    ],
+
+    "// OrderByOptions": "OrderBy Options//첫번째 Value가 Default",
+    "OrderByOptions": [
+        {
+            "Value": "mx.created_on desc",
+            "Caption": "문의일자 역순"
+        },
+        {
+            "Value": "mx.created_on asc",
+            "Caption": "문의일자 순서"
+        }
+    ],
+
+    "//BalanceOptions": "Show OnlyBalaceRemained or All",
+    "BalanceOptions": [
+        {
+            "Value": "",
+            "Caption": "전체 보기"
+        },
+        {
+            "Value": "c10 > 0",
+            "Caption": "잔량있는 것만"
+        }
+    ],
+
+    "DisplayVars": {
+        "IsRawDownload": true,
+        "IsAddTotalLine": false,
+        "IsCache": true,
+
+        "IsDownloadList": true,
+        "IsListFirst": true,
+        "IsExcelColumn": true,
+        "IsSelectPopupHidden": true,
+        "IsC1Popup": "1",
+        "InitLines": 15,
+        "HeadHeight": "140",
+        "BodyHeight": "570",
+        "InitDateRange" : "day"
+    },
+
+    "ThumbContainerVars": {
+        "ListWidth": 60,
+        "ListHeight": 50
+    },
+
+    "// ListVars": "ListVars[0]-caption, ListVars[1]-size(px), ListVars[2]-align->right(number) left(left)",
+    "ListVars": [
+        {
+            "$Radio": "$Radio",
+            "$Check": "$Check",
+            "No": "번호",
+            "C1": "회원권명",
+            "C2": "회원권코드",
+            "C3": "지역코드",
+            "C4": "금일시세",
+            "C5": "전일시세",
+            "C6": "시세타입",
+            "C7": "시세일자",
+            "C8": "포스트타입아이디",
+            "C9": "포스트슬러그",
+            "C10": "포스트번호"
+        },
+        {
+            "$Radio": "2",
+            "$Check": "1",
+            "No": "1",
+            "C1": "5",
+            "C2": "3",
+            "C3": "3",
+            "C4": "4",
+            "C5": "4",
+            "C6": "4",
+            "C7": "4",
+            "C8": "4",
+            "C9": "4",
+            "C10": "4"
+        },
+        {
+            "$Radio": "center",
+            "$Check": "center",
+            "No": "center",
+            "C1": "center",
+            "C2": "center",
+            "C3": "center",
+            "C4": "decimal('purch_prc')",
+            "C5": "decimal('purch_prc')",
+            "C6": "center",
+            "C7": "center",
+            "C8": "center",
+            "C9": "center",
+            "C10": "center"
+        }
+    ]
+}

+ 27 - 35
erp/para/ko_KR/list/list-type1/post/sise-input.json → erp/para/ko_KR/list/list-type1/post-sise-input.json

@@ -1,8 +1,6 @@
 {
-    "//list-type-1": "simple and plain list by query of table join",
-
     "General": {
-        "Title": "회원권 시세",
+        "Title": "회원권 시세 리스트",
         "PageApi": "list-type1-page",
         "ActApi": "post-act"
     },
@@ -11,8 +9,8 @@
         "QueryName": "kbgolf::post/post-sise-input",
         "FilterName": "",
         "FilterValue": "",
-        "FilterDate": "mx.official_date",
-        "SimpleFilter": ""
+        "FilterDate": "",
+        "SimpleFilter": "pt.post_code='sise'"
     },
 
     "HeadSelectOptions": [
@@ -23,23 +21,6 @@
         {
             "Value": "multi-delete",
             "Caption": "회원권 일괄 삭제"
-        },
-        {
-            "Value": "custom-xls-report",
-            "Caption": "(1)엑셀 다운로드",
-            "Component": "dummy",
-            "Parameter": "/list/list-type1/download/sise",
-            "ThemeDir": "/kbgolf/erp"
-        },
-        {
-            "Value": "excel-upload",
-            "Caption": "(2)엑셀 업로드"
-        },
-        {
-            "Value": "dummy",
-            "Caption": "(3)적용",
-            "Component": "kbgolf::popup-form1.form-insert",
-            "Parameter": "kbgolf::/popup/popup-form1/form-a/post/sise"
         }
     ],
 
@@ -90,7 +71,7 @@
 
     "SimpleSelectOptions": [
         {
-            "Value": "pt.post_code='sise'",
+            "Value": "",
             "Caption": "전체"
         },
         {
@@ -195,6 +176,11 @@
     ],
 
     "DisplayVars": {
+        "IsRawDownload": true,
+        "IsAddTotalLine": false,
+        "IsCache": true,
+
+
         "IsListFirst": true,
         "IsExcelColumn": true,
         "IsSelectPopupHidden": true,
@@ -216,40 +202,46 @@
             "$Radio": "$Radio",
             "$Check": "$Check",
             "No": "번호",
-            "C8": "시세일자",
             "C1": "회원권명",
             "C2": "회원권코드",
             "C3": "지역코드",
-            "C4": "시세타입",
-            "C5": "금일시세",
-            "C6": "전일시세",
-            "C7": "등락"
+            "C4": "금일시세",
+            "C5": "전일시세",
+            "C6": "시세타입",
+            "C7": "시세일자",
+            "C8": "포스트타입아이디",
+            "C9": "포스트슬러그",
+            "C10": "포스트번호"
         },
         {
             "$Radio": "2",
             "$Check": "1",
             "No": "1",
-            "C8": "5",
-            "C1": "3",
+            "C1": "5",
             "C2": "3",
             "C3": "3",
             "C4": "4",
             "C5": "4",
             "C6": "4",
-            "C7": "4"
+            "C7": "4",
+            "C8": "4",
+            "C9": "4",
+            "C10": "4"
         },
         {
             "$Radio": "center",
             "$Check": "center",
             "No": "center",
-            "C8": "center",
             "C1": "center",
             "C2": "center",
             "C3": "center",
-            "C4": "center",
+            "C4": "decimal('purch_prc')",
             "C5": "decimal('purch_prc')",
-            "C6": "decimal('purch_prc')",
-            "C7": "decimal('purch_prc')"
+            "C6": "center",
+            "C7": "center",
+            "C8": "center",
+            "C9": "center",
+            "C10": "center"
         }
     ]
 }

+ 7 - 7
erp/para/ko_KR/popup/popup-form1/form-insert/sise.json

@@ -7,14 +7,14 @@
     ],
 
     "NoticeVars": {
-        "Notice": "(1) 업로드 후 실테이블에 적용하기를 하면 기존의 리스트는 완전히 삭제되고 새로운 리스트가 업로드 됩니다.",
-        "Warning": "(1)기존의 [리스트]는 완전 삭제/재생성되므로 전문적인 경험이 없으면 사용을 권장하지 않습니다.<br>(2) [리스트]는 메인화면의 우측 상단의 '캐시삭제' 버튼을 클릭하기 이전에는 게시되지 않습니다. 실수로 업로드를 했을 경우 '캐시삭제'버튼을 클릭하지 마십시요."
+        "Notice": "(1) 업로드 후 실테이블에 적용하기를 하면 기존의 회원권 시세는 완전히 삭제되고 새로운 회원권 시세가 업로드 됩니다.",
+        "Warning": "(1)기존의 [회원권 시세]는 완전 삭제/재생성되므로 전문적인 경험이 없으면 사용을 권장하지 않습니다.<br>(2) [회원권 시세]는 메인화면의 우측 상단의 '캐시삭제' 버튼을 클릭하기 이전에는 게시되지 않습니다. 실수로 업로드를 했을 경우 '캐시삭제'버튼을 클릭하지 마십시요."
     },
 
     "FormVars": [
         {
-            "SaveButton": "[리스트] 테이블에 반영",
-            "TruncateTable": "통합 설정 테이블 비운 후 추가",
+            "SaveButton": "[회원권 시세] 테이블에 반영",
+            "TruncateTable": "pro_post 테이블 비운 후 추가",
             "BackupTable": "'pro_post_yy_mm_dd_mm_ss' 테이블로 백업",
             "BackupDb": "'DB_name_yy_mm_dd_mm_ss' 테이블로 백업"
         }
@@ -25,12 +25,12 @@
     },
 
     "InsertVars": {
-        "QueryName": "kbgolf::sise/sise-input",
+        "QueryName": "kbgolf::post/sise",
         "InsertType": "bulk",
         "//InsertType": "one-by-one",
         "PreProcess"  : "",
-        "PostProcess"  : "main-menu",
-        "IsTruncateTable": true,
+        "PostProcess"  : "post-sise",
+        "IsTruncateTable": false,
         "IsBackupTable": false,
         "IsBackupDb": false
     }

+ 0 - 423
erp/resources/views/form-post/standard.blade.php

@@ -1,423 +0,0 @@
-<div class="mb-1 pt-2 text-right btn-groups">
-    <div class="btn-group">
-        <button type="button" class="btn btn-sm btn-primary standard-act save-button" data-value="save" {{ $formPost['FormPostVars']['Hidden']['SaveButton'] }}>
-            {{ $formPost['FormPostVars']['Title']['SaveButton'] }}
-        </button>
-        @include('front.dabory.erp.partial.select-btn-options', [
-            'selectBtns' => $formPost['SelectButtonOptions'],
-            'eventClassName' => 'standard-act',
-        ])
-    </div>
-
-    <button type="button" id="modal-media-btn" hidden
-            class="btn btn-success btn-open-modal">
-    </button>
-</div>
-
-<div class="card mb-0 pb-0" id="standard-form">
-    <div class="row m-1" id="frm">
-        <input type="hidden" id="Id" name="Id" value="0">
-        <input type="hidden" id="attached-files">
-        @php
-            $collection = collect($formPost['FormPostVars']['Title']);
-            $chunk = $collection->splice($formPost['DisplayVars']['Chunk'] + 1);
-            if ($formPost['DisplayVars']['Chunk'] == 999) {
-                $cardWidth = [12, 0];
-            } else {
-                $cardWidth = [8, 4];
-            }
-        @endphp
-        @foreach([$collection->all(), $chunk->all()] as $key => $chunk)
-            <div class="{{ 'col-md-'.$cardWidth[$key] }} col-12 card-header-item px-0">
-                <div class="card card-primary mb-1 mb-md-0 mb-lg-0 border-light">
-                    <div class="card-header p-0 mb-2"></div>
-
-                    <div class="card-body">
-                        @if($key === 1)
-                        <div class="form-group d-flex flex-column">
-                            <div class="d-flex align-items-center">
-                                <label class="m-0 mr-1">첨부화일들(이전 업로드 파일 복구 불가)</label>
-                                <button @click="addItem"><i class="fas fa-plus"></i></button>
-                            </div>
-                            <div class="d-flex align-items-center mb-2" v-for="(item, index) in attachedFiles">
-                                <input type="file" @change="handleFileChange(index)"
-                                       class="cursor-pointer rounded w-100 form-control-uniform-custom mr-1" style="text-indent: 0;">
-                                <button @click="removeItem(index)"><i class="fas fa-minus"></i></button>
-                            </div>
-                        </div>
-                        @endif
-
-                        @foreach($chunk as $key => $title)
-                            @empty ($formPost['FormPostVars']['Ui'][$key]) @continue @endempty
-                            <div class="form-group d-flex flex-column mb-2">
-                                <label class="m-0">{{ $title }}</label>
-                            @switch($formPost['FormPostVars']['Ui'][$key])
-                                @case('postType')
-                                    <select id="{{ $key }}" class="rounded w-100"
-                                            maxlength="{{ $formPost['FormPostVars']['MaxLength'][$key] }}"
-                                        {{ $formPost['FormPostVars']['Required'][$key] }}>
-                                    </select>
-                                    @break
-                                @case('select')
-                                    <select id="{{ $key }}" class="rounded w-100"
-                                            maxlength="{{ $formPost['FormPostVars']['MaxLength'][$key] }}"
-                                        {{ $formPost['FormPostVars']['Required'][$key] }}>
-
-                                        @foreach($formPost[$formPost['FormPostVars']['Format'][$key]] as $option)
-                                        <option value="{{ $option['Value'] }}">{{ DataConverter::execute(null, $option['Caption']) ?? $option['Caption'] }}</option>
-                                        @endforeach
-                                    </select>
-                                    @break
-                                @case('checkbox')
-                                    <input type="checkbox" id="{{ $key }}" class="rounded" value="1"
-                                        {{ $formPost['FormPostVars']['Required'][$key] }}>
-                                    @break
-                                @case('text')
-                                    <input type="text" id="{{ $key }}" class="rounded w-100" autocomplete="off"
-                                           maxlength="{{ $formPost['FormPostVars']['MaxLength'][$key] }}"
-                                        {{ $formPost['FormPostVars']['Required'][$key] }}>
-                                    @break
-                                @case('date')
-                                    <input type="date" id="{{ $key }}" class="rounded w-100"
-                                        {{ $formPost['FormPostVars']['Required'][$key] }}>
-                                    @break
-                                @case('time')
-                                    <input type="time" id="{{ $key }}" class="rounded w-100"
-                                        {{ $formPost['FormPostVars']['Required'][$key] }}>
-                                    @break
-                                @case('datetime')
-                                    <input type="text" id="{{ $key }}" name="datetime" class="rounded w-100"
-                                        {{ $formPost['FormPostVars']['Required'][$key] }}>
-                                    @break
-                                @case('editor')
-                                    <div id="modal-memo">
-                                        @include('components.web-editor')
-                                    </div>
-                                    @break
-                                @case('textarea')
-                                    <textarea id="{{ $key }}" maxlength="{{ $formPost['FormPostVars']['MaxLength'][$key] }}"
-                                        {{ $formPost['FormPostVars']['Required'][$key] }}></textarea>
-                                    @break
-                                @case('media')
-                                    <div class="d-flex">
-                                        <input type="hidden" id="{{ $key }}">
-                                        <input type="text" id="{{ $key . '-file-path' }}" class="rounded w-100 radius-r0" autocomplete="off"
-                                               maxlength="{{ $formPost['FormPostVars']['MaxLength'][$key] }}"
-                                            {{ $formPost['FormPostVars']['Required'][$key] }}>
-                                        <button class="text-white rounded border-0 radius-l0 col-3 bg-green-600 border-green-600" onclick="FormPostStandard.show_media_modal()">찾기</button>
-                                    </div>
-                                    <div class="form-post-title">
-                                        <div class="form-post-img-div">
-                                            <img id="{{ $key . '-img' }}" class="mt-2 form-post-img" src="">
-                                        </div>
-                                    </div>
-                                @break
-                                @default
-                            @endswitch
-                            </div>
-                        @endforeach
-
-                    </div>
-                </div>
-            </div>
-        @endforeach
-    </div>
-</div>
-
-<div class="pt-0 mt-1 text-right btn-groups">
-    <div class="btn-group">
-        <button type="button" class="btn btn-sm btn-primary standard-act save-button" data-value="save" {{ $formPost['FormPostVars']['Hidden']['SaveButton'] }}>
-            {{ $formPost['FormPostVars']['Title']['SaveButton'] }}
-        </button>
-        @include('front.dabory.erp.partial.select-btn-options', [
-            'selectBtns' => $formPost['SelectButtonOptions'],
-            'eventClassName' => 'standard-act',
-        ])
-    </div>
-</div>
-
-@once
-@push('js')
-<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
-<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />
-<script src="{{ csset('/js/modals-controller/a-type/common.js') }}"></script>
-<script src="{{ csset('/js/components/web-editor.js') }}"></script>
-    <script>
-        const AttachedFiles = new Vue({
-            el: '#standard-form',
-
-            data: function () {
-                return {
-                    attachedFiles: [null],
-                };
-            },
-
-            computed: {
-            },
-
-            mounted () {
-            },
-
-            methods: {
-                addItem: function () {
-                    this.attachedFiles.push(null)
-                },
-
-                removeItem: function (index) {
-                    return this.attachedFiles.splice(index, 1)
-                },
-
-                handleFileChange: function (index) {
-                    const file = event.target.files[0]; // 파일 선택을 받아옴
-                    this.$set(this.attachedFiles, index, file); // 파일을 배열에 추가
-                },
-
-                save: function () {
-                    console.log(this.attachedFiles)
-                    if (this.attachedFiles.length <= 0 || this.attachedFiles[0] === null) {
-                        return Atype.btn_act_save('#standard-form #frm', function () {
-                            $('#modal-select-popup.show').trigger('list.requery');
-                            $('#modal-select-popup.show').modal('hide');
-                        }, 'FormPostStandard');
-                    }
-
-                    let form = new FormData();
-                    form.append('_token', $('meta[name="csrf-token"]').attr('content'))
-                    form.append('fileCount', this.attachedFiles.length)
-                    this.attachedFiles.forEach((file, index) => {
-                        form.append('file' + index, file)
-                    })
-                    $.ajax({
-                        url: "/post-attached-files",
-                        type:'POST',
-                        data: form,
-                        processData: false,
-                        contentType: false,
-                        success: function(data) {
-                            $('#attached-files').val(data)
-                            Atype.btn_act_save('#standard-form #frm', function () {
-                                $('#modal-select-popup.show').trigger('list.requery');
-                                $('#modal-select-popup.show').modal('hide');
-                            }, 'FormPostStandard');
-                        },
-                    });
-                }
-            }
-        });
-
-        $(document).ready(async function() {
-            let query = ''
-            const postCode = FormPostStandard.formA['General']['PostCode']
-            if (postCode) {
-                query = `post_code='${postCode}'`
-                if (postCode === 'integrated') {
-                    query = `sort = '400'`
-                }
-            }
-            const response = await get_api_data('post-type-page', {
-                PageVars: {
-                    Query: query,
-                    Limit: 100
-                }
-            })
-            $('#PostTypeId').html(window.custom_create_options('Id', 'TypeTitle', response.data.Page));
-
-            mediaModal = await include_media_library('media-body', 'post')
-
-            $('input[name="datetime"]').daterangepicker({
-                locale: {
-                    applyLabel: "확인",
-                    cancelLabel: "취소",
-                    daysOfWeek: ["일", "월", "화", "수", "목", "금", "토"],
-                    monthNames: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
-                    format: "YYYY-MM-DD HH:mm:ss"
-                },
-                drops: 'auto',
-                timePicker24Hour: true,
-                timePicker: true,
-                singleDatePicker: true,
-                showDropdowns: true,
-                applyButtonClasses: "btn-apply"
-            });
-
-            $('#dbupdate-form').find('#dbupdate-date').val(date_to_sting(new Date()))
-
-            $('.standard-act').on('click', function () {
-                switch( $(this).data('value') ) {
-                    case 'save': AttachedFiles.save(); break;
-                    case 'del': FormPostStandard.btn_act_del(); break;
-                    case 'copy': FormPostStandard.btn_act_copy(); break;
-                    case 'new': FormPostStandard.btn_act_new(); break;
-                }
-            });
-
-            $(document).on('file.paste', '#modal-media', function (event, file_url_list, id_list) {
-                $('#MediaId').val(id_list[0])
-                FormPostStandard.set_featured_image(file_url_list[0])
-            });
-        });
-
-        (function( FormPostStandard, $, undefined ) {
-            FormPostStandard.formA = {!! json_encode($formPost) !!}
-
-            FormPostStandard.show_media_modal = function () {
-                $('#modal-media').data('target-id', '')
-                PopupForm1FormBMediaForm.btn_act_new();
-                $('#modal-media-btn').data('target', 'media')
-                $('#modal-media-btn').data('variable', mediaModal)
-                $('#modal-media-btn').trigger('click')
-            }
-
-            FormPostStandard.set_featured_image = function (file_path) {
-                $('#MediaId-file-path').val(file_path)
-                $('#MediaId-img').attr('src', window.env['MEDIA_URL'] + file_path)
-                $('#MediaId-img').prop('hidden', false)
-            }
-
-            FormPostStandard.btn_act_del = function () {
-                Atype.btn_act_del('#standard-form #frm', function () {
-                    $('#modal-select-popup.show').trigger('list.requery');
-                    $('#modal-select-popup.show').modal('hide');
-                }, 'FormPostStandard')
-            }
-
-            FormPostStandard.btn_act_copy = function () {
-                Atype.btn_act_copy('#standard-form #frm', function () {
-                    $('#modal-select-popup.show').trigger('list.requery');
-                    $('#modal-select-popup.show').modal('hide');
-                }, 'FormPostStandard')
-            }
-
-            FormPostStandard.btn_act_new = function () {
-                $('#modal-select-popup .modal-body button').removeClass('bg-grey-700 border-grey-700 bg-grey-700-hover')
-                $('#modal-select-popup .modal-body thead th').removeClass('bg-grey-700')
-                $('#modal-select-popup .modal-header').removeClass('bg-grey-700')
-
-                $('#modal-select-popup .modal-header').addClass('bg-green-600 border-green-600')
-                $('#modal-select-popup .modal-body .btn-group > button').addClass('bg-green-600 border-green-600 bg-green-600-hover')
-
-                $('#modal-select-popup.form-post-standard .modal-dialog').css('maxWidth', FormPostStandard.formA['DisplayVars']['Width'] + 'px');
-                Atype.set_parameter_callback(FormPostStandard.parameter)
-
-                $('#MediaId-img').attr('src', '')
-                $('#MediaId-img').prop('hidden', true)
-
-                $('#standard-form').find('.fr-view').html('')
-                Atype.btn_act_new('#standard-form #frm')
-
-                AttachedFiles.attachedFiles = [ null ]
-            }
-
-            FormPostStandard.parameter = function () {
-                const id = Number($('#standard-form').find('#Id').val())
-                let parameter = { Id: id, UserId: window.User['UserId'], AttachedFiles: $('#attached-files').val() }
-
-                for (const key in FormPostStandard.formA['FormPostVars']['Title']) {
-                    if (isEmpty(FormPostStandard.formA['FormPostVars']['Type'][key])) { continue }
-
-                    let result
-                    const value = $('#standard-form').find(`#${key}`).val()
-                    const format = FormPostStandard.formA['FormPostVars']['Type'][key]
-                    switch (format) {
-                        case 'YYYY-MM-DD': case 'YYYY.MM.DD': case 'YYYYMMDD':
-                        case 'YY-MM-DD': case 'YY.MM.DD': case 'YYMMDD':
-                        case 'yy-mm-dd': case 'yy.mm.dd': case 'yymmdd':
-                            result = moment(value).format(format);
-                            break;
-                        case 'string':
-                            result = String(value)
-                            break;
-                        case 'number':
-                            result = Number(value)
-                            break;
-                        case 'check':
-                            result = $('#standard-form').find(`#${key}`).prop('checked') ? '1': '0'
-                            break;
-                        case 'editor':
-                            const editor = new FroalaEditor("#standard-form #froala-editor", { key: window.env['FROALA_LICENSE_KEY'], attribution: false })
-                            if (editor.codeView.isActive()) {
-                                result = editor.codeView.get()
-                                editor.codeView.toggle()
-                            } else {
-                                result = editor.html.get()
-                            }
-                            break;
-                        default:
-                            break;
-                    }
-
-                    parameter[key] = result
-                }
-
-                if (id < 0) {
-                    parameter = { Id: id }
-                }
-
-                console.log(parameter)
-                return parameter;
-            }
-
-            FormPostStandard.btn_act_new_callback = function () {
-                FormPostStandard.btn_act_new()
-                Atype.set_parameter_callback(FormPostStandard.parameter);
-            }
-
-            FormPostStandard.show_popup_callback = async function (id, c1) {
-                FormPostStandard.btn_act_new()
-                await FormPostStandard.fetch_standard(Number(id));
-            }
-
-            FormPostStandard.fetch_standard = async function (id) {
-                let response = await get_api_data(FormPostStandard.formA['General']['PickApi'], {
-                    QueryVars: {
-                        QueryName: FormPostStandard.formA['General']['QueryName'],
-                        SimpleFilter: `mx.id=${id}`
-                    },
-                    PageVars: {
-                        Limit: 1
-                    }
-                })
-                // console.log(response)
-
-                FormPostStandard.set_standard_ui(response)
-            }
-
-            FormPostStandard.set_standard_ui = async function (response) {
-                if (isEmpty(response.data) || response.data.apiStatus) return;
-                let post = response.data.Page[0];
-                if (post['MediaId']) {
-                    const response = await get_api_data('media-pick', {
-                        Page: [ { Id: Number(post['MediaId']) } ]
-                    })
-
-                    const page = response.data['Page']
-                    if (page) {
-                        const file_url = page[0]['FileUrl']
-                        FormPostStandard.set_featured_image(file_url)
-                    }
-
-                }
-
-                console.log(post)
-                $('#standard-form').find('#Id').val(post.Id)
-                $('#standard-form').find('#attached-files').val(post.AttachedFiles)
-                for (const key in FormPostStandard.formA['FormPostVars']['Title']) {
-                    if (isEmpty(FormPostStandard.formA['FormPostVars']['Ui'][key])) { continue }
-
-                    if (FormPostStandard.formA['FormPostVars']['Ui'][key] === 'editor') {
-                        $('#standard-form').find('.fr-view').html(post[key])
-                    } else if (FormPostStandard.formA['FormPostVars']['Ui'][key] === 'checkbox') {
-                        $('#standard-form').find(`#${key}`).prop('checked', post[key] === '1')
-                    } else {
-                        let value = format_conver_for(post[key], FormPostStandard.formA['FormPostVars']['Format'][key])
-                        $('#standard-form').find(`#${key}`).val(value)
-                    }
-                }
-            }
-
-        }( window.FormPostStandard = window.FormPostStandard || {}, jQuery ));
-
-        let mediaModal
-    </script>
-@endpush
-@endonce

+ 5 - 6
erp/resources/views/popup/popup-form1/form-a/post/sise-form.blade.php

@@ -150,11 +150,11 @@
                     Id: id,
                     PostTypeId: 59,
                     PostTitle: $(sise_form).find('#membership-name-txt').val(),
-                    Pc1: $(sise_form).find('input[name=sisetype]:checked').val(),
+                    Pc5: $(sise_form).find('input[name=sisetype]:checked').val(),   //
                     Pc2: $(sise_form).find('#area-select').val(),
                     Pc3: $(sise_form).find('#today-price-txt').val(),
                     Pc4: $(sise_form).find('#yesterday-price-txt').val(),
-                    Pc5: $(sise_form).find('#membership-code-txt').val(),
+                    Pc1: $(sise_form).find('#membership-code-txt').val(),
                 }
                 if (id < 0) {
                     parameter = { Id: id }
@@ -164,7 +164,6 @@
             }
 
             PopupPopupForm1FormAPostSiseForm.fetch_sise = async function (id) {
-                console.log('fetch_sise_id : ', id);
                 const response = await get_api_data(PopupPopupForm1FormAPostSiseForm.formA['General']['PickApi'], {
                     Page: [ { Id: id } ]
                 })
@@ -207,13 +206,13 @@
                 const sise_form = $('#sise-form')
                 $(sise_form).find('#Id').val(sise.Id)
                 $(sise_form).find('#membership-name-txt').val(sise.PostTitle)
-                $(sise_form).find(`input[name='sisetype'][value='${sise.Pc1}']`).prop('checked', true)
+                $(sise_form).find(`input[name='sisetype'][value='${sise.Pc5}']`).prop('checked', true)
                 $(sise_form).find('#area-select').val(sise.Pc2)
                 $(sise_form).find('#today-price-txt').val(sise.Pc3)
                 $(sise_form).find('#yesterday-price-txt').val(sise.Pc4)
-                $(sise_form).find('#membership-code-txt').val(sise.Pc5)
+                $(sise_form).find('#membership-code-txt').val(sise.Pc1)
 
-                PopupPopupForm1FormAPostSiseForm.change_option(sise.Pc1, sise.Pc2);
+                PopupPopupForm1FormAPostSiseForm.change_option(sise.Pc5, sise.Pc2);
             }
 
         }( window.PopupPopupForm1FormAPostSiseForm = window.PopupPopupForm1FormAPostSiseForm || {}, jQuery ));

+ 26 - 25
erp/resources/views/popup/popup-form1/form-insert/form-insert.blade.php → erp/resources/views/popup/popup-form1/form-insert.blade.php

@@ -1,3 +1,4 @@
+
 <div class="mb-1 pt-2 text-right btn-groups">
     <div class="btn-group">
         <button type="button" class="btn btn-sm btn-primary itech21-customer-insert-act save-button" data-value="save" {{ $formInsert['FormVars']['Hidden']['SaveButton'] }}>
@@ -50,18 +51,18 @@
             $('.itech21-customer-insert-act').on('click', function () {
                 // console.log($(this).data('value'))
                 switch( $(this).data('value') ) {
-                    case 'save': PopupForm1FormInsert.btn_act_save(); break;
+                    case 'save': PopupPopupForm1FormInsert.btn_act_save(); break;
                 }
             });
         });
 
-        (function( PopupForm1FormInsert, $, undefined ) {
-            PopupForm1FormInsert.formInsert = {!! json_encode($formInsert) !!};
-            PopupForm1FormInsert.parentParameter = {};
-            PopupForm1FormInsert.tdCount = 0
+        (function( PopupPopupForm1FormInsert, $, undefined ) {
+            PopupPopupForm1FormInsert.formInsert = {!! json_encode($formInsert) !!};
+            PopupPopupForm1FormInsert.parentParameter = {};
+            PopupPopupForm1FormInsert.tdCount = 0
 
-            PopupForm1FormInsert.btn_act_save = async function () {
-                if (PopupForm1FormInsert.tdCount === 0  || isEmpty(PopupForm1FormInsert.parentParameter['ListType1Vars']['ListToken'])) {
+            PopupPopupForm1FormInsert.btn_act_save = async function () {
+                if (PopupPopupForm1FormInsert.tdCount === 0  || isEmpty(PopupPopupForm1FormInsert.parentParameter['ListType1Vars']['ListToken'])) {
                     iziToast.error({
                         title: 'Error',
                         message: '엑셀화일을 먼저 업로드 해주세요',
@@ -71,17 +72,17 @@
 
                 const form_insert = $('#form-insert')
 
-                const response = await get_api_data(PopupForm1FormInsert.formInsert['General']['ActApi'], {
+                const response = await get_api_data(PopupPopupForm1FormInsert.formInsert['General']['ActApi'], {
                     InsertVars: {
-                        QueryName: PopupForm1FormInsert.formInsert['InsertVars']['QueryName'],
-                        InsertType: PopupForm1FormInsert.formInsert['InsertVars']['InsertType'],
-                        ListToken: PopupForm1FormInsert.parentParameter['ListType1Vars']['ListToken'],
+                        QueryName: PopupPopupForm1FormInsert.formInsert['InsertVars']['QueryName'],
+                        InsertType: PopupPopupForm1FormInsert.formInsert['InsertVars']['InsertType'],
+                        ListToken: PopupPopupForm1FormInsert.parentParameter['ListType1Vars']['ListToken'],
                         IsTruncateTable: $(form_insert).find('#truncate-table-check:checked').val() == '1',
                         IsBackupTable: $(form_insert).find('#backup-table-check:checked').val() == '1',
                         IsBackupDb: $(form_insert).find('#is-backup-db-check:checked').val() == '1',
 
-                        PreProcess: PopupForm1FormInsert.formInsert['InsertVars']['PreProcess'] ?? '',
-                        PostProcess: PopupForm1FormInsert.formInsert['InsertVars']['PostProcess'] ?? '',
+                        PreProcess: PopupPopupForm1FormInsert.formInsert['InsertVars']['PreProcess'] ?? '',
+                        PostProcess: PopupPopupForm1FormInsert.formInsert['InsertVars']['PostProcess'] ?? '',
                     }
                 })
 
@@ -105,7 +106,7 @@
                 // })
             }
 
-            PopupForm1FormInsert.btn_act_new = function () {
+            PopupPopupForm1FormInsert.btn_act_new = function () {
                 $('#modal-multi-popup .modal-dialog').css('maxWidth', '800px');
 
                 $('#modal-multi-popup .modal-header').removeClass('bg-dark-alpha px-0')
@@ -114,27 +115,27 @@
                 $('#modal-multi-popup .modal-body button').addClass('bg-danger-10 border-danger-10 bg-danger-10-hover')
                 $('#modal-multi-popup .modal-header').addClass('bg-danger-10')
 
-                if (! PopupForm1FormInsert.formInsert['ConditionVars']['IsVisible']) {
+                if (! PopupPopupForm1FormInsert.formInsert['ConditionVars']['IsVisible']) {
                     $('#modal-multi-popup').on('show.bs.modal', function (e) { e.preventDefault(); })
-                    PopupForm1FormInsert.btn_act_save()
+                    PopupPopupForm1FormInsert.btn_act_save()
                 }
 
                 Atype.btn_act_new('#form-insert #frm')
 
                 const form_insert = $('#form-insert')
 
-                $(form_insert).find('#truncate-table-check').prop('checked', PopupForm1FormInsert.formInsert['InsertVars']['IsTruncateTable'])
-                $(form_insert).find('#backup-table-check').prop('checked', PopupForm1FormInsert.formInsert['InsertVars']['IsBackupTable'])
-                $(form_insert).find('#is-backup-db-check').prop('checked', PopupForm1FormInsert.formInsert['InsertVars']['IsBackupDb'])
+                $(form_insert).find('#truncate-table-check').prop('checked', PopupPopupForm1FormInsert.formInsert['InsertVars']['IsTruncateTable'])
+                $(form_insert).find('#backup-table-check').prop('checked', PopupPopupForm1FormInsert.formInsert['InsertVars']['IsBackupTable'])
+                $(form_insert).find('#is-backup-db-check').prop('checked', PopupPopupForm1FormInsert.formInsert['InsertVars']['IsBackupDb'])
             }
 
-            PopupForm1FormInsert.show_popup_callback = async function (parent_parameter, parameter, td_count) {
-                PopupForm1FormInsert.tdCount = td_count
-                PopupForm1FormInsert.btn_act_new()
-                PopupForm1FormInsert.formInsert = parameter
-                PopupForm1FormInsert.parentParameter = parent_parameter
+            PopupPopupForm1FormInsert.show_popup_callback = async function (parent_parameter, parameter, td_count) {
+                PopupPopupForm1FormInsert.tdCount = td_count
+                PopupPopupForm1FormInsert.btn_act_new()
+                PopupPopupForm1FormInsert.formInsert = parameter
+                PopupPopupForm1FormInsert.parentParameter = parent_parameter
             }
-        }( window.PopupForm1FormInsert = window.PopupForm1FormInsert || {}, jQuery ));
+        }( window.PopupPopupForm1FormInsert = window.PopupForm1FormInsert || {}, jQuery ));
     </script>
 @endpush
 @endonce

+ 66 - 29
pro/app/Http/Controllers/Auth/SocialTalkController.php

@@ -1,45 +1,82 @@
 <?php
 namespace Themes\kbgolf\pro\app\Http\Controllers\Auth;
 
-use App\Services\CallApiService;
 use App\Http\Controllers\Controller;
-use Themes\kbgolf\pro\app\Services\SocialService;
+use Illuminate\Support\Facades\Redirect;
+use SocialiteProviders\Apple\Provider;
+use Laravel\Socialite\Facades\Socialite;
+use Laravel\Socialite\Two\GoogleProvider;
+use Laravel\Socialite\Two\FacebookProvider;
+use SocialiteProviders\Kakao\KakaoProvider;
+use App\Providers\Socialite\OAuth2\DaboryProvider;
+use SocialiteProviders\Naver\Provider as NaverProvider;
 use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Log;
 
 class SocialTalkController extends Controller
 {
-    protected $socialService;
+    private $appleTokenService;
+    private $oauth2Info;
+    private $target;
 
-    public function __construct(SocialService $socialService)
+    public function redirectToProvider($provider)
     {
-        $this->socialService = $socialService;
+        $this->oauth2Info = request('oauth2Info');
+        // dump($this->oauth2Info);
+        return $this->setConfig($provider, request('target'))->redirect();
     }
 
-    public function sendMessage(Request $request)
+    public function login($provider)
     {
-        Log::debug($request);
-        $validatedData = $request->validate([
-            'channel_id' => 'required|string',
-            'template_object.text' => 'required|string',
-            'link_url' => 'nullable|url',
-        ]);
-        // Log::debug('검증: ' . json_encode($validatedData));
-
-        try {
-            $response = $this->socialService->sendMessage(
-                $validatedData['channel_id'],
-                [
-                    'message' => $validatedData['template_object']['text'],
-                    'link_url' => $validatedData['link_url'] ?? null,
-                ]
-            );
-            // Log::debug('결과: ' . $response);
-            return response()->json(['success' => true, 'message' => '메시지가 성공적으로 전송되었습니다.', 'response' => json_decode($response)]);
-        } catch (ValidationException $e) {
-            return response()->json(['success' => false, 'message' => '유효성 검사 오류입니다.', 'errors' => $e->errors()]);
-        } catch (Exception $e) {
-            return response()->json(['success' => false, 'message' => '메시지 전송에 실패했습니다.', 'error' => $e->getMessage()]);
+        [$this->target, $ssoBrand] = explode('-', $provider);
+        if ($this->target == 'member') {
+            if ($ssoBrand == 'naver') {
+                return Redirect::away('https://talk.naver.com/ct/w5ubd2');
+            }elseif($ssoBrand == 'kakao'){
+                return Redirect::away('https://pf.kakao.com/_aAAGj/chat');
+            }
         }
     }
+
+    public function setConfig($provider, $target)
+    {
+        $config = [
+            'client_id' => $this->oauth2Info['ClientId'],
+            'client_secret' => $this->oauth2Info['ClientSecret'],
+            'redirect' => "/social/$target-$provider/callback"
+        ];
+
+        switch ($provider) {
+            case 'dabory':
+                $driver = Socialite::buildProvider(DaboryProvider::class, [
+                    'client_id' => config('app.api.main.ClientId'),
+                    'client_secret' => config('app.api.main.ClientSecret'),
+                    'redirect' => $config['redirect']
+                ]);
+                break;
+            case 'facebook':
+                $driver = Socialite::buildProvider(FacebookProvider::class, $config);
+                break;
+            case 'kakao':
+                $driver = Socialite::buildProvider(KakaoProvider::class, $config);
+                break;
+            case 'google':
+                $driver = Socialite::buildProvider(GoogleProvider::class, $config);
+                break;
+            case 'naver':
+                $driver = Socialite::buildProvider(NaverProvider::class, $config);
+                break;
+            case 'apple':
+
+                $config['client_secret'] = $this->appleTokenService->generate(
+                    $this->oauth2Info['PrivateKey'],
+                    $this->oauth2Info['ClientId'],
+                    $this->oauth2Info['TeamId'],
+                    $this->oauth2Info['KeyId'],
+                );
+
+                $driver = Socialite::buildProvider(Provider::class, $config);
+                break;
+        }
+        return $driver;
+    }
 }

+ 3 - 1
pro/app/Http/Controllers/IndexController.php

@@ -21,6 +21,8 @@ class IndexController extends Controller
 
     public function index()
     {
+        // [$oauth2InfoList, $develLoginInfo] = setupSsoClientOrLoginInfo('member');
+        // dump($oauth2InfoList);
         $connectionDevice = session()->get('ConnectionDevice');
         $response = ProApiCacheFacade::getCachedResponse('list-type1-book', 'list-type1/home-book');
 
@@ -34,7 +36,7 @@ class IndexController extends Controller
         // dd($maMainSlider);
         $seoHtml = Utils::getSeoHtml('main');
         $query = "post_type_id = 59";
-        $limit = (int)request('limit', 36);
+        $limit = (int)request('limit', 150);
         $page = (int)request('page', 1);
 
         // 시세

+ 0 - 1
pro/app/Http/Controllers/Page/ContactUsCustomController.php

@@ -33,7 +33,6 @@ class ContactUsCustomController extends Controller
 
     public function index($id=null)
     {
-
         $query = "post_type_id = 58";
         $limit = (int)request('limit', 12);
         $page = (int)request('page', 1);

+ 2 - 1
pro/app/Http/Controllers/Page/SiseController.php

@@ -34,7 +34,7 @@ class SiseController extends Controller
                 $title = "휘트니스회원권 시세";
         }
 
-        $query = "post_type_id = 59 and pc1='$siseType'";
+        $query = "post_type_id = 59 and pc5='$siseType'";
         if($area){
             if($area != 'all'){
                 // switch ($area) {
@@ -98,6 +98,7 @@ class SiseController extends Controller
             ['path' => request()->url()]
         );
 
+
         return view('views.page.sise', compact('siseList', 'siseItems', 'title', "title_dir", "siseType", "area"));
     }
 

+ 55 - 25
pro/app/Services/SocialService.php

@@ -14,32 +14,62 @@ class SocialService
         $this->restApiKey = env('KAKAO_REST_API_KEY');
     }
 
-    public function sendMessage($channelId, $args)
-    {
-        Log::debug('channelId: ' . $channelId);
-        // Log::debug('args: ' . json_decode($args));
-        $client = new Client([
-            'base_uri' => $this->apiUrl,
-            'headers' => [
-                'Authorization' => 'KakaoAK ' . $this->restApiKey,
-                'Content-Type' => 'application/json',
-            ],
-        ]);
-        // Log::debug('결과: ' . $response);
-        // $response = $client->post('/v1/api/talk/channel/' . $channelId . '/message', [
-        $response = $client->post('/v1/api/talk/channels/' . $channelId . '/message', [
-            'json' => [
-                'template_object' => [
-                    'object_type' => 'text',
-                    'message' => $args['message'],
-                    'link' => [
-                        'web_url' => $args['link_url'],
-                    ],
-                ],
-            ],
+    // public function sendMessage($channelId, $args)
+    // {
+    //     Log::debug('channelId: ' . $channelId);
+    //     // Log::debug('args: ' . json_decode($args));
+    //     $client = new Client([
+    //         'base_uri' => $this->apiUrl,
+    //         'headers' => [
+    //             'Authorization' => 'KakaoAK ' . $this->restApiKey,
+    //             'Content-Type' => 'application/json',
+    //         ],
+    //     ]);
+    //     // Log::debug('결과: ' . $response);
+    //     // $response = $client->post('/v1/api/talk/channel/' . $channelId . '/message', [
+    //     $response = $client->post('/v1/api/talk/channels/' . $channelId . '/message', [
+    //         'json' => [
+    //             'template_object' => [
+    //                 'object_type' => 'text',
+    //                 'message' => $args['message'],
+    //                 'link' => [
+    //                     'web_url' => $args['link_url'],
+    //                 ],
+    //             ],
+    //         ],
+    //     ]);
+    //     dd($response);
+
+    //     return $response->getBody()->getContents();
+    // }
+
+    public function handleService()
+{
+    // GuzzleHttp 클라이언트 생성
+    $client = new \GuzzleHttp\Client();
+
+    try {
+        // POST 요청 보내기
+        $response = $client->post('https://kbgolf.daboryhost.com/naver-talk-talk', [
+            'json' => ['event' => 'test'],
         ]);
-        dd($response);
 
-        return $response->getBody()->getContents();
+        // 응답 본문 가져오기
+        $body = $response->getBody();
+        $content = $body->getContents();
+
+        // 여기서 $content 변수에는 API 서버에서 반환한 데이터가 포함됩니다.
+        // 필요한 후속 처리를 수행할 수 있습니다.
+
+        // 예: JSON 형식의 응답을 배열로 변환하여 사용할 수 있음
+        $responseData = json_decode($content, true);
+
+        // 반환된 데이터 확인
+        print_r($responseData);
+
+    } catch (\GuzzleHttp\Exception\RequestException $e) {
+        // 예외 처리: 요청이 실패한 경우
+        echo "Request failed: " . $e->getMessage();
     }
 }
+}

+ 4 - 2
pro/resources/css/style.css

@@ -4189,7 +4189,7 @@ label.check_box:last-of-type {margin-right:0;}
     list-style: none;
 }
 
-.page-item {margin-left: 10px; font-size:inherit;}
+.page-item {margin-left: 10px; padding:0!important; font-size:inherit;}
 
 .page-item:first-child .page-link,
 .page-item:nth-of-type(2) .page-link,
@@ -4204,7 +4204,8 @@ label.check_box:last-of-type {margin-right:0;}
 
 .page-link {
   width: 40px;
-  height: 40px;
+  height: 40px!important;
+  margin-top:0!important; padding:0!important;
   line-height: 40px;
   text-align: center;
   border-radius: 50%;
@@ -4229,6 +4230,7 @@ label.check_box:last-of-type {margin-right:0;}
 }
 .page-item.disabled .page-link {font-size: inherit;   line-height: 35px;}
 
+
 /*faq*/
 .faq-part {margin-bottom:var(--btm-space);}
 .faq-child {

+ 61 - 20
pro/resources/views/index.blade.php

@@ -44,16 +44,20 @@
 </div>
 <!--// 회원권 매매 신청 끝 -->
 
+
+@php $today = date('Y-m-d'); @endphp
 <!-- 시세 시작 -->
 <div class="m_quote">
 	<div class="container">
+        <div class="tabs today">
+            <input type="date" id="search_date" value="{{$today}}" autocomplete="off">
+        </div>
 		<ul class="tabs nav nav-tabs">
 			<li class="active"><a data-toggle="tab" data-sise="golf" href="#" onclick="changeSiseList(this)">골프 시세</a></li>
 			<li><a data-toggle="tab" href="#" data-sise="condo" onclick="changeSiseList(this)">콘도 시세</a></li>
 			<li><a data-toggle="tab" href="#" data-sise="fitness" onclick="changeSiseList(this)">휘트니스 시세</a></li>
 		</ul>
 		<div class="tab-content">
-			<!-- 골프 -->
 			<div id="golf" class="tab-pane fade in active show">
 				<div class="tb_res tb_vertical">
 					<table cellspacing="0" cellpadding="0">
@@ -134,40 +138,54 @@
 <!--// 블로그 끝 -->
 
 <script>
-currentSiseType = 'golf';
+var currentSiseType = 'golf';
+var filteredSiseList = [];
 $(document).ready(function() {
+    var date = dateFormat(document.getElementById('search_date').value);
+    console.log('date: ', date);
+    filteredSiseList = searchDate(date, currentSiseType);
+    renderMainSiseList(filteredSiseList);
+
+    // console.log('초기값 : ', filteredSiseList);
     // console.log('mainYoutubeList : ',mainYoutubeList);
     // 필터링된 리스트를 렌더링하는 함수 호출
-    changeSiseListByDefault(currentSiseType);
+    // changeSiseListByDefault(currentSiseType);
 	$('.main-header').addClass('main_header');
 	$('.main-header .logo img').attr("src", "/themes/kbgolf/pro/resources/images/logo_wh.png");
 });
 
+document.getElementById('search_date').addEventListener('change', function() {
+    var date = dateFormat(document.getElementById('search_date').value);
+    console.log('date: ', date);
+    //currentSiseType = $(e).attr('data-sise');
+    filteredSiseList = searchDate(date, currentSiseType);
+    // console.log('filteredSiseList : ', filteredSiseList);
+    renderMainSiseList(filteredSiseList);
+});
+
 // siseType별로 tbody 생성
 function changeSiseList(e) {
-    // 다른 li태그 active class 제거
     $('.tabs li').removeClass('active');
-    // 클릭한 태그의 li active class 추가
     $(e).parent().addClass('active');
 
     currentSiseType = $(e).attr('data-sise');
-    var filteredSiseList = mainSiseList.filter(function(mainsise) {
-        return mainsise['Pc1'].includes(currentSiseType);
+    filteredSiseList_with_sise = filteredSiseList.filter(function(mainsise) {
+        return mainsise['Pc5'].includes(currentSiseType);
     });
 
-    renderMainSiseList(filteredSiseList);
+    renderMainSiseList(filteredSiseList_with_sise);
     // sise 더보기 버튼 list를 change할 때마다 활성화
     $('.m_quote .btn_wrap .m_more').show();
 }
 // defalut 가져오기
-function changeSiseListByDefault(currentSiseType) {
-    var filteredSiseList = mainSiseList.filter(function(mainsise) {
-        return mainsise['Pc1'].includes(currentSiseType);
-    });
-    renderMainSiseList(filteredSiseList);
-    // sise 더보기 버튼 list를 change할 때마다 활성화
-    $('.m_quote .btn_wrap .m_more').show();
-}
+// function changeSiseListByDefault(currentSiseType) {
+//     filteredSiseList_with_sise = filteredSiseList.filter(function(mainsise) {
+//         return mainsise['Pc5'].includes(currentSiseType);
+//     });
+//     renderMainSiseList(filteredSiseList_with_sise);
+//     // sise 더보기 버튼 list를 change할 때마다 활성화
+//     $('.m_quote .btn_wrap .m_more').show();
+// }
 
 // tbody 생성
 function renderMainSiseList(siseList){
@@ -205,8 +223,8 @@ function renderMainSiseList(siseList){
             <td data-label="상담신청">
                 <button type="button" class="btn consult-btn"
                     data-post-title="${sise['PostTitle']}"
-                    data-pc1="${sise['Pc1']}"
-                    onclick="window.location.href = '/contactus-custom/${sise['Pc1']}/${encodeURIComponent(sise['PostTitle'])}'">상담신청
+                    data-pc5="${sise['Pc5']}"
+                    onclick="window.location.href = '/contactus-custom/${sise['Pc5']}/${encodeURIComponent(sise['PostTitle'])}'">상담신청
                 </button>
             </td>
         `);
@@ -319,8 +337,8 @@ function renderMainSiseList(siseList){
                 <td data-label="상담신청">
                     <button type="button" class="btn consult-btn"
                             data-post-title="${sise['PostTitle']}"
-                            data-pc1="${sise['Pc1']}"
-                            onclick="window.location.href = '/contactus-custom/${sise['Pc1']}/${encodeURIComponent(sise['PostTitle'])}'">상담신청
+                            data-pc5="${sise['Pc5']}"
+                            onclick="window.location.href = '/contactus-custom/${sise['Pc5']}/${encodeURIComponent(sise['PostTitle'])}'">상담신청
                     </button>
                 </td>
             `);
@@ -369,6 +387,20 @@ function contactForMembership(){
     window.location.href = url;
 }
 
+function searchDate(date, currentSiseType){
+    if(currentSiseType){
+        return mainSiseList.filter(function(siseFormDate) {
+            var dateMatch = date ? (siseFormDate['Pc6'] && siseFormDate['Pc6'] === date) : true;
+            var typeMatch = siseFormDate['Pc5'].toLowerCase().includes(currentSiseType);
+            return dateMatch && typeMatch;
+        });
+    }
+    return mainSiseList.filter(function(siseFormDate) {
+        var dateMatch = date ? (siseFormDate['Pc6'] && siseFormDate['Pc6'] === date) : true;
+        return dateMatch;
+    });
+}
+
 var swiper = new Swiper(".main_visual .swiper", {
 	loop: true,
 	autoplay: {
@@ -397,6 +429,15 @@ function truncateText(text, maxLength, suffix = '...') {
     return text.substr(0, maxLength) + suffix;
 }
 
+function dateFormat(date){
+    var formattedDate = '';
+    if (date) {
+        var parts = date.split('-');
+        formattedDate = parts.join('');
+    }
+    return formattedDate;
+}
+
 const mainSiseList = {!! json_encode($mainSiseList['Page']) !!};
 const mainYoutubeList = {!! json_encode($mainYoutubeList['Page']) !!};
 const mainBlogList = {!! json_encode($mainBlogList['Page']) !!};

+ 41 - 34
pro/resources/views/layouts/master.blade.php

@@ -4,10 +4,13 @@
     <script src="{{ csset('/js/plugins/vue/vue@2.6.11.js') }}"></script>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
     <meta name="csrf-token" content="{{ csrf_token() }}">
 	<meta property="og:image" content="/public/themes/kbgolf/pro/resources/images/og_img.png">
     <script src="https://t1.kakaocdn.net/kakao_js_sdk/2.1.0/kakao.min.js" integrity="sha384-dpu02ieKC6NUeKFoGMOKz6102CLEWi9+5RQjWSV0ikYSFFd8M3Wp2reIcquJOemx" crossorigin="anonymous"></script>
+    <script src="https://static.nid.naver.com/js/naveridlogin_js_sdk_2.0.1.js"></script>
+
     @stack('meta')
 
     @php $seoHtml = App\Helpers\Utils::getSeoHtml(); @endphp
@@ -71,18 +74,17 @@
 						</dd>
 					</dl>
 				</li>
-				<li>
-					<button type="button" class="show-widget-btn" data-widget="coupon">
-						<img src="/themes/kbgolf/pro/resources/images/icn_navertalk.png" alt="네네이버 톡톡">
-						<p class="txt">네이버 톡톡</p>
-					</button>
-				</li>
-				<li>
-					<button type="button" class="show-widget-btn" id="kakao-plus-friend-btn" data-widget="contact-us">
-						<img src="/themes/kbgolf/pro/resources/images/icn_kakaotalk.png" alt="카톡 플러스 친구">
-						<p class="txt">카톡 플러스 친구</p>
-					</button>
-				</li>
+
+                <li>
+                    <button type="button" id="naver-login-button" class="show-widget-btn" data-widget="naver">
+                    <img src="themes/kbgolf/pro/resources/images/icn_navertalk.png" alt="naver">
+                    <p class="txt">네이버 톡톡</p>
+                </li>
+                <li>
+                    <button type="button" id="kakao-login-button" class="show-widget-btn" data-widget="kakao">
+                    <img src="themes/kbgolf/pro/resources/images/icn_kakaotalk.png" alt="kakao">
+                    <p class="txt">카카오 플러스 친구</p>
+                </li>
                 <li>
                     <button type="button" class="return-to-top">
                         <span class="ico ico-top"></span>
@@ -131,9 +133,6 @@
 </body><!-- End of .page_wrapper -->
 
 <script>
-    window.apiKey = {
-        KAKAO_REST_API_KEY: "{{ env('KAKAO_REST_API_KEY') }}"
-    };
     window.env = (@json($_ENV));
     window.Member = @json(session('member'));
     window.CodeTitle = @json($codeTitle ?? '');
@@ -142,32 +141,40 @@
 {{--<script src="{{ asset('/dabory/js/widget.js?serverUrl=https://safebanner.daboryhost.com&api23Key=XJAL+1IF4/EgIVcuTvcAOoH9ASKjnQje71boZaGpzwVyVcCoVRsxzyMee5goucaC6cWxzLdEcYfIkfj6bLukvs9+lOeUa3CLqpCbhd7v99Bxm011kxUllDLY8/NrXFVn8aa1e57jygREHo7xF2LWOJ9LHc2idRmQ9rXbI46sgiZBwPmi6E/mACBIjUcKq+uviA==') }}"></script>--}}
 
 <script>
-    Kakao.init(window.apiKey.KAKAO_REST_API_KEY); // 여기에 실제 앱 키를 입력하세요.
+    Kakao.init(window.env.KAKAO_JAVASCRIPT_KEY);
     $(document).ready(function () {
         // $.fn.widget.loadModule(function () {
         //     $('#quick-launcher').quick()
         // })
 
-        // $('#kakao-plus-friend-btn').on('click', function() {
-        //     var channelId = '_aAAGj';
-        //     var appKey = window.apiKey.KAKAO_REST_API_KEY;
-        //     var origin = encodeURIComponent(window.location.origin);
-        //     var referer = encodeURIComponent(window.location.href);
-        //     var kakaoAgent = encodeURIComponent('sdk/2.1.0 os/javascript sdk_type/javascript lang/ko-KR device/Win32 origin/' + origin);
-        //     var redirectUri = `https://pf.kakao.com/${channelId}/chat?api_ver=1.1&kakao_agent=${kakaoAgent}&app_key=${appKey}&referer=${referer}`;
-
-        //     if (Kakao.Auth.getAccessToken()) {
-        //         window.open(redirectUri, '_blank');
-        //     } else {
-        //         Kakao.Auth.authorize({
-        //             redirectUri: redirectUri
-        //         });
-        //     }
-        // });
-
-
+        $('.show-widget-btn').on('click', function() {
+            var widgetType = $(this).data('widget');
+            socialLogin(widgetType);
+        });
     });
 
+    function socialLogin(widgetType){
+        if(widgetType == 'naver'){
+            var apiUrl = 'https://nid.naver.com/oauth2.0/authorize?response_type=code&client_id=' +
+                            window.env.NAVER_CLIENT_ID + '&redirect_uri=' +
+                            window.env.NAVER_CALLBACK_URL + '&state=' + generateState();
+            var popup = window.open(apiUrl, '_blank', 'width=600,height=600');
+
+        }else if(widgetType == 'kakao'){
+            var apiUrl = 'https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=' +
+                            window.env.KAKAO_JAVASCRIPT_KEY + '&redirect_uri=' +
+                            window.env.KAKAO_CALLBACK_URL + '&state=' + generateState();
+            var popup = window.open(apiUrl, '_blank', 'width=600,height=600');
+        }
+    }
+
+    function generateState() {
+        var mt = new Date().getTime().toString();
+        var rand = Math.random().toString(36).substr(2);
+        var stateValue = mt + rand;
+        var encodedState = encodeURIComponent(stateValue); // URL 인코딩
+        return encodedState;
+    }
 
 </script>
 

+ 1 - 1
pro/resources/views/page/contactus-custom-list.blade.php

@@ -94,7 +94,7 @@
 
 <script>
     $(document).ready(function() {
-        const contactUsCustomList = {!! json_encode($contactUsCustomList['Page']) !!}; // JavaScript에서 PHP 배열을 변환하여 변수에 할당
+        const contactUsCustomList = {!! json_encode($contactUsCustomList['Page']) !!};
         $('.open-modal').click(function(e) {
             e.preventDefault();
             var contactUsCustomId = $(this).data('id');

+ 2 - 1
pro/resources/views/page/contactus-custom.blade.php

@@ -74,6 +74,7 @@
 			</div>
 			<div class="term_wrap">
 				<pre>
+                {!! $policy['PostContents'] ?? '' !!}
 개인정보의 보유 및 이용 기간
 
 이용자의 개인정보는 원칙적으로 개인정보의 수집 및 이용목적이 달성되면 즉시 파기합니다.단,다음의 정보에 대해서는 아래의 이유로 명시한 기간까지 보존합니다.
@@ -167,7 +168,7 @@ chd1706@naver.com
 	<div class="container">
 		<div class="guide">※ 모든 항목을 올바르게 입력하셔야 문의하기 버튼이 활성화 됩니다.</div>
 	    <div class="captcha_wrap d-flex flex-column">
-                    <div id="captcha" class="g-recaptcha mb-3 mb-md-0" data-sitekey="6LeOP1wkAAAAAKp2uLahTyy3ID6Sp4F3CgcOI0u0"></div>
+                    <div id="captcha" class="g-recaptcha mb-3 mb-md-0" data-sitekey="6LdEDgcqAAAAAFB0ti6Jwq1jH8nltyjBIcnqHJ5M"></div>
 			<div class="captch_box">
 			    <div class="d-flex modal-body px-0 m-auto py-5">
 			        <div class="form-group mb-1">

+ 1 - 1
pro/resources/views/page/map.blade.php

@@ -38,7 +38,7 @@
 			<dd>Mobile : 010-5217-7054</dd>
 			<dd>E-mail : <a href="chd1706@naver.com">chd1706@naver.com</a></dd>
 		</dl>
-			
+
 	</div>
 </div>
 

+ 35 - 11
pro/resources/views/page/sise.blade.php

@@ -4,6 +4,7 @@
 @php
     //var_dump($siseList['Page']);
     //var_dump($siseItems)
+    $today = date('Y-m-d');
 @endphp
 
 <div class="sub golf">
@@ -21,6 +22,7 @@
 		<div class="container">
 			<label>회원권 검색</label>
 			<input type="text" id="membership-name" placeholder="회원권명">
+            <input type="date" id="date" value="{{$today}}">
 			<button type="button" class="btn" onclick="searchMemberShip()">검색</button>
 		</div>
 	</div>
@@ -31,11 +33,11 @@
 		<div class="container">
 			<ul class="tabs nav nav-tabs">
                 <li class="{{ request('area', 'all') === 'all' ? 'active' : '' }}"><a href="{{ route('sise', [$siseType, 'all']) }}">전체</a></li>
-                @if($siseType == 'golf')
+                @if($siseType === 'golf')
                     <li class="{{ request('area', 'all') === '100' ? 'active' : '' }}"><a href="{{ route('sise', [$siseType, '100']) }}">수도권/강원/충청권</a></li>
                     <li class="{{ request('area', 'all') === '200' ? 'active' : '' }}"><a href="{{ route('sise', [$siseType, '200']) }}">영남/제주권</a></li>
                     <li class="{{ request('area', 'all') === '300' ? 'active' : '' }}"><a href="{{ route('sise', [$siseType, '300']) }}">호남권</a></li>
-                @elseif($siseType == 'condo')
+                @elseif($siseType === 'condo')
                     <li class="{{ request('area', 'all') === '400' ? 'active' : '' }}"><a href="{{ route('sise', [$siseType, '400']) }}">체인형콘도</a></li>
                     <li class="{{ request('area', 'all') === '500' ? 'active' : '' }}"><a href="{{ route('sise', [$siseType, '500']) }}">스키장콘도</a></li>
                 @else
@@ -73,7 +75,7 @@
                                         </td>
                                         <td data-label="상담신청">
                                             <button type="button" class="btn consult-btn"
-                                                    onclick="window.location.href = '{{ route('contactus-custom', [$sise['Pc1'], $sise['PostTitle']]) }}'">상담신청
+                                                    onclick="window.location.href = '{{ route('contactus-custom', [$sise['Pc5'], $sise['PostTitle']]) }}'">상담신청
                                             </button>
                                         </td>
                                     </tr>
@@ -116,15 +118,37 @@
     // 회원권 검색
     function searchMemberShip() {
         var membershipName = document.getElementById('membership-name').value.toLowerCase();
-        if (!membershipName) {
-            alert('회원권명을 입력해주세요.');
-            return;
+        var date = document.getElementById('date').value;
+        // console.log('date : ', date);
+        // if (!membershipName) {
+        //     alert('회원권명을 입력해주세요.');
+        //     return;
+        // }
+
+        var formattedDate = '';
+        if (date) {
+            var parts = date.split('-');
+            formattedDate = parts.join('');
         }
-        // console.log('siseList : ', siseList);
+
+        console.log('siseList : ', siseList);
+        if(siseList == null){
+            alert('회원권이 존재하지 않습니다');
+        }
+
         var filteredSiseList = siseList.filter(function(sise) {
-            return sise['PostTitle'].toLowerCase().includes(membershipName);
+            var postTitleMatch = sise['PostTitle'].toLowerCase().includes(membershipName);
+            // var dateMatch = sise['Pc6'] && sise['Pc6'] === formattedDate;
+            var dateMatch = date ? (sise['Pc6'] && sise['Pc6'] === formattedDate) : true;
+            console.log('dateMatch : ', dateMatch);
+
+            if(membershipName == ''){
+                return dateMatch
+            }else{
+                return postTitleMatch && dateMatch;
+            }
         });
-
+        // console.log('filteredSiseList : ', filteredSiseList);
         renderSiseList(filteredSiseList);
     }
     // 동적으로 tbody 생ㄱ성
@@ -166,8 +190,8 @@
             <td data-label="상담신청">
                 <button type="button" class="btn consult-btn"
                         data-post-title="${sise['PostTitle']}"
-                        data-pc1="${sise['Pc1']}"
-                        onclick="window.location.href = '/contactus-custom/${sise['Pc1']}/${encodeURIComponent(sise['PostTitle'])}'">상담신청
+                        data-pc5="${sise['Pc5']}"
+                        onclick="window.location.href = '/contactus-custom/${sise['Pc5']}/${encodeURIComponent(sise['PostTitle'])}'">상담신청
                 </button>
             </td>
         `);

+ 4 - 3
pro/routes/web.php

@@ -350,7 +350,6 @@ Route::middleware(['check.device.scale', 'check.gate.token'])->group(function ()
         });
     });
 
-    // Route::get('/sise/{sisetype}/{area?}', [SiseController::class, 'index'])->name('sise');
     Route::get('/sise/{sisetype}/{area?}/{memberbershipname?}', [SiseController::class, 'index'])->name('sise');
 
     Route::get('/contactus-custom/{siseType?}/{postTitle?}', function($siseType = null, $postTitle = null) {
@@ -390,8 +389,10 @@ Route::middleware(['check.device.scale', 'check.gate.token'])->group(function ()
         return view('views.page.map');
     })->name('map');
 
-    // 카카오 메세지 api
-    Route::post('/send-kakao-channel-message', [SocialTalkController::class, 'sendMessage'])->name('send-kakao-channel-message');
+    Route::get('/social/{provider}/callback', [SocialTalkController::class, 'login'])->middleware('check.gate.token')->name('social.login');
+    Route::post('/social/{provider}/callback', [SocialTalkController::class, 'login'])->middleware('check.gate.token');
+    Route::get('/social/{provider}', [SocialTalkController::class, 'redirectToProvider'])->middleware('check.gate.token')->name('social.redirectToProvider');
+
 });
 
 Route::get('/member-logout', function() {

+ 1 - 0
qry/erp/list/list-type1-insert/post/sise/insert1.sql

@@ -0,0 +1 @@
+create table ? select * from pro_post

+ 12 - 0
qry/erp/list/list-type1-insert/post/sise/insert2.sql

@@ -0,0 +1,12 @@
+INSERT INTO pro_post ( created_on, updated_on,
+                      post_title, pc1, pc2, pc3,
+                      pc4, pc5, pc6, post_type_id, post_slug,
+                       post_no
+)
+
+SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(),
+       c1, c2, c3, c4, c5,
+       c6, DATE_FORMAT(DATE_ADD('1899-12-30', INTERVAL c7 DAY), '%Y%m%d') as c7, c8, c9,
+       c10
+FROM dbt_list_type1
+where list_token = ?

+ 0 - 1
qry/erp/list/list-type1-insert/sise/sise-input/1_delete_sise.sql

@@ -1 +0,0 @@
-DELETE FROM pro_post WHERE post_type_id = 59;

+ 0 - 8
qry/erp/list/list-type1-insert/sise/sise-input/2_insert_sise.sql

@@ -1,8 +0,0 @@
-INSERT INTO pro_post ( created_on, updated_on,
-	pc5, post_title, pc2, pc3, pc4, post_type_id
-)
-
-SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(),
-	c2, c3, c4, c5, c6, c7
-FROM dbt_list_type1
-where list_token = ?

+ 7 - 0
qry/erp/list/list-type1/download/post/contactus-custom/plain_cnt.sql

@@ -0,0 +1,7 @@
+select
+	count(*)
+from
+	pro_post as mx
+	inner join pro_post_type as pt on pt.id = mx.post_type_id
+-- @where
+-- @order

+ 13 - 0
qry/erp/list/list-type1/download/post/post-sise/subqry/insert1.sql

@@ -0,0 +1,13 @@
+
+INSERT INTO dbt_list_type1 	( created_on, list_token, id,
+	c1, c2, c3, c4, c5,
+	c6, c7, c8, c9, c10 )
+
+SELECT UNIX_TIMESTAMP(), ?, id,
+       post_title, pc1, pc2, pc3, pc4,
+       pc5, STR_TO_DATE(pc6, '%Y%m%d') AS pc6, post_type_id, post_slug, post_no
+
+FROM pro_post as mx
+
+-- @where
+-- @order

+ 0 - 14
qry/erp/list/list-type1/download/post/sise/plain.sql

@@ -1,14 +0,0 @@
-select
-    mx.id as id,
-    CURDATE() AS c1,            -- 시세일자
-    mx.pc5 as c2,               -- 회원권코드
-    post_title as c3,           -- 회원권명
-    mx.pc2 as c4,               -- 지역코드
-    mx.pc3 as c5,               -- 금일시세
-    mx.pc4 as c6                -- 전일시세
-    mx.post_type_id             -- 게시판구분
-from
-    pro_post as mx
-    inner join pro_post_type as pt on pt.id = mx.post_type_id
--- @where
-and pt.post_code = 'sise'

+ 0 - 0
qry/erp/list/list-type1/download/post/sise/plain_cnt.sql


+ 6 - 7
qry/erp/list/list-type1/post/post-sise-input/plain.sql

@@ -1,7 +1,7 @@
 select
     mx.id as id,
     post_title as c1,
-    mx.pc1 as c2,
+    mx.pc5 as c2,
     CASE
         WHEN mx.pc2 = 100 THEN '수도권/강원/충청권'
         WHEN mx.pc2 = 200 THEN '영남/제주권'
@@ -10,13 +10,12 @@ select
         WHEN mx.pc2 = 500 THEN '스키장콘도'
         WHEN mx.pc2 = 600 THEN '강남'
         WHEN mx.pc2 = 700 THEN '강북'
-    END as c6,
-    mx.pc3 as c3,
-    mx.pc4 as c4,
-    ABS(mx.pc3 - mx.pc4) AS c5,
-    CURDATE() AS c8
+    END as c3,
+    mx.pc3 as c4,
+    mx.pc4 as c5,
+    mx.pc1 as c6,
+    DATE_FORMAT(CURDATE(), '%Y-%m-%d') AS c7
 from
     pro_post as mx
     inner join pro_post_type as pt on pt.id = mx.post_type_id
 -- @where
-and pt.post_code = 'sise'

+ 0 - 1
qry/erp/list/list-type1/post/post-sise-input/plain_cnt.sql

@@ -4,5 +4,4 @@ from
 	pro_post as mx
 	inner join pro_post_type as pt on pt.id = mx.post_type_id
 -- @where
-and pt.post_code = 'sise'
 -- @order