Skip to main content

Overview

SASCOP BME SubTec provides comprehensive reporting capabilities for project tracking, production analysis, and financial oversight. This guide covers available reports and how to generate them.

Report Categories

Project Reports

  • PTE summary reports
  • Work order progress
  • Timeline analysis
  • Deliverable tracking

Production Reports

  • Daily production logs
  • Monthly summaries
  • Volume tracking
  • GPU validation status

Financial Reports

  • Cost accumulation
  • Authorization vs execution
  • Pending billing
  • Budget analysis

Activity Reports

  • User activity logs
  • System modifications
  • Audit trail

Project Status Reports

PTE Summary Report

View overall PTE statistics and status:
1

Access PTE Module

Navigate to Operaciones > PTEs
2

View Dashboard Metrics

operaciones/views/pte.py
@login_required(login_url='/accounts/login/')
def index(request):
    context = {
        'total_ptes': PTEHeader.objects.filter(estatus__in=[1,2,3,4]).count(),
        'ptes_activo': PTEHeader.objects.filter(estatus=1).count(),
        'ptes_en_proceso': PTEHeader.objects.filter(estatus=2).count(),
        'ptes_terminado': PTEHeader.objects.filter(estatus=3).count(),
        'ptes_cancelado': PTEHeader.objects.filter(estatus=4).count(),
    }
Dashboard shows:
  • Total active PTEs
  • By status (Pendiente, Proceso, Terminado, Cancelado)
  • Total work orders created
  • Total production records
3

Apply Filters

Filter by:
  • Status
  • Type
  • Responsible person
  • Year
  • Client
4

Export Data

Use DataTable export buttons:
  • Excel
  • PDF
  • Copy to clipboard
  • Print

Work Order Progress Report

Track work order completion and timeline:

Progress Metrics

For each work order, the system calculates:
operaciones/views/ote.py
# Step completion (30% weight)
pasos_completados = detalles.filter(estatus_paso_id=3).count()
progreso_pasos = (pasos_completados / total_pasos) * 100

# Time progress (70% weight)
dias_transcurridos = (today - fecha_inicio).days
progreso_tiempo = (dias_transcurridos / plazo_total) * 100

# Combined progress
progreso_final = (progreso_tiempo * 0.7) + (progreso_pasos * 0.3)
Metrics Included:
  • Overall progress percentage
  • Steps completed vs total
  • Days elapsed vs total
  • Days remaining
  • Status (On time, At risk, Delayed)

Production Reports

Daily Production Report

Review production by site and day:
1

Access Production Module

Go to Operaciones > Producción
2

Select Site and Period

Choose work site and month/year
3

View Daily Status Grid

Shows work status for each OT by day:
  • LABORANDO (working)
  • STANDBY (on standby)
  • NO LABORANDO (not working)
  • CERRADO (locked)
4

Export Daily Report

Export shows:
  • Work order details
  • Daily status
  • Supervisor on duty
  • Site information

Monthly Production Summary

Consolidated monthly production report:

Monthly Report Structure

Header Information:
  • Site name
  • Month and year
  • Work order list
  • Total authorized values
Detail Section:
  • Concept code and description
  • Unit of measure
  • Authorized quantity
  • Executed this month (by day)
  • Accumulated to date
  • Remaining authorization
  • Unit prices (MXN/USD)
  • Total amounts
GPU Section:
  • Generator voucher status
  • Evidence attachments
  • Validation status
Financial Summary:
  • Total authorized (MXN/USD)
  • Executed this month (MXN/USD)
  • Accumulated (MXN/USD)
  • Remaining (MXN/USD)

Volume Analysis Report

Track production against authorization:
1

Select Work Order

Choose OT to analyze
2

View Authorization

System displays authorized volumes from consolidated family:
operaciones/views/produccion.py
def obtener_volumenes_consolidados(id_ot, codigos):
    # Get OT family (initial + reprogramming)
    id_principal = ot.ot_principal or ot.id
    familia_ots = OTE.objects.filter(
        Q(id=id_principal) | Q(ot_principal=id_principal)
    )
    
    # Latest authorization per concept
    return {p.id_partida: p.volumen_proyectado for p in partidas}
3

Review Execution

Report shows:
  • Historical execution
  • Current month execution
  • Total accumulated
  • Percentage of authorization used
  • Excess volumes (flagged in red)
4

Export Analysis

Export includes variance analysis and trend charts
Excess volumes appear in red and are marked with es_excedente=True flag. These require special authorization for billing.

Financial Reports

Budget vs Actual Report

Financial Comparison

Columns:
  • Concept description
  • Authorized quantity
  • Authorized amount (MXN/USD)
  • Executed quantity
  • Executed amount (MXN/USD)
  • Variance (quantity and amount)
  • Percentage executed
