فهرست منبع

của metfone

student 1 ماه پیش
والد
کامیت
2fda11b936
27فایلهای تغییر یافته به همراه304 افزوده شده و 118 حذف شده
  1. 8 3
      ApiWeb/ApiProcessToken/Controllers/systemApi.cs
  2. 26 7
      ApiWeb/ApiProcessToken/Models/systemUserDataAccess.cs
  3. 3 0
      ApiWeb/ApiProcessToken/Models/systemUserObj.cs
  4. 20 0
      ApiWeb/ApiProcessToken/Properties/PublishProfiles/FolderProfile3.pubxml
  5. 7 7
      ApiWeb/ApiProcessToken/appsettings.json
  6. 62 0
      Server.txt
  7. 1 1
      SuperAdmin/SuperAdmin/Controllers/AdminController.cs
  8. 4 0
      SuperAdmin/SuperAdmin/Models/Http/UserManagement.cs
  9. 20 0
      SuperAdmin/SuperAdmin/Properties/PublishProfiles/FolderProfile3.pubxml
  10. 21 0
      SuperAdmin/SuperAdmin/Source/CommonUtils.cs
  11. 0 1
      SuperAdmin/SuperAdmin/Timor_BPSuperAdmin.csproj
  12. 28 27
      SuperAdmin/SuperAdmin/Views/Admin/CampaignManagement.cshtml
  13. 30 6
      SuperAdmin/SuperAdmin/Views/Admin/FunctionManagement.cshtml
  14. 14 14
      SuperAdmin/SuperAdmin/Views/Admin/ServiceManagement.cshtml
  15. 1 1
      SuperAdmin/SuperAdmin/Views/Home/Login.cshtml
  16. 8 8
      SuperAdmin/SuperAdmin/Views/Partial/_Campaign.cshtml
  17. 2 2
      SuperAdmin/SuperAdmin/Views/Partial/_CampaignCriteria.cshtml
  18. 17 17
      SuperAdmin/SuperAdmin/Views/Partial/_CampaignService.cshtml
  19. 2 2
      SuperAdmin/SuperAdmin/Views/Partial/_Criteria.cshtml
  20. 3 1
      SuperAdmin/SuperAdmin/Views/Partial/_Functions.cshtml
  21. 1 1
      SuperAdmin/SuperAdmin/Views/Partial/_ListSub.cshtml
  22. 5 5
      SuperAdmin/SuperAdmin/Views/Partial/_ReportCampaign.cshtml
  23. 9 9
      SuperAdmin/SuperAdmin/Views/Partial/_ReportCountDaily.cshtml
  24. 5 5
      SuperAdmin/SuperAdmin/Views/Partial/_ReportUssdDetail.cshtml
  25. 1 1
      SuperAdmin/SuperAdmin/Views/Shared/_Layout.cshtml
  26. 3 0
      test ka.txt
  27. 3 0
      userVPN.txt

+ 8 - 3
ApiWeb/ApiProcessToken/Controllers/systemApi.cs

@@ -580,6 +580,7 @@ namespace ApiProcess.Controllers
                 string role = Convert.ToString(userObj["role"]);
                 string name = Convert.ToString(userObj["name"]);
                 string link = Convert.ToString(userObj["link"]);
+                string status = Convert.ToString(userObj["status"]);
                 string order = Convert.ToString(userObj["order"]);
                 string rowsOnPage = Convert.ToString(userObj["rowsOnPage"]);
                 string seqPage = Convert.ToString(userObj["seqPage"]);
@@ -589,6 +590,7 @@ namespace ApiProcess.Controllers
                 if (string.IsNullOrEmpty(role)) role = "-1";
                 if (string.IsNullOrEmpty(name)) name = "-1";
                 if (string.IsNullOrEmpty(link)) link = "-1";
+                if (string.IsNullOrEmpty(status)) status = "-1";
                 if (string.IsNullOrEmpty(order)) order = "asc";
                 if (string.IsNullOrEmpty(rowsOnPage)) rowsOnPage = "1000000000000";
                 if (string.IsNullOrEmpty(seqPage)) seqPage = "1";
@@ -653,7 +655,7 @@ namespace ApiProcess.Controllers
                     return Ok(response);
                 }
 
-                DataSet ds_regist = systemUserDataAccess.SYS_FUNCTION_WEB_CMS_GET_LIST(users, id, role, name, link, order, rowsOnPage, seqPage);
+                DataSet ds_regist = systemUserDataAccess.SYS_FUNCTION_WEB_CMS_GET_LIST(users, id, role, name, link, order, rowsOnPage, seqPage, status);
                 logger.Info("Call database SYS_FUNCTION_WEB_CMS_GET_LIST success:");
                 
                 response.responseCode = "0";
@@ -674,6 +676,7 @@ namespace ApiProcess.Controllers
                         _obj.role = ds_regist.Tables[0].Rows[j]["ROLE"].ToString();
                         _obj.name = ds_regist.Tables[0].Rows[j]["NAME"].ToString();
                         _obj.link = ds_regist.Tables[0].Rows[j]["LINK"].ToString();
+                        _obj.status = ds_regist.Tables[0].Rows[j]["FUNCTION_STATUS"].ToString();
                         _obj.note = ds_regist.Tables[0].Rows[j]["NOTE"].ToString();
 
                         response.list[j] = _obj;
@@ -706,6 +709,7 @@ namespace ApiProcess.Controllers
                 string link = Convert.ToString(userObj["link"]);
                 string note = Convert.ToString(userObj["note"]);
                 string users = Convert.ToString(userObj["users"]);
+                string status = Convert.ToString(userObj["status"]);
 
                 if (string.IsNullOrEmpty(role)) role = "-1";
                 if (string.IsNullOrEmpty(name)) name = "-1";
@@ -773,7 +777,7 @@ namespace ApiProcess.Controllers
                     return Ok(response);
                 }
 
-                DataSet ds_regist = systemUserDataAccess.SYS_FUNCTION_WEB_CMS_INSERT(role, name, link, note, users);
+                DataSet ds_regist = systemUserDataAccess.SYS_FUNCTION_WEB_CMS_INSERT(role, name, link, note, status, users);
                 logger.Info("Call database SYS_FUNCTION_WEB_CMS_INSERT success:");
                 
                 if (ds_regist != null && ds_regist.Tables[0].Rows.Count > 0)
