PHP Soap复制品

时间:2018-11-05 19:14:54

标签: php laravel soap

我有这个服务定义:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ven="VentaServicio" xmlns:ws="http://schemas.datacontract.org/2004/07/WS.Core" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:def="http://schemas.datacontract.org/2004/07/Def.Erp.Venta.Business.Clases.VentaClases">
   <soap:Header/>
   <soap:Body>
      <ven:GrabaVentaAnalisis>
         <ven:sesion>
            <ws:IDCliente>?</ws:IDCliente>
            <ws:IDEmpresa>?</ws:IDEmpresa>
            <ws:IDSesion>?</ws:IDSesion>
            <ws:IDUsuario>?</ws:IDUsuario>
            <ws:Token>?</ws:Token>
         </ven:sesion>
         <ven:venta>
            <ws:DetallePago>
               <!--Zero or more repetitions:-->
               <ws:MedioPagado>
                  <ws:EmiteIngresoVenta>?</ws:EmiteIngresoVenta>
                  <ws:IDClasificador1>?</ws:IDClasificador1>
                  <ws:IDClasificador2>?</ws:IDClasificador2>
               </ws:MedioPagado>
            </ws:DetallePago>
            <ws:Detalles>
               <!--Zero or more repetitions:-->
               <ws:VentaDetalle>
                  <ws:Cantidad>?</ws:Cantidad>
                  <ws:CodigoBarra>?</ws:CodigoBarra>
                  <ws:CodigoBarraProv>?</ws:CodigoBarraProv>
                  <ws:Comentario>?</ws:Comentario>
                  <ws:DescripcionArticulo>?</ws:DescripcionArticulo>
                  <ws:Descuento>?</ws:Descuento>
                  <ws:IDUnidadMedida>?</ws:IDUnidadMedida>
                  <ws:IdArticulo>?</ws:IdArticulo>
                  <ws:LineaDetalle>?</ws:LineaDetalle>
                  <ws:PrecioSinModificar>?</ws:PrecioSinModificar>
                  <ws:PrecioUnitario>?</ws:PrecioUnitario>
                  <ws:SubTotal>?</ws:SubTotal>
                  <ws:Tipo>?</ws:Tipo>
                  <ws:TipoDescuento>?</ws:TipoDescuento>
                  <ws:TotalImptos>?</ws:TotalImptos>
               </ws:VentaDetalle>
            </ws:Detalles>
            <ws:Direccion>?</ws:Direccion>
            <ws:Distrito>?</ws:Distrito>
            <ws:DocumentID>?</ws:DocumentID>
            <ws:Estado>?</ws:Estado>
            <ws:Factoring>?</ws:Factoring>
            <ws:Fecha>?</ws:Fecha>
            <def:Detalles>
               <!--Zero or more repetitions:-->
               <ws:VentaDetalleAnalisis>
                  <ws:Cantidad>?</ws:Cantidad>
                  <ws:CodigoBarra>?</ws:CodigoBarra>
                  <ws:CodigoBarraProv>?</ws:CodigoBarraProv>
                  <ws:Comentario>?</ws:Comentario>
                  <ws:DescripcionArticulo>?</ws:DescripcionArticulo>
                  <ws:Descuento>?</ws:Descuento>
                  <ws:IDUnidadMedida>?</ws:IDUnidadMedida>
                  <ws:IdArticulo>?</ws:IdArticulo>
                  <ws:LineaDetalle>?</ws:LineaDetalle>
                  <ws:PrecioSinModificar>?</ws:PrecioSinModificar>
                  <ws:PrecioUnitario>?</ws:PrecioUnitario>
                  <ws:SubTotal>?</ws:SubTotal>
                  <ws:Tipo>?</ws:Tipo>
                  <ws:TipoDescuento>?</ws:TipoDescuento>
                  <ws:TotalImptos>?</ws:TotalImptos>
                  <ws:AsientoVenta>
                     <ws:Analisis>
                        <ws:DocNumero>?</ws:DocNumero>
                        <ws:DocSerie>?</ws:DocSerie>
                        <ws:DocVencimiento>?</ws:DocVencimiento>
                        <ws:IDCentroNegocio>?</ws:IDCentroNegocio>
                        <ws:IDClasificador1>?</ws:IDClasificador1>
                        <ws:IDClasificador2>?</ws:IDClasificador2>
                        <ws:IDFicha>?</ws:IDFicha>
                        <ws:IDTipoDocumento>?</ws:IDTipoDocumento>
                     </ws:Analisis>
                     <ws:Tipo>?</ws:Tipo>
                     <ws:idTipoVenta>?</ws:idTipoVenta>
                  </ws:AsientoVenta>
               </ws:VentaDetalleAnalisis>
            </def:Detalles>
            <def:EsDocumentoTraspaso>?</def:EsDocumentoTraspaso>
         </ven:venta>
      </ven:GrabaVentaAnalisis>
   </soap:Body>
