/// <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; } } }