Exemple #1
0
        public static async Task <string> SaveKOTProdListAsync(KOTListTransfer KOTData)
        {
            try
            {
                String url = GenerateSaveKOTProdListURL();

                var    JsonObject  = JsonConvert.SerializeObject(KOTData);
                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();

                    //var stringRes = JsonConvert.DeserializeObject<string>(json);

                    return(json);
                }
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }
Exemple #2
0
        //Command Execution for New and Save KOT Button
        public async void ExecuteKOTCommand(string val)
        {
            try
            {
                var res = await App.Current.MainPage.DisplayAlert("Confirm", "Are you sure?", "Yes", "No");

                if (res)
                {
                    //New KOT
                    if (val == "1")
                    {
                        await App.Current.MainPage.Navigation.PopAsync();
                    }

                    //Save KOT
                    else if (val == "2")
                    {
                        if (OrderItemsList == null || OrderItemsList.Count == 0)
                        {
                            DependencyService.Get <IMessage>().ShortAlert("No Order Items");
                            return;
                        }

                        var items = OrderItemsList;
                        if (items != null)
                        {
                            KOTListTransfer KOTData = new KOTListTransfer();
                            KOTData.TABLENO = Helpers.Data.SelectedTable.TableNo;
                            KOTData.TRNUSER = Helpers.Constants.User.UserName;
                            KOTData.PAX     = Helpers.Data.PAX;

                            KOTData.KOTProdList = OrderItemsList.ToList();

                            LoadingMessage = "Please Wait! Saving KOT Items";
                            IsLoading      = true;

                            var result = await TableDataAccess.SaveKOTProdListAsync(KOTData);

                            if (result == "Success")
                            {
                                DependencyService.Get <IMessage>().ShortAlert("Order Saved Successfully");
                                App.Current.MainPage = new NavigationPage(new HomePage());
                            }
                            else
                            {
                                DependencyService.Get <IMessage>().ShortAlert(result);
                            }
                            IsLoading = false;
                        }
                    }
                }
            }catch (Exception ex)
            {
                DependencyService.Get <IMessage>().ShortAlert(ex.Message);
            }
        }