</soap:Envelope>

我能够连接并正确地将数据发送到其他操作,但是该操作具有<def:Detalle><ws:Detalle>

我无权修改此SOAP服务。

这是我的数据数组的样子:

$venta = [
        'AsientoCliente' => [
            'Analisis' => [
                'IDFicha' => $this->invoice->customer_rut,
                'IDTipoDocumento', 'XFVARSELECT'
            ],
            'Tipo' => 'TipoCliente',
            'idTipoCliente' => '02CTES_ECOMMERCE'
        ],
        'AsientoVenta' => [
            'Analisis' => [
                'IDCentroNegocio' => 'BEKG01012000000',
                'IDFicha' => '21.377.074-8',
                'IDTipoDocumento' => 'XFVARSELECT'
            ],
            'Tipo' => 'TipoVenta',
            'idTipoVenta' => 'VENTAS'
        ],
        'CondicionPago' => [
            'CondicionPagoDoc' => [
                'IdCondicionPago' => 'Contado'
            ]
        ],
        'Detalles' => [
            [
                'VentaDetalle' => [
                    'Cantidad' => '1',
                    'CodigoBarra' => '123',
                    'CodigoBarraProv' => '123',
                    'Comentario' => 'None',
                    'DescripcionArticulo' => 'test',
                    'Descuento' => '0',
                    'IDUnidadMedida' => '1',
                    'IdArticulo' => 1,
                    'LineaDetalle' => 1,
                    'PrecioSinModificar' => 4034,
                    'PrecioUnitario' => 4034,
                    'SubTotal' => 4034,
                ]
            ]
        ],
        'Fecha' => '2018-05-31',
        'FechaVcto' => '2018-05-31',
        'Folio' => 0,
        'Glosa' => 'Venta Web #'.$this->invoice->number,
        'IdCliente' => '15796090-3',
        'IdContacto' => 0,
        'IdListaPrecio' => 1,
        'IdLocal' => 'ECOMMERCE',
        'IdMoneda' => 'PESO',
        'IdTipoDocumento' => 'XFVARSELECT', // XBOL, XFVAELECT
        'IdVendedor' => 'INTERNET',
        'Impuestos' => [
            'ImpuestoDocumento' => [
                'EsImpuestoEspecifico' => 'false',
                'IdImpuesto' => 'IVA',
                'Nombre' => 'IVA',
                'Tipo' => 'PorcentajeFijo',
                'Valor' => $this->invoice->total * env('VALOR_IVA')
            ]
        ],
        'MontoExento' => 0,
        'Subtotal' => $this->invoice->sub_total,
        'Tasa' => 1,
        'Total' => $this->invoice->total,
        'TotalImpuestos' => $this->invoice->total * env('VALOR_IVA'),
        'TotalRecargosDescuentosGlobal' => 0,
        'TotalRecargosDescuentos' => 0,
        'idTipoDocumentoSii' => $idTipoDocumentoSii,
        'Detalles' => [
                [
                    'VentaDetalleAnalisis' => [
                    'Cantidad' => 1,
                    'Descuento' => 0,
                    'IdArticulo' => 1,
                    'LineaDetalle' => 1,
                    'PrecioSinModificar' => 4034,
                    'PrecioUnitario' => 4034,
                    'SubTotal' => 4034,
                    'Tipo' => 'Articulo',
                    'TipoDescuento' => 'SinRd',
                    'AsientoVenta' => [
                        'Analisis' => [
                            'IDCentroNegocio' => 1
                        ],
                        'Tipo' => 'LineaProducto',
                        'idTipoVenta' => 'CABASTHO'
                    ]
                ]
            ],
        ]
        'EsDocumentoTraspaso' => 'N'
    ];

显然,“详细信息”的第二项覆盖了第一项。我已经尝试了stackoverflow的一些建议,但似乎没有任何效果。

p.s:省略了XML文件的某些键,以提高阅读效果。

0 个答案:

没有答案