0
Hello I was wondering how can I send an array list to a web service via php, this is my web service.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<Seguranca xmlns="http://satussistemas.org/">
<Usuario>string</Usuario>
<Senha>string</Senha>
</Seguranca>
</soap:Header>
<soap:Body>
<GravaPedidoVendaExterna xmlns="http://satussistemas.org/">
<pedido>
<codigo>int</codigo>
<codEmpresa>string</codEmpresa>
<codUsuario>string</codUsuario>
<codEntidade>int</codEntidade>
<dtMvto>string</dtMvto>
<data>dateTime</data>
<dtBase>string</dtBase>
<codVendedor>string</codVendedor>
<valorTotal>double</valorTotal>
<fpgto>string</fpgto>
<numComanda>string</numComanda>
<numMesa>string</numMesa>
<qtdeProdutos>double</qtdeProdutos>
<percComissao>double</percComissao>
<comissao>double</comissao>
<statusPedido>string</statusPedido>
<observacao>string</observacao>
</pedido>
<produtos>
<PedidosVd>
<codigo>int</codigo>
<codEmpresa>string</codEmpresa>
<codProduto>string</codProduto>
<codEntidade>string</codEntidade>
<codBarras>string</codBarras>
<entidade>string</entidade>
<sequencia>int</sequencia>
<quantidade>double</quantidade>
<valor>double</valor>
<numComanda>string</numComanda>
<numMesa>string</numMesa>
<observacao>string</observacao>
<status>string</status>
<hexColor>string</hexColor>
<statusPedido>string</statusPedido>
<descricao>string</descricao>
<setor>string</setor>
<percComissao>double</percComissao>
<valorComissao>double</valorComissao>
<percDesconto>double</percDesconto>
<valorDesconto>double</valorDesconto>
<fpgto>string</fpgto>
</PedidosVd>
<PedidosVd>
<codigo>int</codigo>
<codEmpresa>string</codEmpresa>
<codProduto>string</codProduto>
<codEntidade>string</codEntidade>
<codBarras>string</codBarras>
<entidade>string</entidade>
<sequencia>int</sequencia>
<quantidade>double</quantidade>
<valor>double</valor>
<numComanda>string</numComanda>
<numMesa>string</numMesa>
<observacao>string</observacao>
<status>string</status>
<hexColor>string</hexColor>
<statusPedido>string</statusPedido>
<descricao>string</descricao>
<setor>string</setor>
<percComissao>double</percComissao>
<valorComissao>double</valorComissao>
<percDesconto>double</percDesconto>
<valorDesconto>double</valorDesconto>
<fpgto>string</fpgto>
</PedidosVd>
</produtos>
</GravaPedidoVendaExterna>
</soap:Body>
</soap:Envelope>
this is my code.
<?php
date_default_timezone_set('America/Sao_Paulo');
include("conexao.php");
$pedido;
//$login = $_GET['login'];
$login = 1;
$stays = array();
$sqlPedido = "SELECT p.*,count(i.iten_id) as qtd FROM pedido p
INNER JOIN iten_pedido i ON i.iten_ped = ped_id
INNER JOIN produto pr ON pr.pro_id = i.iten_prod
INNER JOIN login l ON l.log_id = p.ped_log
WHERE p.ped_log like '$login' group by ped_id order by ped_id desc limit 1";
$resultadoPedido = mysqli_query($conexao,$sqlPedido) or die ("Erro " . mysqli_error($conexao));
if($linhaPedido = mysqli_fetch_object($resultadoPedido)){
$codigoPedido = $linhaPedido->ped_id;
$pedido = array( 'codigo' => '0',
'codEmpresa' => '001',
'codUsuario' => '700',
'codEntidade' => '39727',
'dtMvto' => $linhaPedido->ped_data,
'data' => $linhaPedido->ped_data,
'dtBase' => $linhaPedido->ped_data." ".$linhaPedido->ped_hora,
'codVendedor' => '700',
'valorTotal' => $linhaPedido->ped_valor,
'fpgto' => '001',
'numComanda' => '0',
'numMesa' => '0',
'qtdeProdutos' => $linhaPedido->qtd,
'percComissao' => '0',
'comissao' => '0',
'statusPedido' => 'P');
$sqlProduto = "SELECT i.*,count(i.iten_id) as qtd, Sum(i.iten_valor) as total,v.val_codigo,v.val_barra,v.val_desc FROM iten_pedido i
INNER JOIN pedido p ON p.ped_id = i.iten_ped
INNER JOIN valor v ON v.val_id_pro = i.iten_prod
WHERE p.ped_id like '$codigoPedido' and v.val_id_super like '4' GROUP BY iten_prod";
//$i = 0;
$resultadoProduto = mysqli_query($conexao,$sqlProduto) or die ("Erro " . mysqli_error($conexao));
while($linhaProduto = mysqli_fetch_object($resultadoProduto)){
//$i++;
$stays[] = array('PedidosVd'=>array('codigo' => '0',
'codEmpresa' => '001',
'codProduto' => $linhaProduto->val_codigo,
'codEntidade' => $linhaProduto->val_codigo,
'codBarras' => $linhaProduto->val_barra,
'entidade' => '',
'sequencia' => '0',
'quantidade' => $linhaProduto->qtd,
'valor' => $linhaProduto->total,
'numComanda' => '0',
'numMesa' => '0',
'observacao' => '',
'status' => '',
'hexColor' => '',
'statusPedido' => '',
'descricao' => $linhaProduto->val_desc,
'setor' => '0',
'percComissao' => '0',
'valorComissao' => '0',
'percDesconto' => '0',
'valorDesconto' => '0',
'fpgto' => ''));
}
}
$client = new SoapClient('wsdl');
$function = 'GravaPedidoVendaExterna';
$arguments= array('GravaPedidoVendaExterna' => array('pedido'=>$pedido,
'produtos' =>$stays));
print_r($arguments);
$options = array('location' => 'wsdl');
try{
$result = $client->__soapCall($function, $arguments, $options);
print_r($result);
}
catch (SoapFault $exception) {
echo $exception;
}
?>
little information, send as well? via php you can use this :
$xml = simplexml_load_string($XMLDATA) or die("Error: Não é possivel criar o objeto xml");
– 13dev
sorry I was editing, my code and this.
– Edson Costa