Imagen

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

Para los que programamos en Delphi, aqui estan las respuestas
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
masrmty
Mensajes: 18
Registrado: Jue Jul 22, 2010 12:07 pm

Factura Electronica y Pedimentos

Mensaje por masrmty »

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.
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Factura Electronica y Pedimentos

Mensaje por Dado »

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 !!
juan
Mensajes: 9
Registrado: Dom Sep 05, 2010 11:05 am

Re: Factura Electronica y Pedimentos

Mensaje por juan »

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;
}
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Factura Electronica y Pedimentos

Mensaje por Dado »

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 !!
juan
Mensajes: 9
Registrado: Dom Sep 05, 2010 11:05 am

Re: Factura Electronica y Pedimentos

Mensaje por juan »

Gracias.
juan
Mensajes: 9
Registrado: Dom Sep 05, 2010 11:05 am

Re: Factura Electronica y Pedimentos

Mensaje por juan »

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

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;

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:

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>
CON UN ARTICULO 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"/>
</Concepto>
</Conceptos>
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Factura Electronica y Pedimentos

Mensaje por Dado »

Lo que esta mal es que te estas "echando" toda tu subconsulta y no la estas reseteando.

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;

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.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Factura Electronica y Pedimentos

Mensaje por Dado »

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 !!
davidrf88
Mensajes: 16
Registrado: Mar Dic 28, 2010 4:37 pm

Re: Factura Electronica y Pedimentos

Mensaje por davidrf88 »

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>
Avatar de Usuario
Dado
Mensajes: 15980
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Factura Electronica y Pedimentos

Mensaje por Dado »

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>
Segun yo (no me creas mucho, habra que hacer pruebas) es porque hay un problema de logica en el concepto, de la siguiente forma :

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 !!
Cerrado