예제 #1
0
        private INVOICE CopyInvoice(OrderDateModel itemOrder)
        {
            INVOICE invoice = new INVOICE();

            invoice.InvoiceNumber = itemOrder.InvoiceNumber;
            invoice.OrderID       = itemOrder.OrderID;
            invoice.OrderNumber   = itemOrder.OrderNumber;
            invoice.Total         = Convert.ToInt32(itemOrder.TotalAmount);
            invoice.Status        = 1;
            invoice.DiscountType  = itemOrder.DiscountType;
            invoice.Discount      = (itemOrder.Discount);
            invoice.Payment       = itemOrder.Payment;
            invoice.Change        = itemOrder.Change;
            invoice.CashOut       = Convert.ToInt32(itemOrder.CashOut);
            if (itemOrder.ListInvoiceByCard.Count > 0)
            {
                invoice.InvoiceByCardID = Convert.ToInt32(CustomerInvoiceByCardID());
            }
            else
            {
                invoice.InvoiceByCardID = 0;
            }
            invoice.CreateBy   = itemOrder.CreateBy ?? 0;
            invoice.CreateDate = DateTime.Now;
            invoice.UpdateBy   = itemOrder.UpdateBy ?? 0;
            invoice.UpdateDate = DateTime.Now;
            invoice.Note       = itemOrder.Note ?? "";
            invoice.ShiftID    = itemOrder.ShiftID;
            return(invoice);
        }
예제 #2
0
파일: frmFloor.cs 프로젝트: pcthanh/POS
 public frmFloor(OrderDateModel _orderMain)
 {
     InitializeComponent();
     this.Activated      += frmFloor_Activated;
     this.VisibleChanged += frmFloor_VisibleChanged;
     orderMain            = _orderMain;
 }
