Files
2025-03-12 17:06:23 +01:00

341 lines
10 KiB
PHP

<?php
/**
* SOTESHOP/stPartnerPlugin
*
* Ten plik należy do aplikacji stPartnerPlugin opartej na licencji (Professional License SOTE).
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
*
* @package stPartnerPlugin
* @subpackage actions
* @copyright SOTE (www.sote.pl)
* @license http://www.sote.pl/license/sote (Professional License SOTE)
* @version $Id: components.class.php 617 2009-04-09 13:02:31Z michal $
* @author Bartosz Alejski <bartosz.alejski@sote.pl>
*/
/**
* Komponent stPartnerFrontendComponents
*
* @package stPartnerPlugin
* @subpackage actions
*/
class stPartnerFrontendComponents extends sfComponents
{
public function executePartnerTextInfo()
{
$this->partner_text = TextPeer::retrieveBySystemName('stPartnerInfo');
}
public function executePartnerDataForm()
{
$partnerData = new Partner();
$partnerData->setCountriesId(36);
$c = new Criteria();
$c->add(UserDataPeer::SF_GUARD_USER_ID, $this->getUser()->getAttribute('user_id', null, 'sfGuardSecurityUser'));
$c->add(UserDataPeer::IS_DEFAULT , 1);
$c->add(UserDataPeer::IS_BILLING , 1);
if ($userDataBillingDefault = UserDataPeer::doSelectOne($c))
{
$partnerData->setSfGuardUserId($this->getUser()->getAttribute('user_id', null, 'sfGuardSecurityUser'));
$partnerData->setCompany($userDataBillingDefault->getCompany());
$partnerData->setName($userDataBillingDefault->getName());
$partnerData->setSurname($userDataBillingDefault->getSurname());
$partnerData->setStreet($userDataBillingDefault->getStreet());
$partnerData->setHouse($userDataBillingDefault->getHouse());
$partnerData->setFlat($userDataBillingDefault->getFlat());
$partnerData->setCode($userDataBillingDefault->getCode());
$partnerData->setTown($userDataBillingDefault->getTown());
$partnerData->setCountries($userDataBillingDefault->getCountries());
$partnerData->setPhone($userDataBillingDefault->getPhone());
$partnerData->setVatNumber($userDataBillingDefault->getVatNumber());
$partnerDataFromRequest = $this->getRequestParameter('partner_data');
if (isset($partnerDataFromRequest['name']))
{
$partnerData->setName($partnerDataFromRequest['name']);
}
if (isset($partnerDataFromRequest['surname']))
{
$partnerData->setSurname($partnerDataFromRequest['surname']);
}
if (isset($partnerDataFromRequest['street']))
{
$partnerData->setStreet($partnerDataFromRequest['street']);
}
if (isset($partnerDataFromRequest['house']))
{
$partnerData->setHouse($partnerDataFromRequest['house']);
}
if (isset($partnerDataFromRequest['flat']))
{
$partnerData->setFlat($partnerDataFromRequest['flat']);
}
if (isset($partnerDataFromRequest['code']))
{
$partnerData->setCode($partnerDataFromRequest['code']);
}
if (isset($partnerDataFromRequest['town']))
{
$partnerData->setTown($partnerDataFromRequest['town']);
}
if (isset($partnerDataFromRequest['country']))
{
$partnerData->setCountriesId($partnerDataFromRequest['country']);
}
if (isset($partnerDataFromRequest['phone']))
{
$partnerData->setPhone($partnerDataFromRequest['phone']);
}
if (isset($partnerDataFromRequest['company']))
{
$partnerData->setCompany($partnerDataFromRequest['company']);
}
if (isset($partnerDataFromRequest['vatNumber']))
{
$partnerData->setVatNumber($partnerDataFromRequest['vatNumber']);
}
}
$this->partnerData = $partnerData;
}
Public function executePartnerDataInfo()
{
$c = new Criteria();
$c->add(PartnerPeer::SF_GUARD_USER_ID , $this->getUser()->getAttribute('user_id', null, 'sfGuardSecurityUser'));
$partnerData = PartnerPeer::doSelectOne($c);
$this->partner_data = $partnerData;
$data1 = $partnerData->getCreatedAt();
$data2 = date("Y-m-d H:i:s");
$this->provisionAll = $this->partnerProvision($partnerData->getId(), $data1, $data2);
$this->provisionNotPayed = $this->partnerProvision($partnerData->getId(), $data1, $data2, '0');
$this->provisionPayed = $this->partnerProvision($partnerData->getId(), $data1, $data2, '1');
}
Public function executePartnerWaiting()
{
}
Public function executePartnerOrder()
{
if($this->hasRequestParameter('data1'))
{
$data1 = $this->getRequestParameter('data1');
if(empty($data1))
{
$data1 = "";
$data2 = "";
}
}
else
{
$data1 = date("Y-m-")."01 00:00:00";
}
if($this->hasRequestParameter('data2'))
{
$data2 = $this->getRequestParameter('data2');
if(empty($data2))
{
$data1 = "";
$data2 = "";
}
}
else
{
$data2 = date("Y-m-d H:i:s");
}
$this->data1 = $data1;
$this->data2 = $data2;
if($this->hasRequestParameter('status'))
{
$status = $this->getRequestParameter('status');
if($status=='off')
{
$this->checked1 = true;
$this->checked2 = false;
$this->checked3 = false;
}
if($status=='0')
{
$this->checked1 = false;
$this->checked2 = false;
$this->checked3 = true;
}
if($status=='1')
{
$this->checked1 = false;
$this->checked2 = true;
$this->checked3 = false;
}
}
else
{
$this->checked1 = true;
$this->checked2 = false;
$this->checked3 = false;
$status = "off";
}
$c = new Criteria();
$c->add(PartnerPeer::SF_GUARD_USER_ID , $this->getUser()->getAttribute('user_id', null, 'sfGuardSecurityUser'));
$partnerData = PartnerPeer::doSelectOne($c);
$provision = $this->partnerProvision($partnerData->getId(), $data1, $data2, $status);
$orders = $this->partnerOrder($partnerData->getId(), $data1, $data2, $status);
$this->provision = $provision;
$this->orders = $orders;
}
public function partnerProvision($partner_id, $data1, $data2, $payed="off")
{
$c = new Criteria();
$c->add(OrderPeer::PARTNER_ID , $partner_id);
if($payed!="off")
{
$c->add(OrderPeer::PROVISION_PAYED , $payed);
}
// $data1 <= CREATED_AT <= $data2
if($data1!="" || $data2!="")
{
$c1 = $c->getNewCriterion(OrderPeer::CREATED_AT, $data1, Criteria::GREATER_EQUAL);
$c1->addAnd($c->getNewCriterion(OrderPeer::CREATED_AT, $data2, Criteria::LESS_EQUAL));
$c->add($c1);
}
$c->addJoin(OrderStatusPeer::ID, OrderPeer::ORDER_STATUS_ID);
$c->add(OrderStatusPeer::TYPE, 'ST_COMPLETE');
$orders = OrderPeer::doSelect($c);
$provision = 0;
foreach ($orders as $order)
{
$provision = $provision + $order->getProvisionValue();
}
return $provision;
}
public function partnerOrder($partner_id, $data1, $data2, $payed="off" )
{
$c = new Criteria();
$c->add(OrderPeer::PARTNER_ID , $partner_id);
if($payed!="off")
{
$c->add(OrderPeer::PROVISION_PAYED , $payed);
}
// $data1 <= CREATED_AT <= $data2
if($data1!="" || $data2!="")
{
$c1 = $c->getNewCriterion(OrderPeer::CREATED_AT, $data1, Criteria::GREATER_EQUAL);
$c1->addAnd($c->getNewCriterion(OrderPeer::CREATED_AT, $data2, Criteria::LESS_EQUAL));
$c->add($c1);
}
$c->addJoin(OrderStatusPeer::ID, OrderPeer::ORDER_STATUS_ID);
$c->add(OrderStatusPeer::TYPE, 'ST_COMPLETE');
$orders = OrderPeer::doSelect($c);
return $orders;
}
Public function executePartnerNoActive()
{
}
Public function executePartnerHash()
{
$c = new Criteria();
$c->add(PartnerPeer::SF_GUARD_USER_ID , $this->getUser()->getAttribute('user_id', null, 'sfGuardSecurityUser'));
$partnerData = PartnerPeer::doSelectOne($c);
$c = new Criteria();
$c->add(PartnerHashPeer::PARTNER_ID , $partnerData->getId());
$partnerHash = PartnerHashPeer::doSelectOne($c);
$this->partner_hash = $partnerHash;
}
/**
* Sprawdzanie czy istenieje hash w linku do sklepu/produktu/itp
*
* @author Michal Prochowski <michal.prochowski@sote.pl>
*/
public function executeCheckHash()
{
$config = stConfig::getInstance($this->getContext(), 'stPartnerBackend');
if($config->get('is_active')==1)
{
if($this->hasRequestParameter('partnerHash'))
{
$this->hash = $this->getRequestParameter('partnerHash');
$this->getUser()->setAttribute('partnerHash', $this->hash);
sfContext::getInstance()->getResponse()->setCookie('st_partner', $this->hash, time()+60*60*24*$config->get('cookie_day_expire'), '/');
}
else
{
if($this->getRequest()->getCookie('st_partner'))
{
$this->hash = $this->getRequest()->getCookie('st_partner');
$this->getUser()->setAttribute('partnerHash', $this->hash);
}
if($this->getUser()->hasAttribute('partnerHash'))
{
$this->hash = $this->getUser()->getAttribute('partnerHash');
}
}
}
}
}