diff --git a/API/APIModels.cs b/API/APIModels.cs index b07a1d4..565152c 100644 --- a/API/APIModels.cs +++ b/API/APIModels.cs @@ -19,7 +19,6 @@ namespace SafeBagDE70.API { public static class APIModels { - public static string URL = "http://203.171.20.94:9103/Safebag/"; public static async void SendHealthCheck_old(string? ID=null) { try @@ -30,7 +29,7 @@ namespace SafeBagDE70.API // Pass the handler to httpclient(from you are calling api) HttpClient httpClient = new HttpClient(clientHandler); - using HttpResponseMessage response = await httpClient.GetAsync(URL + "HealthCheck?Id=" + ID); + using HttpResponseMessage response = await httpClient.GetAsync(AppData.BaseURL + "HealthCheck?Id=" + ID); if (response.EnsureSuccessStatusCode().StatusCode == HttpStatusCode.OK) { @@ -57,7 +56,7 @@ namespace SafeBagDE70.API string strJsonObj = JsonConvert.SerializeObject(deviceStatus); var content = new StringContent(strJsonObj, Encoding.UTF8, "application/json"); - using HttpResponseMessage response = await httpClient.PostAsync(URL + "HealthCheck_v2", content); + using HttpResponseMessage response = await httpClient.PostAsync(AppData.BaseURL + "HealthCheck_v2", content); if (response.EnsureSuccessStatusCode().StatusCode == HttpStatusCode.OK) { @@ -86,7 +85,7 @@ namespace SafeBagDE70.API string strJsonObj = JsonConvert.SerializeObject(data2Send); var content = new StringContent(strJsonObj, Encoding.UTF8, "application/json"); - using HttpResponseMessage response = await httpClient.PostAsync(URL + "UpdateCountingData", content); + using HttpResponseMessage response = await httpClient.PostAsync(AppData.BaseURL + "UpdateCountingData", content); if (response.EnsureSuccessStatusCode().StatusCode == HttpStatusCode.OK) { @@ -105,7 +104,7 @@ namespace SafeBagDE70.API { try { - var url = URL + "GetAeonMallCustomers?tenantId="+tenantId; + var url = AppData.BaseURL + "GetAeonMallCustomers?tenantId="+tenantId; HttpClientHandler clientHandler = new HttpClientHandler(); clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; }; diff --git a/Admin/UserManageUC.xaml.cs b/Admin/UserManageUC.xaml.cs index eb9a023..eac572b 100644 --- a/Admin/UserManageUC.xaml.cs +++ b/Admin/UserManageUC.xaml.cs @@ -40,7 +40,7 @@ namespace SafeBagDE70.Admin private async void btnGetUsers_Click(object sender, RoutedEventArgs e) { - var amCustomers= await APIModels.GetAeonMallCustomers(5); + var amCustomers= await APIModels.GetAeonMallCustomers(AppData.TenantId); using(var context = new CDMDbContext()) { var customers = context.Customers; diff --git a/App.xaml.cs b/App.xaml.cs index f68e6d1..dab39cc 100644 --- a/App.xaml.cs +++ b/App.xaml.cs @@ -69,6 +69,8 @@ namespace SafeBagDE70 .CreateLogger(); AppData.CDMPort = configuration["SerialPort:CDMPort"]; AppData.SensorPort = configuration["SerialPort:SensorPort"]; + AppData.BaseURL = configuration["Device:BaseURL"]; + AppData.TenantId = int.Parse("0" + configuration["Device:TenantId"]); var maxNotes = int.Parse("0"+configuration["CDM:MaxNotes"]); if(maxNotes > 0) AppData.MaxNotes = maxNotes; diff --git a/AppData.cs b/AppData.cs index 2ce07fc..9ea819f 100644 --- a/AppData.cs +++ b/AppData.cs @@ -10,6 +10,7 @@ using System.Globalization; using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Controls; @@ -30,7 +31,10 @@ namespace SafeBagDE70 public static ListView logListView = null; public static int MaxLogCount = 500; public static int MaxNotes = 300; + public static string BaseURL = ""; + public static int TenantId = 0; public static DeviceStatus? DeviceStatus = null; + public static void Init() { @@ -55,7 +59,7 @@ namespace SafeBagDE70 DeviceStatus = new DeviceStatus { Device = Environment.MachineName, - TenantId = 5, + TenantId = AppData.TenantId, Status = 0, CDMStatus = 0, PrinterStatus = 0, @@ -70,8 +74,9 @@ namespace SafeBagDE70 public static void GetNewTransactionCode() { DateTime transactionDateTime = DateTime.Now; - string merchantCode = CurrentCustomerAccount.CustomerId; - + + var match = Regex.Match(CurrentCustomerAccount.CustomerId, @"\d+$"); + string merchantCode_part = match.Value; // Adjust transaction date if it's past cut-off time (12:00 noon) DateTime prevadjustedDate = CurrentCustomerAccount.TransactionTime.Hour >= CutOffTime.Hour ? transactionDateTime.Date : transactionDateTime.Date.AddDays(-1); @@ -90,7 +95,7 @@ namespace SafeBagDE70 string transactionCountPart = transactionCount.ToString("D2"); // Ensure 2 digits // Combine all parts to form the transaction ID - string transactionId = $"{datePart}{timePart}{merchantCode}{transactionCountPart}"; + string transactionId = $"{datePart}{timePart}{merchantCode_part}{transactionCountPart}"; CurrentCustomerAccount.TransactionCode = transactionId; CurrentCustomerAccount.TransactionTime = transactionDateTime; @@ -114,8 +119,9 @@ namespace SafeBagDE70 AppData.CDMSTATE.IsRejectPocketFull = data[3] & 0x40; AppData.CDMSTATE.IsNotesInRejectPocket = data[3] & 0x10; AppData.CDMSTATE.IsNotesInHopper = data[3] & 0x01; + AppData.CDMSTATE.IsStackerFull = (data[2] == 0x43?1:0); - if (data[0] == 0x40 && data[1] == 0x07 && data[2] == 0x41) + if (data[0] == 0x40 && data[1] == 0x07) AppData.CDMSTATE.IsError = 0; else AppData.CDMSTATE.IsError = 1; @@ -270,6 +276,7 @@ namespace SafeBagDE70 public int IsRejectPocketFull = 0; public int IsNotesInRejectPocket = 0; public int IsNotesInHopper = 0; + public int IsStackerFull = 0; public int IsError = 0; public RecvData? RecvDat = null; public byte GetSR1() diff --git a/De70Cmdv2.cs b/De70Cmdv2.cs index 52c6924..6c484d3 100644 --- a/De70Cmdv2.cs +++ b/De70Cmdv2.cs @@ -108,7 +108,7 @@ { SendDataSet(); send_dat.ret = SendData(); - Log.Information("[CMD_SEND] " + GetSendDat(false)); + //Log.Information("[CMD_SEND] " + GetSendDat(false)); if (send_dat.ret != Constants.E_OK) { @@ -117,7 +117,7 @@ } recv_dat.ret = WaitRsp(); - Log.Information("[CMD_RCV] " +GetRecvDat()); + //Log.Information("[CMD_RCV] " +GetRecvDat()); if (recv_dat.ret != Constants.E_OK) { diff --git a/DepositSMUCv2.xaml.cs b/DepositSMUCv2.xaml.cs index 75c6de7..f5a58ab 100644 --- a/DepositSMUCv2.xaml.cs +++ b/DepositSMUCv2.xaml.cs @@ -619,14 +619,7 @@ namespace SafeBagDE70 AutoSerialGet(); bIsCounted = true; Log.Information("After AutoCount: " + GetShortInforFromCountItems()); - var state=GetCDMState(); - if (state.IsError>0) - { - string str = "ĐÃ XẢY RA LỖI TRONG QUÁ TRÌNH NỘP TIỀN"; - Log.Information(str); - DoCheck(); - EndSession(COUNTINGSTATE.FULLIFSTORE, str); - } + }); @@ -1352,14 +1345,35 @@ namespace SafeBagDE70 Task.Run(() => { taskCounting.Wait(); - Dispatcher.Invoke(() => + var state = GetCDMState(); + if (state.IsError > 0) { - btnCountStart.IsEnabled = true; - btnCheck.IsEnabled = true; - btnStoreStart.IsEnabled = true; - ResetTimers(); - Log.Information("2. Count completed"); - }); + string str = "ĐÃ XẢY RA LỖI TRONG QUÁ TRÌNH NỘP TIỀN"; + Log.Information(str); + DoCheck(); + EndSession(COUNTINGSTATE.FULLIFSTORE, str); + } + else if (state.IsStackerFull>0) { + Dispatcher.Invoke(() => + { + btnCheck.IsEnabled = true; + btnStoreStart.IsEnabled = true; + ResetTimers(); + Log.Information("2. Count completed"); + }); + } + else + { + Dispatcher.Invoke(() => + { + btnCountStart.IsEnabled = true; + btnCheck.IsEnabled = true; + btnStoreStart.IsEnabled = true; + ResetTimers(); + Log.Information("2. Count completed"); + }); + } + }); diff --git a/WelcomeUC.xaml b/WelcomeUC.xaml index d9e842c..a9ffa8c 100644 --- a/WelcomeUC.xaml +++ b/WelcomeUC.xaml @@ -39,7 +39,7 @@ - +