private void GerarCana(Cana cana, XmlElement root)
{
if (!string.IsNullOrEmpty(cana.safra) || !string.IsNullOrEmpty(cana.Ref) ||
(cana.fordia.Count > 0) || (cana.deduc.Count > 0))
{
XmlElement rootCana = doc.CreateElement("cana");
root.AppendChild(rootCana);
nodeCurrent = rootCana;
wCampo(cana.safra, TpcnTipoCampo.tcStr, TpcnResources.safra, ObOp.Opcional);
wCampo(cana.Ref, TpcnTipoCampo.tcStr, TpcnResources.Ref, ObOp.Opcional);
if (cana.fordia.Count > 31)
this.cMensagemErro += "Número máximo de elementos no segmento 'ZC04' excedeu" + Environment.NewLine;
foreach (fordia item in cana.fordia)
{
XmlElement nodefordia = doc.CreateElement("forDia");
XmlAttribute xmlItem = doc.CreateAttribute(TpcnResources.dia.ToString()); //
xmlItem.Value = item.dia.ToString(); //danasa 3/11/2011
nodefordia.Attributes.Append(xmlItem); //
rootCana.AppendChild(nodefordia);
nodeCurrent = nodefordia;
//wCampo(item.dia, TpcnTipoCampo.tcInt, TpcnResources.dia);
wCampo(item.qtde, item.qtde_Tipo, TpcnResources.qtde);
}
nodeCurrent = rootCana;
wCampo(cana.qTotMes, cana.qTotMes_Tipo, TpcnResources.qTotMes);
wCampo(cana.qTotAnt, cana.qTotAnt_Tipo, TpcnResources.qTotAnt);
wCampo(cana.qTotGer, cana.qTotGer_Tipo, TpcnResources.qTotGer);
if (cana.deduc.Count > 10)
this.cMensagemErro += "Número máximo de elementos no segmento 'ZC10' excedeu" + Environment.NewLine;
foreach (deduc item in cana.deduc)
{
XmlElement nodededuc = doc.CreateElement("deduc");
rootCana.AppendChild(nodededuc);
nodeCurrent = nodededuc;
wCampo(item.xDed, TpcnTipoCampo.tcStr, TpcnResources.xDed);
wCampo(item.vDed, TpcnTipoCampo.tcDec2, TpcnResources.vDed);
}
nodeCurrent = rootCana;
wCampo(cana.vFor, TpcnTipoCampo.tcDec2, TpcnResources.vFor);
wCampo(cana.vTotDed, TpcnTipoCampo.tcDec2, TpcnResources.vTotDed);
wCampo(cana.vLiqFor, TpcnTipoCampo.tcDec2, TpcnResources.vLiqFor);
}
}