示例#1
0
        public IPrinterResponse PrintTotals(ISalesDocument document, bool hardcopy)
        {
            PrinterResponse response = new PrinterResponse();
            int             type     = GetDocumentType();

            if (type > 100)
            {
                throw new NoDocumentFoundException();
            }
            if (type != document.DocumentTypeId)
            {
                throw new DocumentTypeException();
            }

            decimal total = CalculateTotal();

            if (document.TotalAmount != total)
            {
                throw new SubtotalNotMatchException(Math.Abs(total - document.TotalAmount));
            }
            response.Data = "" + total;

            salesDocument = document;
            guiDocument.AddLines(Formatter.FormatTotals(document, hardcopy));
            WriteCurrentLog("Total=" + document.TotalAmount);
            return(response);
        }
示例#2
0
        public IPrinterResponse PrintZReport()
        {
            PrinterResponse response = new PrinterResponse();

            lastz++;
            if (BeforeZReport != null)
            {
                BeforeZReport(lastz, new EventArgs());
            }

            StartCurrentLog(4000);
            guiDocument.AddLine("".PadLeft(SpecialReport.MaxCharsAtLine, '-'));
            guiDocument.AddLine("".PadLeft(SpecialReport.MaxCharsAtLine, ' '));
            guiDocument.AddLine(String.Format("{0} Z  RAPORU {0}", "".PadLeft(14, '*')));
            guiDocument.AddLines(Formatter.FormatReceiptHeader("FÝÞ", currentDocumentId));

            guiDocument.AddLines(summary);
            guiDocument.AddLines(Formatter.FormatEnd());

            lastZReportDate        = DateTime.Now;
            cashAmountInDrawer     = 0;
            cashPayment            = 0;
            checkPayment           = 0;
            foreignCurrencyPayment = 0;
            documentSold           = 0;
            documentSuspended      = 0;
            documentVoided         = 0;
            currentDocumentId      = 0;

            response.Data   = lastz.ToString();
            response.Detail = "BU Z RAPORU, YAPAY YAZICI ÝLE ALINMIÞTIR";

            if (AfterZReport != null)
            {
                AfterZReport(response, new EventArgs());
            }

            string[] lines = new string[2];
            lines[0] = "No:=" + lastz;
            lines[1] = "Date:=" + DateTime.Now.ToString();
            IOUtil.WriteAllLines(lastZLog, lines);

            if (File.Exists(currentLog))
            {
                File.Delete(currentLog);
            }

            if (File.Exists(lastDocumentLog))
            {
                File.Delete(lastDocumentLog);
            }

            return(response);
        }
示例#3
0
        private FiscalPrinter()
        {
            RegisterId = PosConfiguration.Get("RegisterId");

            guiDocument = new GuiPrinterForm();
            Formatter.SetCoordinates();
            toResponse = new PrinterResponse();

            lastz             = LastZReportNo;
            lastZReportDate   = LastZReportDate;
            currentDocumentId = CurrentDocumentId;
        }
示例#4
0
        public async Task GetPrinterByKey_PrinterFound_ShouldReturnOkStatus()
        {
            //Arrange
            var fakePrinter = new PrinterResponse
            {
                Name = "Printer1"
            };

            _printerBusiness.Setup(x => x.GetPrinterByKey(It.IsAny <Guid>())).ReturnsAsync(fakePrinter);

            //Act
            var response = await printerController.GetPrinterByKey() as OkObjectResult;

            //Assert
            Assert.Equal(200, response.StatusCode);
        }
示例#5
0
        public async Task GetPrinterByKey_PrinterFound_ShouldReturnPrinters()
        {
            //Arrange
            var mockPrinter = new PrinterResponse
            {
                Name = "Printer1"
            };

            _printerBusiness.Setup(x => x.GetPrinterByKey(It.IsAny <Guid>())).ReturnsAsync(mockPrinter);

            //Act
            var response = await printerController.GetPrinterByKey() as OkObjectResult;

            var responsePrinter = response.Value as PrinterResponse;

            //Assert
            Assert.Equal(mockPrinter.Name, responsePrinter.Name);
        }
示例#6
0
        public async Task GetAllPrinters_PrintersFound_ShouldReturnPrinters()
        {
            //Arrange
            var fakePrinters = new List <PrinterResponse>();
            var mockPrinter  = new PrinterResponse
            {
                Name = "Printer1"
            };

            fakePrinters.Add(mockPrinter);
            _printerBusiness.Setup(x => x.GetPrintersByFacility(It.IsAny <Guid>())).ReturnsAsync(fakePrinters);

            //Act
            var response = await printerController.GetAllPrinters() as OkObjectResult;

            var list = response.Value as IList <PrinterResponse>;

            //Assert
            Assert.Equal(mockPrinter.Name, list.First().Name);
        }
示例#7
0
        /// <summary>
        ///     Processes the incoming printer data
        /// </summary>
        /// <param name="msg">Message to handle</param>
        private void ProcessIncomingResponse(PrinterResponse msg)
        {
            if (msg.Text.Contains("T:"))
            {
                var(bedTemperature, hotEndTemperature) = ParseTemperatureReadings(msg.Text);
                _printer.Tell(new TemperatureReported(bedTemperature, hotEndTemperature));
            }

            if (msg.Text.StartsWith("ok") || msg.Text.StartsWith("start") || msg.Text.StartsWith("Gbrl "))
            {
                if (_waitingForResponse)
                {
                    _waitingForResponse = false;

                    _printer.Tell(PrinterCommandProcessed.Instance);

                    Stash.UnstashAll();
                    UnbecomeStacked();
                }
            }

            if (msg.Text.StartsWith("resend") || msg.Text.StartsWith("rs"))
            {
                var line  = ResendPattern.Replace(msg.Text, " ");
                var words = SplitPattern.Split(line).ToList();

                while (words.Count > 0)
                {
                    var word = words[0];
                    words.RemoveAt(0);

                    if (int.TryParse(word, out var resendIndex))
                    {
                        _flightRecorder.Tell(new ReplayCommands(resendIndex));
                        BecomeStacked(ResendingCommands);
                        break;
                    }
                }
            }
        }
示例#8
0
        public IPrinterResponse CutPaper()
        {
            PrinterResponse response = null;

            return(response);
        }
示例#9
0
        public IPrinterResponse Feed()
        {
            PrinterResponse response = null;

            return(response);
        }