public async void ExecuteSaveCommand() { try { var result = await App.Current.MainPage.DisplayAlert("Confirm", "Are you sure to save Split?", "Yes", "No"); if (result) { LoadingMessage = "Loading Please Wait!!!"; IsLoading = true; if (Helpers.Data.SelectedTable == null) { DependencyService.Get <IMessage>().ShortAlert("Data mismatch Error."); IsLoading = false; return; } var list = new List <KOTProd>(OrderItemsList); var recList = new List <KOTProd>(Helpers.Data.OrderItemsList); SplitTransfer SplitTransfer = new SplitTransfer(); SplitTransfer = new SplitTransfer() { TableNo = Helpers.Data.SelectedTable.TableNo, transferData = OrderItemsList.ToList(), TRNUSER = Helpers.Constants.User.UserName }; SplitTransfer.transferData.ForEach(x => x.DispatchTime = null); SplitTransfer.transferData.ForEach(x => x.TRNDATE = null); var res = await TableTransferAccess.GetSplitTableAsync(SplitTransfer); if (res.ToLower() == "success") { DependencyService.Get <IMessage>().ShortAlert("Split Successful"); await App.Current.MainPage.Navigation.PopModalAsync(); } else { DependencyService.Get <IMessage>().ShortAlert(res); } IsLoading = false; } } catch (Exception e) { IsLoading = false; DependencyService.Get <IMessage>().ShortAlert(e.Message); } }
public static async Task <string> GetSplitTableAsync(SplitTransfer SplitTransfer) { try { String url = GenerateSplitTableURL(); var JsonObject = JsonConvert.SerializeObject(SplitTransfer); string ContentType = "application/json"; // or application/xml using (HttpClient client = new HttpClient()) { var response = await client.PostAsync(url, new StringContent(JsonObject.ToString(), Encoding.UTF8, ContentType)); var json = await response.Content.ReadAsStringAsync(); return(json); } } catch (Exception e) { return(e.Message); } }
public string SplitTable([FromBody] SplitTransfer SplitTransfer) { return(new TableTransferMethods().SplitTable(SplitTransfer)); }
public string SplitTable(SplitTransfer SplitTransfer) { try { if (SplitTransfer == null) { return("No data Received"); } List <KOTProd> ProdList = SplitTransfer.transferData; var TABLENO = SplitTransfer.TableNo; var TRNUSER = SplitTransfer.TRNUSER; string WareHouse, PAX; double VATAMNT = 0.0, NETAMNT = 0.0, STAX = 0.0, TOTAMNT = 0.0; using (SqlConnection cnMain = new SqlConnection(ConnectionDbInfo.ConnectionString)) { cnMain.Open(); if (cnMain.ExecuteScalar <byte>("SELECT ISNULL(MIN(P.STATUS), 128) FROM RMD_KOTMAIN K JOIN RMD_KOTMAIN_STATUS KMS ON K.KOTID=KMS.KOTID LEFT JOIN RMD_KOTMAIN_PREBILL P ON K.KOTID = P.KOTID AND K.TABLENO = P.TABLENO WHERE KMS.STATUS='ACTIVE' AND K.TABLENO = '" + TABLENO + "'") < 2) { return("Pre-Bill is pending for this table. Thus, you cannot Split/Transfer order on this table."); } WareHouse = cnMain.ExecuteScalar <string>("SELECT NAME FROM RMD_WAREHOUSE WHERE ISDEFAULT='T'"); IEnumerable <dynamic> KPList = cnMain.Query <dynamic>("SELECT MCODE, KOT, KOTTIME, WaiterName, Quantity, RealQty, KP.KOTID FROM RMD_KOTPROD KP JOIN RMD_KOTMAIN_STATUS KMS ON KP.KOTID=KMS.KOTID WHERE KMS.STATUS='ACTIVE' AND KP.TABLENO = '" + TABLENO + "'"); if (KPList == null) { return("Data MisMatch Error: No Items found for this table"); } int oldKotId = Convert.ToInt32(KPList.FirstOrDefault().KOTID); using (SqlTransaction tran = cnMain.BeginTransaction()) { // cnMain.Execute("DELETE FROM RMD_KOTMAIN WHERE TABLENO='" + TABLENO + "'", transaction: tran); int updatedKotId = cnMain.ExecuteScalar <int>("UPDATE RMD_KOTMAIN_STATUS SET STATUS='SPLIT' output inserted.KOTID WHERE STATUS='ACTIVE' AND TABLENO='" + TABLENO + "'", transaction: tran); string RemarkStatus = "Split-"; foreach (string TBLNO in ProdList.Select(x => x.TABLENO).Distinct()) { foreach (KOTProd kp in ProdList.Where(x => x.TABLENO == TBLNO)) { foreach (dynamic KProd in KPList.Where(x => x.MCODE == kp.MCODE)) { bool Break = false; if (KProd.Quantity >= (decimal)kp.Quantity) { KProd.Quantity -= (decimal)kp.Quantity; Break = true; } //else if (KProd.Quantity > 0) //{ // kp.Quantity = (double)KProd.Quantity; // KProd.Quantity -= (decimal)kp.Quantity; //} else { continue; } kp.KOT = KProd.KOT; kp.WAITERNAME = KProd.WaiterName; kp.WAREHOUSE = WareHouse; var MenuItem = cnMain.Query("SELECT RATE_A, VAT, DESCA, BASEUNIT, ISBARITEM FROM MENUITEM WHERE MCODE='" + kp.MCODE + "'", transaction: tran).FirstOrDefault(); kp.ItemDesc = MenuItem.DESCA; kp.UNIT = MenuItem.BASEUNIT; kp.ISBOT = MenuItem.ISBARITEM; kp.RATE = Convert.ToDouble(MenuItem.RATE_A); kp.AMOUNT = kp.RATE * kp.Quantity; kp.SERVICETAX = kp.AMOUNT * 0.1; if (MenuItem.VAT == 1) { kp.VAT = (kp.AMOUNT + kp.SERVICETAX) * 0.13; } kp.NAMNT = kp.AMOUNT + kp.SERVICETAX + kp.VAT; TOTAMNT += kp.AMOUNT; STAX += kp.SERVICETAX; VATAMNT += kp.VAT; NETAMNT += kp.NAMNT; if (Break) { break; } } } PAX = ProdList.First(x => x.TABLENO == TBLNO).PAX; int KOTID = cnMain.ExecuteScalar <int>("UPDATE RMD_SEQUENCES SET CurNo = CurNo + 1 output inserted.CurNo WHERE VNAME = 'KOTID'", transaction: tran); string Remarks = "Split, " + TABLENO + ", " + oldKotId; RemarkStatus += KOTID + ","; var availableKOTID = cnMain.ExecuteScalar <int>("select KOTID from rmd_kotmain_status where status='ACTIVE' and tableno='" + TBLNO + "'", transaction: tran); //empty table split if (availableKOTID == 0) { // cnMain.Execute("INSERT INTO RMD_KOTMAIN_STATUS (KOTID,TABLENO,STATUS,Division) VALUES(@KOTID,@TABLENO,@STATUS,')", new KOTMAINSTATUS { KOTID = KOTID, TABLENO = TBLNO, STATUS = "ACTIVE" }, transaction: tran); cnMain.Execute(@"INSERT INTO RMD_KOTMAIN (TABLENO, TRNDATE, TRNUSER, DIVISION, TRNTIME, TERMINAL, WAITER, TOTAMNT, VATAMNT, NETAMNT, STAX, PAX, KOTID, EDITUSER) VALUES('" + TBLNO + "',CONVERT(VARCHAR,GETDATE(),101), '" + TRNUSER + "','" + ConnectionDbInfo.DIVISION + "','" + DateTime.Now.ToString("hh:mm:ss tt") + "','" + ConnectionDbInfo.TERMINAL + "','" + TRNUSER + "'," + TOTAMNT + "," + VATAMNT + "," + NETAMNT + "," + STAX + "," + PAX + ", " + KOTID + ", '" + Remarks + "')", transaction: tran); cnMain.Execute(QUERY_RMD_KOTMAIN_STATUS, new KOTMAINSTATUS { TABLENO = TBLNO, STATUS = "ACTIVE", KOTID = KOTID }, transaction: tran); foreach (KOTProd kp in ProdList.Where(x => x.TABLENO == TBLNO)) { int SNO = cnMain.ExecuteScalar <int>("SELECT ISNULL(MAX(SNO), 0) FROM RMD_KOTPROD KP JOIN RMD_KOTMAIN_STATUS KMS ON KP.KOTID=KMS.KOTID WHERE KMS.STATUS='ACTIVE' AND KP.TABLENO='" + TBLNO + "'", transaction: tran); kp.SNO = SNO + 1; cnMain.Execute(@"INSERT INTO RMD_KOTPROD (TABLENO, MCODE, UNIT, QUANTITY, REALQTY, AMOUNT, ItemDesc, KOTTIME, KITCHENDISPATCH, Remarks, DIVISION, TRNDATE, RATE, REALRATE, VAT, SERVICETAX, AltQty, DISCOUNT, WAREHOUSE, NAMNT, ISBOT, KOT, SNO, WAITERNAME, KOTID) VALUES (@TABLENO, @MCODE, @UNIT, @QUANTITY, @QUANTITY, @AMOUNT, @ItemDesc, @KOTTIME, 0, @Remarks, '" + ConnectionDbInfo.DIVISION + "', CONVERT(VARCHAR,GETDATE(),101), @RATE, @RATE, @VAT, @SERVICETAX, 0, 0, @WAREHOUSE, @NAMNT, @ISBOT, @KOT, @SNO, @WAITERNAME, " + KOTID + ")", kp, transaction: tran); } } //packed table split else { foreach (KOTProd kp in ProdList.Where(x => x.TABLENO == TBLNO)) { int SNO = cnMain.ExecuteScalar <int>("SELECT ISNULL(MAX(SNO), 0) FROM RMD_KOTPROD KP JOIN RMD_KOTMAIN_STATUS KMS ON KP.KOTID=KMS.KOTID WHERE KMS.STATUS='ACTIVE' AND KP.TABLENO='" + TBLNO + "'", transaction: tran); kp.SNO = SNO + 1; cnMain.Execute(@"INSERT INTO RMD_KOTPROD (TABLENO, MCODE, UNIT, QUANTITY, REALQTY, AMOUNT, ItemDesc, KOTTIME, KITCHENDISPATCH, Remarks, DIVISION, TRNDATE, RATE, REALRATE, VAT, SERVICETAX, AltQty, DISCOUNT, WAREHOUSE, NAMNT, ISBOT, KOT, SNO, WAITERNAME, KOTID) VALUES (@TABLENO, @MCODE, @UNIT, @QUANTITY, @QUANTITY, @AMOUNT, @ItemDesc, @KOTTIME, 0, @Remarks, '" + ConnectionDbInfo.DIVISION + "', CONVERT(VARCHAR,GETDATE(),101), @RATE, @RATE, @VAT, @SERVICETAX, 0, 0, @WAREHOUSE, @NAMNT, @ISBOT, @KOT, @SNO, @WAITERNAME, " + availableKOTID + ")", kp, transaction: tran); } } } cnMain.Execute("UPDATE RMD_KOTMAIN_STATUS SET REMARKS='" + RemarkStatus + "' WHERE KOTID=" + updatedKotId, transaction: tran); tran.Commit(); return("success"); } } } catch (Exception e) { return(e.Message); } }
public async void ExecuteSaveCommand() { try { if (((FirstQuantity + SecondQuantity) != SelectedOrder.Quantity) || FirstQuantity == 0 || SecondQuantity == 0) { IsLoading = false; DependencyService.Get <IMessage>().ShortAlert("Quantity Entry Incorrect.."); return; } var result = await App.Current.MainPage.DisplayAlert("Confirm", "Are you sure to save Split?", "Yes", "No"); if (result) { LoadingMessage = "Loading Please Wait!!!"; IsLoading = true; SplitList = new List <KOTProd>(); SplitList.Add(new KOTProd(SelectedOrder) { Quantity = FirstQuantity, Remarks = FirstRemarks }); SplitList.Add(new KOTProd(SelectedOrder) { Quantity = SecondQuantity, Remarks = SecondRemarks }); var items = Helpers.Data.OrderItemsList.Where(x => x.TABLENO == SelectedOrder.TABLENO && x.MCODE != SelectedOrder.MCODE).ToList(); SplitList.AddRange(items); SplitTransfer SplitTransfer = new SplitTransfer(); SplitTransfer = new SplitTransfer() { TableNo = SelectedOrder.TABLENO, transferData = SplitList, TRNUSER = Helpers.Constants.User.UserName }; SplitTransfer.transferData.ForEach(x => x.DispatchTime = null); SplitTransfer.transferData.ForEach(x => x.TRNDATE = null); var res = await TableTransferAccess.GetSplitTableAsync(SplitTransfer); if (res.ToLower() == "success") { DependencyService.Get <IMessage>().ShortAlert("Split Successful"); LoadingMessage = "Please Wait! Tables Loading..."; IsLoading = true; var functionResponse = await TableDataAccess.GetTableAsync(); if (functionResponse.status == "ok") { var list = JsonConvert.DeserializeObject <List <TableDetail> >(functionResponse.result.ToString()); Helpers.Data.TableList = JsonConvert.DeserializeObject <List <TableDetail> >(functionResponse.result.ToString()); } else { Helpers.Data.TableList = new List <TableDetail>(); IsLoading = false; DependencyService.Get <IMessage>().ShortAlert(functionResponse.Message); } LoadingMessage = "Please Wait! Order Items Loading..."; IsLoading = true; functionResponse = await TableDataAccess.GetAllKOTProdAsync(Helpers.Constants.User.UserName); if (functionResponse.status == "ok") { IsLoading = false; DependencyService.Get <IMessage>().ShortAlert("Order Items loaded successfully"); Helpers.Data.OrderItemsList = JsonConvert.DeserializeObject <List <KOTAppClassLibrary.Models.KOTProd> >(functionResponse.result.ToString()); } else { IsLoading = false; DependencyService.Get <IMessage>().ShortAlert("Error loading orders:" + functionResponse.Message); } await App.Current.MainPage.Navigation.PopModalAsync(); } else { DependencyService.Get <IMessage>().ShortAlert(res); } } } catch (Exception e) { IsLoading = false; DependencyService.Get <IMessage>().ShortAlert(e.Message); } }