Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 public string SplitTable([FromBody] SplitTransfer SplitTransfer)
 {
     return(new TableTransferMethods().SplitTable(SplitTransfer));
 }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }