Skip to main content

Overview

The MngNegocioComision class manages the complete lifecycle of official commissions (comisiones) in SMAF. This includes:
  • Commission request submission and validation
  • Multi-level authorization workflows (VoBo → Authorization)
  • Commission execution tracking and reporting
  • Integration with expense verification and payment systems
Source File: InapescaWeb.BRL/MngNegocioComision.cs
Author: Juan Antonio López López (CRIP Salina Cruz)
Created: December 2015

Core CRUD Operations

Create Commission

Inserts a new commission with comprehensive details:
public static Boolean Inserta_Comision(
    string psClv_Oficio,
    string psTipoComision, 
    string psFolio, 
    string psNo_Oficio, 
    string psFecha_Sol, 
    string psFecharesp, 
    string psFechaVoBo, 
    string psFechaAut, 
    string psUsuarioSol, 
    string psDep, 
    string psArea, 
    string psProy, 
    string psDep_Proy, 
    string psLugar, 
    string psTelefono, 
    string psCapitulo, 
    string psProceso, 
    string psIndicador, 
    string psPart_Presupuestal, 
    string psFechaI, 
    string psFechaF, 
    string psDiasTotal, 
    string psDiasReales, 
    string psObjetivo, 
    string psClaseT, 
    string psTipoT, 
    string psTrans_Sol, 
    string psTransAut, 
    string psDescAuto, 
    string psDepTrans, 
    string psRecorridoTerrestre, 
    string psVueloPartNum, 
    string psFechVueloPart, 
    string psHorVueloPart, 
    string psVueloRetNum, 
    string psFechVueloRet, 
    string psHorVueloRet, 
    string psRecorridoAereo, 
    string psComSol, 
    string psComAut, 
    string psPartCom, 
    string psPeaje, 
    string psPartPeaje, 
    string psPasaje, 
    string psPartPasaje, 
    string psRecorridoAcuatico, 
    string psSecEff, 
    string psEquipo, 
    string psObservSol, 
    string psRespProy, 
    string psVoBo, 
    string psAut, 
    string psComisionado, 
    string psDep_Com, 
    string psEstatus, 
    string psObservVoBo, 
    string psObservAut, 
    string psEspecies, 
    string psProductos, 
    string psActividades,
    string psTerritorio,
    string psUbicacion_Aut,
    string psPeriodo,
    string psPais, 
    string psEstado)
psClv_Oficio
string
required
Official document classification code
psTipoComision
string
required
Commission type: NACIONAL, INTERNACIONAL, EXTRAORDINARIA
psFolio
string
required
Unique commission identifier (auto-generated)
psFechaI / psFechaF
string
required
Start and end dates of the commission
psDiasTotal
string
required
Total calendar days (including weekends)
psDiasReales
string
required
Actual working days (excludes weekends)
psObjetivo
string
required
Mission objective and justification
psTerritorio
string
required
Territory classification: FRONTERIZO, INTERIOR

Retrieve Commission Details

Multiple methods provide commission data with varying levels of detail:

Standard Detail Retrieval

public static Comision Detalle_Comision(
    string psFolio, 
    string psDep, 
    string psComisionado = "",
    string psEstatus = "")

Payment View Detail

public static Comision DetalleComision_Pagos(
    string psFolio, 
    string psDep, 
    string psComisionado = "",
    bool psUsuarioPagador = false)
The DetalleComision_Pagos variant includes bank account information and payment status flags used by financial officers.

Reprint View (Historical)

public static Comision Detalle_Comision_Reimpresion(
    string psFolio, 
    string psDep, 
    string psPeriodo, 
    string psComisionado = "", 
    string psEstatus = "")

Update Commission Status

Status transitions drive the authorization workflow:
public static bool Update_estatus_Comision(
    string psEstatus, 
    string psUsuario = "", 
    string psFolio = "", 
    string psDep = "", 
    string psArchivo = "", 
    string psObservaciones = "", 
    bool x = false)
psEstatus
string
Target status:
  • REGISTRADA: Initial submission
  • EN_VOBO: Pending project manager approval
  • AUTORIZADA: Authorized by supervisor
  • RECHAZADA: Rejected
  • EFECTIVA: Commission completed
  • EN_COMPROBACION: Expense verification in progress
  • COMPROBADA: Expenses verified
  • PAGADA: Payment disbursed

Authorization Workflow Methods

VoBo and Authorization Tracking

Retrieve approval chain information:
public static Entidad Vobo_Aut(
    string psFolio, 
    string psVobo = "", 
    string psAut = "")
