
DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Factura Electronica y Pedimentos
-
- Mensajes: 18
- Registrado: Jue Jul 22, 2010 12:07 pm
Factura Electronica y Pedimentos
Compre el software por mercado libre y me ha ayudado enormemente, Pregunto: Alguien que tenga el codigo que hay que agregar para poner pedimentos aduanales.
Saludos y gracias.
Saludos y gracias.
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Factura Electronica y Pedimentos
Bueno, la opcion estaba ahi desde siempre, solo que no la habia declarado, pero puedes usar :
Código: Seleccionar todo
with Conceptos.Add do
begin
Cantidad := Paso2Form.Cantidad1.Text;
{opc} Unidad := Paso2Form.Unidad1.Text;
{opc NoIdentificacion := '';}
Descripcion := Paso2Form.Descr1.Text;
ValorUnitario := FloatToStrF(StrToFloatDef(Paso2Form.PU1.Text,0),ffFixed,10,2);
Importe := FloatToStrF(StrToFloatDef(Paso2Form.PT1.Text,0),ffFixed,10,2);
with InformacionAduanera.Add do
begin
Numero := '';
fecha := '';
aduana := '';
end;
end; {with CFD.Concepto}
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 9
- Registrado: Dom Sep 05, 2010 11:05 am
Re: Factura Electronica y Pedimentos
Hola, DADO.
De cualquiera de las dos formas que estan comentadas obtengo un error. Esta es la seccion para generar la cadena original. ¿Que estoy haciendo mal? Gracias.
with CFDCopy.Conceptos do
begin
for n := 0 to ChildNodes.Count - 1 do
if ChildNodes[n].NodeType = ntElement then
begin
AgregaDato(Concepto[n].Cantidad);
AgregaDato(Concepto[n].Unidad);
AgregaDato(Concepto[n].NoIdentificacion);
AgregaDato(Concepto[n].Descripcion);
AgregaDato(Concepto[n].valorunitario);
AgregaDato(Concepto[n].Importe);
{
with Concepto[n].InformacionAduanera do
begin
AgregaDato(Items[n].Numero);
AgregaDato(Items[n].fecha);
AgregaDato(Items[n].Aduana);
end;
}
end;
{
with Concepto[n].InformacionAduanera do
begin
AgregaDato(Items[n].Numero);
AgregaDato(Items[n].fecha);
AgregaDato(Items[n].Aduana);
end;
}
De cualquiera de las dos formas que estan comentadas obtengo un error. Esta es la seccion para generar la cadena original. ¿Que estoy haciendo mal? Gracias.
with CFDCopy.Conceptos do
begin
for n := 0 to ChildNodes.Count - 1 do
if ChildNodes[n].NodeType = ntElement then
begin
AgregaDato(Concepto[n].Cantidad);
AgregaDato(Concepto[n].Unidad);
AgregaDato(Concepto[n].NoIdentificacion);
AgregaDato(Concepto[n].Descripcion);
AgregaDato(Concepto[n].valorunitario);
AgregaDato(Concepto[n].Importe);
{
with Concepto[n].InformacionAduanera do
begin
AgregaDato(Items[n].Numero);
AgregaDato(Items[n].fecha);
AgregaDato(Items[n].Aduana);
end;
}
end;
{
with Concepto[n].InformacionAduanera do
begin
AgregaDato(Items[n].Numero);
AgregaDato(Items[n].fecha);
AgregaDato(Items[n].Aduana);
end;
}
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Factura Electronica y Pedimentos
La parte de codigo para agregar la informacion aduanera a la Cadena Original es :
Código: Seleccionar todo
with Conceptos do
for n := 0 to ChildNodes.Count-1 do
if ChildNodes[n].NodeType = ntElement then
begin
AgregaDato(Concepto[n].Cantidad); AgregaDato(Concepto[n].Unidad); AgregaDato(Concepto[n].NoIdentificacion);
AgregaDato(Concepto[n].Descripcion); AgregaDato(Concepto[n].ValorUnitario); AgregaDato(Concepto[n].Importe);
for n1 := 0 to Concepto[n].ChildNodes.Count-1 do
begin
if Concepto[n].ChildNodes[n1].NodeName = 'InformacionAduanera' then
begin
AgregaDato(Concepto[n].InformacionAduanera[n1].Numero);
AgregaDato(Concepto[n].InformacionAduanera[n1].Fecha);
AgregaDato(Concepto[n].InformacionAduanera[n1].Aduana);
end;
if Concepto[n].ChildNodes[n1].NodeName = 'CuentaPredial' then
begin
AgregaDato(Concepto[n].CuentaPredial.Numero);
end;
end;
end; {with CFD.Conceptos}
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 9
- Registrado: Dom Sep 05, 2010 11:05 am
Re: Factura Electronica y Pedimentos
Gracias.
-
- Mensajes: 9
- Registrado: Dom Sep 05, 2010 11:05 am
Re: Factura Electronica y Pedimentos
Hola, disculpa tanta pregunta, pero tengo otra duda ojala me puedas ayudar por favor.
Tengo este codigo para generar el XML la seccion de conceptos, y necesito agregar la informcion aduanera por cada concepto, tengo una consulta separada para los conceptos de articulos y otra consulta para la informacion aduanera de cada concepto. El problema es que de esta forma
De esta forma si hay solo un articulo genera bien el XMl, pero si hay 2 o mas, agrega toda la informacion aduanera al primer articulo, no he podido resolver el problema.
CON O MAS ARTICULOS CON PEDIMENTO:
CON UN ARTICULO CON PEDIMENTO:
Tengo este codigo para generar el XML la seccion de conceptos, y necesito agregar la informcion aduanera por cada concepto, tengo una consulta separada para los conceptos de articulos y otra consulta para la informacion aduanera de cada concepto. El problema es que de esta forma
Código: Seleccionar todo
while not dmDatos.qryConceptos.Eof do
begin
with CFD.Conceptos.Add do
begin
Cantidad := Trim(dmDatos.qryConceptos.FieldByName('cantidad')
.AsString);
Descripcion := Trim(dmDatos.qryConceptos.FieldByName('descripcion')
.AsString);
valorunitario := FormatFloat('#######0.00',
dmDatos.qryConceptos.FieldByName('precio').AsFloat);
Importe := FormatFloat('#######0.00',
(dmDatos.qryConceptos.FieldByName('precio').AsFloat) *
(dmDatos.qryConceptos.FieldByName('cantidad').AsFloat));
while not dmDatos.qryAuxiliar2.Eof do
begin
with InformacionAduanera.Add do
begin
NUmero := Trim(dmDatos.qryAuxiliar2.FieldByName('numeropedimento')
.AsString);
Aduana := 'COMILA'; // Trim(dmDatos.qryAuxiliar2.FieldByName('aduana').AsString);
fecha := FormatDateTime('YYYY-MM-DD',
dmDatos.qryAuxiliar2.FieldByName('fecha').AsDateTime);
// dmDatos.qryConceptos.Next;
// dmDatos.qryAuxiliar2.Next;
end;
dmDatos.qryAuxiliar2.Next;
end;
dmDatos.qryConceptos.Next;
end;
CON O MAS ARTICULOS CON PEDIMENTO:
Código: Seleccionar todo
<Conceptos>
-
<Concepto cantidad="1" descripcion="Poliman" valorUnitario="9.00" importe="9.00">
<InformacionAduanera numero="FFD" aduana="COMILA" fecha="2010-10-13"/>
<InformacionAduanera numero="PEDIMENTO YYTT 87" aduana="COMILA" fecha="2010-10-31"/>
</Concepto>
<Concepto cantidad="1" descripcion="ARTICULO CON PEDIMENTO" valorUnitario="350.00" importe="350.00"/>
</Conceptos>
Código: Seleccionar todo
<Conceptos>
-
<Concepto cantidad="1" descripcion="Poliman" valorUnitario="9.00" importe="9.00">
<InformacionAduanera numero="FFD" aduana="COMILA" fecha="2010-10-13"/>
</Concepto>
</Conceptos>
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Factura Electronica y Pedimentos
Lo que esta mal es que te estas "echando" toda tu subconsulta y no la estas reseteando.
Necesitas algo como lo siguiente checa esto:
Me interesa lo que me dices de tomar los datos del certificado sin necesidad de openssl o dll, mandamelo a mi email, te lo agradeceria.
Necesitas algo como lo siguiente checa esto:
Código: Seleccionar todo
while not dmDatos.qryConceptos.Eof do
begin
with CFD.Conceptos.Add do
begin
Cantidad := Trim(dmDatos.qryConceptos.FieldByName('cantidad')
.AsString);
Descripcion := Trim(dmDatos.qryConceptos.FieldByName('descripcion')
.AsString);
valorunitario := FormatFloat('#######0.00',
dmDatos.qryConceptos.FieldByName('precio').AsFloat);
Importe := FormatFloat('#######0.00',
(dmDatos.qryConceptos.FieldByName('precio').AsFloat) *
(dmDatos.qryConceptos.FieldByName('cantidad').AsFloat));
dmDatos.qryAuxiliar2.GOTOP (o gofirst o skip -1, o lo que sea necesario); <<<<<<<<<<<<<<<<<<<<<<< CHECA SI ESTO TE SIRVE
dmDatos.qryAuxiliar2.Execute; <<<<<<<<<<<<<<<<<<<<<<< CHECA SI ESTO TE SIRVE, con una re-ejecucion te aseguras que se tomen los datos nuevamente
<<<<<<<<<<Tambien tienes que poner un filtro a tu query para que solo tome los datos aduaneros del concepto que le corresponde
<<<<<<<<<<algo asi como SELECT (datos aduaneros) from xxxx where concepto = Descripccion
while not dmDatos.qryAuxiliar2.Eof do
begin
with InformacionAduanera.Add do
begin
NUmero := Trim(dmDatos.qryAuxiliar2.FieldByName('numeropedimento')
.AsString);
Aduana := 'COMILA'; // Trim(dmDatos.qryAuxiliar2.FieldByName('aduana').AsString);
fecha := FormatDateTime('YYYY-MM-DD',
dmDatos.qryAuxiliar2.FieldByName('fecha').AsDateTime);
// dmDatos.qryConceptos.Next;
// dmDatos.qryAuxiliar2.Next;
end;
dmDatos.qryAuxiliar2.Next;
end;
dmDatos.qryConceptos.Next;
end;
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Factura Electronica y Pedimentos
Estaba pensando, tambien puedes quitar el bucle de la aduana, te digo que el problema es que te estas "acabando" todos los valores de la aduana en un solo concepto, quedaria entonces asi:
Código: Seleccionar todo
while not dmDatos.qryConceptos.Eof do
begin
with CFD.Conceptos.Add do
begin
Cantidad := Trim(dmDatos.qryConceptos.FieldByName('cantidad')
.AsString);
Descripcion := Trim(dmDatos.qryConceptos.FieldByName('descripcion')
.AsString);
valorunitario := FormatFloat('#######0.00',
dmDatos.qryConceptos.FieldByName('precio').AsFloat);
Importe := FormatFloat('#######0.00',
(dmDatos.qryConceptos.FieldByName('precio').AsFloat) *
(dmDatos.qryConceptos.FieldByName('cantidad').AsFloat));
// while not dmDatos.qryAuxiliar2.Eof do <<<<<<<<<<no poner este bucle
begin
with InformacionAduanera.Add do
begin
NUmero := Trim(dmDatos.qryAuxiliar2.FieldByName('numeropedimento')
.AsString);
Aduana := 'COMILA'; // Trim(dmDatos.qryAuxiliar2.FieldByName('aduana').AsString);
fecha := FormatDateTime('YYYY-MM-DD',
dmDatos.qryAuxiliar2.FieldByName('fecha').AsDateTime);
// dmDatos.qryConceptos.Next;
// dmDatos.qryAuxiliar2.Next;
end;
dmDatos.qryAuxiliar2.Next;
end;
dmDatos.qryConceptos.Next;
end;
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 16
- Registrado: Mar Dic 28, 2010 4:37 pm
Re: Factura Electronica y Pedimentos
Tengo una duda Por que el validador del sat me manda este error
Error: cvc-complex-type.2.4.a: Invalid content was found starting with element 'cfdi:Parte'. One of '{"http://www.sat.gob.mx/cfd/3":InformacionAduanera}' is expected.
este es mi nodo de comceptos
<cfdi:Conceptos>
<cfdi:Concepto unidad="PIEZA" noIdentificacion="0003" descripcion="IPAD 4" valorUnitario="15000" cantidad="1" importe="15000">
<cfdi:InformacionAduanera numero="23" fecha="2011-03-28" aduana="ADUANA MANTE" />
<cfdi:Parte cantidad="1" unidad="PIEZA" descripcion="HD FRONT CAM" valorUnitario="5000" importe="5000">
<cfdi:InformacionAduanera numero="2345" fecha="2011-03-28" aduana="ADUANA MATAMOROS" />
<cfdi:InformacionAduanera numero="23" fecha="2011-03-28" aduana="ADUANA EL PASO" />
</cfdi:Parte>
<cfdi:Parte cantidad="5" unidad="PIEZA" descripcion="WIRLESS CHARGER" valorUnitario="400.54" importe="2002.7">
<cfdi:InformacionAduanera numero="45" fecha="2011-03-08" aduana="ADUANA MONMTERREY" />
<cfdi:InformacionAduanera numero="2345" fecha="2011-03-28" aduana="ADUANA LINARES" />
<cfdi:InformacionAduanera numero="3563456" fecha="2011-03-30" aduana="ADUANA BURGOS" />
</cfdi:Parte>
</cfdi:Concepto>
</cfdi:Conceptos>
Error: cvc-complex-type.2.4.a: Invalid content was found starting with element 'cfdi:Parte'. One of '{"http://www.sat.gob.mx/cfd/3":InformacionAduanera}' is expected.
este es mi nodo de comceptos
<cfdi:Conceptos>
<cfdi:Concepto unidad="PIEZA" noIdentificacion="0003" descripcion="IPAD 4" valorUnitario="15000" cantidad="1" importe="15000">
<cfdi:InformacionAduanera numero="23" fecha="2011-03-28" aduana="ADUANA MANTE" />
<cfdi:Parte cantidad="1" unidad="PIEZA" descripcion="HD FRONT CAM" valorUnitario="5000" importe="5000">
<cfdi:InformacionAduanera numero="2345" fecha="2011-03-28" aduana="ADUANA MATAMOROS" />
<cfdi:InformacionAduanera numero="23" fecha="2011-03-28" aduana="ADUANA EL PASO" />
</cfdi:Parte>
<cfdi:Parte cantidad="5" unidad="PIEZA" descripcion="WIRLESS CHARGER" valorUnitario="400.54" importe="2002.7">
<cfdi:InformacionAduanera numero="45" fecha="2011-03-08" aduana="ADUANA MONMTERREY" />
<cfdi:InformacionAduanera numero="2345" fecha="2011-03-28" aduana="ADUANA LINARES" />
<cfdi:InformacionAduanera numero="3563456" fecha="2011-03-30" aduana="ADUANA BURGOS" />
</cfdi:Parte>
</cfdi:Concepto>
</cfdi:Conceptos>
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Factura Electronica y Pedimentos
Segun yo (no me creas mucho, habra que hacer pruebas) es porque hay un problema de logica en el concepto, de la siguiente forma :davidrf88 escribió: <cfdi:Concepto unidad="PIEZA" noIdentificacion="0003" descripcion="IPAD 4" valorUnitario="15000" cantidad="1" importe="15000">
<cfdi:InformacionAduanera numero="23" fecha="2011-03-28" aduana="ADUANA MANTE" />
<cfdi:Parte cantidad="1" unidad="PIEZA" descripcion="HD FRONT CAM" valorUnitario="5000" importe="5000">
<cfdi:InformacionAduanera numero="2345" fecha="2011-03-28" aduana="ADUANA MATAMOROS" />
<cfdi:InformacionAduanera numero="23" fecha="2011-03-28" aduana="ADUANA EL PASO" />
</cfdi:Parte>
Si tienes un concepto que esta formado por varias partes, entonces el concepto NO DEBE tener informacion aduanera, debe tener informacion aduanera las partes individuales.
La situacion (pienso yo) es que las Partes NO SE REFIERE A PARTES ADICIONALES si no a partes que conforman el concepto.
Bueno, solo hay una forma de probar, quita el renglon
<cfdi:InformacionAduanera numero="23" fecha="2011-03-28" aduana="ADUANA MANTE" />
y vuelvelo a validar y me dices que panchos te hace el validador.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!