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; }
/** * @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')); }