Returns entity with:
  • VoBo approver name and department
  • Authorization approver name and department
  • Approval dates

Update Authorization Details

Core method for processing approvals:
public static bool Update_Comision(
    Comision pObjeto, 
    string psOpcion, 
    string psFolio, 
    string psUsuario, 
    string psPermisos,
    Boolean update = false)
pObjeto
Comision
Full commission entity with updated fields
psOpcion
string
Authorization action: VOBO, AUTORIZAR, RECHAZAR
psPermisos
string
User permission level to validate authorization rights

Commission Detail Status Updates

For multi-employee commissions, update individual participant status:
public static bool Update_Status_Comision_Detalle(
    string psFolio, 
    string psUbicacion, 
    string psComisionado = "", 
    string psOpcion = "", 
    string psComentarios = "", 
    string psNoOficio = "", 
    string psAutoriza = "")

Query and Filter Operations

List Commissions by User

public static List<Comision> Regresa_ListComision(
    string psUsuario, 
    string psPeriodo, 
    string psEstatus = "")
Returns all commissions for a user in a specific period, optionally filtered by status.

List Commissioned Employees

public static List<Entidad> Comisionados(
    string psFolio, 
    string psOpcion,
    string psUsuario,
    string psEstatus,
    string psTipoCom = "",
    string psDep = "")
psOpcion
string
Query context:
  • SOLICITUD: Include all requested participants
  • EFECTIVA: Only confirmed participants
  • COMPROBACION: Those submitting expenses

Advanced Filtering

Comprehensive filter method for administrative views:
public static DataSet Filtros(
    string psPeriodo, 
    string psInicio, 
    string psFinal, 
    string psFormaPago, 
    string psEstatus, 
    string psAdscripcion, 
    string psUsuario)
Returns DataSet with multiple tables:
  1. Commissions: Matching commission records
  2. Summary: Aggregated totals by status
  3. Centers: Geographic distribution

Business Rule Validation

Date Overlap Detection

Prevents employees from having overlapping commission dates:
public static bool Comision_Extraordinaria(
    string psUsuario, 
    string psFechaInicio, 
    string psFechaFinal, 
    string psOpcion)
Returns: true if overlap detected, false if dates are clear
This validation should be called before inserting a new commission to prevent scheduling conflicts.

Continuous Day Accumulation

Calculates accumulated consecutive travel days (SAT regulation compliance):
public static string Obtiene_Dias_Continuos(
    string psFechas, 
    string psComisionado, 
    string psTerritorio)
Returns: Number of continuous days including the proposed commission
Per SAT regulations, employees cannot exceed 75 continuous days in border territory or 90 days in interior territory without tax implications.

Annual Day Accumulation

public static string Dias_Acumulados(
    string psComisionado,
    string psPeriodo)
Returns total commission days for an employee in the fiscal year.

Daily Commission Limit

Check if employee already has a commission registered for the same date:
public static string Solicitudes_Registradas(
    string psUsuario, 
    string psFecha)

Expense Verification Integration

List Commissions Pending Verification

public static List<comprobacion> Comision_Comp(
    string psUsuario, 
    string psDep)
Returns commissions in EFECTIVA status awaiting expense submission.

List Verified Commissions

public static List<Entidad> Comision_Comporbada(
    string psUsuario, 
    string psDep, 
    int tipo)
tipo
int
Verification type filter:
  • 1: Fully verified
  • 2: Partially verified
  • 3: Rejected verification

Unverified Commission Count

public static string Comisiones_SinComprobar(
    string psUsuario, 
    string psPeriodo)
Returns count of completed commissions without expense submission.

Fiscal Compliance Methods

Tax Rate Retrieval

public static string Obtiene_Tarifa(string psZona)
Returns daily travel allowance rate for zone:
  • Zone A (Mexico City): Higher rate
  • Zone B (Border cities): Border rate
  • Zone C (Interior): Standard rate

Exchange Rate Lookup

public static TipoCambio TipoCambio(
    string psUsuario, 
    string psFecha)
Retrieves official Banco de México exchange rate for international commission expense calculation.

Document Management

Generate Official Commission Letter

public static Boolean Inserta_Oficio_Comision(
    Comision poComision,
    string psOficio)
Creates official authorization document record after commission approval.

Update Document Paths

public static Boolean Update_ruta_Comision(
    string psRuta, 
    string psArchivo, 
    string psDep, 
    string psComisionado, 
    string psOficio, 
    Comision poComision)
Stores file system paths for generated PDF documents.

DGAIPP Document Numbering

