Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Input; use PhpOffice\PhpSpreadsheet\Shared\Date; use Illuminate\Support\Facades\Mail; use Carbon\Carbon; use Excel; use Auth; use DB; use App\Models\Fondo_dependencia as FD; use Illuminate\Support\Facades\Storage; use Exception; use Illuminate\Support\Str; use ZipArchive; use File; use App\Imports\ExcelImport; use App\Imports\AnexoAdq; use App\Imports\AnexoCap4k; use App\Imports\AnexoObras; use App\Libraries\libUtilities; use App\Libraries\libUtilities as LU; use App\Models\Claves; use App\Models\Historial_cambios_fondo as hcf; use App\Models\Dependencias; use App\Models\Contratos_modo_basico as cmb; use App\Models\Anexo_gastos_diversos_operacion as AGDO; use App\Models\Fondo_dependencia; use App\Models\TipoClave; use App\Models\Estados_cuentas_mes as DECM; use App\Models\TipoUsuario; use Illuminate\Mail\Message; use Illuminate\Support\Facades\Redirect; use App\Models\Usuarios as U; use App\Models\Num_auditorias_de_usuario as NAU; use App\Models\Rfc_empresas_sondeo as RES; use App\Models\Rfc_empresas_concursantes as REC; use App\Models\Num_factura as NF; use App\Models\Polizas as P; use App\Models\Clave_ff_finanzas as CFFFINANZAS; use App\Models\Catalogo_numeros_auditoria as CNA; use App\Models\Documentos_fondo as DOCF; use App\Models\Constancias_enlaces as CEN; use App\Models\Constancias_ejecutores as CEJE; use App\Mail\MailContratosModoBasico_E as ME; use PhpOffice\PhpSpreadsheet\Style\Conditional; use App\Models\Cfdi_xml_comprobante; use App\Models\Cfdi_xml_emisor_cfdi; use App\Models\Cfdi_xml_receptor_cfdi; use App\Models\Cfdi_xml_concepto_cfdi; use App\Models\Cfdi_xml_nomina; use App\Models\Cfdi_xml_emisor_nomina; use App\Models\Cfdi_xml_receptor_nomina; use App\Models\Cfdi_xml_percepciones; use App\Models\Cfdi_xml_percepciones_nom; use App\Models\Cfdi_xml_deducciones; use App\Models\Cfdi_xml_deducciones_nom; use App\Models\Cfdi_xml_nom_otro_pago; use App\Models\Cfdi_xml_timbre_fiscal_digital; use Imtigger\LaravelJobStatus\JobStatus; use SimpleXMLIterator; class ltController extends Controller { public $lista_contratos_modo_basico; public $lista_rfc_empresas_sondeo_y_concursantes; public $lista_num_factura; public function datosClavesFF(Request $r, $year) { $id_clave_ff = array(); $monto_utilizado = 0; $monto_anexo_gd = 0; $monto_cap1k = 0; $monto_cap4k = 0; $total_reintegro_tesofe = 0; $q = Claves::Where("id_dependencia", Auth::user()->id_dependencia)->where("year", $year); $x = Claves::Where("id_dependencia", Auth::user()->id_dependencia)->where("year", $year); $data["resumen"]["monto_recibido"] = $q->count() == 0 ? 0.0 : $x->sum("monto_recibido"); $fondos = $q->get(); $listaGD = array(); foreach ($fondos as $i) { $id_clave_ff[] = $i->id_ff; $totalAnexoGD = self::totalAnexoGD($i); $listaGD[$i->id_ff] = $totalAnexoGD; $monto_anexo_gd += (double) $totalAnexoGD->total; $monto_cap1k += (double) $i->cap1k; $monto_cap4k += (double) $i->cap4k; $total_reintegro_tesofe += (double) $i->reintegro_tesofe; } foreach ($id_clave_ff as $i) { $monto_utilizado += cmb::where("id_ff", $i)->sum("montoPagadoConPart"); } $data["gastos_diversos"] = $listaGD; $data["total_reintegro_tesofe"] = $total_reintegro_tesofe; $data["resumen"]["monto_utilizado"] = $monto_utilizado + $monto_anexo_gd + $monto_cap1k + $monto_cap4k + $total_reintegro_tesofe; $data["resumen"]["monto_restante"] = $data["resumen"]["monto_recibido"] - $data["resumen"]["monto_utilizado"]; $claves = DB::table("clave_ff as ff")->join("catalogo_numeros_auditoria as cna", "ff.id_nauditoria", "=", "cna.id")->join("catalogo_auditorias as ca", "cna.id_auditoria", "=", "ca.id")->join("catalogo_claves_presupuestales as tcff", "ff.clave_ff", "=", "tcff.id")->join("dependencias as d", "ff.id_dependencia", "=", "d.id_dependencia")->join("estados as e", "e.id", "=", "d.id_estado")->join("municipios as m", "m.id", "=", "d.id_municipio")->leftJoin("anexo_cap_4k as ac4k", "ac4k.id_clave_ff", "=", "ff.id_ff")->where("ff.year", $year); switch (Auth::user()->type) { case 1: case 5: $data["cff"] = $claves->select("ff.id_ff as id_pp", "ff.clave_ff as pp", "tcff.nombre_clave as n_pp", "ff.monto_recibido as monto_recibido", DB::Raw("YEAR(ff.fecha) as fecha"), "ff.estatus as estatus", "ff.id_dependencia as id_d", "d.sDependencia as dependencia", "d.sSiglas as siglas", "ff.obras as obras", "ff.cap1k as capitulomil", "ff.cap4k as capitulo4mil", "ff.monto_nomina as monto_nomina", "ff.reintegro_tesofe as reintegro_tesofe", "cna.id as id_cna", "cna.numeroAuditoria as auditoria", "ca.auditoria as uaa", "ff.estatus_archivo", "ff.estatus_anexo_adq", "ff.estatus_anexo_obras", "ff.estatus_anexo_egresos", "ff.estatus_anexo_nomina", "ff.estatus_anexo_c4k", "ff.url_anexo_gd", "ac4k.total_pagado_fondo as ac4k_total_pagado_fondo", "ac4k.url_archivo as ac4k_url_archivo", "ac4k.id as ac4k_id", "d.id_estado", "d.id_municipio", "e.estado as sEstado", "m.municipio as sMunicipio", "cna.numeroAuditoria as sNumAuditoria")->orderBy("fecha", "DESC")->get(); break; case 2: case 4: case 11: $data["cff"] = $claves->where("ff.id_dependencia", Auth::user()->id_dependencia)->select("ff.id_ff as id_pp", "ff.clave_ff as pp", "tcff.nombre_clave as n_pp", "ff.monto_recibido as monto_recibido", "ff.year as fecha", "ff.estatus as estatus", "ff.id_dependencia as id_d", "d.sDependencia as dependencia", "d.sSiglas as siglas", "ff.obras as obras", "ff.ramo as ramo", "ff.cap1k as capitulomil", "ff.cap4k as capitulo4mil", "ff.monto_nomina as monto_nomina", "ff.reintegro_tesofe as reintegro_tesofe", "cna.id as id_cna", "cna.numeroAuditoria as auditoria", "ca.auditoria as uaa", "ff.estatus_archivo", "ff.estatus_anexo_adq", "ff.estatus_anexo_obras", "ff.estatus_anexo_egresos", "ff.estatus_anexo_nomina", "ff.estatus_anexo_c4k", "ff.url_anexo_gd", "ac4k.total_pagado_fondo as ac4k_total_pagado_fondo", "ac4k.url_archivo as ac4k_url_archivo", "ac4k.id as ac4k_id", "d.id_estado", "d.id_municipio", "e.estado as sEstado", "m.municipio as sMunicipio", "cna.numeroAuditoria as sNumAuditoria")->orderBy("fecha", "DESC")->get(); $data["claveAnual"] = DB::table("clave_ff as ff")->whereRaw("YEAR(fecha)=" . date("Y"))->where("ff.id_dependencia", Auth::user()->id_dependencia)->count(); break; case 3: break; } if (@config("tema.ms.api_efirma")) { $acusesBasico = DB::table("constancias_ejecutores as constancia")->where("constancia.tipo_constancia", 1)->where("constancia.es_vigente", 1)->where("constancia.modulo", null)->select("constancia.id_clave_ff", "constancia.url_constancia")->get(); $data["url_c_anexos_env"] = null; $data["url_constanciasE"] = null; foreach ($acusesBasico as $acuse) { $data["url_c_anexos_env"][$acuse->id_clave_ff] = $acuse->url_constancia; } $constancias = CEN::where(array("tipo_constancia" => 1))->where("es_vigente", 1)->select("id_num_auditoria", "id_ccp", "url_constancia")->get(); foreach ($constancias as $constancia) { $data["url_constanciasE"][$constancia->id_num_auditoria][$constancia->id_ccp] = $constancia->url_constancia; } } $data["const"] = @config("tema.ms.api_efirma"); return response()->json($data, 200); } public function indexDocumentosInd($idFondo) { $datos["errores"] = array(); set_time_limit(0); $app = env("APP_NC"); try { $query = DB::table("clave_ff as cff")->join("catalogo_claves_presupuestales as ccp", "ccp.id", "=", "cff.clave_ff")->join("fondo_dependencia as fd", "fd.id", "=", "cff.id_fondo_dependencia")->leftjoin("catalogo_numeros_auditoria as cna", "cna.id", "=", "cff.id_nauditoria")->leftJoin("estados as es", "es.id", "=", "cff.id_estado")->leftJoin("municipios as mun", "mun.id", "=", "cff.id_municipio")->leftJoin("dependencias as dep", "dep.id_dependencia", "=", "cff.id_dependencia")->leftJoin("documentos_fondo as docf", "docf.id_clave_ff", "=", "cff.id_ff"); if (@config("tema.ms.api_efirma")) { $query->leftJoin("constancias_ejecutores as ceje", function ($join) { $join->on("ceje.id_clave_ff", "=", "cff.id_ff")->where("ceje.tipo_constancia", "=", 1)->where("ceje.es_vigente", 1); })->leftJoin("constancias_enlaces as cen", function ($join) { $join->on("cen.id_ccp", "=", "cff.clave_ff")->on("cen.id_num_auditoria", "=", "cff.id_nauditoria")->where("cen.tipo_constancia", "=", 1)->where("cen.es_vigente", 1); }); } switch (Auth::user()->type) { case "1": break; case "3": case "7": $query->where(array("es.id" => Auth::user()->id_estado, "mun.id" => Auth::user()->id_municipio)); break; case "4": case "": if ($idFondo != 0) { $query->where("cff.id_ff", $idFondo); } $query->where("cff.id_dependencia", Auth::user()->id_dependencia); break; case "5": case "6": $lNAU = Auth::user()->u_nau; $aCNA = array(); foreach ($lNAU as $knau => $nau) { $aCNA[] = $nau->id_num_auditoria; } $query->whereIn("cff.id_nauditoria", $aCNA); break; default: paraProgramacionPreventiva(); break; } $query->select("docf.id", "docf.actas_cabildo", "docf.contratos_cuentas_bancarias", "docf.edos_cuentas_01", "docf.edos_cuentas_02", "docf.edos_cuentas_", "docf.edos_cuentas_", "docf.edos_cuentas_05", "docf.edos_cuentas_06", "docf.edos_cuentas_07", "docf.edos_cuentas_08", "docf.edos_cuentas_09", "docf.edos_cuentas_10", "docf.edos_cuentas_11", "docf.edos_cuentas_12", "docf.formato_3", "docf.formato_3A", "docf.formato_3B", "docf.formato_4", "ccp.ramo as ramo", "ccp.nombre_clave as fondo", "cff.year as year", "cna.numeroAuditoria as nAuditoria", "cna.fecha_cierre", "dep.sDependencia", "es.estado", "mun.municipio", "docf.updated_at", "cff.id_ff", "cff.clave_ff", "cff.id_nauditoria"); if (@config("tema.ms.api_efirma")) { $query->addSelect("cen.url_constancia as url_constancia", "ceje.url_constancia as url_acuse"); } $datos["docsFondo"] = $query->get(); $hoy = Carbon::now()->startOfDay(); $datos["fechaHoy"] = $hoy->format("Y-m-d H:i:s"); $datos["listaEstatus"] = array("Sin cargar", "Cargado sin enviar a revisión", "Enviado " . LU::t_tr("a_d", "enlace", "s"), "Enviado " . LU::t_tr("a_d", "asf", "S"), "Regresado " . LU::t_tr("a_d", "ejecutor", "s"), "No aplica"); } catch (\Throwable $th) { $datos["errores"][] = "Error al obtener datos de la tabla, comuníquese con soporte técnico. " . $th->getMessage(); } return view("asf_layout.indexDocumentosInd", compact("datos")); } public function downloadDocumentsAsZip(Request $r) { $idff = $r->input("idff"); $idd = $r->input("idd"); $docs = $r->input("docs"); $fondo = $r->input("fondo"); $url = ''; try { $documento = DOCF::findOrFail($idd); $zipFileName = "documentos_" . $fondo . "_" . date("Y-m-d") . ".zip"; $zipFilePath = public_path($zipFileName); $zip = new ZipArchive(); if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) { foreach ($docs as $doc) { switch ($doc) { case "dAC": $url = $documento->url_actas_cabildo; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, basename($filePath)); } else { } break; case "dCCB": $url = $documento->url_contratos_cuentas_bancarias; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, basename($filePath)); } else { } break; case "dF3": $url = $documento->url_formato_3; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, basename($filePath)); } else { } break; case "dF3A": $url = $documento->url_formato_3A; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, basename($filePath)); } else { } break; case "dF3B": $url = $documento->url_formato_3B; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, basename($filePath)); } else { } break; case "dF4": $url = $documento->url_formato_4; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, basename($filePath)); } else { } break; case "dEC": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "enero")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "enero/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "enero/" . basename($filePath)); } else { } } } break; case "dEC": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "febrero")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "febrero/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "febrero/" . basename($filePath)); } else { } } } break; case "dEC03": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "marzo")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "marzo/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "marzo/" . basename($filePath)); } else { } } } break; case "dEC": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "abril")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "abril/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "abril/" . basename($filePath)); } else { } } } break; case "dEC05": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "mayo")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "mayo/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "mayo/" . basename($filePath)); } else { } } } break; case "dEC06": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "junio")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "junio/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "junio/" . basename($filePath)); } else { } } } break; case "dEC07": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "julio")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "julio/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "julio/" . basename($filePath)); } else { } } } break; case "dEC08": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "agosto")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "agosto/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "agosto/" . basename($filePath)); } else { } } } break; case "dEC09": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "septiembre")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "septiembre/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "septiembre/" . basename($filePath)); } else { } } } break; case "dEC10": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "octubre")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "octubre/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "octubre/" . basename($filePath)); } else { } } } break; case "dEC11": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "noviembre")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "noviembre/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "noviembre/" . basename($filePath)); } else { } } } break; case "dEC": $estadosCuentaM = DECM::where("id_documentos_fondo", $idd)->where("mes", "diciembre")->get(); if ($estadosCuentaM->isEmpty()) { } else { foreach ($estadosCuentaM as $ecm) { if (!is_null($ecm->url_estados_cuentas_pdf)) { $url = $ecm->url_estados_cuentas_pdf; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "diciembre/" . basename($filePath)); } else { } } $url = $ecm->url_estados_cuentas_xml; $filePath = str_replace("\", "/", public_path($url)); if (file_exists($filePath)) { $zip->addFile($filePath, "diciembre/" . basename($filePath)); } else { } } } break; default: break; } } $zip->close(); } else { return response()->json(array("error" => "No se pudo crear el archivo ZIP"), 500); } return response()->download($zipFilePath)->deleteFileAfterSend(true); } catch (\Exception $e) { return response()->json(array("error" => "Ocurrió un error inesperado: " . $e->getMessage()), 500); } } public function indexDocumentos($idFondo = 0) { $principal = false; $datos["cerradoPorFirma"] = false; $datos["url_acuses"] = null; $datos["url_constancias"] = null; $clave_ff = DB::table("clave_ff as ff")->where("ff.id_ff", $idFondo)->first(); if (Auth::user()->type == 1) { $principal = true; } $tieneMun = @config("tiene.ms.tiene_estado"); if ($idFondo != 0 && $clave_ff->id_dependencia != Auth::user()->id_dependencia) { return \Redirect::to("/api/conexion/vistaRdfs")->with("verificacion", array("No tiene autorización para entrar a esta sección.")); } return view("asf_layout.indexDocumentos", compact(array("idFondo", "principal", "tieneMun"))); } public function getDataDocumentos($idFondo = 0, $idclaveFF = 0) { $datos["errores"] = array(); set_time_limit(0); try { $query = DB::table("clave_ff as cff")->join("catalogo_claves_presupuestales as ccp", "ccp.id", "=", "cff.clave_ff")->join("fondo_dependencia as fd", "fd.id", "=", "cff.id_fondo_dependencia")->leftjoin("catalogo_numeros_auditoria as cna", "cna.id", "=", "cff.id_nauditoria")->leftJoin("estados as es", "es.id", "=", "cff.id_estado")->leftJoin("municipios as mun", "mun.id", "=", "cff.id_municipio")->leftJoin("dependencias as dep", "dep.id_dependencia", "=", "cff.id_dependencia")->leftJoin("documentos_fondo as docf", "docf.id_clave_ff", "=", "cff.id_ff"); if (@config("tema.ms.api_efirma")) { $query->leftJoin("constancias_ejecutores as ceje", function ($join) { $join->on("ceje.id_clave_ff", "=", "cff.id_ff")->where("ceje.tipo_constancia", "=", 1)->where("ceje.es_vigente", 1); })->leftJoin("constancias_enlaces as cen", function ($join) { $join->on("cen.id_ccp", "=", "cff.clave_ff")->on("cen.id_num_auditoria", "=", "cff.id_nauditoria")->where("cen.tipo_constancia", "=", 1)->where("cen.es_vigente", 1); }); } switch (Auth::user()->type) { case "1": break; case "3": case "7": $query->where(array("es.id" => Auth::user()->id_estado, "mun.id" => Auth::user()->id_municipio)); break; case "4": case "": if ($idFondo != 0) { $query->where("cff.id_ff", $idFondo); } $query->where("cff.id_dependencia", Auth::user()->id_dependencia); break; case "5": case "6": $lNAU = Auth::user()->u_nau; $aCNA = array(); foreach ($lNAU as $knau => $nau) { $aCNA[] = $nau->id_num_auditoria; } $query->whereIn("cff.id_nauditoria", $aCNA); break; default: paraProgramacionPreventiva(); break; } if ($idclaveFF != 0) { $query->where("cff.id_ff", $idclaveFF); } $query->select("docf.id as idDocFondo", "docf.actas_cabildo", "docf.contratos_cuentas_bancarias", "docf.edos_cuentas_01", "docf.edos_cuentas_02", "docf.edos_cuentas_03", "docf.edos_cuentas_", "docf.edos_cuentas_05", "docf.edos_cuentas_", "docf.edos_cuentas_07", "docf.edos_cuentas_08", "docf.edos_cuentas_09", "docf.edos_cuentas_10", "docf.edos_cuentas_11", "docf.edos_cuentas_12", "docf.formato_3", "docf.formato_3A", "docf.formato_3B", "docf.formato_4", "ccp.ramo as ramo", "ccp.nombre_clave as fondo", "cff.year as year", "cna.numeroAuditoria as nAuditoria", "cna.fecha_cierre", "dep.sDependencia", "es.estado", "mun.municipio", "docf.updated_at", "cff.id_ff", "cff.clave_ff", "cff.id_nauditoria", "docf.url_actas_cabildo", "docf.url_contratos_cuentas_bancarias", "docf.url_formato_3", "docf.url_formato_3A", "docf.url_formato_3B", "docf.url_formato_4"); if (@config("tema.ms.api_efirma")) { $query->addSelect("cen.url_constancia as url_constancia", "ceje.url_constancia as url_acuse"); } $datos["docsFondo"] = $query->get(); $hoy = Carbon::now()->startOfDay(); $datos["fechaHoy"] = $hoy->format("Y-m-d H:i:s"); if (Auth::user()->type == 1) { $datos["tipoUser"] = "PR"; } elseif (Auth::user()->type == 3) { $datos["tipoUser"] = "EN"; } elseif (Auth::user()->type == 5 && @config("tema.ms.revision_directo_auditores")) { $datos["tipoUser"] = "AU_RD"; } elseif (Auth::user()->type == 5) { $datos["tipoUser"] = "AU"; } $datos["listaEstatus"] = array("Sin cargar", "Cargado sin enviar a revisión", "Enviado " . LU::t_tr("a_d", "enlace", "s"), "Enviado " . LU::t_tr("a_d", "asf", "S"), "Regresado " . LU::t_tr("a_d", "ejecutor", "s"), "No aplica"); } catch (\Throwable $th) { $datos["errores"][] = "Error al obtener datos de la tabla, comuníquese con soporte técnico. " . $th->getMessage(); } return response()->json($datos); } public function cargarDocumentos(Request $r) { $data["errores"] = array(); set_time_limit(0); DB::Begintransaction(); try { $url_doc_fondo = ''; $url_doc_fondo_borrar = ''; $extension = ''; $nombreArchivo = ''; $docsFondo = DOCF::findOrFail($r->idD); $contieneArchivo = false; switch ($r->tipoDocActual) { case "dAC": $extension = ".pdf"; $nombreArchivo = LU::t_tr("v", "actas_cabildo", "s") . "_"; $docBD = 1; break; case "dCCB": $extension = ".pdf"; $nombreArchivo = "Contratos_cuentas_"; $docBD = 2; break; case "dF3": $extension = ".xlsx"; $nombreArchivo = "Formato_3_"; $docBD = 4; break; case "dF3A": $extension = ".xlsx"; $nombreArchivo = "Formato_3A_"; $docBD = 5; break; case "dF3B": $extension = ".xlsx"; $nombreArchivo = "Formato_3B_"; $docBD = 6; break; case "dF4": $extension = ".xlsx"; $nombreArchivo = "Formato_4_"; $docBD = 7; break; } if ($r->has("url_fondo") && $r->url_fondo != null) { try { $dataF = explode(",", $r->url_fondo); $b64Data = base64_decode($dataF[1]); $name = $nombreArchivo . $r->idF . "_" . date("Ymd_His") . $extension; $year = DB::table("clave_ff")->where("id_ff", $r->idF)->select("year")->first(); $path = "/uploads/" . $year->year . "/documentosFondo/" . $r->idF . "/"; $url_doc_fondo = $path . $name; $contieneArchivo = true; } catch (\Throwable $th) { $data["errores"][] = "No se encontró el archivo, debe cargarlo."; } } if ($contieneArchivo) { if ($url_doc_fondo) { $dirname = dirname(public_path() . $url_doc_fondo); if (!is_dir($dirname)) { mkdir($dirname, 493, true); } $file = fopen(public_path() . $url_doc_fondo, "wb"); fwrite($file, $b64Data); fclose($file); } if ($url_doc_fondo_borrar != null) { unlink(public_path() . $url_doc_fondo_borrar); } switch ($docBD) { case 1: $url_doc_fondo_borrar = $docsFondo->url_actas_cabildo ? $docsFondo->url_actas_cabildo : null; $docsFondo->url_actas_cabildo = $url_doc_fondo; $docsFondo->hash_actas_cabildo = hash_file("sha256", public_path() . $url_doc_fondo); $docsFondo->actas_cabildo = 1; $docsFondo->save(); break; case 2: $url_doc_fondo_borrar = isset($docsFondo->url_contratos_cuentas_bancarias) ? $docsFondo->url_contratos_cuentas_bancarias : null; $docsFondo->url_contratos_cuentas_bancarias = $url_doc_fondo; $docsFondo->hash_contratos_cuentas_bancarias = hash_file("sha2", public_path() . $url_doc_fondo); $docsFondo->contratos_cuentas_bancarias = 1; $docsFondo->save(); break; case 4: $url_doc_fondo_borrar = isset($docsFondo->url_formato_3) ? $docsFondo->url_formato_3 : null; $docsFondo->url_formato_3 = $url_doc_fondo; $docsFondo->hash_formato_3 = hash_file("sha6", public_path() . $url_doc_fondo); $docsFondo->formato_3 = 1; $docsFondo->save(); break; case 5: $url_doc_fondo_borrar = isset($docsFondo->url_formato_3A) ? $docsFondo->url_formato_3A : null; $docsFondo->url_formato_3A = $url_doc_fondo; $docsFondo->hash_formato_3A = hash_file("sha2", public_path() . $url_doc_fondo); $docsFondo->formato_3A = 1; $docsFondo->save(); break; case 6: $url_doc_fondo_borrar = isset($docsFondo->url_formato_3B) ? $docsFondo->url_formato_3B : null; $docsFondo->url_formato_3B = $url_doc_fondo; $docsFondo->hash_formato_3B = hash_file("sha256", public_path() . $url_doc_fondo); $docsFondo->formato_3B = 1; $docsFondo->save(); break; case 7: $url_doc_fondo_borrar = isset($docsFondo->url_formato_4) ? $docsFondo->url_formato_4 : null; $docsFondo->url_formato_4 = $url_doc_fondo; $docsFondo->hash_formato_4 = hash_file("sha2", public_path() . $url_doc_fondo); $docsFondo->formato_4 = 1; $docsFondo->save(); break; } } else { $data["errores"][] = "No se encontró el archivo, debe cargarlo."; } } catch (\Throwable $th) { $data["errores"][] = "No pudo guardarse el archivo, comuníquese con soporte técnico. " . $th->getLine() . ", " . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); } else { DB::commit(); } return response()->json($data, 200); } public function cargarDocumentosMes(Request $r) { $analizarXml = false; $data["errores"] = array(); set_time_limit(0); DB::Begintransaction(); try { $url_doc_fondo = null; $url_doc_fondo_xml = null; $hash_doc_fondo = null; $hash_doc_fondo_xml = null; $docsFondo = DOCF::findOrFail($r->idD); $contieneArchivo = false; $contieneArchivoXML = false; if ($r->has("url_fondo") && $r->url_fondo != null) { try { $dataF = explode(",", $r->url_fondo); $b64Data = base64_decode($dataF[1]); $name = "Estados_cuentas_" . $r->mes . "_" . $r->idF . "_" . date("Ymd_His") . ".pdf"; $year = DB::table("clave_ff")->where("id_ff", $r->idF)->select("year")->first(); $path = "/uploads/" . $year->year . "/documentosFondo/" . $r->idF . "/"; $url_doc_fondo = $path . $name; $contieneArchivo = true; } catch (\Throwable $th) { $data["errores"][] = "No se encontró el archivo PDF, debe cargarlo."; } } if ($r->has("url_fondo_cfdi")) { try { $datax = explode(",", $r->url_fondo_cfdi); $b64DataX = base64_decode($datax[1]); $nameD = "Estados_cuentas_" . $r->mes . "_" . $r->idF . "_" . date("Ymd_His") . ".xml"; $year = DB::table("clave_ff")->where("id_ff", $r->idF)->select("year")->first(); $pathXML = "/uploads/" . $year->year . "/documentosFondo/" . $r->idF . "/"; $url_doc_fondo_xml = $pathXML . $nameD; $contieneArchivoXML = true; } catch (\Throwable $th) { $data["errores"][] = "No se encontró el archivo XML, debe cargarlo. " . $th->getMessage(); } } $estados_cuentas_mes = new DECM(); $estados_cuentas_mes->id_documentos_fondo = $docsFondo->id; $estados_cuentas_mes->mes = $r->mes; $estados_cuentas_mes->url_estados_cuentas_pdf = $url_doc_fondo; $estados_cuentas_mes->url_estados_cuentas_xml = $url_doc_fondo_xml; switch ($r->mes) { case "enero": $docsFondo->edos_cuentas_01 = 1; break; case "febrero": $docsFondo->edos_cuentas_02 = 1; break; case "marzo": $docsFondo->edos_cuentas_03 = 1; break; case "abril": $docsFondo->edos_cuentas_04 = 1; break; case "mayo": $docsFondo->edos_cuentas_05 = 1; break; case "junio": $docsFondo->edos_cuentas_06 = 1; break; case "julio": $docsFondo->edos_cuentas_07 = 1; break; case "agosto": $docsFondo->edos_cuentas_08 = 1; break; case "septiembre": $docsFondo->edos_cuentas_09 = 1; break; case "octubre": $docsFondo->edos_cuentas_10 = 1; break; case "noviembre": $docsFondo->edos_cuentas_11 = 1; break; case "diciembre": $docsFondo->edos_cuentas_12 = 1; break; } if ($contieneArchivo) { if ($url_doc_fondo) { $dirname = dirname(public_path() . $url_doc_fondo); if (!is_dir($dirname)) { mkdir($dirname, 493, true); } $file = fopen(public_path() . $url_doc_fondo, "wb"); fwrite($file, $b64Data); fclose($file); $hash_doc_fondo = hash_file("sha2", public_path() . $url_doc_fondo); $estados_cuentas_mes->hash_estados_cuentas_pdf = $hash_doc_fondo; } } if ($contieneArchivoXML) { if ($url_doc_fondo_xml) { try { $dirname = dirname(public_path() . $url_doc_fondo_xml); if (!is_dir($dirname)) { mkdir($dirname, 493, true); } $fileXML = fopen(public_path() . $url_doc_fondo_xml, "wb"); fwrite($fileXML, $b64DataX); fclose($fileXML); if ($analizarXml) { $cfdi_reader = new SimpleXMLIterator(public_path() . $url_doc_fondo_xml, 0, true); $ns = $cfdi_reader->getDocNamespaces(true); $nsNomina = null; foreach ($ns as $kllave => $valorNs) { if (Str::startsWith($kllave, "nomina")) { $nsNomina = $kllave; } } if (!$nsNomina) { $data["errores"][] = "Error de validacion de xml. No se encuentra el NameSpace "nomina""; } if ($cfdi_reader->getName() == "comprobantes") { foreach ($cfdi_reader->children($ns["cfdi"]) as $comprobante) { self::lecturaComprobanteXML($comprobante, $ns, $nsNomina, $estados_cuentas_mes); } } else { self::lecturaComprobanteXML($cfdi_reader, $ns, $nsNomina, $estados_cuentas_mes); } } } catch (\Throwable $e) { $data["errores"][] = "Error de validacion de xml. Comuníquese con soporte técnico. " . $e->getLine() .  . $e->getMessage(); } } $docsFondo->save(); $hash_doc_fondo_xml = hash_file("sha256", public_path() . $url_doc_fondo_xml); $estados_cuentas_mes->hash_estados_cuentas_xml = $hash_doc_fondo_xml; $estados_cuentas_mes->save(); } else { $data["errores"][] = "No se encontró el archivo XML, debe cargarlo."; } } catch (\Throwable $th) { $data["errores"][] = "No pudo guardarse el archivo, comuníquese con soporte técnico. " . $th->getMessage() . " linea: " . $th->getLine(); } if (sizeof($data["errores"])) { DB::rollback(); try { if ($url_doc_fondo_xml) { unlink(public_path() . $url_doc_fondo_xml); } if ($url_doc_fondo) { unlink(public_path() . $url_doc_fondo); } } catch (\Throwable $th) { } } else { DB::commit(); } return response()->json($data); } public function lecturaComprobanteXML($cfdi_reader, $ns, $nsNomina, $estados_cuentas_mes) { $comp = new Cfdi_xml_comprobante(); $comp->version_comprobante = strval($cfdi_reader->attributes()->Version); $comp->serie = strval($cfdi_reader->attributes()->Serie); $comp->folio = strval($cfdi_reader->attributes()->Folio); $comp->fecha = date("Y-m-d", strtotime(strval($cfdi_reader->attributes()->Fecha))); $comp->no_certificado = strval($cfdi_reader->attributes()->NoCertificado); $comp->subtotal = strval($cfdi_reader->attributes()->SubTotal); $comp->descuento = strval($cfdi_reader->attributes()->Descuento); $comp->moneda = strval($cfdi_reader->attributes()->Moneda); $comp->total = strval($cfdi_reader->attributes()->Total); $comp->tipo_comprobante = strval($cfdi_reader->attributes()->TipoDeComprobante); $comp->exportacion = strval($cfdi_reader->attributes()->Exportacion); $comp->metodo_pago = strval($cfdi_reader->attributes()->MetodoPago); $comp->lugar_expedicion = strval($cfdi_reader->attributes()->LugarExpedicion); $comp->certificado = strval($cfdi_reader->attributes()->Certificado); $comp->sello = strval($cfdi_reader->attributes()->Sello); $estados_cuentas_mes->com()->save($comp); foreach ($cfdi_reader->children($ns["cfdi"]) as $complemento) { switch ($complemento->getName()) { case "Emisor": $em = new Cfdi_xml_emisor_cfdi(); $em->rfc_em = strval($complemento->attributes()->Rfc); $em->nombre_em = strval($complemento->attributes()->Nombre); $em->regimen_fiscal_em = strval($complemento->attributes()->RegimenFiscal); $comp->emi()->save($em); break; case "Receptor": $rec = new Cfdi_xml_receptor_cfdi(); $rec->rfc_rec = strval($complemento->attributes()->Rfc); $rec->nombre_rec = strval($complemento->attributes()->Nombre); $rec->uso_cfdi = strval($complemento->attributes()->UsoCFDI); $comp->rec()->save($rec); break; case "Conceptos": $aConceptos = array(); foreach ($complemento->children($ns["cfdi"]) as $concepto) { $concepto_cfdi = array("clave_prod_serv" => strval($concepto->attributes()->ClaveProdServ), "cantidad" => strval($concepto->attributes()->Cantidad), "clave_unidad" => strval($concepto->attributes()->ClaveUnidad), "descripcion" => strval($concepto->attributes()->Descripcion), "valor_unitario" => strval($concepto->attributes()->ValorUnitario), "importe" => strval($concepto->attributes()->Importe), "descuento" => strval($concepto->attributes()->Descuento)); $conc = new Cfdi_xml_concepto_cfdi($concepto_cfdi); $aConceptos[] = $conc; } $comp->conc()->saveMany($aConceptos); $aConceptos = null; break; case "Complemento": foreach ($complemento->children($ns[$nsNomina]) as $nom) { $nomina_nomina = array("version" => strval($nom->attributes()->Version), "tipo_nomina" => strval($nom->attributes()->TipoNomina), "fecha_pago" => date("Y-m-d", strtotime(strval($nom->attributes()->FechaPago))), "fecha_inicial_pago" => date("Y-m-d", strtotime(strval($nom->attributes()->FechaInicialPago))), "fecha_final_pago" => date("Y-m-d", strtotime(strval($nom->attributes()->FechaFinalPago))), "dias_pagados" => strval($nom->attributes()->NumDiasPagados), "total_percepciones" => strval($nom->attributes()->TotalPercepciones), "total_deducciones" => strval($nom->attributes()->TotalDeducciones), "total_otros_pagos" => strval($nom->attributes()->TotalOtrosPagos)); $nomina = new Cfdi_xml_nomina($nomina_nomina); $comp->nom()->save($nomina); foreach ($nom->children($ns[$nsNomina]) as $nomdet) { switch ($nomdet->getName()) { case "Emisor": $nomina_emisor = new Cfdi_xml_emisor_nomina(); $nomina_emisor->rfc_patron_origen = strval($nomdet->attributes()->RegistroPatronal); $nomina->emi_nom()->save($nomina_emisor); break; case "Receptor": $nomina_receptor = new Cfdi_xml_receptor_nomina(); $nomina_receptor->curp_receptor = strval($nomdet->attributes()->Curp); $nomina_receptor->tipo_contrato = strval($nomdet->attributes()->TipoContrato); $nomina_receptor->tipo_regimen = strval($nomdet->attributes()->TipoRegimen); $nomina_receptor->num_empleado = strval($nomdet->attributes()->NumEmpleado); $nomina_receptor->tipo_jornada = strval($nomdet->attributes()->TipoJornada); $nomina_receptor->periodicidad_pago = strval($nomdet->attributes()->PeriodicidadPago); $nomina_receptor->cuenta_bancaria = strval($nomdet->attributes()->CuentaBancaria); $nomina_receptor->clave_ent_fed = strval($nomdet->attributes()->ClaveEntFed); $nomina_receptor->nss = strval($nomdet->attributes()->NumSeguridadSocial); $nomina_receptor->inicio_rel_laboral = date("Y-m-d", strtotime(strval($nomdet->attributes()->FechaInicioRelLaboral))); $nomina_receptor->antiguedad = strval($nomdet->attributes()->Antigüedad); $nomina_receptor->riesgo_puesto = strval($nomdet->attributes()->RiesgoPuesto); $nomina_receptor->salario_diario_integrado = strval($nomdet->attributes()->SalarioDiarioIntegrado); $nomina->rec_nom()->save($nomina_receptor); break; case "Percepciones": $nomina_percepciones = new Cfdi_xml_percepciones_nom(); $nomina_percepciones->total_sueldos = strval($nomdet->attributes()->TotalSueldos); $nomina_percepciones->total_gravado = strval($nomdet->attributes()->TotalGravado); $nomina_percepciones->total_exento = strval($nomdet->attributes()->TotalExento); $nomina->perc()->save($nomina_percepciones); $aPercepciones = array(); foreach ($nomdet->children($ns[$nsNomina]) as $percepcion) { $nomina_percepcion = array("tipo_p" => strval($percepcion->attributes()->TipoPercepcion), "clave_p" => strval($percepcion->attributes()->Clave), "concepto_p" => strval($percepcion->attributes()->Concepto), "importe_gravado" => strval($percepcion->attributes()->ImporteGravado), "importe_exento" => strval($percepcion->attributes()->ImporteExento)); $oPercepcion = new Cfdi_xml_percepciones($nomina_percepcion); $aPercepciones[] = $oPercepcion; } $nomina_percepciones->perc()->saveMany($aPercepciones); $aPercepciones = null; break; case "Deducciones": $nomina_deducciones = new Cfdi_xml_deducciones_nom(); $nomina_deducciones->total_deducciones = strval($nomdet->attributes()->TotalOtrasDeducciones); $nomina_deducciones->total_imp_retenidos = strval($nomdet->attributes()->TotalImpuestosRetenidos); $nomina->ded()->save($nomina_deducciones); $aDeducciones = array(); foreach ($nomdet->children($ns[$nsNomina]) as $deducion) { $nomina_deduccion = array("tipo_d" => strval($deducion->attributes()->TipoDeduccion), "clave_d" => strval($deducion->attributes()->Clave), "concepto_d" => strval($deducion->attributes()->Concepto), "importe_d" => strval($deducion->attributes()->Importe)); $oDeduccion = new Cfdi_xml_deducciones($nomina_deduccion); $aDeducciones[] = $oDeduccion; } $nomina_deducciones->ded()->saveMany($aDeducciones); $aDeducciones = null; break; case "OtrosPagos": foreach ($nomdet->children($ns[$nsNomina]) as $otropago) { $nomina_otropago = new Cfdi_xml_nom_otro_pago(); $nomina_otropago->tipo_op = strval($otropago->attributes()->TipoOtroPago); $nomina_otropago->clave_op = strval($otropago->attributes()->Clave); $nomina_otropago->concepto_op = strval($otropago->attributes()->Concepto); $nomina_otropago->importe_op = strval($otropago->attributes()->Importe); foreach ($otropago->children($ns[$nsNomina]) as $subsidio) { $nomina_otropago->subsidio_causado = strval($subsidio->attributes()->SubsidioCausado); } $nomina->op()->save($nomina_otropago); } break; } } } foreach ($complemento->children($ns["tfd"]) as $tfd) { $tfd_data = new Cfdi_xml_timbre_fiscal_digital(); $tfd_data->version_tfd = strval($tfd->attributes()->Version); $tfd_data->uuid = strval($tfd->attributes()->UUID); $tfd_data->fecha_timbrado = date("Y-m-d", strtotime(strval($tfd->attributes()->FechaTimbrado))); $tfd_data->rfc_prov_certif = strval($tfd->attributes()->RfcProvCertif); $tfd_data->sello_cfd = strval($tfd->attributes()->SelloCFD); $tfd_data->no_cert = strval($tfd->attributes()->NoCertificadoSAT); $tfd_data->sello_sat = strval($tfd->attributes()->SelloSAT); $comp->tim()->save($tfd_data); } break; case "Addenda": $comp->no_cheque = strval($complemento->children($ns["advans"])->attributes()->_10); $estados_cuentas_mes->com()->save($comp); break; } } } public function ecmPdf(Request $r) { set_time_limit(0); $data["errores"] = array(); DB::Begintransaction(); try { $dataF = explode(",", $r->url_pdf); $b64Data = base64_decode($dataF[1]); $name = "Estados_cuentas_" . $r->mes . "_" . $r->idF . "_" . date("Ymd_His") . ".pdf"; $year = DB::table("clave_ff")->where("id_ff", $r->idF)->select("year")->first(); $path = "/uploads/" . $year->year . "/documentosFondo/" . $r->idF . "/"; $url_doc_fondo = $path . $name; if ($url_doc_fondo) { $dirname = dirname(public_path() . $url_doc_fondo); if (!is_dir($dirname)) { mkdir($dirname, 493, true); } $file = fopen(public_path() . $url_doc_fondo, "wb"); fwrite($file, $b64Data); fclose($file); $updEcm = DECM::where("id", $r->idEcm)->update(array("url_estados_cuentas_pdf" => $url_doc_fondo, "hash_estados_cuentas_pdf" => hash_file("sha2", public_path() . $url_doc_fondo))); } } catch (\Throwable $th) { $data["errores"][] = "No se encontró el archivo PDF, debe cargarlo." . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); unlink(public_path() . $url_doc_fondo); } else { DB::commit(); } return response()->json($data); } public function downloadDocumentos(Request $r) { set_time_limit(0); if ($r->idEdoCuenta == null) { $docsFondo = DOCF::findOrFail($r->idD); } else { $docsFondo = DB::table("estados_cuentas_mes")->where("id_documentos_fondo", $r->idEdoCuenta)->where("id", $r->id)->first(); } $headers = array("Content-Type" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); $urlFondo = null; switch ($r->tipoDocActual) { case "dAC": $urlFondo = $docsFondo->url_actas_cabildo; break; case "dCCB": $urlFondo = $docsFondo->url_contratos_cuentas_bancarias; break; case "dF3": $urlFondo = $docsFondo->url_formato_3; break; case "dF3A": $urlFondo = $docsFondo->url_formato_3A; break; case "dF3B": $urlFondo = $docsFondo->url_formato_3B; break; case "dF4": $urlFondo = $docsFondo->url_formato_4; break; case "pdf": $urlFondo = $docsFondo->url_estados_cuentas_pdf; break; case "xml": $urlFondo = $docsFondo->url_estados_cuentas_xml; break; } $nombreArchivo = LU::getRutaAndName($urlFondo)[1]; $urlArchivo = LU::getDirname($urlFondo); if (!file_exists($urlArchivo)) { return redirect()->back()->withErrors(array("error" => "Error al descargar el documento, no se encontró el archivo.")); } return response()->download($urlArchivo, $nombreArchivo, $headers); } public function downloadDocumentosInd($idD, $tipoDocActual) { set_time_limit(0); $docsFondo = DOCF::findOrFail($idD); $headers = array("Content-Type" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); $urlFondo = null; switch ($tipoDocActual) { case "dAC": $urlFondo = $docsFondo->url_actas_cabildo; break; case "dCCB": $urlFondo = $docsFondo->url_contratos_cuentas_bancarias; break; case "dF3": $urlFondo = $docsFondo->url_formato_3; break; case "dF3A": $urlFondo = $docsFondo->url_formato_3A; break; case "dF3B": $urlFondo = $docsFondo->url_formato_3B; break; case "dF4": $urlFondo = $docsFondo->url_formato_4; break; } $nombreArchivo = LU::getRutaAndName($urlFondo)[1]; $urlArchivo = LU::getDirname($urlFondo); return response()->download($urlArchivo, $nombreArchivo, $headers); } public function downloadEdosCuentas(Request $r) { set_time_limit(0); $headers = array("Content-Type" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); $urlEstadoCuenta = null; $estados_cuentas_mes = DECM::find($r->idEdoCuenta); switch ($r->tipoDocActual) { case "pdf": $urlEstadoCuenta = $estados_cuentas_mes->url_estados_cuentas_pdf; break; case "xml": $urlEstadoCuenta = $estados_cuentas_mes->url_estados_cuentas_xml; break; } $nombreArchivo = LU::getRutaAndName($urlEstadoCuenta)[1]; $urlArchivo = LU::getDirname($urlEstadoCuenta); return response()->download($urlArchivo, $nombreArchivo, $headers); } public function eliminarDocumentos(Request $r) { set_time_limit(0); DB::Begintransaction(); $url_doc_fondo_borrar = null; $data["errores"] = array(); try { $docsFondo = DOCF::findOrFail($r->idD); switch ($r->tipoDocActual) { case "dAC": $url_doc_fondo_borrar = $docsFondo->url_actas_cabildo; $docsFondo->url_actas_cabildo = null; $docsFondo->actas_cabildo = 0; break; case "dCCB": $url_doc_fondo_borrar = $docsFondo->url_contratos_cuentas_bancarias; $docsFondo->url_contratos_cuentas_bancarias = null; $docsFondo->contratos_cuentas_bancarias = 0; break; case "dF3": $url_doc_fondo_borrar = $docsFondo->url_formato_3; $docsFondo->url_formato_3 = null; $docsFondo->formato_3 = 0; break; case "dF3A": $url_doc_fondo_borrar = $docsFondo->url_formato_3A; $docsFondo->url_formato_3A = null; $docsFondo->formato_3A = 0; break; case "dF3B": $url_doc_fondo_borrar = $docsFondo->url_formato_3B; $docsFondo->url_formato_3B = null; $docsFondo->formato_3B = 0; break; case "dF4": $url_doc_fondo_borrar = $docsFondo->url_formato_4; $docsFondo->url_formato_4 = null; $docsFondo->formato_4 = 0; break; } if ($url_doc_fondo_borrar != null) { unlink(public_path() . $url_doc_fondo_borrar); } $docsFondo->save(); } catch (\Throwable $th) { $data["errores"][] = "Error al eliminar el archivo, contacte con servicio técnico." . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); } else { DB::commit(); } return response()->json($data); } public function eliminarEdoCuenta(Request $r) { set_time_limit(0); DB::Begintransaction(); try { $data["errores"] = array(); $docsFondo = DOCF::where("id", $r->idD)->first(); $oDecm = DECM::where("id", $r->idEdoCuenta)->first(); $mes = $oDecm->mes; $url_edo_cuentas_borrar_pdf = $oDecm->url_estados_cuentas_pdf; $url_edo_cuentas_borrar_xml = $oDecm->url_estados_cuentas_xml; $oDecm->delete(); $edos_cuentas_count = DECM::where(array("id_documentos_fondo" => $r->idD, "mes" => $mes))->count(); if ($edos_cuentas_count === 0) { switch ($mes) { case "enero": $docsFondo->edos_cuentas_01 = 0; break; case "febrero": $docsFondo->edos_cuentas_02 = 0; break; case "marzo": $docsFondo->edos_cuentas_03 = 0; break; case "abril": $docsFondo->edos_cuentas_04 = 0; break; case "mayo": $docsFondo->edos_cuentas_05 = 0; break; case "junio": $docsFondo->edos_cuentas_06 = 0; break; case "julio": $docsFondo->edos_cuentas_07 = 0; break; case "agosto": $docsFondo->edos_cuentas_08 = 0; break; case "septiembre": $docsFondo->edos_cuentas_09 = 0; break; case "octubre": $docsFondo->edos_cuentas_10 = 0; break; case "noviembre": $docsFondo->edos_cuentas_11 = 0; break; case "diciembre": $docsFondo->edos_cuentas_12 = 0; break; } $docsFondo->save(); } } catch (\Throwable $th) { $data["errores"][] = "Error al eliminar los archivos, contacte con servicio técnico." . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); } else { DB::commit(); try { if ($url_edo_cuentas_borrar_pdf != null) { unlink(public_path() . $url_edo_cuentas_borrar_pdf); } unlink(public_path() . $url_edo_cuentas_borrar_xml); } catch (\Throwable $th) { } } return response()->json($data); } public function enviarDocumentosRevison(Request $r) { $docsFondo = DOCF::findOrFail($r->idD); $estatus = 2; if ($r->enviarRevisionAuditores == "Si" || @config("tema.ms.revision_directo_auditores")) { $estatus = 3; } $data["errores"] = array(); try { switch ($r->tipoDocActual) { case "dAC": $docsFondo->actas_cabildo = $estatus; break; case "dCCB": $docsFondo->contratos_cuentas_bancarias = $estatus; break; case "dF3": $docsFondo->formato_3 = $estatus; break; case "dF3A": $docsFondo->formato_3A = $estatus; break; case "dF3B": $docsFondo->formato_3B = $estatus; break; case "dF4": $docsFondo->formato_4 = $estatus; break; } $docsFondo->save(); } catch (\Throwable $th) { $data["errores"][] = "Error al enviar el archivo a revisión, contacte con servicio técnico." . $th->getMessage(); } return response()->json($data); } public function enviarRevisionEdosCuentas(Request $r) { set_time_limit(0); DB::Begintransaction(); $estatus = 2; if ($r->enviarRevisionAuditores == "Si" || @config("tema.ms.revision_directo_auditores")) { $estatus = 3; } try { $data["errores"] = array(); $docsFondo = DOCF::findOrFail($r->idD); switch ($r->mes) { case "enero": $docsFondo->edos_cuentas_01 = $estatus; break; case "febrero": $docsFondo->edos_cuentas_02 = $estatus; break; case "marzo": $docsFondo->edos_cuentas_03 = $estatus; break; case "abril": $docsFondo->edos_cuentas_04 = $estatus; break; case "mayo": $docsFondo->edos_cuentas_05 = $estatus; break; case "junio": $docsFondo->edos_cuentas_06 = $estatus; break; case "julio": $docsFondo->edos_cuentas_07 = $estatus; break; case "agosto": $docsFondo->edos_cuentas_08 = $estatus; break; case "septiembre": $docsFondo->edos_cuentas_09 = $estatus; break; case "octubre": $docsFondo->edos_cuentas_10 = $estatus; break; case "noviembre": $docsFondo->edos_cuentas_11 = $estatus; break; case "diciembre": $docsFondo->edos_cuentas_12 = $estatus; break; } $docsFondo->save(); } catch (\Throwable $th) { $data["errores"][] = "Error al enviar los archivos, contacte con servicio técnico." . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); } else { DB::commit(); } return response()->json($data); } public function regresarDocumentosRevison(Request $r) { DB::Begintransaction(); $data["errores"] = array(); $errorCancelar = null; try { $docsFondo = DOCF::findOrFail($r->idD); $estatus = 4; switch ($r->tipoDocActual) { case "dAC": $docsFondo->actas_cabildo = $estatus; break; case "dCCB": $docsFondo->contratos_cuentas_bancarias = $estatus; break; case "dF3": $docsFondo->formato_3 = $estatus; break; case "dF3A": $docsFondo->formato_3A = $estatus; break; case "dF3B": $docsFondo->formato_3B = $estatus; break; case "dF4": $docsFondo->formato_4 = $estatus; break; } $docsFondo->save(); if (@config("tema.ms.api_efirma")) { $errorCancelar = LU::cancelarConstancias($docsFondo->id_clave_ff, 1); if ($errorCancelar) { $data["errores"][] = $errorCancelar; } } } catch (\Throwable $th) { $data["errores"][] = "Error al regresar el archivo, contacte con servicio técnico." . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); } else { DB::commit(); } return response()->json($data); } public function regresarRevisionEdosCuentas(Request $r) { set_time_limit(0); DB::Begintransaction(); $estatus = 4; try { $data["errores"] = array(); $docsFondo = DOCF::findOrFail($r->idD); switch ($r->mes) { case "enero": $docsFondo->edos_cuentas_01 = $estatus; break; case "febrero": $docsFondo->edos_cuentas_02 = $estatus; break; case "marzo": $docsFondo->edos_cuentas_03 = $estatus; break; case "abril": $docsFondo->edos_cuentas_04 = $estatus; break; case "mayo": $docsFondo->edos_cuentas_05 = $estatus; break; case "junio": $docsFondo->edos_cuentas_06 = $estatus; break; case "julio": $docsFondo->edos_cuentas_07 = $estatus; break; case "agosto": $docsFondo->edos_cuentas_08 = $estatus; break; case "septiembre": $docsFondo->edos_cuentas_09 = $estatus; break; case "octubre": $docsFondo->edos_cuentas_10 = $estatus; break; case "noviembre": $docsFondo->edos_cuentas_11 = $estatus; break; case "diciembre": $docsFondo->edos_cuentas_12 = $estatus; break; } $docsFondo->save(); if (@config("app.login_solo_firma")) { $errorCancelar = LU::cancelarConstancias($docsFondo->id_clave_ff, 1); if ($errorCancelar) { $data["errores"][] = $errorCancelar; } } } catch (\Throwable $th) { $data["errores"][] = "Error al regresar los archivos, contacte con servicio técnico." . $th->getLine() .  . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); } else { DB::commit(); } return response()->json($data); } public function getEstadosCuentaMes(Request $r) { $datos["errores"] = array(); try { if ($r->mes != null) { $datos["edos_cuentas"] = DB::table("estados_cuentas_mes")->where(array("id_documentos_fondo" => $r->idD, "mes" => $r->mes))->get(); $meses = array("enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"); $mesIndex = array_search(strtolower($r->mes), $meses); $mesNumero = str_pad($mesIndex + 1, 2, "0", STR_PAD_LEFT); $columnaMes = "docf.edos_cuentas_" . $mesNumero; $datos["edos_cuentas_mes"] = DB::table("estados_cuentas_mes as ecm")->join("documentos_fondo as docf", "docf.id", "=", "ecm.id_documentos_fondo")->where(array("ecm.id_documentos_fondo" => $r->idD, "ecm.mes" => $r->mes))->select("ecm.id", "ecm.url_estados_cuentas_pdf", "ecm.url_estados_cuentas_xml", "docf.id as docf_id", "ecm.mes", $columnaMes . " as edos_cuentas")->get(); $datos["listaEstatus"] = array("Sin cargar", "Cargado sin enviar a revisión", "Enviado " . LU::t_tr("a_d", "enlace", "s"), "Enviado " . LU::t_tr("a_d", "asf", "S"), "Regresado " . LU::t_tr("a_d", "ejecutor", "s"), "No aplica"); } else { $datos["edos_cuentas"] = DB::table("estados_cuentas_mes")->where(array("id_documentos_fondo" => $r->idD))->get(); $mesesUnicos = array(); foreach ($datos["edos_cuentas"] as $edo) { if (!in_array($edo->mes, $mesesUnicos)) { $mesesUnicos[] = $edo->mes; } } $datos["meses"] = $mesesUnicos; $datos["valorEdo"] = DB::table("documentos_fondo as df")->where("df.id_clave_ff", $r->idD)->where(function ($query) { $query->where("df.edos_cuentas_01", "<>", 5)->orWhere("df.edos_cuentas_", "<>", 5)->orWhere("df.edos_cuentas_03", "<>", 5)->orWhere("df.edos_cuentas_04", "<>", 5)->orWhere("df.edos_cuentas_05", "<>", 5)->orWhere("df.edos_cuentas_", "<>", 5)->orWhere("df.edos_cuentas_07", "<>", 5)->orWhere("df.edos_cuentas_08", "<>", 5)->orWhere("df.edos_cuentas_09", "<>", 5)->orWhere("df.edos_cuentas_10", "<>", 5)->orWhere("df.edos_cuentas_11", "<>", 5)->orWhere("df.edos_cuentas_", "<>", 5); })->get(); } } catch (\Throwable $th) { $datos["errores"][] = "Error al obtener datos de la tabla, comuníquese con soporte técnico. " . $th->getMessage(); } return response()->json($datos); } public function datosClavesFFMain(Request $r, $dependencia, $year) { $id_clave_ff = array(); $monto_utilizado = 0; $monto_anexo_gd = 0; $monto_cap1k = 0; $q = Claves::Where("id_dependencia", $dependencia)->where("year", $year); $x = Claves::Where("id_dependencia", $dependencia)->where("year", $year); $data["resumen"]["monto_recibido"] = $q->count() == 0 ? 0.0 : $x->sum("monto_recibido"); $fondos = $q->get(); $listaGD = array(); foreach ($fondos as $i) { $id_clave_ff[] = $i->id_ff; $totalAnexoGD = self::totalAnexoGD($i); $listaGD[$i->id_ff] = $totalAnexoGD; $monto_anexo_gd += (double) $totalAnexoGD->total; $monto_cap1k += (double) $i->cap1k; } foreach ($id_clave_ff as $i) { $monto_utilizado += cmb::where("id_ff", $i)->sum("montoPagadoConPart"); } $data["gastos_diversos"] = $listaGD; $data["resumen"]["monto_utilizado"] = $monto_utilizado + $monto_anexo_gd + $monto_cap1k; $data["resumen"]["monto_restante"] = $data["resumen"]["monto_recibido"] - $data["resumen"]["monto_utilizado"]; $claves = DB::table("clave_ff as ff")->join("catalogo_numeros_auditoria as cna", "ff.id_nauditoria", "=", "cna.id")->join("catalogo_auditorias as ca", "cna.id_auditoria", "=", "ca.id")->join("catalogo_claves_presupuestales as tcff", "ff.clave_ff", "=", "tcff.id")->join("dependencias as d", "ff.id_dependencia", "=", "d.id_dependencia")->where("ff.year", $year); $data["cff"] = $claves->where("ff.id_dependencia", $dependencia)->select("ff.id_ff as id_pp", "ff.clave_ff as pp", "tcff.nombre_clave as n_pp", "ff.monto_recibido as monto_recibido", "ff.year as fecha", "ff.estatus as estatus", "ff.id_dependencia as id_d", "d.sDependencia as dependencia", "d.sSiglas as siglas", "ff.obras as obras", "ff.ramo as ramo", "ff.cap1k as capitulomil", "ff.monto_nomina as monto_nomina", "ff.reintegro_tesofe as reintegro_tesofe", "cna.numeroAuditoria as auditoria", "ca.auditoria as uaa")->orderBy("fecha", "DESC"); if (@config("tema.ms.comentario_auditor")) { $data["cff"]->addSelect("ff.comentario_auditor as comentario_auditor", "ff.revisado_auditor as revisado_auditor"); } $data["cff"] = $data["cff"]->get(); $data["claveAnual"] = DB::table("clave_ff as ff")->whereRaw("YEAR(fecha)=" . date("Y"))->where("ff.id_dependencia", $dependencia)->count(); return response()->json($data, 200); } public function index() { $d = Dependencias::with(array("d_e", "d_m"))->where("id_dependencia", Auth::user()->id_dependencia)->first(); $data["datos_generales"] = (object) array("dependencia" => $d->sDependencia, "siglas" => $d->sSiglas, "municipio" => $d->d_m == null ? "No aplica" : $d->d_m->municipio, "estado" => $d->d_e->estado); return view("asf_layout.index", $data); } public function layouts_main() { $data["usuarioActual"] = U::with("u_d")->where("id", Auth::user()->id)->get()->first(); $lNAU = NAU::with("nau_cna")->where("id_usuario", Auth::user()->id)->get(); $data["CNAusuario"] = array(); foreach ($lNAU as $knau => $nau) { $data["CNAusuario"][] = $nau->nau_cna; } return view("asf_layout.main", $data); } public function cerrar(Request $r) { $row = Claves::where("id_ff", $r->id)->first(); $row->estatus = "1"; DB::beginTransaction(); try { $row->save(); DB::commit(); return response()->json("OK", 200); } catch (\Exception $e) { DB::rollback(); $error = $e->getMessage(); return response()->json("NO", 200); } } public function datosFuenteFinanciamiento(Request $r, $dependencia, $year) { $q = DB::table("fondo_dependencia as fd")->join("catalogo_claves_presupuestales as ccp", "fd.clave_ff", "=", "ccp.id")->where("fd.year", $year)->where("fd.id_dependencia", $dependencia)->join("catalogo_auditorias as ca", "ca.id", "=", "fd.id_auditoria")->join("catalogo_numeros_auditoria as cna", "cna.id", "=", "fd.nAuditoria")->select("fd.id as id_fondo", "ccp.id as id", "ccp.nombre_clave as clave", "ca.auditoria as uaa", "cna.numeroAuditoria as nAuditoria")->orderBy("clave", "ASC")->orderBy("uaa", "ASC")->get(); return response()->json($q, 200); } public function datosClaveFFDependencia(Request $r, $id_clave, $year, $dependencia, $idnAuditoria) { $datos["monto"] = DB::table("fondo_dependencia")->where("id_dependencia", $dependencia)->where("year", $year)->where("clave_ff", $id_clave)->where("nAuditoria", $idnAuditoria)->first()->monto; $datos["ramo"] = DB::table("catalogo_claves_presupuestales")->where("id", $id_clave)->first()->ramo; return response()->json($datos, 200); } public function addClave() { $data = array(); $dependencias = DB::table("dependencias as d")->where("id_estado", Auth::user()->id_estado); switch (Auth::user()->type) { case 1: $data["dependencias"] = $dependencias->where("id_municipio", Auth::user()->id_municipio)->select("id_dependencia as id", "sDependencia as nombre", "sSiglas as siglas")->get(); break; case 3: $data["dependencias"] = $dependencias->get(); break; case 2: case 4: $v = DB::table("fondo_dependencia")->where("id_dependencia", Auth::user()->id_dependencia)->where("year", now()->year)->count(); $data["dependencias"] = $dependencias->where("id_dependencia", Auth::user()->id_dependencia)->select("id_dependencia as id", "sDependencia as nombre", "sSiglas as siglas")->first(); $data["fondo"] = DB::table("fondo_dependencia as fd")->join("catalogo_claves_presupuestales as ccp", "ccp.id", "=", "fd.clave_ff")->where("fd.id_dependencia", Auth::user()->id_dependencia)->select("fd.id", "ccp.id as id_clave", "ccp.nombre_clave as clave", "ccp.ramo", "fd.monto as monto")->first(); $con_cff = DB::table("clave_ff as cff")->select("cff.id_fondo_dependencia")->where("cff.id_dependencia", Auth::user()->id_dependencia)->WhereNotNull("cff.id_fondo_dependencia")->get(); $a_con_cff = array(); foreach ($con_cff as $kIdFondo => $id_fondo) { $a_con_cff[] = $id_fondo->id_fondo_dependencia; } $years = DB::table("fondo_dependencia as fd")->select("fd.year")->where("fd.id_dependencia", Auth::user()->id_dependencia)->whereNotIn("fd.id", $a_con_cff)->groupBy("fd.year")->orderBy("fd.year", "asc")->get(); $data["yearsRegistrados"] = array(); foreach ($years as $kYear => $year) { $data["yearsRegistrados"][] = $year->year; } break; } if ($data["fondo"] == null) { return \Redirect::back()->withErrors(array(LU::t_tr("D", "dependencia", "s") . "  no tiene " . LU::t_tr("v", "fondo", "p") . " asignados")); } $data["claves"] = TipoClave::all(); return view("asf_layout.addClave", $data); } public function addClaveFinanzas() { $data = array(); $dependencias = DB::table("dependencias as d")->where("id_estado", Auth::user()->id_estado); switch (Auth::user()->type) { case 8: case 9: $data["dependencias"] = $dependencias->where("id_dependencia", Auth::user()->id_dependencia)->select("id_dependencia as id", "sDependencia as nombre", "sSiglas as siglas")->first(); $data["fondo"] = DB::table("fondo_dependencia as fd")->join("catalogo_claves_presupuestales as ccp", "ccp.id", "=", "fd.clave_ff")->where("fd.id_dependencia", Auth::user()->id_dependencia)->select("fd.id", "ccp.id as id_clave", "ccp.nombre_clave as clave", "ccp.ramo", "fd.monto as monto")->first(); break; } if ($data["fondo"] == null) { return \Redirect::back()->withErrors(array(LU::t_tr("D", "dependencia", "s") . "  no tiene " . LU::t_tr("v", "fondo", "p") . " asignados")); } $data["claves"] = TipoClave::all(); return view("asf_layout.addClaveFinanzas", $data); } public function getClavesFFNotInTable($dependencia, $year) { $data = DB::table("fondo_dependencia as fd")->leftJoin("clave_ff as cf", "fd.id", "=", "cf.id_fondo_dependencia")->join("catalogo_claves_presupuestales as ccp", "fd.clave_ff", "=", "ccp.id")->join("catalogo_numeros_auditoria as cna", "fd.nAuditoria", "=", "cna.id")->join("catalogo_auditorias as ca", "cna.id_auditoria", "=", "ca.id")->select("fd.id as id_fondo", "fd.clave_ff as id", "ccp.nombre_clave as clave", "cna.numeroAuditoria as nAuditoria", "ca.auditoria as uaa", "cna.id as id_nAuditoria")->where("fd.year", $year)->where("fd.id_dependencia", $dependencia)->whereNull("cf.id_ff")->get(); return response()->json($data); } public function saveClave(Request $r) { $errorEncontrado = ''; $id_clave_ff = 0; $claveRegistrada = null; DB::Begintransaction(); try { $datos = $r->except(array("_token", "excel_url_archivo", "excel_lista_anexo_GD1", "excel_lista_anexo_GD2", "cb_anexo_gd", "cb_anexo_adq", "cb_anexo_obras", "cb_anexo_egresos", "cb_anexo_nomina", "cb_anexo_c4k", "cb_anexo_OyAdq", "cb_actas_cabildo", "cb_contratos_cuentas_bancarias", "cb_edos_cuentas01", "cb_edos_cuentas", "cb_edos_cuentas03", "cb_edos_cuentas", "cb_edos_cuentas05", "cb_edos_cuentas06", "cb_edos_cuentas07", "cb_edos_cuentas08", "cb_edos_cuentas09", "cb_edos_cuentas10", "cb_edos_cuentas11", "cb_edos_cuentas12", "cb_formato_3", "cb_formato_3A", "cb_formato_3B", "cb_formato_4")); $datos["cap1k"] = $r->cap1k ? $r->cap1k : 0; $datos["cap4k"] = $r->cap4k ? $r->cap4k : 0; $datos["monto_nomina"] = $r->monto_nomina != null ? $r->monto_nomina : 0; $datos["fecha"] = date("Y-m-d"); $datos["id_estado"] = Auth::user()->id_estado; $datos["id_municipio"] = Auth::user()->id_municipio; $datos["fondo_revolvente"] = 0; $datos["estatus"] = 0; $datos["created_at"] = date("Y-m-d H:i:s"); $datos["estatus_archivo"] = isset($r->cb_anexo_gd) ? "0" : "5"; $datos["estatus_anexo_adq"] = isset($r->cb_anexo_adq) ? "0" : "5"; $datos["estatus_anexo_obras"] = isset($r->cb_anexo_obras) ? "0" : "5"; $datos["estatus_anexo_egresos"] = isset($r->cb_anexo_egresos) ? "0" : "5"; $datos["estatus_anexo_nomina"] = isset($r->cb_anexo_nomina) ? "0" : "5"; $datos["estatus_anexo_c4k"] = isset($r->cb_anexo_c4k) ? "0" : "5"; $datos["estatus_anexo_obras_y_adq"] = isset($r->cb_anexo_OyAdq) ? "0" : "5"; $datos["obras"] = isset($r->cb_anexo_obras) ? "1" : "0"; $id_clave_ff = DB::table("clave_ff")->insertGetId($datos); $claveRegistrada = Claves::with(array("c_ccp", "c_cna"))->Where("id_ff", $id_clave_ff)->first(); $documentosFondo = new DOCF(); $documentosFondo->id_clave_ff = $id_clave_ff; $documentosFondo->actas_cabildo = isset($r->cb_actas_cabildo) ? "0" : "5"; $documentosFondo->contratos_cuentas_bancarias = isset($r->cb_contratos_cuentas_bancarias) ? "0" : "5"; $documentosFondo->edos_cuentas_01 = isset($r->cb_edos_cuentas01) ? "0" : "5"; $documentosFondo->edos_cuentas_02 = isset($r->cb_edos_cuentas02) ? "0" : "5"; $documentosFondo->edos_cuentas_03 = isset($r->cb_edos_cuentas03) ? "0" : "5"; $documentosFondo->edos_cuentas_04 = isset($r->cb_edos_cuentas04) ? "0" : "5"; $documentosFondo->edos_cuentas_05 = isset($r->cb_edos_cuentas05) ? "0" : "5"; $documentosFondo->edos_cuentas_06 = isset($r->cb_edos_cuentas06) ? "0" : "5"; $documentosFondo->edos_cuentas_07 = isset($r->cb_edos_cuentas07) ? "0" : "5"; $documentosFondo->edos_cuentas_08 = isset($r->cb_edos_cuentas08) ? "0" : "5"; $documentosFondo->edos_cuentas_09 = isset($r->cb_edos_cuentas09) ? "0" : "5"; $documentosFondo->edos_cuentas_10 = isset($r->cb_edos_cuentas10) ? "0" : "5"; $documentosFondo->edos_cuentas_11 = isset($r->cb_edos_cuentas11) ? "0" : "5"; $documentosFondo->edos_cuentas_12 = isset($r->cb_edos_cuentas12) ? "0" : "5"; $documentosFondo->formato_3 = isset($r->cb_formato_3) ? "0" : "5"; $documentosFondo->formato_3A = isset($r->cb_formato_3A) ? "0" : "5"; $documentosFondo->formato_3B = isset($r->cb_formato_3B) ? "0" : "5"; $documentosFondo->formato_4 = isset($r->cb_formato_4) ? "0" : "5"; $documentosFondo->save(); if ($r->excel_url_archivo != null) { $json_lista_anexo_GD1 = json_decode($r->excel_lista_anexo_GD1); $json_lista_anexo_GD2 = json_decode($r->excel_lista_anexo_GD2); foreach ($json_lista_anexo_GD1 as $kranexo => $ranexo) { $reg = new AGDO(); $reg->rfc = $ranexo->rfc; $reg->nombre = $ranexo->nombre; $reg->descripcion = $ranexo->descripcion; $reg->fecha_adq_gasto = $ranexo->fecha_adq_gasto; $reg->monto_pagado = $ranexo->monto_pagado; $reg->entregable = $ranexo->entregable; $reg->monto_pagado_fondo = $ranexo->monto_pagado_fondo; $reg->partida_clasificatoria = $ranexo->partida_clasificatoria; $reg->num_factura = $ranexo->num_factura; $reg->num_poliza = $ranexo->num_poliza; $reg->num_poliza = $ranexo->num_poliza; $reg->es_gasto_diverso = "1"; $reg->id_clave_ff = $id_clave_ff; $reg->save(); } foreach ($json_lista_anexo_GD2 as $kranexo => $ranexo) { $reg = new AGDO(); $reg->rfc = $ranexo->rfc; $reg->nombre = $ranexo->nombre; $reg->descripcion = $ranexo->descripcion; $reg->fecha_adq_gasto = $ranexo->fecha_adq_gasto; $reg->monto_pagado = $ranexo->monto_pagado; $reg->entregable = $ranexo->entregable; $reg->monto_pagado_fondo = $ranexo->monto_pagado_fondo; $reg->partida_clasificatoria = $ranexo->partida_clasificatoria; $reg->num_factura = $ranexo->num_factura; $reg->num_poliza = $ranexo->num_poliza; $reg->num_poliza = $ranexo->num_poliza; $reg->es_gasto_diverso = "0"; $reg->id_clave_ff = $id_clave_ff; $reg->save(); } Claves::where("id_ff", $id_clave_ff)->update(array("estatus_archivo" => 1)); $json_url_archivo = json_decode($r->excel_url_archivo); $url = "/uploads/" . $r->year . "/anexoGD/" . $r->id_dependencia . "/" . $r->clave_ff . "/" . $r->year . "/" . $r->id_nauditoria . "/anexoGD_" . date("Ymd_His") . ".xlsx"; $dirname = dirname(public_path() . $url); if (!is_dir($dirname)) { mkdir($dirname, 493, true); } $file = fopen(public_path() . $url, "wb"); $data = explode(",", $json_url_archivo); fwrite($file, base64_decode($data[1])); fclose($file); $claveRegistrada = Claves::Where("id_ff", $id_clave_ff)->first(); $claveRegistrada->url_anexo_gd = $url; $claveRegistrada->save(); } } catch (\Exception $e) { $errorEncontrado = "Error al registrar" . LU::t_tr("d", "fondo", "s") . ", por favor contacte con servicio técnico." . $e->getMessage(); } if ($errorEncontrado != '') { DB::rollback(); return redirect()->back()->withErrors(array($errorEncontrado)); } else { DB::commit(); return redirect()->back()->with("success", "Se guardaron correctamente los datos: " . LU::t_tr("v", "fondo", "s") . " " . ($claveRegistrada ? """ . $claveRegistrada->c_ccp->nombre_clave . """ : '') . ", " . LU::t_tr("v", "num_auditoria", "s") . " "" . $claveRegistrada->c_cna->numeroAuditoria . "" del año " . $r->year . ". Puede verlo en el menú "" . LU::t_pr("m_captura_anexos") . "" - "" . LU::t_tr("v", "adquisiciones_obras", "P") . "" y seleccione un "Año a mostrar); } } public function saveClaveFinanzas(Request $r) { $data["errores"] = null; $newClave = null; $exist = CFFFINANZAS::where(array("id_dependencia" => $r->id_dependencia, "id_catalogo_numeros_auditoria" => $r->id_catalogo_numeros_auditoria, "id_catalogo_claves_presupuestales" => $r->id_catalogo_claves_presupuestales))->first(); if ($exist != null) { if ($exist->id != $r->id) { $data["errores"][] = LU::t_tr("D", "fondo", "s") . " ya se encuentra registrado, verifique la tabla inferior."; } } if ($data["errores"] == null) { try { $newClave = CFFFINANZAS::findOrFail($r->id); } catch (\Throwable $th) { $newClave = new CFFFINANZAS(); } try { $newClave->id_dependencia = $r->id_dependencia; $newClave->id_catalogo_numeros_auditoria = $r->id_catalogo_numeros_auditoria; $newClave->id_catalogo_claves_presupuestales = $r->id_catalogo_claves_presupuestales; $newClave->nombre_responsable = $r->firma_responsable; $newClave->cargo_responsable = $r->cargo_responsable; $newClave->estatus_anexo_egresos = $this->obtenerEstatusModificado($newClave->estatus_anexo_egresos, $r->estatus_anexo_egresos); $newClave->estatus_anexo_transf = $this->obtenerEstatusModificado($newClave->estatus_anexo_transf, $r->estatus_anexo_transf); $newClave->updated_at = Carbon::now(); $newClave->save(); } catch (\Exception $e) { $data["errores"][] = "Ocurrió un error al intentar editar " . LU::t_tr("d", "fondo", "s") . ". Contacte a servicio técnico."; } } return $data; } public function deleteClaveFinanzas(Request $r) { $data = array(); $mensajeDeErrorGlobal = ''; $oCffFinanzas = CFFFINANZAS::find($r->id_clave_ff_finanzas); if ($oCffFinanzas == null) { $mensajeDeErrorGlobal = "No se puede eliminar " . LU::t_tr("d", "fondo", "s") . ", ya que no existe en el sistema."; } else { $estatusExistentes = ''; try { $estatusAnexoEgresos = $oCffFinanzas->estatus_anexo_egresos; if (!in_array($estatusAnexoEgresos, array(0, 5))) { $estatusExistentes .= "-El estatus de " . LU::t_tr("d", "anexo", "s") . " Egresos es: " . $this->estatusAnexoArchivo($estatusAnexoEgresos, 8) . "\xa"; } $estatusAnexoTransfEjec = $oCffFinanzas->estatus_anexo_transf; if (!in_array($estatusAnexoTransfEjec, array(0, 5))) { $estatusExistentes .= "-El estatus de " . LU::t_tr("d", "anexo", "s") . " Transferencia a ejecutores es: " . $this->estatusAnexoArchivo($estatusAnexoTransfEjec, 8) . "\xa"; } if ($estatusExistentes == '') { try { if ($oCffFinanzas->delete()) { DB::commit(); } else { DB::rollback(); $mensajeDeErrorGlobal = "Ocurrió un error al intentar eliminar" . LU::t_tr("d", "fondo", "s") . " Contacte a soporte técnico."; } } catch (\Exception $e) { $mensajeDeErrorGlobal = "Ocurrió un error al intentar eliminar" . LU::t_tr("d", "fondo", "s") . "Contacte a servicio técnico." . $e->getMessage(); } } else { $mensajeDeErrorGlobal = "Solo se puede eliminar " . LU::t_tr("d", "fondo", "s") . " si sus " . LU::t_tr("v", "anexo", "p") . " se encuentran en estatus 'Sin cargar' o 'No aplica'.
\xaNo se puede eliminar " . LU::t_tr("d", "fondo", "s") . " debido a que: 
" . $estatusExistentes; } } catch (\Exception $e) { $mensajeDeErrorGlobal = "Ocurrió un error al intentar eliminar " . LU::t_tr("d", "fondo", "s") . " solicitado. Contacte a servicio técnico." . $e->getMessage(); } } $data["errores"] = $mensajeDeErrorGlobal == '' ? null : $mensajeDeErrorGlobal; return $data; } public function editClave(Request $r, $idFondo) { $data = array(); $data["cff"] = Claves::With(array("c_d", "c_tc", "c_cna"))->Where("id_ff", $idFondo)->first(); $data["docf"] = array(); $documentos_fondo = DOCF::Where("id_clave_ff", $idFondo)->first(); if ($documentos_fondo != null) { $data["docf"] = $documentos_fondo; } $data["cff"]->c_cna->cna_ca; $data["h_cff"] = hcf::With(array("h_u"))->Where("id_clave_ff", $idFondo)->orderBy("created_at", "desc")->get(); $data["listaEstatus"] = array("Sin cargar", "Cargado sin enviar a revisión", "Enviado " . LU::t_tr("a_d", "enlace", "s"), "Enviado " . LU::t_tr("a_d", "asf", "s"), "Regresado " . LU::t_tr("a_d", "ejecutor", "s"), "No aplica"); return view("asf_layout.editClave", $data); } public function updateClave(Request $r, $idFondo) { DB::Begintransaction(); try { $clave = Claves::find($idFondo); $tieneObrasNew = $r->obras == "SI" ? 1 : ($r->obras == "NO" ? 0 : null); HCF::create(array("id_clave_ff" => $idFondo, "monto_recibido" => $r->monto_recibido == $clave->monto_recibido ? null : $r->monto_recibido, "cap1k" => $r->cap1k == $clave->cap1k ? null : $r->cap1k, "cap4k" => $r->cap4k == $clave->cap4k ? null : $r->cap4k, "nombre_responsable" => $r->nombre_responsable == $clave->firma_responsable ? null : $r->nombre_responsable, "cargo_responsable" => $r->cargo_responsable == $clave->cargo_responsable ? null : $r->cargo_responsable, "obras" => $tieneObrasNew == $clave->obras ? null : $tieneObrasNew, "id_usuario" => Auth::user()->id)); $documentos_fondo = DOCF::Where("id_clave_ff", $idFondo)->first(); if ($documentos_fondo == null) { $documentos_fondo = new DOCF(); $documentos_fondo->id_clave_ff = $idFondo; } $clave->monto_recibido = $r->monto_recibido == null || $r->monto_recibido == '' ? 0 : $r->monto_recibido; $clave->cap1k = $r->cap1k == null || $r->cap1k == '' ? 0 : $r->cap1k; $clave->cap4k = $r->cap4k == null || $r->cap4k == '' ? 0 : $r->cap4k; $clave->monto_nomina = $r->monto_nomina == null || $r->monto_nomina == '' ? 0 : $r->monto_nomina; $clave->firma_responsable = $r->nombre_responsable == null || $r->nombre_responsable == '' ? $clave->firma_responsable : $r->nombre_responsable; $clave->cargo_responsable = $r->cargo_responsable == null || $r->cargo_responsable == '' ? $clave->cargo_responsable : $r->cargo_responsable; $clave->estatus_archivo = $this->obtenerEstatusModificado($clave->estatus_archivo, isset($r->cb_anexo_gd)); $clave->estatus_anexo_adq = $this->obtenerEstatusModificado($clave->estatus_anexo_adq, isset($r->cb_anexo_adq)); $clave->estatus_anexo_obras = $this->obtenerEstatusModificado($clave->estatus_anexo_obras, isset($r->cb_anexo_obras)); $clave->estatus_anexo_egresos = $this->obtenerEstatusModificado($clave->estatus_anexo_egresos, isset($r->cb_anexo_egresos)); $clave->estatus_anexo_nomina = $this->obtenerEstatusModificado($clave->estatus_anexo_nomina, isset($r->cb_anexo_nomina)); $clave->estatus_anexo_c4k = $this->obtenerEstatusModificado($clave->estatus_anexo_c4k, isset($r->cb_anexo_c4k)); $clave->estatus_anexo_obras_y_adq = $this->obtenerEstatusModificado($clave->estatus_anexo_obras_y_adq, isset($r->cb_anexo_OyAdq)); $clave->obras = isset($r->cb_anexo_obras) ? "1" : "0"; $documentos_fondo->actas_cabildo = $this->obtenerEstatusModificado($documentos_fondo->actas_cabildo, isset($r->cb_actas_cabildo)); $documentos_fondo->contratos_cuentas_bancarias = $this->obtenerEstatusModificado($documentos_fondo->contratos_cuentas_bancarias, isset($r->cb_contratos_cuentas_bancarias)); $documentos_fondo->edos_cuentas_01 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_01, isset($r->cb_edos_cuentas01)); $documentos_fondo->edos_cuentas_02 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_02, isset($r->cb_edos_cuentas02)); $documentos_fondo->edos_cuentas_03 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_03, isset($r->cb_edos_cuentas03)); $documentos_fondo->edos_cuentas_04 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_04, isset($r->cb_edos_cuentas04)); $documentos_fondo->edos_cuentas_05 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_05, isset($r->cb_edos_cuentas05)); $documentos_fondo->edos_cuentas_06 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_06, isset($r->cb_edos_cuentas06)); $documentos_fondo->edos_cuentas_07 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_07, isset($r->cb_edos_cuentas07)); $documentos_fondo->edos_cuentas_08 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_08, isset($r->cb_edos_cuentas08)); $documentos_fondo->edos_cuentas_09 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_09, isset($r->cb_edos_cuentas09)); $documentos_fondo->edos_cuentas_10 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_10, isset($r->cb_edos_cuentas10)); $documentos_fondo->edos_cuentas_11 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_11, isset($r->cb_edos_cuentas11)); $documentos_fondo->edos_cuentas_12 = $this->obtenerEstatusModificado($documentos_fondo->edos_cuentas_12, isset($r->cb_edos_cuentas12)); $documentos_fondo->formato_3 = $this->obtenerEstatusModificado($documentos_fondo->formato_3, isset($r->cb_formato_3)); $documentos_fondo->formato_3A = $this->obtenerEstatusModificado($documentos_fondo->formato_3A, isset($r->cb_formato_3A)); $documentos_fondo->formato_3B = $this->obtenerEstatusModificado($documentos_fondo->formato_3B, isset($r->cb_formato_3B)); $documentos_fondo->formato_4 = $this->obtenerEstatusModificado($documentos_fondo->formato_4, isset($r->cb_formato_4)); $documentos_fondo->save(); $clave->save(); DB::commit(); return \Redirect::to("/layouts"); } catch (\Except $e) { DB::rollback(); return \Redirect::to("/layouts")->withErrors(array("No se pudo guardar la información proporcionada al sistema")); } } public function obtenerEstatusModificado($estatus, $estaMarcado) { $estatusNuevo = $estatus != null ? intval($estatus) : intval("5"); if ($estatusNuevo == 5) { $estatusNuevo = $estaMarcado ? 0 : $estatusNuevo; } else { $estatusNuevo = $estaMarcado ? $estatusNuevo : 5; } return $estatusNuevo; } public function seleccionModulo(Request $r, $id) { $resp["clave_ff"] = $id; $resp["clave"] = DB::table("clave_ff")->where("id_ff", $id)->first(); return view("asf_layout.helpers.obrasomateriales", $resp); } public function tipoRegistro(Request $r, $modulo, $id, $year) { $clave_ff = DB::table("clave_ff as ff")->where("ff.id_ff", $id)->first(); $datos["n_ff"] = DB::table("catalogo_claves_presupuestales")->where("id", $clave_ff->clave_ff)->first()->nombre_clave; $datos["modulo"] = $modulo; $datos["clave"] = $id; $datos["year"] = $year; $datos["cff"] = DB::table("clave_ff")->where("id_ff", $id)->first(); return view("asf_layout.helpers.tipoRegistro", $datos); } private $modulo = ''; private $c_ff = ''; private $guardado_correcto = true; private $abrirExcelCorrecto = true; private $hojaActual = 0; private $contadorRegistro = 0; private $mensajeException = ''; private $soloMensajeException = false; private $arrayNombresExcel = array("DE ANTICIPO" => "de_anticipo", "DE CUMPLIMIENTO" => "de_cumplimiento", "DE VICIOS OCULTOS" => "de_vicios_ocultos", "FECHA DE ACTA FINIQUITO (dd/mm/yyyy)" => "fecha_de_acta_finiquito_ddmmyyyy", "MODALIDAD DE CONTRATACIÓN (POR CONTRATO o POR ADMINISTRACIÓN DIRECTA)" => "modalidad_de_contratacion_por_contrato_o_por_administracion_directa", "MONTO DEL CONTRATO C/IVA (en pesos)" => "monto_del_contrato_civa_en_pesos", "MONTO FACTURA C/IVA (en pesos)" => "monto_factura_civa_en_pesos", "MONTO PAGADO CON FAFEF" => "monto_pagado_con_fafef", "MONTO PAGADO CON FAIS" => "monto_pagado_con_fais", "MONTO PAGADO CON FEIEF" => "monto_pagado_con_feief", "MONTO PAGADO CON PARTICIPACIONES" => "monto_pagado_con_participaciones", "MONTO PAGADO CON PARTICIPACIONES A MUN." => "monto_pagado_con_participaciones_a_mun", "MONTO PAGADO CON FORTAMUN" => "monto_pagado_con_fortamun", "NOMBRE, DENOMINACIÓN Y/O RAZÓN SOCIAL" => "nombre_denominacion_yo_razon_social", "NÚM. CONTRATO O ACUERDO DE OBRA" => "num_contrato_o_acuerdo_de_obra", "NÚM. CONTRATO" => "num_contrato", "NÚM. FACTURA O FOLIO FISCAL" => "num_factura_o_folio_fiscal", "NÚM. PÓLIZA" => "num_poliza", "OBJETO DEL CONTRATO O NOMBRE DEL PROYECTO" => "objeto_del_contrato_o_nombre_del_proyecto", "OBJETO DEL CONTRATO" => "objeto_del_contrato", "PARTIDA CLASIFICADOR" => "partida_clasificador", "PERIODO DE EJECUCIÓN FIN (dd/mm/yyyy)" => "periodo_de_ejecucion_fin_ddmmyyyy", "PERIODO DE EJECUCIÓN INICIO (dd/mm/yyyy)" => "periodo_de_ejecucion_inicio_ddmmyyyy", "RFC DE EMPRESAS CONCURSANTES (en caso de ser LP o IR)" => "rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir", "RFC DE EMPRESAS EN SONDEO DE MERCADO" => "rfc_de_empresas_en_sondeo_de_mercado", "RFC" => "rfc", "TIPO DE ENTREGABLE (documento que acredite la entrega)" => "tipo_de_entregable_documento_que_acredite_la_entrega", "TIPO DE PROCEDIMIENTO (LP o IR o AD)" => "tipo_de_procedimiento_lp_o_ir_o_ad", "VIGENCIA DEL CONTRATO FIN (dd/mm/yyyy)" => "vigencia_del_contrato_fin_ddmmyyyy", "VIGENCIA DEL CONTRATO INICIO (dd/mm/yyyy)" => "vigencia_del_contrato_inicio_ddmmyyyy"); private function validarCampoAdd1($campos, $nombreColumnaExcel, $permiteNoAplica, $idValidacion = 0, $obligatorio = true) { $mensajeValidacion = ''; $texto = $campos[$nombreColumnaExcel]; $nombreMostrar = str_contains($nombreColumnaExcel, "monto_pagado_con") ? "MONTO PAGADO CON " . mb_strtoupper(LU::t_tr("v", "fondo_programa", "S")) : array_search($nombreColumnaExcel, $this->arrayNombresExcel); if ($obligatorio && ($texto == null || $texto == '') && $nombreColumnaExcel != "tipo_de_procedimiento_lp_o_ir_o_ad") { $mensajeValidacion = "La columna "" . $nombreMostrar . "" debe llenarse. Recuerde no combinar celdas."; if ($permiteNoAplica) { $mensajeValidacion .= " Es posible utilizar N/A"; } } if (!$permiteNoAplica && mb_strtoupper($texto) == "N/A" && $nombreColumnaExcel != "tipo_de_procedimiento_lp_o_ir_o_ad") { $mensajeValidacion = "La columna "" . $nombreMostrar . "" no debe llenarse con N/A"; } $pattern = LU::get_regex($idValidacion, true); $condicion = ''; switch ($idValidacion) { case 1: $condicion = "debe contener un rango de fechas "De dd/mm/yyyy a dd/mm/yyyy" (sin comillas)."; break; case 4: $condicion = "debe ser una fecha en formato "dd/mm/yyyy" (sin comillas)."; break; case 8: $condicion = "debe ser un número asociado al capítulo , 3000 ó0."; break; case 9: $condicion = "debe ser un número asociado al capítulo 6000."; break; } if ($condicion != '') { if ($idValidacion == 4) { $fechaDT = null; try { $fechaDT = Date::excelToDateTimeObject($texto); } catch (\Exception $e) { } if ($fechaDT == null) { try { $fechaDT = date_create_from_format("d/m/Y", $texto); } catch (\Exception $e) { } } if ($fechaDT == null) { $mensajeValidacion = "La columna "" . $nombreMostrar . "" " . $condicion; } else { $campos[$nombreColumnaExcel] = $fechaDT->format("Y-m-d"); $fechaMostrar = $fechaDT->format("d/m/Y"); $yearReg = intval($fechaDT->format("Y")); if ($yearReg < 100) { $fechaFormat2y = date_create_from_format("d/m/y", $texto); $fechaMostrar = $fechaFormat2y->format("d/m/Y"); $yearReg = intval($fechaFormat2y->format("Y")); } $yearMin = intval($this->yearDeclarado); $yearMax = intval($this->yearDeclarado + 1); if ($yearReg < $yearMin || $yearReg > $yearMax) { $mensajeValidacion = "La columna "" . $nombreMostrar . "": "" . $fechaMostrar . "", debe ser una fecha entre " . $yearMin . " y " . $yearMax . ; } else { $campos[$nombreColumnaExcel] = $fechaDT->format("Y-m-d"); if (in_array($nombreColumnaExcel, array("periodo_de_ejecucion_inicio_ddmmyyyy", "vigencia_del_contrato_inicio_ddmmyyyy"))) { $this->fechaInicio = $campos[$nombreColumnaExcel]; } elseif (in_array($nombreColumnaExcel, array("periodo_de_ejecucion_fin_ddmmyyyy", "vigencia_del_contrato_fin_ddmmyyyy"))) { $this->fechaFin = $campos[$nombreColumnaExcel]; if ($this->fechaInicio != null && $this->fechaInicio > $this->fechaFin) { $mensajeValidacion = "La columna "" . $nombreMostrar . "": "" . $fechaMostrar . "", debe ser una fecha igual o posterior a la fecha de inicio."; } } } } } elseif (!preg_match($pattern, $texto)) { $mensajeValidacion = "La columna "" . $nombreMostrar . "" " . $condicion; } } if (Str::startsWith($texto, "=")) { $mensajeValidacion = "La columna "" . $nombreMostrar . "" no debe contener fórmulas, ingrese el valor real en la celda."; } if ($mensajeValidacion != '') { $this->exceptionModoAdd1($this->mensajeException = $mensajeValidacion); } } public $fechaInicio = null; public $fechaFin = null; private function validacionCamposModoAdd1($campos, $modulo, $tituloCabeceraFondo, $modalidadContratacion) { $this->fechaInicio = null; $this->fechaFin = null; $modalidadAD = mb_strtoupper($modalidadContratacion) == "POR ADMINISTRACIÓN DIRECTA"; switch ($this->hojaActual) { case 0: $this->validarCampoAdd1($campos, $tituloCabeceraFondo, false); if ($modulo == "O") { $this->validarCampoAdd1($campos, "rfc", $modalidadAD); $this->validarCampoAdd1($campos, "nombre_denominacion_yo_razon_social", $modalidadAD); $this->validarCampoAdd1($campos, "modalidad_de_contratacion_por_contrato_o_por_administracion_directa", false); $this->validarCampoAdd1($campos, "tipo_de_procedimiento_lp_o_ir_o_ad", $modalidadAD); $this->validarCampoAdd1($campos, "rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir", true); $this->validarCampoAdd1($campos, "num_contrato_o_acuerdo_de_obra", false); $this->validarCampoAdd1($campos, "objeto_del_contrato_o_nombre_del_proyecto", false); $this->validarCampoAdd1($campos, "periodo_de_ejecucion_inicio_ddmmyyyy", false, 4); $this->validarCampoAdd1($campos, "periodo_de_ejecucion_fin_ddmmyyyy", false, 4); $this->validarCampoAdd1($campos, "monto_del_contrato_civa_en_pesos", false); $this->validarCampoAdd1($campos, "de_anticipo", !$modalidadAD); $this->validarCampoAdd1($campos, "de_cumplimiento", !$modalidadAD); $this->validarCampoAdd1($campos, "de_vicios_ocultos", !$modalidadAD); $this->validarCampoAdd1($campos, "fecha_de_acta_finiquito_ddmmyyyy", false, 4); $this->validarCampoAdd1($campos, "partida_clasificador", false, 9); $this->validarCampoAdd1($campos, "num_factura_o_folio_fiscal", true); } else { $this->validarCampoAdd1($campos, "rfc", false); $this->validarCampoAdd1($campos, "nombre_denominacion_yo_razon_social", false); $this->validarCampoAdd1($campos, "tipo_de_procedimiento_lp_o_ir_o_ad", false); $this->validarCampoAdd1($campos, "rfc_de_empresas_en_sondeo_de_mercado", true); $this->validarCampoAdd1($campos, "rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir", true); $this->validarCampoAdd1($campos, "num_contrato", false); $this->validarCampoAdd1($campos, "objeto_del_contrato", false); $this->validarCampoAdd1($campos, "vigencia_del_contrato_inicio_ddmmyyyy", false, 4); $this->validarCampoAdd1($campos, "vigencia_del_contrato_fin_ddmmyyyy", false, 4); $this->validarCampoAdd1($campos, "monto_del_contrato_civa_en_pesos", false); $this->validarCampoAdd1($campos, "de_anticipo", true); $this->validarCampoAdd1($campos, "de_cumplimiento", true); $this->validarCampoAdd1($campos, "de_vicios_ocultos", true); $this->validarCampoAdd1($campos, "tipo_de_entregable_documento_que_acredite_la_entrega", false); $this->validarCampoAdd1($campos, "partida_clasificador", false, 8); $this->validarCampoAdd1($campos, "num_factura_o_folio_fiscal", true); } break; case 1: if ($modulo == "O") { $this->validarCampoAdd1($campos, "num_contrato_o_acuerdo_de_obra", false); $this->validarCampoAdd1($campos, "rfc_de_empresas_en_sondeo_de_mercado", true); $this->validarCampoAdd1($campos, "rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir", true); } else { $this->validarCampoAdd1($campos, "num_contrato", false); $this->validarCampoAdd1($campos, "rfc_de_empresas_en_sondeo_de_mercado", true); $this->validarCampoAdd1($campos, "rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir", true); } break; case 2: if ($modulo == "O") { $this->validarCampoAdd1($campos, "num_contrato_o_acuerdo_de_obra", false); $this->validarCampoAdd1($campos, "num_factura_o_folio_fiscal", false); $this->validarCampoAdd1($campos, "monto_factura_civa_en_pesos", false); $this->validarCampoAdd1($campos, "num_poliza", false); } else { $this->validarCampoAdd1($campos, "num_contrato", false); $this->validarCampoAdd1($campos, "num_factura_o_folio_fiscal", false); $this->validarCampoAdd1($campos, "monto_factura_civa_en_pesos", false); $this->validarCampoAdd1($campos, "num_poliza", false); } break; } } private function exceptionModoAdd1($mensajeDeLaExcepcion, $exceptionExterno = false) { $this->guardado_correcto = false; $errorPlantilla = false; $mensajeError = ''; $numeroFilasAumentar = 0; if (!$this->abrirExcelCorrecto) { $mensajeError = "Verifique que los " . LU::t_tr("v", "anexo", "p") . " (hojas de Excel) tengan datos asociados."; } else { $mensajeError = "Existe un dato inválido en la hoja "; switch ($this->hojaActual) { case 0: $mensajeError .= "1"; $numeroFilasAumentar = 16; break; case 1: $mensajeError .= "2"; $numeroFilasAumentar = 7; break; case 2: $mensajeError .= "3"; $numeroFilasAumentar = 8; break; } $error = $mensajeDeLaExcepcion; if (strpos($error, "Duplicate entry ") !== false && strpos($error, " for key 'contratos_unicos'") !== false) { $this->mensajeException = "El número de contrato está duplicado."; } elseif (Str::startsWith($error, "Undefined index")) { $errorPlantilla = true; $this->todosErroresExcelImport = array(); $campoEncontrado = true; $nombreCampoExcel = str_replace("Undefined index: ", '', $error); $nombreMostrar = array_search($nombreCampoExcel, $this->arrayNombresExcel); if ($nombreMostrar === false) { $nombreMostrar = $nombreCampoExcel; $campoEncontrado = false; } $linkPlantillaCorrecta = ''; $this->mensajeException = $campoEncontrado ? "No se encontró la columna: " : "Se ha detectado una columna indefinida:"; $this->mensajeException .= $nombreMostrar . " (de la hoja " . ($this->hojaActual + 1) . "). Verifique que la plantilla utilizada sea del módulo correcto y que no haya sido alterada\xa                    (nombres ni ubicación de las cabeceras y las hojas). " . $linkPlantillaCorrecta; } else { $finSubcadena = strpos($error, " at row "); if (strpos($error, " for column ") !== false && $finSubcadena !== false) { $subcadena = substr($error, 0, $finSubcadena); $caracterColumna = substr($subcadena, -1); $subcadena = substr($subcadena, 0, -1); $inicioSubcadena = strripos($subcadena, $caracterColumna); $columnaBD = substr($subcadena, $inicioSubcadena + 1); $arrayColumnasBD = array("El RFC es inválido, debe ser alfanumérico. Ingrese uno por campo." => "rfc", "El nombre, denominación y/o razon social es inválido, debe ser texto." => "nombre_d_r_social", "La modalidad de contratación es inválida, debe ser alfanumérica." => "modalidad_contratacion", "El tipo de procedimiento es inválido, debe ser alfanumérico." => "tipo_procedimiento", "El RFC de empresas en sondeo de mercado son inválidos, deben ser alfanuméricos." => "rfc_empresas_sondeo", "El RFC de empresas concursantes son inválidos, deben ser alfanuméricos." => "rfc_empresas_concursantes", "El número de contrato es inválido, debe ser alfanumérico." => "numero_contrato", "El nombre del proyecto es inválido, debe ser alfanumérico." => "nombre_proyecto", "El periodo de ejecucion inicio es inválido, debe ser una fecha "dd/mm/yyyy" (sin comillas)." => "periodo_ejecucion_inicio", "El periodo de ejecucion fin es inválido, debe ser una fecha "dd/mm/yyyy" (sin comillas)." => "periodo_ejecucion_fin", "El objeto del contrato es inválido, debe ser alfanumérico." => "objeto_contrato", "La vigencia del contrato inicio es inválida, debe ser una fecha "dd/mm/yyyy" (sin comillas)." => "vigencia_contrato_inicio", "La vigencia del contrato fin es inválida, debe ser una fecha "dd/mm/yyyy" (sin comillas)." => "vigencia_contrato_fin", "El monto del contrato es inválido, debe ser en pesos (número)." => "monto_contrato", "El número de fianza de anticipo es inválido, puede ser alfanumérico." => "de_anticipo", "El número de fianza de cumplimiento es inválido, puede ser alfanumérico." => "de_cumplimiento", "El número de fianza de vicios ocultos es inválido, puede ser alfanumérico." => "de_vicios_ocultos", "El tipo de entregable es inválido, debe ser alfanumérico." => "tipo_entregable", "La fecha del acta de finiquito es inválida, debe ser una fecha "dd/mm/yyyy" (sin comillas)." => "fecha_acta_finiquito", "El monto pagado con " . LU::t_tr("i", "fondo_programa", "s") . " es inválido, debe ser en pesos (número)." => "montoPagadoConPart", "El núm. factura es inválido, debe ser alfanumérico." => "num_factura", "El núm. póliza es inválido, debe ser alfanumérico." => "num_poliza", "El núm. factura es inválido, debe ser alfanumérico." => "nFactura", "El monto es inválido, debe ser en pesos (número)." => "nMonto"); $errorEnCampoBD = array_search($columnaBD, $arrayColumnasBD); if ($errorEnCampoBD !== false) { $this->mensajeException = $errorEnCampoBD; } } else { } } if ($exceptionExterno) { $this->mensajeException .= " Después de corregirlo inténtelo de nuevo por favor."; } $mensajeError .= " en la fila " . ($this->contadorRegistro + $numeroFilasAumentar) .  . $this->mensajeException; if ($this->soloMensajeException || $errorPlantilla) { $mensajeError = $this->mensajeException; } if (strpos($mensajeError, "El RFC "" no es válido, verifíquelo") === false) { array_push($this->todosErroresExcelImport, $mensajeError); } sort($this->todosErroresExcelImport); } } public function contratosClave(Request $r, $modulo, $id) { $clave_ff = DB::table("clave_ff as ff")->where("ff.id_ff", $id)->first(); if ($clave_ff->id_dependencia == Auth::user()->id_dependencia) { $d = Dependencias::with(array("d_e", "d_m"))->where("id_dependencia", Auth::user()->id_dependencia)->first(); $datos["claveAnual"] = DB::table("clave_ff as ff")->where("id_ff", $id)->select(DB::Raw("YEAR(fecha) as fecha"))->first()->fecha < date("Y") ? 1 : 0; $datos["id_ff"] = $id; $datos["modulo"] = $modulo; $contratos_o = DB::table("contratos_modo_basico")->where("id_ff", $id); $contratos_a = DB::table("contratos_modo_basico")->where("id_ff", $id); $datos["cerradoPorFirma"] = null; $datos["cerradoPorEnlace"] = false; if (@config("tema.ms.api_efirma")) { $constancia = CEN::where(array("id_num_auditoria" => $clave_ff->id_nauditoria, "id_ccp" => $clave_ff->clave_ff, "es_vigente" => 1, "tipo_constancia" => 2))->first(); $query = CEJE::where(array("id_clave_ff" => $clave_ff->id_ff, "es_vigente" => 1))->get(); if ($modulo != null) { $acuses = $query->where("modulo", $modulo); foreach ($acuses as $contrato) { $datos["cerradoPorFirma"][$contrato->id_contrato] = true; } } if ($constancia) { $datos["cerradoPorEnlace"] = true; } } $datos["n_ff"] = DB::table("catalogo_claves_presupuestales")->where("id", $clave_ff->clave_ff)->first()->nombre_clave; $datos["monto"] = $clave_ff->monto_recibido; $datos["gastos_diversos"] = self::totalAnexoGD($clave_ff); $datos["ramo"] = $clave_ff->ramo; $datos["monto_ramo28"] = $clave_ff->cap1k; $datos["obras"] = $clave_ff->obras == 1 ? "Si" : "No"; $datos["monto_obras"] = $contratos_o->where("modulo", "O")->where("id_ff", $id)->sum("montoPagadoConPart"); $datos["monto_adquisiciones"] = $contratos_a->where("modulo", "A")->where("id_ff", $id)->sum("montoPagadoConPart"); $datos["total_reintegro_tesofe"] = Claves::Where(array("id_ff" => $id, "id_dependencia" => $d->id_dependencia))->where("year", $clave_ff->year)->sum("reintegro_tesofe"); $datos["utilizado"] = $datos["monto_obras"] + $datos["monto_adquisiciones"] + $datos["monto_ramo28"] + $clave_ff->cap4k + $datos["gastos_diversos"]->total + $datos["total_reintegro_tesofe"]; $datos["disponible"] = $datos["monto"] - $datos["utilizado"]; $datos["cff"] = $clave_ff; $datos["anexo_cap_4k"] = null; if (in_array($clave_ff->estatus_anexo_c4k, array(1, 2, 3, 4))) { $datos["anexo_cap_4k"] = DB::table("anexo_cap_4k as ac4k")->where("ac4k.id_clave_ff", $id)->first(); } $objCNA = DB::table("catalogo_numeros_auditoria")->where("id", $clave_ff->id_nauditoria)->first(); $datos["datos_generales"] = (object) array("year" => $clave_ff->year, "dependencia" => $d->sDependencia, "siglas" => $d->sSiglas, "municipio" => $d->d_m == null ? "No aplica" : $d->d_m->municipio, "estado" => $d->d_e->estado, "id_dependencia" => $d->id_dependencia, "id_fondo" => $clave_ff->clave_ff, "id_nauditoria" => $clave_ff->id_nauditoria, "s_num_auditoria" => $objCNA->numeroAuditoria, "fecha_cierre" => date("d/m/Y", strtotime($objCNA->fecha_cierre)), "monto_asignado" => $clave_ff->monto_recibido, "monto_utilizado" => $datos["utilizado"], "monto_restante" => $datos["disponible"], "url_40" => $d->d_e->id . "/" . $d->d_m->id . "/" . $d->id_dependencia . "/" . $clave_ff->year . "/" . $clave_ff->id_nauditoria . "/" . $clave_ff->clave_ff); $datos["isNumAuditoriaCerrado"] = $objCNA->fecha_cierre < Carbon::today()->startOfDay(); $datos["contratos"] = CMB::with(array("stepper", "c_ccp", "c_s", "c_ec", "c_nf" => function ($q) { $q->with(array("f_p")); }))->where("id_ff", $id)->where("modulo", $modulo)->get(); return view("asf_layout.contratos", $datos); } else { return \Redirect::to("/api/conexion/vistaRdfs")->with("verificacion", array("No tiene autorización para entrar a esta sección.")); } } public static function obtenerDatosContrato(Request $r) { $data = DB::table("contratos_modo_basico as cmb")->join("catalogo_claves_presupuestales as ccp", "cmb.clave_ff", "=", "ccp.id")->leftjoin("control_modo_intermedio as cmi", "cmb.id", "=", "cmi.id_contrato")->where("cmb.id_ff", $r->id_cff)->where("cmb.modulo", $r->modulo)->select("cmb.id", "ccp.nombre_clave", "cmb.nombre_d_r_social", "cmb.tipo_procedimiento", "cmb.tipo_registro", "cmb.numero_contrato", "cmb.monto_contrato", "cmi.id_contrato")->get(); return response()->json($data); } public static function contarContratos(Request $r) { $data = DB::table("contratos_modo_basico as cmb")->join("catalogo_claves_presupuestales as ccp", "cmb.clave_ff", "=", "ccp.id")->where("cmb.id_ff", $r->id_cff)->where("cmb.modulo", $r->modulo)->count(); return response()->json($data); } public static function obtenerPasoContrato(Request $r) { $consulta = DB::table("contratos_modo_basico as cmb")->join("control_modo_intermedio as cmi", "cmi.id_contrato", "=", "cmb.id")->where("cmb.id", $r->id_contrato)->select("cmi.status", "cmi.step7", "cmi.step6", "cmi.step5", "cmi.step4", "cmi.step3", "cmi.step2", "cmi.step1", "cmi.step0")->first(); $step = 0; if ($step == 0) { if (!Auth::user()->u_ptu->c_intermedio_datos_iniciales || $consulta->step0) { $step++; } } if ($step == 1) { if (!Auth::user()->u_ptu->c_intermedio_suficiencia_presupuestal || $consulta->step1) { $step++; } } if ($step == 2) { if (!Auth::user()->u_ptu->c_intermedio_proceso_de_adjudicacion || $consulta->step2) { $step++; } } if ($step == 3) { if (!Auth::user()->u_ptu->c_intermedio_proceso_de_contratacion || $consulta->step3) { $step++; } } if ($step == 4) { if (!Auth::user()->u_ptu->c_intermedio_entrega || $consulta->step4) { $step++; } } if ($step == 5) { if (!Auth::user()->u_ptu->c_intermedio_facturas || $consulta->step5) { $step++; } } if ($step == 6) { if (!Auth::user()->u_ptu->c_intermedio_pago_y_polizas || $consulta->step6) { $step++; } } if (Auth::user()->u_ptu->c_intermedio_datos_iniciales && Auth::user()->u_ptu->c_intermedio_suficiencia_presupuestal && Auth::user()->u_ptu->c_intermedio_proceso_de_adjudicacion && Auth::user()->u_ptu->c_intermedio_proceso_de_contratacion && Auth::user()->u_ptu->c_intermedio_entrega && Auth::user()->u_ptu->c_intermedio_facturas && Auth::user()->u_ptu->c_intermedio_pago_y_polizas) { if ($step == 7 && $consulta->step7) { $step++; } } $url = "/layouts/contratos/intermedio/" . $step . "/" . $r->id_contrato . "/" . $r->modulo . "/" . $r->id_cff; return response()->json($url); } public static function verInformacionContrato(Request $r) { $datos["contrato"] = CMB::with(array("stepper", "c_ccp", "c_s", "c_ec", "c_nf" => function ($q) { $q->with(array("f_p")); }))->where("id", $r->id_contrato)->get(); $listaRegs = array(); $listaRegs["id"] = $datos["contrato"][0]->id; $listaRegs["clave_ff"] = $datos["contrato"][0]->c_ccp->nombre_clave; $listaRegs["rfc"] = $datos["contrato"][0]->rfc; $listaRegs["nombre_d_r_social"] = $datos["contrato"][0]->nombre_d_r_social; $listaRegs["rfc_empresas_sondeo"] = $datos["contrato"][0]->c_s; $listaRegs["rfc_empresas_concursantes"] = $datos["contrato"][0]->c_ec; $listaRegs["numero_contrato"] = $datos["contrato"][0]->numero_contrato; $listaRegs["monto_contrato"] = $datos["contrato"][0]->monto_contrato; $listaRegs["de_anticipo"] = $datos["contrato"][0]->de_anticipo; $listaRegs["de_cumplimiento"] = $datos["contrato"][0]->de_cumplimiento; $listaRegs["de_vicios_ocultos"] = $datos["contrato"][0]->de_vicios_ocultos; $listaRegs["monto_pagado_con_part"] = $datos["contrato"][0]->montoPagadoConPart; $listaRegs["partida_clasificador"] = $datos["contrato"][0]->partidaClasificador; $listaRegs["num_factura"] = $datos["contrato"][0]->c_nf; $listaRegs["tipo_registro"] = $datos["contrato"][0]->tipo_registro; switch ($datos["contrato"][0]->nombre_d_r_social) { case "lp": $listaRegs["tipo_procedimiento"] = "Licitación pública"; break; case "ir": $listaRegs["tipo_procedimiento"] = "Invitación restringida"; break; case "ad": $listaRegs["tipo_procedimiento"] = "Adjudicación directa"; break; default: $listaRegs["tipo_procedimiento"] = "No aplica"; break; } if ($r->modulo == "O") { $listaRegs["modalidad-contratacion"] = $datos["contrato"][0]->modalidad_contratacion; $listaRegs["nombre_proyecto"] = $datos["contrato"][0]->nombre_proyecto; $listaRegs["periodo_ejecucion_inicio"] = $datos["contrato"][0]->periodo_ejecucion_inicio; $listaRegs["periodo_ejecucion_fin"] = $datos["contrato"][0]->periodo_ejecucion_fin; $listaRegs["fecha_acta_finiquito"] = $datos["contrato"][0]->fecha_acta_finiquito; } elseif ($r->modulo == "A") { $listaRegs["objeto_contrato"] = $datos["contrato"][0]->objeto_contrato; $listaRegs["vigencia_contrato_inicio"] = $datos["contrato"][0]->vigencia_contrato_inicio; $listaRegs["vigencia_contrato_fin"] = $datos["contrato"][0]->vigencia_contrato_fin; $listaRegs["tipo_entregable"] = $datos["contrato"][0]->tipo_entregable; } return response()->json($listaRegs); } public static function totalAnexoGD($objCFF) { $tieneAnexoGD = !in_array($objCFF->estatus_archivo, array(0, 5)); $totalAGDO = $objCFF->fondo_revolvente; return (object) array("tieneAnexo" => $tieneAnexoGD, "total" => $totalAGDO); } public function editarContrato(Request $r, $modulo, $clave, $id) { $clave_ff = DB::table("clave_ff as ff")->where("ff.id_ff", $clave)->first(); $datos["cff"] = DB::table("clave_ff")->where("id_ff", $clave)->first(); $datos["n_ff"] = DB::table("catalogo_claves_presupuestales")->where("id", $clave_ff->clave_ff)->first()->nombre_clave; $datos["clave"] = $clave; $datos["modulo"] = $modulo; $datos["id_contrato"] = $id; $datos["contratos"] = DB::table("contratos_modo_basico as cmb")->join("catalogo_claves_presupuestales as tcff", "cmb.clave_ff", "=", "tcff.id")->where("cmb.id", $id)->select("cmb.*", "tcff.nombre_clave")->get(); return View("asf_layout.editar_contrato", $datos); } public function modoClave(Request $r, $modulo, $id) { $clave_ff = DB::table("clave_ff as ff")->where("ff.id_ff", $id)->first(); $ccp = DB::table("catalogo_claves_presupuestales")->where("id", $clave_ff->clave_ff)->first(); $datos["n_ff"] = $ccp->nombre_clave; $datos["ccp_id"] = $ccp->id; $datos["c_ff"] = $clave_ff->clave_ff; $datos["cff"] = DB::table("clave_ff as c")->join("catalogo_claves_presupuestales as tcff", "c.clave_ff", "=", "tcff.id")->where("c.id_ff", $id)->select("c.*", "tcff.nombre_clave")->first(); $datos["clave"] = $id; $datos["modulo"] = $modulo; $datos["year"] = $r->year; $datos["nAuditoria"] = $clave_ff->id_nauditoria; switch ($r->modo) { case 1: $datos["contratos"] = DB::table("contratos_excel_files as c")->join("usuarios as u", "u.id", "=", "c.id_usuario")->join("clave_ff as cff", "c.id_ff", "=", "cff.id_ff")->join("catalogo_claves_presupuestales as ccp", "cff.clave_ff", "=", "ccp.id")->where("c.id_ff", $id)->where("c.modulo", $modulo)->select("c.*", "ccp.nombre_clave as fondo_programa", DB::raw("CONCAT(u.firstname,' ',u.lastname) as username"))->get(); return view("asf_layout.modo.modo1", $datos); break; case 2: $datos["contratos"] = DB::table("contratos_modo_basico as c")->join("catalogo_claves_presupuestales as tcff", "c.clave_ff", "=", "tcff.id")->join("usuarios as u", "u.id", "=", "c.id_usuario")->where("c.id_ff", $id)->where("c.modulo", $modulo)->wherein("c.tipo_registro", array("1", "2"))->select("c.*", "tcff.nombre_clave as nombre_clave", DB::raw("CONCAT(u.firstname,' ',u.lastname) as username"))->get(); $datos["id_contrato"] = $r->has("id_contrato") ? $r->id_contrato : "void"; return View("asf_layout.modo.modo2", $datos); break; case 3: $id_contrato = DB::table("contratos_modo_basico")->insertGetId(array("id_ff" => $id, "id_usuario" => Auth::user()->id, "clave_ff" => $datos["c_ff"], "tipo_registro" => 3, "modulo" => $modulo)); DB::table("control_modo_intermedio")->insert(array("id_ff" => $id, "modulo" => $modulo, "id_contrato" => $id_contrato)); DB::table("files_contratos_modo_basico")->insert(array("id_ff" => $id, "modulo" => $modulo, "id_contrato" => $id_contrato)); return \Redirect::to("/layouts/contratos/intermediox/" . $id_contrato . "/" . $modulo . "/" . $id); break; } } public $lista_anexo_regs = array(); public $todosErroresExcelImport = array(); public $yearDeclarado = 0; public $userAnexo; public $hojasAnexo; public $idNumAuditoriaAnexo; public $idCcpAnexo; public $tipoVistaAnexo; public $archivoExcelAnexo; public function modoAdd(Request $r, $modo, $modulo, $id) { set_time_limit(0); $url = ''; $patternRFC = LU::get_regex(0, true); switch ($modo) { case 1: set_time_limit(0); $mensajeError = ''; $contieneArchivo = false; try { if ($r->has("archivo_excel")) { $data = explode(",", $r->archivo_excel); $b64Data = base64_decode($data[1]); $contieneArchivo = true; } } catch (\Exception $ex) { } if ($contieneArchivo) { $path = "/uploads/" . $r->year . "/basico/" . $modulo . "/"; $name = ($modulo == "O" ? "anexoObras_" : "anexoAdq_") . $id . "-" . Auth::user()->id . "-" . date("Ymd_His") . ".xlsx"; $url = $path . $name; $dirname = dirname(public_path() . $url); if (!is_dir($dirname)) { mkdir($dirname, 493, true); } $file = fopen(public_path() . $url, "wb"); fwrite($file, $b64Data); fclose($file); try { $this->yearDeclarado = $r->year; $this->idCcpAnexo = $r->ccp_id; $this->userAnexo = Auth::user(); try { $ExcelImport = $modulo == "O" ? new AnexoObras($this->yearDeclarado, $this->userAnexo, $id, $modulo) : new AnexoAdq($this->yearDeclarado, $this->userAnexo, $id, $modulo); Excel::import($ExcelImport, public_path($url)); } catch (\Throwable $e) { $ExcelImport->todosErroresExcelImport["Hoja " . $ExcelImport->hojaActualAnalizada . ]["No se pudo analizar, verifique la plantilla y que no haya fórmulas que involucren diferentes hojas"] = array(); } $this->lista_anexo_regs = $ExcelImport->lista_anexo_regs; $this->todosErroresExcelImport = $ExcelImport->todosErroresExcelImport; $hayProblemaEmail = false; if (!sizeof($this->todosErroresExcelImport)) { $hayProblemaEmail = $this->guardarAdqObras($modulo, $id, $r->correo_contacto, $url); } if (!sizeof($this->todosErroresExcelImport)) { $datos = array("hayProblemaEmail" => $hayProblemaEmail); } } catch (\Exception $e) { $error = $e->getMessage(); switch (true) { case strpos($error, "Your requested sheet name [") !== false: $inicioNombre = substr($error, strpos($error, "[") + 1); $finalNombre = strpos($inicioNombre, "]"); $nombreHoja = substr($inicioNombre, 0, $finalNombre); $mensajeError = "No se encontró la hoja "" . $nombreHoja . "", use la plantilla correcta"; break; default: $mensajeError = "Error durante el análisis del documento, comuníquese con servicio técnico"; break; } } } else { $mensajeError = "No se encontró el archivo de Excel"; } if ($mensajeError != '') { $this->todosErroresExcelImport["No pudo analizarse. "][$mensajeError] = array(); } if (sizeof($this->todosErroresExcelImport)) { $cargado = false; foreach ($this->todosErroresExcelImport as $kHojas => $hojas) { if (array_key_exists("cargado", $hojas)) { unset($this->todosErroresExcelImport[$kHojas]["cargado"]); $cargado = true; } } if ($cargado) { $cff = Claves::where("id_ff", $id)->first(); if ($modulo == "A") { if ($cff->estatus_anexo_adq == 0) { $cff->estatus_anexo_adq = 1; $datos["cargado"] = "Se encontró un archivo cargado anteriormente, Se actualizará el estatus " . LU::t_tr("de_d", "anexo", "S") . " en la Vista General"; } } else { if ($cff->estatus_anexo_obras == 0) { $cff->estatus_anexo_obras = 1; $datos["cargado"] = "Se encontró un archivo cargado anteriormente, Se actualizará el estatus " . LU::t_tr("de_d", "anexo", "S") . " en la Vista General"; } } $cff->save(); DB::commit(); } $datos["errores"] = $this->todosErroresExcelImport; if ($url != '') { unlink(public_path() . $url); } } return response()->json($datos); $numContratos = 0; DB::beginTransaction(); $this->guardado_correcto = true; $this->modulo = $modulo; $datos["modulo"] = $modulo; $datos["id_ff"] = $id; $clave_ff = DB::table("clave_ff")->where("id_ff", $id)->first()->clave_ff; $this->c_ff = $clave_ff; $this->yearDeclarado = $r->year; $datos["id_usuario"] = Auth::user()->id; $datos["correo_contacto"] = $r->correo_contacto; $datos["created_at"] = date("Y-m-d H:i:s"); $query = DB::table("contratos_excel_files")->where("id_ff", $id); if ($query->count() < 1) { $id_cef = DB::table("contratos_excel_files")->insertGetId($datos); } elseif ($query->count() >= 1) { $query_2 = $query->whereNull("url_archivo"); if ($query_2->count() < 1) { $id_cef = DB::table("contratos_excel_files")->insertGetId($datos); } else { $id_cef = $query->whereNull("url_archivo")->first()->id; } } $name = ''; $path = ''; if (Input::hasFile("archivo_excel")) { $name = ($modulo == "O" ? "AnexoObrasPublicas_" : "AnexoAdquisiciones_") . $clave_ff . "_" . $id_cef .  . Input::file("archivo_excel")->getClientOriginalExtension(); $path = "/uploads/" . $r->year . "/basico/" . $id . "/"; $datos["url_archivo"] = $path . $name; $datos["updated_at"] = Carbon::now(); Input::file("archivo_excel")->move(public_path() . "/" . $path, $name); $this->todosErroresExcelImport = array(); $this->mensajeException = ''; try { $this->abrirExcelCorrecto = false; $ExcelImport = new ExcelImport($this); Excel::import($ExcelImport, public_path($path . $name)); $this->abrirExcelCorrecto = true; $this->hojaActual = 0; $this->contadorRegistro = 0; $idFFClaveFF = 0; $nombreFondoPrograma = ''; $yearCompare = 0; $query = DB::table("clave_ff")->where("id_ff", $id); if ($query->count() >= 1) { $yearCompare = $query->first()->year; $idDependenciaCompare = Auth::user()->id_dependencia; $claveFFCompare = $clave_ff; $query = DB::table("fondo_dependencia")->where(array("id_dependencia" => $idDependenciaCompare, "year" => $yearCompare, "clave_ff" => $claveFFCompare)); if ($query->count() >= 1) { $idFondoDependenciaCompare = $query->first()->id; $query = DB::table("clave_ff")->where(array("id_fondo_dependencia" => $idFondoDependenciaCompare)); if ($query->count() >= 1) { $idFFClaveFF = $query->first()->id_ff; } } } $idFFClaveFF = $id; if ($idFFClaveFF == 0) { throw new Exception($this->mensajeException = LU::t_tr("D", "fondo_programa", "s") . ", el año y " . LU::t_tr("d", "dependencia", "s") . " no coinciden, verifíquelos."); } else { $query = DB::table("catalogo_claves_presupuestales")->where(array("id" => $clave_ff)); if ($query->count() >= 1) { $nombreFondoPrograma = $query->first()->nombre_clave; } else { throw new Exception($this->mensajeException = LU::t_tr("D", "fondo_programa", "s") . " no se encontró, verifíquelo."); } } $arrayNumContratosAnexo0 = array(); $arrayNumContratosAnexo1 = array(); $arrayNumContratosAnexo2 = array(); $tituloCabeceraFondo = "monto_pagado_con_" . strtolower(LU::limpiarSimplificarString($nombreFondoPrograma)); $modContratacion = ''; $this->soloMensajeException = false; foreach ($this->lista_contratos_modo_basico as $i => $cmb) { echo var_dump(" "); $this->hojaActual = 0; $this->contadorRegistro = $i; $todosCamposVacios = true; $almenosUnVacio = false; $saltar = true; foreach ($cmb as $c => $atributo) { if ($saltar) { $saltar = false; } else { if ($atributo) { $todosCamposVacios = false; } else { $almenosUnVacio = true; } } } if ($todosCamposVacios) { continue; } if ($modulo == "O") { $modContratacion = $cmb["modalidad_de_contratacion_por_contrato_o_por_administracion_directa"]; $this->validacionCamposModoAdd1($cmb, $modulo, $tituloCabeceraFondo, $modContratacion); } else { $this->validacionCamposModoAdd1($cmb, $modulo, $tituloCabeceraFondo, ''); } $arr_row_cmb = array(); $arr_row_cmb["id_ff"] = $idFFClaveFF; $arr_row_cmb["id_usuario"] = Auth::user()->id; $arr_row_cmb["tipo_registro"] = 1; $arr_row_cmb["modulo"] = $modulo; $arr_row_cmb["clave_ff"] = $clave_ff; if ($cmb["rfc"] == "N/A") { $arr_row_cmb["rfc"] = null; } elseif (preg_match($patternRFC, $cmb["rfc"])) { $arr_row_cmb["rfc"] = $cmb["rfc"]; } else { $this->exceptionModoAdd1($this->mensajeException = "El RFC "" . $cmb["rfc"] . "" no es válido, verifíquelo."); } $arr_row_cmb["rfc"] = $cmb["rfc"] == "N/A" ? null : $cmb["rfc"]; $arr_row_cmb["nombre_d_r_social"] = $cmb["nombre_denominacion_yo_razon_social"] == "N/A" ? null : $cmb["nombre_denominacion_yo_razon_social"]; $arr_row_cmb["monto_contrato"] = $cmb["monto_del_contrato_civa_en_pesos"] == "N/A" ? null : $cmb["monto_del_contrato_civa_en_pesos"]; $arr_row_cmb["de_anticipo"] = $cmb["de_anticipo"] == "N/A" ? null : $cmb["de_anticipo"]; $arr_row_cmb["de_cumplimiento"] = $cmb["de_cumplimiento"] == "N/A" ? null : $cmb["de_cumplimiento"]; $arr_row_cmb["de_vicios_ocultos"] = $cmb["de_vicios_ocultos"] == "N/A" ? null : $cmb["de_vicios_ocultos"]; $arr_row_cmb["partidaClasificador"] = $cmb["partida_clasificador"] == "N/A" ? null : $cmb["partida_clasificador"]; $arr_row_cmb["montoPagadoConPart"] = $cmb[$tituloCabeceraFondo] == "N/A" ? null : $cmb[$tituloCabeceraFondo]; $arrayTiposProcedimientos = array("lp" => "lp", "ir" => "ir", "ad" => "ad"); $tipoDeProcedimiento = strtolower($cmb["tipo_de_procedimiento_lp_o_ir_o_ad"]); $puedeAsignarNoAplica = $modulo == "O" && mb_strtoupper($modContratacion) == "POR ADMINISTRACIÓN DIRECTA"; if ($puedeAsignarNoAplica) { $arr_row_cmb["tipo_procedimiento"] = null; } elseif (!array_key_exists($tipoDeProcedimiento, $arrayTiposProcedimientos)) { $mensaje = "Verifique que el TIPO DE PROCEDIMIENTO sea: LP o IR o AD."; $this->exceptionModoAdd1($this->mensajeException = $mensaje); } else { $arr_row_cmb["tipo_procedimiento"] = $arrayTiposProcedimientos[$tipoDeProcedimiento]; } $numeroContrato = $modulo == "O" ? $cmb["num_contrato_o_acuerdo_de_obra"] : $cmb["num_contrato"]; if ($numeroContrato == "N/A") { $this->exceptionModoAdd1($this->mensajeException = "El número de contrato no puede ser N/A. Use la nomenclatura SNCx (Sin número de contrato, donde x es un número) en los " . LU::t_tr("v", "anexo", "p") . " para asociar los datos."); } else { $arr_row_cmb["numero_contrato"] = strpos($numeroContrato, "SNC") === 0 ? libUtilities::consecutivos($arr_row_cmb["id_ff"], $yearCompare) : $numeroContrato; } if ($modulo == "O") { $arrayModalidadesContratacion = array("POR CONTRATO" => "Por contrato", "POR ADMINISTRACIÓN DIRECTA" => "Por administración directa"); $modalidadDeContratacion = mb_strtoupper($cmb["modalidad_de_contratacion_por_contrato_o_por_administracion_directa"]); if (!array_key_exists($modalidadDeContratacion, $arrayModalidadesContratacion)) { $this->exceptionModoAdd1($this->mensajeException = "Verifique que la MODALIDAD DE CONTRATACIÓN sea:\xa                                        POR CONTRATO o POR ADMINISTRACIÓN DIRECTA"); } else { $arr_row_cmb["modalidad_contratacion"] = $arrayModalidadesContratacion[$modalidadDeContratacion]; } $arr_row_cmb["nombre_proyecto"] = $cmb["objeto_del_contrato_o_nombre_del_proyecto"] == "N/A" ? null : $cmb["objeto_del_contrato_o_nombre_del_proyecto"]; $arr_row_cmb["periodo_ejecucion_inicio"] = $cmb["periodo_de_ejecucion_inicio_ddmmyyyy"] == "N/A" ? null : $cmb["periodo_de_ejecucion_inicio_ddmmyyyy"]; $arr_row_cmb["periodo_ejecucion_fin"] = $cmb["periodo_de_ejecucion_fin_ddmmyyyy"] == "N/A" ? null : $cmb["periodo_de_ejecucion_fin_ddmmyyyy"]; $arr_row_cmb["fecha_acta_finiquito"] = $cmb["fecha_de_acta_finiquito_ddmmyyyy"] == "N/A" ? null : $cmb["fecha_de_acta_finiquito_ddmmyyyy"]; } else { $arr_row_cmb["objeto_contrato"] = $cmb["objeto_del_contrato"] == "N/A" ? null : $cmb["objeto_del_contrato"]; $arr_row_cmb["vigencia_contrato_inicio"] = $cmb["vigencia_del_contrato_inicio_ddmmyyyy"] == "N/A" ? null : $cmb["vigencia_del_contrato_inicio_ddmmyyyy"]; $arr_row_cmb["vigencia_contrato_fin"] = $cmb["vigencia_del_contrato_fin_ddmmyyyy"] == "N/A" ? null : $cmb["vigencia_del_contrato_fin_ddmmyyyy"]; $arr_row_cmb["tipo_entregable"] = $cmb["tipo_de_entregable_documento_que_acredite_la_entrega"] == "N/A" ? null : $cmb["tipo_de_entregable_documento_que_acredite_la_entrega"]; } $id_cmb = 0; try { $id_cmb = DB::table("contratos_modo_basico")->insertGetId($arr_row_cmb); $numContratos += 1; } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage()); } array_push($arrayNumContratosAnexo0, $numeroContrato); $array_rfc_sondeo = array(); $array_rfc_concursantes = array(); $this->hojaActual = 1; foreach ($this->lista_rfc_empresas_sondeo_y_concursantes as $j => $resc) { $this->contadorRegistro = $j; $todosCamposVacios = true; $almenosUnVacio = false; $saltar = true; foreach ($resc as $c => $atributo) { if ($saltar) { $saltar = false; } else { if ($atributo) { $todosCamposVacios = false; } else { $almenosUnVacio = true; } } } if ($todosCamposVacios) { continue; } if ($modulo == "O") { $this->validacionCamposModoAdd1($resc, $modulo, $tituloCabeceraFondo, $modContratacion); } else { $this->validacionCamposModoAdd1($resc, $modulo, $tituloCabeceraFondo, ''); } $numContratoHoja = $modulo == "O" ? $resc["num_contrato_o_acuerdo_de_obra"] : $resc["num_contrato"]; array_push($arrayNumContratosAnexo1, $numContratoHoja); if ($numeroContrato == $numContratoHoja) { $arr_row_res = array(); $arr_row_res["id_contrato"] = $id_cmb; if ($resc["rfc_de_empresas_en_sondeo_de_mercado"] == "N/A") { } elseif (preg_match($patternRFC, $resc["rfc_de_empresas_en_sondeo_de_mercado"])) { $arr_row_res["rfc"] = $resc["rfc_de_empresas_en_sondeo_de_mercado"]; $rfc_sondeo["srfcsondeo"] = $arr_row_res["rfc"]; array_push($array_rfc_sondeo, $rfc_sondeo); try { $id_res = DB::table("rfc_empresas_sondeo")->insertGetId($arr_row_res); } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage()); } } else { $this->exceptionModoAdd1($this->mensajeException = "El RFC "" . $resc["rfc_de_empresas_en_sondeo_de_mercado"] . "" no es válido, verifíquelo."); } $arr_row_rec = array(); $arr_row_rec["id_contrato"] = $id_cmb; if ($resc["rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir"] == "N/A") { } elseif (preg_match($patternRFC, $resc["rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir"])) { $arr_row_rec["rfc"] = $resc["rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir"]; $rfc_concursante["srfc"] = $arr_row_rec["rfc"]; array_push($array_rfc_concursantes, $rfc_concursante); try { $id_rec = DB::table("rfc_empresas_concursantes")->insertGetId($arr_row_rec); } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage()); } } else { $this->exceptionModoAdd1($this->mensajeException = "El RFC "" . $resc["rfc_de_empresas_concursantes_en_caso_de_ser_lp_o_ir"] . "" no es válido, verifíquelo."); } } } $json_res = sizeof($array_rfc_sondeo) == 0 ? null : json_encode($array_rfc_sondeo); try { $valorCorrecto = $json_res == "[]" ? null : $json_res; DB::table("contratos_modo_basico")->where("id", $id_cmb)->update(array("rfc_empresas_sondeo" => $valorCorrecto)); } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage()); } $json_rec = sizeof($array_rfc_concursantes) == 0 ? null : json_encode($array_rfc_concursantes); try { $valorCorrecto = $json_rec == "[]" ? null : $json_rec; DB::table("contratos_modo_basico")->where("id", $id_cmb)->update(array("rfc_empresas_concursantes" => $valorCorrecto)); } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage()); } $array_num_factura = array(); $array_polizas = array(); $this->hojaActual = 2; foreach ($this->lista_num_factura as $l => $nf) { $this->contadorRegistro = $l; $todosCamposVacios = true; $almenosUnVacio = false; $saltar = true; foreach ($nf as $c => $atributo) { if ($saltar) { $saltar = false; } else { if ($atributo) { $todosCamposVacios = false; } else { $almenosUnVacio = true; } } } if ($todosCamposVacios) { continue; } if ($modulo == "O") { $this->validacionCamposModoAdd1($nf, $modulo, $tituloCabeceraFondo, $modContratacion); } else { $this->validacionCamposModoAdd1($nf, $modulo, $tituloCabeceraFondo, ''); } $numContratoHoja = $modulo == "O" ? $nf["num_contrato_o_acuerdo_de_obra"] : $nf["num_contrato"]; array_push($arrayNumContratosAnexo2, $numContratoHoja); if ($numeroContrato == $numContratoHoja) { $arr_row_p = array(); $arr_row_p["id_contrato"] = $id_cmb; $arr_row_p["num_poliza"] = $nf["num_poliza"]; $idPoliza = 0; $poliza = DB::table("polizas")->where(array("id_contrato" => $arr_row_p["id_contrato"], "num_poliza" => $arr_row_p["num_poliza"]))->get(); $idPoliza = count($poliza) > 0 ? $poliza[0]->id : DB::table("polizas")->insertGetId($arr_row_p); $arr_row_nf = array(); $arr_row_nf["id_contrato"] = $id_cmb; $arr_row_nf["nFactura"] = $nf["num_factura_o_folio_fiscal"] == "N/A" ? null : $nf["num_factura_o_folio_fiscal"]; $arr_row_nf["nMonto"] = $nf["monto_factura_civa_en_pesos"] == "N/A" ? null : $nf["monto_factura_civa_en_pesos"]; $arr_row_nf["idPoliza"] = $idPoliza; $num_factura_cmb["nFactura"] = '' . $arr_row_nf["nFactura"]; $num_factura_cmb["nMonto"] = '' . $arr_row_nf["nMonto"]; $num_factura_cmb["num_poliza"] = '' . $arr_row_p["num_poliza"]; array_push($array_num_factura, $num_factura_cmb); try { $id_nf = DB::table("num_factura")->insertGetId($arr_row_nf); } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage()); } } } $json_nf = sizeof($array_num_factura) == 0 ? null : json_encode($array_num_factura); try { $valorCorrecto = $json_nf == "[]" ? null : $json_nf; DB::table("contratos_modo_basico")->where("id", $id_cmb)->update(array("num_factura" => $valorCorrecto)); } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage()); } } $this->soloMensajeException = true; $arrayNumContratos0unicos = array_unique($arrayNumContratosAnexo0); $arrayNumContratos1unicos = array_unique($arrayNumContratosAnexo1); $arrayNumContratos2unicos = array_unique($arrayNumContratosAnexo2); foreach ($arrayNumContratos1unicos as $n => $numContrato) { if (!in_array($numContrato, $arrayNumContratos0unicos) && $numContrato != '') { $this->exceptionModoAdd1($this->mensajeException = "El número de contrato " . $numContrato . " (de la hoja 2) no está asociado a la hoja 1, verifíquelo."); } } foreach ($arrayNumContratos2unicos as $n => $numContrato) { if (!in_array($numContrato, $arrayNumContratos0unicos) && $numContrato != '') { $this->exceptionModoAdd1($this->mensajeException = "El número de contrato " . $numContrato . " (de la hoja) no está asociado a la hoja, verifíquelo."); } } $this->soloMensajeException = false; try { DB::table("contratos_excel_files")->where("id", $id_cef)->update($datos); } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage()); } } catch (\Exception $e) { $this->exceptionModoAdd1($e->getMessage(), true); } } else { $this->guardado_correcto = false; } if ($numContratos == 0) { $linkPlantillaCorrecta = ''; array_push($this->todosErroresExcelImport, "No se encontraron contratos en el archivo, revise si la plantilla es la correcta. " . $linkPlantillaCorrecta); $this->guardado_correcto = false; } if ($this->guardado_correcto) { DB::commit(); try { Mail::send(new ME($id, date("Y-m-d H:i:s"), $modo, $numContratos, $modulo)); } catch (\Throwable $th) { return \Redirect::to("/layouts/contratos/" . $modulo . "/" . $id)->withErrors(array("Se guardaron correctamente los contratos, pero el correo electrónico no pudo enviarse."))->withInput(); } return \Redirect::to("/layouts/contratos/" . $modulo . "/" . $id); } else { DB::rollback(); try { unlink($path . $name); } catch (\Exception $e) { } $cantidadErrores = 0; foreach ($this->todosErroresExcelImport as $key => $value) { $cantidadErrores += 1; if (strpos($value, "No se encontraron contratos en el archivo") !== false) { if (count($this->todosErroresExcelImport) != 1) { unset($this->todosErroresExcelImport[$key]); } } } } break; case 2: DB::beginTransaction(); try { $datos = $r->except(array("_token", "none")); $numContratos = sizeof($r->clave_ff); $keys = array_keys($datos); for ($i = 0; $i < count($datos[$keys[0]]); $i++) { $arr_row = array(); $arr_row["created_at"] = date("Y-m-d H:i:s"); $arr_row["id_usuario"] = Auth::user()->id; $arr_row["tipo_registro"] = 2; $arr_row["modulo"] = $modulo; if (!in_array("numero_contrato", $keys)) { $year = Claves::where("id_ff", $id)->first()->year; $arr_row["numero_contrato"] = libUtilities::consecutivos($id, $year); } $empr_conc = "[]"; $empr_sondeo = "[]"; $num_fac = "[]"; foreach ($keys as $k) { $arr_row[$k] = $datos[$k][$i]; if ($k == "numero_contrato") { if ($arr_row["numero_contrato"] == null || $arr_row["numero_contrato"] == '') { $arr_row["numero_contrato"] = libUtilities::consecutivos($id, Claves::where("id_ff", $id)->first()->year); } } if ($k == "rfc_empresas_concursantes" && $datos[$k][$i] != null) { $empr_conc = $datos[$k][$i]; } if ($k == "rfc_empresas_sondeo" && $datos[$k][$i] != null) { $empr_sondeo = $datos[$k][$i]; } if ($k == "num_factura" && $datos[$k][$i] != null) { $num_fac = $datos[$k][$i]; } } $contrato_id = DB::table("contratos_modo_basico")->insertGetId($arr_row); foreach (json_decode($empr_conc) as $x) { DB::table("rfc_empresas_concursantes")->insert(array("id_contrato" => $contrato_id, "rfc" => $x->srfc)); } foreach (json_decode($empr_sondeo) as $y) { DB::table("rfc_empresas_sondeo")->insert(array("id_contrato" => $contrato_id, "rfc" => $y->srfcsondeo)); } foreach (json_decode($num_fac) as $z) { $arr_row_p = array(); $arr_row_p["id_contrato"] = $contrato_id; $arr_row_p["num_poliza"] = $z->num_poliza; $idPoliza = 0; $poliza = DB::table("polizas")->where(array("id_contrato" => $contrato_id, "num_poliza" => $z->num_poliza))->get(); $idPoliza = count($poliza) > 0 ? $poliza[0]->id : DB::table("polizas")->insertGetId($arr_row_p); DB::table("num_factura")->insert(array("id_contrato" => $contrato_id, "nFactura" => $z->nFactura, "nMonto" => $z->nMonto, "idPoliza" => $idPoliza)); } } DB::commit(); try { Mail::send(new ME($id, date("Y-m-d H:i:s"), $modo, $numContratos, $modulo)); } catch (\Throwable $th) { return \Redirect::to("/layouts/contratos/" . $modulo . "/" . $id)->withErrors(array("Se guardó correctamente, pero el correo electrónico no pudo enviarse."))->withInput(); } return \Redirect::to("/layouts/contratos/" . $modulo . "/" . $id); } catch (\Exception $e) { DB::rollback(); $error = $e->getMessage(); if (strpos($error, "Duplicate entry ") !== false && strpos($error, " for key 'numero_contrato'") !== false) { return \Redirect::to("/layouts/contratos/" . $modulo . "/" . $id)->withErrors(array("El número de contrato está duplicado."))->withInput(); } } break; } } public function guardarAdqObras($modulo, $id_ff, $correo_contacto, $url_archivo) { $mensajeError = ''; $hayProblemaEmail = false; DB::Begintransaction(); try { foreach ($this->lista_anexo_regs[1] as $kreg => $reg) { $arrayc_s = array(); $arrayc_ec = array(); $arrayHoja3 = array(); $obj = new cmb(); foreach ($reg as $kattr => $attr) { switch ($kattr) { case "regsH2": if (array_key_exists("rfc_empresas_sondeo", $attr)) { $aRFC = array(); foreach ($attr["rfc_empresas_sondeo"] as $res => $celdasrfc) { $vRfc = $celdasrfc[0]; $aRFC[] = array("srfcsondeo" => $res); $arrayc_s[] = new RES(array("rfc" => $res, "empresa" => $vRfc["nombre"])); } $obj["rfc_empresas_sondeo"] = json_encode($aRFC); } if (array_key_exists("rfc_empresas_concursantes", $attr)) { $aRFC = array(); foreach ($attr["rfc_empresas_concursantes"] as $rec => $celdasrfc) { $vRfc = $celdasrfc[0]; $aRFC[] = array("srfc" => $rec); $arrayc_ec[] = new REC(array("rfc" => $rec, "empresa" => $vRfc["nombre"])); } $obj["rfc_empresas_concursantes"] = json_encode($aRFC); } break; case "regsH3": $aFacturas = array(); foreach ($attr as $krh3 => $rh3) { $oFactura = array(); $oFactura["nFactura"] = $rh3["nFactura"]; $oFactura["nMonto"] = $rh3["nMonto"]; if (array_key_exists("num_poliza", $rh3)) { $oFactura["num_poliza"] = $rh3["num_poliza"]; } $aFacturas[] = $oFactura; $arrayHoja3[] = $oFactura; } $obj["num_factura"] = json_encode($aFacturas); break; default: $obj[$kattr] = $attr; break; } } $obj["id_ff"] = $id_ff; $obj["id_usuario"] = Auth::user()->id; $obj["clave_ff"] = $this->idCcpAnexo; $obj["tipo_registro"] = 1; $obj["modulo"] = $modulo; $obj["status"] = 1; $obj->save(); if (sizeof($arrayc_s)) { $obj->c_s()->saveMany($arrayc_s); } if (sizeof($arrayc_ec)) { $obj->c_ec()->saveMany($arrayc_ec); } foreach ($arrayHoja3 as $krh3 => $rh3) { if (array_key_exists("num_poliza", $rh3)) { $oPoliza = new P(array("num_poliza" => $rh3["num_poliza"])); $obj->c_polizas()->save($oPoliza); $oNumFactura = new NF(array("nFactura" => $rh3["nFactura"], "nMonto" => $rh3["nMonto"], "idPoliza" => $oPoliza["id"])); } else { $oNumFactura = new NF(array("nFactura" => $rh3["nFactura"], "nMonto" => $rh3["nMonto"])); } $obj->c_nf()->save($oNumFactura); } } DB::table("contratos_excel_files")->insert(array("modulo" => $modulo, "url_archivo" => $url_archivo, "hash_archivo" => hash_file("sha6", public_path() . $url_archivo), "correo_contacto" => $correo_contacto, "id_ff" => $id_ff, "id_usuario" => Auth::user()->id)); Claves::where("id_ff", $id_ff)->update(array($modulo == "O" ? "estatus_anexo_obras" : "estatus_anexo_adq" => 1)); $hayProblemaEmail = false; } catch (\Exception $e) { $mensajeError = "No se pudo guardar " . LU::t_tr("d", "anexo", "s") . ", contacte con soporte técnico" . $e->getMessage(); } if ($mensajeError != '') { DB::rollback(); $this->todosErroresExcelImport["Analizado. "][$mensajeError] = array(); } else { DB::commit(); } return $hayProblemaEmail; } public function modoUpdate(Request $r, $modo, $modulo, $id) { $editar = $r->editar; $data = $r->except(array("_token", "_method", "editar", "none")); $data["modulo"] = $modulo; $data["tipo_registro"] = $modo; $data["id_usuario"] = Auth::user()->id; $clave = DB::table("contratos_modo_basico")->where("id", $id)->first()->id_ff; $update = DB::table("contratos_modo_basico")->where("id", $id)->update($data); DB::table("num_factura")->where("id_contrato", $id)->delete(); DB::table("polizas")->where("id_contrato", $id)->delete(); DB::table("rfc_empresas_concursantes")->where("id_contrato", $id)->delete(); DB::table("rfc_empresas_sondeo")->where("id_contrato", $id)->delete(); if ($r->rfc_empresas_concursantes != '') { foreach (json_decode($r->rfc_empresas_concursantes) as $x) { DB::table("rfc_empresas_concursantes")->insert(array("id_contrato" => $id, "rfc" => $x->srfc)); } } if ($r->rfc_empresas_sondeo != '') { foreach (json_decode($r->rfc_empresas_sondeo) as $y) { DB::table("rfc_empresas_sondeo")->insert(array("id_contrato" => $id, "rfc" => $y->srfcsondeo)); } } if ($r->num_factura != '') { foreach (json_decode($r->num_factura) as $z) { $arr_row_p = array(); $arr_row_p["id_contrato"] = $id; $arr_row_p["num_poliza"] = $z->num_poliza; $idPoliza = 0; $poliza = DB::table("polizas")->where(array("id_contrato" => $id, "num_poliza" => $z->num_poliza))->get(); $idPoliza = count($poliza) > 0 ? $poliza[0]->id : DB::table("polizas")->insertGetId($arr_row_p); DB::table("num_factura")->insert(array("id_contrato" => $id, "nFactura" => $z->nFactura, "nMonto" => $z->nMonto, "idPoliza" => $idPoliza)); } } if ($update) { if ($editar == "si") { return \Redirect::to("/layouts/contratos/" . $modulo . "/" . $clave); } else { return response()->json("OK", 200); } } else { if ($editar == "si") { return \Redirect::to("/layouts/contratos/" . $modulo . "/" . $clave); } else { return response()->json("NO", 200); } } } public function modoDelete(Request $r, $modo, $modulo, $id) { $delete = DB::table("contratos_modo_basico")->where("id", $id)->delete(); DB::table("num_factura")->where("id_contrato", "$id")->delete(); DB::table("rfc_empresas_concursantes")->where("id_contrato", "$id")->delete(); DB::table("rfc_empresas_sondeo")->where("id_contrato", "$id")->delete(); if ($delete) { return response()->json("OK", 200); } else { return response()->json("NO", 200); } } public function downloadTemplate(Request $r, $modulo) { $ruta = ''; $nombre = ''; switch ($modulo) { case "A": $ruta = "/templates/template_adquisiciones.xlsx"; $nombre = "plantilla_adquisiciones.xlsx"; break; case "O": $ruta = "/templates/template_obras.xlsx"; $nombre = "plantilla_obras.xlsx"; break; } return Storage::disk("downloads")->download($ruta, $nombre); } public function saveTesofe(Request $r) { $row = Claves::where("id_ff", $r->id)->first(); $row->reintegro_tesofe = $r->tesofe; DB::beginTransaction(); try { $row->save(); DB::commit(); return response()->json("OK", 200); } catch (\Exception $e) { DB::rollback(); $error = $e->getMessage(); return response()->json("NO", 200); } } public function eliminarFondo(Request $r, $idClaveFF) { $data = array(); $mensajeDeErrorGlobal = ''; $claveFF = Claves::find($idClaveFF); if ($claveFF == null) { $mensajeDeErrorGlobal = "No se puede eliminar " . LU::t_tr("d", "fondo", "s") . ", ya que no existe en el sistema."; } else { $estatusExistentes = ''; DB::beginTransaction(); try { $archivoEstatus = $claveFF->estatus_archivo; $estatusAnexoAdq = $claveFF->estatus_anexo_adq; $estatusAnexoObras = $claveFF->estatus_anexo_obras; $estatusAnexoEgresos = $claveFF->estatus_anexo_egresos; $estatusAnexoNomina = $claveFF->estatus_anexo_nomina; $estatusAnexoC4K = $claveFF->estatus_anexo_c4k; if (!in_array($archivoEstatus, array(0, 5))) { $estatusExistentes .= "-El estatus de " . LU::t_tr("d", "anexo", "s") . " GD (Gastos Diversos) es: " . $this->estatusAnexoArchivo($archivoEstatus) . "
"; } if (!in_array($estatusAnexoAdq, array(0, 5))) { $estatusExistentes .= "-El estatus de " . LU::t_tr("d", "anexo", "s") . " Adquisiciones es: " . $this->estatusAnexoArchivo($estatusAnexoAdq) . "
"; } if (!in_array($estatusAnexoObras, array(0, 5))) { $estatusExistentes .= "-El estatus de " . LU::t_tr("d", "anexo", "s") . " Obras Públicas es: " . $this->estatusAnexoArchivo($estatusAnexoObras) . "\xa"; } if (!in_array($estatusAnexoEgresos, array(0, 5))) { $estatusExistentes .= "-El estatus de " . LU::t_tr("d", "anexo", "s") . " Egresos es: " . $this->estatusAnexoArchivo($estatusAnexoEgresos) . "
"; } if (!in_array($estatusAnexoNomina, array(0, 5))) { $estatusExistentes .= "-El estatus de " . LU::t_tr("d", "anexo", "s") . " Nómina es: " . $this->estatusAnexoArchivo($estatusAnexoNomina) . "\xa"; } if (!in_array($estatusAnexoC4K, array(0, 5))) { $estatusExistentes .= "-El estatus de " . LU::t_tr("d", "anexo", "s") . " Cap.  es: " . $this->estatusAnexoArchivo($estatusAnexoC4K) . "
"; } if ($estatusExistentes == '') { try { $claveFF->delete(); if (isset($r->id_fondo_dependencia)) { $fondoDependencia = FD::find($r->id_fondo_dependencia); try { $fondoDependencia->delete(); } catch (\Throwable $th) { $mensajeDeErrorGlobal = "Ocurrió un error al intentar eliminar " . LU::t_tr("d", "fondo", "s") . ". Contacte a soporte técnico."; } } } catch (\Exception $e) { $mensajeDeErrorGlobal = "Ocurrió un error al intentar eliminar" . LU::t_tr("d", "fondo", "s") . "Contacte a servicio técnico." . $e->getMessage(); } } else { $mensajeDeErrorGlobal = "Solo se puede eliminar " . LU::t_tr("d", "fondo", "s") . " si sus " . LU::t_tr("v", "anexo", "p") . " se encuentran en estatus 'Sin cargar' o 'No aplica'.\xa\xaNo se puede eliminar " . LU::t_tr("d", "fondo", "s") . " debido a que: 
" . $estatusExistentes; } } catch (\Exception $e) { $mensajeDeErrorGlobal = "Ocurrió un error al intentar eliminar " . LU::t_tr("d", "fondo", "s") . " solicitado. Contacte a servicio técnico" . $e->getMessage(); } } if ($mensajeDeErrorGlobal != '') { DB::rollback(); } else { DB::commit(); } $data["errores"] = $mensajeDeErrorGlobal; return $data; } public function estatusAnexoArchivo($estatus, $tipoUsuario = 4) { $estatusReal = ''; switch ($estatus) { case 0: $estatusReal = "Aún sin cargar"; break; case 1: $estatusReal = "Cargado sin enviar"; break; case 2: $estatusReal = "Enviado " . LU::t_tr("a_d", "enlace", "s"); break; case 3: $estatusReal = "Enviado a " . LU::t_tr("d", "asf", "s"); break; case 4: switch ($tipoUsuario) { case 4: $estatusReal = "Regresado al " . LU::t_tr("v", "ejecutor", "s"); break; case 8: case 9: $estatusReal = "Regresado a finanzas"; break; default: alertaErrorIndefinido(); break; } break; case 5: $estatusReal = "No aplica"; break; default: $estatusReal = ''; break; } return $estatusReal; } public function getAlertas(Request $request) { $fechaActual = carbon::now()->startOfDay(); $query = DB::table("catalogo_numeros_auditoria as cna")->join("estados as e", "e.id", "=", "cna.id_estado")->join("municipios as m", "m.id", "=", "cna.id_municipio")->select("cna.numeroAuditoria", "cna.year", "cna.fecha_cierre", "e.estado", "m.municipio", "m.id as id_municipio")->orderBy("cna.fecha_cierre", "asc"); switch ($request->type) { case 1: case 11: case 12: $query = $query->get(); break; case 4: case 8: case 9: case 10: $query = $query->where("cna.id_estado", Auth::user()->u_d->id_estado)->where("cna.id_municipio", Auth::user()->u_d->id_municipio)->get(); break; case 3: case 7: $query = $query->where("cna.id_estado", Auth::user()->id_estado)->where("cna.id_municipio", Auth::user()->id_municipio)->get(); break; case 5: case 6: $query = $query->join("num_auditorias_de_usuario as nau", "nau.id_num_auditoria", "=", "cna.id")->where("nau.id_usuario", Auth::user()->id)->get(); break; default: paraProgramacionPreventiva(); break; } $alerts["active"] = $query->where("fecha_cierre", ">=", $fechaActual); $alerts["noDate"] = $query->where("fecha_cierre", null); $alerts["close"] = $query->where("fecha_cierre", "<", $fechaActual); return response()->json($alerts); } public function regresarEdosCuentasMulti(Request $r) { DB::beginTransaction(); $data["errores"] = array(); try { $docsFondo = DOCF::findOrFail($r->idD); $estatus = 4; foreach ($r->tipoDocsActuales as $tipoDocActual) { switch ($tipoDocActual) { case "dAC": $docsFondo->actas_cabildo = $estatus; break; case "dCCB": $docsFondo->contratos_cuentas_bancarias = $estatus; break; case "dF3": $docsFondo->formato_3 = $estatus; break; case "dF3A": $docsFondo->formato_3A = $estatus; break; case "dF3B": $docsFondo->formato_3B = $estatus; break; case "dF4": $docsFondo->formato_4 = $estatus; break; } } $docsFondo->save(); if (@config("tema.ms.api_efirma")) { $errorCancelar = LU::cancelarConstancias($r->id_ff, 1); if ($errorCancelar) { $data["errores"][] = $errorCancelar; } } } catch (\Throwable $th) { $data["errores"][] = "Error al regresar los archivos, contacte con servicio técnico." . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); } else { DB::commit(); } return response()->json($data); } public function regresarEdosCta(Request $r) { DB::Begintransaction(); $data["errores"] = array(); try { $estatus = 4; $columna = $r->resEdos; $docsFondo = DB::table("documentos_fondo")->where("id", $r->idDoc)->update(array($columna => $estatus)); if (@config("tema.ms.api_efirma")) { $errorCancelar = LU::cancelarConstancias($r->idD, 1); if ($errorCancelar) { $data["errores"][] = $errorCancelar; } } } catch (\Throwable $th) { $data["errores"][] = "Error al regresar los archivos, contacte con servicio técnico." . $th->getMessage(); } if (sizeof($data["errores"])) { DB::rollback(); } else { DB::commit(); } return response()->json($data); } public function descEdosCtaMultiples(Request $r) { try { set_time_limit(0); $datosUrl = $r->datosUrl; $filesToDownload = array(); $urlDestFinal = ''; if ($r->tipo != null) { $docsFondo = DOCF::findOrFail($datosUrl); $tipoDocs = json_decode($r->tipo, true); foreach ($tipoDocs as $tipo) { $urlFondo = null; switch ($tipo) { case "dAC": $urlFondo = $docsFondo->url_actas_cabildo; break; case "dCCB": $urlFondo = $docsFondo->url_contratos_cuentas_bancarias; break; case "dF3": $urlFondo = $docsFondo->url_formato_3; break; case "dF3A": $urlFondo = $docsFondo->url_formato_3A; break; case "dF3B": $urlFondo = $docsFondo->url_formato_3B; break; case "dF4": $urlFondo = $docsFondo->url_formato_4; break; case "pdf": $urlFondo = $docsFondo->url_estados_cuentas_pdf; break; case "xml": $urlFondo = $docsFondo->url_estados_cuentas_xml; break; } $nombreArchivo = LU::getRutaAndName($urlFondo)[1]; $urlArchivo = LU::getDirname($urlFondo); $urlDestFinal = dirname($urlFondo); if (file_exists($urlArchivo)) { $filesToDownload[] = array("path" => $urlArchivo, "name" => $nombreArchivo); } } } else { $datosDesc = json_decode($r->datosUrl, true); foreach ($datosDesc as $key => $dato) { $datos = DECM::findOrFail($dato["id"]); $urlpdf = $datos->url_estados_cuentas_pdf; $urlxml = $datos->url_estados_cuentas_xml; $urlDesc = dirname($urlxml); $urlDestFinal = $urlDesc; if ($urlpdf != null) { $nombreArchivoPDF = LU::getRutaAndName($urlpdf)[1]; $urlArchivoPDF = LU::getDirname($urlpdf); if (file_exists($urlArchivoPDF)) { $filesToDownload[] = array("path" => $urlArchivoPDF, "name" => $nombreArchivoPDF, "tipo" => "pdf"); } } if ($urlxml != null) { $nombreArchivoXML = LU::getRutaAndName($urlxml)[1]; $urlArchivoXML = LU::getDirname($urlxml); if (file_exists($urlArchivoXML)) { $filesToDownload[] = array("path" => $urlArchivoXML, "name" => $nombreArchivoXML, "tipo" => "xml"); } } } } } catch (\Exception $e) { return redirect()->back()->withErrors(array("error" => "Ocurrió un error: " . $e->getMessage())); } if (count($filesToDownload) > 0) { $zip = new \ZipArchive(); $zipFileName = $r->tipo != null ? "DocumentosPorFondo.zip" : "EstadosDeCuenta(" . $r->mes . ").zip"; $zipDir = dirname($filesToDownload[0]["path"]); $zipPath = $zipDir . "/" . $zipFileName; try { if ($zip->open($zipPath, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === true) { foreach ($filesToDownload as $file) { $zip->addFile($file["path"], $file["name"]); } $zip->close(); } else { throw new \Exception("No se pudo abrir el archivo ZIP para escribir, contacte con servicio técnico."); } return response()->download($zipPath, $zipFileName)->deleteFileAfterSend(true); } catch (\Exception $e) { if (file_exists($zipPath)) { unlink($zipPath); } return redirect()->back()->withErrors(array("error" => "Error al crear el archivo ZIP: " . $e->getMessage())); } } return redirect()->back()->withErrors(array("errorArch" => "No se encontraron archivos válidos, contacte con servicio técnico.")); } public function devolverTDFEDCM(Request $r) { DB::beginTransaction(); try { $datos = DB::table("documentos_fondo")->where("id", $r->id)->first(); $columnas = array("actas_cabildo", "contratos_cuentas_bancarias", "formato_3", "formato_3A", "formato_3B", "formato_4", "edos_cuentas_01", "edos_cuentas_02", "edos_cuentas_03", "edos_cuentas_04", "edos_cuentas_", "edos_cuentas_", "edos_cuentas_07", "edos_cuentas_08", "edos_cuentas_09", "edos_cuentas_", "edos_cuentas_11", "edos_cuentas_"); $actualizaciones = array(); if (Auth::user()->type == 1) { foreach ($columnas as $columna) { if (isset($datos->{$columna}) && in_array($datos->{$columna}, array(2, 3), true)) { $actualizaciones[$columna] = 4; } } } else { foreach ($columnas as $columna) { if (isset($datos->{$columna}) && $datos->{$columna} == 2) { $actualizaciones[$columna] = 4; } } } if (!empty($actualizaciones)) { DB::table("documentos_fondo")->where("id", $r->id)->update($actualizaciones); } if (@config("tema.ms.api_efirma")) { $errorCancelar = LU::cancelarConstancias($r->idD, 1); if ($errorCancelar) { $data["errores"][] = $errorCancelar; } } DB::commit(); return response()->json(array("success" => true)); } catch (\Exception $e) { DB::rollback(); return response()->json(array("success" => false, "message" => "Error al actualizar los datos: " . $e->getMessage())); } } public function estatusEdos(Request $r) { $datos = DB::table("documentos_fondo")->where("id", $r->id)->select("edos_cuentas_01", "edos_cuentas_", "edos_cuentas_03", "edos_cuentas_", "edos_cuentas_05", "edos_cuentas_06", "edos_cuentas_07", "edos_cuentas_08", "edos_cuentas_09", "edos_cuentas_10", "edos_cuentas_11", "edos_cuentas_12")->first(); return response()->json(array("datos" => $datos)); } }



© 2023 Quttera Ltd. All rights reserved.