Обработка добавления новых записей заказов по которым установлен aproved

parent cfc4c808
......@@ -344,7 +344,14 @@ $(document).ready(function(){
dataOrders.push(dataItem);
});
console.log('AAA data = ', data);
/*
var formData = new FormData();
formData.append('approved', 1);
data: formData,
contentType: false,
processData: false,
*/
$.ajax(action, {
type: 'POST',
......
......@@ -34,6 +34,7 @@ use App\Model\Providers;
use App\Model\Feeds\Feeds;
use App\Model\Feeds\OrdersStatus;
use App\Entity\Feeds\CategoryFee;
use App\Entity\Feeds\OrderStatus;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Zend\Diactoros\Response\HtmlResponse;
......@@ -125,7 +126,6 @@ class Cabinet extends Common
$reports_list[$report_name] = $report_value['title'];
}
switch ($report_type) {
case 'common':
$periodStats = $stats->getFeedStatData($report_type, $feed_id_list, $dates, $report_conf);
......@@ -373,8 +373,48 @@ class Cabinet extends Common
if ($data_request['approved']) {
return new JsonResponse($data_request);
/** @var \App\Model\Feeds $ordersStatusModel */
$ordersStatusModel = $this->container->get(OrdersStatus::class);
/** @var DelegatingHydrator $hydrator */
$hydrator = $this->container->get(DelegatingHydrator::class);
$approved_orders = [];
foreach($data_request['orders'] as $order_item) {
$feed_id = $order_item['feedId'];
if (in_array($feed_id, $feed_id_list)) {
$order_id = $order_item['orderId'];
$ordersStatus = $ordersStatusModel->findOne(['feed_id' => $feed_id, 'order_id' => $order_id]);
if ($ordersStatus) {
$order_is_approved = $ordersStatus->getApproved();
if (!$order_is_approved) {
$ordersStatus->setApproved($order_item['approved']);
$res = $ordersStatusModel->saveRetargOrderStatus($ordersStatus, 'update');
if(!$result) {
throw new \Exception('DB error');
}
$approved_orders[] = $res;
}
} else {
$data = array(
'feed_id' => $feed_id,
'order_id' => $order_id,
'confirmed' => $order_item['confirmed'],
'approved' => $order_item['approved']
);
$orderStatus = $hydrator->hydrate($data, new OrderStatus());
$res = $ordersStatusModel->saveRetargOrderStatus($orderStatus, 'insert');
if(!$res) {
throw new \Exception('DB error');
}
$approved_orders[] = $res;
}
}
}
return new JsonResponse($approved_orders);
}
......
......@@ -35,4 +35,59 @@ use App\Model\Common;
class OrdersStatus extends Common
{
public function saveRetargOrderStatus($entity, $action)
{
$data_entity = $this->delegatingHydrator->extract($entity);
$table_fields = $this->tableGateway->getColumns();
$data = [];
foreach ($table_fields as $field) {
if (isset($data_entity[mb_strtolower($field)])) {
$data[$field] = $data_entity[mb_strtolower($field)];
}
}
if ($action == 'insert') {
$query = function($data) {
$this->tableGateway->insert($data);
return $data['order_id'];
};
}
if ($action == 'update') {
$query = function($data) {
$id = $data['order_id'];
unset($data['order_id']);
$this->tableGateway->update($data, ['order_id' => $id]);
return $id;
};
}
try {
$this->tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction();
$id = $query($data);
$this->tableGateway->getAdapter()->getDriver()->getConnection()->commit();
} catch (\Exception $e) {
$this->tableGateway->getAdapter()->getDriver()->getConnection()->rollback();
throw $e;
}
return $id;
}
/*
public function deleteRetargCatFee($entity)
{
$result = false;
$cat_id = $entity->getCatid();
if ($entity) {
$result = $this->tableGateway->delete(['CatID' => $cat_id]);
} else {
throw new \Exception("Record not found ID:" . $cat_id);
}
return $result;
}
*/
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment