app/Http/Controllers/OficioController.php
/**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
Store a newly created resource in storage.
Store a newly created resource in storage .
public function store(Request $request)
   {
        $user = Auth::user();
      if ($request->input('remitente_id')==0){
        $dependencia=15;
        $area=47;
      }else{
         $remitente=Persona::findOrFail($request->input('remitente_id'));
         $dependencia=$remitente->dependencia_id;
         $area=$remitente->area_id;
      }
   $this->validate($request, [
        'no_oficio' => 'bail|required|unique:oficios,no_oficio|max:255',
              'remitente_id' => 'bail|required|numeric',
              'fecha_emision' => 'bail|required',
               'asunto' => 'bail|required'
    ]);
        $extension = File::extension($request->input('archivo'));
        $directoryName=$request->input('no_oficio');
        $fileName=$request->input('no_oficio').'.'.$extension;
        if(!($exists = Storage::disk('local')->exists('temp'.DIRECTORY_SEPARATOR.$directoryName)))
            {return response('{"error":["el archivo temporal  '.$fileName.'  no se encontro intente subir de nuevo el archivo"]}', 422);}
        $newDir='uploads'.DIRECTORY_SEPARATOR.$dependencia.DIRECTORY_SEPARATOR.$area.DIRECTORY_SEPARATOR.$directoryName;
        Storage::move('temp'.DIRECTORY_SEPARATOR.$directoryName,$newDir );
        $data=$request->all();
        $data['archivo']=$fileName.'pdf';
        $data['user_id']=$user->id;
          if($request->ajax()){
             $doc=Oficio::create($data);
            $seguimientoData=$data['no_oficio'];
            $seguimiento=Seguimiento::create(["no_oficio"=>$seguimientoData]);
            $directoryAnexos='uploads/'.$area.'/'.$directoryName.'/anexos/';
            $files = Storage::files($directoryAnexos);
            foreach ($files as $file) {
                $archivo=preg_split("[/]", $file);
                $anexo = new Anexo(array('archivo' => $archivo[sizeof($archivo)-1]));
                $doc->anexos()->save($anexo);
            }
            $clavesDestinatarios= json_decode('[' .$request->input('destinatario_id'). ']', true);
             $copia = $doc->destinatarios()->attach($clavesDestinatarios);   
            if($request->input('copia_id')!='null'){
             $claves= json_decode('[' .$request->input('copia_id'). ']', true);
             $copia = $doc->cpersona()->attach($claves);
            }
             if($request->input('seguimiento')!='null'){
                 $clavesSeg= json_decode('[' .$request->input('seguimiento'). ']', true);
                 $seg = $doc->seguimientos()->attach($clavesSeg);
             }
                $exp=true;
if ($user->permisos!=1) {
     $pivot_id=$doc->destinatarios->first()->pivot->id;
        $doc->destinatarios()->newPivotStatement()->where('id', $pivot_id)->update(['recibido' => 1]);
}
            return response()->json(['mensaje'=>"Oficio Guardado","data"=>$doc]);
          }
    }
public function store ( Request $ request ) { $ user = Auth :: user ( ) ; if ( $ request -> input ( 'remitente_id' ) == 0 ) { $ dependencia = 15 ; $ area = 47 ; } else { $ remitente = Persona :: findOrFail ( $ request -> input ( 'remitente_id' ) ) ; $ dependencia = $ remitente -> dependencia_id ; $ area = $ remitente -> area_id ; } $ this -> validate ( $ request , [ 'no_oficio' => 'bail|required|unique:oficios,no_oficio|max:255' , 'remitente_id' => 'bail|required|numeric' , 'fecha_emision' => 'bail|required' , 'asunto' => 'bail|required' ] ) ; $ extension = File :: extension ( $ request -> input ( 'archivo' ) ) ; $ directoryName = $ request -> input ( 'no_oficio' ) ; $ fileName = $ request -> input ( 'no_oficio' ) . '.' . $ extension ; if ( ! ( $ exists = Storage :: disk ( 'local' ) -> exists ( 'temp' . DIRECTORY_SEPARATOR . $ directoryName ) ) ) { return response ( '{"error":["el archivo temporal  ' . $ fileName . '  no se encontro intente subir de nuevo el archivo"]}' , 422 ) ; } $ newDir = 'uploads' . DIRECTORY_SEPARATOR . $ dependencia . DIRECTORY_SEPARATOR . $ area . DIRECTORY_SEPARATOR . $ directoryName ; Storage :: move ( 'temp' . DIRECTORY_SEPARATOR . $ directoryName , $ newDir ) ; $ data = $ request -> all ( ) ; $ data [ 'archivo' ] = $ fileName . 'pdf' ; $ data [ 'user_id' ] = $ user -> id ; if ( $ request -> ajax ( ) ) { $ doc = Oficio :: create ( $ data ) ; $ seguimientoData = $ data [ 'no_oficio' ] ; $ seguimiento = Seguimiento :: create ( [ " no_oficio " => $ seguimientoData ] ) ; $ directoryAnexos = 'uploads/' . $ area . '/' . $ directoryName . '/anexos/' ; $ files = Storage :: files ( $ directoryAnexos ) ; foreach ( $ files as $ file ) { $ archivo = preg_split ( " [/] " , $ file ) ; $ anexo = new Anexo ( array ( 'archivo' => $ archivo [ sizeof ( $ archivo ) - 1 ] ) ) ; $ doc -> anexos ( ) -> save ( $ anexo ) ; } $ clavesDestinatarios = json_decode ( '[' . $ request -> input ( 'destinatario_id' ) . ']' , true ) ; $ copia = $ doc -> destinatarios ( ) -> attach ( $ clavesDestinatarios ) ; if ( $ request -> input ( 'copia_id' ) != 'null' ) { $ claves = json_decode ( '[' . $ request -> input ( 'copia_id' ) . ']' , true ) ; $ copia = $ doc -> cpersona ( ) -> attach ( $ claves ) ; } if ( $ request -> input ( 'seguimiento' ) != 'null' ) { $ clavesSeg = json_decode ( '[' . $ request -> input ( 'seguimiento' ) . ']' , true ) ; $ seg = $ doc -> seguimientos ( ) -> attach ( $ clavesSeg ) ; } $ exp = true ; if ( $ user -> permisos != 1 ) { $ pivot_id = $ doc -> destinatarios -> first ( ) -> pivot -> id ; $ doc -> destinatarios ( ) -> newPivotStatement ( ) -> where ( 'id' , $ pivot_id ) -> update ( [ 'recibido' => 1 ] ) ; } return response ( ) -> json ( [ 'mensaje' => " Oficio Guardado " , " data " => $ doc ] ) ; } }
Store a newly created resource in storage.
Store a newly created resource in storage .
//Storage::delete('temp/'.$fileName); //Envio de correos /*
          foreach ($doc->destinatarios as $destinatario) {
          

               if (isset($destinatario->email)){

                 Mail::send('mail.mailtest', ['documento'=>$doc], function ($message)  use ($destinatario) {

                   $message->from('correspondencia.interna@izcalli.gob.mx', 'Correspondencia');
                   $message->to($destinatario->email, $destinatario->nombre);
                   $message->subject("Sistema de correspondencia has recibido un nuevo oficio");
                 });
              }
            
            }
//

          foreach ($doc->cpersona as $copiaDestinatario) {
          

               if (isset($copiaDestinatario->email)){

                 Mail::send('mail.mailtest', ['documento'=>$doc], function ($message)  use ($copiaDestinatario) {

                   $message->from('correspondencia.interna@izcalli.gob.mx', 'Correspondencia');
                   $message->to($copiaDestinatario->email, $copiaDestinatario->nombre);
                   $message->subject("Sistema de correspondencia has recibido un nuevo oficio");
                 });
              }
            
            }

*/