function AltaExterna(&$num, $strUsuario, $strClienteNombre, $strClienteApellidos, $strEmpresa, $strPoblacion, $strDireccion, $lngCP, $strProvincia, $strTelefono, $strFax, $strEmail, $lngFactura, $lngExpediente, $datFechaServicio, $strServAfect, $strDescripcion, $strOficina, $strDepartamento, $strTipencuesta, $optCri013, $strOficina2, $strTipencuesta2)
 {
     logger('traza', 'clsCNEnc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['strBD'] . ', SesionID: ' . session_id() . " clsCNEnc->AltaExterna()>");
     //validación datos entrada
     if (is_null($strUsuario)) {
         $alta = 'Falta usuario.';
     }
     $datFechaServicio2 = '000-00-00 00:00:00';
     if ($datFechaServicio == '') {
         date_default_timezone_set('Europe/Madrid');
         $datFechaServicio2 = date('Y-m-d h:m:s');
     } else {
         //pasarla a DATETIME 0000-00-00 00:00:00
         $datFechaServicio2 = fecha_to_DATETIME($datFechaServicio);
     }
     if (!isset($strDireccion)) {
         $strDireccion = '';
     }
     if (!is_numeric($lngFactura)) {
         $lngFactura = 0;
     }
     if (!is_numeric($lngExpediente)) {
         $lngExpediente = 0;
     }
     if (!is_numeric($lngCP)) {
         $lngCP = 0;
     }
     if (!isset($strPoblacion)) {
         $strPoblacion = '';
     }
     if (!isset($strTelefono)) {
         $strTelefono = '';
     }
     if (!isset($strFax)) {
         $strFax = '';
     }
     //Control de la oficina
     $oficina = explode('.', $strOficina);
     $strCodigo = $oficina[0];
     //comprobamos que el numero de oficina exista en la tabla tboficina
     //sino existe asigno false a la variable de control $existeOficina
     logger('traza', 'clsCNEnc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['base'] . ', SesionID: ' . session_id() . " clsCNEnc->AltaExterna()->existeOficina({$strCodigo})>");
     $existeOficina = $this->existeOficina($strCodigo);
     //si el dato de la oficina viene vacio o no existe la oficina le asigno la oficina del usuario
     $datos = array();
     if (isset($strOficina) && $strOficina == '' || $existeOficina == 'NO') {
         require_once '../CN/clsCNUsu.php';
         $clsCNUsu = new clsCNUsu();
         $clsCNUsu->setStrBD($this->getStrBD());
         logger('traza', 'clsCNEnc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['base'] . ', SesionID: ' . session_id() . " clsCNEnc->AltaExterna()->ObtieneOficinaDep_usuario(" . $_SESSION['usuario'] . ")>");
         $datos = $clsCNUsu->ObtieneOficinaDep_usuario($_SESSION['usuario']);
         $ofi = explode('.', $datos['strOficina']);
         $strCodigo = $ofi[0];
     }
     //Control del departamento
     //si el dato del departamento viene vacio o no existe en la tabla tbdepartamentos, le asigno el departamento del usuario
     $lngDepartamento = 'null';
     //no existe departamento
     logger('traza', 'clsCNEnc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['base'] . ', SesionID: ' . session_id() . " clsCNEnc->AltaExterna()->existeDpto({$strDepartamento})>");
     $existeDpto = $this->existeDpto($strDepartamento);
     if (isset($strDepartamento) && $strDepartamento == '' || $existeDpto == 'NO') {
         logger('traza', 'clsCNEnc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['base'] . ', SesionID: ' . session_id() . " clsCNEnc->AltaExterna():lngDepartamento: " . $lngDepartamento);
     } else {
         //sino busco el $lngDepartamento
         require_once '../CN/clsCNDep.php';
         $clsCNDep = new clsCNDep();
         $clsCNDep->setStrBD($this->getStrBD());
         logger('traza', 'clsCNEnc.php-', "Usuario: " . $_SESSION['strUsuario'] . ', Empresa: ' . $_SESSION['base'] . ', SesionID: ' . session_id() . " clsCNEnc->AltaExterna()->ObtieneIdDep({$strDepartamento})>");
         $lngDepartamento = $clsCNDep->ObtieneIdDep($strDepartamento);
     }
     $strDescripcion = substr($strDescripcion, 0, 800);
     require_once '../CAD/clsCADEnc.php';
     $clsCADEnc = new clsCADEnc();
     $clsCADEnc->setStrBD($this->getStrBD());
     $alta = $clsCADEnc->AltaExterna($num, $strUsuario, $strClienteNombre, $strClienteApellidos, $strEmpresa, $strPoblacion, $strDireccion, $lngCP, $strProvincia, $strTelefono, $strFax, $strEmail, $lngFactura, $lngExpediente, $datFechaServicio2, $strServAfect, $strDescripcion, $strCodigo, $lngDepartamento, $strTipencuesta, $optCri013);
     return $alta;
 }