Business-Shipping-MRW

 view release on metacpan or  search on metacpan

lib/Business/Shipping/MRW.pm  view on Meta::CPAN

    my $ret;
    
    my $codes = {
	'0005' => 'Urgente hoy',
	'0010' => 'Promociones',
	'0100' => 'Urgente 12',
	'0110' => 'Urgente 14',
	'0120' => 'Urgente 22',
	'0200' => 'Urgente 19',
	'0205' => 'Urgente 19 Expedicion',
	'0210' => 'Urgente 19 Mas 40 Kilos',
	'0220' => '48 Horas Portugal',
	'0230' => 'Bag 19',
	'0235' => 'Bag 14',
	'0300' => 'Economico',
	'0310' => 'Economico Mas 40 Kilos',
	'0350' => 'Economico Interinsular',
	'0400' => 'Express Documentos',
	'0450' => 'Express 2 Kilos',
	'0480' => 'Caja Express 3 Kilos',
	'0490' => 'Documentos 14',
	'0800' => 'Ecommerce',
	'0810' => 'Ecommerce Canje',
    };

    map { $ret = $_ if $codes->{$_} eq $tipo } keys %{$codes};
    
    unless ( $ret ) {
	$self->Error("CodigoServicio no valido : $tipo , fijado 0200");
	return '0200';
    }
    
    return $ret;
}

=head2
    AuthInfo Header
=cut
sub AuthInfo {
    my $self = shift;
    my $str;

    $str = '<soap:Header>
	<mrw:AuthInfo>
	<mrw:CodigoFranquicia>'.$self->{mrw}->{CodigoFranquicia}.'</mrw:CodigoFranquicia>
	<mrw:CodigoAbonado>'.$self->{mrw}->{CodigoAbonado}.'</mrw:CodigoAbonado>
	<mrw:CodigoDepartamento></mrw:CodigoDepartamento>
	<mrw:UserName>'.$self->{mrw}->{UserName}.'</mrw:UserName>
	<mrw:Password>'.$self->{mrw}->{Password}.'</mrw:Password>
	</mrw:AuthInfo>
	</soap:Header>';
	
    return $str;
}

=head2
    Metodo que se usa para la Transmision del envio

    Hasta implementar WSDL real no esta chapuza usar GenMethods para regenerar struct

    Opcional: 'DatosRecogida'
=cut
sub TransmEnvio {
    my $self  = shift;
    my $Envio = shift;

    $Envio = OpenJSON($Envio);
    
    my $Fecha = strftime "%d/%m/%Y", localtime;

    ## TransmEnvioRequest
    my $Req = {
	'DatosEntrega' => {
	    'Telefono'      => $Envio->{DatosEntrega}->{Telefono},
	    'Nif'           => $Envio->{DatosEntrega}->{Nif},
	    'Nombre'        => $Envio->{DatosEntrega}->{Nombre},
	    'Observaciones' => $Envio->{DatosEntrega}->{Observaciones},
	    'Contacto'      => $Envio->{DatosEntrega}->{Contacto},
	    'ALaAtencionDe' => $Envio->{DatosEntrega}->{ALaAtencionDe},
	    'Direccion'     => {
		CodigoTipoVia => '',
		Via           => $Envio->{DatosEntrega}->{Direccion}->{Via},
		Numero        => $Envio->{DatosEntrega}->{Direccion}->{Numero},
		Resto         => '',
		CodigoPostal  => $Envio->{DatosEntrega}->{Direccion}->{CodigoPostal},
		Poblacion     => $Envio->{DatosEntrega}->{Direccion}->{Poblacion},
	    },
	},
	'DatosServicio' => {
	    'SeguroOpcional'        => '',
	    'Notificaciones'        => {
		CanalNotificacion => $Envio->{DatosServicio}->{Notificaciones}->{CanalNotificacion},
		TipoNotificacion  => $Envio->{DatosServicio}->{Notificaciones}->{TipoNotificacion},
		MailSMS           => $Envio->{DatosServicio}->{Notificaciones}->{MailSMS},
	    },
	    'Frecuencia'            => '',
	    'Entrega830'            => 'N',
	    'ConfirmacionInmediata' => '',
	    'DescripcionServicio'   => '',
	    'NumeroPuentes'         => '',
	    'EntregaPartirDe'       => '',
	    'Retorno'               => 'N',
	    'Bultos'                => $Envio->{DatosServicio}->{Bultos},
	    'TipoMercancia'         => '',
	    'Reembolso'             => $Envio->{DatosServicio}->{Reembolso},
	    'ImporteReembolso'      => $Envio->{DatosServicio}->{ImporteReembolso},
	    'Fecha'                 => $Fecha,
	    'ValorEstadisticoEuros' => '',
	    'TramoHorario'          => '',
	    'EntregaSabado'         => $Envio->{DatosServicio}->{EntregaSabado},
	    'NumeroAlbaran'         => '',
	    'Peso'                  => $Envio->{DatosServicio}->{Peso},
	    'NumeroBultos'          => $Envio->{DatosServicio}->{NumeroBultos},
	    'CodigoPromocion'       => '',
	    'Mascara_Campos'        => '',
	    'Mascara_Tipos'         => '',
	    'ValorDeclarado'        => '',
	    'Referencia'            => $Envio->{DatosServicio}->{Referencia},
	    'ServicioEspecial'      => '',
	    'CodigoMoneda'          => '',
	    'NumeroSobre'           => '',



( run in 1.414 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )