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