@@ -812,6 +816,7 @@ namespace ApiProcess.Controllers
                 string role = Convert.ToString(userObj["role"]);
                 string name = Convert.ToString(userObj["name"]);
                 string link = Convert.ToString(userObj["link"]);
+                string status = Convert.ToString(userObj["status"]);
                 string note = Convert.ToString(userObj["note"]);
                 string users = Convert.ToString(userObj["users"]);
 
@@ -882,7 +887,7 @@ namespace ApiProcess.Controllers
                     return Ok(response);
                 }
 
-                DataSet ds_regist = systemUserDataAccess.SYS_FUNCTION_WEB_CMS_UPDATE(id, role, name, link, note, users);
+                DataSet ds_regist = systemUserDataAccess.SYS_FUNCTION_WEB_CMS_UPDATE(id, role, name, link, note, status, users);
                 logger.Info("Call database SYS_FUNCTION_WEB_CMS_UPDATE success:");
                 
                 if (ds_regist != null && ds_regist.Tables[0].Rows.Count > 0)

+ 26 - 7
ApiWeb/ApiProcessToken/Models/systemUserDataAccess.cs

@@ -340,7 +340,7 @@ namespace ResfullApi.Models
             return ds;
         }
 
-        public static DataSet SYS_FUNCTION_WEB_CMS_GET_LIST(string v_users, string v_id, string v_role, string v_name, string v_link, string v_order, string v_rowsOnPage, string v_seqPage)
+        public static DataSet SYS_FUNCTION_WEB_CMS_GET_LIST(string v_users, string v_id, string v_role, string v_name, string v_link, string v_order, string v_rowsOnPage, string v_seqPage, string v_status)
         {
             DataSet ds = new DataSet();
             OracleConnection dbConnection = DataAccess.getPoolingConnection();
@@ -354,7 +354,7 @@ namespace ResfullApi.Models
                 
                 // Build base query for counting total records
                 string countSql = "SELECT COUNT(*) FROM USER_WEB_CMS_FUNCTION WHERE 1=1";
-                string dataSql = @"SELECT ID, ROLE, NAME, LINK, NOTE 
+                string dataSql = @"SELECT ID, ROLE, NAME, LINK, NOTE, STATUS AS FUNCTION_STATUS 
                                    FROM USER_WEB_CMS_FUNCTION WHERE 1=1";
                 
                 // Add filters
@@ -382,6 +382,12 @@ namespace ResfullApi.Models
                     dataSql += " AND UPPER(LINK) LIKE UPPER(:v_link)";
                 }
                 
+                if (v_status != null && v_status != "-1")
+                {
+                    countSql += " AND STATUS = :v_status";
+                    dataSql += " AND STATUS = :v_status";
+                }
+                
                 // Add ordering
                 dataSql += " ORDER BY ID " + (v_order == "desc" ? "DESC" : "ASC");
                 
@@ -409,6 +415,11 @@ namespace ResfullApi.Models
                     countCmd.Parameters.Add(":v_link", OracleDbType.NVarchar2).Value = "%" + v_link + "%";
                 }
                 
+                if (v_status != null && v_status != "-1")
+                {
+                    countCmd.Parameters.Add(":v_status", OracleDbType.Int32).Value = int.Parse(v_status);
+                }
+                
                 int totalRows = Convert.ToInt32(countCmd.ExecuteScalar());
                 int totalPage = (int)Math.Ceiling((double)totalRows / rowsOnPage);
                 
@@ -441,6 +452,11 @@ namespace ResfullApi.Models
                     dataCmd.Parameters.Add(":v_link", OracleDbType.NVarchar2).Value = "%" + v_link + "%";
                 }
                 
+                if (v_status != null && v_status != "-1")
+                {
+                    dataCmd.Parameters.Add(":v_status", OracleDbType.Int32).Value = int.Parse(v_status);
+                }
+                
                 OracleDataAdapter dataAdapter = new OracleDataAdapter(dataCmd);
                 dataAdapter.Fill(ds);
                 
@@ -492,7 +508,7 @@ namespace ResfullApi.Models
             return ds;
         }
 
