<?php
class Personas {
public static function datosPorIdentificacion($identificacion){
$sqlQuery = PersonasSQL::DATOS_COMPLETOS . " WHERE ( Personas.personaIDENTIFICACION = ? )";
return SicamDB::selectUnaFila($sqlQuery, array($identificacion));
}
public static function buscarPersona($identificacion){
$sqlQuery = PersonasSQL::DATOS_TABLA_PERSONAS . " WHERE ( Personas.personaIDENTIFICACION = ? )";
return SicamDB::selectUnaFila($sqlQuery, array($identificacion));
}
public static function porIdentificacion($identificacion, $tipoIdentificacion){
$sqlQuery = PersonasSQL::DATOS_COMPLETOS . " WHERE ( Personas.personaIDENTIFICACION = ? )
AND ( Personas.tipoIdentificacionID = ? )";
return SicamDB::selectUnaFila($sqlQuery, array($identificacion, $tipoIdentificacion));
}
public static function buscarPersonaPorId($identificador){
$sqlQuery = PersonasSQL::DATOS_COMPLETOS . " WHERE ( Personas.personaID = ? )";
return SicamDB::selectUnaFila($sqlQuery, array($identificador));
}
public static function datosCompletos($personaID){
$sqlQuery = PersonasSQL::DATOS_COMPLETOS . " WHERE ( Personas.personaID = ? )";
return SicamDB::selectUnaFila($sqlQuery, array($personaID));
}
public static function actualizarInformacionGeneral($datos){
$sqlQuery = 'UPDATE
Personas
SET
tipoIdentificacionID = ?,personaIDENTIFICACION = ?,personaNOMBRES = ?,personaAPELLIDOS = ?, personaFCHNACIMIENTO = ?
WHERE ( Personas.personaID = ? )';
return SicamDB::actualizarFila($sqlQuery, $datos);
}
public static function actualizarInformacionAvanzada($datos){
$sqlQuery = 'UPDATE
Personas
SET
personaFCHNACIMIENTO = ?, personaLUGARNACIMIENTO = ?, personaLUGAREXPEDICIONCC = ?, personaTIPOSANGRE= ?, personaESTADOCIVIL = ?
WHERE ( Personas.personaID = ? )';
return SicamDB::actualizarFila($sqlQuery, $datos);
}
public static function actualizarInformacionContacto($celular,$direccion,$correo,$fijo,$personaID,$usuarioID){
self::guardarNumeroTelefonico($personaID,'CELULAR',$usuarioID,$celular);
self::guardarNumeroTelefonico($personaID,'FIJO',$usuarioID,$fijo);
self::guardarCorreoElectronico($personaID,$usuarioID,$correo);
self::guardarDireccionDomicilio($personaID,$usuarioID,$direccion);
}
public static function guardarNumeroTelefonico($personaID,$tipo,$usuarioID,$numero){
if(!is_null($telefono = PersonasTelefonos::datos($personaID,$tipo,'ACTIVO'))){
if($telefono->telefonoNUMERO != $numero){
PersonasTelefonos::desactivar($personaID,$tipo,$telefono->telefonoNUMERO);
$telefono = PersonasTelefonos::datosPorNumero($personaID,$tipo,'DESACTIVO',$numero);
if(!is_null($telefono)){
PersonasTelefonos::activar($personaID,$tipo,$numero);
}else{
PersonasTelefonos::guardar($numero,$tipo,$personaID,$usuarioID);
}
}
}else{
PersonasTelefonos::guardar($numero,$tipo,$personaID,$usuarioID);
}
}
public static function guardarCorreoElectronico($personaID,$usuarioID,$correo){
if(!is_null($correoPrincipal = PersonasCorreos::datos($personaID,'ACTIVO'))){
if($correoPrincipal->correoDIRECCION != $correo){
PersonasCorreos::desactivar($personaID,$correoPrincipal->correoDIRECCION);
$correoPrincipal = PersonasCorreos::datosPorCorreo($personaID,'DESACTIVO',$correo);
if(!is_null($correoPrincipal)){
PersonasCorreos::activar($personaID,$correo);
}else{
PersonasCorreos::guardar($correo,$personaID,$usuarioID);
}
}
}else{
PersonasCorreos::guardar($correo,$personaID,$usuarioID);
}
}
public static function guardarDireccionDomicilio($personaID,$usuarioID,$direccion){
if(!is_null($direccionPrincipal = PersonasDirecciones::datos($personaID,'ACTIVO'))){
if($direccionPrincipal->direccionNOMENCLATURA != $direccion){
PersonasDirecciones::desactivar($personaID,$direccionPrincipal->direccionNOMENCLATURA);
$direccionPrincipal = PersonasDirecciones::datosPorDireccion($personaID,'DESACTIVO',$direccion);
if(!is_null($direccionPrincipal)){
PersonasDirecciones::activar($personaID,$direccion);
}else{
PersonasDirecciones::guardar($direccion,$personaID,$usuarioID);
}
}
}else{
PersonasDirecciones::guardar($direccion,$personaID,$usuarioID);
}
}
public static function actualizarInformacionCliente($celular,$direccion,$correo,$fijo, $ciudad, $idpersona){
$sqlQuery = "UPDATE " . PersonasSQL::JOIN_DATOS_COMPLETOS . "
SET PersonasTelfCelular.telefonoNUMERO = ?, PersonasDirDomicilio.direccionNOMENCLATURA= ?,
PersonasCorreos.correoDIRECCION = ?, PersonasTelfFijo.telefonoNUMERO = ? , PersonasDirComercial.direccionCIUDAD = ?
WHERE ( Personas.personaID = ? )";
return SicamDB::actualizarFila($sqlQuery, array($celular,$direccion,$correo,$fijo, $ciudad, $idpersona));
}
public static function actualizarTallasDePersonas($tallaID,$personaID,$categoria){
$sqlQuery = '
UPDATE PersonasTallas
INNER JOIN Tallas ON PersonasTallas.tallaID = Tallas.tallaID
SET PersonasTallas.tallaID = ?
WHERE ( PersonasTallas.personaID = ? ) AND ( Tallas.tallaCATEGORIA = ? );';
return SicamDB::actualizarFila($sqlQuery, array($tallaID,$personaID,$categoria));
}
public static function idPorIdentificacion($identificacion){
$sqlQuery = PersonasSQL::DATOS_TABLA_PERSONAS . " WHERE ( Personas.personaIDENTIFICACION = ? )";
return SicamDB::selectUnaFila($sqlQuery, array($identificacion))->personaID;
}
public static function buscarTallasDePersona($idPersona,$categoria){
$sqlQuery = "
SELECT
*
FROM
PersonasTallas
INNER JOIN
Tallas ON PersonasTallas.tallaID = Tallas.tallaID
WHERE ( PersonasTallas.personaID = ? ) AND ( Tallas.tallaCATEGORIA = ? )";
$talla = SicamDB::selectUnaFila($sqlQuery, array($idPersona,$categoria));
if(is_null($talla)){
return null;
}else{
return $talla->tallaID;
}
}
public static function getPersonaTelefonos($idpersona,$tipo){
$sqlQuery = 'SELECT PersonasTelefonos.* FROM PersonasTelefonos
WHERE ( PersonasTelefonos.personasID = ? ) AND( PersonasTelefonos.telefonoTIPO = ?)';
return SicamDB::selectUnaFila($sqlQuery, array($idpersona,$tipo));
}
public static function actualizarBasico($tipoPersonaID, $tipoIdentificacionID, $personaIDENTIFICACION, $personaRAZONSOCIAL,$personaNombres, $personaApellidos, $personaFechaNacimiento, $colaboradorID) {
$sqlQuery = 'UPDATE `Personas` SET `tipoPersonaID`= ?, `tipoIdentificacionID` = ?, `personaIDENTIFICACION` = ?, `personaRAZONSOCIAL` = ?,`personaNOMBRES` = ?, `personaAPELLIDOS` = ?, `personaFCHNACIMIENTO` = ?, `personaUSRCREA` = ?);';
return SicamDB::actualizarFila($sqlQuery,
array($tipoPersonaID, $tipoIdentificacionID, $personaIDENTIFICACION,
$personaRAZONSOCIAL,$personaNombres, $personaApellidos, $personaFechaNacimiento, $colaboradorID));
}
public static function informacionAvanzada($personaId){
$personas = self::buscarPersonaPorId($personaId);
$personas->zapato = self::buscarTallasDePersona($personaId,'ZAPATOS');
$personas->camisa = self::buscarTallasDePersona($personaId,'CAMISA');
$personas->pantalon = self::buscarTallasDePersona($personaId,'PANTALON');
return $personas;
}
/*
**
***/
public static function datos($personaID) {
$sqlQuery = PersonasSQL::DATOS_BASICOS . " WHERE Personas.personaID = ? ; ";
$persona = SicamDB::selectUnaFila($sqlQuery, array($personaID));
$celular = self::datosTelefonicos($personaID, 'CELULAR');
if(count($celular)>0):
$persona->telefonoCELULAR = $celular;
endif;
$fijo = self::datosTelefonicos($personaID, 'FIJO');
if(count($fijo)>0):
$persona->telefonoFIJO = $fijo;
endif;
$correo = self::datosCorreo($personaID, 'PRINCIPAL');
if(count($correo)>0):
$persona->correoPRINCIPAL = $correo;
endif;
$direccion = self::datosDireccion($personaID, 'DOMICILIO');
if(count($direccion)>0):
$persona->direccionDOMILICILIO = $direccion;
endif;
return $persona;
}
public static function guardar($tipoPersonaID, $tipoIdentificacionID, $personaIDENTIFICACION, $personaRAZONSOCIAL,$personaNombres, $personaApellidos, $personaFechaNacimiento, $personaSEXO) {
$sqlQuery = PersonasSQL::CREAR_REGISTRO;
return SicamDB::insertFila($sqlQuery,
array($tipoPersonaID, $tipoIdentificacionID, $personaIDENTIFICACION,
$personaRAZONSOCIAL,$personaNombres, $personaApellidos, $personaFechaNacimiento, $personaSEXO, Cliente::usuarioID()));
}
public static function datosTelefonicos($personaID, $tipoTelefono) {
$sqlQuery = PersonasSQL::DATOS_TELEFONICOS . " WHERE personasID = ? AND telefonoTIPO = ? AND telefonoESTADO='ACTIVO'";
return SicamDB::selectUnaFila($sqlQuery, array($personaID, $tipoTelefono));
}
public static function datosDireccion($personaID, $tipoDireccion) {
$sqlQuery = PersonasSQL::DATOS_DIRECCION . " WHERE personasID = ? AND direccionTIPO = ? AND direccionESTADO='ACTIVO'";
return SicamDB::selectUnaFila($sqlQuery, array($personaID, $tipoDireccion));
}
public static function datosCorreo($personaID, $tipoCorreo) {
$sqlQuery = PersonasSQL::DATOS_CORREO . " WHERE personaID = ? AND correoTIPO = ? AND correoESTADO='ACTIVO'";
return SicamDB::selectUnaFila($sqlQuery, array($personaID, $tipoCorreo));
}
public static function actualizarTipoIdentificacion($tipoIdentificacionID, $personaID) {
$sqlQuery = "UPDATE Personas SET tipoIdentificacionID = ? WHERE personaID = ? ;";
return SicamDB::actualizarFila($sqlQuery,
array($tipoIdentificacionID, $personaID));
}
public static function actualizarIdentificacion($personaIDENTIFICACION, $personaID) {
$sqlQuery = "UPDATE Personas SET personaIDENTIFICACION = ? WHERE personaID = ? ;";
return SicamDB::actualizarFila($sqlQuery,
array($personaIDENTIFICACION, $personaID));
}
public static function actualizarRazonSocial($personaRAZONSOCIAL, $personaID) {
$sqlQuery = "UPDATE Personas SET personaRAZONSOCIAL = ? WHERE personaID = ? ;";
return SicamDB::actualizarFila($sqlQuery,
array($personaRAZONSOCIAL, $personaID));
}
public static function actualizarNombres($personaNOMBRES, $personaID) {
$sqlQuery = "UPDATE Personas SET personaNOMBRES = ? WHERE personaID = ? ;";
return SicamDB::actualizarFila($sqlQuery,
array($personaNOMBRES, $personaID));
}
public static function actualizarFechaNacimiento($personaFCHNACIMIENTO, $personaID) {
$sqlQuery = "UPDATE Personas SET personaFCHNACIMIENTO = ? WHERE personaID = ? ;";
return SicamDB::actualizarFila($sqlQuery,
array($personaFCHNACIMIENTO, $personaID));
}
public static function actualizarApellidos($personaAPELLIDOS, $personaID) {
$sqlQuery = "UPDATE Personas SET personaAPELLIDOS = ? WHERE personaID = ? ;";
return SicamDB::actualizarFila($sqlQuery,
array($personaAPELLIDOS, $personaID));
}
public static function actualizarSexo($personaSEXO, $personaID) {
$sqlQuery = "UPDATE Personas SET personaSEXO = ? WHERE personaID = ? ;";
return SicamDB::actualizarFila($sqlQuery,
array($personaSEXO, $personaID));
}
}