Initial commit: proyecto ContabilidadSaPolar completo

This commit is contained in:
root
2026-08-19 21:30:23 +00:00
commit 0d5c6f9512
232 changed files with 26730 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
<#
.SYNOPSIS
Sa Polar - Crear accesos directos
.DESCRIPTION
Crea accesos directos en Inicio y Escritorio.
Se ejecuta durante la instalación MSI.
#>
param(
[string]$InstallDir = "$env:ProgramFiles\SaPolar",
[switch]$Desktop
)
$startMenuPath = "$([Environment]::GetFolderPath('Programs'))\Sa Polar"
$desktopPath = [Environment]::GetFolderPath('Desktop')
$psExe = "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe"
$manageServices = Join-Path $InstallDir "scripts\manage-services.ps1"
# Crear directorio Start Menu
if (-not (Test-Path $startMenuPath)) {
New-Item -ItemType Directory -Path $startMenuPath -Force | Out-Null
}
# Acceso directo: Panel web
$wshell = New-Object -ComObject WScript.Shell
$shortcut = $wshell.CreateShortcut("$startMenuPath\Sa Polar - Panel.lnk")
$shortcut.TargetPath = "$env:SystemRoot\System32\cmd.exe"
$shortcut.Arguments = "/c start http://localhost:3000"
$shortcut.Description = "Abrir panel de administración de Sa Polar"
$shortcut.WorkingDirectory = $InstallDir
$shortcut.Save()
# Acceso directo: Gestor de servicios
$shortcut = $wshell.CreateShortcut("$startMenuPath\Sa Polar - Gestor de Servicios.lnk")
$shortcut.TargetPath = $psExe
$shortcut.Arguments = "-NoExit -ExecutionPolicy Bypass -File `"$manageServices`" -Action status"
$shortcut.Description = "Gestionar servicios Docker de Sa Polar"
$shortcut.WorkingDirectory = $InstallDir
$shortcut.Save()
# Acceso directo: Desinstalar
$shortcut = $wshell.CreateShortcut("$startMenuPath\Sa Polar - Desinstalar.lnk")
$shortcut.TargetPath = $psExe
$shortcut.Arguments = "-ExecutionPolicy Bypass -File `"$manageServices`""
$shortcut.Description = "Desinstalar Sa Polar"
$shortcut.WorkingDirectory = $InstallDir
$shortcut.Save()
# Acceso directo escritorio
if ($Desktop) {
$shortcut = $wshell.CreateShortcut("$desktopPath\Sa Polar.lnk")
$shortcut.TargetPath = "$env:SystemRoot\System32\cmd.exe"
$shortcut.Arguments = "/c start http://localhost:3000"
$shortcut.Description = "Abrir panel de administración de Sa Polar"
$shortcut.WorkingDirectory = $InstallDir
$shortcut.Save()
}
Write-Host "Accesos directos creados correctamente."
+42
View File
@@ -0,0 +1,42 @@
<#
.SYNOPSIS
Instalador de Sa Polar - Script de post-instalación MSI
.DESCRIPTION
Configura el entorno después de la instalación de archivos:
- Crea .env desde .env.example si no existe
- Inicia contenedores Docker
- Crea accesos directos (fallback)
.NOTES
Ejecutado por el MSI como acción personalizada
#>
param(
[string]$InstallDir = "$env:ProgramFiles\SaPolar"
)
$COMPOSE_DIR = $InstallDir
# 1. Crear .env si no existe
$envFile = Join-Path $COMPOSE_DIR ".env"
$envExample = Join-Path $COMPOSE_DIR ".env.example"
if ((Test-Path $envExample) -and -not (Test-Path $envFile)) {
Copy-Item -Path $envExample -Destination $envFile
Write-Host ".env creado desde .env.example"
} elseif (Test-Path $envFile) {
Write-Host ".env ya existe, se conserva"
} else {
Write-Host "ADVERTENCIA: No se encontró .env.example"
}
# 2. Iniciar contenedores Docker
Set-Location -LiteralPath $COMPOSE_DIR
Write-Host "Iniciando contenedores Docker..."
$result = docker compose up -d --remove-orphans 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host "Contenedores iniciados correctamente"
} else {
Write-Host "ADVERTENCIA: Error al iniciar contenedores."
Write-Host "Puedes hacerlo manualmente con: manage-services.ps1 -Action start"
}
exit 0
+66
View File
@@ -0,0 +1,66 @@
<#
.SYNOPSIS
Sa Polar - Gestor de Servicios
.DESCRIPTION
Permite gestionar los servicios Docker de Sa Polar:
start, stop, restart, status, logs, rebuild
.PARAMETER Action
Acción a realizar: start, stop, restart, status, logs, rebuild
.PARAMETER Service
Servicio específico (opcional): mysql, backend, frontend
#>
param(
[Parameter(Mandatory = $true)]
[ValidateSet("start", "stop", "restart", "status", "logs", "rebuild")]
[string]$Action,
[string]$Service = ""
)
$COMPOSE_DIR = Split-Path -Parent $PSScriptRoot
$COMPOSE_FILE = Join-Path $COMPOSE_DIR "docker-compose.yml"
if (-not (Test-Path $COMPOSE_FILE)) {
Write-Error "docker-compose.yml no encontrado en $COMPOSE_DIR"
exit 1
}
Set-Location -LiteralPath $COMPOSE_DIR
switch ($Action) {
"start" {
Write-Host "Iniciando servicios..."
if ($Service) { docker compose up -d $Service }
else { docker compose up -d }
}
"stop" {
Write-Host "Deteniendo servicios..."
if ($Service) { docker compose stop $Service }
else { docker compose down }
}
"restart" {
Write-Host "Reiniciando servicios..."
if ($Service) { docker compose restart $Service }
else { docker compose restart }
}
"status" {
docker compose ps
}
"logs" {
if ($Service) { docker compose logs -f $Service }
else { docker compose logs -f }
}
"rebuild" {
Write-Warning "Reconstruyendo imágenes... Esto puede tomar varios minutos."
$confirm = Read-Host "Continuar? (s/N)"
if ($confirm -ne "s" -and $confirm -ne "S") { exit 0 }
docker compose build --no-cache
docker compose up -d
}
}
if ($LASTEXITCODE -eq 0) {
Write-Host "Operación completada."
} else {
Write-Error "Error durante la operación."
}
+40
View File
@@ -0,0 +1,40 @@
<#
.SYNOPSIS
Sa Polar - Desinstalador (post-MSI)
.DESCRIPTION
Limpieza adicional después de la desinstalación MSI:
- Detiene y elimina contenedores Docker
- Elimina volúmenes Docker
- Elimina tareas programadas
.NOTES
También se ejecuta como acción personalizada del MSI
#>
param(
[string]$InstallDir = "$env:ProgramFiles\SaPolar"
)
Write-Host "=== Sa Polar - Desinstalación ==="
Write-Host ""
# 1. Detener contenedores
if (Test-Path $InstallDir) {
Set-Location -LiteralPath $InstallDir
Write-Host "Deteniendo contenedores Docker..."
docker compose down -v 2>$null
Write-Host "Contenedores detenidos y volúmenes eliminados."
} else {
Write-Host "Directorio de instalación no encontrado."
}
# 2. Eliminar tarea programada
$taskName = "Sa Polar Starter"
$task = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
if ($task) {
Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
Write-Host "Tarea programada eliminada."
}
Write-Host ""
Write-Host "Sa Polar ha sido desinstalado."
exit 0