-        public static DataSet SYS_FUNCTION_WEB_CMS_INSERT(string V_ROLE, string V_NAME, string V_LINK, string V_NOTE, string V_USERS)
+        public static DataSet SYS_FUNCTION_WEB_CMS_INSERT(string V_ROLE, string V_NAME, string V_LINK, string V_NOTE, string V_STATUS, string V_USERS)
         {
             DataSet ds = new DataSet();
             DataTable tb = new DataTable();
@@ -502,8 +518,8 @@ namespace ResfullApi.Models
             try
             {
                 dbConnection.Open();
-                string sql = @"INSERT INTO USER_WEB_CMS_FUNCTION(ID, ROLE, NAME, LINK, NOTE)
-                               VALUES(USER_WEB_CMS_FUNCTION_SEQ.NEXTVAL, :role, :name, :link, :note)";
+                string sql = @"INSERT INTO USER_WEB_CMS_FUNCTION(ID, ROLE, NAME, LINK, NOTE, STATUS)
+                               VALUES(USER_WEB_CMS_FUNCTION_SEQ.NEXTVAL, :role, :name, :link, :note, :status)";
                 using (OracleCommand cmd = new OracleCommand(sql, dbConnection))
                 {
                     cmd.CommandType = CommandType.Text;
@@ -511,6 +527,7 @@ namespace ResfullApi.Models
                     cmd.Parameters.Add(":name", OracleDbType.NVarchar2).Value = V_NAME ?? "";
                     cmd.Parameters.Add(":link", OracleDbType.NVarchar2).Value = V_LINK ?? "";
                     cmd.Parameters.Add(":note", OracleDbType.NVarchar2).Value = V_NOTE ?? "";
+                    cmd.Parameters.Add(":status", OracleDbType.Int32).Value = string.IsNullOrEmpty(V_STATUS) ? 1 : int.Parse(V_STATUS);
                     int affected = cmd.ExecuteNonQuery();
                     
                     // get generated id in this session
@@ -546,7 +563,7 @@ namespace ResfullApi.Models
             return ds;
         }
 
-        public static DataSet SYS_FUNCTION_WEB_CMS_UPDATE(string V_ID, string V_ROLE, string V_NAME, string V_LINK, string V_NOTE, string V_USERS)
+        public static DataSet SYS_FUNCTION_WEB_CMS_UPDATE(string V_ID, string V_ROLE, string V_NAME, string V_LINK, string V_NOTE, string V_STATUS, string V_USERS)
         {
             DataSet ds = new DataSet();
             DataTable tb = new DataTable();
@@ -560,7 +577,8 @@ namespace ResfullApi.Models
                                SET ROLE = :role,
                                    NAME = :name,
                                    LINK = :link,
-                                   NOTE = :note
+                                   NOTE = :note,
+                                   STATUS = :status
                                WHERE ID = :id";
                 using (OracleCommand cmd = new OracleCommand(sql, dbConnection))
                 {
@@ -569,6 +587,7 @@ namespace ResfullApi.Models
                     cmd.Parameters.Add(":name", OracleDbType.NVarchar2).Value = V_NAME ?? "";
                     cmd.Parameters.Add(":link", OracleDbType.NVarchar2).Value = V_LINK ?? "";
                     cmd.Parameters.Add(":note", OracleDbType.NVarchar2).Value = V_NOTE ?? "";
+                    cmd.Parameters.Add(":status", OracleDbType.Int32).Value = string.IsNullOrEmpty(V_STATUS) ? 1 : int.Parse(V_STATUS);
                     cmd.Parameters.Add(":id", OracleDbType.NVarchar2).Value = V_ID ?? "";
                     int affected = cmd.ExecuteNonQuery();
                     

+ 3 - 0
ApiWeb/ApiProcessToken/Models/systemUserObj.cs

@@ -79,6 +79,9 @@ namespace ResfullApi.Models
         [JsonProperty("note")]
         public string note { get; set; }
 
+        [JsonProperty("status")]
+        public string status { get; set; }
+
         public override string ToString()
         {
             return JsonConvert.SerializeObject(this);

+ 20 - 0
ApiWeb/ApiProcessToken/Properties/PublishProfiles/FolderProfile3.pubxml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
+<Project>
+  <PropertyGroup>
+    <DeleteExistingFiles>false</DeleteExistingFiles>
+    <ExcludeApp_Data>false</ExcludeApp_Data>
+    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
+    <PublishProvider>FileSystem</PublishProvider>
+    <PublishUrl>E:\Ex_publish\Cms_truyenThong\api</PublishUrl>
+    <WebPublishMethod>FileSystem</WebPublishMethod>
+    <_TargetId>Folder</_TargetId>
+    <SiteUrlToLaunchAfterPublish />
+    <TargetFramework>net7.0</TargetFramework>
+    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
+    <ProjectGuid>4ea0d77f-24d3-49ed-af6d-4ccb29b94b50</ProjectGuid>
+    <SelfContained>true</SelfContained>
+  </PropertyGroup>
+</Project>

+ 7 - 7
ApiWeb/ApiProcessToken/appsettings.json

@@ -7,8 +7,8 @@
     "key": "VietNam#1980",
     "isCheckToken": "1",
     //"Connection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=171.244.50.177)(PORT=1530))(CONNECT_DATA=(SERVICE_NAME=orcl)));User Id=LOTO_THAILAN;Password=loto098;Connection Timeout=120;",
-    //"Connection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1539))(CONNECT_DATA=(SERVICE_NAME=ORA12C)));User Id=MYTEL_BLANCE;Password=123456;Connection Timeout=120;",
-    "Connection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1561))(CONNECT_DATA=(SERVICE_NAME=REP_DB_DG)));User Id=bplus_app;Password=BbQ09grnqF1CM0ob;Connection Timeout=120; Connection Lifetime=180;Pooling=true;Min Pool Size=1;Max Pool Size=100;Incr Pool Size=10;Validate Connection=true",
+    "Connection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1539))(CONNECT_DATA=(SERVICE_NAME=ORA12C)));User Id=metphone_balance;Password=123456;Connection Timeout=120;",
+    //"Connection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1561))(CONNECT_DATA=(SERVICE_NAME=REP_DB_DG)));User Id=bplus_app;Password=BbQ09grnqF1CM0ob;Connection Timeout=120; Connection Lifetime=180;Pooling=true;Min Pool Size=1;Max Pool Size=100;Incr Pool Size=10;Validate Connection=true",
     "urlPostGetErrCodeMessage": "http://localhost:41341/api/luckyGame/executes/data",
     "keyPostGetErrCodeMessage": "jqB3Vi1fIlu+9a2ODQs65w==",
     "betProcessListPower": "127.0.0.1:8017:60000$127.0.0.1:8018:60000$127.0.0.1:8019:60000",
@@ -20,14 +20,14 @@
     "chargeLogPath": "D:\\Code\\Telemor\\TimorBplus\\ApiWeb\\ApiProcessToken\\logChargeErr\\",
 
     //for B+
-    "RedisIp": "127.0.0.1",
-    "RedisPort": "9379",
-    "RedisPass": "p@ss$12E45",
-
-    //"RedisIp": "171.244.50.177",
+    //"RedisIp": "127.0.0.1",
     //"RedisPort": "9379",
     //"RedisPass": "p@ss$12E45",
 
+    "RedisIp": "171.244.50.177",
+    "RedisPort": "9379",
+    "RedisPass": "p@ss$12E45",
+
     "MPS_IP": "171.244.50.177",
 
     "MPS_PORT": "6018",

+ 62 - 0
Server.txt

@@ -0,0 +1,62 @@
+vpn5pc.metfone.com.kh:33888
+
+VTC_VAS_Partner1/MetFOne@@0303^&
+
+
+
+
+usre:
+ams_app/Metfone12#$
+Viettech@123
+
+
+
+100.99.4.98
+100.99.4.99
+100.99.4.100
+100.99.4.101
+
+
+
+
+
+
+
+---------------------DB--------------------------------
+Username : AMS_APP
+Password : Ams$2026
+
+
+TNS connection string :
+
+IT_WITH_DR=(DESCRIPTION_LIST=
+
+    (LOAD_BALANCE=off)
+
+    (FAILOVER=on)
+
+    (DESCRIPTION=
+
+            (LOAD_BALANCE=on)
+
+            (ADDRESS=(PROTOCOL=tcp)(HOST=10.79.33.98)(PORT=1521))
+
+            (ADDRESS=(PROTOCOL=tcp)(HOST=10.79.33.100)(PORT=1521))
+
+        (CONNECT_DATA=(SERVER=SHARED)(SERVICE_NAME= it_dr))
+
+    )
+
+    (DESCRIPTION=
+
+            (LOAD_BALANCE=on)
+
+            (ADDRESS=(PROTOCOL=tcp)(HOST=100.99.6.16)(PORT=1521))
+
+            (ADDRESS=(PROTOCOL=tcp)(HOST=100.99.6.18)(PORT=1521))
+
+        (CONNECT_DATA=(SERVER=SHARED)(SERVICE_NAME= it_dr))
+
+    )
+
+)

+ 1 - 1
SuperAdmin/SuperAdmin/Controllers/AdminController.cs

@@ -2272,7 +2272,7 @@ namespace SuperAdmin.Controllers
                             worksheet.Cell(index + 1, i++).Value = obj.priority;
                             worksheet.Cell(index + 1, i++).Value = obj.isDefault;
                             worksheet.Cell(index + 1, i++).Value = obj.addType == "1" ? "Text" : obj.addType == "2" ? "1-Verification" : obj.addType == "3" ? "2-Verification" : obj.addType;
-                            worksheet.Cell(index + 1, i++).Value = obj.isMyService == "0" ? "mytel" : obj.isMyService == "1" ? "viettech" : obj.isMyService;
+                            worksheet.Cell(index + 1, i++).Value = obj.isMyService == "0" ? "Metfone" : obj.isMyService == "1" ? "Khmernet" : obj.isMyService;
                             worksheet.Cell(index + 1, i++).Value = obj.serviceId;
                             worksheet.Cell(index + 1, i++).Value = obj.serviceName;
                             worksheet.Cell(index + 1, i++).Value = obj.countSend1;

+ 4 - 0
SuperAdmin/SuperAdmin/Models/Http/UserManagement.cs

@@ -110,6 +110,7 @@ namespace SuperAdmin.Models.Http
         public string role { get; set; }
         public string name { get; set; }
         public string link { get; set; }
+        public string status { get; set; }
         public string rowsOnPage { get; set; }
         public string seqPage { get; set; }
         public string order { get; set; }
@@ -138,6 +139,7 @@ namespace SuperAdmin.Models.Http
         public string role { get; set; }
         public string name { get; set; }
         public string link { get; set; }
+        public string status { get; set; }
         public string note { get; set; }
     }
 
@@ -146,6 +148,7 @@ namespace SuperAdmin.Models.Http
         public string role { get; set; }
         public string name { get; set; }
         public string link { get; set; }
+        public string status { get; set; }
         public string note { get; set; }
         public string users { get; set; }
     }
@@ -156,6 +159,7 @@ namespace SuperAdmin.Models.Http
         public string role { get; set; }
         public string name { get; set; }
         public string link { get; set; }
+        public string status { get; set; }
         public string note { get; set; }
         public string users { get; set; }
     }

+ 20 - 0
SuperAdmin/SuperAdmin/Properties/PublishProfiles/FolderProfile3.pubxml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
+<Project>
+  <PropertyGroup>
+    <DeleteExistingFiles>true</DeleteExistingFiles>
+    <ExcludeApp_Data>false</ExcludeApp_Data>
+    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
+    <PublishProvider>FileSystem</PublishProvider>
+    <PublishUrl>E:\Ex_publish\Cms_truyenThong\cms</PublishUrl>
+    <WebPublishMethod>FileSystem</WebPublishMethod>
+    <_TargetId>Folder</_TargetId>
+    <SiteUrlToLaunchAfterPublish />
+    <TargetFramework>net7.0</TargetFramework>
+    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
+    <ProjectGuid>000a9a28-ee22-4214-887d-108273a43763</ProjectGuid>
+    <SelfContained>true</SelfContained>
+  </PropertyGroup>
+</Project>

+ 21 - 0
SuperAdmin/SuperAdmin/Source/CommonUtils.cs

@@ -326,6 +326,27 @@ namespace SuperAdmin.Source
             return "";
         }
 
+        public static String GetStatusExportNameV2(string status)
+        {
+            switch (status)
+            {
+                case ExportActionType.deleteData:
+                    return "newly created";
+                case ExportActionType.startUpload:
+                    return "uploading";
+                case ExportActionType.finishUpload:
+                    return "upload complete";
+                case ExportActionType.rejected:
+                    return "importing file";
+                case ExportActionType.deleted:
+                    return "file import complete";
+                case ExportActionType.approved:
+                    return "Approved";
+            }
+            return "";
+        }
+
+
         public static String GetStatusFileSub(string status)
         {
             switch (status)

+ 0 - 1
SuperAdmin/SuperAdmin/Timor_BPSuperAdmin.csproj

@@ -504,7 +504,6 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Folder Include="Connected Services\" />
     <Folder Include="Models\Vsa\" />
   </ItemGroup>
 

+ 28 - 27
SuperAdmin/SuperAdmin/Views/Admin/CampaignManagement.cshtml

@@ -1,4 +1,4 @@
-@{
+@{
     ViewBag.Title = "Statistics";
     Layout = "~/Views/Shared/_Layout.cshtml";
 }
@@ -371,14 +371,10 @@
         }
 
         function updateTitleRequirement(serviceType) {
-            var requireTitle = serviceType === "1";
-            $("#title-required-indicator").toggle(requireTitle);
-            $("#title-helper").toggle(requireTitle);
-            $("#title").attr("data-required", requireTitle ? "true" : "false");
-            if (!requireTitle) {
-                $("#title").removeClass("input-invalid");
-                $("#lblWarning").html("");
-            }
+            var requireTitle = true; // Always independent and required
+            $("#title-required-indicator").show();
+            $("#title-helper").show();
+            $("#title").attr("data-required", "true");
         }
 
         function setInputReadonly($input, isReadonly, makeEditableClass) {
@@ -464,7 +460,7 @@
                 var itemGroup = $(this).attr("data-group");
                 
                 var matchesSearch = itemText.includes(searchTerm) || searchTerm === "";
-                var matchesGroup = selectedGroup === "" || itemGroup === selectedGroup;
+                var matchesGroup = selectedGroup === undefined || selectedGroup === "" || itemGroup === selectedGroup;
                 
                 if (matchesSearch && matchesGroup) {
                     $(this).show();
@@ -519,10 +515,10 @@
                 return "";
             }
 
-            if (normalized === "viettech" || normalized === "1") {
+            if (normalized === "Khmernet" || normalized === "1") {
                 return "1";
             }
-            if (normalized === "mytel" || normalized === "0") {
+            if (normalized === "Metfone" || normalized === "0") {
                 return "0";
             }
 
@@ -605,6 +601,8 @@
         }
 
         function syncTitleWithFirstUssd() {
+            // Comment out to make Content field independent
+            /*
             if ($("#addType").val() !== "1") {
                 return;
             }
@@ -615,6 +613,7 @@
                 $("#title").val(ussdValue);
                 updateTotalChar();
             }
+            */
         }
 
         function syncCampaignPartner() {
@@ -669,7 +668,7 @@
                     var ussdDisplay = $("#ussdDisplayMulti-" + idx).val().split("\n");
                     console.log("ussdDisplay: " + ussdDisplay);
                     $("#ussdDisplay-" + idx).val(ussdDisplay[1]);
-                    $("#title").val(ussdDisplay[0]);
+                    // $("#title").val(ussdDisplay[0]); // Make Content field independent
                     //
                     updateTotalChar();
                     
@@ -907,16 +906,16 @@
                 $("name").focus();
                 return false;
             }
-            if (priority == null || priority == "") {
-                $("#priority").addClass('input-invalid');
-                    $("priority").focus();
-                return false;
-            }
-            if (numberDisplay == null || numberDisplay == "") {
-                $("#numberDisplay").addClass('input-invalid');
-                $("numberDisplay").focus();
-                return false;
-            }
+            // if (priority == null || priority == "") {
+            //     $("#priority").addClass('input-invalid');
+            //         $("priority").focus();
+            //     return false;
+            // }
+            // if (numberDisplay == null || numberDisplay == "") {
+            //     $("#numberDisplay").addClass('input-invalid');
+            //     $("numberDisplay").focus();
+            //     return false;
+            // }
             return true;
         }
 
@@ -932,9 +931,9 @@
             var serviceType = $("#addType").val();
             var titleValue = $("#title").val();
 
-            if (serviceType === "1" && (titleValue == null || titleValue.trim() === "")) {
+            if (titleValue == null || titleValue.trim() === "") {
                 stopSpinner("btnAddUpdate");
-                $("#lblWarning").html("Title teaser is required for Service Type: Text");
+                $("#lblWarning").html("Content is required");
                 $("#title").addClass('input-invalid').focus();
                 return;
             }
@@ -1040,8 +1039,10 @@
                         name: $("#name").val(),
                         addType: $("#addType").val(),
                         isDefault: $("#isDefault").val(),
-                        priority: $("#priority").val(),
-                        numberDisplay: $("#numberDisplay").val(),
+                        // priority: $("#priority").val(),
+                        priority: 1,
+                        // numberDisplay: $("#numberDisplay").val(),
+                        numberDisplay: 1,
                         title: $("#title").val(),
                         isMyservice: $("#my_service").val()
                     },

+ 30 - 6
SuperAdmin/SuperAdmin/Views/Admin/FunctionManagement.cshtml

@@ -46,24 +46,34 @@
                                 <div class="form-body">
                                     @Html.AntiForgeryToken()
                                     <div class="row">
-                                        <div class="col-md-4 col-sm-4 col-6">
+                                        <div class="col-md-3 col-sm-3 col-6">
                                             <div class="form-group">
                                                 <label>Role</label>
                                                 <input type="text" class="form-control" id="roleSearch" name="roleSearch">
                                             </div>
                                         </div>
-                                        <div class="col-md-4 col-sm-4 col-6">
+                                        <div class="col-md-3 col-sm-3 col-6">
                                             <div class="form-group">
                                                 <label>Name</label>
                                                 <input type="text" class="form-control" id="nameSearch" name="nameSearch">
                                             </div>
                                         </div>
-                                        <div class="col-md-4 col-sm-4 col-6">
+                                        <div class="col-md-3 col-sm-3 col-6">
                                             <div class="form-group">
                                                 <label>Link</label>
                                                 <input type="text" class="form-control" id="linkSearch" name="linkSearch">
                                             </div>
                                         </div>
+                                        <div class="col-md-3 col-sm-3 col-6">
+                                            <div class="form-group">
+                                                <label>Status</label>
+                                                <select class="form-control" id="statusSearch" name="statusSearch">
+                                                    <option value="" selected>-- All --</option>
+                                                    <option value="1">Active</option>
+                                                    <option value="0">Inactive</option>
+                                                </select>
+                                            </div>
+                                        </div>
                                     </div>
                                     <div class="row">
                                         <div class="col-md-12">
@@ -175,6 +185,15 @@
                             <textarea class="form-control" id="note" name="note" rows="3"></textarea>
                         </div>
                     </div>
+                    <div class="col-md-6">
+                        <div class="form-group">
+                            <label>Status</label>
+                            <select class="form-control" id="status" name="status">
+                                <option value="1">Active</option>
+                                <option value="0">Inactive</option>
+                            </select>
+                        </div>
+                    </div>
                 </div>
                 <div class="row" id="div-action">
                     <div class="col-12">
@@ -305,7 +324,8 @@
                         role: newRole,
                         name: func.name,
                         link: func.link,
-                        note: ""
+                        note: "",
+                        status: "1"
                     },
                     success: function (result) {
                         if (result.error == '0') {
@@ -343,6 +363,7 @@
             $("#name").val("");
             $("#link").val("");
             $("#note").val("");
+            $("#status").val("1");
             $("#btnAddUpdate").html("Add");
             $("#modalLabelFunction").html("Add Function");
             showModal("modal-add-function");
@@ -369,6 +390,7 @@
                         $("#name").val(func.name);
                         $("#link").val(func.link);
                         $("#note").val(func.note || "");
+                        $("#status").val(func.status || "1");
                     } else {
                         Swal.fire("Failed!", result.content, "error");
                     }
@@ -416,7 +438,8 @@
                     role: $("#role").val(),
                     name: $("#name").val(),
                     link: $("#link").val(),
-                    note: $("#note").val()
+                    note: $("#note").val(),
+                    status: $("#status").val()
                 },
                 success: function (result) {
                     stopSpinner("btnAddUpdate");
@@ -479,7 +502,8 @@
                 data: {
                     role: $("#roleSearch").val(),
                     name: $("#nameSearch").val(),
-                    link: $("#linkSearch").val()
+                    link: $("#linkSearch").val(),
+                    status: $("#statusSearch").val()
                 },
                 type: "POST",
                 success: function (data) {

+ 14 - 14
SuperAdmin/SuperAdmin/Views/Admin/ServiceManagement.cshtml

@@ -161,7 +161,7 @@
                             <input type="text" class="form-control" id="shortCode" name="shortCode">
                         </div>
                     </div>
-                    <div class="col-md-6">
+                    @* <div class="col-md-6">
                         <div class="form-group">
                             <label for="serviceGroupId">Service Group</label>
                             <select class="form-control" id="serviceGroupId" name="serviceGroupId">
@@ -177,7 +177,7 @@
                                 <option value="">-- Select Api Service --</option>
                             </select>
                         </div>
-                    </div>
+                    </div> *@
                     <div class="col-md-6">
                         <div class="form-group">
                             <label for="date">Command</label>
@@ -216,8 +216,8 @@
                         <div class="form-group">
                             <label for="my_service">My Service</label>
                             <select class="form-control" id="my_service" name="my_service">
-                                <option value="0">Mytel</option>
-                                <option value="1">Viettech</option>
+                                <option value="0">Metfone</option>
+                                <option value="1">Khmernet</option>
                             </select>
                         </div>
                     </div>
@@ -451,16 +451,16 @@
                 return false;
             }
 
-            if (serviceGroupId == null || serviceGroupId == "") {
-                $("#serviceGroupId").addClass('input-invalid');
-                $("serviceGroupId").focus();
-                return false;
-            }
-            if (apiServiceId == null || apiServiceId == "") {
-                $("#apiServiceId").addClass('input-invalid');
-                $("apiServiceId").focus();
-                return false;
-            }
+            // if (serviceGroupId == null || serviceGroupId == "") {
+            //     $("#serviceGroupId").addClass('input-invalid');
+            //     $("serviceGroupId").focus();
+            //     return false;
+            // }
+            // if (apiServiceId == null || apiServiceId == "") {
+            //     $("#apiServiceId").addClass('input-invalid');
+            //     $("apiServiceId").focus();
+            //     return false;
+            // }
             return true;
         }
 

+ 1 - 1
SuperAdmin/SuperAdmin/Views/Home/Login.cshtml

@@ -14,7 +14,7 @@
             @* <div class="logo-circle">
                 <i class="ft-lock" style="font-size: 36px; color: #333;"></i>
             </div> *@
-            <h2 class="login-title">BALANCE PLUS MYTEL</h2>
+            <h2 class="login-title">CMS COMMUNICATIONS</h2>
         </div>
         
         <div class="form-section">

+ 8 - 8
SuperAdmin/SuperAdmin/Views/Partial/_Campaign.cshtml

@@ -1,4 +1,4 @@
-@using SuperAdmin.Models;
+@using SuperAdmin.Models;
 @using SuperAdmin.Models.Http;
 @using SuperAdmin.Controllers;
 @using SuperAdmin.Models.Object
@@ -56,30 +56,30 @@
             </select>
         </div>
     </div>
-    <div class="col-md-6">
+    @* <div class="col-md-6">
         <div class="form-group">
             <label for="date">Priority</label>
             <input type="number" class="form-control" id="priority" name="priority" asp-for="priority">
         </div>
-    </div>
+    </div> *@
 
     <div class="col-md-6">
         <div class="form-group">
             <label for="wsName">Service Type</label>
             <select class="form-control" id="addType" name="addType" asp-for="addType" onchange="toggleServiceTypeFields()">
                 <option value="1">Text</option>
-                 <option value="2">1-Verification</option>
+                 @* <option value="2">1-Verification</option> *@
                 @*<option value="3">2-Verification</option> *@
             </select>
         </div>
     </div>
 
-    <div class="col-md-6">
+    @* <div class="col-md-6">
         <div class="form-group">
             <label for="date">Limit display</label>
             <input type="number" class="form-control" id="numberDisplay" name="numberDisplay" asp-for="numberDisplay">
         </div>
-    </div>
+    </div> *@
 
     <div class="col-md-6">
         <div class="form-group">
@@ -125,10 +125,10 @@
         <div class="form-group">
             <label for="date">
                 Content
-                <span class="text-danger" id="title-required-indicator" style="display:none">*</span>
+                <span class="text-danger" id="title-required-indicator">*</span>
             </label>
             <input type="text" class="form-control" id="title" name="title" onchange="updateTotalChar();" onkeyup="updateTotalChar();" asp-for="title">
-            <small class="text-muted" id="title-helper" style="display:none">Required when Service Type is Text</small>
+            <small class="text-muted" id="title-helper">Campaign content</small>
         </div>
     </div>
 

+ 2 - 2
SuperAdmin/SuperAdmin/Views/Partial/_CampaignCriteria.cshtml

@@ -35,7 +35,7 @@
 
 <div class="col-12 row">
     <div class="col-md-4">
-        <label for="date">Subs Balance</label>
+        <label for="date">Call Criteria</label>
         <div class="form-group">
             <div class="table-responsive">
                 <table class="table">
@@ -68,7 +68,7 @@
         </div>
     </div>
     <div class="col-md-4">
-        <label for="date">Valid Till Days</label>
+        <label for="date">Card Criteria</label>
         <div class="form-group">
             <div class="table-responsive">
                 <table class="table">

+ 17 - 17
SuperAdmin/SuperAdmin/Views/Partial/_CampaignService.cshtml

@@ -44,7 +44,7 @@
         if (!string.IsNullOrWhiteSpace(partnerRaw))
         {
             partnerRaw = partnerRaw.Trim();
-            if (partnerRaw.Equals("1", StringComparison.OrdinalIgnoreCase) || partnerRaw.Equals("viettech", StringComparison.OrdinalIgnoreCase))
+            if (partnerRaw.Equals("1", StringComparison.OrdinalIgnoreCase) || partnerRaw.Equals("Khmernet", StringComparison.OrdinalIgnoreCase))
             {
                 partnerValue = "1";
             }
@@ -56,7 +56,7 @@
         var ussd2Value = currentService?.msgConfirm ?? string.Empty;
         <div class="row" name="campService" id="campService-@i">
             <!-- Row 1: Service Group và Service -->
-            <div class="col-md-3">
+            @* <div class="col-md-3">
                 <div class="form-group">
                     <label>Service Group</label>
                     <select class="form-control" id="serviceGroup-@i" onchange="filterServicesByGroup('@i')">
@@ -87,8 +87,8 @@
                         }
                     </select>
                 </div>
-            </div>
-            <div class="col-md-5">
+            </div> *@
+            <div class="col-md-8">
                 <div class="form-group">
                     <label>Service</label>
                     <div class="searchable-dropdown" id="serviceDropdown-@i">
@@ -111,29 +111,29 @@
                     </div>
                 </div>
             </div>
-            <div class="col-md-2">
+            <div class="col-md-4">
                 <div class="form-group">
                     <label>Partner</label>
                     <select class="form-control partner-display" id="partner-@i" disabled>
                         @if (partnerValue == "0")
                         {
-                            <option value="0" selected>Mytel</option>
+                            <option value="0" selected>Metfone</option>
                         }
                        
                         @if (partnerValue == "1")
                         {
-                            <option value="1" selected>Viettech</option>
+                            <option value="1" selected>Khmernet</option>
                         }
                        
                     </select>
                 </div>
             </div>
-            <div class="col-md-2">
+            @* <div class="col-md-2">
                 <div class="form-group">
                     <label>&nbsp;</label>
                     <button onclick="removeService(@i);" class="btn btn-outline-danger btn-add-service form-control"><span class="fa fa-minus"></span> Remove</button>
                 </div>
-            </div>
+            </div> *@
             
             <!-- Row 2: USSD Teaser 1, Key 1, USSD Teaser 2, Key 2 -->
             <div class="col-md-3 service-field service-field--ussd1">
@@ -179,7 +179,7 @@ else
 {
     <div class="row" name="campService" id="campService-@nextIndex">
         <!-- Row 1: Service Group và Service -->
-        <div class="col-md-3">
+        @* <div class="col-md-3">
             <div class="form-group">
                 <label>Service Group</label>
                 <select class="form-control" id="serviceGroup-@nextIndex" onchange="filterServicesByGroup('@nextIndex')">
@@ -193,8 +193,8 @@ else
                     }
                 </select>
             </div>
-        </div>
-        <div class="col-md-5">
+        </div> *@
+        <div class="col-md-8">
             <div class="form-group">
                 <label>Service</label>
                 <div class="searchable-dropdown" id="serviceDropdown-@nextIndex">
@@ -216,21 +216,21 @@ else
                 </div>
             </div>
         </div>
-        <div class="col-md-2">
+        <div class="col-md-4">
             <div class="form-group">
                 <label>Partner</label>
                 <select class="form-control partner-display" id="partner-@nextIndex" disabled>
-                    <option value="0" selected>Mytel</option>
-                    <option value="1">Viettech</option>
+                    <option value="0" selected>Metfone</option>
+                    <option value="1">Khmernet</option>
                 </select>
             </div>
         </div>
-        <div class="col-md-2">
+        @* <div class="col-md-2">
             <div class="form-group">
                 <label>&nbsp;</label>
                 <button onclick="removeService(@nextIndex);" class="btn btn-outline-danger btn-add-service form-control"><span class="fa fa-minus"></span> Remove</button>
             </div>
-        </div>
+        </div> *@
         
         <!-- Row 2: USSD Teaser 1, Key 1, USSD Teaser 2, Key 2 -->
         <div class="col-md-3 service-field service-field--ussd1">

+ 2 - 2
SuperAdmin/SuperAdmin/Views/Partial/_Criteria.cshtml

@@ -8,7 +8,7 @@
 
 <div class="card">
     <div class="card-header">
-        <h4 class="card-title" id="basic-layout-form">Subs Balance</h4>
+        <h4 class="card-title" id="basic-layout-form">Call Criteria</h4>
         <button type="button" class="btn btn-primary" onclick="add(1)" id="btnAdd1">
             <i class="fa fa-plus"></i> Add
         </button>
@@ -89,7 +89,7 @@
 
 <div class="card">
     <div class="card-header">
-        <h4 class="card-title" id="basic-layout-form">Valid Till Days</h4>
+        <h4 class="card-title" id="basic-layout-form">Card Criteria</h4>
         <button type="button" class="btn btn-primary" onclick="add(2)" id="btnAdd2">
             <i class="fa fa-plus"></i> Add
         </button>

+ 3 - 1
SuperAdmin/SuperAdmin/Views/Partial/_Functions.cshtml

@@ -15,6 +15,7 @@
                 <th scope="col" class="text-center" style="vertical-align:middle">Name</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Link</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Note</th>
+                <th scope="col" class="text-center" style="vertical-align:middle">Status</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Action</th>
             </tr>
         </thead>
@@ -31,6 +32,7 @@
                         <td class="text-left">@func.name</td>
                         <td class="text-left">@func.link</td>
                         <td class="text-left">@func.note</td>
+                        <td class="text-center">@(func.status == "1" ? "Active" : "Inactive")</td>
                         <td class="text-center">
                             <div class="btn-group" role="group">
                                 <button class="btn btn-sm btn-outline-primary" onclick="edit('@func.id')">Edit</button>
@@ -43,7 +45,7 @@
             else
             {
                 <tr>
-                    <td colspan="7">No data</td>
+                    <td colspan="8">No data</td>
                 </tr>
             }
         </tbody>

+ 1 - 1
SuperAdmin/SuperAdmin/Views/Partial/_ListSub.cshtml

@@ -42,7 +42,7 @@
                             <span class="badge badge-success">Active</span>
                         }
                     </td>
-                    <td class="text-center">@CommonUtils.GetStatusExportName(ws.status)</td>
+                    <td class="text-center">@CommonUtils.GetStatusExportNameV2(ws.status)</td>
                     <td class="text-center p-0" style="vertical-align: middle">
                         <div>
                             <button class="btn btn-sm btn-outline-primary" onclick="editList('@ws.id')"><span class="fa fa-edit"></span> Edit</button>

+ 5 - 5
SuperAdmin/SuperAdmin/Views/Partial/_ReportCampaign.cshtml

@@ -15,12 +15,12 @@
                 <th scope="col" class="text-center" style="vertical-align:middle">Campaign Type</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Service Type</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Services Name</th>
-                <th scope="col" class="text-center" style="vertical-align:middle">Total Send 1</th>
-                <th scope="col" class="text-center" style="vertical-align:middle">Total press 1 of send 1</th>
+                <th scope="col" class="text-center" style="vertical-align:middle">USSD out success</th>
+                @* <th scope="col" class="text-center" style="vertical-align:middle">Total press 1 of send 1</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Total Send 2</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Total press 1 of send 2</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Total Success</th>
-                <th scope="col" class="text-center" style="vertical-align:middle">Total Fail</th>
+                <th scope="col" class="text-center" style="vertical-align:middle">Total Fail</th> *@
             </tr>
         </thead>
         <tbody id="gridbody_detail">
@@ -39,11 +39,11 @@
                         <td class="text-left">@((int.Parse(ws.serviceType) - 1) + "-Verification")</td>
                         <td class="text-left">@ws.serviceName</td>
                         <td class="text-left">@ws.totalView1</td>
-                        <td class="text-left">@ws.activation1</td>
+                        @* <td class="text-left">@ws.activation1</td>
                         <td class="text-left">@ws.totalView2</td>
                         <td class="text-left">@ws.activation2</td>
                         <td class="text-left">@ws.success</td>
-                        <td class="text-left">@ws.fail</td>
+                        <td class="text-left">@ws.fail</td> *@
                     </tr>
                 }
             }