Exemple #3
0
        public string postsaveOrders_New(KOTListTransfer KOTData)
        {
            try
            {
                string TABLENO, TRNUSER, PAX;

                List <KOTProd> ProdList = KOTData.KOTProdList;


                TABLENO = KOTData.TABLENO;
                TRNUSER = KOTData.TRNUSER;
                PAX     = KOTData.PAX;

                byte     vat = 0;
                double   confactor = 0;
                double   VATAMNT = 0.0, NETAMNT = 0.0, STAX = 0.0, TOTAMNT = 0.0;
                int      KOTID;
                DateTime Now;
                //string printTofile = "";

                if (ProdList == null)
                {
                    return("Error: Null Items Send");
                }
                else if (ProdList.Count == 0)
                {
                    return("Error: No KOTProd Items");
                }



                using (SqlConnection cnMain = new SqlConnection(ConnectionDbInfo.ConnectionString))
                {
                    cnMain.Open();
                    try
                    {
                        Now = cnMain.ExecuteScalar <DateTime>("SELECT GETDATE()");
                        // if (cnMain.ExecuteScalar<byte>("SELECT ISNULL(MIN(P.STATUS), 128) FROM RMD_KOTMAIN K LEFT JOIN RMD_KOTMAIN_PREBILL P ON K.KOTID = P.KOTID AND K.TABLENO = P.TABLENO WHERE K.TABLENO = '" + TABLENO + "'") < 2)
                        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 add/remove order on this table.");
                        }
                        using (SqlTransaction trnOrder = cnMain.BeginTransaction())
                        {
                            //printTofile = TABLENO + "," + DateTime.Today + Environment.NewLine;
                            try
                            {
                                if (string.IsNullOrEmpty(cnMain.ExecuteScalar <string>("SELECT VNAME FROM RMD_SEQUENCES WHERE VNAME='KOTID'", transaction: trnOrder)))
                                {
                                    cnMain.Execute("INSERT INTO RMD_SEQUENCES (VNAME,AUTO,Start,CurNo,Division) VALUES('KOTID',1,1,1,'" + ConnectionDbInfo.DIVISION + "')", transaction: trnOrder);
                                }


                                foreach (KOTProd kp in ProdList)
                                {
                                    kp.TABLENO = TABLENO;
                                    var ItemInfo = cnMain.Query <dynamic>("SELECT RATE_A, VAT, DESCA, ISBARITEM FROM MENUITEM WHERE MCODE='" + kp.MCODE + "'", transaction: trnOrder).FirstOrDefault();
                                    //kp.RATE = Convert.ToDouble(ItemInfo.RATE_A);
                                    vat      = ItemInfo.VAT;
                                    kp.ISBOT = ItemInfo.ISBARITEM;

                                    var AltItemInfo = cnMain.Query <dynamic>("SELECT ALTUNIT, CONFACTOR, RATE FROM MULTIALTUNIT WHERE MCODE='" + kp.MCODE + "' AND ALTUNIT='" + kp.UNIT + "'", transaction: trnOrder);
                                    if (AltItemInfo.Count() > 0)
                                    {
                                        kp.ALTUNIT  = AltItemInfo.First().ALTUNIT;
                                        confactor   = Convert.ToDouble(AltItemInfo.First().CONFACTOR);
                                        kp.RATE     = Convert.ToDouble(AltItemInfo.First().RATE);
                                        kp.RealQty  = kp.Quantity * confactor;
                                        kp.REALRATE = kp.RATE / confactor;
                                        kp.AltQty   = kp.Quantity;
                                    }
                                    else
                                    {
                                        kp.RealQty  = kp.Quantity;
                                        kp.REALRATE = kp.RATE;
                                    }
                                    kp.AMOUNT     = kp.RATE * kp.Quantity;
                                    kp.SERVICETAX = kp.AMOUNT * 0.1;
                                    if (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;
                                }
                                //int SNO = cnMain.ExecuteScalar<int>("SELECT ISNULL(MAX(SNO), 0) FROM RMD_KOTPROD WHERE TABLENO='" + TABLENO + "'", transaction: trnOrder);
                                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='" + TABLENO + "'", transaction: trnOrder);

                                if (SNO == 0)
                                {
                                    KOTID = cnMain.ExecuteScalar <int>("UPDATE RMD_SEQUENCES SET CurNo = CurNo + 1 output inserted.CurNo WHERE VNAME = 'KOTID'", transaction: trnOrder);
                                    cnMain.Execute(@"INSERT INTO RMD_KOTMAIN (TABLENO, TRNDATE, TRNUSER, DIVISION, TRNTIME, TERMINAL, WAITER, TOTAMNT, VATAMNT, NETAMNT, STAX, PAX, KOTID) SELECT '" + TABLENO
                                                   + "','" + Now.ToString("MM/dd/yyyy") + "', '" + TRNUSER + "','" + ConnectionDbInfo.DIVISION + "','" + Now.ToString("h:mm:ss tt") + "','" + ConnectionDbInfo.TERMINAL + "','" + TRNUSER + "','" + TOTAMNT + "','" + VATAMNT + "','" + NETAMNT + "','" + STAX + "','" + PAX + "', '" + KOTID + "'", transaction: trnOrder);
                                    cnMain.Execute(QUERY_RMD_KOTMAIN_STATUS, new KOTMAINSTATUS {
                                        TABLENO = TABLENO, STATUS = "ACTIVE", KOTID = KOTID
                                    }, transaction: trnOrder);
                                }
                                else
                                {
                                    //  KOTID = cnMain.ExecuteScalar<int>("UPDATE RMD_KOTMAIN SET TRNDATE = '" + Now.ToString("MM/dd/yyyy") + "',TRNUSER='******',TOTAMNT='" + TOTAMNT + "',VATAMNT='" + VATAMNT + "',NETAMNT='" + NETAMNT + "',STAX='" + STAX + "' OUTPUT INSERTED.KOTID WHERE TABLENO='" + TABLENO + "'", transaction: trnOrder);
                                    var alreadyOrderedKot = cnMain.Query("SELECT KP.* FROM RMD_KOTPROD KP JOIN RMD_KOTMAIN_STATUS KMS ON KMS.KOTID=KP.KOTID WHERE KMS.STATUS='ACTIVE' AND KP.TABLENO='" + TABLENO + "'", transaction: trnOrder);
                                    KOTID = cnMain.ExecuteScalar <int>("UPDATE RMD_SEQUENCES SET CurNo = CurNo + 1 output inserted.CurNo WHERE VNAME = 'KOTID'", transaction: trnOrder);
                                    int updatedStatusId = cnMain.ExecuteScalar <int>("UPDATE RMD_KOTMAIN_STATUS SET STATUS='UPDATE',REMARKS='" + "ID-" + KOTID + "' output inserted.KOTID WHERE STATUS='ACTIVE' AND TABLENO='" + TABLENO + "'", transaction: trnOrder);

                                    cnMain.Execute(@"INSERT INTO RMD_KOTMAIN (TABLENO, TRNDATE, TRNUSER, DIVISION, TRNTIME, TERMINAL, WAITER, TOTAMNT, VATAMNT, NETAMNT, STAX, PAX, KOTID) SELECT '" + TABLENO
                                                   + "','" + Now.ToString("MM/dd/yyyy") + "', '" + TRNUSER + "','" + ConnectionDbInfo.DIVISION + "','" + Now.ToString("h:mm:ss tt") + "','" + ConnectionDbInfo.TERMINAL + "','" + TRNUSER + "','" + TOTAMNT + "','" + VATAMNT + "','" + NETAMNT + "','" + STAX + "','" + PAX + "', '" + KOTID + "'", transaction: trnOrder);
                                    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, ALTUNIT, WAITERNAME, SNO, REFSNO, KOTID) 
                                                    VALUES (@TABLENO, @MCODE, @UNIT, @QUANTITY, @REALQTY, @AMOUNT, @ITEMDESC, @KOTTIME, @KITCHENDISPATCH, @Remarks, @DIVISION, @TRNDATE, @RATE, @REALRATE, @VAT, @SERVICETAX, @AltQty, @DISCOUNT,@WAREHOUSE , @NAMNT, @ISBOT,@KOT, @ALTUNIT, @WAITERNAME, @SNO,@REFSNO, " + KOTID + ")", alreadyOrderedKot, transaction: trnOrder);
                                    cnMain.Execute(QUERY_RMD_KOTMAIN_STATUS, new KOTMAINSTATUS {
                                        TABLENO = TABLENO, STATUS = "ACTIVE", KOTID = KOTID
                                    }, transaction: trnOrder);
                                }



                                foreach (var kp in ProdList)
                                {
                                    //for new order entry
                                    if (kp.KOTTIME.Equals("not set"))
                                    {
                                        kp.SNO        = ++SNO;
                                        kp.KOTTIME    = Now.ToString("hh:mm:ss tt");
                                        kp.DIVISION   = ConnectionDbInfo.DIVISION;
                                        kp.TRNDATE    = Now.Date;
                                        kp.WAITERNAME = TRNUSER;
                                        if (kp.Remarks == null)
                                        {
                                            kp.Remarks = "";
                                        }

                                        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, ALTUNIT, WAITERNAME, SNO, REFSNO, KOTID) 
                                                    VALUES (@TABLENO, @MCODE, @UNIT, @QUANTITY, @REALQTY, @AMOUNT, @ITEMDESC, @KOTTIME, 0, @REMARKS, @DIVISION, @TRNDATE, @RATE, @REALRATE, @VAT, @SERVICETAX, @AltQty, 0, (SELECT NAME FROM RMD_WAREHOUSE WHERE ISDEFAULT='T'), @NAMNT, @ISBOT,(SELECT CurNo+1 FROM RMD_SEQUENCES WHERE VNAME='KOT'), @ALTUNIT, @WAITERNAME, @SNO, @REFSNO, " + KOTID + ")", kp, transaction: trnOrder);

                                        cnMain.Execute("INSERT INTO PRINTKOT (TABLENO, DESCA, MENUCODE, ISBOT, QUANTITY, REMARKS, SNO, UNIT, MCODE, TRNDATE, KOTTIME, USERNAME, KOT, PAX, KOTID) SELECT '" + TABLENO
                                                       + "', DESCA, MENUCODE, ISBARITEM,'" + kp.Quantity + "','" + ((kp.Remarks.ToLower() == "no remarks") ? "" : kp.Remarks) + "','" + kp.SNO + "','" + kp.UNIT + "','" + kp.MCODE
                                                       + "','" + Now.ToString("MM/dd/yyyy") + "', '" + Now.ToString("h:mm:ss tt") + "','" + TRNUSER + "',(SELECT CurNo FROM RMD_SEQUENCES WHERE VNAME='KOT'), " + (string.IsNullOrEmpty(PAX) ? "0" : PAX) + ", " + KOTID + "  FROM MENUITEM WHERE MCODE='" + kp.MCODE + "'", transaction: trnOrder);
                                    }
                                }
                                cnMain.Execute("UPDATE RMD_SEQUENCES SET CURNO=CURNO + 1 WHERE VNAME ='KOT'", transaction: trnOrder);

                                trnOrder.Commit();
                                return("Success");
                            }
                            catch (Exception EX)
                            {
                                trnOrder.Rollback();
                                return(EX.Message);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        return(e.Message);
                    }
                }
            }
            catch
            {
                return("Error in Data Conversion");
            }
        }
 public string postsaveOrders_New([FromBody] KOTListTransfer KOTData)
 {
     return(new TableDetailsMethods().postsaveOrders_New(KOTData));
 }