gerf1 / pyafipws

Automatically exported from code.google.com/p/pyafipws
GNU General Public License v3.0
0 stars 0 forks source link

WSLPG: Error AutorizarLiquidacion() takes exactly 1 argument (2 given) usando delphi7. #70

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Obtengo el siguiente error al quere autorizar una liquidacion (modo 
homologacion), probe distintos cambios a los valores de las variables al crear 
la liquidacion pero no hay ninguna diferencia al llamar a AutorizarLiquidacion. 
Obtengo el siguiente error:

  File "wslpg.pyo", line 294, in capturar_errores_wrapper
TypeError: AutorizarLiquidacion() takes exactly 1 argument (2 given)

Salida completa de seguimiento:

C:\ARCHIV~1\WSLPG
appserver status OK
dbserver status OK
authserver status OK
Ultimo numero de orden es:0
Ahora completo parametros y obtengo coe:
No salio el COE:Traceback (most recent call last):
  File "wslpg.pyo", line 294, in capturar_errores_wrapper
TypeError: AutorizarLiquidacion() takes exactly 1 argument (2 given)

Estoy usando delphi7 y winXP. 

Dejo el codigo en delphi por si alguien encuentra el error, y por si a alguien 
le sirve el aporte. Cualquier respuesta bienvenida.

//CODIGO DELPHI

