示例#1
0
        public string[] GetCurrent(FPLX fplx)
        {
            string str = "";

            try
            {
                TaxCard    card           = TaxCardFactory.CreateTaxCard();
                int        num            = int.Parse(Enum.Format(typeof(FPLX), fplx, "d"));
                InvCodeNum currentInvCode = card.GetCurrentInvCode(fplx);
                if ((currentInvCode.InvTypeCode == null) || (currentInvCode.InvNum == null))
                {
                    str = card.get_ErrCode();
                    if (str.StartsWith("TCD_768") || str.StartsWith("TCD_769"))
                    {
                        FormMain.CallUpload();
                    }
                    return(null);
                }
                if (currentInvCode.InvTypeCode.Equals("0000000000"))
                {
                    str = "INP-242104";
                    return(null);
                }
                str = "000000";
                return(new string[] { currentInvCode.InvTypeCode, currentInvCode.InvNum });
            }
            catch (Exception exception)
            {
                this.log.Error("读取当前发票代码号码时异常:" + exception.ToString());
                str = "9999";
                return(null);
            }
        }
示例#2
0
 public static bool ParseAllocateOutput(XmlDocument doc, out bool isDeviceError, out string msg)
 {
     try
     {
         new InvVolumeApp();
         XmlNode node  = doc.SelectSingleNode("//CODE");
         XmlNode node2 = doc.SelectSingleNode("//MESS");
         if (!node.InnerText.Equals("0000"))
         {
             isDeviceError = false;
             msg           = node2.InnerText;
             return(false);
         }
         byte[] buffer = Convert.FromBase64String(doc.SelectSingleNode("//FPJJSMW").InnerText);
         TaxCardInstance.NInvWriteConfirmFromMain(buffer, buffer.Length);
         if (TaxCardInstance.get_RetCode() != 0)
         {
             isDeviceError = true;
             msg           = TaxCardInstance.get_ErrCode();
             return(false);
         }
         isDeviceError = false;
         msg           = string.Empty;
         return(true);
     }
     catch (BaseException exception)
     {
         loger.Error(exception.Message);
         ExceptionHandler.HandleError(exception);
         isDeviceError = false;
         msg           = exception.Message;
         return(false);
     }
     catch (Exception exception2)
     {
         loger.Error(exception2.Message);
         ExceptionHandler.HandleError(exception2);
         isDeviceError = false;
         msg           = exception2.Message;
         return(false);
     }
 }
        public BaseForm RunCommand()
        {
            TaxCard      card      = TaxCardFactory.CreateTaxCard();
            TaxStateInfo stateInfo = card.GetStateInfo(false);

            if (card.get_RetCode() > 0)
            {
                MessageManager.ShowMsgBox(card.get_ErrCode());
                return(null);
            }
            if (stateInfo.MachineNumber != card.get_Machine())
            {
                MessageManager.ShowMsgBox("INP-252101");
                return(null);
            }
            if (card.get_ECardType() == 3)
            {
                return(new JSPStateQuery());
            }
            return(new JSKStateQuery());
        }
        protected override object[] doService(object[] param)
        {
            TaxCard             card     = TaxCardFactory.CreateTaxCard();
            List <InvVolumeApp> invStock = new List <InvVolumeApp>();

            invStock = card.GetInvStock();
            XmlDocument    document = new XmlDocument();
            XmlDeclaration newChild = document.CreateXmlDeclaration("1.0", "GBK", null);

            document.PreserveWhitespace = false;
            document.AppendChild(newChild);
            XmlElement element = document.CreateElement("FPXT");

            document.AppendChild(element);
            XmlElement element2 = document.CreateElement("OUTPUT");

            element.AppendChild(element2);
            if (card.get_RetCode() == 0)
            {
                XmlElement element3 = document.CreateElement("CODE");
                element3.InnerText = "0000";
                element2.AppendChild(element3);
                XmlElement element4 = document.CreateElement("MESS");
                element4.InnerText = string.Empty;
                element2.AppendChild(element4);
                XmlElement element5 = document.CreateElement("DATA");
                element2.AppendChild(element5);
                if (invStock != null)
                {
                    foreach (InvVolumeApp app in invStock)
                    {
                        XmlElement element6 = document.CreateElement("FPMX");
                        element2.AppendChild(element6);
                        XmlElement element7 = document.CreateElement("FPZL");
                        element7.InnerText = app.InvType.ToString();
                        element6.AppendChild(element7);
                        XmlElement element8 = document.CreateElement("LBDM");
                        element8.InnerText = app.TypeCode;
                        element6.AppendChild(element8);
                        XmlElement element9 = document.CreateElement("QSHM");
                        element9.InnerText = app.HeadCode.ToString();
                        element6.AppendChild(element9);
                        XmlElement element10 = document.CreateElement("FPFS");
                        element10.InnerText = app.Number.ToString();
                        element6.AppendChild(element10);
                        XmlElement element11 = document.CreateElement("GMRQ");
                        element11.InnerText = app.BuyDate.ToString("yyyy-MM-dd");
                        element6.AppendChild(element11);
                    }
                }
            }
            else
            {
                XmlElement element12 = document.CreateElement("CODE");
                element12.InnerText = card.get_ErrCode();
                element2.AppendChild(element12);
                XmlElement element13 = document.CreateElement("MESS");
                element13.InnerText = MessageManager.GetMessageInfo(card.get_ErrCode());
                element2.AppendChild(element13);
            }
            document.PreserveWhitespace = true;
            return(new object[] { document.InnerXml });
        }
