Esempio n. 1
0
        /// <summary>
        /// GerarDetImpostoCOFINS
        /// </summary>
        /// <param name="COFINS"></param>
        /// <param name="nodeImposto"></param>
        private void GerarDetImpostoCOFINS(NFe nfe, COFINS COFINS, XmlElement nodeImposto)
        {
            if (!string.IsNullOrEmpty(COFINS.CST))
            {
                XmlElement node0 = doc.CreateElement("COFINS");

                switch (COFINS.CST)
                {
                    case "01":
                    case "02":
                        {
                            nodeCurrent = doc.CreateElement("COFINSAliq");
                            node0.AppendChild(nodeCurrent);
                            nodeImposto.AppendChild(node0);

                            wCampo(COFINS.CST, TpcnTipoCampo.tcStr, TpcnResources.CST);
                            wCampo(COFINS.vBC, TpcnTipoCampo.tcDec2, TpcnResources.vBC);
                            wCampo(COFINS.pCOFINS, this.nDecimaisPerc, TpcnResources.pCOFINS);
                            wCampo(COFINS.vCOFINS, TpcnTipoCampo.tcDec2, TpcnResources.vCOFINS);
                        }
                        break;

                    case "03":
                        {
                            nodeCurrent = doc.CreateElement("COFINSQtde");
                            node0.AppendChild(nodeCurrent);
                            nodeImposto.AppendChild(node0);

                            wCampo(COFINS.CST, TpcnTipoCampo.tcStr, TpcnResources.CST);
                            wCampo(COFINS.qBCProd, TpcnTipoCampo.tcDec4, TpcnResources.qBCProd);
                            wCampo(COFINS.vAliqProd, TpcnTipoCampo.tcDec4, TpcnResources.vAliqProd);
                            wCampo(COFINS.vCOFINS, TpcnTipoCampo.tcDec2, TpcnResources.vCOFINS);
                        }
                        break;

                    case "04":
                    case "05":
                    case "06":
                    case "07":
                    case "08":
                    case "09":
                        {
                            nodeCurrent = doc.CreateElement("COFINSNT");
                            node0.AppendChild(nodeCurrent);
                            nodeImposto.AppendChild(node0);

                            wCampo(COFINS.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 ((COFINS.vBC + COFINS.pCOFINS > 0) && (COFINS.qBCProd + COFINS.vAliqProd > 0))
                                this.cMensagemErro += "COFINSOutr: As TAG's <vBC> e <pCOFINS> não podem ser informadas em conjunto com as TAG <qBCProd> e <vAliqProd>" + Environment.NewLine;

                            nodeCurrent = doc.CreateElement("COFINSOutr");
                            node0.AppendChild(nodeCurrent);
                            nodeImposto.AppendChild(node0);

                            wCampo(COFINS.CST, TpcnTipoCampo.tcStr, TpcnResources.CST);

                            if (COFINS.qBCProd + COFINS.vAliqProd > 0)
                            {
                                wCampo(COFINS.qBCProd, TpcnTipoCampo.tcDec4, TpcnResources.qBCProd);
                                wCampo(COFINS.vAliqProd, TpcnTipoCampo.tcDec4, TpcnResources.vAliqProd);
                            }
                            else
                            {
                                wCampo(COFINS.vBC, TpcnTipoCampo.tcDec2, TpcnResources.vBC);
                                wCampo(COFINS.pCOFINS, this.nDecimaisPerc, TpcnResources.pCOFINS);
                            }
                            wCampo(COFINS.vCOFINS, TpcnTipoCampo.tcDec2, TpcnResources.vCOFINS);
                        }
                        break;
                }
            }
        }