+ 9 - 9
SuperAdmin/SuperAdmin/Views/Partial/_ReportCountDaily.cshtml

@@ -17,13 +17,13 @@
                 <th scope="col" class="text-center" style="vertical-align:middle">Service Type</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Partner</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Service Name</th>
-                <th scope="col" class="text-center" style="vertical-align:middle">Total Send 1</th>
-                <th scope="col" class="text-center" style="vertical-align:middle">Total press 1 of send 1</th>
+                <th scope="col" class="text-center" style="vertical-align:middle">USSD out success</th>
+                @* <th scope="col" class="text-center" style="vertical-align:middle">Total press 1 of send 1</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Total Send 2</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Total press 1 of send 2</th>
                 <th scope="col" class="text-center" style="vertical-align:middle">Total Success</th>
-                <th scope="col" class="text-center" style="vertical-align:middle">Total Fail</th>
-                <th scope="col" class="text-center" style="vertical-align:middle">Action</th>
+                <th scope="col" class="text-center" style="vertical-align:middle">Total Fail</th> *@
+                @* <th scope="col" class="text-center" style="vertical-align:middle">Action</th> *@
             </tr>
         </thead>
         <tbody id="gridbody_detail">
@@ -41,19 +41,19 @@
                         <td class="text-center">@ws.priority</td>
                         <td class="text-center">@(ws.isDefault == "0" ? "Normal" : ws.isDefault == "1" ? "Default" : ws.isDefault)</td>
                         <td class="text-center">@(ws.addType == "1" ? "Text" : ws.addType == "2" ? "1-Verification" : ws.addType == "3" ? "2-Verification" : ws.addType)</td>