Grouped By:
  • Annex (C-2, C-3, etc.)
  • Work order
  • Site
  • Time period

Billing Status Report

Track production ready for billing:
1

Filter by Status

View production by billing status:
  • PENDIENTE (pending)
  • VALIDADO (validated)
  • FACTURADO (invoiced)
  • PAGADO (paid)
2

Verify GPU Completion

For C-2/C-3 concepts:
operaciones/views/produccion.py
# Only production with validated GPUs
producciones_facturables = Produccion.objects.filter(
    id_reporte_mensual=reporte,
    volumen_produccion__gt=0,
    es_excedente=False,  # No excess
    gpu__id_estatus_id=21  # VALIDADO
)
3

Generate Billing Package

Export includes:
  • Production volumes
  • Unit prices
  • Total amounts
  • GPU evidence links
  • Monthly report evidence

Cost Accumulation Report

Track project costs over time:

Accumulated Costs

Report shows:
  • Initial authorization
  • Monthly execution
  • Cumulative total
  • Remaining budget
  • Burn rate
  • Projected completion cost
Available views:
  • By concept
  • By annex
  • By work order
  • By time period

Activity Reports

User Activity Log

View all system modifications:
1

Access Activity Logs

Navigate to Configuración > Registro de Actividad
2

View Log Entries

operaciones/models/registro_actividad_models.py
class RegistroActividad(models.Model):
    registro_id = models.IntegerField()    # Record ID
    evento = models.TextField()            # Event type (CREATE, UPDATE, DELETE)
    campo = models.TextField()             # Changed field
    valor_anterior = models.TextField()    # Old value
    valor_actual = models.TextField()      # New value
    afectacion = models.TextField()        # Affected module
    fecha = models.DateTimeField()         # Timestamp
    usuario_id = models.ForeignKey(User)   # User who made change
3

Filter Logs

Filter by:
  • User
  • Event type (CREATE, UPDATE, DELETE)
  • Module (PTE, OT, Production, etc.)
  • Date range
  • Specific record
4

Export Audit Trail

Export filtered logs for compliance or investigation

Change History Report

Track changes to specific records:
View all modifications to a PTE:
  • Status changes
  • Field updates
  • Step progress
  • Document uploads
  • Who made each change and when
Track work order modifications:
  • Date adjustments
  • Site changes
  • Status updates
  • Financial updates
Review production entry history:
  • Original values
  • Corrections
  • Reason for change
  • Approval status

DataTable Export Features

All list views support multiple export formats:

Excel Export

Full-featured spreadsheet with:
  • All columns
  • Formatting preserved
  • Formulas where applicable
  • Ready for analysis

PDF Export

Print-ready document:
  • Professional layout
  • Company branding
  • Pagination
  • Date/time stamp

Copy to Clipboard

Quick data transfer:
  • Tab-delimited format
  • Paste into any application
  • Preserves data structure

Print

Direct printing:
  • Optimized layout
  • Page breaks
  • Headers/footers

Custom Reports

For specialized reporting needs:
1

Define Requirements

Identify:
  • Data sources needed
  • Filters and parameters
  • Output format
  • Frequency
2

Request from Administrator

Submit request with:
  • Report purpose
  • Required fields
  • Sample layout
  • User permissions
3

Test and Refine

Review generated report and provide feedback
4

Schedule (if applicable)

Set up automatic generation:
  • Daily
  • Weekly
  • Monthly
  • End of period

Report Best Practices

Regular Generation

Generate reports on a consistent schedule for trending

Verify Data

Review source data before generating critical reports

Archive Reports

Save copies of monthly reports for historical reference

Share Securely

Use appropriate permissions when sharing sensitive financial reports

Document Assumptions

Include notes about filters or date ranges used

Cross-Verify

Validate critical reports against source documents

Scheduled Reports

Some reports are automatically generated:

Weekly Summary Email

Configured in management command:
core/management/commands/fn_enviar_reporte_semanal.py
# Sends weekly summary to stakeholders
# Includes:
# - PTEs completed this week
# - Work orders progress
# - Production highlights
# - Upcoming deadlines
Recipients configured by administrator

Troubleshooting

Possible causes:
  • Browser blocking pop-ups
  • Too much data (timeout)
  • Missing permissions
Solutions:
  • Allow pop-ups for this site
  • Apply filters to reduce data size
  • Contact administrator for permissions
Cause: Data filtered or date range limitedSolution: Verify all filters are cleared for full report
Cause: Records may be inactive (estatus=0) or outside date rangeSolution: Adjust filters or check record status

Recording Production

Learn how production data feeds reports

Activity Logs

View detailed activity history

Build docs developers (and LLMs) love