示例#1
0
 //无此商品
 private void NoThisGoods()
 {
     WintecIDT700.Beep(100);
     System.Threading.Thread.Sleep(50);
     WintecIDT700.Beep(100);
     System.Threading.Thread.Sleep(50);
     WintecIDT700.Beep(100);
     //ClearSet();
 }
示例#2
0
        /// <summary>
        /// 写卡
        /// </summary>
        private bool WriteCard(decimal money, int i, out string msg)
        {
            if (i >= 3)
            {
                msg = "3次写卡失败。请联系管理员。";
                return(false);
            }

            try
            {
                #region 校验卡号
                if (PubGlobal.BussinessVar.card.InCardno == CardStrFormater.GetCardNo(icCard.ReadIC("0", "1", PubGlobal.SysConfig.CzkPassword), PubGlobal.SysConfig.CzkLen))
                {
                    #region 写金额
                    msg = "写卡成功";
                    bool ok = icCard.WriteIC("1", "0", PubGlobal.SysConfig.CzkPassword, CardStrFormater.FormateMoney(money));
                    if (ok)
                    {
                        WintecIDT700.Beep(100);
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                    #endregion
                }
                else
                {
                    throw new Exception("写卡失败");
                }
                #endregion
            }
            catch
            {
                return(WriteCard(money, i++, out msg));
            }
        }
示例#3
0
        //打印
        private void  PrintBill()
        {
            WintecIDT700.DrawerOpen();
            //打印小票头
            int lineCount = 6;
            int index     = -1;

            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnHeader1))
            {
                lineCount++;
            }
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnHeader2))
            {
                lineCount++;
            }
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnHeader3))
            {
                lineCount++;
            }

            string[] printHeader = new string[lineCount];
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnHeader1))
            {
                printHeader[++index] = PubGlobal.SysConfig.PrnHeader1;
            }
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnHeader2))
            {
                printHeader[++index] = PubGlobal.SysConfig.PrnHeader2;
            }
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnHeader3))
            {
                printHeader[++index] = PubGlobal.SysConfig.PrnHeader3;
            }

            printHeader[++index] = "收款员:" + PubGlobal.SysConfig.User.UserCode;
            printHeader[++index] = "流水号:" + PubGlobal.BussinessVar.payFlowList[0].SerialNo;
            printHeader[++index] = "时间:" + PubGlobal.BussinessVar.payFlowList[0].Sa_date.ToString("yyyy-MM-dd") + " " + PubGlobal.BussinessVar.payFlowList[0].Sa_time;
            printHeader[++index] = "菜品名称                ";
            printHeader[++index] = "    单价      数量      金额";
            printHeader[++index] = "===============";
            WintecIDT700.PrintLineStr(printHeader, lineCount, 3);
            //打印小票体
            index = 0;
            int printeLineOnetime = 60;

            string[] printStr = new string[printeLineOnetime];
            foreach (Model.MSaleFlow saleFlow in PubGlobal.BussinessVar.saleFlowList)
            {
                printStr[index++] = saleFlow.Fname;
                printStr[index++] =
                    "  " +
                    saleFlow.Price.ToString("F2").PadLeft(9, ' ') +
                    saleFlow.Qty.ToString("F2").PadLeft(9, ' ') +
                    saleFlow.Total.ToString("F2").PadLeft(9, ' ');
                if (index == printeLineOnetime)
                {
                    WintecIDT700.PrintLineStr(printStr, printeLineOnetime, 1);
                    index = 0;
                    for (int i = 0; i < printeLineOnetime; i++)
                    {
                        printStr[i] = string.Empty;
                    }
                }
            }
            if (index > 0)
            {
                WintecIDT700.PrintLineStr(printStr, index, 3);
            }

            //打印小票尾
            index     = -1;
            lineCount = 5;
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnFooter1))
            {
                lineCount++;
            }
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnFooter2))
            {
                lineCount++;
            }
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnFooter3))
            {
                lineCount++;
            }

            string[] printEnd = new string[lineCount];
            printEnd[++index] = "===============";
            printEnd[++index] = "合    计:" + PubGlobal.BussinessVar.Total.ToString("F2");
            printEnd[++index] = "会员卡号:" + PubGlobal.BussinessVar.card.OutCardNo;
            printEnd[++index] = "余    额:" + PubGlobal.BussinessVar.card.Total.ToString("F2");
            printEnd[++index] = "===============";
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnFooter1))
            {
                printEnd[++index] = PubGlobal.SysConfig.PrnFooter1;
            }
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnFooter2))
            {
                printEnd[++index] = PubGlobal.SysConfig.PrnFooter2;
            }
            if (!string.IsNullOrEmpty(PubGlobal.SysConfig.PrnFooter3))
            {
                printEnd[++index] = PubGlobal.SysConfig.PrnFooter3;
            }
            WintecIDT700.PrintLineStr(printEnd, lineCount, 3);
            WintecIDT700.FeedPaper(200);
        }