예제 #3
0
        public bool checkOrderChange(OrderDateModel order)
        {
            bool flag = false;

            for (int i = 0; i < order.ListOrderDetail.Count; i++)
            {
                if (order.ListOrderDetail[i].ChangeStatus == 1)
                {
                    flag = true;
                }
                if (order.ListOrderDetail[i].ListOrderDetailModifire.Count > 0)
                {
                    for (int j = 0; j < order.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                    {
                        if (order.ListOrderDetail[i].ListOrderDetailModifire[j].ChangeStatus == 1)
                        {
                            flag = true;
                        }
                    }
                }
            }
            if (order.HaveNote == 1)
            {
                flag = true;
            }

            return(flag);
        }
예제 #4
0
 public void Print(OrderDateModel _OrderMain, PrinterModel data)
 {
     posPrinter.SetPrinterName(data.PrinterName);
     posPrinter.printDocument.PrintPage += printDocument_PrintPage;
     if (OrderMain.IsLoadFromData && OrderMain.PrintType != this.PRINTBILL)
     {
         if (OrderMain.IsPrePrint)
         {
             posPrinter.Print();
         }
         else
         {
             if (checkOrderChange(_OrderMain))
             {
                 posPrinter.Print();
             }
             if (checkOrderChangeRemove(_OrderMain))
             {
                 posPrinter.Print();
             }
             if (_OrderMain.PrintType == this.pRINTReceipt)
             {
                 posPrinter.Print();
             }
         }
     }
     else
     {
         posPrinter.Print();
     }
 }
예제 #5
0
        private List <INVOICE_DETAIL> CopyInvoicedetail(OrderDateModel itemOrder)
        {
            List <INVOICE_DETAIL> lstorderDetailDate = new List <INVOICE_DETAIL>();

            lstorderDetailDate.Clear();
            try
            {
                for (int i = 0; i < itemOrder.ListOrderDetail.Count; i++)
                {
                    INVOICE_DETAIL orderDetaiDate = new INVOICE_DETAIL();

                    orderDetaiDate.OrderDetailID = itemOrder.ListOrderDetail[i].OrderDetailID;
                    orderDetaiDate.ProductID     = itemOrder.ListOrderDetail[i].ProductID;
                    orderDetaiDate.DynId         = itemOrder.ListOrderDetail[i].DynID;
                    orderDetaiDate.Seat          = itemOrder.ListOrderDetail[i].Seat;
                    orderDetaiDate.Qty           = itemOrder.ListOrderDetail[i].Qty;
                    orderDetaiDate.KeyItem       = itemOrder.ListOrderDetail[i].KeyItem;
                    orderDetaiDate.Total         = itemOrder.ListOrderDetail[i].Total;
                    orderDetaiDate.Price         = itemOrder.ListOrderDetail[i].Price;
                    orderDetaiDate.Status        = itemOrder.ListOrderDetail[i].Satust;
                    orderDetaiDate.Note          = itemOrder.ListOrderDetail[i].Note;
                    orderDetaiDate.CreateBy      = itemOrder.ListOrderDetail[i].CreateBy ?? 0;
                    orderDetaiDate.CreateDate    = itemOrder.ListOrderDetail[i].CreateDate ?? DateTime.Now;
                    orderDetaiDate.UpdateBy      = itemOrder.ListOrderDetail[i].UpdateBy ?? 0;
                    orderDetaiDate.UpdateDate    = itemOrder.ListOrderDetail[i].UpdateDate ?? DateTime.Now;
                    lstorderDetailDate.Add(orderDetaiDate);
                }
            }
            catch (Exception ex)
            {
                LogPOS.WriteLog("CopyOrderDetailDate:::::::::::::::::::::::::" + ex.Message);
            }
            return(lstorderDetailDate);
        }
예제 #6
0
파일: frmFloor.cs 프로젝트: pcthanh/POS
 private void CallBackOrder(OrderDateModel orderCallBack)
 {
     //UCTable uctable = (UCTable)flowLayoutPanel1.Controls[Convert.ToInt32(orderCallBack.FloorID)-1];
     //uctable.BackColor = Color.FromArgb(0, 102, 204);
     //uctable.ForeColor = Color.White;
     //uctable.lbTime.Text = orderCallBack.CreateDate.ToString();
     //uctable.Tag = orderCallBack;
     //SetText("$" + monetFormat.Format(Convert.ToDouble(orderCallBack.SubTotal())), uctable.lbSubTotal);
     CheckStatusTable();
 }
예제 #7
0
        public frmPayMent(OrderDateModel _OrderMain, int AnimationTime, int Flags)
        {
            //animationTime = AnimationTime;
            //flags = Flags;
            animationTime = AnimationTime;
            flags         = Flags;

            InitializeComponent();
            OrderMain = _OrderMain;
            txtTender.Focus();
            ucKeyPadOrder1.txtResult = txtTender;
            this.Location            = new Point(0, 100);
        }
예제 #8
0
        public int UpdateOrderInvice(OrderDateModel Order)
        {
            int result = 0;

            using (var trans = _context.Database.BeginTransaction())
            {
                _context.Database.ExecuteSqlCommand("update ORDER_DATE set Status=1 where OrderID='" + (Order.OrderID - 1) + "'");
                _context.SaveChanges();
                trans.Commit();
                result = 1;
            }
            return(result);
        }
예제 #9
0
 void ucPrev_Click(object sender, EventArgs e)
 {
     try
     {
         UCPrevOrder    ucPrev = (UCPrevOrder)sender;
         OrderDateModel Order  = (OrderDateModel)ucPrev.Tag;
         OrderID           = Order.OrderID;
         this.DialogResult = System.Windows.Forms.DialogResult.OK;
     }
     catch (Exception ex)
     {
         LogPOS.WriteLog("frmPrevOrder:::::::::::::::::::::ucPrev_Click::::::::::::::::::::" + ex.Message);
     }
 }
예제 #10
0
 private void btnLeftAll_Click(object sender, EventArgs e)
 {
     try
     {
         flpOldTable.Controls.Clear();
         LoadOrder(lblNoTable.Text, 0, flpNewTable);
         OrderSlpitNew                = OrderMain;
         OrderSlpitNew.FloorID        = lblNewTable.Text;
         OrderMain.isTransferTableAll = 1;
         tableOld = this.lblNoTable.Text;
     }
     catch (Exception ex)
     {
         LogPOS.WriteLog("frmTransferTable:::::::::::::::::::::::::ebtnLeftAll_Click:::::::::::::::" + ex.Message);
     }
 }
예제 #11
0
        private void btnLeft_Click(object sender, EventArgs e)
        {
            try
            {
                if (Seat == 0)
                {
                    frmMessager frm = new frmMessager("Messager", "Input Number Seat");
                    frmOpacity.ShowDialog(this, frm);
                }
                else
                {
                    OrderSlpitOld = new OrderDateModel();
                    CopyOrder();
                    OrderSlpitNew.addSeat(Seat);
                    foreach (Control ctr in flpOldOrder.Controls)
                    {
                        if (ctr is UCOrder)
                        {
                            UCOrder ucOrder = (UCOrder)ctr;
                            if (ucOrder.BackColor == Color.FromArgb(0, 102, 204))
                            {
                                OrderDetailModel item = (OrderDetailModel)ucOrder.Tag;
                                item.Seat = Seat;

                                if (item.ListOrderDetailModifire.Count > 0)
                                {
                                    for (int i = 0; i < item.ListOrderDetailModifire.Count; i++)
                                    {
                                        item.ListOrderDetailModifire[i].Seat = Seat;
                                    }
                                }
                                OrderSlpitNew.addItemToListAddSeat(item);
                                OrderSlpitOld.addItemToListAddSeat(item);
                                OrderMain.ListOrderDetail.Remove(item);
                            }
                        }
                    }
                    RefeshOrderMain(OrderSlpitOld, flpNewTable);
                    RefeshOrderMain(OrderMain, flpOldOrder);
                }
            }
            catch (Exception ex)
            {
                LogPOS.WriteLog("frmSeat::::::::::::::::::btnLeft_Click::::::::::::::::::::" + ex.Message);
            }
        }
예제 #12
0
        public ActionResult PrintBill()
        {
            GetListPaymentPrinter();
            OrderDateModel bill = new OrderDateModel();

            bill = OrderService.GetOrderByTable(Class.FloorID, 0);
            if (bill.ListOrderDetail.Count > 0)
            {
                int result = OrderService.UpdateOrder(bill);
                if (result == 1)
                {
                    bill.PrintType = 3;
                    PrinterServer print = new PrinterServer();
                    print.PrintData(bill, PrintData);
                }
            }
            return(Json("Y", JsonRequestBehavior.AllowGet));
        }
예제 #13
0
        private Boolean checkOrderSended(OrderDateModel Order)
        {
            Boolean rs          = true;
            int     countRemove = 0;

            for (int i = 0; i < Order.ListOrderDetail.Count; i++)
            {
                if (Order.ListOrderDetail[i].ChangeStatus == 2)
                {
                    countRemove++;
                }
            }
            if (countRemove == Order.ListOrderDetail.Count)
            {
                rs = false;
            }
            return(rs);
        }
예제 #14
0
        private ACC_PAYMENT CopyAcc(OrderDateModel Order)
        {
            ACC_PAYMENT acc = new ACC_PAYMENT();

            acc.SubTotal      = Convert.ToInt32(Order.TotalAmount);
            acc.CusNo         = Order.CusItem.ClientID;
            acc.InvoiceID     = Order.InvoiceID;
            acc.InvoiceNumber = Order.InvoiceNumber;
            acc.Cash          = 0;
            acc.Card          = 0;
            acc.IsCredit      = 1;
            acc.IsDebit       = 0;
            acc.CreateBy      = Order.CreateBy ?? 0;
            acc.CreateDate    = DateTime.Now;
            acc.UpdateBy      = Order.UpdateBy ?? 0;
            acc.UpdateDate    = DateTime.Now;
            return(acc);
        }
예제 #15
0
        private OrderDateModel SliptPriter(OrderDateModel OrderS, List <PrinterModel> printData)
        {
            OrderDateModel OrderSlipt = new OrderDateModel();

            for (int i = 0; i < printData.Count; i++)
            {
                for (int j = 0; j < OrderS.ListOrderDetail.Count; j++)
                {
                    for (int k = 0; k < OrderS.ListOrderDetail[j].ListPrintJob.Count; k++)
                    {
                        if (OrderS.ListOrderDetail[j].ListPrintJob[k].PrinterID == printData[i].ID)
                        {
                            OrderSlipt.ListOrderDetail.Add(OrderS.ListOrderDetail[k]);
                        }
                    }
                }
            }
            return(OrderS);
        }
예제 #16
0
        private void RefeshOrderMain(OrderDateModel OrderRefesh, FlowLayoutPanel flp)
        {
            flp.Controls.Clear();
            if (OrderRefesh.ListOrderDetail.Count > 0)
            {
                for (int i = 0; i < OrderRefesh.ListOrderDetail.Count; i++)
                {
                    addOrder(OrderRefesh.ListOrderDetail[i], flp);

                    for (int j = 0; j < OrderRefesh.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                    {
                        UCItemModifierOfMenu uc = new UCItemModifierOfMenu();
                        uc.Tag = OrderRefesh.ListOrderDetail[i].ListOrderDetailModifire[j];
                        //uc.Click += ucItemModifierOfMenu_Click;
                        addModifreToOrder(uc, OrderRefesh.ListOrderDetail[i].ListOrderDetailModifire[j], flp);
                    }
                }
            }
        }
예제 #17
0
        void ucTKA_Click(object sender, EventArgs e)
        {
            UCTakeAway    ucTKA = (UCTakeAway)sender;
            OrderTKAModel TKA   = (OrderTKAModel)ucTKA.Tag;

            TKAID = TKA.TKAID;
            foreach (Control ctr in flpTkAInfor.Controls)
            {
                if (ctr.BackColor == Color.FromArgb(0, 153, 51))
                {
                    ctr.BackColor = Color.FromArgb(255, 255, 255);
                    ctr.ForeColor = Color.FromArgb(51, 51, 51);
                }
            }
            ucTKA.BackColor = Color.FromArgb(0, 153, 51);
            ucTKA.ForeColor = Color.FromArgb(255, 255, 255);
            OrderMain       = OrderService.GetOrderByTKA(TKA.TKAID, "");
            LoadOrderTKA(TKAID, "");
        }
예제 #18
0
        private List <INVOICE_BY_CARD> CopyInvoiceByCard(OrderDateModel Order)
        {
            List <INVOICE_BY_CARD> lst = new List <INVOICE_BY_CARD>();

            lst.Clear();
            for (int i = 0; i < Order.ListInvoiceByCard.Count; i++)
            {
                INVOICE_BY_CARD item = new INVOICE_BY_CARD();
                item.InvoiceByCardID = Convert.ToInt32(CustomerInvoiceByCardID());

                item.CardID     = Order.ListInvoiceByCard[i].CardID;
                item.Total      = Order.ListInvoiceByCard[i].Total;
                item.CreateBy   = Order.ListInvoiceByCard[i].CreateBy ?? 0;
                item.CreateDate = DateTime.Now;
                item.UpdateBy   = Order.ListInvoiceByCard[i].UpdateBy ?? 0;
                item.UpdateDate = DateTime.Now;
                item.Note       = Order.ListInvoiceByCard[i].Note ?? "";
                lst.Add(item);
            }
            return(lst);
        }
예제 #19
0
        private List <PAYMENT_INVOICE_HISTORY> CopyListPayment(OrderDateModel Order)
        {
            List <PAYMENT_INVOICE_HISTORY> lst = new List <PAYMENT_INVOICE_HISTORY>();

            lst.Clear();
            for (int i = 0; i < Order.ListPayment.Count; i++)
            {
                PAYMENT_INVOICE_HISTORY item = new PAYMENT_INVOICE_HISTORY();
                item.PaymentTypeID = Order.ListPayment[i].PaymentTypeID;

                item.Status     = 1;
                item.Total      = Order.ListPayment[i].Total * 1000;
                item.CreateBy   = Order.ListPayment[i].CreateBy ?? 0;
                item.CreateDate = DateTime.Now;
                item.UpdateBy   = Order.ListPayment[i].UpdateBy ?? 0;
                item.UpdateDate = DateTime.Now;
                item.Note       = Order.ListPayment[i].Note ?? "";
                lst.Add(item);
            }
            return(lst);
        }
예제 #20
0
        public ActionResult GetTableById(string TableID)
        {
            if (Session["User"] != null)
            {
                OrderDateModel lstTable = null;
                try
                {
                    if (TableID != null)
                    {
                        OrderMain = OrderService.GetOrderByTable(TableID, 0);
                    }
                    else
                    {
                        OrderMain = OrderService.GetOrderByTable(Class.FloorID, 0);
                    }

                    int id = OrderMain.OrderID;
                    if (OrderMain.ListOrderDetail.Count > 0)
                    {
                        OrderMain.IsLoadFromData = true;
                        return(Json(OrderMain, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        OrderMain.FloorID = Class.FloorID;
                        return(Json(OrderMain, JsonRequestBehavior.AllowGet));
                    }
                }
                catch (Exception ex)
                {
                    SystemLog.LogPOS.WriteLog("OrderController::::::::::::::::GetTableById::::::::::::::" + ex.Message);
                    return(null);
                }
            }
            else
            {
                return(Json("NULL", JsonRequestBehavior.AllowGet));
            }
        }
예제 #21
0
        private List <INVOICE_DETAIL_MODIFIRE> CopyInvoiceMidifire(OrderDateModel itemOrder)
        {
            List <INVOICE_DETAIL_MODIFIRE> lstOrderModifreDate = new List <INVOICE_DETAIL_MODIFIRE>();

            lstOrderModifreDate.Clear();
            try
            {
                for (int i = 0; i < itemOrder.ListOrderDetail.Count; i++)
                {
                    for (int j = 0; j < itemOrder.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                    {
                        INVOICE_DETAIL_MODIFIRE orderDetailModifire = new INVOICE_DETAIL_MODIFIRE();
                        orderDetailModifire.ModifireID = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].ModifireID;

                        orderDetailModifire.OrderModifireID = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].OrderModifireID;
                        orderDetailModifire.ProductID       = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].ProductID;
                        orderDetailModifire.KeyModi         = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].KeyModi;
                        orderDetailModifire.Price           = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].Price;
                        orderDetailModifire.Qty             = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].Qty;
                        orderDetailModifire.Total           = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].Total;
                        orderDetailModifire.Status          = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].Satust;
                        orderDetailModifire.Seat            = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].Seat;
                        orderDetailModifire.DynId           = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].DynID;
                        orderDetailModifire.CreateBy        = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].CreateBy ?? 0;
                        orderDetailModifire.CreateDate      = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].CreateDate ?? DateTime.Now;
                        orderDetailModifire.UpdateBy        = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].UpdateBy ?? 0;
                        orderDetailModifire.UpdateDate      = itemOrder.ListOrderDetail[i].ListOrderDetailModifire[j].UpdateDate ?? DateTime.Now;
                        lstOrderModifreDate.Add(orderDetailModifire);
                    }
                }
            }
            catch (Exception ex)
            {
                LogPOS.WriteLog("CopyOrderMidifireDate:::::::::::::::::::::::::::::::::" + ex.Message);
            }
            return(lstOrderModifreDate);
        }