-                        <td class="text-center">@(ws.isMyService == "0" ? "mytel" : ws.isMyService == "1" ? "viettech" : ws.isMyService)</td>
+                        <td class="text-center">@(ws.isMyService == "0" ? "Metfone" : ws.isMyService == "1" ? "Khmernet" : ws.isMyService)</td>
                         <td class="text-left">@ws.serviceName</td>
                         <td class="text-right">@ws.countSend1</td>
-                        <td class="text-right">@ws.countPress1</td>
+                        @* <td class="text-right">@ws.countPress1</td>
                         <td class="text-right">@ws.countSend2</td>
                         <td class="text-right">@ws.countPress2</td>
                         <td class="text-right">@ws.countRegSuccess</td>
-                        <td class="text-right">@ws.countRegFail</td>
-                        <td class="text-center">
+                        <td class="text-right">@ws.countRegFail</td> *@
+                        @* <td class="text-center">
                             <button type="button" class="btn btn-sm btn-info" onclick="viewErrorDetail('@ws.reportDate', '@ws.campaignId', '@ws.serviceId')">
                                 <i class="fa fa-eye"></i> Detail
                             </button>
-                        </td>
+                        </td> *@
                     </tr>
                 }
             }

+ 5 - 5
SuperAdmin/SuperAdmin/Views/Partial/_ReportUssdDetail.cshtml

