<?php
require( DIR_COMPONENTES. 'desarrollosoftware/modelos/TMPLControlador.php');
require( DIR_COMPONENTES. 'desarrollosoftware/modelos/TMPLModelo.php');
require( DIR_COMPONENTES. 'desarrollosoftware/modelos/TMPLModeloSQL.php');
require( DIR_COMPONENTES. 'desarrollosoftware/modelos/TMPLVistas.php');
class Constructor {
static function ejecutar($componenteID, $controladorID, $controladorCLASE, $nombreMODELO, $entidadPLURAR, $nombreENTIDAD, $nombreTABLA, $prefijoTABLA, $nombreVISTA ){
self::cargarDatosConstructor($componenteID, $controladorCLASE, $nombreMODELO, $entidadPLURAR, $nombreENTIDAD, $nombreTABLA, $prefijoTABLA, $nombreVISTA );
$Componente = Componentes::datos($componenteID);
$rutaModelos = strtolower(DIR_MODELOS.$Componente->componenteCARPETA.DS);
Archivos::crearArchivo($rutaModelos, $nombreMODELO.".php");
Archivos::escribirEnArchivo($rutaModelos.$nombreMODELO.".php", self::generarCodificacionModelo() );
Archivos::crearArchivo($rutaModelos, $nombreMODELO."SQL.php");
Archivos::escribirEnArchivo($rutaModelos.$nombreMODELO."SQL.php", self::generarCodificacionModeloSQL() );
$rutaControlador = strtolower(DIR_COMPONENTES.$Componente->componenteCARPETA.DS.'controladores'.DS);
Archivos::crearArchivo($rutaControlador, $controladorCLASE.EXT_CONTROLADOR);
Archivos::escribirEnArchivo($rutaControlador.$controladorCLASE.EXT_CONTROLADOR, self::generarCodificacionControlador() );
$rutaVistas = strtolower(DIR_COMPONENTES.$Componente->componenteCARPETA.DS.'vistas'.DS.strtolower($controladorCLASE).DS);
Archivos::crearArchivo($rutaVistas, "lst-todos".EXT_VISTA);
Archivos::escribirEnArchivo($rutaVistas."lst-todos".EXT_VISTA, self::generarCodificacionModeloListado() );
Archivos::crearArchivo($rutaVistas, "tbl-todos".EXT_VISTA);
Archivos::escribirEnArchivo($rutaVistas."tbl-todos".EXT_VISTA, self::generarCodificacionModeloTabla() );
Archivos::crearArchivo($rutaVistas, "frm-completo".EXT_VISTA);
Archivos::escribirEnArchivo($rutaVistas."frm-completo".EXT_VISTA, self::generarCodificacionModeloFormulario() );
Archivos::crearArchivo($rutaVistas, "ver-detalles".EXT_VISTA);
Archivos::escribirEnArchivo($rutaVistas."ver-detalles".EXT_VISTA, self::generarCodificacionModeloDetalles() );
foreach( Constructor::$OperacionesSICAM as $Operacion => $Configuracion ){
//print_r($Configuracion);
Operaciones::guardar(
$controladorID ,
$Configuracion['operacion'].$controladorCLASE.$Componente->componenteCODIGO ,
Plantillas::script($Configuracion['titulo'], Plantillas::$variables ),
$Configuracion['operacion'],
Plantillas::script( (isset($Configuracion['tab']) ? $Configuracion['tab'] : "") , Plantillas::$variables ),
isset($Configuracion['menu']) ? $Configuracion['menu'] : "NO" ,
$Configuracion['icono'],
isset($Configuracion['menuTitulo']) ? $Configuracion['menuTitulo'] : "NO"
);
}
}
static function cargarDatosConstructor($componenteID, $controladorCLASE, $nombreMODELO,
$entidadPLURAR, $nombreENTIDAD, $nombreTABLA, $prefijoTABLA, $nombreVISTA ){
$Componente = Componentes::datos($componenteID);
Plantillas::agregarValor('VERSION_SICAM', Parametros::valor('VERSIONSICAM') );
Plantillas::agregarValor('CORREO_SICAM', Parametros::valor('CORREOSICAM') );
Plantillas::agregarValor('FECHA_CREACION', date('Y-m-d h:i:s:u') );
Plantillas::agregarValor('ANIO_CREACION', date('Y') );
Plantillas::agregarValor('VERSION_ARCHIVO', date('Ymdhi') );
Plantillas::agregarValor('CORREO_COLABORADOR', Cliente::correo() );
Plantillas::agregarValor('NOMBRE_COLABORADOR', Cliente::nombre() );
Plantillas::agregarValor('COMPONENTE_DIR', $Componente->componenteCARPETA );
Plantillas::agregarValor('COMPONENTE', $Componente->componenteCODIGO );
Plantillas::agregarValor('ENTIDADES', $entidadPLURAR );
Plantillas::agregarValor('ENTIDAD', $nombreENTIDAD );
Plantillas::agregarValor('TABLADATOS', $nombreTABLA );
Plantillas::agregarValor('PREFIJODATOS', $prefijoTABLA);
Plantillas::agregarValor('CONTROLADOR', $controladorCLASE );
Plantillas::agregarValor('DESC_CONTROL', $nombreENTIDAD );
Plantillas::agregarValor('VISTAS', strtolower($controladorCLASE) );
Plantillas::agregarValor('SUFIJO_VISTA', $nombreVISTA );
Plantillas::agregarValor('MODELO', $nombreMODELO );
Plantillas::agregarValor('DESC_MODELO', $nombreMODELO );
}
/**
* Toma los Datos Recibidos para la creacion del archivo/clase del controlador
* y se reemplazan en las plantillas respectivas para luego enviarlos a la vista. *
*/
static function generarCodificacionControlador() {
$PHPControlador = TMPLControlador::ENCABEZADO;
//La funciones o metodos
foreach( Constructor::$OperacionesSICAM as $Operacion => $Configuracion ){
$PHPControlador .= $Configuracion["script"];
}
$PHPControlador .= TMPLControlador::PIECERA;
return Plantillas::script($PHPControlador, Plantillas::$variables );
}
/**
* Toma los Datos Recibidos para la creacion del archivo/clase del Modelo
* y se reemplazan en las plantillas respectivas para luego enviarlos a la vista. *
*/
static function generarCodificacionModelo() {
$PHPControlador = TMPLModelo::ENCABEZADO;
//La funciones o metodos
foreach( Constructor::$OperacionesSICAM as $Operacion => $Configuracion ){
$PHPControlador .= $Configuracion["datos"];
}
$PHPControlador .= TMPLModelo::PIECERA;
return Plantillas::script($PHPControlador, Plantillas::$variables );
}
/**
* Toma los Datos Recibidos para la creacion del archivo/clase del Modelo de Consultas SQL
* y se reemplazan en las plantillas respectivas para luego enviarlos a la vista. *
*/
static function generarCodificacionModeloSQL() {
$PHPControlador = TMPLModeloSQL::ENCABEZADO;
//La funciones o metodos
foreach( Constructor::$OperacionesSICAM as $Operacion => $Configuracion ){
$PHPControlador .= str_replace('\sql','sql', $Configuracion["consulta"]);
}
$PHPControlador .= TMPLModeloSQL::PIECERA;
return Plantillas::script($PHPControlador, Plantillas::$variables );
}
/**
* Toma los Datos Recibidos para la creacion del archivo/clase del Modelo de Consultas SQL
* y se reemplazan en las plantillas respectivas para luego enviarlos a la vista. *
*/
static function generarCodificacionModeloListado() {
$PHPControlador = TMPLVistas::ENCABEZADO_LISTADO;
//La funciones o metodos
foreach( Constructor::$OperacionesSICAM as $Operacion => $Configuracion ){
$PHPControlador .= $Configuracion["boton"];
}
$PHPControlador .= TMPLVistas::PIECERA_LISTADO;
return Plantillas::script($PHPControlador, Plantillas::$variables );
}
/**
* Toma los Datos Recibidos para la creacion del archivo/clase del Modelo de Consultas SQL
* y se reemplazan en las plantillas respectivas para luego enviarlos a la vista. *
*/
static function generarCodificacionModeloTabla() {
$PHPControlador = TMPLVistas::TABLA_COMPLETA;
return Plantillas::script($PHPControlador, Plantillas::$variables );
}
/**
* Toma los Datos Recibidos para la creacion del archivo/clase del Modelo de Consultas SQL
* y se reemplazan en las plantillas respectivas para luego enviarlos a la vista. *
*/
static function generarCodificacionModeloFormulario() {
$PHPControlador = TMPLVistas::FORMULARIO;
return Plantillas::script($PHPControlador, Plantillas::$variables );
}
/**
* Toma los Datos Recibidos para la creacion del archivo/clase del Modelo de Consultas SQL
* y se reemplazan en las plantillas respectivas para luego enviarlos a la vista. *
*/
static function generarCodificacionModeloDetalles() {
$PHPControlador = TMPLVistas::DETALLES;
return Plantillas::script($PHPControlador, Plantillas::$variables );
}
static $OperacionesSICAM = array(
"VER_DETALLES" => array(
'script' => TMPLControlador::VER_DETALLES,
'datos' => TMPLModelo::DATOS.TMPLModelo::DATOS_COMPLETOS,
'consulta' => TMPLModeloSQL::DATOS_COMPLETOS,
'boton' => TMPLVistas::VER_DETALLES,
'icono' => 'fa fa-info', 'operacion' => 'verDetalles',
'titulo' => 'Mostrar datos de un %%ENTIDAD%%',
'tab' => 'Datos de %%ENTIDAD%%',
'vista' => 'detalles'
),
"todos" => array(
'script' => TMPLControlador::MOSTRAR_TODOS.TMPLControlador::CARGAR_TABLA,
'datos' => TMPLModelo::TODOS_REGISTROS,
'consulta' => TMPLModeloSQL::DATOS_BASICOS,
'boton' => TMPLVistas::MOSTRAR_TODOS.TMPLVistas::CARGAR_TABLA,
'icono' => 'fa fa-list-alt', 'operacion' => 'mostrarTodos',
'titulo' => 'Mostrar tod@s los %%ENTIDADES%%',
'menu' => 'SI', 'menuTitulo' => 'Todos',
'tab' => 'Todos los %%ENTIDADES%%',
'vista' => 'listado'
),
"activos" => array(
'script' => '',
'datos' => TMPLModelo::TODOS_ACTIVOS,
'consulta' => '',
'boton' => '',
'icono' => 'fa fa-list-alt', 'operacion' => 'mostrarActivos',
'titulo' => 'Mostrar solo los de %%ENTIDADES%% activ@s',
'menu' => 'SI', 'menuTitulo' => 'Activos',
'tab' => '%%ENTIDADES%% Activos',
'vista' => 'listado'
),
"nuevo" => array(
'script' => TMPLControlador::MOSTRAR_FORMULARIO_NUEVO.TMPLControlador::GUARDAR_DATOS_NUEVO,
'datos' => '',
'consulta' => TMPLModeloSQL::CREAR_REGISTRO,
'boton' => TMPLVistas::MOSTRAR_FORMULARIO_NUEVO,
'icono' => 'fa fa-plus-square-o', 'operacion' => 'mostrarFormularioNuevo',
'titulo' => 'Abrir formulario para crear un(a) %%ENTIDAD%%',
'menu' => 'SI', 'menuTitulo' => 'Nuevo',
'tab' => 'Nuev@ %%ENTIDAD%%',
'vista' => 'formulario'
),
"editar" => array(
'script' => TMPLControlador::MOSTRAR_FORMULARIO_EDITAR.TMPLControlador::GUARDAR_DATOS_CAMBIOS,
'datos' => '',
'consulta' => TMPLModeloSQL::ACTUALIZAR_REGISTRO,
'boton' => TMPLVistas::MOSTRAR_FORMULARIO_EDITAR,
'icono' => 'fa fa-pencil-square-o', 'operacion' => 'mostrarFormularioEditar',
'titulo' => 'Abrir formulario con datos de %%ENTIDAD%%',
'tab' => 'Editar %%ENTIDAD%%',
'vista' => 'formulario'
),
"guardar" => array(
'script' => TMPLControlador::MOSTRAR_FORMULARIO.TMPLControlador::GUARDAR_DATOS,
'datos' => TMPLModelo::GUARDAR_DATOS.TMPLModelo::ACTUALIZAR_DATOS,
'consulta' => '',
'boton' => '',
'icono' => 'fa fa-floppy-o', 'operacion' => 'guardarDatos',
'titulo' => 'Guardar los datos de %%ENTIDAD%%'
),
"eliminar" => array(
'script' => TMPLControlador::ELIMINAR_DATOS,
'datos' => TMPLModelo::ELIMINAR_DATOS,
'consulta' => TMPLModeloSQL::ELIMINAR_REGISTRO,
'boton' => TMPLVistas::ELIMINAR_DATOS,
'icono' => 'fa fa-eraser', 'operacion' => 'eliminar',
'titulo' => 'ELiminar %%ENTIDADES%%'
),
"activar" => array(
'script' => TMPLControlador::REACTIVAR,
'datos' =>TMPLModelo::REACTIVAR_DATOS.TMPLModelo::CAMBIAR_ESTADO,
'consulta' => TMPLModeloSQL::ACUALIZAR_ESTADO,
'boton' => TMPLVistas::REACTIVAR,
'icono' => 'fa fa-check-square-o', 'operacion' => 'reactivar',
'titulo' => 'Cambiar el estado de %%ENTIDAD%% a ACTIVO'
),
"desactivar" => array(
'script' => TMPLControlador::DESACTIVAR,
'datos' => TMPLModelo::DESACTIVAR_DATOS,
'consulta' => '',
'boton' => TMPLVistas::DESACTIVAR,
'icono' => 'fa fa-trash-o', 'operacion' => 'desactivar',
'titulo' => 'Cambiar el estado de %%ENTIDAD%% a DESACTIVO'
),
);
static $OperacionesAPI = array(
"datos" => array(
'script' => '',
'datos' => '',
'consulta' => '',
'icono' => 'fa fa-info', 'operacion' => 'datos',
'titulo' => 'Datos en JSON de %%ENTIDAD%%'
),
"todos" => array(
'script' => '',
'datos' => '',
'consulta' => '',
'icono' => 'fa fa-fax', 'operacion' => 'todos',
'titulo' => 'JSON con todos los %%ENTIDADES%%'
),
"activos" => array(
'script' => '',
'datos' => '',
'consulta' => '',
'icono' => 'fa fa-check', 'operacion' => 'activos',
'titulo' => 'JSON solo con los %%ENTIDADES%% activ@s'
)
);
}