Script para generar reporte de hotspot y enviar un email, sin user manager. Mikrotik

Les dejo un script para generar reporte de las ventas generadas por el hotspot, esta basado en el script http://wiki.mikrotik.com/wiki/AutomatedBilling.

#Script basado en el script http://wiki.mikrotik.com/wiki/AutomatedBilling
#Detalles:
#Este Script genera un reporte de las fichas de prepago consumidas en un dia n, sin ingresar al userman tool
#Envia el reporte a un correo electronico defindio
#Es necesario configurar el envio de correos en el router mikrotik previo a agregar el script
#Rb750r2 v.6.39.1
#Esta version fue creada por ajzh
:local date
:local usrname
:local precio
:local tilltime
:local dia
:local status
:local paycode
:local profilecode
:local profile
:local lastseen
:local total
:local body
:local uptime
:local month
:local 1hora
:local 3horas
:local 5horas
:local 1dia
:local 1mes
#Defino los nombres de los perfiles con los que cuento en el userman tool, para este ejemplo colocare nombres genericos, retirar las " " y personalizar en tu equipo
:set "profile1" 0
:set "profile2" 0
:set "profile3" 0
:set "profile4" 0
:set "profile5" 0
:log info "Inicio de Script Reporte Diario"
:set month [:pick [/system clock get date] 0 3]
:set date [/system clock get date]
:foreach i in=[/tool user-manager user find last-seen!=never] do={
:set lastseen [/tool user-manager user get $i last-seen]
:set dia [:pick $lastseen 0 11]
:if ( [$dia] = [$date] ) do={
:set profile [/tool user-manager user get $i actual-profile]
:if ( [:len $profile] = 0 ) do={
:set usrname [/tool user-manager user get $i username]
:set uptime [/tool user-manager user get $i uptime]
:set paycode [/tool user-manager payment find user=$usrname ]
:set precio [/tool user-manager payment get $paycode price]
:set total ( $total + ($precio/100) )
:set body ( $body . "Usuario: " . $usrname. " Precio: ".($precio/100) . " Uptime: " . $uptime .";\n")

#Aqui realiza el conteo de la cantidad de fichas vendidas, colorate en " " los precios genericos, elimnar las " " y personaliza en tu equipo
:if ( [($precio/100)] = "price1" ) do={ :set profile1 ($profile1 + 1)}
:if ( [($precio/100)] = "price2" ) do={ :set profile2 ($profile2 + 1)}
:if ( [($precio/100)] = "price3" ) do={ :set profile3 ($profile3 + 1)}
:if ( [($precio/100)] = "price4" ) do={ :set profile4 ($profile4 + 1)}
:if ( [($precio/100)] = "price5" ) do={ :set profile5 ($profile5 + 1)}
}
}
}
:if ( [$total] = "0" ) do={
:log info "sin ventas $date"
} else={
/tool e-mail send to="correo destino" from="correo origen configurado en tu equipo" subject="Reporte Ventas HotsPot Fecha $date" body="Reporte de Ventas de la Fecha: $date
Total: $total
Fichas de profile1 hora=$profile1
Fichas de profile2 horas=$profile2
Fichas de profile3 horas=$profile3
Fichas de profile4 dia=$profile4
Fichas de profile5 mes=$profile5

Detalle:
$body"
:log info "Envio de Email de Reporte Diario de Ventas"
}

Comentarios

  1. Respuestas
    1. Hola, sin problema en que te puedo ayudar.

      Saludos.

      Eliminar
  2. Usar wirenexfree hotspot. Cuenta con script que guardan el tiempo automáticamente de los usuario y perfiles de eliminación automática en un cierto día (no importa que se vaya la energía). http://wirenexfree.blogspot.com

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Instalación de Paneles Solares México Interconexion CFE

Hotspot con Daloradius, Freeradius 3, Mariadb, Centos 7, Mikrotik, crea tu propio usermanager