For transparency office integration:
public static Boolean Update_Oficio_Comision_DGAIPP(
    Comision poComision, 
    int psNoMinDGAIPP)
Assigns official minute number from the transparency office (DGAIPP).

Report and Activity Tracking

Submit Commission Report

public static Boolean Inserta_Informe_Comision(
    string psOficio, 
    string psUbicacionSol, 
    string pscComisionado, 
    string psUbicacionComisionado, 
    string psProyecto, 
    string psUbicacionProyect, 
    string psSecuencia, 
    string psInforme, 
    string psEvidencia1, 
    string psEvidencia2, 
    string psEvidencia3, 
    string psDateI, 
    string psDateF, 
    string psPeriodo, 
    string psDepAut = "")
psInforme
string
Main report document filename
psEvidencia1/2/3
string
Supporting evidence document filenames (photos, documents, etc.)

Retrieve Report Details

public static comision_informe Obtiene_Informe(
    string psUsuario, 
    string psUbiaccion, 
    string psFolio, 
    string psDepSolicitud, 
    string psPeriodo, 
    string psProy = "")
Returns full report entity including evidence attachments.

List Report Files

public static List<Entidad> ObtieneNombresInformes(
    string psOficio, 
    string psUbicacionSol, 
    string psComisionado, 
    string psUbicacionComisionado, 
    string psProyect, 
    string psUbicacionProy)

Payment Processing Integration

List Commissions Pending Payment

public static List<Comision> ListaComisionesPagar(
    string psArchivo, 
    string psPeriodo)
Returns verified commissions ready for disbursement.

Payment Detail Retrieval

public static Comision PagoComision(
    string psArchivo, 
    string psPeriodo, 
    bool psBandera = false)
Retrieves commission with bank account details for payment processing.

Administrative Utilities

Obtain Maximum Folio

public static string ObtieneMaxComision(
    string psUbicacion,
    string psPeriodo)
Returns next available folio number for commission creation.

Obtain Commission Type Catalog

public static List<Entidad> Obtiene_tipo_Comision()
Returns:
  • NACIONAL: Domestic commission
  • INTERNACIONAL: International commission
  • EXTRAORDINARIA: Extraordinary/emergency commission

Retrieve Action Permissions

public static List<Entidad> Obtiene_Actions(string psRol)
Returns allowed actions based on user role:
  • SOLICITAR: Submit new commissions
  • VOBO: Approve commissions
  • AUTORIZAR: Final authorization
  • PAGAR: Process payments

Transparency and Reporting

Public Transparency List

public static List<Comision> Lista_ComisionesTransparencia(
    string psYear)
Returns commissions for public transparency portal (filtered for public disclosure).

Budget Center Summary

public static List<Entidad> Lista_Centros_Comisiones(
    string psPeriodo, 
    string psInicio, 
    string psFinal, 
    string psFormaPago, 
    string psEstatus, 
    string psAdscripcion, 
    string psUsuario)
Aggregates commission spending by cost center.

Project Summary

public static List<Entidad> Lista_Proyectos_Comisiones(
    string psPeriodo, 
    string psInicio, 
    string psFinal, 
    string psFormaPago, 
    string psEstatus, 
    string psAdscripcion, 
    string psUsuario)
Aggregates commission spending by project code.

Example Workflow

Complete commission lifecycle:
// Step 1: Validate no date conflicts
bool hasConflict = MngNegocioComision.Comision_Extraordinaria(
    psUsuario: "JALP001",
    psFechaInicio: "2024-03-15",
    psFechaFinal: "2024-03-20",
    psOpcion: "VALIDAR"
);

if (!hasConflict)
{
    // Step 2: Get next folio number
    string folio = MngNegocioComision.ObtieneMaxComision(
        psUbicacion: "CRIP-SC",
        psPeriodo: "2024"
    );
    
    // Step 3: Insert commission
    bool success = MngNegocioComision.Inserta_Comision(
        psClv_Oficio: "COM",
        psTipoComision: "NACIONAL",
        psFolio: folio,
        // ... all other parameters ...
        psEstatus: "REGISTRADA"
    );
    
    // Step 4: Submit for approval
    MngNegocioComision.Update_estatus_Comision(
        psEstatus: "EN_VOBO",
        psFolio: folio,
        psUsuario: "JALP001"
    );
}

Verification Management

Expense verification after commission completion

Payment Management

Payment processing for verified commissions

Commission Entity

Comision entity class structure

Commission Workflows

User guide for commission processing

Build docs developers (and LLMs) love