begin
  CoInitialize(nil);
  // Crear objeto interface Web Service Autenticación y Autorización
  WSAA := CreateOleObject('WSAA') ;
  tra := WSAA.CreateTRA('wslpg',3600);
  WriteLn(tra);

   path := GetCurrentDir + '\';
   Certificado := 'privada.crt'; // certificado de prueba
  ClavePrivada := 'privada.key'; // clave privada de prueba' +
   cms := WSAA.SignTRA(tra, Path + Certificado, Path + ClavePrivada);
  WriteLn(cms);

  // Llamar al web service para autenticar:
  ta := WSAA.CallWSAA(cms, 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms?wsdl'); // Homologación

  // Imprimir el ticket de acceso, ToKen y Sign de autorización
  WriteLn(ta);
  WriteLn('Token:' + WSAA.Token);
  WriteLn('Sign:' + WSAA.Sign);

   // Crear objeto interface Web Service de Factura Electrónica
  WSLPG := CreateOleObject('WSLPG');
  WriteLn(WSLPG.Version);
  WriteLn(WSLPG.InstallDir);
  // Setear tocken y sing de autorización (pasos previos)
  WSLPG.Token := WSAA.Token;
  WSLPG.Sign := WSAA.Sign;
  // CUIT del emisor (debe estar registrado en la AFIP)
  WSLPG.Cuit := 'xxxx';

  // Conectar al Servicio Web de Facturación de primarias
  ok := WSLPG.Conectar('','',''); // homologación
 // WriteLn('Estado al conectar ' + WSLPG.);
  if not (ok) then WriteLn('Error en conexion:' + WSLPG.TRACEBACK)  ;
 // else begin
  ok:=WSLPG.Dummy;
   if not (ok) then WriteLn('Error con DUMMY, servicios caidos:')  ;
  WriteLn('appserver status ' + WSLPG.AppServerStatus);
  WriteLn('dbserver status ' + WSLPG.DbServerStatus);
  WriteLn('authserver status ' + WSLPG.AuthServerStatus);

 //*****************************************************************************

  // Recupera último número de secuencia ID

  tipo_cbte := 1; punto_vta := 1;
  // con esto obtengo el ultimo numero!!!!   tipo de comprobante no me lo toma
  ok := WSLPG.ConsultarUltNroOrden(punto_vta);
  If ok then
   begin
   LastId:= WSLPG.NroOrden;
   Nro_orden:=LastId + 1;
   WriteLn('Ultimo numero de orden es: ' + inttostr(LastId));
   end
   else
    WriteLn('Error con numero de orden' + WSLPG.TRACEBACK + WSLPG.ERRMsg)  ;
//***********************************OBTENER COE******************************

    WriteLn('Ahora completo parametros y obtengo coe:');
    Nro_orden:=1;
    pto_emision := 1;  // agregado v1.1
    cuit_comprador := '30xxxx'; // Exportador
    nro_act_comprador := 40;
    nro_ing_bruto_comprador := '30xxxx';
    cod_tipo_operacion := 1;
    es_liquidacion_propia := 'N';
    es_canje := 'N';
    cod_puerto := 14;
    des_puerto_localidad := 'DETALLE PUERTO';
    cod_grano := 31;
    cuit_vendedor := '30646xxxx';
    nro_ing_bruto_vendedor := '90xxxx';
    actua_corredor := 'S';
    liquida_corredor := 'S';
    cuit_corredor := '30xxxxx';
    comision_corredor := 1;
    nro_ing_bruto_corredor := '90xxxx';
    fecha_precio_operacion := '2013-11-18';
    precio_ref_tn := 1000;
    cod_grado_ref := 'G1';
    cod_grado_ent := 'G1';
    factor_ent := 98;
    precio_flete_tn := 10;
    cont_proteico := 20;
    alic_iva_operacion := 10.5;
    campania_ppal := 1213;
    cod_localidad_procedencia := 3;
    cod_provincia_procedencia := 1;  // agregado v1.1
    datos_adicionales := 'DATOS ADICIONALES';

    // establezco un parámetro adicional (antes de llamar a CrearLiquidacion)
    // nuevos parámetros WSLPGv1.1:
     ok := WSLPG.SetParametro('peso_neto_sin_certificado', 1000);
    // nuevos parámetros WSLPGv1.3:
     ok := WSLPG.SetParametro('cod_prov_procedencia_sin_certificado', 12);
     ok := WSLPG.SetParametro('cod_localidad_procedencia_sin_certificado', 5544);

    ok := WSLPG.CrearLiquidacion(nro_orden, cuit_comprador,
                               nro_act_comprador, nro_ing_bruto_comprador,
                               cod_tipo_operacion,
                               es_liquidacion_propia, es_canje,
                               cod_puerto, des_puerto_localidad, cod_grano,
                               cuit_vendedor, nro_ing_bruto_vendedor,
                               actua_corredor, liquida_corredor, cuit_corredor,
                               comision_corredor, nro_ing_bruto_corredor,
                               fecha_precio_operacion,
                               precio_ref_tn, cod_grado_ref, cod_grado_ent,
                               factor_ent, precio_flete_tn, cont_proteico,
                               alic_iva_operacion, campania_ppal,
                               cod_localidad_procedencia,
                               datos_adicionales,
                               pto_emision, cod_provincia_procedencia);

    // llamo al webservice con los datos cargados:
   }
    ok := WSLPG.AutorizarLiquidacion();

    If ok Then
        begin
        // muestro los resultados devueltos por el webservice:

        WriteLn('COE', WSLPG.COE);
        WriteLn('COEAjustado', WSLPG.COEAjustado);
        WriteLn('TootalDeduccion', WSLPG.TotalDeduccion);
        WriteLn('TotalRetencion', WSLPG.TotalRetencion);
        WriteLn('TotalRetencionAfip', WSLPG.TotalRetencionAfip);
        WriteLn('TotalOtrasRetenciones', WSLPG.TotalOtrasRetenciones) ;
        WriteLn('TotalNetoAPagar', WSLPG.TotalNetoAPagar);
        WriteLn('TotalIvaRg2300_07', WSLPG.TotalIvaRg2300_07) ;
        WriteLn('TotalPagoSegunCondicion', WSLPG.TotalPagoSegunCondicion);
        end
        else
        WriteLn('No salio el COE :' + WSLPG.TRACEBACK)  ;

  WriteLn('Presione Enter para terminar');
  ReadLn;

  CoUninitialize;

// FIN CODIGO

Gracias.

Maximiliano Martin Duarte.

Original issue reported on code.google.com by elmartin...@gmail.com on 21 Nov 2013 at 1:54

GoogleCodeExporter commented 8 years ago
En Delphi (pascal) y otros lenguajes, posiblemente tengas que llamar a la 
función AutorizarLiquidacion sin los paréntesis, ya que no recibe parámetros.

Creo que sería:

ok := WSLPG.AutorizarLiquidacion;

Original comment by reingart@gmail.com on 23 Nov 2013 at 2:08

GoogleCodeExporter commented 8 years ago
Era esa la solucion, va sin par�ntesis. Muchas gracias!

Maxi.

Original comment by elmartin...@gmail.com on 26 Nov 2013 at 1:22