示例#5
0
        protected override void RunCommand()
        {
            RemoteReport report = new RemoteReport();
            TaxCard      card   = TaxCardFactory.CreateTaxCard();

            card.get_TaxClock().ToString("yyyyMM");
            if (report.CheckStatus())
            {
                if (report.ISZP)
                {
                    report.ProcessMsg(FPZL.ZP, OPTYPE.ZPCB);
                    if (report.ISCBZP)
                    {
                        PropertyUtil.SetValue(AttributeName.ZPCSDateName, report.dtZPLastCSDate.ToString("yyyyMM"));
                    }
                }
                if (report.ISHY)
                {
                    report.ProcessMsg(FPZL.HY, OPTYPE.HYCB);
                    if (report.ISCBHy)
                    {
                        PropertyUtil.SetValue(AttributeName.HYCSDateName, report.dtHYLastCSDate.ToString("yyyyMM"));
                    }
                }
                if (report.ISJDC)
                {
                    report.ProcessMsg(FPZL.JDC, OPTYPE.JDCCB);
                    if (report.ISCBJDC)
                    {
                        PropertyUtil.SetValue(AttributeName.JDCCSDateName, report.dtJDCLastCSDate.ToString("yyyyMM"));
                    }
                }
                if (report.ISJSP)
                {
                    report.ProcessMsg(FPZL.JSFP, OPTYPE.JSPCB);
                    if (report.ISCBJSFP)
                    {
                        PropertyUtil.SetValue(AttributeName.JSPCSDateName, report.dtJSPLastCSDate.ToString("yyyyMM"));
                    }
                }
                PropertyUtil.Save();
                if ((report.ISCBZP && report.ISCBHy) && (report.ISCBJDC && report.ISCBJSFP))
                {
                    MessageManager.ShowMsgBox("YC0003");
                }
                else if ((card.get_RetCode() == 250) || (card.get_RetCode() == 0x309))
                {
                    MessageManager.ShowMsgBox(card.get_ErrCode());
                }
                else
                {
                    string str = "本次上报汇总情况如下:\r\n";
                    if (card.get_QYLX().ISPTFP || card.get_QYLX().ISZYFP)
                    {
                        if (!report.ISCBZP)
                        {
                            if ((card.get_QYLX().ISPTFP || card.get_QYLX().ISZYFP) && (card.get_QYLX().ISPTFPDZ&& (card.get_InvEleKindCode() == 0x3d)))
                            {
                                str = str + "(" + report.dtZPLastCSDate.ToString("yyyy年MM月") + "份征期)增值税专普票及电子增值税普通发票抄报失败原因:";
                            }
                            else if ((card.get_QYLX().ISPTFP || card.get_QYLX().ISZYFP) && (!card.get_QYLX().ISPTFPDZ || (card.get_QYLX().ISPTFPDZ&& (card.get_InvEleKindCode() == 0x33))))
                            {
                                str = str + "(" + report.dtZPLastCSDate.ToString("yyyy年MM月") + "份征期)增值税专普票抄报失败原因:";
                            }
                            else if ((!card.get_QYLX().ISPTFP&& !card.get_QYLX().ISZYFP) && (card.get_QYLX().ISPTFPDZ&& (card.get_InvEleKindCode() == 0x3d)))
                            {
                                str = str + "(" + report.dtZPLastCSDate.ToString("yyyy年MM月") + "份征期)电子增值税普通发票抄报失败原因:";
                            }
                            str = str + report.CBZPMESS + "\r\n";
                        }
                        else
                        {
                            if ((card.get_QYLX().ISPTFP || card.get_QYLX().ISZYFP) && (card.get_QYLX().ISPTFPDZ&& (card.get_InvEleKindCode() == 0x3d)))
                            {
                                str = str + "(" + report.dtZPLastCSDate.ToString("yyyy年MM月") + "份征期)增值税专普票及电子增值税普通发票抄报成功:";
                            }
                            else if ((card.get_QYLX().ISPTFP || card.get_QYLX().ISZYFP) && (!card.get_QYLX().ISPTFPDZ || (card.get_QYLX().ISPTFPDZ&& (card.get_InvEleKindCode() == 0x33))))
                            {
                                str = str + "(" + report.dtZPLastCSDate.ToString("yyyy年MM月") + "份征期)增值税专普票抄报成功:";
                            }
                            else if ((!card.get_QYLX().ISPTFP&& !card.get_QYLX().ISZYFP) && (card.get_QYLX().ISPTFPDZ&& (card.get_InvEleKindCode() == 0x3d)))
                            {
                                str = str + "(" + report.dtZPLastCSDate.ToString("yyyy年MM月") + "份征期)电子增值税普通发票抄报成功:";
                            }
                            str = str + report.CBZPMESS + "\r\n";
                        }
                    }
                    if (card.get_QYLX().ISHY)
                    {
                        if (!report.ISCBHy)
                        {
                            str = (str + "(" + report.dtHYLastCSDate.ToString("yyyy年MM月") + "份征期)货物运输业增值税专用发票抄报失败原因:") + report.CBHYMESS + "\r\n";
                        }
                        else if (card.get_QYLX().ISHY)
                        {
                            str = (str + "(" + report.dtHYLastCSDate.ToString("yyyy年MM月") + "份征期)货物运输业增值税专用发票抄报成功:") + report.CBHYMESS + "\r\n";
                        }
                    }
                    if (card.get_QYLX().ISJDC || card.get_QYLX().ISPTFPDZ)
                    {
                        if (card.get_QYLX().ISJDC)
                        {
                            if (!str.Contains("机动车"))
                            {
                                str = str + "(" + report.dtJDCLastCSDate.ToString("yyyy年MM月") + "份征期)机动车销售统一发票";
                            }
                            else
                            {
                                str = str + "及机动车销售统一发票";
                            }
                        }
                        if (card.get_QYLX().ISPTFPDZ&& (card.get_InvEleKindCode() == 0x33))
                        {
                            if (!str.Contains("机动车"))
                            {
                                str = str + "(" + report.dtJDCLastCSDate.ToString("yyyy年MM月") + "份征期)电子增值税普通发票";
                            }
                            else
                            {
                                str = str + "及电子增值税普通发票";
                            }
                        }
                        if (!report.ISCBJDC)
                        {
                            str = (str + "抄报失败原因:") + report.CBJDCMESS + "\r\n";
                        }
                        else
                        {
                            str = (str + "抄报成功:") + report.CBJDCMESS + "\r\n";
                        }
                    }
                    if (card.get_QYLX().ISPTFPJSP)
                    {
                        if (!report.ISCBJSFP)
                        {
                            if (card.get_QYLX().ISPTFPJSP)
                            {
                                str = (str + "(" + report.dtJSPLastCSDate.ToString("yyyy年MM月") + "份征期)增值税普通发票(卷票)抄报失败原因:") + report.CBJSPMESS + "\r\n";
                            }
                        }
                        else if (card.get_QYLX().ISPTFPJSP)
                        {
                            str = (str + "(" + report.dtJSPLastCSDate.ToString("yyyy年MM月") + "份征期)增值税普通发票(卷票)抄报成功:") + report.CBJSPMESS + "\r\n";
                        }
                    }
                    MessageManager.ShowMsgBox("YC0004", new string[] { str });
                }
            }
        }
        protected override object[] doService(object[] param)
        {
            TaxCard             card  = TaxCardFactory.CreateTaxCard();
            List <InvVolumeApp> list  = new List <InvVolumeApp>();
            List <int>          list2 = new List <int>();
            bool        flag          = false;
            bool        flag2         = true;
            bool        isDeviceError = false;
            string      msg           = string.Empty;
            InvoiceType typeCode      = (InvoiceType)ShareMethods.GetTypeCode(param[1].ToString());

            if (((0x33 == typeCode) || (11 == typeCode)) || (0x29 == typeCode))
            {
                flag = true;
                msg  = "待分配发票类型有误";
            }
            if (!flag)
            {
                UnlockInvoice unlockVolume = card.NInvSearchUnlockFromMain();
                if (card.get_RetCode() != 0)
                {
                    flag2         = false;
                    isDeviceError = true;
                    msg           = card.get_ErrCode();
                }
                else
                {
                    bool   flag4 = DownloadCommon.CheckEmpty(unlockVolume.Buffer);
                    string str2  = "";
                    if (!flag4)
                    {
                        str2 = unlockVolume.get_Number().PadLeft(8, '0');
                        InvVolumeApp item = new InvVolumeApp();
                        flag2 = AllocateCommon.AllocateOneVolume(unlockVolume, out isDeviceError, out msg);
                        if (flag2)
                        {
                            item.InvType  = Convert.ToByte(unlockVolume.get_Kind());
                            item.TypeCode = unlockVolume.get_TypeCode();
                            item.HeadCode = Convert.ToUInt32(unlockVolume.get_Number());
                            item.Number   = Convert.ToUInt16(unlockVolume.get_Count());
                            list.Add(item);
                            list2.Add(unlockVolume.get_Machine());
                        }
                    }
                    bool flag5 = false;
                    if (Convert.ToInt32(param[3].ToString()).ToString("00000000") == str2)
                    {
                        flag5 = true;
                    }
                    if (flag2 && !flag5)
                    {
                        InvVolumeApp  app2     = new InvVolumeApp();
                        string        str3     = param[2].ToString();
                        long          num      = Convert.ToInt64(param[3].ToString());
                        long          num2     = Convert.ToInt64(param[4].ToString());
                        InvoiceType   type2    = (InvoiceType)ShareMethods.GetTypeCode(param[1].ToString());
                        int           num3     = Convert.ToInt32(param[0].ToString());
                        UnlockInvoice invoice2 = card.NInvAllotToSubMachine(str3, num, num2, type2, num3);
                        if (card.get_RetCode() != 0)
                        {
                            flag2         = false;
                            isDeviceError = true;
                            msg           = card.get_ErrCode();
                        }
                        else
                        {
                            flag2 = AllocateCommon.AllocateOneVolume(invoice2, out isDeviceError, out msg);
                            if (flag2)
                            {
                                app2.InvType  = Convert.ToByte(invoice2.get_Kind());
                                app2.TypeCode = invoice2.get_TypeCode();
                                app2.HeadCode = Convert.ToUInt32(invoice2.get_Number());
                                app2.Number   = Convert.ToUInt16(invoice2.get_Count());
                                list.Add(app2);
                                list2.Add(invoice2.get_Machine());
                            }
                        }
                    }
                }
            }
            XmlDocument    document = new XmlDocument();
            XmlDeclaration newChild = document.CreateXmlDeclaration("1.0", "GBK", null);

            document.PreserveWhitespace = false;
            document.AppendChild(newChild);
            XmlElement element = document.CreateElement("FPXT");

            document.AppendChild(element);
            XmlElement element2 = document.CreateElement("OUTPUT");

            element.AppendChild(element2);
            XmlElement element3 = document.CreateElement("CODE");
            XmlElement element4 = document.CreateElement("MESS");

            if (flag)
            {
                element3.InnerText = "0002";
                element4.InnerText = msg;
            }
            else if (flag2)
            {
                element3.InnerText = "0000";
                element4.InnerText = string.Empty;
            }
            else if (isDeviceError)
            {
                element3.InnerText = msg;
                element4.InnerText = MessageManager.GetMessageInfo(msg);
            }
            else
            {
                element3.InnerText = "0001";
                element4.InnerText = msg;
            }
            element2.AppendChild(element3);
            element2.AppendChild(element4);
            if (list.Count > 0)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    XmlElement element5 = document.CreateElement("FPJFP");
                    element2.AppendChild(element5);
                    XmlElement element6 = document.CreateElement("FKPJH");
                    element6.InnerText = list2[i].ToString();
                    element5.AppendChild(element6);
                    XmlElement element7 = document.CreateElement("FPZL");
                    element7.InnerText = list[i].InvType.ToString();
                    element5.AppendChild(element7);
                    XmlElement element8 = document.CreateElement("LBDM");
                    element8.InnerText = list[i].TypeCode;
                    element5.AppendChild(element8);
                    XmlElement element9 = document.CreateElement("QSHM");
                    element9.InnerText = list[i].HeadCode.ToString();
                    element5.AppendChild(element9);
                    XmlElement element10 = document.CreateElement("FPFS");
                    element10.InnerText = list[i].Number.ToString();
                    element5.AppendChild(element10);
                }
            }
            document.PreserveWhitespace = true;
            return(new object[] { document.InnerXml });
        }