示例#4
0
        static Mutex readCardStatus = new Mutex(true);//读卡状态标志
        /// <summary>
        /// 读卡
        /// </summary>
        private void ReadCard()
        {
            icCard = new ICCard("com2");//初始化
            string inCardNo, msg;

            while (true)                  //
            {
                readCardStatus.WaitOne(); //等待窗口开启
                #region 寻卡
                if (!readSuccess && icCard.SearchIC())
                {
                    Thread.Sleep(100);
                    #region 读卡号
                    try
                    {
                        inCardNo = CardStrFormater.GetCardNo(icCard.ReadIC("0", "1", PubGlobal.SysConfig.CzkPassword), PubGlobal.SysConfig.CzkLen);
                        if (!string.IsNullOrEmpty(inCardNo))
                        {
                            readSuccess = true;

                            WintecIDT700.Beep(100);
                        }
                    }
                    catch
                    {
                        //读卡失败,释放资源,重新读卡
                        //this.Invoke(dlgShowErrorMsgBox, "读卡错误");
                        readCardStatus.ReleaseMutex();

                        readSuccess = false;
                        continue;
                    }
                    #endregion

                    Thread.Sleep(100);
                    this.Invoke(dlgShowWaitMsg, "正在读取金额");
                    #region 读金额
                    if (!TransModule.GetCzCard(inCardNo, out msg))
                    {
                        //读取金额失败
                        this.Invoke(dlgShowErrorMsgBox, "读取金额失败\r\n错误原因:" + msg);
                        this.Invoke(dlgHideWaitMsg);
                        readSuccess = false;
                        readCardStatus.ReleaseMutex();
                        continue;
                    }
                    #endregion

                    if (!WriteCard(PubGlobal.BussinessVar.card.Total - PubGlobal.BussinessVar.Total, 1, out msg))
                    {
                        MessageBox.Show("写金额失败");
                    }

                    Thread.Sleep(100);
                    this.Invoke(dlgShowWaitMsg, "正在交易");
                    #region 交易
                    //PubGlobal.BussinessVar.card.Total = CardStrFormater.GetMoney(icCard.ReadIC("1", "0", PubGlobal.SysConfig.CzkPassword));
                    //WintecIDT700.Beep(100);
                    if (Trade(out msg))
                    {
                        this.Invoke(dlgShowInfoMsgBox, "交易成功\r\n卡余额:" + PubGlobal.BussinessVar.card.Total);
                        tradeSuccess = true;
                    }
                    else
                    {
                        this.Invoke(dlgShowErrorMsgBox, "交易失败\r\n失败原因:" + msg);
                        //交易失败
                        if (!WriteCard(PubGlobal.BussinessVar.card.Total, 1, out msg))
                        {
                            MessageBox.Show("写卡失败");
                        }
                        PubGlobal.BussinessVar.card = null;
                    }
                    #endregion

                    this.Invoke(dlgHideWaitMsg);
                }
                #endregion
                readCardStatus.ReleaseMutex(); //释放阻塞
                this.Invoke(dlgCloseForm);     //关闭窗口
                Thread.Sleep(500);             //线程休眠500毫秒
            }
        }