void GerarIdeNFref(NFe Nfe, XmlElement ELide)
{
// Gera TAGs referentes a NFe referência
foreach (NFref refNFe in Nfe.ide.NFref)
{
if (!string.IsNullOrEmpty(refNFe.refNFe))
{
XmlElement ep = doc.CreateElement(TpcnResources.NFref.ToString());
XmlElement el = doc.CreateElement(TpcnResources.refNFe.ToString());
el.InnerText = refNFe.refNFe;
ep.AppendChild(el);
ELide.AppendChild(ep);
}
}
// Gera TAGs se NÃO for uma NFe referência
foreach (NFref refNFe in Nfe.ide.NFref)
{
if (refNFe.refNF != null)
{
if (refNFe.refNF.nNF > 0)
{
XmlElement ep = doc.CreateElement(TpcnResources.NFref.ToString());
XmlElement el = doc.CreateElement("refNF");
ep.AppendChild(el);
ELide.AppendChild(ep);
nodeCurrent = el;
wCampo(refNFe.refNF.cUF, TpcnTipoCampo.tcInt, TpcnResources.cUF, ObOp.Obrigatorio, 2);
wCampo(refNFe.refNF.AAMM, TpcnTipoCampo.tcStr, TpcnResources.AAMM, ObOp.Obrigatorio, 0);
wCampo(refNFe.refNF.CNPJ, TpcnTipoCampo.tcStr, TpcnResources.CNPJ, ObOp.Obrigatorio, 0);
wCampo(refNFe.refNF.mod, TpcnTipoCampo.tcStr, TpcnResources.mod, ObOp.Obrigatorio, 2);
wCampo(refNFe.refNF.serie, TpcnTipoCampo.tcInt, TpcnResources.serie, ObOp.Obrigatorio, 0);
wCampo(refNFe.refNF.nNF, TpcnTipoCampo.tcInt, TpcnResources.nNF, ObOp.Obrigatorio, 0);
}
}
}
foreach (NFref refNFe in Nfe.ide.NFref)
{
if (refNFe.refNFP != null)
{
if (refNFe.refNFP.nNF > 0)
{
XmlElement ep = doc.CreateElement(TpcnResources.NFref.ToString());
XmlElement el = doc.CreateElement("refNFP");
ep.AppendChild(el);
ELide.AppendChild(ep);
nodeCurrent = el;
wCampo(refNFe.refNFP.cUF, TpcnTipoCampo.tcInt, TpcnResources.cUF, ObOp.Obrigatorio, 2);
wCampo(refNFe.refNFP.AAMM, TpcnTipoCampo.tcStr, TpcnResources.AAMM, ObOp.Obrigatorio, 0);
if (!string.IsNullOrEmpty(refNFe.refNFP.CNPJ))
wCampo(refNFe.refNFP.CNPJ, TpcnTipoCampo.tcStr, TpcnResources.CNPJ, ObOp.Obrigatorio, 0);
else
if (!string.IsNullOrEmpty(refNFe.refNFP.CPF))
wCampo(refNFe.refNFP.CPF, TpcnTipoCampo.tcStr, TpcnResources.CPF, ObOp.Obrigatorio, 0);
wCampo(refNFe.refNFP.IE, TpcnTipoCampo.tcStr, TpcnResources.IE, ObOp.Opcional, 0);
wCampo(refNFe.refNFP.mod, TpcnTipoCampo.tcStr, TpcnResources.mod, ObOp.Obrigatorio, 2);
wCampo(refNFe.refNFP.serie, TpcnTipoCampo.tcInt, TpcnResources.serie, ObOp.Obrigatorio, 0);
wCampo(refNFe.refNFP.nNF, TpcnTipoCampo.tcInt, TpcnResources.nNF, ObOp.Obrigatorio, 0);
}
}
}
foreach (NFref refNFe in Nfe.ide.NFref)
{
if (!string.IsNullOrEmpty(refNFe.refCTe))
{
if (refNFe.refCTe.Substring(0, 2) != "00")
{
XmlElement ep = doc.CreateElement(TpcnResources.NFref.ToString());
XmlElement el = doc.CreateElement(TpcnResources.refCTe.ToString());
el.InnerText = refNFe.refCTe;
ep.AppendChild(el);
ELide.AppendChild(ep);
}
}
}
foreach (NFref refNFe in Nfe.ide.NFref)
{
if (refNFe.refECF != null)
{
if (refNFe.refECF.nCOO > 0)
{
XmlElement ep = doc.CreateElement(TpcnResources.NFref.ToString());
XmlElement el = doc.CreateElement("refECF");
ep.AppendChild(el);
ELide.AppendChild(ep);
nodeCurrent = el;
wCampo(refNFe.refECF.mod, TpcnTipoCampo.tcStr, TpcnResources.mod, ObOp.Obrigatorio);
wCampo(refNFe.refECF.nECF, TpcnTipoCampo.tcInt, TpcnResources.nECF, ObOp.Obrigatorio, 3);
wCampo(refNFe.refECF.nCOO, TpcnTipoCampo.tcInt, TpcnResources.nCOO, ObOp.Obrigatorio);
}
}
}
}