diff --git a/data/ers.mwb b/data/ers.mwb index 303192ce..eeb22724 100644 Binary files a/data/ers.mwb and b/data/ers.mwb differ diff --git a/data/ers.mwb.bak b/data/ers.mwb.bak index ea7a8bea..303192ce 100644 Binary files a/data/ers.mwb.bak and b/data/ers.mwb.bak differ diff --git a/module/Admin/src/Admin/Controller/CronController.php b/module/Admin/src/Admin/Controller/CronController.php index 4fe0a6eb..e459084a 100644 --- a/module/Admin/src/Admin/Controller/CronController.php +++ b/module/Admin/src/Admin/Controller/CronController.php @@ -459,7 +459,7 @@ public function sendPaymentReminderAction() { $qb->andWhere($qb->expr()->eq('o.payment_reminder_status', ':prstatus')); $qb->setParameter('status', 'ordered'); $paymentTarget = new \DateTime; - $paymentTarget->modify( '-5 days' ); + $paymentTarget->modify( '-10 days' ); $qb->setParameter('paymentTarget', $paymentTarget); $qb->setParameter('prstatus', '0'); #$qb->setFirstResult( $offset ) @@ -493,10 +493,10 @@ public function sendPaymentReminderAction() { $emailService->setFrom($config['ERS']['info_mail']); /*** real buyer ***/ - $buyer = $order->getBuyer(); - $emailService->addTo($buyer); + #$buyer = $order->getBuyer(); + #$emailService->addTo($buyer); /***/ - /*** test buyer ** + /*** test buyer **/ $user = new Entity\User(); $user->setEmail('andi'.$order->getCode()->getValue().'@inbaz.org'); $emailService->addTo($user); @@ -525,6 +525,7 @@ public function sendPaymentReminderAction() { $em->flush(); echo "sent payment reminder for order ".$order->getCode()->getValue().PHP_EOL; + \sleep(5); } } @@ -825,7 +826,7 @@ public function calcSumsAction() { $em = $this->getServiceLocator() ->get('Doctrine\ORM\EntityManager'); $qb = $em->getRepository('ErsBase\Entity\Order')->createQueryBuilder('o'); - $qb->join('o.status', 's'); + $qb->join('o.status', 's', 'WITH', 's.active = 1'); $qb->where($qb->expr()->neq('s.value', ':status')); $qb->setParameter('status', 'order pending'); @@ -836,8 +837,9 @@ public function calcSumsAction() { #echo $order->getCode()->getValue().PHP_EOL; $orig_total_sum = $order->getTotalSum(); $orig_order_sum = $order->getOrderSum(); + $order->getTotalSumEur(); + $order->getOrderSumEur(); - $persist = false; if($orig_order_sum != $order->getPrice()) { $order->setOrderSum($order->getPrice()); echo "update order sum for ".$order->getCode()->getValue().": ".$orig_order_sum." != ".$order->getPrice().PHP_EOL; @@ -847,9 +849,7 @@ public function calcSumsAction() { echo "update total sum for ".$order->getCode()->getValue().": ".$orig_total_sum." != ".$order->getSum().PHP_EOL; } - if($persist) { - $em->persist($order); - } + $em->persist($order); } $em->flush(); } diff --git a/module/Admin/src/Admin/Controller/StatisticController.php b/module/Admin/src/Admin/Controller/StatisticController.php index 10bfe016..7fd56929 100644 --- a/module/Admin/src/Admin/Controller/StatisticController.php +++ b/module/Admin/src/Admin/Controller/StatisticController.php @@ -21,7 +21,7 @@ public function orgasAction() { ->get('Doctrine\ORM\EntityManager'); $qb1 = $em->getRepository('ErsBase\Entity\Order')->createQueryBuilder('o'); - $qb1->select(array('SUM(o.order_sum) as ordersum')); + $qb1->select(array('SUM(o.order_sum_eur) as ordersum')); $qb1->join('o.status', 's'); $qb1->join('o.paymentType', 'pt'); $qb1->where($qb1->expr()->eq('s.value', ':status')); @@ -32,7 +32,7 @@ public function orgasAction() { $ordersums = $qb1->getQuery()->getSingleResult(); - /* SELECT SUM( order_sum ) , SUM( total_sum ) + /* SELECT SUM( order_sum_eur ) , SUM( total_sum_eur ) FROM `order` JOIN `match` ON `order`.id = `match`.order_id JOIN bank_statement ON bank_statement.id = `match`.bank_statement_id @@ -40,7 +40,7 @@ public function orgasAction() { WHERE bank_account.id =2 */ $qb2 = $em->getRepository('ErsBase\Entity\Match')->createQueryBuilder('m'); - $qb2->select(array('SUM(o.order_sum) as ordersum')); + $qb2->select(array('SUM(o.order_sum_eur) as ordersum')); $qb2->join('m.order', 'o'); $qb2->join('m.bankStatement', 'bs'); $qb2->join('bs.paymentType', 'pt'); @@ -141,7 +141,7 @@ public function ordersAction() { $order_data['paymentfees'] = array_sum(array_map(function($row){ return floatval($row['fee']); }, $paymentFees)); $fastResults = $em->createQueryBuilder() - ->select('SUM(o.total_sum) totalsum_fast', 'SUM(o.order_sum) ordersum_fast')->from('ErsBase\Entity\Order o') + ->select('SUM(o.total_sum_eur) totalsum_fast', 'SUM(o.order_sum_eur) ordersum_fast')->from('ErsBase\Entity\Order o') ->getQuery()->getSingleResult(); $order_data['ordersum_fast'] = $fastResults['ordersum_fast']; @@ -151,48 +151,47 @@ public function ordersAction() { - $orderSelectFields = array('COUNT(o.id) AS ordercount', 'SUM(o.order_sum) AS ordersum, SUM(o.total_sum) AS totalsum'); + $orderSelectFields = array('COUNT(o.id) AS ordercount', 'SUM(o.order_sum_eur) AS ordersum, SUM(o.total_sum_eur) AS totalsum'); $paymentStatusStats = $em->createQueryBuilder() #->select(array_merge(array('o.payment_status AS label'), $orderSelectFields)) - ->select(array_merge(array('s status, s.value label', 'o.currency_id'), $orderSelectFields)) + ->select(array_merge(array('s status, s.value label'), $orderSelectFields)) ->from('ErsBase\Entity\Status', 's') ->leftJoin('s.orders', 'o') - #->groupBy('o.payment_status') - ->groupBy('s.value', 's.id', 'o.currency_id') + ->groupBy('s.value', 's.id') ->orderBy('s.position') ->getQuery()->getResult(); - $currencies = $em->getRepository('ErsBase\Entity\Currency')->findAll(); - $factor = array(); - foreach($currencies as $currency) { - $factor[$currency->getId()] = $currency->getFactor(); - } - $byStatusGroups = array('active' => array(), 'inactive' => array()); foreach($paymentStatusStats AS $statusData) { - error_log($statusData['ordersum'].' '.$statusData['currency_id']); - $statusData['ordersum'] = $statusData['ordersum'] * $factor[$statusData['currency_id']]; - $statusData['totalsum'] = $statusData['totalsum'] * $factor[$statusData['currency_id']]; $group = ($statusData['status']->getActive() ? 'active' : 'inactive'); $byStatusGroups[$group][] = $statusData; } + error_log('active: '.count($byStatusGroups['active'])); + error_log('inactive: '.count($byStatusGroups['inactive'])); $paymentTypeStats = $em->createQueryBuilder() ->select(array_merge(array('pt.name AS label', 'c.short as currency'), $orderSelectFields)) ->from('ErsBase\Entity\PaymentType', 'pt') - #->join('pt.orders', 'o', 'WITH', "o.payment_status != 'cancelled' AND o.payment_status != 'refund'") ->join('pt.orders', 'o') ->join('o.status', 's', 'WITH', "s.active = 1") ->join('pt.currency', 'c') ->groupBy('pt.id') ->getQuery()->getResult(); - - return new ViewModel(array( 'stats_paymentStatusGroups' => $byStatusGroups, - 'stats_paymentTypes' => $paymentTypeStats + 'stats_paymentTypes' => $paymentTypeStats, + /*'orderActiveCount' => $em->createQueryBuilder() + ->select('COUNT(o.id)') + ->from('ErsBase\Entity\Order', 'o') + ->join('o.status', 's', 'WITH', "s.active = 1") + ->getQuery()->getSingleScalarResult(), + 'orderInactiveCount' => $em->createQueryBuilder() + ->select('COUNT(o.id)') + ->from('ErsBase\Entity\Order', 'o') + ->join('o.status', 's', 'WITH', "s.active = 0") + ->getQuery()->getSingleScalarResult(),*/ )); } diff --git a/module/Admin/view/admin/currency/index.phtml b/module/Admin/view/admin/currency/index.phtml index f0f0f79e..78c8f267 100644 --- a/module/Admin/view/admin/currency/index.phtml +++ b/module/Admin/view/admin/currency/index.phtml @@ -8,8 +8,9 @@ $this->headTitle($title); <table class="table"> <tr> - <th>Pos.</th> - <th>Name</th> + <th>#</th> + <th>name</th> + <th>factor</th> <th>active</th> <th class="text-right"> <a class="btn btn-success" href="<?php echo $this->url('admin/currency', array('action'=>'add'));?>"><i class="fa fa-plus"></i> currency</a> @@ -19,6 +20,7 @@ $this->headTitle($title); <tr> <td><?php echo $currency->getPosition(); ?></td> <td><?php echo $currency->getName(); ?> (<?php echo $currency->getShort().' / '.$currency->getSymbol(); ?>)</td> + <td><?php echo $currency->getFactor(); ?></td> <td> <?php if($currency->getActive()): ?> <i class="fa fa-check"></i> diff --git a/module/Admin/view/admin/statistic/orders.phtml b/module/Admin/view/admin/statistic/orders.phtml index 9382580c..54cee27d 100644 --- a/module/Admin/view/admin/statistic/orders.phtml +++ b/module/Admin/view/admin/statistic/orders.phtml @@ -108,3 +108,8 @@ $this->headTitle($title); <div class="panel-footer">Only active orders are included in this view.</div> </div> + +<?php /*<div class="row"> + <div class="col-xs-12">active order count: <?php echo $orderActiveCount; ?></div> + <div class="col-xs-12">inactive order count: <?php echo $orderInactiveCount; ?></div> +</div>*/ ?> \ No newline at end of file diff --git a/module/ErsBase/src/ErsBase/Entity/Base/Order.php b/module/ErsBase/src/ErsBase/Entity/Base/Order.php index 5e9e76f5..4738fcdb 100644 --- a/module/ErsBase/src/ErsBase/Entity/Base/Order.php +++ b/module/ErsBase/src/ErsBase/Entity/Base/Order.php @@ -2,7 +2,7 @@ /** * Auto generated by MySQL Workbench Schema Exporter. - * Version 2.1.6-dev (doctrine2-mappedsuperclass) on 2017-03-06 16:58:38. + * Version 2.1.6-dev (doctrine2-mappedsuperclass) on 2017-04-17 14:11:19. * Goto https://github.com/johmue/mysql-workbench-schema-exporter for more * information. */ @@ -73,11 +73,21 @@ abstract class Order */ protected $order_sum; + /** + * @ORM\Column(name="`order_sum_eur`", type="float", nullable=true) + */ + protected $order_sum_eur; + /** * @ORM\Column(name="`total_sum`", type="float", nullable=true) */ protected $total_sum; + /** + * @ORM\Column(name="`total_sum_eur`", type="float", nullable=true) + */ + protected $total_sum_eur; + /** * @ORM\Column(name="`refund_sum`", type="float", nullable=true) */ @@ -414,6 +424,29 @@ public function getOrderSum() return $this->order_sum; } + /** + * Set the value of order_sum_eur. + * + * @param float $order_sum_eur + * @return \ErsBase\Entity\Base\Order + */ + public function setOrderSumEur($order_sum_eur) + { + $this->order_sum_eur = $order_sum_eur; + + return $this; + } + + /** + * Get the value of order_sum_eur. + * + * @return float + */ + public function getOrderSumEur() + { + return $this->order_sum_eur; + } + /** * Set the value of total_sum. * @@ -437,6 +470,29 @@ public function getTotalSum() return $this->total_sum; } + /** + * Set the value of total_sum_eur. + * + * @param float $total_sum_eur + * @return \ErsBase\Entity\Base\Order + */ + public function setTotalSumEur($total_sum_eur) + { + $this->total_sum_eur = $total_sum_eur; + + return $this; + } + + /** + * Get the value of total_sum_eur. + * + * @return float + */ + public function getTotalSumEur() + { + return $this->total_sum_eur; + } + /** * Set the value of refund_sum. * @@ -841,7 +897,7 @@ public function populate(array $data = array()) */ public function getArrayCopy(array $fields = array()) { - $dataFields = array('id', 'code_id', 'status_id', 'buyer_id', 'payment_type_id', 'hashkey', 'invoice_detail', 'payment_status', 'payment_reminder_status', 'order_sum', 'total_sum', 'refund_sum', 'currency_id', 'comment', 'updated', 'created'); + $dataFields = array('id', 'code_id', 'status_id', 'buyer_id', 'payment_type_id', 'hashkey', 'invoice_detail', 'payment_status', 'payment_reminder_status', 'order_sum', 'order_sum_eur', 'total_sum', 'total_sum_eur', 'refund_sum', 'currency_id', 'comment', 'updated', 'created'); $relationFields = array('user', 'paymentType', 'status', 'code', 'currency'); $copiedFields = array(); foreach ($relationFields as $relationField) { @@ -874,6 +930,6 @@ public function getArrayCopy(array $fields = array()) public function __sleep() { - return array('id', 'code_id', 'status_id', 'buyer_id', 'payment_type_id', 'hashkey', 'invoice_detail', 'payment_status', 'payment_reminder_status', 'order_sum', 'total_sum', 'refund_sum', 'currency_id', 'comment', 'updated', 'created'); + return array('id', 'code_id', 'status_id', 'buyer_id', 'payment_type_id', 'hashkey', 'invoice_detail', 'payment_status', 'payment_reminder_status', 'order_sum', 'order_sum_eur', 'total_sum', 'total_sum_eur', 'refund_sum', 'currency_id', 'comment', 'updated', 'created'); } } \ No newline at end of file diff --git a/module/ErsBase/src/ErsBase/Entity/Order.php b/module/ErsBase/src/ErsBase/Entity/Order.php index 08debd2e..b3c825be 100644 --- a/module/ErsBase/src/ErsBase/Entity/Order.php +++ b/module/ErsBase/src/ErsBase/Entity/Order.php @@ -171,7 +171,22 @@ public function getTotalSum() } return $this->total_sum; } + + public function getOrderSumEur() { + if($this->order_sum_eur == 0) { + $this->order_sum_eur = $this->getPrice()*$this->getCurrency()->getFactor(); + } + return $this->order_sum_eur; + } + public function getTotalSumEur() + { + if($this->total_sum_eur == 0) { + $this->total_sum_eur = $this->getSum()*$this->getCurrency()->getFactor(); + } + return $this->total_sum_eur; + } + /** * Not needed here anymore the method of the base entity is used instead * Add Package entity to collection (one to many).