I'm trying to do a SOAP call in PHP, it works normally, but i'm with a doubt: How do I can pass arguments to XML creating new nodes according to an array of product's quantity? See this...
That's my XML in SoapUI (with the parts that are important: ITEMSITM > TITEMSITM. The first TITEMSITM is with the fields, the others its the same thing):
<soapenv:Header/>
<soapenv:Body>
<ns:MANUTENCAOSITM>
<ns:SITM>
<ns:CABECALHOSITM>
...
</ns:CABECALHOSITM>
<ns:ITEMSITM>
<!--Zero or more repetitions:-->
<ns:TITEMSITM>
<ns:CODIGOPRODUTO>0000265</ns:CODIGOPRODUTO>
<ns:DESCRICAOPRODUTO>REQ.CAT.0,410 POLI (PL10)</ns:DESCRICAOPRODUTO>
<ns:PERCENTUALDESCONTO>-1.03</ns:PERCENTUALDESCONTO>
<ns:PESOUNITARIO>0.41</ns:PESOUNITARIO>
<ns:PRECOBONIFICADO>10</ns:PRECOBONIFICADO>
<ns:PRECOTABELA>9.700</ns:PRECOTABELA>
<ns:PRECOUNITARIO>9.6</ns:PRECOUNITARIO>
<ns:QUANTIDADEBONIFICADA>20</ns:QUANTIDADEBONIFICADA>
<ns:QUANTIDADEVENDA>200</ns:QUANTIDADEVENDA>
<ns:SALDOBONIFICADO>0</ns:SALDOBONIFICADO>
<ns:TOTALBRUTO>1940.000</ns:TOTALBRUTO>
<ns:TOTALLIQUIDO>1920.000</ns:TOTALLIQUIDO>
<ns:TOTALPESO>82.000</ns:TOTALPESO>
<ns:VALORBONIFICADO>9.700</ns:VALORBONIFICADO>
<ns:VALORLIQUIDO>8.9550</ns:VALORLIQUIDO>
</ns:TITEMSITM>
<ns:TITEMSITM>
...
</ns:TITEMSITM>
<ns:TITEMSITM>
...
</ns:TITEMSITM>
</ns:ITEMSITM>
<ns:RODAPESITM>
<ns:CRESCIMENTOANTERIOR>?</ns:CRESCIMENTOANTERIOR>
<ns:TOTALINVESTIMENTO>0.1303</ns:TOTALINVESTIMENTO>
</ns:RODAPESITM>
</ns:SITM>
<ns:TIPOOPERACAO>3</ns:TIPOOPERACAO>
</ns:MANUTENCAOSITM>
</soapenv:Body>
I need to repeat this node (TITEMSITM) for each product in PHP, but it doesn't work, it just store the last item, like this code below that I try to do, but with no success.
$arguments = array(
'SITM' => array(
'CABECALHOSITM' => $pars1,
'ITEMSITM' => array(
'TITEMSITM' => $parsItem[0],
'TITEMSITM' => $parsItem[1],
'TITEMSITM' => $parsItem[2]
// ...
),
'RODAPESITM' => $pars2
),
'TIPOOPERACAO' => $pars3
);
$inserirItens = $cliente->MANUTENCAOSITM($arguments);
The code above calls with no problems, but when I print_r or var_dump the $arguments, I see that the repetition of the TITEMSITM sends only one product. I think it's simple, but I'm not getting. Can someone help me, please?
References: