private void Sign() { AttentionResponse attentionResponse = ServiceHelper.AttentionRequest(); if (attentionResponse.ATT_GSC == "0000") { signRequest = new SignRequest { PosSerialNumber = Config.PosSerialNumber, IssueTime = DateTime.Now.ToString("yyyyMMddHHmmss"), TransactionType = Credit.SelectedPaymentType.Code, PaymentMode = Credit.SelectedPaymentType.Code, SaleType = "0", LocalPurchaseOrder = "", Cashier = Credit.Cashier, BuyerTPIN = Credit.Buyer.Tin, BuyerName = Credit.Buyer.Name, BuyerTaxAccountName = "", BuyerAddress = Credit.Buyer.Address, BuyerTel = Credit.Buyer.TelPhone, OriginalInvoiceCode = "", OriginalInvoiceNumber = "" }; //signRequest.BuyerCostCenterId = "1234567890"; //signRequest.InvoiceNumber = "PNQAVDNX-PNQAVDNX-1"; //signRequest.Options = new Dictionary<string, string>(); //if (Credit.IsMitQr) //{ // signRequest.Options.Add("OmitQRCodeGen", "1"); //} //else //{ // signRequest.Options.Add("OmitQRCodeGen", "0"); //} //if (Credit.IsMitTexTual) //{ // signRequest.Options.Add("OmitTextualRepresentation", "1"); //} //else //{ // signRequest.Options.Add("OmitTextualRepresentation", "0"); //} signRequest.Items = new List <SignGoodItem>(); SignGoodItem signGoodItem; foreach (var item in Credit.Productes) { signGoodItem = new SignGoodItem(); signGoodItem.GTIN = item.BarCode; signGoodItem.Name = item.Name; signGoodItem.Quantity = item.Count; signGoodItem.UnitPrice = item.Price; signGoodItem.TotalAmount = item.Amount; signGoodItem.IsTaxInclusive = true; signGoodItem.Labels = new string[1] { item.TaxType.Label }; signRequest.Items.Add(signGoodItem); } ServiceHelper.TcpClient.Complated -= TcpClient_Complated; ServiceHelper.TcpClient.Complated += TcpClient_Complated; ServiceHelper.SignRequest(signRequest); } else { MessageBoxEx.Show("E-SDC is not available.ATT_GSC=" + attentionResponse.ATT_GSC); } }
private static void TcpClient_Complated(object sender, MessageModel e) { try { if (e.MessageId != 0x01) { return; } TcpClient.Complated -= TcpClient_Complated; StatusResponse statusResponse = JsonConvert.DeserializeObject<StatusResponse>(e.Message); if (statusResponse != null) { // Const.IsHasGetStatus = true; //保存软件信息--此处处理未分开(每次都保存),正式使用的时候请 var info = (from a in Const.dB.PosInfo select a).FirstOrDefault(); if (info != null) { Const.dB.Update<PosInfo>(new PosInfo { Id = info.Id, CompanyName = statusResponse.Manufacture, Desc = statusResponse.Model, Version = statusResponse.SoftwareVersion, IssueDate = info.IssueDate }); } //记录税种信息 if (statusResponse.TaxInfo != null && statusResponse.TaxInfo.Count > 0) { Const.dB.CodeTaxtype.Delete(); foreach (var item in statusResponse.TaxInfo) { if (item.Category != null && item.Category.Count > 0) { foreach (var itm in item.Category) { Const.dB.Insert<CodeTaxtype>(new CodeTaxtype { TaxTypeName = item.TaxTpye, TaxTypeCode = item.TaxTpye, TaxItemName = itm.TaxName, TaxItemCode = itm.CategoryId.ToString(), TaxRate = itm.TaxRate, EffectDate = itm.EffectiveDate, ExpireDate = itm.ExpiredDate }); } } } } //记录monitor信息 if (!statusResponse.isInitialized) { AttentionResponse attentionResponse = ServiceHelper.AttentionRequest(); if (attentionResponse.ATT_GSC == "0000") { //校验pin PinView pinView = new PinView(); } else { ShowMessageBegin("E-SDC is not available"); } } else { if (statusResponse.isLocked) { ShowMessageBegin("E-SDC is locked."); } else { ShowMessageBegin("E-SDC is available"); } } } } catch (Exception ex) { ShowMessageBegin(ex.Message); } }