예제 #22
0
        public void BindOrder(OrderDateModel OrderMain)
        {
            try
            {
                detailScreen();
                if (OrderMain.ListSeatOfOrder.Count > 0)
                {
                    OrderMain.IsLoadFromData = true;

                    Boolean addSet;
                    foreach (SeatModel seat in OrderMain.ListSeatOfOrder)
                    {
                        addSet = true;
                        if (OrderMain.ListOrderDetail.Count > 0)
                        {
                            for (int i = 0; i < OrderMain.ListOrderDetail.Count; i++)
                            {
                                if (OrderMain.ListOrderDetail[i].Seat == seat.Seat)
                                {
                                    if (addSet)
                                    {
                                        UCSeat ucSeat = new UCSeat();
                                        ucSeat.lblSeat.Text = "Seat " + seat.Seat.ToString();
                                        ucSeat.Tag          = seat.Seat;

                                        flowLayoutPanel1.Controls.Add(ucSeat);
                                        indexControl = flowLayoutPanel1.Controls.Count;
                                        addSet       = false;
                                    }
                                    addOrder(OrderMain.ListOrderDetail[i]);
                                    indexControl++;
                                    for (int j = 0; j < OrderMain.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                                    {
                                        UCItemModifierOfMenu uc = new UCItemModifierOfMenu();
                                        uc.Tag = OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j];

                                        addModifreToOrder(uc, OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j]);
                                        indexControl++;
                                    }
                                }
                                else
                                {
                                    if (OrderMain.ListOrderDetail[i].Seat == 0)
                                    {
                                        addOrder(OrderMain.ListOrderDetail[i]);
                                        indexControl++;
                                        for (int j = 0; j < OrderMain.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                                        {
                                            UCItemModifierOfMenu uc = new UCItemModifierOfMenu();
                                            uc.Tag = OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j];

                                            addModifreToOrder(uc, OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j]);
                                            indexControl++;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    if (OrderMain.ListOrderDetail.Count > 0)
                    {
                        OrderMain.IsLoadFromData = true;

                        for (int i = 0; i < OrderMain.ListOrderDetail.Count; i++)
                        {
                            addOrder(OrderMain.ListOrderDetail[i]);

                            for (int j = 0; j < OrderMain.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                            {
                                UCItemModifierOfMenu uc = new UCItemModifierOfMenu();
                                uc.Tag = OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j];

                                addModifreToOrder(uc, OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j]);
                            }
                        }
                    }
                }
                this.lblSubtotal.Text = money.Format2(OrderMain.SubTotal());
                Double gst = Convert.ToDouble(OrderMain.TotalAmount) / 11000;
                if (gst < 1)
                {
                    this.lblTax.Text = "$0" + money.Format2(Convert.ToDouble(OrderMain.TotalAmount) / 11);
                }
                else
                {
                    this.lblTax.Text = money.Format2(Convert.ToDouble(OrderMain.TotalAmount) / 11);
                }

                this.lblTotal.Text = money.Format2(OrderMain.SubTotal());
            }
            catch (Exception ex)
            {
                SystemLog.LogPOS.WriteLog("POS::frmCustomerDisplay:::::::::::::::::::" + ex.Message);
            }
        }
예제 #23
0
파일: frmFloor.cs 프로젝트: pcthanh/POS
 private void CallBackOrderCancel(OrderDateModel orderCallBack)
 {
     CheckStatusTable();
 }
예제 #24
0
 private void Test(OrderDateModel or)
 {
     MessageBox.Show("hjvj");
 }
예제 #25
0
        public float printnTransferTableNotAll(OrderDateModel Order, PrintPageEventArgs e)
        {
            float l_y = 0;

            l_y  = posPrinter.DrawString(Header, e, new Font("Arial", 14, FontStyle.Italic), l_y, 2, false, false);
            l_y += posPrinter.GetHeightPrinterLine() / 10;
            l_y  = posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
            l_y  = posPrinter.DrawString(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), e, new Font("Arial", 14, FontStyle.Italic), l_y, 1, false, false);
            l_y += posPrinter.GetHeightPrinterLine() / 10;
            l_y  = posPrinter.DrawString("OPERATOR#MANAGER", e, new Font("Arial", 14, FontStyle.Italic), l_y, 1, false, false);
            posPrinter.DrawString("Table# " + Order.FloorID, e, new Font("Arial", 14, FontStyle.Italic), l_y, 1, false, false);
            l_y = posPrinter.DrawString("Order#" + Order.OrderID, e, new Font("Arial", 14), l_y, 3, false, false);
            posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
            l_y += posPrinter.GetHeightPrinterLine() / 10;
            int countItem = 0;

            for (int i = 0; i < Order.ListOrderDetail.Count; i++)
            {
                float yStart = l_y;

                if (Order.ListOrderDetail[i].ChangeStatus == 2)
                {
                    l_y = posPrinter.DrawString(Order.ListOrderDetail[i].ProductName, e, new Font("Arial", 14), l_y, 1, false, false);
                    posPrinter.DrawCancelLine(e, yStart, l_y);
                }
                else
                {
                    if (Order.ListOrderDetail[i].ChangeStatus == 1)
                    {
                        l_y = posPrinter.DrawString("--Add  " + Order.ListOrderDetail[i].ProductName, e, new Font("Arial", 14), l_y, 1, false, false);
                    }
                    else
                    {
                        countItem++;
                        l_y = posPrinter.DrawString(Order.ListOrderDetail[i].Qty.ToString() + " " + Order.ListOrderDetail[i].ProductName, e, new Font("Arial", 14), l_y, 1, false, false);
                    }
                }
                //l_y = posPrinter.DrawString(OrderMain.ListOrderDetail[i].Qty.ToString(), e, new Font("Arial", 14), l_y, 2);
                //posPrinter.DrawString("$" + money.Format2(OrderMain.ListOrderDetail[i].Price.ToString()), e, new Font("Arial", 14), yStart, 3);

                if (Order.ListOrderDetail[i].ListOrderDetailModifire.Count > 0)
                {
                    for (int j = 0; j < Order.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                    {
                        if (Order.ListOrderDetail[i].ListOrderDetailModifire[j].ChangeStatus == 2)
                        {
                            l_y = posPrinter.DrawString(Order.ListOrderDetail[i].ListOrderDetailModifire[j].ModifireName, e, new Font("Arial", 10), l_y, 1, false, false);
                            posPrinter.DrawCancelLine(e, yStart, l_y);
                        }
                        else
                        {
                            if (Order.ListOrderDetail[i].ListOrderDetailModifire[j].ChangeStatus == 1)
                            {
                                l_y = posPrinter.DrawString("--Add" + Order.ListOrderDetail[i].ListOrderDetailModifire[j].ModifireName, e, new Font("Arial", 10, FontStyle.Italic), l_y, 1, false, false);
                            }
                            else
                            {
                                if (!OrderMain.IsLoadFromData)
                                {
                                    l_y = posPrinter.DrawString("--" + Order.ListOrderDetail[i].ListOrderDetailModifire[j].ModifireName, e, new Font("Arial", 10, FontStyle.Italic), l_y, 1, false, false);
                                }
                            }
                        }
                        //l_y = posPrinter.DrawString("$" + money.Format2(OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j].Price.ToString()), e, new Font("Arial", 14), l_y, 3);
                    }
                }
            }
            l_y += posPrinter.GetHeightPrinterLine() / 10;

            posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
            l_y  = posPrinter.DrawString("", e, new Font("Arial", 14), l_y, 1, false, false);
            l_y += posPrinter.GetHeightPrinterLine() / 10;
            posPrinter.DrawString("Total item: " + countItem, e, new Font("Arial", 14, FontStyle.Bold), l_y, 1, false, false);
            //l_y = posPrinter.DrawString("$" + money.Format2(OrderMain.SubTotal()), e, new Font("Arial", 14, FontStyle.Bold), l_y, 3);
            l_y += posPrinter.GetHeightPrinterLine() / 2;
            return(l_y);
        }
예제 #26
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            int result = 0;

            try
            {
                if (flpNewTable.Controls.Count > 0)
                {
                    if (OrderSlpitNew.FloorID == "#" || Convert.ToInt32(OrderSlpitNew.FloorID) > 40)
                    {
                        frmMessager frm = new frmMessager("Messager", "TableNo is unavailable");
                        frmOpacity.ShowDialog(this, frm);
                    }
                    else
                    {
                        GetListPrinter();
                        OrderMain.Seat = 0;
                        for (int i = 0; i < OrderMain.ListOrderDetail.Count; i++)
                        {
                            OrderMain.ListOrderDetail[i].Seat = 0;
                        }
                        OrderDateModel OrderTemp = OrderService.GetOrderByTKA(lblNewTable.Text, "");
                        if (OrderTemp.ListOrderDetail.Count > 0)
                        {
                            foreach (OrderDetailModel item in OrderSlpitNew.ListOrderDetail)
                            {
                                item.OrderID = OrderTemp.OrderID;
                                OrderTemp.ListOrderDetail.Add(item);
                            }
                            result = result + OrderService.InsertOrder(OrderTemp);
                        }
                        else
                        {
                            result = result + OrderService.InsertOrder(OrderSlpitNew);
                        }

                        if (OrderMain.isTransferTableAll == 1)
                        {
                            result = result + OrderService.DeleteJoinTableAll(OrderMain);
                        }
                        else
                        {
                            if (OrderMain.ListOrderDetail.Count > 0)
                            {
                                result = result + OrderService.InsertOrder(OrderMain);
                            }
                            else
                            {
                                result = result + OrderService.DeleteTransferTableAll(OrderMain);
                            }
                        }
                        if (result >= 2)
                        {
                            var list = ConfigService.GetConfig();
                            foreach (ConfigModel item in list)
                            {
                                cofig.ABN     = item.ABN;
                                cofig.Name    = item.Name;
                                cofig.Tel     = item.Tel;
                                cofig.Web     = item.Web;
                                cofig.Logan   = item.Logan;
                                cofig.Note    = item.Note;
                                cofig.Address = item.Address;
                            }
                            foreach (PrinterModel item in PrintData)
                            {
                                Header = item.Header;
                                posPrinter.SetPrinterName(item.PrinterName);
                                posPrinter.printDocument.PrintPage += printDocument_PrintPage;
                                posPrinter.Print();
                            }
                        }
                        this.DialogResult = System.Windows.Forms.DialogResult.OK;
                    }
                }
            }
            catch (Exception ex)
            {
                LogPOS.WriteLog("frmTransferTable::::::::::::::::::::::btnOK_Click::::::::::::::::;;" + ex.Message);
            }
        }
예제 #27
0
        public float PrintOrderToKitchenOrBar(OrderDateModel Order, PrintPageEventArgs e)
        {
            float l_y = 0;

            if (OrderMain.IsLoadFromData)
            {
                if (OrderMain.IsPrePrint)
                {
                    l_y  = posPrinter.DrawString(Header, e, new Font("Arial", 14, FontStyle.Italic), l_y, 2);
                    l_y += posPrinter.GetHeightPrinterLine() / 10;
                    l_y  = posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                    l_y  = posPrinter.DrawString(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                    l_y += posPrinter.GetHeightPrinterLine() / 10;
                    l_y  = posPrinter.DrawString("OPERATOR#MANAGER", e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                    posPrinter.DrawString("Table# " + OrderMain.FloorID, e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                    l_y = posPrinter.DrawString("Order#" + OrderMain.OrderID, e, new Font("Arial", 14), l_y, 3);
                    posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                    l_y += posPrinter.GetHeightPrinterLine() / 10;
                    int countItem = 0;
                    for (int i = 0; i < Order.ListOrderDetail.Count; i++)
                    {
                        countItem++;
                        l_y = posPrinter.DrawString(Order.ListOrderDetail[i].Qty.ToString() + " " + Order.ListOrderDetail[i].ProductName, e, new Font("Arial", 14), l_y, 1);


                        if (Order.ListOrderDetail[i].ListOrderDetailModifire.Count > 0)
                        {
                            for (int j = 0; j < Order.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                            {
                                l_y = posPrinter.DrawString("--" + Order.ListOrderDetail[i].ListOrderDetailModifire[j].ModifireName, e, new Font("Arial", 10, FontStyle.Italic), l_y, 1);
                            }
                        }
                    }
                    l_y += posPrinter.GetHeightPrinterLine() / 10;

                    posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                    l_y  = posPrinter.DrawString("", e, new Font("Arial", 14), l_y, 1);
                    l_y += posPrinter.GetHeightPrinterLine() / 10;
                    posPrinter.DrawString("Total item: " + countItem, e, new Font("Arial", 14, FontStyle.Bold), l_y, 1);
                    l_y += posPrinter.GetHeightPrinterLine() / 2;
                    if (Order.Note != null)
                    {
                        posPrinter.DrawString("Note:" + OrderMain.Note, e, new Font("Arial", 14, FontStyle.Bold), l_y, 1);
                    }
                }
                else
                {
                    if (checkOrderChange(Order))
                    {
                        l_y  = posPrinter.DrawString(Header, e, new Font("Arial", 14, FontStyle.Italic), l_y, 2);
                        l_y += posPrinter.GetHeightPrinterLine() / 10;
                        l_y  = posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                        l_y  = posPrinter.DrawString(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                        l_y += posPrinter.GetHeightPrinterLine() / 10;
                        l_y  = posPrinter.DrawString("OPERATOR#MANAGER", e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                        posPrinter.DrawString("Table# " + OrderMain.FloorID, e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                        l_y = posPrinter.DrawString("Order#" + OrderMain.OrderID, e, new Font("Arial", 14), l_y, 3);
                        posPrinter.DrawString("ADD", e, new Font("Arial", 14, FontStyle.Italic), l_y, 2);
                        posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                        l_y += posPrinter.GetHeightPrinterLine() / 10;
                        for (int i = 0; i < Order.ListOrderDetail.Count; i++)
                        {
                            if (Order.ListOrderDetail[i].ChangeStatus == 1)
                            {
                                l_y = posPrinter.DrawString(Order.ListOrderDetail[i].ProductName, e, new Font("Arial", 14), l_y, 1);
                            }
                            if (Order.ListOrderDetail[i].ListOrderDetailModifire.Count > 0)
                            {
                                for (int j = 0; j < Order.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                                {
                                    if (Order.ListOrderDetail[i].ListOrderDetailModifire[j].ChangeStatus == 1)
                                    {
                                        l_y = posPrinter.DrawString(Order.ListOrderDetail[i].ListOrderDetailModifire[j].ModifireName, e, new Font("Arial", 10, FontStyle.Italic), l_y, 1);
                                    }
                                }
                            }
                        }
                        if (Order.HaveNote == 1)
                        {
                            posPrinter.DrawString("Note:" + OrderMain.Note, e, new Font("Arial", 14, FontStyle.Bold), l_y, 1);
                        }
                    }
                    if (checkOrderChangeRemove(Order))
                    {
                        l_y  = posPrinter.DrawString(Header, e, new Font("Arial", 14, FontStyle.Italic), l_y, 2);
                        l_y += posPrinter.GetHeightPrinterLine() / 10;
                        l_y  = posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                        l_y  = posPrinter.DrawString(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                        l_y += posPrinter.GetHeightPrinterLine() / 10;
                        l_y  = posPrinter.DrawString("OPERATOR#MANAGER", e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                        posPrinter.DrawString("Table# " + OrderMain.FloorID, e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                        l_y = posPrinter.DrawString("Order#" + OrderMain.OrderID, e, new Font("Arial", 14), l_y, 3);
                        posPrinter.DrawString("REMOVE", e, new Font("Arial", 14, FontStyle.Italic), l_y, 2);
                        posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                        l_y += posPrinter.GetHeightPrinterLine() / 10;
                        for (int i = 0; i < Order.ListOrderDetail.Count; i++)
                        {
                            float yStart = l_y;
                            if (Order.ListOrderDetail[i].ChangeStatus == 2)
                            {
                                l_y = posPrinter.DrawString(Order.ListOrderDetail[i].ProductName, e, new Font("Arial", 14), l_y, 1);
                                posPrinter.DrawCancelLine(e, yStart, l_y);
                            }
                            if (Order.ListOrderDetail[i].ListOrderDetailModifire.Count > 0)
                            {
                                for (int j = 0; j < Order.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                                {
                                    if (Order.ListOrderDetail[i].ListOrderDetailModifire[j].ChangeStatus == 2)
                                    {
                                        l_y = posPrinter.DrawString(Order.ListOrderDetail[i].ListOrderDetailModifire[j].ModifireName, e, new Font("Arial", 10), l_y, 1);
                                        posPrinter.DrawCancelLine(e, yStart, l_y);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                if (OrderMain.isTKA == 1)
                {
                    l_y = posPrinter.DrawString("Takeaway", e, new Font("Arial", 14, FontStyle.Italic), l_y, 2);
                }

                l_y  = posPrinter.DrawString(Header, e, new Font("Arial", 14, FontStyle.Italic), l_y, 2);
                l_y += posPrinter.GetHeightPrinterLine() / 10;
                l_y  = posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                l_y  = posPrinter.DrawString(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString(), e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                l_y += posPrinter.GetHeightPrinterLine() / 10;
                l_y  = posPrinter.DrawString("OPERATOR#MANAGER", e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                posPrinter.DrawString("Table# " + OrderMain.FloorID, e, new Font("Arial", 14, FontStyle.Italic), l_y, 1);
                l_y = posPrinter.DrawString("Order#" + OrderMain.OrderID, e, new Font("Arial", 14), l_y, 3);
                posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                l_y += posPrinter.GetHeightPrinterLine() / 10;
                int countItem = 0;
                for (int i = 0; i < Order.ListOrderDetail.Count; i++)
                {
                    countItem++;
                    l_y = posPrinter.DrawString(Order.ListOrderDetail[i].Qty.ToString() + " " + Order.ListOrderDetail[i].ProductName, e, new Font("Arial", 14), l_y, 1);



                    if (Order.ListOrderDetail[i].ListOrderDetailModifire.Count > 0)
                    {
                        for (int j = 0; j < Order.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                        {
                            l_y = posPrinter.DrawString("--" + Order.ListOrderDetail[i].ListOrderDetailModifire[j].ModifireName, e, new Font("Arial", 10, FontStyle.Italic), l_y, 1);
                        }
                    }
                }
                l_y += posPrinter.GetHeightPrinterLine() / 10;

                posPrinter.DrawLine("", new Font("Arial", 14), e, System.Drawing.Drawing2D.DashStyle.Dot, l_y, 1);
                l_y  = posPrinter.DrawString("", e, new Font("Arial", 14), l_y, 1);
                l_y += posPrinter.GetHeightPrinterLine() / 10;
                posPrinter.DrawString("Total item: " + countItem, e, new Font("Arial", 14, FontStyle.Bold), l_y, 1);

                l_y += posPrinter.GetHeightPrinterLine() / 2;
                if (Order.Note != null)
                {
                    posPrinter.DrawString("Note:" + OrderMain.Note, e, new Font("Arial", 14, FontStyle.Bold), l_y, 1);
                }
            }

            return(l_y);
        }
예제 #28
0
        public void PrintData(OrderDateModel _OrderMain, List <PrinterModel> printData)
        {
            OrderMain = _OrderMain;

            if (OrderMain.PrintType == this.PRINTBAR)
            {
                for (int i = 0; i < printData.Count; i++)
                {
                    OrderPrint = new OrderDateModel();

                    for (int j = 0; j < OrderMain.ListOrderDetail.Count; j++)
                    {
                        for (int k = 0; k < OrderMain.ListOrderDetail[j].ListPrintJob.Count; k++)
                        {
                            if (OrderMain.IsLoadFromData && (OrderMain.ListOrderDetail[j].ChangeStatus == 2 || OrderMain.ListOrderDetail[j].ChangeStatus == 1 || OrderMain.ListOrderDetail[j].ChangeStatus == 3))
                            {
                                if (OrderMain.ListOrderDetail[j].ListPrintJob[k].PrinterID == printData[i].ID)
                                {
                                    if (OrderMain.ListOrderDetail[j].ChangeStatus == 2 || OrderMain.ListOrderDetail[j].ChangeStatus == 1 || OrderMain.ListOrderDetail[j].ChangeStatus == 3)
                                    {
                                        OrderPrint.ListOrderDetail.Add(OrderMain.ListOrderDetail[j]);
                                    }
                                }
                            }
                            else
                            {
                                if (OrderMain.ListOrderDetail[j].ListPrintJob[k].PrinterID == printData[i].ID)
                                {
                                    OrderPrint.ListOrderDetail.Add(OrderMain.ListOrderDetail[j]);
                                }
                            }
                        }
                    }


                    if (OrderPrint.ListOrderDetail.Count > 0 || OrderMain.HaveNote > 0)
                    {
                        if (printData[i].PrinterType == 1)
                        {
                            Header = printData[i].Header;
                            if (OrderMain.PrinterNote == printData[i].ID)
                            {
                                OrderPrint.Note     = OrderMain.Note;
                                OrderPrint.HaveNote = OrderMain.HaveNote;
                            }
                            Print(OrderPrint, printData[i]);
                        }
                    }
                    if (OrderMain.ListOrderDetail.Count > 0)
                    {
                        if (printData[i].PrinterType == 0)
                        {
                            Header = printData[i].Header;
                            Print(OrderMain, printData[i]);
                        }
                    }
                }
            }
            else
            {
                if (OrderMain.PrintType == this.PRINTBILL)
                {
                    if (printData.Count > 0)
                    {
                        Print(OrderMain, printData[0]);
                    }
                }
                else
                {
                    if (OrderMain.PrintType == this.pRINTReceipt)
                    {
                        if (printData.Count > 0)
                        {
                            Print(OrderMain, printData[0]);
                        }
                    }
                }
            }
        }
예제 #29
0
        public void LoadOrder(string TableID, int orderID, FlowLayoutPanel flp)
        {
            int indexControl = 1;

            try
            {
                OrderMain = OrderService.GetOrderByTable(TableID, 0);

                if (OrderMain.ListSeatOfOrder.Count > 0)
                {
                    OrderMain.IsLoadFromData = true;
                    //lblSeat.Text = OrderMain.Seat.ToString();
                    foreach (SeatModel seat in OrderMain.ListSeatOfOrder)
                    {
                        UCSeat ucSeat = new UCSeat();
                        ucSeat.lblSeat.Text = "Seat " + seat.Seat.ToString();
                        // ucSeat.Click += ucSeat_Click;
                        flpOldTable.Controls.Add(ucSeat);
                        indexControl = flpOldTable.Controls.Count;
                        if (OrderMain.ListOrderDetail.Count > 0)
                        {
                            for (int i = 0; i < OrderMain.ListOrderDetail.Count; i++)
                            {
                                if (OrderMain.ListOrderDetail[i].Seat == seat.Seat)
                                {
                                    addOrder(OrderMain.ListOrderDetail[i], flp);
                                    indexControl++;
                                    for (int j = 0; j < OrderMain.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                                    {
                                        UCItemModifierOfMenu uc = new UCItemModifierOfMenu();
                                        uc.Tag = OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j];
                                        //uc.Click += ucItemModifierOfMenu_Click;
                                        addModifreToOrder(uc, OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j], flp);
                                        indexControl++;
                                    }
                                }
                            }
                        }
                        else
                        {
                            OrderMain.FloorID = TableID;
                            int OrderID = OrderService.CountOrder() + 1;
                            OrderMain.OrderID = OrderID;
                        }
                    }
                }
                else
                {
                    if (OrderMain.ListOrderDetail.Count > 0)
                    {
                        OrderMain.IsLoadFromData = true;
                        for (int i = 0; i < OrderMain.ListOrderDetail.Count; i++)
                        {
                            addOrder(OrderMain.ListOrderDetail[i], flp);
                            indexControl++;
                            for (int j = 0; j < OrderMain.ListOrderDetail[i].ListOrderDetailModifire.Count; j++)
                            {
                                UCItemModifierOfMenu uc = new UCItemModifierOfMenu();
                                uc.Tag = OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j];
                                //uc.Click += ucItemModifierOfMenu_Click;
                                addModifreToOrder(uc, OrderMain.ListOrderDetail[i].ListOrderDetailModifire[j], flp);
                                indexControl++;
                            }
                        }
                    }
                    else
                    {
                        OrderMain.FloorID = TableID;
                        int OrderID = OrderService.CountOrder() + 1;
                        OrderMain.OrderID = OrderID;
                    }
                }
            }
            catch (Exception ex)
            {
                LogPOS.WriteLog("frmTranferTable:::::::::::::::::::LoadOrder:::::::::::::::::::::::::::::::::" + ex.Message);
            }
        }
예제 #30
0
        public int InsertInvoice(OrderDateModel Order)
        {
            int     result = 0;
            int     InvoiceID;
            INVOICE invoice = new INVOICE();
            List <INVOICE_DETAIL>          invoiceDEtail         = new List <INVOICE_DETAIL>();
            List <INVOICE_DETAIL_MODIFIRE> invoiceDetailModifier = new List <INVOICE_DETAIL_MODIFIRE>();
            List <PAYMENT_INVOICE_HISTORY> PaymentHistory        = new List <PAYMENT_INVOICE_HISTORY>();
            List <INVOICE_BY_CARD>         InvoiceByCard         = new List <INVOICE_BY_CARD>();
            ACC_PAYMENT Acc = new ACC_PAYMENT();

            using (var trans = _context.Database.BeginTransaction())
            {
                _context.Database.ExecuteSqlCommand("update ORDER_DATE set Status=1 where OrderID='" + Order.OrderID + "'");
                invoice = CopyInvoice(Order);
                _context.Entry(invoice).State = System.Data.Entity.EntityState.Added;
                _context.SaveChanges();
                InvoiceID = invoice.InvoiceID;
                string InvNum = InvoiceID + "" + DateTime.Now.Date.Year + "" + DateTime.Now.Date.Month + "" + DateTime.Now.Date.Day;
                _context.Database.ExecuteSqlCommand("update invoice set InvoiceNumber='" + InvNum + "'where InvoiceID='" + InvoiceID + "'");

                //Update balance for customer
                _context.Database.ExecuteSqlCommand("update client set balance=balance+'" + -Convert.ToInt32(Order.Payment) + "' where ClientID='" + Order.CusItem.ClientID + "'");
                Acc               = CopyAcc(Order);
                Acc.InvoiceID     = InvoiceID;
                Acc.InvoiceNumber = Convert.ToInt32(InvNum);
                //_context.Entry(Acc).State = System.Data.Entity.EntityState.Added;
                string sql = "insert into acc_payment(CusNo,SubTotal,InvoiceID,InvoiceNumber,Cash,Card,IsCredit,IsDebit,CreateDate,CreateBy,UpdateDate,UpdateBy)values(" +
                             "'" + Order.CusItem.ClientID + "','" + Convert.ToInt32(Order.Payment) + "','" + InvoiceID + "','" + Convert.ToInt32(InvNum) + "',0,0,1,0,'" + DateTime.Now + "','" + Order.ShiftID + "','" + DateTime.Now + "','" + Order.ShiftID + "')";
                _context.Database.ExecuteSqlCommand("insert into acc_payment(CusNo,SubTotal,InvoiceID,InvoiceNumber,Cash,Card,IsCredit,IsDebit,CreateDate,CreateBy,UpdateDate,UpdateBy)values(" +
                                                    "'" + Order.CusItem.ClientID + "','" + Convert.ToInt32(Order.Payment) + "','" + InvoiceID + "','" + Convert.ToInt32(InvNum) + "',0,0,1,0,'" + DateTime.Now + "','" + Order.ShiftID + "','" + DateTime.Now + "','" + Order.ShiftID + "')");
                //
                invoiceDEtail = CopyInvoicedetail(Order);
                foreach (INVOICE_DETAIL item in invoiceDEtail)
                {
                    item.InvoiceID             = InvoiceID;
                    item.InvoiceNumber         = Convert.ToInt32(InvNum);
                    _context.Entry(item).State = System.Data.Entity.EntityState.Added;
                }
                invoiceDetailModifier = CopyInvoiceMidifire(Order);

                foreach (INVOICE_DETAIL_MODIFIRE item in invoiceDetailModifier)
                {
                    item.InvoiceID     = InvoiceID;
                    item.InvoiceNumber = Convert.ToInt32(InvNum);

                    _context.Entry(item).State = System.Data.Entity.EntityState.Added;
                }

                PaymentHistory = CopyListPayment(Order);
                foreach (PAYMENT_INVOICE_HISTORY item in PaymentHistory)
                {
                    item.InvoiceID             = InvoiceID;
                    item.InvoiceNumber         = Convert.ToInt32(InvNum);
                    _context.Entry(item).State = System.Data.Entity.EntityState.Added;
                }

                InvoiceByCard = CopyInvoiceByCard(Order);
                foreach (INVOICE_BY_CARD item in InvoiceByCard)
                {
                    item.InvoiceID             = InvoiceID;
                    _context.Entry(item).State = System.Data.Entity.EntityState.Added;
                }

                _context.SaveChanges();
                trans.Commit();
                result = 1;
            }
            return(result);
        }