public function postCrear(Requests\CreateContrRequest $request) { $nombre = $request->nombre; $rfc = $request->rfc; $contr = Contribuyente::create(['nombre' => $nombre, 'rfc' => $rfc, 'user_id' => session('id')]); if ($contr) { $nombreSession = session('name'); $notification = new NotHelper(session('id'), "{$nombreSession} ha creado el contribuyente {$nombre}", 0, url('contribuyentes/editar')); $notification->toMoreLevelThan(session('level')); $request->session()->flash('message', 'Contribuyente agregado exitosamente'); } else { return redirect()->back()->withErrors(['Hubo un error al crear al contribuyente']); } return redirect()->back(); }
public function postJustificar(Request $request) { $text = $request->razon; $tabla = $request->contenido; $texto2 = $request->contable; $id = $request->id; $diff = Diferencias::find($id); $contr = $request->contribuyente; if ($diff) { $diff->solucion = true; if (strlen($text) == 0) { $diff->solucion = false; } $diff->obser = $text; $diff->aspectos = $tabla; $diff->aspectos_texto = $texto2; $time = time(); if ($request->hasFile('anexos')) { $anexos = $request->allFiles('anexos')['anexos']; $count = 0; foreach ($anexos as $anexo) { $rules = array('file' => 'required'); //'required|mimes:png,gif,jpeg,txt,pdf,doc' $validator = Validator::make(array('file' => $anexo), $rules); if ($validator->passes()) { $destinationPath = storage_path("anexos/{$contr}"); $filenameOrig = $anexo->getClientOriginalName(); $filename = "{$id}" . "_" . "{$count}" . "_{$time}" . "_" . $filenameOrig; if (!file_exists($destinationPath)) { File::makeDirectory($destinationPath, $mode = 0777, true, true); } $upload_success = $anexo->move($destinationPath, $filename); Comprobante::create(['file' => "{$destinationPath}/{$filename}", 'diferencia_id' => $id]); $count++; } } } $nombre = session('name'); $notification = new NotHelper(session('id'), "{$nombre} ha justificado una diferencia para el contribuyente {$contr}", 0, url('cargas')); $notification->toMoreLevelThan(session('level')); $diff->save(); } Session::flash('message', 'Cambio realizado exitosamente'); return redirect()->back(); }
public function procesarFinal(Cargas $carga, $nombreCarga) { $pdo = DB::connection()->getPdo(); $query = "select id from `archivos_sat` where `archivos_sat`.`carga_id` = {$carga->id} and `archivos_sat`.`carga_id` is not null "; $stmt = $pdo->prepare($query); $stmt->execute(); $sats = 0; while ($row = $stmt->fetchObject()) { $sats++; $sat = ArchivoSat::find($row->id); $empresa = $sat->empresa; if ($empresa) { $parserSat = new ParserCFID($sat->file); $parserEmpresa = new ParserCFID($empresa->file); $parserSat->parser(); $parserEmpresa->parser(); $diff = $parserSat->comparar($parserEmpresa); if (count($diff) > 0) { foreach ($diff as $key => $val) { if (Str::contains($key, 'Addenda')) { continue; } $diffModel = Diferencias::create(['sat_id' => $sat->id, 'empresa_id' => $empresa->id, 'campo' => $key, 'sat' => $val[0], 'empresa' => $val[1]]); } } $sat->procesado = true; $sat->save(); $empresa->procesado = true; $empresa->save(); } else { //Cuando el sat no tiene una empresa con el mismo nombre $diffModel = Diferencias::create(['sat_id' => $sat->id, 'empresa_id' => 0, 'falta' => true, 'lado' => $this->empFalta]); $sat->procesado = true; $sat->save(); } } $pdo = DB::connection()->getPdo(); $query = "select id from `archivos_empresa` where `archivos_empresa`.`carga_id` = {$carga->id} and `archivos_empresa`.`carga_id` is not null and `procesado` = 0"; $stmt = $pdo->prepare($query); $stmt->execute(); $empresas = 0; while ($row = $stmt->fetchObject()) { $empresas++; $empresa = ArchivoEmpresa::find($row->id); $diffModel = Diferencias::create(['sat_id' => 0, 'empresa_id' => $empresa->id, 'falta' => true, 'lado' => $this->satFalta]); $empresa->procesado = true; $empresa->save(); } //Ahora se buscan las empresas que quedaron si procesar, estas quiere decir que no tienen ningun archivo asociado $carga->procesado = true; $carga->nombre = $nombreCarga; $carga->save(); $nombre = session('name'); $numFact = $sats + $empresas; $notification = new NotHelper(session('id'), "{$nombre} ha cargado y procesado {$numFact} facturas nuevas para el contribuyente {$carga->rfc}", 0, url('cargas')); $notification->toMoreLevelThan(session('level')); return "yes"; }