Untitled
unknown
plain_text
3 years ago
6.7 kB
4
Indexable
<?php include __DIR__.'/include.php'; $boxArray = array(); // получаем все активные боксы $paramArray = array(); $paramArray['workflowid'] = 672; // обачные $paramArray['statusid'] = 4145; // в статусе Активен $paramArray['count'] = 10000; // до 10к штук $data = _boxRequest('/api/orders/get/', $paramArray); foreach ($data['orders'] as $order) { //print_r($order); //print_r($order); $tariff = false; $userCount = 0; foreach ($order['customfields'] as $x) { if ($x['key'] == 'tarifihetzner341') { $tariff = $x['value']; } if ($x['key'] == 'oneboxamountlicense') { $userCount = $x['value']; } } /*if (!$tariff) { continue; }*/ /*if (substr_count($tariff, 'бесплатно')) { continue; }*/ // по каждому боксу надо посчитать: // дату окончания (только дату) // день окончания (округлить до 28) // сумму по тарифу (пока можно x25) $edate = $order['dateplan']; // формируем массив дат на 24 мес вперед $dayArray = array(); //$monthArray = array(); if ($edate > '2000-01-01') { for ($j = 0; $j <= 12; $j++) { $dayArray[] = DateTime_Object::FromString($edate)->addMonth(+$j)->setFormat('Y-m-d').''; } } if (!$order['products']) { continue; } $tariffAmount = 0; foreach ($order['products'] as $op) { if ($op['productcurrency'] == 'UAH') { $tariffAmount += $op['productpricewithvat'] / 28; } elseif ($op['productcurrency'] == 'RUB') { $tariffAmount += $op['productpricewithvat'] / 74; } elseif ($op['productcurrency'] == 'USD') { $tariffAmount += $op['productpricewithvat']; } else { print_r($op); } } $tariffAmount = round($tariffAmount); $boxArray[$order['orderid']] = array( 'name' => $order['ordername'], 'dateto' => $edate, 'dayArray' => $dayArray, //'monthArray' => $monthArray, //'tariffAmount' => 25 * $userCount, 'tariffAmount' => $tariffAmount, 'userCount' => $userCount, ); } //print_r($boxArray); exit; //var_dump(count($boxArray)); exit; /** * Общий алгоритм нарезки платежей выглядит так: * 1. находим все открытые ОП по этому боксу * 2. косим их нахер * 3. нарезаем новые ОП в нужных категориях */ // нарезаем ОП на все даты foreach ($boxArray as $orderID => $x) { $tariffAmount = @$x['tariffAmount']; if (!$tariffAmount) { continue; } print_r($x); // находим все ОП по этому ордеру $paramArray = array(); $paramArray['pdatefrom'] = DateTime_Object::Now()->addDay(-5).'';; $paramArray['pdateto'] = DateTime_Object::Now()->addYear(+5).''; $paramArray['orderid'] = $orderID; $opArray = _boxRequest('/api/payment/probation/get/', $paramArray); //print_r($data); exit; foreach ($opArray['payments'] as $p) { if ($p['received']) { continue; } if ($p['direction'] != 'fromclient') { continue; } //print_r($p); // косим нафиг платеж $deleteResult = _boxRequest('/api/payment/probation/delete/', array('nomessage' => 1, 'paymentid' => $p['id'])); print_r($deleteResult); } // создаем новые ОП foreach ($x['dayArray'] as $dx) { $paramArray = array(); $paramArray['cdate'] = $dx; $paramArray['pdate'] = $dx; $paramArray['orderid'] = $orderID; $paramArray['amount'] = $tariffAmount; $paramArray['currencyid'] = 2; // USD $paramArray['accountid'] = 23; // ТОВ ВЕБПРОДАКШН грн $paramArray['categoryid'] = 105; // cloud $paramArray['nomessage'] = 1; $resultAdd = _boxRequest('/api/payment/probation/add/', $paramArray); print_r($resultAdd); //exit; } } /** * БЛОК 2 * КОСИМ ВСЕ ОП ПО УДАЛЕННЫМ БОКСАМ * (по всем облачным боксам которые не в состоянии активен - косим ОП) */ $boxArray = array(); // получаем все активные боксы $paramArray = array(); $paramArray['workflowid'] = 672; $paramArray['statusid'] = 4149; // deleted $paramArray['count'] = 10000; $data = _boxRequest('/api/orders/get/', $paramArray); foreach ($data['orders'] as $order) { $tariff = false; $userCount = 0; foreach ($order['customfields'] as $x) { if ($x['key'] == 'tarifihetzner341') { $tariff = $x['value']; } if ($x['key'] == 'oneboxamountlicense') { $userCount = $x['value']; } } if (!$order['products']) { continue; } $tariffAmount = 0; foreach ($order['products'] as $op) { if ($op['productcurrency'] == 'UAH') { $tariffAmount += $op['productpricewithvat'] / 28; } elseif ($op['productcurrency'] == 'RUB') { $tariffAmount += $op['productpricewithvat'] / 74; } elseif ($op['productcurrency'] == 'USD') { $tariffAmount += $op['productpricewithvat']; } else { print_r($op); } } $tariffAmount = round($tariffAmount); if ($tariffAmount <= 0) { continue; } $boxArray[$order['orderid']] = array( 'name' => $order['ordername'] ); } //print_r($boxArray); exit; // косим ОП по этим боксам foreach ($boxArray as $orderID => $x) { print_r($x); // находим все ОП по этому ордеру $paramArray = array(); $paramArray['pdatefrom'] = DateTime_Object::Now()->addDay(-5).'';; $paramArray['pdateto'] = DateTime_Object::Now()->addYear(+5).''; $paramArray['orderid'] = $orderID; $paramArray['nomessage'] = 1; $opArray = _boxRequest('/api/payment/probation/get/', $paramArray); foreach ($opArray['payments'] as $p) { if ($p['received']) { continue; } if ($p['direction'] != 'fromclient') { continue; } //print_r($p); // косим нафиг платеж $deleteResult = _boxRequest('/api/payment/probation/delete/', array('paymentid' => $p['id'])); print_r($deleteResult); } } print "\n\ndone.\n\n";
Editor is loading...