public function create($data) { error_reporting(E_ALL); ini_set('display_errors', 1); $transaction = new Transaction(); //var_dump($data);exit; if (isset($data['itemlist'])) { $arr = []; foreach ($data['itemlist'] as $item) { $arr[] = $item['id']; } $data['items'] = $arr; } $payDate = new \DateTime($data['payDate']); $createDate = new \DateTime("now"); if (isset($data['bankinfouser'])) { $data["bankinfouser"] = $data['bankinfo']['name']; } $currency = ''; if ($data['typeStatus'] == 1) { $client = $this->getReference('\\User\\Entity\\User', $data['userid']); $currency = $client->getCurrency(); $freelancer = null; } else { // out going $freelancer = $this->getReference('\\User\\Entity\\User', $data['userid']); $currency = $freelancer->getCurrency(); $client = null; } $transaction->setData(['intrans_no' => $data["transactionno"], 'fapiao_no' => $data["fapiaono"], 'total' => $data["total"] ? $data["total"] : 0.0, 'subtotal' => $data["subtotal"] ? $data["subtotal"] : 0.0, 'fee' => $data["transactionfee"] ? $data["transactionfee"] : 0.0, 'bank' => $this->getReference('Admin\\Entity\\ProfileBank', $data['bankinfo']['id']), 'bankuser' => $data["bankinfouser"], 'is_deleted' => 0, 'client' => $client, 'freelancer' => $freelancer, 'payDate' => $payDate, 'createDate' => $createDate, 'typeStatus' => $data['typeStatus'], 'currency' => $currency, 'items' => $data['items'] ? $data['items'] : null]); $transaction->save($this->getEntityManager()); //update status project to pay if ($data['typeStatus'] == 1) { foreach ($data['itemlist'] as $pr) { $project = $this->find('\\User\\Entity\\Project', $pr['id']); $project->setData(['payStatus' => 2]); $project->save($this->getEntityManager()); } } else { if ($data['typeStatus'] == 2) { foreach ($data['itemlist'] as $ta) { $task = $this->find('\\User\\Entity\\Task', $ta['id']); $task->setData(['payStatus' => 2]); $task->save($this->getEntityManager()); } } } return new JsonModel(['success' => true]); }
public function doneAction() { //error_reporting(E_ALL); //ini_set('display_errors', 1); $token = $this->getServiceLocator()->get('payum.security.http_request_verifier')->verify($this); $gateway = $this->getServiceLocator()->get('payum')->getGateway($token->getGatewayName()); $gateway->execute($status = new GetHumanStatus($token)); //return new JsonModel(array('status' => $status->getValue()) + iterator_to_array($status->getModel())); if ($status->getValue() == "captured") { $order = new Container('order'); //create transaction sucessfull $transaction = new Transaction(); $transaction->setData(['intrans_no' => "", 'fapiao_no' => "", 'total' => round($order->offsetGet('total'), 2), 'subtotal' => round($order->offsetGet('total'), 2), 'fee' => 0, 'bank' => $this->getReference('Admin\\Entity\\ProfileBank', 1), 'is_deleted' => 0, 'client' => $this->getReference('User\\Entity\\User', $order->offsetGet('client')), 'payDate' => new \DateTime('NOW'), 'createDate' => new \DateTime('NOW'), 'typeStatus' => 1, 'currency' => $order->offsetGet('currency'), 'items' => $data['items'] ? $data['items'] : null]); $transaction->save($this->getEntityManager()); //update status project to pay $project = $this->find('\\User\\Entity\\Project', $order->offsetGet('project')); $project->setData(['payStatus' => 2]); $project->save($this->getEntityManager()); //go to sucessful page return new ViewModel(['success' => true, 'total' => round($order->offsetGet('total'), 2), 'currency' => $order->offsetGet('currency'), 'project_no' => $order->offsetGet('project_no'), 'project' => $order->offsetGet('project')]); } else { //go to fail page return new ViewModel(['success' => false]); } }