Página 1 de 1

Addenda EDI Wal-mart

Publicado: Lun Nov 30, 2015 9:04 pm
por pepedem
Hola buenas noches,


Esttimados todos, les platico mi pesar, estoy desarrollando la addenda para Walmart la cual es en formato EDI, la misma ya esta trabajando pero posee un pequeño detalle para que Walmart me la acepte sin que el usuario le meta mano al XML (EDI)

El copntador de segmentos que esta localizado en la penultima linea (UNT+[CONTSEGMENTOS]+1') me da el total de lineas de mi addenda, he notado que lo hace bien PEEEEROOOO siempre le tengo que reestar menos uno a ese contador para que me la acepte Walmart, ya que si no lo hago, siempre me aparece que hay una linea en blanco cuando esta tienda lo valida a traves de MasterEDI.

La pregunta es; ¿Alguien sabe como restarle a ese contador 1 punto? por ejempo: UNT+[CONTSEGMENTOS]+1' esta linea puede podria quedar asi: UNT+88+1' lo que yo tengo que hacer para que walmart me la acepte es restarle a ese 88 un -1 y listo, aceptada, no quiero estar haciendo eso, ya que se presta a que se cometa algun error por parte del usuario... ¿Hay alguna alternativa a ese punto?

Gracias anticipadas!

Re: Addenda EDI Wal-mart

Publicado: Mar Dic 01, 2015 11:04 am
por fortiz
Lo mejor obvio es corregir tu generador de addenda para que lo genere bien ....

Para editarlo después de generado yo usaría 'regular expressions'

Código: Seleccionar todo

<?php
$txt = "TAX+7+VAT+++:::0.00'MOA+124:0.00'UNT+54+63279'UNE+4+63279'UNZ+1+63279'";
$pat = '@UNT\+(\d*)\+@i';
preg_match($pat, $txt, $matches);
$cont = "UNT+".($matches[1]+1)."+";
$txt2 = preg_replace($pat, $cont, $txt);
echo "txt1=$txt\ntxt2=$txt2\n";
?>
Un ejemplo

Código: Seleccionar todo

$ php edi.php 
txt1=TAX+7+VAT+++:::0.00'MOA+124:0.00'UNT+54+63279'UNE+4+63279'UNZ+1+63279'
txt2=TAX+7+VAT+++:::0.00'MOA+124:0.00'UNT+55+63279'UNE+4+63279'UNZ+1+63279'
Saludos

Re: Addenda EDI Wal-mart

Publicado: Mar Dic 01, 2015 1:33 pm
por pepedem
Gracias estimado por respoder, quiza algo que olvide mencionar en el mensaje es que estoy usando Aspel SAE 50...

Aqui la addenda tiene un contador supongo debe ser interno al cual no puedo manipular o por lo menos no he encontrado la forma de hacerlo todavia...

fortiz escribió:Lo mejor obvio es corregir tu generador de addenda para que lo genere bien ....

Para editarlo después de generado yo usaría 'regular expressions'

Código: Seleccionar todo

<?php
$txt = "TAX+7+VAT+++:::0.00'MOA+124:0.00'UNT+54+63279'UNE+4+63279'UNZ+1+63279'";
$pat = '@UNT\+(\d*)\+@i';
preg_match($pat, $txt, $matches);
$cont = "UNT+".($matches[1]+1)."+";
$txt2 = preg_replace($pat, $cont, $txt);
echo "txt1=$txt\ntxt2=$txt2\n";
?>
Un ejemplo

Código: Seleccionar todo

$ php edi.php 
txt1=TAX+7+VAT+++:::0.00'MOA+124:0.00'UNT+54+63279'UNE+4+63279'UNZ+1+63279'
txt2=TAX+7+VAT+++:::0.00'MOA+124:0.00'UNT+55+63279'UNE+4+63279'UNZ+1+63279'
Saludos