Página 1 de 1

XML-Sello Factura Electronica

Publicado: Mié Ago 08, 2012 9:23 am
por mdorantes
Alguien sabe como puedo crear el sello digital para mi factura electrónica que se realiza mediante un XML?

Me falta para terminar mi XML:

Sello
Certificado
NoCertificado
para poder terminarlo, la versión en la que estoy es 3.2

Aquí les anexo el codigo fuente de mi XML.


Si alguien pudiese ayudarme o darme una idea de como generar lo que me falta.

Muchas gracias.


private void epibtnGenerar_Click(object sender, System.EventArgs args)
{
// ** Place Event Handling Code Here **


//tabla Company
CompanyAdapter adapterCompany = new CompanyAdapter(this.oTrans);
adapterCompany.BOConnect();
//tabla InvcHead
EpiDataView edvInvcHead = (EpiDataView)(this.oTrans.EpiDataViews["InvcHead"]);
System.Data.DataRow edvInvcHeadRow = edvInvcHead.CurrentDataRow;
//Tabla InvcDtl
EpiDataView edvInvcDtl = (EpiDataView)(this.oTrans.EpiDataViews["InvcDtl"]);
System.Data.DataRow edvInvcDtlRow = edvInvcDtl.CurrentDataRow;
//Tabla Customer
CustomerAdapter adapterCustomer = new CustomerAdapter(this.oTrans);
adapterCustomer.BOConnect();

// Declare and Initialize Variables
string company = "EPIC06";
string customer = edvInvcHeadRow["SoldToCustID"].ToString();
string date= String.Format("{0:s}", DateTime.Now);


//Segundo nodo
string tax= string.Empty;
string num= string.Empty;
string name= string.Empty;
string calle= string.Empty;
string noEx= string.Empty;
string col= string.Empty;
string mun= string.Empty;
string est= string.Empty;
string pais= string.Empty;
string cp= string.Empty;

//Tercer nodo
string Cname= string.Empty;
string Crfc= string.Empty;
string Ccp= string.Empty;
string Cpais= string.Empty;
string Cest= string.Empty;
string Cmun= string.Empty;
string Ccol= string.Empty;
string CnoExt= string.Empty;
string Ccalle= string.Empty;

//instanciar la tabla con la que se trabajará



//cuadro de diálogo donde se manda llamar para guardar el documento.
SaveFileDialog saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.Title = "Generar XML";
saveFileDialog1.Filter = "xml|*.xml";

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{

// Call Adapter method
bool result = adapterCompany.GetByID(company);
bool result1= adapterCustomer.GetByCustID(customer, false);
if(result)

{
tax=adapterCompany.CompanyData.Tables[0].Rows[0]["StateTaxId"].ToString();
num=adapterCompany.CompanyData.Tables[0].Rows[0]["Address2"].ToString();
name=adapterCompany.CompanyData.Tables[0].Rows[0]["Name"].ToString();
calle=adapterCompany.CompanyData.Tables[0].Rows[0]["Address1"].ToString();
noEx=adapterCompany.CompanyData.Tables[0].Rows[0]["Character02"].ToString();
col=adapterCompany.CompanyData.Tables[0].Rows[0]["Address3"].ToString();
mun=adapterCompany.CompanyData.Tables[0].Rows[0]["City"].ToString();
est=adapterCompany.CompanyData.Tables[0].Rows[0]["State"].ToString();
pais=adapterCompany.CompanyData.Tables[0].Rows[0]["CountryNum"].ToString();
cp=adapterCompany.CompanyData.Tables[0].Rows[0]["Zip"].ToString();
}

if(result1)

{
//Tercer nodo//Customer
Cname=adapterCustomer.CustomerData.Tables[0].Rows[0]["Name"].ToString();
Crfc=adapterCustomer.CustomerData.Tables[0].Rows[0]["ResaleID"].ToString();
Ccp=adapterCustomer.CustomerData.Tables[0].Rows[0]["Zip"].ToString();
Cpais=adapterCustomer.CustomerData.Tables[0].Rows[0]["CountryNum"].ToString();
Cest=adapterCustomer.CustomerData.Tables[0].Rows[0]["State"].ToString();
Cmun=adapterCustomer.CustomerData.Tables[0].Rows[0]["City"].ToString();
Ccol=adapterCustomer.CustomerData.Tables[0].Rows[0]["Address3"].ToString();
CnoExt=adapterCustomer.CustomerData.Tables[0].Rows[0]["Character01"].ToString();
Ccalle=adapterCustomer.CustomerData.Tables[0].Rows[0]["Address1"].ToString();
}

}
// Cleanup Adapter Reference
adapterCompany.Dispose();
adapterCustomer.Dispose();


FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.Create);
XmlTextWriter w = new XmlTextWriter(fs, Encoding.UTF8);




