Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


/**
* Plugin Name: Wanderlust Afip Exportador
* Plugin URI: https://shop.wanderlust-webdesign.com/shop/woocommerce-afip/
* Description: Wanderlust Afip integrates WooCommerce with Afip Exportador
* Version: 0.0.3
* Author: wanderlust-webdesign.com
* Author URI: https://wanderlust-webdesign.com
* WC tested up to: 8.0.0
* Text Domain: wanderlust-afip-exportador
* Domain Path: /languages/
*
* @author wanderlust-webdesign.com
* @package Wanderlust Afip Exportador
* @version 0.3
*/

define( 'AFIP_EXPORTADOR_WANDERLUST_PATH', plugin_dir_path( __FILE__ ) );
define( 'AFIP_EXPORTADOR_WANDERLUST_DIR',  plugin_dir_url( __FILE__ ) );

  
// If this file is called directly, abort.
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

 	function wanderlust_afip_exportar_admin() {
		$my_page = add_submenu_page( 'woocommerce','Wanderlust Afip Exportador', 'Exportar a AFIP', 'manage_woocommerce', 'wanderlust-afip-exportar', 'wanderlust_afip_exportar' );
 		add_action( 'load-' . $my_page, 'wanderlust_afip_exportar_js' );
 
		wp_register_style( 'myPluginStylesheet', plugins_url('includes/css/style.css', __FILE__) );
		wp_enqueue_style( 'myPluginStylesheet' );
 
  }
	add_action( 'admin_menu', 'wanderlust_afip_exportar_admin' );

  use PhpOffice\PhpSpreadsheet\Spreadsheet;

  require_once 'vendor/autoload.php';
 

	function wanderlust_afip_exportar_js(){
		add_action( 'admin_enqueue_scripts', 'wanderlust_afip_exportar_admin_js' );
	}

	function wanderlust_afip_exportar_admin_js(){	
		wp_enqueue_script( 'easypost-label-admin-script', plugins_url('afipjs.js',__FILE__), array( 'jquery' ) );
		//wp_enqueue_script( 'easypost-label-admin-print', plugins_url('includes/js/print.js',__FILE__), array( 'jquery' ) );
	}

	function wanderlust_afip_exportar() {
		if ( !current_user_can( 'manage_woocommerce' ) )  {
			wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
		}
		
    require_once(dirname(__FILE__) . '/admin.php');
	}

  add_action( 'wp_ajax_wanderlust_afip_export', 'wanderlust_afip_export' );
	add_action( 'wp_ajax_nopriv_wanderlust_afip_export', 'wanderlust_afip_export' );

  function wanderlust_afip_export() {    
    global $wpdb;
    
    $post_status = implode("','", array('wc-processing', 'wc-completed') );

    $result = $wpdb->get_results( "SELECT * FROM $wpdb->posts 
                WHERE post_type = 'shop_order'
                
                AND post_date BETWEEN '{$_POST['desde']}  00:00:00' AND '{$_POST['hasta']} 23:59:59'
            ");
    //AND post_status IN ('{$post_status}')
 
    $facturas = array();
    foreach($result as $orders){
      $dni = null;
      $afip = get_post_meta($orders->ID, 'afip_response', true);
      if(!empty($afip)){
        $afip = json_decode($afip);
        if(!empty($afip->voucher->DocTipo)){
          $dni = intval($afip->voucher->DocTipo);
        }
      
        
        
       
          if(!empty($dni) && $dni > 1){
 
            $factura = array(
               $afip->voucher->CbteFch,      # Fecha comprobante
               $afip->voucher->CbteTipo,       # Tipo comprobante
               $afip->voucher->PtoVta,         # Punto de venta
               $afip->cae_full->numeroComprobante,      # Numero cbte
               $afip->voucher->DocTipo,        # Codigo de identificacion comprador
               $afip->voucher->DocNro,         # Numero de identificacion comprador
               $afip->voucher->nombreCliente,  # Apellido y  nombre comprador
               $afip->voucher->ImpTotal,       # Importe total de la operacion
               '0',                            # Importe total de conceptos que no integran el precio total no gravado
               '0',                            # Importe de operaciones exentas
               '0',                            # Importe de percepciones o pagos a cuenta del Impuesto al Valor Agregado
               '0',                            # Importe de percepciones o pagos a cuenta de otros impuestos nacionales
               '0',                            # Importe de percepciones de Ingresos Brutos
               '0',                            # Importe de percepciones de Impuestos Municipales
               '0',                            # Importe de Impuestos Internos
               'PES',                          # Codigo moneda
               '1',                            # tipo de cambio
               '1',   # Cantidad de alicuota iva
               '0',                            # Codigo de operacion
               '0',                         # Otros tributos
               $afip->voucher->CbteFch,      # Fecha vencimiento pago
               $afip->voucher->ImpNeto,        # Importe neto no gravado
               $afip->voucher->Iva[0]->Id,        #  Alicuota IVA
               $afip->voucher->Iva[0]->Importe         # IVA liquidado
            );
            
             
            $facturas[] = $factura;            
          } 
      }
    }
 
    if(!empty($facturas)){
      procesa_facturas($facturas);
      $archivo_cbte = plugins_url('salida_cbte.txt',__FILE__);
      $archivo_alic = plugins_url('salida_alic.txt',__FILE__);
      $archivo_xls = plugins_url('salida.xls',__FILE__);
      echo '<a class="button" href="'.$archivo_cbte.'" download="salida_cbte.txt">salida_cbte.txt</a></br>';
      echo '<a class="button" href="'.$archivo_alic.'" download="salida_alic.txt">salida_alic.txt</a></br>';
      echo '<a class="button" href="'.$archivo_xls.'" download="salida.xls">salida.xls</a>';
    } else {
      echo 'NO SE ENCONTRARON RESULTADOS';
    }
    
    
       

    die();
	}


 

  function procesa_facturas($facturas){
    $modelo = plugin_dir_path( __FILE__ ) . "modelo.xls";
    $archivo_cbte = plugin_dir_path( __FILE__ ) . "salida_cbte.txt";
    $archivo_alic = plugin_dir_path( __FILE__ ) . "salida_alic.txt";
    $archivo_xls = plugin_dir_path( __FILE__ ) . "salida.xls";
    #  $spreadsheet = new Spreadsheet();
    $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($modelo);

  $fhc=fopen($archivo_cbte, "w");

  $fhi=fopen($archivo_alic, "w");

  $row=5;

  foreach( $facturas as $factura )
  {
    genera_reg_excel($factura, $spreadsheet, $row);

    fwrite( $fhc, genera_reg_cbte($factura));
    fwrite( $fhc, "\n");
    fwrite( $fhi, genera_reg_alic($factura));
    fwrite( $fhi, "\n");

    $row++;
  }

  $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xls($spreadsheet);

  $writer->save($archivo_xls);

  fclose($fhc);
  fclose($fhi);
}
function genera_reg_excel($factura, $sp, $row)
{
  $dia=substr($factura[0], 6, 2);
  $mes=substr($factura[0], 4, 2);
  $anio=substr($factura[0], 0, 4);
  $fecha=sprintf("%s/%s/%s", $dia, $mes, $anio);

  $dia=substr($factura[20], 6, 2);
  $mes=substr($factura[20], 4, 2);
  $anio=substr($factura[20], 0, 4);
  $fecha_venc=sprintf("%s/%s/%s", $dia, $mes, $anio);

  $sp->setActiveSheetIndex(0)
      ->setCellValue('A'.$row, $fecha)
      ->setCellValue('B'.$row, sprintf("%03d", $factura[1]))
      ->setCellValue('C'.$row, sprintf("%05d", $factura[2]))
      ->setCellValue('D'.$row, sprintf("%020d", $factura[3]))
      ->setCellValue('E'.$row, sprintf("%020d", $factura[3]))
      ->setCellValue('F'.$row, sprintf("%02d", $factura[4]))
      ->setCellValue('G'.$row, sprintf("%020d", $factura[5]))
      ->setCellValue('H'.$row, $factura[6])
      ->setCellValue('I'.$row, format_val($factura[7]))
      ->setCellValue('J'.$row, format_val($factura[8]))
      ->setCellValue('K'.$row, format_val($factura[9]))
      ->setCellValue('L'.$row, format_val($factura[10]))
      ->setCellValue('M'.$row, format_val($factura[11]))
      ->setCellValue('N'.$row, format_val($factura[12]))
      ->setCellValue('O'.$row, format_val($factura[13]))
      ->setCellValue('P'.$row, format_val($factura[14]))
      ->setCellValue('Q'.$row, $factura[15])
      ->setCellValue('R'.$row, $factura[16])
      ->setCellValue('S'.$row, $factura[17])
      ->setCellValue('T'.$row, $factura[18])
      ->setCellValue('U'.$row, format_val($factura[19]))
      ->setCellValue('V'.$row, $fecha_venc)
      ->setCellValue('W'.$row, format_val($factura[21]))
      ->setCellValue('X'.$row, format_val($factura[22])."%")
      ->setCellValue('Y'.$row, format_val($factura[23]));
}

function genera_reg_cbte($factura)
{
  $linea="";

  $dia=substr($factura[0], 6, 2);
  $mes=substr($factura[0], 4, 2);
  $anio=substr($factura[0], 0, 4);
  $linea.=sprintf("%s%s%s", $anio, $mes, $dia);

  $linea.=sprintf("%03d", $factura[1]);
  $linea.=sprintf("%05d", $factura[2]);
  $linea.=sprintf("%020d", $factura[3]);
  $linea.=sprintf("%020d", $factura[3]);
  $linea.=sprintf("%02d", $factura[4]);
  $linea.=sprintf("%020d", $factura[5]);
  $linea.=sprintf("%-30s", $factura[6]);

  $val=round(doubleval($factura[7]*100), 0);
  $linea.=sprintf("%015d", $val);

  $val=round(doubleval($factura[8]*100), 0);
  $linea.=sprintf("%015d", $val);

  $val=round(doubleval($factura[9]*100), 0);
  $linea.=sprintf("%015d", $val);

  $val=round(doubleval($factura[10]*100), 0);
  $linea.=sprintf("%015d", $val);

  $val=round(doubleval($factura[11]*100), 0);
  $linea.=sprintf("%015d", $val);

  $val=round(doubleval($factura[12]*100), 0);
  $linea.=sprintf("%015d", $val);

  $val=round(doubleval($factura[13]*100), 0);
  $linea.=sprintf("%015d", $val);

  $val=round(doubleval($factura[14]*100), 0);
  $linea.=sprintf("%015d", $val);

  $linea.=sprintf("%s", $factura[15]);

  $val=round(doubleval($factura[16]*1000000), 0);
  $linea.=sprintf("%010d", $val);

  $linea.=sprintf("%1s", $factura[17]);

  $linea.=sprintf("%1s", $factura[18]);

  $val=round(doubleval($factura[19]*100), 0);
  $linea.=sprintf("%015d", $val);

  $dia=substr($factura[20], 6, 2);
  $mes=substr($factura[20], 4, 2);
  $anio=substr($factura[20], 0, 4);
  $linea.=sprintf("%s%s%s", $anio, $mes, $dia);
  $linea.= sprintf("\r");
  return $linea;
}

function genera_reg_alic($factura) {
  $linea="";

  $linea.=sprintf("%03d", $factura[1]);
  $linea.=sprintf("%05d", $factura[2]);
  $linea.=sprintf("%020d", $factura[3]);

  $val=round(doubleval($factura[21]*100), 0);
  $linea.=sprintf("%015d", $val);
  
   
  if($factura[22] == '21'){
    $linea.=sprintf("%04d", '0005');
  }
  if($factura[22] == '27'){
    $linea.=sprintf("%04d", '0006');
  } 
  if($factura[22] == '0'){
    $linea.=sprintf("%04d", '0003');
  }  
  if($factura[22] == '5'){
    $linea.=sprintf("%04d", '0008');
  }  
  if($factura[22] == '2.5'){
    $linea.=sprintf("%04d", '0009');
  }  
  if($factura[22] == '10.5'){
    $linea.=sprintf("%04d", '0004');
  }   
  if($factura[22] == 'Exento'){
    $linea.=sprintf("%04d", '0002');
  } 
  if($factura[22] == 'No Gravado'){
    $linea.=sprintf("%04d", '0001');
  }   
   
 
  $val=round(doubleval($factura[23]*100), 0);
  $linea.=sprintf("%015d", $val);
  $linea.= sprintf("\r");  
  
  
  return $linea;
}

function format_val($val)
{
  $d=doublecho $val;

  return number_format($d, 2, ",", );
}



© 2023 Quttera Ltd. All rights reserved.