コード例 #1
0
ファイル: Actions.php プロジェクト: mbouami/progiss
 /**
  * Remove piecejointe
  *
  * @param \Acme\ProsalesBundle\Entity\Piecesjointes $piecejointe
  */
 public function removePiecejointe(\Acme\ProsalesBundle\Entity\Piecesjointes $piecejointe)
 {
     $this->piecejointe->removeElement($piecejointe);
 }
コード例 #2
0
ファイル: DevisController.php プロジェクト: mbouami/progiss
 public function envoyerdevisAction(Request $request, $id)
 {
     $message = new Message();
     $niveau = $request->get("niveau");
     $sortie = array("erreur" => true, "action" => "envoyer", "type" => "devis", "typezone" => "dialogue", "message" => "Le Devis n'a pas été envoyé");
     $form = $this->createMessageForm($message, $niveau, $id);
     $form->handleRequest($request);
     //echo $form->get('listefile')->getData();
     //        echo $request->get("listepiecejointes");
     if (strlen($request->get("listepiecejointes")) > 0) {
         $lespiecesjointes = explode(",", $request->get("listepiecejointes"));
         foreach ($lespiecesjointes as $piecejointe) {
             $lienfichier = $this->getUploadRootDir() . '/' . $piecejointe;
             $message->addFichierjoints(new UploadedFile($this->getUploadRootDir() . '/' . $piecejointe, $piecejointe));
         }
     }
     //        echo count($message->getFichierjoints());
     if ($form->isValid()) {
         $em = $this->getDoctrine()->getManager();
         $devis = $em->getRepository('AcmeProsalesBundle:Devis')->find($id);
         $action = new Actions();
         $messageaenvoyer = \Swift_Message::newInstance();
         $to = array();
         if (strlen($form->get('a')->getData()) > 0) {
             $listedestinataire = explode(";", str_replace(array("<", ">"), "{", $form->get('a')->getData()));
             foreach ($listedestinataire as $destinataire) {
                 $ledestinataire = explode("{", $destinataire);
                 $to[$ledestinataire[1]] = $ledestinataire[0];
             }
         }
         $bcc = array();
         if (strlen($form->get('bcc')->getData()) > 0) {
             $listedestinatairebcc = explode(";", $form->get('bcc')->getData());
             if (count($listedestinatairebcc) > 0) {
                 foreach ($listedestinatairebcc as $destinatairebcc) {
                     $bcc[] = $destinatairebcc;
                 }
             }
         }
         if (count($to) > 0) {
             //                $signweb = $message->embed(\Swift_Image::fromPath($this->generateUrl({_welcome_prosales',array(),true)."../uploads/documents/signatureweb_".$entity->getReferent()->getId().".".$entity->getReferent()->getExtweb()));
             //                $signweb = $entity->getReferent()->getSignatureWeb()?utf8_encode(stream_get_contents($entity->getReferent()->getSignatureWeb())):null;
             //                $signweb = $message->embed(\Swift_Image::newInstance($img_data, 'image.jpg', 'image/jpeg'));
             $messageaenvoyer->setContentType("text/html")->setSubject($form->get('objet')->getData())->setFrom($devis->getReferent()->getEmail())->setTo($to)->setBody($form->get('description')->getData());
             if (count($bcc) > 0) {
                 $messageaenvoyer->setBcc($bcc);
             }
             if (count($message->getFichierjoints()) > 0) {
                 foreach ($message->getFichierjoints() as $fichierjoint) {
                     $messageaenvoyer->attach(\Swift_Attachment::fromPath($this->getUploadRootDir() . '/' . $fichierjoint->getClientOriginalName()));
                 }
             }
             $this->get('mailer')->send($messageaenvoyer);
             $devis->setEnvoimail(true);
             $em->persist($devis);
             $em->flush();
         }
         $action->setA($form->get('a')->getData());
         $action->setCci($form->get('bcc')->getData());
         $action->setReferent($this->getUser());
         $action->setOrganisation($devis->getOrganisation());
         $action->setTypeaction($em->getRepository('AcmeProsalesBundle:Typesaction')->find(2));
         $action->setSujet($form->get('objet')->getData());
         $action->setCci($form->get('bcc')->getData());
         $action->setContact($devis->getContact());
         $action->setDescription($form->get('description')->getData());
         $action->setPj(count($message->getFichierjoints()) > 0);
         if (count($message->getFichierjoints()) > 0) {
             foreach ($message->getFichierjoints() as $fichierjoint) {
                 $pjointe = new Piecesjointes();
                 $pjointe->setDocument($fichierjoint->getClientOriginalName());
                 $pjointe->setAction($action);
                 $action->addPiecejointe($pjointe);
             }
         }
         $em->persist($action);
         $em->flush();
         $sortie = array("erreur" => false, "action" => "new", "type" => "message", "idonglet" => "new_message_" . $id, "typezone" => "dialogue", "message" => "Le Devis a été envoyé");
         $sortie["resultat"] = array('id' => $devis->getId(), 'cat' => 'devis', 'reference' => $devis->getReference(), 'dossier' => $devis->getDossier(), 'idorg' => $devis->getOrganisation()->getId(), 'organisation' => $devis->getOrganisation()->__toString(), 'datedevis' => date_format($devis->getCreatedAt(), "d-m-Y"), 'contact' => $devis->getContact() ? $devis->getContact()->__toString() : null, 'referent' => $devis->getReferent()->__toString(), 'totalht' => $devis->getTotalht(), 'totaltva' => $devis->getTotaltva(), 'totalttc' => $devis->getTotalttc(), 'fraisport' => $devis->getFraisport(), 'tauxtva' => $devis->getTauxTva(), 'mail' => $devis->getEnvoimail() ? "@" : " ", 'devisparent' => $devis->getParent() == null ? null : $devis->getParent()->getReference(), 'listeproduits' => $devis->getListeproduits());
         $sortie["action"] = array('id' => $action->getId(), 'cat' => 'action', 'sujet' => $action->getSujet(), 'createdAt' => date_format($action->getCreatedAt(), "d-m-Y à H:i"), 'contact' => $action->getContact() ? $action->getContact()->__toString() : null);
     }
     $response = new JsonResponse();
     $response->setData($sortie);
     return $response;
 }