NFe.ConvertTxt.NFeW.GerarDetImpostoPIS C# (CSharp) Method

GerarDetImpostoPIS() private method

GerarDetImpostoPIS
private GerarDetImpostoPIS ( NFe nfe, PIS PIS, XmlElement nodeImposto ) : void
nfe NFe
PIS PIS
nodeImposto System.Xml.XmlElement
return void
        private void GerarDetImpostoPIS(NFe nfe, PIS PIS, XmlElement nodeImposto)
        {
            if (!string.IsNullOrEmpty(PIS.CST))
            {
                XmlElement e0 = doc.CreateElement("PIS");

                switch (PIS.CST)
                {
                    case "01":
                    case "02":
                        nodeCurrent = doc.CreateElement("PISAliq");
                        e0.AppendChild(nodeCurrent);
                        nodeImposto.AppendChild(e0);
                        wCampo(PIS.CST, TpcnTipoCampo.tcStr, TpcnResources.CST);
                        wCampo(PIS.vBC, TpcnTipoCampo.tcDec2, TpcnResources.vBC);
                        wCampo(PIS.pPIS, this.nDecimaisPerc, TpcnResources.pPIS);
                        wCampo(PIS.vPIS, TpcnTipoCampo.tcDec2, TpcnResources.vPIS);
                        break;

                    case "03":
                        nodeCurrent = doc.CreateElement("PISQtde");
                        e0.AppendChild(nodeCurrent);
                        nodeImposto.AppendChild(e0);
                        wCampo(PIS.CST, TpcnTipoCampo.tcStr, TpcnResources.CST);
                        wCampo(PIS.qBCProd, TpcnTipoCampo.tcDec4, TpcnResources.qBCProd);
                        wCampo(PIS.vAliqProd, TpcnTipoCampo.tcDec4, TpcnResources.vAliqProd);
                        wCampo(PIS.vPIS, TpcnTipoCampo.tcDec2, TpcnResources.vPIS);
                        break;

                    case "04":
                    case "05":
                    case "06":
                    case "07":
                    case "08":
                    case "09":
                        nodeCurrent = doc.CreateElement("PISNT");
                        e0.AppendChild(nodeCurrent);
                        nodeImposto.AppendChild(e0);
                        wCampo(PIS.CST, TpcnTipoCampo.tcStr, TpcnResources.CST);
                        break;

                    case "49":
                    case "50":
                    case "51":
                    case "52":
                    case "53":
                    case "54":
                    case "55":
                    case "56":
                    case "60":
                    case "61":
                    case "62":
                    case "63":
                    case "64":
                    case "65":
                    case "66":
                    case "67":
                    case "70":
                    case "71":
                    case "72":
                    case "73":
                    case "74":
                    case "75":
                    case "98":
                    case "99":
                        if ((PIS.vBC + PIS.pPIS > 0) && (PIS.qBCProd + PIS.vAliqProd > 0))
                        {
                            this.cMensagemErro += "PIS: As TAG's <vBC> e <pPIS> não podem ser informadas em conjunto com as TAG <qBCProd> e <vAliqProd>" + Environment.NewLine;
                        }

                        nodeCurrent = doc.CreateElement(TpcnResources.PISOutr.ToString());
                        e0.AppendChild(nodeCurrent);
                        nodeImposto.AppendChild(e0);

                        wCampo(PIS.CST, TpcnTipoCampo.tcStr, TpcnResources.CST);
                        if (PIS.qBCProd + PIS.vAliqProd > 0)
                        {
                            wCampo(PIS.qBCProd, TpcnTipoCampo.tcDec4, TpcnResources.qBCProd);
                            wCampo(PIS.vAliqProd, TpcnTipoCampo.tcDec4, TpcnResources.vAliqProd);
                        }
                        else
                        {
                            wCampo(PIS.vBC, TpcnTipoCampo.tcDec2, TpcnResources.vBC);
                            wCampo(PIS.pPIS, this.nDecimaisPerc, TpcnResources.pPIS);
                        }
                        wCampo(PIS.vPIS, TpcnTipoCampo.tcDec2, TpcnResources.vPIS);
                        break;
                }
            }
        }