src/Controller/KoszykController.php line 65

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. class KoszykController extends AbstractController {
  7.     /**
  8.      * Funkcja kopiuje zawartość koszyka z koszyka zapisanego w sesji do koszyka zapisanego w użytkowniku
  9.      * @param \Symfony\Component\HttpFoundation\Request $zadanie
  10.      * @param \Doctrine\ORM\EntityManagerInterface $em
  11.      * @return void
  12.      */
  13.     public function copyCart4Sess2User(\Symfony\Component\HttpFoundation\Request $zadanie, \Doctrine\ORM\EntityManagerInterface $em): void {
  14.         if ($this->getUser()) {
  15.             if ($zadanie->getSession()->isStarted()) {
  16.                 if ($zadanie->getSession()->has("koszyk")) {
  17.                     //Przepisywanie koszyka z sesji do usera
  18.                     if (!$this->getUser()->getKoszyk()) {
  19.                         $koszyk = new \App\Entity\Koszyk ();
  20.                         $koszyk->setUser($this->getUser());
  21.                         $em->persist($koszyk);
  22.                         $em->flush();
  23.                         $em->refresh($this->getUser());
  24.                     }
  25.                     foreach ($zadanie->getSession()->get("koszyk")->getPozycja() as $pozycja) {
  26.                         if (!$this->getUser()->getKoszyk()->isIn($pozycja->getNazwa())) {
  27.                             $poz = new \App\Entity\PozycjaDokumentu();
  28.                             $poz->setCenabrutto($pozycja->getCenabrutto());
  29.                             $poz->setCenanetto($pozycja->getCenanetto());
  30.                             $poz->setCenavat($pozycja->getCenavat());
  31.                             $poz->setDomena($pozycja->getDomena());
  32.                             $poz->setIlosc($pozycja->getIlosc());
  33.                             $poz->setKoszyk($this->getUser()->getKoszyk());
  34.                             $poz->setNazwa($pozycja->getNazwa());
  35.                             $poz->setNs1($pozycja->getNs1());
  36.                             $poz->setNs2($pozycja->getNs2());
  37.                             $poz->setNs3($pozycja->getNs3());
  38.                             $poz->setRodzaj($pozycja->getRodzaj());
  39.                             $poz->setWartoscbrutto($pozycja->getWartoscbrutto());
  40.                             $poz->setWartoscnetto($pozycja->getWartoscnetto());
  41.                             $poz->setWartoscvat($pozycja->getWartoscvat());
  42.                             $poz->setZrealizowane(false);
  43.                             $em->persist($poz);
  44.                             $em->flush();
  45.                         }
  46.                     }
  47.                     $zadanie->getSession()->remove("koszyk");
  48.                     $em->refresh($this->getUser()->getKoszyk());
  49.                 }
  50.             }
  51.         }
  52.     }
  53.     /**
  54.      * Zasób renderuje stronę koszyka
  55.      * @Route("/koszyk", name="cart")
  56.      * @param \Symfony\Component\HttpFoundation\Request $zadanie
  57.      * @param \Doctrine\ORM\EntityManagerInterface $em
  58.      * @return Response
  59.      */
  60.     public function Cart(\Symfony\Component\HttpFoundation\Request $zadanie, \Doctrine\ORM\EntityManagerInterface $em): Response {
  61.         if ($this->getUser ()) {
  62.             if (count ($this->getUser ()->getCsa ()) == 0) {
  63.                 return $this->render ("wyszukiwarka-domen-brak-csa.html.twig");
  64.             }
  65.         }
  66.         $this->copyCart4Sess2User($zadanie$em);
  67.         return $this->render("koszyk.html.twig");
  68.     }
  69.     /**
  70.      * @Route("/user/koszyk", name="cart2", methods={"GET"})
  71.      * @param \Symfony\Component\HttpFoundation\Request $zadanie
  72.      * @param \Doctrine\ORM\EntityManagerInterface $em
  73.      * @return Response
  74.      */
  75.     public function Cart2(\Symfony\Component\HttpFoundation\Request $zadanie, \Doctrine\ORM\EntityManagerInterface $em): Response {
  76.         if ($this->getUser ()) {
  77.             if (count ($this->getUser ()->getCsa ()) == 0) {
  78.                 return $this->render ("wyszukiwarka-domen-brak-csa.html.twig");
  79.             }
  80.         }
  81.         $this->copyCart4Sess2User($zadanie$em);
  82.         return $this->render("koszyk2.html.twig", [
  83.             "ns1" => $em->getRepository(\App\Entity\Conf::class)->peek ("ns1"""),
  84.             "ns2" => $em->getRepository(\App\Entity\Conf::class)->peek ("ns2"""),
  85.             "ns3" => "",
  86.             "koszt" => floatval ($em->getRepository(\App\Entity\Conf::class)->peek ("TPAYKoszt"0))
  87.         ]);
  88.     }
  89.     /**
  90.      * Zasób usuwa z koszyka domenę do rejestracji
  91.      * @Route("/koszyk/remove-domain-2-registration", name="koszyk-remove-domain-2-registartion", methods={"POST"})
  92.      * @param \App\Controller\Symfony\Component\HttpFoundation\Request $zadanie
  93.      * @param \Doctrine\ORM\EntityManagerInterface $em
  94.      * @return \Symfony\Component\HttpFoundation\JsonResponse
  95.      */
  96.     public function remove4CartDomain2Registration(\Symfony\Component\HttpFoundation\Request $zadanie, \Doctrine\ORM\EntityManagerInterface $em): \Symfony\Component\HttpFoundation\JsonResponse {
  97.         if ($this->getUser()) {
  98.             //Koszyk usera
  99.             if ($this->getUser()->getKoszyk()) {
  100.                 //Jest koszyk
  101.                 if ($this->getUser()->getKoszyk()->IsIn($zadanie->get("domain"))) {
  102.                     //Pozycja jest już w koszyku
  103.                     foreach ($this->getUser()->getKoszyk()->getPozycja() as $p) {
  104.                         if (($p->getRodzaj() == \App\Entity\PozycjaDokumentu::prRejestracjaDomeny) && ($p->getDomena() == $zadanie->get("domain"))) {
  105.                             $this->getUser()->getKoszyk()->removePozycja($p);
  106.                             $em->remove ($p);
  107.                             $em->flush ();
  108.                             $em->refresh ($this->getUser()->getKoszyk());
  109.                             break;
  110.                         }
  111.                     }
  112.                     $em->refresh($this->getUser ());
  113.                     if ($this->getUser()->getKoszyk ()->getCount () == 0) {
  114.                         $em->remove ($this->getUser()->getKoszyk ());
  115.                         $em->flush();
  116.                         return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"count" => 0"netto" => 0"vat" => 0"brutto" => 0]);
  117.                     } else {
  118.                         return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"count" => $this->getUser()->getKoszyk()->getCount(), "netto" => $this->getUser()->getKoszyk()->getNetto(), "vat" => $this->getUser()->getKoszyk()->getVat(), "brutto" => $this->getUser()->getKoszyk()->getBrutto()]);
  119.                     }
  120.                 } else {
  121.                     return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"count" => $this->getUser()->getKoszyk()->getCount(), "netto" => $this->getUser()->getKoszyk()->getNetto(), "vat" => $this->getUser()->getKoszyk()->getVat(), "brutto" => $this->getUser()->getKoszyk()->getBrutto()]);
  122.                 }
  123.             } else {
  124.                 return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => false"count" => 0"netto" => 0"vat" => 0"brutto" => 0]);
  125.             }
  126.         } else {
  127.             //Koszyk w sesji
  128.             if ($zadanie->getSession()->isStarted()) {
  129.                 //Sesja jest uruchomiona
  130.                 if ($zadanie->getSession()->has("koszyk")) {
  131.                     //Jest koszyk                    
  132.                     if ($zadanie->getSession()->get("koszyk")->IsIn($zadanie->get("domain"))) {
  133.                         //Pozycja jest już w koszyku
  134.                         foreach ($zadanie->getSession()->get("koszyk")->getPozycja() as $p) {
  135.                             if (($p->getRodzaj() == \App\Entity\PozycjaDokumentu::prRejestracjaDomeny) && ($p->getDomena() == $zadanie->get("domain"))) {
  136.                                 $zadanie->getSession()->get("koszyk")->removePozycja($p);
  137.                                 break;
  138.                             }
  139.                         }
  140.                         if ($zadanie->getSession()->get("koszyk")->getCount () == 0) {
  141.                             $zadanie->getSession()->remove("koszyk");
  142.                             return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"count" => 0"netto" => 0"vat" => 0"brutto" => ]);
  143.                         } else {
  144.                             return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"count" => $zadanie->getSession()->get("koszyk")->getCount(), "netto" => $zadanie->getSession()->get("koszyk")->getNetto(), "vat" => $zadanie->getSession()->get("koszyk")->getVat(), "brutto" => $zadanie->getSession()->get("koszyk")->getBrutto()]);
  145.                         }
  146.                     } else {
  147.                         return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => false"count" => $zadanie->getSession()->get("koszyk")->getCount(), "netto" => $zadanie->getSession()->get("koszyk")->getNetto(), "vat" => $zadanie->getSession()->get("koszyk")->getVat(), "brutto" => $zadanie->getSession()->get("koszyk")->getBrutto()]);
  148.                     }
  149.                 } else {
  150.                     return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => false"count" => 0"netto" => 0"vat" => 0"brutto" => 0]);
  151.                 }
  152.             } else {
  153.                 return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => false"count" => 0"netto" => 0"vat" => 0"brutto" => 0]);
  154.             }
  155.         }
  156.     }
  157.     /**
  158.      * Zasób dodaje do koszyka pozycję zarejestrowania domeny
  159.      * @Route("/koszyk/add-domain-2-registartion", name="koszyk-add-domain-2-registartion", methods={"POST"})
  160.      * @param \Symfony\Component\HttpFoundation\Request $zadanie
  161.      * @return \Symfony\Component\HttpFoundation\JsonResponse
  162.      */
  163.     public function add2CartDomain2Registration(\Symfony\Component\HttpFoundation\Request $zadanie, \Doctrine\ORM\EntityManagerInterface $em): \Symfony\Component\HttpFoundation\JsonResponse {
  164.         if ($this->getUser()) {
  165.             //Koszyk usera
  166.             if ($this->getUser()->getKoszyk()) {
  167.                 //Jest koszyk
  168.                 if ($this->getUser()->getKoszyk()->IsIn($zadanie->get("domain"))) {
  169.                     //Pozycja jest już w koszyku
  170.                     return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"koszyk" => [ "USER"$this->getUser()->getKoszyk()->getId () ], "count" => $this->getUser()->getKoszyk()->getCount(), "btutto" => $this->getUser()->getKoszyk()->getBrutto()]);
  171.                 } else {
  172.                     //Pozycji nie ma w koszyku
  173.                     $pozycja = new \App\Entity\PozycjaDokumentu();
  174.                     $pozycja->setCenabrutto(floatval($zadanie->get("brutto")));
  175.                     $pozycja->setCenanetto(floatval($zadanie->get("netto")));
  176.                     $pozycja->setCenavat($pozycja->getCenabrutto() - $pozycja->getCenanetto());
  177.                     $pozycja->setDomena($zadanie->get("domain"));
  178.                     $pozycja->setIlosc(1);
  179.                     $pozycja->setKoszyk($this->getUser()->getKoszyk());
  180.                     $pozycja->setNazwa($zadanie->get("domain"));
  181.                     $pozycja->setRodzaj(\App\Entity\PozycjaDokumentu::prRejestracjaDomeny);
  182.                     $pozycja->setZrealizowane(false);
  183.                     $pozycja->setWartoscbrutto($pozycja->getCenabrutto());
  184.                     $pozycja->setWartoscnetto($pozycja->getCenanetto());
  185.                     $pozycja->setWartoscvat($pozycja->getCenavat());
  186.                     $em->persist($pozycja);
  187.                     $em->flush();
  188.                     $em->refresh($this->getUser()->getKoszyk());
  189.                     return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"koszyk" => [ "USER"$this->getUser()->getKoszyk()->getId () ], "count" => $this->getUser()->getKoszyk()->getCount(), "btutto" => $this->getUser()->getKoszyk()->getBrutto()]);
  190.                 }
  191.             } else {
  192.                 //Nie ma koszyka
  193.                 $koszyk = new \App\Entity\Koszyk();
  194.                 $koszyk->setUser($this->getUser());
  195.                 $em->persist($koszyk);
  196.                 $em->flush();
  197.                 $em->refresh($this->getUser());
  198.                 $pozycja = new \App\Entity\PozycjaDokumentu();
  199.                 $pozycja->setCenabrutto(floatval($zadanie->get("brutto")));
  200.                 $pozycja->setCenanetto(floatval($zadanie->get("netto")));
  201.                 $pozycja->setCenavat($pozycja->getCenabrutto() - $pozycja->getCenanetto());
  202.                 $pozycja->setDomena($zadanie->get("domain"));
  203.                 $pozycja->setIlosc(1);
  204.                 $pozycja->setKoszyk($this->getUser()->getKoszyk());
  205.                 $pozycja->setNazwa($zadanie->get("domain"));
  206.                 $pozycja->setRodzaj(\App\Entity\PozycjaDokumentu::prRejestracjaDomeny);
  207.                 $pozycja->setZrealizowane(false);
  208.                 $pozycja->setWartoscbrutto($pozycja->getCenabrutto());
  209.                 $pozycja->setWartoscnetto($pozycja->getCenanetto());
  210.                 $pozycja->setWartoscvat($pozycja->getCenavat());
  211.                 $em->persist($pozycja);
  212.                 $em->flush();
  213.                 $em->refresh($this->getUser()->getKoszyk());
  214.                 return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"koszyk" => [ "USER"$this->getUser()->getKoszyk()->getId () ], "count" => $this->getUser()->getKoszyk()->getCount(), "btutto" => $this->getUser()->getKoszyk()->getBrutto()]);
  215.             }
  216.         } else {
  217.             //Koszyk w sesji
  218.             if ($zadanie->getSession()->isStarted()) {
  219.                 //Sesja jest uruchomiona
  220.                 if ($zadanie->getSession()->has("koszyk")) {
  221.                     //Jest koszyk                    
  222.                     if ($zadanie->getSession()->get("koszyk")->IsIn($zadanie->get("domain"))) {
  223.                         //Pozycja jest już w koszyku
  224.                         return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"koszyk" => [ "SESSION"$zadanie->getSession()->get("koszyk")->getId () ], "count" => $zadanie->getSession()->get("koszyk")->getCount(), "btutto" => $zadanie->getSession()->get("koszyk")->getBrutto()]);
  225.                     } else {
  226.                         //Pozycji nie ma w koszyku
  227.                         $pozycja = new \App\Entity\PozycjaDokumentu();
  228.                         $pozycja->setCenabrutto(floatval($zadanie->get("brutto")));
  229.                         $pozycja->setCenanetto(floatval($zadanie->get("netto")));
  230.                         $pozycja->setCenavat($pozycja->getCenabrutto() - $pozycja->getCenanetto());
  231.                         $pozycja->setDomena($zadanie->get("domain"));
  232.                         $pozycja->setIlosc(1);
  233.                         $pozycja->setKoszyk($zadanie->getSession()->get("koszyk"));
  234.                         $pozycja->setNazwa($zadanie->get("domain"));
  235.                         $pozycja->setRodzaj(\App\Entity\PozycjaDokumentu::prRejestracjaDomeny);
  236.                         $pozycja->setZrealizowane(false);
  237.                         $pozycja->setWartoscbrutto($pozycja->getCenabrutto());
  238.                         $pozycja->setWartoscnetto($pozycja->getCenanetto());
  239.                         $pozycja->setWartoscvat($pozycja->getCenavat());
  240.                         $zadanie->getSession()->get("koszyk")->addPozycja ($pozycja);
  241.                         return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"koszyk" => [ "SESSION"$zadanie->getSession()->get("koszyk")->getId () ], "count" => $zadanie->getSession()->get("koszyk")->getCount(), "btutto" => $zadanie->getSession()->get("koszyk")->getBrutto()]);
  242.                     }
  243.                 } else {
  244.                     //Nie ma koszyka
  245.                     $koszyk = new \App\Entity\Koszyk();
  246.                     $pozycja = new \App\Entity\PozycjaDokumentu();
  247.                     $pozycja->setCenabrutto(floatval($zadanie->get("brutto")));
  248.                     $pozycja->setCenanetto(floatval($zadanie->get("netto")));
  249.                     $pozycja->setCenavat($pozycja->getCenabrutto() - $pozycja->getCenanetto());
  250.                     $pozycja->setDomena($zadanie->get("domain"));
  251.                     $pozycja->setIlosc(1);
  252.                     $pozycja->setKoszyk($koszyk);
  253.                     $pozycja->setNazwa($zadanie->get("domain"));
  254.                     $pozycja->setRodzaj(\App\Entity\PozycjaDokumentu::prRejestracjaDomeny);
  255.                     $pozycja->setZrealizowane(false);
  256.                     $pozycja->setWartoscbrutto($pozycja->getCenabrutto());
  257.                     $pozycja->setWartoscnetto($pozycja->getCenanetto());
  258.                     $pozycja->setWartoscvat($pozycja->getCenavat());
  259.                     $koszyk->addPozycja ($pozycja);
  260.                     $zadanie->getSession()->set("koszyk"$koszyk);
  261.                     return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"koszyk" => [ "SESSION"$zadanie->getSession()->get("koszyk")->getId () ], "count" => $zadanie->getSession()->get("koszyk")->getCount(), "btutto" => $zadanie->getSession()->get("koszyk")->getBrutto()]);
  262.                 }
  263.             } else {
  264.                 //Sesja nie jest uruchomiona
  265.                 $zadanie->getSession()->start();
  266.                 $koszyk = new \App\Entity\Koszyk();
  267.                 $pozycja = new \App\Entity\PozycjaDokumentu();
  268.                 $pozycja->setCenabrutto(floatval($zadanie->get("brutto")));
  269.                 $pozycja->setCenanetto(floatval($zadanie->get("netto")));
  270.                 $pozycja->setCenavat($pozycja->getCenabrutto() - $pozycja->getCenanetto());
  271.                 $pozycja->setDomena($zadanie->get("domain"));
  272.                 $pozycja->setIlosc(1);
  273.                 $pozycja->setKoszyk($koszyk);
  274.                 $pozycja->setNazwa($zadanie->get("domain"));
  275.                 $pozycja->setRodzaj(\App\Entity\PozycjaDokumentu::prRejestracjaDomeny);
  276.                 $pozycja->setZrealizowane(false);
  277.                 $pozycja->setWartoscbrutto($pozycja->getCenabrutto());
  278.                 $pozycja->setWartoscnetto($pozycja->getCenanetto());
  279.                 $pozycja->setWartoscvat($pozycja->getCenavat());
  280.                 $koszyk->addPozycja ($pozycja);
  281.                 $zadanie->getSession()->set("koszyk"$koszyk);
  282.                 return new \Symfony\Component\HttpFoundation\JsonResponse(["status" => true"koszyk" => [ "SESSION"$zadanie->getSession()->get("koszyk")->getId () ], "count" => $zadanie->getSession()->get("koszyk")->getCount(), "btutto" => $zadanie->getSession()->get("koszyk")->getBrutto()]);
  283.             }
  284.         }
  285.     }
  286.     
  287.     /**
  288.      * Zasób finalizuje składanie zamówienia
  289.      * @Route("/user/koszyk", name="cart-finalize", methods={"POST"})
  290.      * @param \Swift_Mailer $mailer
  291.      * @param \App\Service\inWords $slownie
  292.      * @param \Symfony\Component\HttpFoundation\Request $zadanie
  293.      * @param \Doctrine\ORM\EntityManagerInterface $em
  294.      * @return Response
  295.      */
  296.     public function finalizeCart (\Swift_Mailer $mailer, \App\Service\inWords $slownie, \Symfony\Component\HttpFoundation\Request $zadanie, \Doctrine\ORM\EntityManagerInterface $em): Response {
  297.         //Prypisywanie erwerów NS
  298.         foreach ($this->getUser()->getKoszyk ()->getPozycja() as $k => $pozycja) {
  299.             //$pozycja = new \App\Entity\PozycjaDokumentu();
  300.             if ($pozycja->getRodzaj() == \App\Entity\PozycjaDokumentu::prRejestracjaDomeny) {
  301.                 $pozycja->setNs1($zadanie->get ("ns1")[$k 1]);
  302.                 $pozycja->setNs2($zadanie->get ("ns2")[$k 1]);
  303.                 $pozycja->setNs3($zadanie->get ("ns3")[$k 1]);
  304.                 if ($zadanie->get("csa"NULL) !== NULL) {
  305.                     //Podano CSA
  306.                     $pozycja->setCsa($em->getRepository(\App\Entity\HRDUser::class)->find (intval ($zadanie->get ("csa"))));
  307.                 } else {
  308.                     //Nie podano CSA
  309.                     $pozycja->setCsa($this->getUser ()->getCSA ()[0]->getCsa ());
  310.                 }
  311.                 $em->persist($pozycja);
  312.                 $em->flush();
  313.             }
  314.         }
  315.         //Zamiana koszyka na fakturę PRO-FORMA
  316.         $proforma = new \App\Entity\Dokument ();
  317.         $proforma->setBrutto($this->getUser()->getKoszyk()->getBrutto());
  318.         $proforma->setDatawystawienia(new \DateTime(date("Y-m-d")));
  319.         $proforma->setDozaplaty($this->getUser()->getKoszyk()->getBrutto ());
  320.         $proforma->setFormaplatnosci(\App\Entity\Dokument::fpPrzelew);
  321.         $proforma->setNetto($this->getUser()->getKoszyk()->getNetto ());
  322.         $proforma->setOdbiorca($this->getUser()->getNazwa() . "\n" . ($this->getUser()->getNIP() ? "NIP: " $this->getUser()->getNIP() : "PESEL: " $this->getUser()->getPESEL()));
  323.         if (intval($zadanie->get("adres")) != 0) {
  324.             $ADR $em->getRepository(\App\Entity\Adres::class)->find(intval($zadanie->get("adres")));
  325.             if ($ADR) {
  326.                 $proforma->setOdbiorca($proforma->getOdbiorca() . "\n" $ADR->getUlica() . " " $ADR->getDom() . ($ADR->getLokal() ? " lokal " $ADR->getLokal() : "") . "\n" $ADR->getKod() . " " $ADR->getMiasto() . "\n" $ADR->getKraj());
  327.             }
  328.         } else {
  329.             if (count ($this->getUser()->getAdresy ()) == 1) {
  330.                 $ADR $this->getUser()->getAdresy()[0];
  331.                 $proforma->setOdbiorca($proforma->getOdbiorca() . "\n" $ADR->getUlica() . " " $ADR->getDom() . ($ADR->getLokal() ? " lokal " $ADR->getLokal() : "") . "\n" $ADR->getKod() . " " $ADR->getMiasto() . "\n" $ADR->getKraj());
  332.             }
  333.         }
  334.         $proforma->setRodzaj(\App\Entity\Dokument::dtFP);
  335.         $proforma->setStatus(\App\Entity\Dokument::dsNieZaplacony);
  336.         $proforma->setTerminplatnosci(new \DateTime(date("Y-m-d"time() + 86400 intval($em->getRepository(\App\Entity\Conf::class)->peek("register-domains-pay-day-limit""7")))));
  337.         $proforma->setUser($this->getUser());
  338.         $proforma->setVat($this->getUser()->getKoszyk()->getBrutto() - $this->getUser()->getKoszyk()->getNetto());
  339.         $proforma->setWystawca($em->getRepository(\App\Entity\Conf::class)->peek("seller-text""seller-text"));
  340.         $numer_proformy intval($em->getRepository(\App\Entity\Conf::class)->peek("proforma-counter""1"));
  341.         $em->getRepository(\App\Entity\Conf::class)->poke("proforma-counter"$numer_proformy 1);
  342.         $format_numeru $em->getRepository(\App\Entity\Conf::class)->peek("proforma-format""{nr}");
  343.         $proforma->setNumer(str_replace(["{nr}""{d}""{m}""{R}"], [$numer_proformydate("d"), date("m"), date("Y")], $format_numeru));
  344.         $em->persist($proforma);
  345.         $em->flush();
  346.         //exit;
  347.         foreach ($this->getUser()->getKoszyk()->getPozycja() as &$pozycja) {
  348.             $nowaPozycja = new \App\Entity\PozycjaDokumentu();
  349.             //$pozycja = new \App\Entity\PozycjaDokumentu();
  350.             $nowaPozycja->setCenabrutto($pozycja->getCenabrutto());
  351.             $nowaPozycja->setCenanetto($pozycja->getCenanetto());
  352.             $nowaPozycja->setCenavat($pozycja->getCenavat());
  353.             $nowaPozycja->setCsa($pozycja->getCsa());
  354.             $nowaPozycja->setDokument($proforma);
  355.             $nowaPozycja->setDomena($pozycja->getDomena ());
  356.             $nowaPozycja->setIlosc($pozycja->getIlosc());
  357.             $nowaPozycja->setNazwa($pozycja->getNazwa());
  358.             $nowaPozycja->setNs1($pozycja->getNs1());
  359.             $nowaPozycja->setNs2($pozycja->getNs2());
  360.             $nowaPozycja->setNs3($pozycja->getNs3());
  361.             $nowaPozycja->setRodzaj($pozycja->getRodzaj());
  362.             $nowaPozycja->setWartoscbrutto($pozycja->getWartoscbrutto());
  363.             $nowaPozycja->setWartoscnetto($pozycja->getWartoscnetto());
  364.             $nowaPozycja->setWartoscvat($pozycja->getWartoscvat());
  365.             $nowaPozycja->setZrealizowane($pozycja->isZrealizowane());
  366.             $em->persist($nowaPozycja);
  367.             $em->flush ();
  368.         }
  369.         //exit;
  370.         $em->refresh($proforma);
  371.         
  372.         $em->remove($this->getUser()->getKoszyk());
  373.         $em->flush();
  374.         //exit;
  375.         if ($zadanie->get ("method") == "OFF-LINE") {
  376.             //Wygenerowanie pliku
  377.             //Faktura proforma
  378.             // Configure Dompdf according to your needs
  379.             $pdfOptions = new \Dompdf\Options();
  380.             $pdfOptions->set('defaultFont''Tahoma');
  381.             $pdfOptions->set('enable_remote'true);
  382.             //$pdfOptions->set('tempDir', "/var/www/80/chopin.ndc.pl/doc/temp");
  383.             //$pdfOptions->set('logOutputFile', "/var/www/80/chopin.ndc.pl/doc/temp/log.txt");
  384.             // Instantiate Dompdf with our options
  385.             $dompdf = new \Dompdf\Dompdf($pdfOptions);
  386.             // Retrieve the HTML generated in our twig file
  387.             $html $this->renderView('dokument/faktura-proforma-pdf-template.html.twig', [
  388.                 "dokument" => $proforma,
  389.                 "orgcpy" => "ORYGINAŁ",
  390.                 "słownie" => $slownie->kwotaslownie($proforma->getBrutto())
  391.             ]);
  392.             // Load HTML to Dompdf                
  393.             $dompdf->loadHtml($html);
  394.             // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  395.             $dompdf->setPaper('A4''portrait');
  396.             // Render the HTML as PDF
  397.             $dompdf->render();
  398.             // Output the generated PDF to Browser (force download)
  399.             $binaryPDF $dompdf->output();
  400.             $zalacznik = new \Swift_Attachment();
  401.             $zalacznik->setFilename (str_replace ("/""_"$proforma->getNumer()) . ".pdf");
  402.             $zalacznik->setContentType ("application/pdf");
  403.             $zalacznik->setBody ($binaryPDF);
  404.             
  405.             //Wysłanie e-maila
  406.             $emailMessage = new \Swift_Message(str_replace ('{nr}'$proforma->getNumer (), $em->getRepository(\App\Entity\Conf::class)->peek ("email-domain-registration-title""InforPol NET: Zamówienie {nr} na rejestrację domen.")));
  407.             
  408.             $emailMessage->setFrom ($em->getRepository(\App\Entity\Conf::class)->peek ("email-sender-return-address""info@ndc.pl"), $em->getRepository(\App\Entity\Conf::class)->peek ("email-sender-name""INFORPOL NET"))
  409.                 ->setTo ((trim ($proforma->getUser()->getEmailFakturowy()) != "") ? $proforma->getUser()->getEmailFakturowy() : $proforma->getUser()->getEmail(), $proforma->getUser()->getNazwa())
  410.                 ->setBody (
  411.                     $this->renderView("email/rejestracja_proforma.html.twig", ["dokument" => $proforma]),
  412.                     'text/html'
  413.                 )->attach ($zalacznik);
  414.             $mailer->send($emailMessage);
  415.             return $this->render ("offline-pay.html.twig", [ "dokument" => $proforma"email" => (trim ($proforma->getUser()->getEmailFakturowy()) != "") ? $proforma->getUser()->getEmailFakturowy() : $proforma->getUser()->getEmail() ]);
  416.         } else {
  417.             return $this->redirectToRoute("make-tpay-1", [ "docId" => $proforma->getId () ]);
  418.         }
  419.     }
  420.     
  421. }