152 lines
4.9 KiB
PHP
152 lines
4.9 KiB
PHP
<?php
|
|
|
|
class DashboardController extends mfBaseController {
|
|
|
|
protected function init() {
|
|
$this->needlogin=true;
|
|
$me = new User();
|
|
$me->loadMe();
|
|
$this->me = $me;
|
|
$this->layout()->set("me",$me);
|
|
}
|
|
|
|
protected function indexAction() {
|
|
|
|
|
|
if($this->me->is("preorderfront")) {
|
|
$this->redirect("Preorder");
|
|
}
|
|
if($this->me->is("Preorderlogistics")) {
|
|
$this->redirect("Preorderlogistics");
|
|
}
|
|
|
|
$newss = NewsModel::getAll();
|
|
$this->layout()->set("newss", $newss);
|
|
|
|
//if($this->me->is(["Admin", "netowner", "salespartner"]) || $this->me->can("Preorder")) {
|
|
if($this->me->is("Admin")) {
|
|
return $this->dashboardAction();
|
|
}
|
|
|
|
}
|
|
|
|
protected function dashboardAction() {
|
|
$this->layout()->setTemplate("Dashboard/Dashboard");
|
|
|
|
$r = $this->request;
|
|
|
|
$campaign_ids = $r->campaign_id;
|
|
if($campaign_ids && !is_array($campaign_ids)) {
|
|
$campaign_ids = [$campaign_ids];
|
|
}
|
|
|
|
|
|
|
|
if($this->me->is("Admin")) {
|
|
$campaigns = PreordercampaignModel::getAll();
|
|
|
|
if(!$campaign_ids) {
|
|
foreach(PreordercampaignModel::getAll() as $campaign) {
|
|
$campaign_ids[] = $campaign->id;
|
|
}
|
|
}
|
|
|
|
$max_connections = $this->getTotalHomes($campaign_ids);
|
|
$count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
|
|
|
|
$status_connected_single = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 244]);
|
|
$status_connected_multi = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 245]);
|
|
|
|
$status_connected = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 500]);
|
|
} else {
|
|
$campaigns = PreordercampaignModel::search(["owner_id" => $this->me->address_id]);
|
|
|
|
if(!$campaign_ids) {
|
|
foreach(PreordercampaignModel::search(["owner_id" => $this->me->address_id]) as $campaign) {
|
|
$campaign_ids[] = $campaign->id;
|
|
}
|
|
}
|
|
|
|
$max_connections = $this->getTotalHomes($campaign_ids);
|
|
$count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
|
|
|
|
$status_connected_single = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 244]);
|
|
$status_connected_multi = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 245]);
|
|
|
|
$status_connected = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 500]);
|
|
}
|
|
|
|
$this->layout()->set("max_connections", $max_connections);
|
|
$this->layout()->set("count_orders", $count_orders);
|
|
$this->layout()->set("status_connected_single", $status_connected_single);
|
|
$this->layout()->set("status_connected_multi", $status_connected_multi);
|
|
$this->layout()->set("status_connected", $status_connected);
|
|
$this->layout()->set("campaigns", $campaigns);
|
|
$this->layout()->set("campaign_id", $r->campaign_id);
|
|
|
|
}
|
|
|
|
private function getTotalHomes($preordercampaign_id = []) {
|
|
$total_homes = 0;
|
|
|
|
foreach($preordercampaign_id as $campaign_id) {
|
|
$campaign = new Preordercampaign($campaign_id);
|
|
if($campaign->id) {
|
|
$total_homes += $campaign->total_homes;
|
|
}
|
|
}
|
|
|
|
return $total_homes;
|
|
}
|
|
|
|
|
|
protected function pdfAction() {
|
|
$order = new Order(7);
|
|
$owner = new Address(1);
|
|
|
|
$pdf = new Layout();
|
|
$pdf->setTemplate("Emailtemplates/attachments/new_order.pdf");
|
|
$pdf->set("ressourcePathPrefix", BASEDIR."/public/");
|
|
$pdf->set("owner", $owner);
|
|
$pdf->set("order", $order);
|
|
|
|
$pdfpath = $pdf->renderPDF();
|
|
$tvalue = $pdf->getReturnedValue();
|
|
$pdfname = $tvalue['filename'];
|
|
|
|
echo $pdfname;
|
|
|
|
exit;
|
|
return true;
|
|
//var_dump($pdfpath);exit;
|
|
|
|
// send email to customer
|
|
|
|
// TODO template rendern auslagern nach Emailtempate klasse
|
|
$tpl = new Layout();
|
|
$tpl->setTemplate("Emailtemplates/customer/new_order");
|
|
$tpl->set("owner", $owner);
|
|
$body = $tpl->render();
|
|
|
|
$values = $tpl->getReturnedValue();
|
|
|
|
$subject = $values['subject'];
|
|
$from = $values['from_email'];
|
|
$from_name = $values['from_email_name'];
|
|
$to = $owner->email;
|
|
|
|
if(!$subject || !$from || !$from_name || !$to) {
|
|
$this->log->warn("Service PIN Email not sent. (subject: '$subject', from: '$from', from_email: '$from_email', to: '$to')");
|
|
} else {
|
|
$email = new Emailnotification();
|
|
$email->setSubject($subject);
|
|
$email->setBody($body);
|
|
$email->setFrom($from, $from_name);
|
|
$email->setTo($to);
|
|
$email->setHeader("X-".MFAPPNAME."-oid", $order->id);
|
|
$email->setHeader("X-".MFAPPNAME."-pid", $product->id);
|
|
$email->addAttachment($pdfpath, null, $pdfname, "application/pdf");
|
|
$email->send();
|
|
}
|
|
}
|
|
} |