示例#1
0
 public function validaDelegado($user, $delegado, $empresa, $etapa, $flujo, $motivo)
 {
     $tramite = new Tramite();
     $existeDelegado = $this->existenciaDelegado($user, $delegado);
     if ($existeDelegado) {
         $etapaTramite = $this->obtenerEtapaDelegados($flujo);
         $tramiteId = $tramite->Crea_Tramite($user, $empresa, $etapaTramite, $flujo, $motivo, $delegado);
     } else {
         $tramiteId = $tramite->Crea_Tramite($iduser, $empresa, $etapa, $flujo, $motivo, $delegado);
     }
     return $tramiteId;
 }
 $idempresa = $_POST['empresa'];
 $motivoComprobacion = $_POST['motive'];
 // Datos de la Solicitud
 $refacturar = $_POST['Cecos_refacturado'] == 1 ? "1" : "0";
 $idSolicitud = $_POST["sol_select"];
 $cnn = new conexion();
 $Vsql = "SELECT * FROM solicitud_viaje WHERE sv_tramite = {$idSolicitud}";
 $Res_Vsql = $cnn->consultar($Vsql);
 $IdSolc = mysql_result($Res_Vsql, 0, "sv_id");
 $MontoSolc = mysql_result($Res_Vsql, 0, "sv_anticipo");
 $centroCosto = mysql_result($Res_Vsql, 0, "sv_ceco_paga");
 // Registra nuevo tramite
 $tramite = new Tramite();
 mysql_query("BEGIN");
 if ($actualizacion_comp == 0) {
     $idTramite = $tramite->Crea_Tramite($iduser, COMPROBACION_ETAPA_SOLICITUD, FLUJO_COMPROBACION, $motivoComprobacion);
 }
 if ($idTramite == 0) {
     mysql_query("ROLLBACK");
     header("Location: ./index.php?errorsave");
     die;
 }
 $orden_estadistica = isset($_POST['orden_estadistica']) != "" ? intval($_POST['orden_estadistica']) : 0;
 if ($idSolicitud > 0) {
     // Agrega nueva comprobacion
     if ($actualizacion_comp == 1) {
         $idComprobacion = updateComprobacion($idTramite, $t_Anticipo_Comprobado, $t_Anticipo_Amex, $mnt_Reembolso, $mnt_Descuento, $total_anticipo, $idSolicitud, $refacturar, $observ, $orden_estadistica);
         limpiar_detalles($idComprobacion);
     } else {
         $idComprobacion = Add_new_comprobacion($t_Anticipo_Comprobado, $t_Anticipo_Amex, $mnt_Reembolso, $mnt_Descuento, $total_anticipo, $idTramite, $idSolicitud, $refacturar, $observ, $orden_estadistica);
     }
 $idSolicitud = $_POST["sol_select"];
 $cnn = new conexion();
 $Vsql = "SELECT * FROM solicitud_viaje WHERE sv_tramite = {$idSolicitud}";
 $Res_Vsql = $cnn->consultar($Vsql);
 $IdSolc = mysql_result($Res_Vsql, 0, "sv_id");
 $MontoSolc = mysql_result($Res_Vsql, 0, "sv_anticipo");
 $centroCosto = mysql_result($Res_Vsql, 0, "sv_ceco_paga");
 // Busca aprobador para la solicitud en caso que sea necesario
 $Usu = new Usuario();
 $fecha = date("Y-m-d");
 $ruta_autorizadores = $Usu->buscaAprobadorParaComprobacion($centroCosto, $tTotal, $total_anticipo, $fecha);
 $aprobador = $ruta_autorizadores[0];
 // Registra nuevo tramite
 $tramite = new Tramite();
 $tramite->insertar("BEGIN WORK");
 $idTramite = $tramite->Crea_Tramite($iduser, $idempresa, COMPROBACION_ETAPA_COMPROBACION, FLUJO_COMPROBACION, $cMotive);
 // Agrega nueva comprobacion
 $idComprobacion = Add_new($idTramite, $idSolicitud, $tAmnt, $tIVA, $tTotal, $montoexc, $motivoComprobacion, $centroCosto, 1, $CreditCard, $refacturar, $observ, $MontoSolc);
 // Guarda los detalles de la comprobacion
 $totalComprobado = 0;
 $status_c = 1;
 for ($i = 1; $i <= $_POST['rowCount']; $i++) {
     //Partidas
     $cNo = $_POST['row' . $i];
     $cDate = $_POST['fecha' . $i];
     $cCargo = "";
     $cConc = $_POST['concepto' . $i];
     $cRef = $_POST['referencia' . $i];
     $cProv = $_POST['proveedor' . $i];
     $cP_RFC = $_POST['rfc' . $i];
     $cAmt = $_POST['mnt' . $i];
     if ($t_etapa == 4 || $t_etapa == 6 || $t_autorizaciones_historial != "") {
         $HObser = $_POST['historial_observaciones'];
     } else {
         $HObser = "";
     }
     // Agregamos el nombre del usuario al campo de Observaciones
     if ($observaciones_solicitud != "") {
         $observaciones_solicitud = $notificacion->anotaObservacion($delegado, $HObser, $observaciones_solicitud, FLUJO_SOLICITUD_INVITACION, SOLICITUD_INVITACION_ETAPA_APROBACION);
     } else {
         $observaciones_solicitud = $HObser;
     }
     limpiar_invitados($idTramite);
     $invitacionID = $Solicitud_invitacion->Edit_invitacion($motivo, $no_invitados, $monto_solicitud, $monto_pesos_solicitud, $divisa_solicitud_final, $cecos_solicitud, $ciudad_solicitud, $observaciones_solicitud, "", $fechainvit, $inv_lugar, $inv_hubo_exedente, $idTramite);
 } else {
     // Registra nuevo tramite
     $idTramite = $tramite->Crea_Tramite($iduser, $idempresa, SOLICITUD_INVITACION_ETAPA_EN_APROBACION_POR_DIRECTOR, FLUJO_SOLICITUD_INVITACION, $motivo, $delegado);
     // Agregamos el nombre del usuario al campo de Observaciones
     if ($observaciones_solicitud != "") {
         $HObser = "";
         $observaciones_solicitud = $notificacion->anotaObservacion($delegado, $HObser, $observaciones_solicitud, FLUJO_SOLICITUD_INVITACION, SOLICITUD_INVITACION_ETAPA_APROBACION);
     } else {
         $observaciones_solicitud = $HObser;
     }
     $invitacionID = $Solicitud_invitacion->Add_invitacion($motivo, $no_invitados, $monto_solicitud, $monto_pesos_solicitud, $divisa_solicitud_final, $cecos_solicitud, $idTramite, $ciudad_solicitud, $observaciones_solicitud, "", $fechainvit, $inv_lugar, $inv_hubo_exedente);
 }
 //Inserción del solicitante
 for ($i = 1; $i <= $_POST['rowCount']; $i++) {
     $sNombre = $_POST['nombre' . $i];
     $sPuesto = $_POST['puesto' . $i];
     $sTipo = $_POST['tipo' . $i];
     $sEmpresa = $_POST['empresa' . $i];
 $numempleado = $_POST['ne'];
 $idempresa = $_POST["empresa"];
 $Empleado = new Usuario();
 $Empleado->Load_Usuario_By_No_Empleado($numempleado);
 $CreditCard = "";
 $motivoComprobacion = $_POST["motive"];
 $cMotive = "Comprobacion de Caja Chica";
 // Datos del aprobador
 $Usu = new Usuario();
 $fecha = date('Y-m-d');
 $ruta_autorizadores = $Usu->buscaAprobadorParaComprobacion($cat_cecos_cargado, $tTotal, 0, $fecha);
 $aprobador = $ruta_autorizadores[0];
 // Registra nuevo tramite
 $tramite = new Tramite();
 $tramite->insertar("BEGIN WORK");
 $idTramite = $tramite->Crea_Tramite($iduser, $idempresa, COMPROBACION_CAJA_CHICA_ETAPA_COMPROBACION_CAJA_CHICA, FLUJO_REEMBOLSO_CAJA_CHICA, $cMotive);
 // OJO: El tipo de comprobacion 3 es de caja chica
 $idSolicitud = -1;
 $refacturar = "";
 $idComprobacion = Add_new($idTramite, $idSolicitud, $tAmnt, $tIVA, $tTotal, $montoexc, $motivoComprobacion, $cat_cecos_cargado, 3, $CreditCard, $refacturar, $sObser, 0);
 $status_c = 1;
 for ($i = 1; $i <= $_POST['rowCount']; $i++) {
     //Partidas
     $cNo = $_POST['row' . $i];
     $cDate = $_POST['fecha' . $i];
     $cCargo = "";
     $cConc = $_POST['concepto' . $i];
     $cRef = $_POST['referencia' . $i];
     $cProv = $_POST['proveedor' . $i];
     $cP_RFC = $_POST['rfc' . $i];
     $cAmt = $_POST['mnt' . $i];
 $FechaMySQL = fecha_to_mysql($sFecha);
 //objeto creado (services/C_SV.php)
 $CViaje = new C_SV();
 //Datos del empleado
 $iduser = $_POST["idusuario"];
 $numempleado = $_POST["empleado"];
 $idempresa = $_POST["empresa"];
 $cnn = new conexion();
 // Buscamos quien debe aprobar esta solicitud
 $Us = new Usuario();
 $Us->Load_Usuario_By_No_Empleado($numempleado);
 $aprobador = $Us->buscaAgenciaViajesParaSolicitud($cat_cecos_cargado);
 // Registra nuevo tramite
 $tramite = new Tramite();
 $tramite->insertar("BEGIN WORK");
 $idTramite = $tramite->Crea_Tramite($iduser, $idempresa, ANTICIPO_AMEX_ETAPA_SOLICITUD, FLUJO_AMEX, $motivo);
 // Registramos la solicitud Amex
 $amexID = $CViaje->Add_amex($TotalDias, $sObser, $motivo, $cat_cecos_cargado, $cat_cecos_beneficiado, $FechaMySQL, $idTramite);
 if ($amexID <= 0) {
     $CViaje->insertar("ROLL BACK");
     echo "Error al Registrar el Viaje";
     exit;
 }
 // Registra los conceptos
 if (isset($_POST['rowCountConceptos']) && $_POST['rowCountConceptos'] != "") {
     for ($i = 1; $i <= $_POST['rowCountConceptos']; $i++) {
         $concepto = $_POST['Concepto' . $i];
         $CViaje->add_conceptos_detalle($concepto, $idTramite, 0);
     }
 }
 //  Registra las partidas del itinerario
 $tipoUsuario = $_POST['tipo_tarjeta_usuario'];
 $iduser = $_POST["idusuario"];
 $sMotivo = $_POST['motive'];
 $tipoPasaje = $_POST['select_tipo_viaje_pasaje'];
 $sObser = $_POST['observ'];
 /*$query = "SELECT cc_id FROM cecos JOIN empleado WHERE cc_id = idcentrocosto AND idfwk_usuario = '".$iduser."'";			
 		$rst2 = $cnn->consultar($query);
 		$filaa = @mysql_fetch_assoc($rst2);			
 		$sCat_cecos_original = $filaa['cc_id'];			*/
 $sCat_cecos = $_POST['cat_cecos_cargado_id'];
 //$sCat_cecos_cambiado = ($sCat_cecos_original!=$sCat_cecos) ? 1 : 0;*/
 $Us = new Usuario();
 $ruta_autorizadores = $Us->buscaAprobadorParaSolicitud($iduser, FLUJO_SOLICITUD);
 $string_ruta_autorizacion = "0" . "|" . $ruta_autorizadores[0] . "|" . $ruta_autorizadores[1];
 $tramite = new Tramite();
 $idTramite = $tramite->Crea_Tramite($iduser, SOLICITUD_ETAPA_SOLICITUD, FLUJO_SOLICITUD, $sMotivo);
 if ($sObser != "") {
     $query = "INSERT INTO observaciones(ob_id,ob_texto,ob_fecha,ob_tramite,ob_usuario)\n\t\t\t\t\t\t\tVALUES(default,'{$sObser}',now(),'{$idTramite}','{$iduser}')";
     $ob_id = $cnn->insertar($query);
 } else {
     $ob_id = 0;
 }
 switch ($tipoPasaje) {
     case 1:
         $tipoPasaje = "Solo Ida";
         break;
     case 2:
         $tipoPasaje = "Ida y Vuelta";
         break;
     case 3:
         $tipoPasaje = "Multidestino";
         $HObser = $_POST['historial_observaciones'];
     } else {
         $HObser = "";
     }
     // Agregamos el nombre del usuario al campo de Observaciones
     if ($observ != "") {
         $notificacion = new Notificacion();
         $observ = $notificacion->anotaObservacion($delegado, $HObser, $observ, FLUJO_COMPROBACION_INVITACION, COMPROBACION_INVITACION_ETAPA_EN_APROBACION_POR_DIRECTOR);
     } else {
         $observ = $HObser;
     }
     $idComprobacion = $comprobacion->edita_Comprobacion_Invitacion2($t_Total_Comprobacion, $Sol_Invitacion, $co_subtotal, $co_iva, $centroCosto, $cMotive, $cTipo_id, $observ, "", $tot_invitados, $invitacionLug, $fecha_inv, $excedente, $co_ciudad, $co_amex_comprobado, $co_efectivo_comprobado, $idTramite);
     limpiar_detalles($idComprobacion);
     limpiar_invitados($idTramite);
 } else {
     $idTramite = $tramite->Crea_Tramite($iduser, $idempresa, COMPROBACION_INVITACION_ETAPA_EN_APROBACION_POR_DIRECTOR, FLUJO_COMPROBACION_INVITACION, $cMotive, $delegado);
     $idComprobacion = $comprobacion->Crea_Comprobacion_Invitacion2($t_Total_Comprobacion, $Sol_Invitacion, $co_subtotal, $co_iva, $idTramite, $centroCosto, $cMotive, $cTipo_id, $observ, "", $tot_invitados, $invitacionLug, $fecha_inv, $excedente, $co_ciudad, $co_amex_comprobado, $co_efectivo_comprobado);
 }
 if (isset($_POST['tipo']) && $_POST['tipo'] == "amex") {
     $t_Anticipo_Amex = $_POST['t_amex_comprobado'];
     $t_Total_Comprobacion = $_POST['t_comprobado'];
     if ($_POST['select_tarjeta_cargo'] != 0) {
         $cCargo_asociado_amex = $_POST['select_tarjeta_cargo'];
         $cnn3 = new conexion();
         $id_cargo_amex_anterior = $_POST['select_tarjeta_cargo'];
         $query3 = sprintf("UPDATE amex SET estatus = '1', comprobacion_id = '%s' WHERE idamex = '%s'", $idComprobacion, $cCargo_asociado_amex);
         //error_log($query3);
         $rst3 = $cnn3->ejecutar($query3);
     } else {
         $cCargo_asociado_amex = 0;
     }
 $tramite->ejecutar("BEGIN");
 // Verificar las observaciones anotadas anteriormente
 if ($_POST['tramiteId'] != 0) {
     $solicitud->cargaGastoporTramite($_POST['tramiteId']);
     $historialObservaciones = $solicitud->Get_dato('sg_observaciones');
 }
 // Verificamos si contamos con un ID de Tramite entonces solo realizaremos actualizaciones, de lo contrario realizaremos las inserciones de los datos.
 if ($_POST['tramiteId'] != 0) {
     $idTramite = $_POST['tramiteId'];
     // Actualizar los datos del tramite
     $tramite->actualizarInfoTramite($idTramite, $motivo, $_SESSION['idrepresentante']);
     // Actualizamos la Solicitud de Gastos
     $solicitud->Edita_Gasto($motivo, $montoSolicitado, $totalPesos, $divisa, $ceco, $ciudad, $historialObservaciones, $observaciones, $fechaGasto, $lugarGasto, $req_anticipo, $concepto, $idTramite);
 } else {
     // Creamos el tramite
     $idTramite = $tramite->Crea_Tramite($iniciador, $empresa, SOLICITUD_GASTOS_ETAPA_SIN_ENVIAR, FLUJO_SOLICITUD_GASTOS, $motivo, $_SESSION['idrepresentante']);
     if ($idTramite == 0 || $idTramite == null) {
         header("Location: ./index.php?docs=docs&type=2&errsave");
     }
     // Creamos la Solicitud de Gastos
     $solicitudGastos = $solicitud->Crea_Gasto($motivo, $montoSolicitado, $totalPesos, $divisa, $ceco, $idTramite, $ciudad, '', $observaciones, $fechaGasto, $lugarGasto, $req_anticipo, $concepto);
     if ($solicitudGastos == 0 || $solicitudGastos == null) {
         header("Location: ./index.php?docs=docs&type=2&errsave");
     }
 }
 $tramite->Load_Tramite($idTramite);
 // Boraremos los invitados previamente cargados para evitar la inconsistencia de los datos
 $solicitud->cargaGastoporTramite($idTramite);
 $idSolicitud = $solicitud->Get_dato('sg_id');
 $comensales->Eliminar_Comensal_de_Solicitud($idSolicitud);
 // Inserción de los invitados
     //query que eliminara la solicitud de viaje con la que este ligado a el tramite seleccionado
     $query_elimina_sv = "DELETE FROM solicitud_viaje WHERE sv_id=" . $id_sv . "";
     $cnn->ejecutar($query_elimina_sv);
     $sql = "DELETE FROM excepciones \n\t\t\t\t\tWHERE ex_solicitud = " . $id_sv;
     $cnn->ejecutar($sql);
     //query que eliminara los conceptos de el tramite seleccionado
     $query_elimina_obsv = "DELETE FROM sv_conceptos_detalle WHERE svc_detalle_tramite=" . $tramiteID . "";
     $cnn->ejecutar($query_elimina_obsv);
     //*****************************************************************************
     //Actualizar tramite
     $idTramite = $tramiteID;
     $tramite->Modifica_Etapa($idTramite, SOLICITUD_ETAPA_SIN_ENVIAR, FLUJO_SOLICITUD, "106", "");
     $query = sprintf("update tramites set t_fecha_ultima_modificacion = now() where t_id ='%s'", $tramiteID);
     $cnn->ejecutar($query);
 } else {
     $idTramite = $tramite->Crea_Tramite($iduser, $idempresa, SOLICITUD_ETAPA_SIN_ENVIAR, FLUJO_SOLICITUD, $sMotivo, $delegado);
     if ($idTramite <= 0) {
         $CViaje->insertar("ROLL BACK");
         header("Location: ./index.php?errsave");
     }
 }
 if (isset($_POST['observ']) && $_POST['observ'] != "") {
     $sObservaciones = $_POST['observ'];
 } else {
     $sObservaciones = "";
 }
 if (isset($_POST['Accion']) == 'true') {
     $check = 1;
 } else {
     $check = 0;
 }