@@ -12,15 +12,15 @@
                 <th>Msisdn</th>
                 <th>Send Time</th>
                 <th>Send Status</th>
-                <th>Total Step</th>
-                <th>Is Step 1</th>
+                <th>Content received</th>
+                @* <th>Is Step 1</th>
                 <th>Step 1 Time</th>
                 <th>Is Step 2</th>
                 <th>Step 2 Time</th>
                 <th>Error Code</th>
                 <th>Is Success</th>
                 <th>Insert Time</th>
-                <th>Last Update</th>
+                <th>Last Update</th> *@
                 <th>Msg Content</th>
             </tr>
         </thead>
@@ -42,14 +42,14 @@
                     <td>@row.sendTime</td>
                     <td>@row.sendStatus</td>
                     <td>@row.totalStep</td>
-                    <td>@row.isStep1</td>
+                    @* <td>@row.isStep1</td>
                     <td>@row.step1Time</td>
                     <td>@row.isStep2</td>
                     <td>@row.step2Time</td>
                     <td>@row.errorCode</td>
                     <td>@row.isSuccess</td>
                     <td>@row.insertTime</td>
-                    <td>@row.lastUpdate</td>
+                    <td>@row.lastUpdate</td> *@
                     <td>@row.msgContent</td>
                 </tr>
             }

+ 1 - 1
SuperAdmin/SuperAdmin/Views/Shared/_Layout.cshtml

@@ -186,7 +186,7 @@
         </footer>*@
     <footer class="footer footer-static footer-light navbar-border">
         <p class="clearfix blue-grey lighten-2 text-sm-center mb-0 px-2">
-            <span class="float-md-left d-block d-md-inline-block">Copyright  &copy; @DateTime.Now.Year Viettech</span>
+            <span class="float-md-left d-block d-md-inline-block">Copyright  &copy; @DateTime.Now.Year Khmernet</span>
             <span class="float-md-right d-none d-lg-block">You made with <i class="feather icon-heart pink"></i></span>
         </p>
     </footer>

+ 3 - 0
test ka.txt

@@ -0,0 +1,3 @@
+855712027298
+855712002113
+855716411464

+ 3 - 0
userVPN.txt

@@ -0,0 +1,3 @@
+vpn5pc.metfone.com.kh:33888
+
+VTC_VAS_Partner1/MetFOne@@0303^&