private function getHTML(Sale $sale)
 {
     $url = $this->baseUrl . '/license/' . $sale->getLicenseId();
     $html = '<p>A license has been sold for <strong>$%s</strong></p>';
     $html .= '<p>License details:</p>';
     $html .= '<table>' . '<tr><td>Customer</td><td>%s</td></tr>' . '<tr><td>Type</td><td>%s</td></tr>' . '<tr><td>Size</td><td>%s</td></tr>' . '<tr><td>License ID</td><td>%s</td></tr>' . '<tr><td>Add-On</td><td><a href="%s">%s</a></td></tr>' . '<tr><td>Date</td><td>%s</td></tr>' . '<tr><td>Valid until</td><td>%s</td></tr>' . '</table>';
     return sprintf($html, $sale->getVendorAmount(), $sale->getOrganisationName(), $sale->getSaleType(), $sale->getLicenseSize(), $sale->getLicenseId(), $url, $sale->getPluginName(), $sale->getDate()->format('Y-m-d'), $sale->getMaintenanceEndDate()->format('Y-m-d'));
 }
 private function saveSales($jsonSales, $repository)
 {
     $newCnt = 0;
     foreach ($jsonSales as $jsonSale) {
         if ($repository->findIfSaleIsNew($jsonSale['invoice'], $jsonSale['licenseId'], $jsonSale['pluginKey'])) {
             $newCnt++;
             $sale = new Sale();
             $sale->setFromJSON($jsonSale);
             $this->em->persist($sale);
             if (true == $this->input->getOption('new-sale-notification')) {
                 $this->saleMailer->sendEmail($sale);
             }
         }
     }
     return $newCnt;
 }
 private function saveSales($jsonSales, $existingInvoices)
 {
     foreach ($jsonSales as $jsonSale) {
         $exists = false;
         foreach ($existingInvoices as $existing) {
             if ($existing['invoice'] == $jsonSale['invoice'] && $existing['licenseId'] == $jsonSale['licenseId']) {
                 $exists = true;
             }
         }
         if (!$exists) {
             $sale = new Sale();
             $sale->setFromJSON($jsonSale);
             $this->em->persist($sale);
             if (true == $this->getContainer()->getParameter('new_sale_notification')) {
                 $this->saleMailer->sendEmail($sale);
             }
         }
     }
 }
 private function addMonltySale(&$groupedSales, Sale $sale)
 {
     if (!isset($groupedSales[$sale->getDate()->format('Y-m')])) {
         $monthlySale = ['new' => 0.0, 'renewal' => 0.0, 'other' => 0.0];
     } else {
         $monthlySale = $groupedSales[$sale->getDate()->format('Y-m')];
     }
     switch ($sale->getSaleType()) {
         case 'Renewal':
             $monthlySale['renewal'] += $sale->getVendorAmount();
             break;
         case 'New':
             $monthlySale['new'] += $sale->getVendorAmount();
             break;
         default:
             $monthlySale['other'] += $sale->getVendorAmount();
             break;
     }
     $groupedSales[$sale->getDate()->format('Y-m')] = $monthlySale;
 }
 /**
  * @param $licenseType
  * @param $saleType
  * @param $licenseId
  * @param $licenseSize
  * @param $country
  * @param $vendorAmount
  * @param $pluginKey
  * @param $invoice
  * @param $date
  * @param $pluginName
  * @param $maintenanceStartDate
  * @param $maintenanceEndDate
  * @param $organisationName
  * @param $discounted
  * @param $purchasePrice
  *
  * @return Sale
  */
 private function createSale($licenseType, $saleType, $licenseId, $licenseSize, $country, $vendorAmount, $pluginKey, $invoice, $date, $pluginName, $maintenanceStartDate, $maintenanceEndDate, $organisationName, $discounted, $purchasePrice)
 {
     $sale = new Sale();
     $sale->setLicenseType($licenseType)->setSaleType($saleType)->setLicenseId($licenseId)->setLicenseSize($licenseSize)->setCountry($country)->setVendorAmount($vendorAmount)->setPluginKey($pluginKey)->setPluginName($pluginName)->setInvoice($invoice)->setDate(new \DateTime($date))->setMaintenanceStartDate(new \DateTime($maintenanceStartDate))->setMaintenanceEndDate(new \DateTime($maintenanceEndDate))->setOrganisationName($organisationName)->setDiscounted($discounted)->setPurchasePrice($purchasePrice);
     return $sale;
 }
예제 #6
0
 /**
  * @Security("has_role('ROLE_OPERATOR')")
  * @Route("/sale-add/{companyId}", name="sale_add")
  * @Template()
  */
 public function saleAddAction(Request $request, $companyId)
 {
     if ($request->getMethod() == 'POST') {
         $city = $this->getDoctrine()->getRepository('AppBundle:City')->findOneById($request->request->get('city'));
         $company = $this->getDoctrine()->getRepository('AppBundle:Company')->findOneById($companyId);
         $date = new \DateTime();
         $dateString = $date->format('Y') . '-' . $request->request->get('month') . '-01 00:00:00';
         $date = new \DateTime($dateString);
         $sale = new Sale();
         $sale->setCity($city);
         $sale->setDate($date);
         $sale->setCompany($company);
         $sale->setPercent($request->request->get('percent'));
         $this->getDoctrine()->getManager()->persist($sale);
         $this->getDoctrine()->getManager()->flush($sale);
     }
     return $this->redirect($request->headers->get('referer'));
 }