Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/application/classes/Controller/Cron.php |
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Cron extends Controller
{
public function action_AllegroAPI() {
$user_monitoring = ORM::Factory('user_monitoring')
->where('status', '=', 1)
->find_all();
foreach( $user_monitoring as $monitor ) {
try
{
$login = $monitor->user->login_allegro;
$pass = $monitor->user->password_allegro;
$webapi_key = $monitor->user->webapi_key;
# Logowanie Webapi
$client = new SoapClient('https://webapi.allegro.pl/uploader.php?wsdl');
$version = $client->doQuerySysStatus(1, 1, $webapi_key);
$session = $client->doLoginEnc($login, base64_encode( hash('sha256', $pass, true) ), 1, $webapi_key, $version['ver-key']);
$session_id = $session['session-handle-part'];
$user_id = $session['user-id'];
$server_time = $session['server-time'];
$wczesniej = '-5 minutes';
$czas_allegro = date('Y-m-j H:i:s', $server_time);
$czas_wczesniej = date('Y-m-j H:i:s',strtotime($wczesniej,strtotime($czas_allegro)));
$czas_wczesniej = strtotime($czas_wczesniej); // czas UNIX
/*
$dosearch_request = array(
// 'sessionHandle' => $session_id,
// 'searchQuery' => array(
'search-string' => 'Łóżeczko',
'search-options' => WebAPISoapClient::SEARCH_OPTION_ANY | WebAPISoapClient::SEARCH_OPTION_SESSIONCITY,
'search-order' => 2,
'search-order-type' => 1,
'search-country' => 0,
'search-category' => 0,
'search-offset' => 3,
'search-city' => '',
'search-state' => 0,
'search-price-from' => 0.00,
'search-price-to' => 3000.00,
'search-limit' => 0,
'search-order-fulfillment-time' => 0,
'search-user' => $user_id) ; */
$dogetmysolditems_request = array(
'sort-type' => 1,
'sort-order' => 2,
'filterOptions' => array(
'filterFormat' => 0,
'filterFromEnd' => 0,
'filterAutoListing' => 0,
'filterPrice' => array(
'filterPriceFrom' => 1,
'filterPriceTo' => 1000)),
'searchValue' => '',
'categoryId' => 0,
'itemIds' => 0,
'pageSize' => 25,
'pageNumber' => 0
);
$sold_list = $client->doGetMySoldItems($session_id, $dogetmysolditems_request);
foreach ( $sold_list['sold-items-list'] as $si ) {
## Nr aukcji
$nr_aukcji = $si->{'item-id'}; // do edycji
## ID transakcji
$transakcje = $client->doGetTransactionsIDs($session_id, array($nr_aukcji), 'seller');
foreach($transakcje as $item)
{
## Formularz pozakupowy
$formularz_kupna = $client->doGetPostBuyFormsDataForSellers($session_id,array($item));
foreach($formularz_kupna as $transakcja)
{
$przedmiot = $transakcja->{'post-buy-form-items'}; // tytuł przedmiotu
## Tytuł aukcji
$przedmiot = $przedmiot[0]->{'post-buy-form-it-title'};
//if( strstr($przedmiot, $monitor->title) ) {
## Status transakcji PayU
$status_payu = $transakcja->{'post-buy-form-pay-status'};
## Czas przyjęcia płatności PayU
$czas_payu = $transakcja->{'post-buy-form-date-recv'};
$czas_payu = strtotime($czas_payu); // czas UNIX
## ID klientów
$id_kupujacych = $transakcja->{'post-buy-form-buyer-id'};
## Realizacja zamówień opłaconych z ostatniego określonego wcześniej czasu
//if($status_payu == 'Zakończona' && $czas_wczesniej < $czas_payu)
if($status_payu == 'Zakończona')
{
## Dane kontaktowe kupujących
$kontakty = $client->doMyContact($session_id, array($nr_aukcji));
$c_it = 0;
foreach($kontakty as $item)
{
$c_it++;
if( $c_it == 1 ) {
$id = $item->{'contact-user-id'};
if ($id == $id_kupujacych)
{
$nick = $item->{'contact-nick'}; // nick klienta
$email_klienta = $item->{'contact-email'}; // e-mail klienta
$imie = $item->{'contact-first-name'}; // imię klienta
$nazwisko = $item->{'contact-last-name'};
$company = $item->{'contact-company'};
$street = $item->{'contact-street'};
$postcode = $item->{'contact-postcode'};
$city = $item->{'contact-city'};
$country = $item->{'contact-country'};
$phone = $item->{'contact-phone'};
$company = $item->{'contact-company'};
$price = 10;
//echo $przedmiot."<br/>";
//echo $email_klienta." ".$imie."<br/>";
## TUTAJ WYKONUJEMY WSZELKIE AKCJE ZWIĄZANE Z OBSŁUGĄ POSPRZEDAŻOWĄ NP WYSYŁKA MAILA.
$item_code = ORM::Factory('item', $monitor->item->id);
$codes = explode("\n", $item_code->description);
$code = $codes[count($codes)-1];
unset($codes[count($codes)-1]);
$codes = join("\n", $codes);
$item_code->description = $codes;
$item_code->save();
if( !empty( $code ) ) {
$password = "";
for( $i=1; $i<=8; $i++ ) {
$password .= rand(1, 9);
}
$user = ORM::Factory('user')->where('username','=', $nick)->find();
$user->username = $nick;
$user->password = Auth::instance()->hash($password);
$user->email = $email_klienta;
$user->company = $company;
$user->firstname = $imie;
$user->lastname = $nazwisko;
$user->street = $street;
$user->postcode = $postcode;
$user->city = $city;
$user->phone = $phone;
$user->profile_id = 2;
$user->save();
try {
$role = ORM::factory('Role')->where('name','=','login')->find();
$user->add('roles', ORM::factory('Role', array('name'=>'login')));
$user->save();
} catch ( Exception $e ) { }
$order = ORM::Factory('Order');
$order->date = date('Y-m-d H:i:s');
$order->title = $przedmiot;
$order->user_id = $user->id;
$order->seller_id = 1;
$order->price = $price;
$order->auction_id = $nr_aukcji;
$order->save();
//$file_name = cms::createInvoice($order->id);
$from = array();
$from[0] = Kohana::$config->load('site.email_business');
$from[1] = Kohana::$config->load('site.appName');
//$attachment = array( 0 => $file_name);
$attachment = null;
$params = array();
$params['user'] = $user;
$params['auction']['id'] = $nr_aukcji;
$params['auction']['title'] = $przedmiot;
$params['code'] = $code;
$email_template = cms::getTemplateEmail($monitor->template->id, $params);
$email_template['text'] .= View::Factory('email/footer')
->bind('username', $nick)
->bind('password', $password);
aurora::standardEmail("ircoo@o2.pl", $email_template['subject'], $email_template['text'], true, $from, $attachment);
}
}
} // if ($id == $id_kupujacych)
} // foreach($kontakty as $item)
} // if($status_payu == 'Zakończona' && $czas_wczesniej < $czas_payu)
//}
} // foreach($formularz_kupna as $transakcja)
} // foreach($transakcje as $item)
}
} // koniec try WebApi
catch(SoapFault $error) // wychwytywanie błędów
{
echo 'Błąd ', $error->faultcode, ': ', $error->faultstring, "n";
}
}
}
}
?>