w.WriteStartDocument();
//Crear un nuevo nodo
w.WriteWhitespace ( "\n" );
w.WriteStartElement( "Comprobante");

//Propiedades/Atributos del nodo
w.WriteAttributeString("version", "3.2");
w.WriteAttributeString("folio","");
w.WriteAttributeString("fecha", date);
w.WriteAttributeString("tipoDeComprobante","Ingreso");
w.WriteAttributeString("formaDePago",edvInvcHeadRow["TermsCode"].ToString());
w.WriteAttributeString("noCertificado", "");
w.WriteAttributeString("certificado","" );
w.WriteAttributeString("subTotal", edvInvcHeadRow["DspSubTotal"].ToString());
w.WriteAttributeString("total", edvInvcHeadRow["DspInvoiceAmt"].ToString());
w.WriteAttributeString("metodoDePago", "No Identificado");
w.WriteAttributeString("LugarExpedicion", "ZAPOPAN, Jalisco");
w.WriteAttributeString("sello","");



//Segundo nodo
//tabla company
w.WriteStartElement( "Emisor");
w.WriteAttributeString("rfc", tax);
w.WriteAttributeString("nombre", name);
w.WriteWhitespace ( "\n" );
w.WriteStartElement("DomicilioFiscal");// WriteElementString, null-WriteStartElement
w.WriteAttributeString("calle", calle);
w.WriteAttributeString("noExterior", noEx);
w.WriteAttributeString("colonia", col);
w.WriteAttributeString("municipio", mun);
w.WriteAttributeString("estado", est);
w.WriteAttributeString("pais", pais);
w.WriteAttributeString("codigoPostal", cp);
w.WriteEndElement();


//tabla company
w.WriteStartElement("ExpedidoEn");// WriteElementString, null-WriteStartElement
w.WriteAttributeString("calle", calle);
w.WriteAttributeString("noExterior", noEx);
w.WriteAttributeString("colonia", col);
w.WriteAttributeString("municipio", mun);
w.WriteAttributeString("estado", est);
w.WriteAttributeString("pais", pais);
w.WriteAttributeString("codigoPostal", cp);
w.WriteEndElement();
w.WriteStartElement("RegimenFiscal");// WriteElementString, null-WriteStartElement
w.WriteAttributeString("Regimen", "Regimen General de Ley");
w.WriteEndElement();
w.WriteEndElement();

////Tercer Nodo
//tabla customer
w.WriteStartElement( "Receptor");
w.WriteAttributeString("nombre", Cname);
w.WriteAttributeString("rfc", Crfc );
w.WriteStartElement( "Domicilio");
w.WriteAttributeString("codigoPostal",Ccp );
w.WriteAttributeString("pais", Cpais);
w.WriteAttributeString("estado", Cest );
w.WriteAttributeString("municipio", Cmun );
w.WriteAttributeString("colonia",Ccol );
w.WriteAttributeString("noExterior", CnoExt);
w.WriteAttributeString("calle", Ccalle );
w.WriteEndElement();
w.WriteEndElement();


////Cuarto Nodo
w.WriteStartElement( "Conceptos");
for(int v=0; v<edvInvcDtl.dataView.Count ; v++)
{

w.WriteStartElement( "Concepto");// WriteElementString, null-WriteStartElement
w.WriteAttributeString("cantidad", edvInvcDtl.dataView[v]["DspSellingShipQty"].ToString());
w.WriteAttributeString("unidad", edvInvcDtl.dataView[v]["SalesUM"].ToString());
w.WriteAttributeString("descripcion", edvInvcDtl.dataView[v]["LineDesc"].ToString());
w.WriteAttributeString("ValorUnitario",edvInvcDtl.dataView[v]["DspUnitPrice"].ToString());
w.WriteAttributeString("importe",edvInvcDtl.dataView[v]["DspExtPrice"].ToString());
w.WriteEndElement();

}

w.WriteEndElement();
////Quinto Nodo
w.WriteStartElement( "Impuestos");
w.WriteStartElement("Traslados");
w.WriteStartElement("Traslado");// WriteElementString, null-WriteStartElement
w.WriteAttributeString("impuesto", "IVA");
w.WriteAttributeString("tasa", "");
w.WriteAttributeString("importe", edvInvcHeadRow["TaxAmt"].ToString());
w.WriteEndElement();
w.WriteEndElement();
w.WriteEndElement();

w.WriteEndElement();
w.WriteEndDocument();
w.Flush();
fs.Close();


}

Re: XML-Sello Factura Electronica

Publicado: Mié Ago 08, 2012 10:48 am
por Dado
Hay muchos tutoriales aqui en el foro. Dale una buscada