1430 lines
61 KiB
PHP
1430 lines
61 KiB
PHP
<?php
|
|
|
|
/**
|
|
*
|
|
* Class ki skrbi za pregled, dodajanje, urejanje narocil uporabnika
|
|
*
|
|
*/
|
|
|
|
class UserNarocila{
|
|
|
|
|
|
// Array z vsemi paketi
|
|
private $packages = array();
|
|
|
|
// Filter narocil
|
|
private $narocila_filter = array('neplacana' => 1, 'pacana' => 0, 'stornirana' => 0);
|
|
|
|
|
|
function __construct(){
|
|
|
|
// Zakesiramo vse pakete
|
|
$this->cachePackages();
|
|
|
|
if(isset($_SESSION['narocila_filter']['neplacana']) && $_SESSION['narocila_filter']['neplacana'] == '0')
|
|
$this->narocila_filter['neplacana'] = 0;
|
|
|
|
if(isset($_SESSION['narocila_filter']['placana']) && $_SESSION['narocila_filter']['placana'] == '1')
|
|
$this->narocila_filter['placana'] = 1;
|
|
|
|
if(isset($_SESSION['narocila_filter']['stornirana']) && $_SESSION['narocila_filter']['stornirana'] == '1')
|
|
$this->narocila_filter['stornirana'] = 1;
|
|
}
|
|
|
|
|
|
// Dobimo array narocil (vseh oz. za dolocenega uporabnika)
|
|
private function getNarocila($usr_id=0){
|
|
global $admin_type;
|
|
|
|
$narocila = array();
|
|
|
|
// Vsa narocila lahko pregledujejo samo admini
|
|
if($admin_type == 0 && $usr_id == 0){
|
|
|
|
// Filter po statusu
|
|
$status = ' AND un.status IN (';
|
|
$status .= ($this->narocila_filter['neplacana'] == 1) ? '0,' : '';
|
|
$status .= ($this->narocila_filter['placana'] == 1) ? '1,' : '';
|
|
$status .= ($this->narocila_filter['stornirana'] == 1) ? '2,' : '';
|
|
$status = substr($status, 0, -1);
|
|
$status .= ') ';
|
|
|
|
// Loop po vseh narocilih v sistemu
|
|
$sqlNarocilo = sisplet_query("SELECT un.*, u.name, u.surname, u.email, up.name AS package_name, up.description AS package_description, up.price AS package_price
|
|
FROM user_access_narocilo un, users u, user_access_paket up
|
|
WHERE un.usr_id=u.id AND un.package_id=up.id ".$status."
|
|
ORDER BY un.id DESC
|
|
");
|
|
while($rowNarocilo = mysqli_fetch_array($sqlNarocilo)){
|
|
|
|
$narocila[] = $rowNarocilo;
|
|
}
|
|
}
|
|
elseif($usr_id > 0){
|
|
|
|
// Loop po vseh narocilih uporabnika
|
|
$sqlNarocilo = sisplet_query("SELECT un.*, u.name, u.surname, u.email, up.name AS package_name, up.description AS package_description, up.price AS package_price
|
|
FROM user_access_narocilo un, users u, user_access_paket up
|
|
WHERE un.usr_id='".$usr_id."' AND un.usr_id=u.id AND un.package_id=up.id
|
|
ORDER BY un.id DESC
|
|
");
|
|
while($rowNarocilo = mysqli_fetch_array($sqlNarocilo)){
|
|
|
|
$narocila[] = $rowNarocilo;
|
|
}
|
|
}
|
|
|
|
return $narocila;
|
|
}
|
|
|
|
// Izracunamo koncno ceno glede na paket, trajanje in popust (v eur)
|
|
public function getPrice($package_name, $trajanje, $discount=0){
|
|
|
|
$cena = array();
|
|
|
|
// Mesecna cena paketa
|
|
$package_price = $this->packages[$package_name]['price'];
|
|
|
|
// Mesecno ceno zmanjsamo glede na trajanje
|
|
if($package_name == '2ka'){
|
|
if((int)$trajanje >= 12){
|
|
$cena['monthly'] = number_format($package_price - 4, 2, '.', '');
|
|
}
|
|
elseif((int)$trajanje >= 3){
|
|
$cena['monthly'] = number_format($package_price - 2, 2, '.', '');
|
|
}
|
|
else{
|
|
$cena['monthly'] = number_format($package_price, 2, '.', '');
|
|
}
|
|
}
|
|
elseif($package_name == '3ka'){
|
|
if((int)$trajanje >= 12){
|
|
$cena['monthly'] = number_format($package_price - 3, 2, '.', '');
|
|
}
|
|
elseif((int)$trajanje >= 3){
|
|
$cena['monthly'] = number_format($package_price - 1.5, 2, '.', '');
|
|
}
|
|
else{
|
|
$cena['monthly'] = number_format($package_price, 2, '.', '');
|
|
}
|
|
}
|
|
|
|
|
|
// Se brez davka za monthly
|
|
$cena['monthly_without_tax'] = number_format(floatval($cena['monthly']) / 1.22, 2, '.', '');
|
|
|
|
|
|
// Cena za celotno obdobje
|
|
$cena['full'] = number_format((int)$trajanje * floatval($cena['monthly']), 2, '.', '');
|
|
|
|
// Se brez davka za full
|
|
$cena['full_without_tax'] = number_format(floatval($cena['full']) / 1.22, 2, '.', '');
|
|
|
|
|
|
// Cena s popustom
|
|
$cena['full_discount'] = $cena['full'];
|
|
$cena['discount'] = $discount;
|
|
|
|
// Odstejemo se popust ce je posebej nastavljen
|
|
if($discount != 0){
|
|
|
|
// Ce je popust vecji od celotnega zneska, je cena 0 (cena ne more biti negativna)
|
|
if($discount > $cena['full']){
|
|
$cena['full_discount'] = 0;
|
|
$cena['discount'] = $cena['full'];
|
|
}
|
|
else{
|
|
//$cena['full_discount'] = number_format(floatval($cena['full_discount']) - (floatval($discount) * floatval($cena['full']) / 100), 2, '.', '');
|
|
$cena['full_discount'] = number_format(floatval($cena['full_discount']) - floatval($discount), 2, '.', '');
|
|
}
|
|
}
|
|
|
|
// Dodatno se izracunamo popust v %
|
|
if($cena['full'] > 0)
|
|
$cena['discount_percentage'] = round(floatval($cena['discount']) / floatval($cena['full']) * 100);
|
|
else
|
|
$cena['discount_percentage'] = 0;
|
|
|
|
// Se davek
|
|
$cena['final_without_tax'] = number_format(floatval($cena['full_discount']) / 1.22, 2, '.', '');
|
|
$cena['tax'] = number_format($cena['full_discount'] - $cena['final_without_tax'], 2, '.', '');
|
|
$cena['final'] = $cena['full_discount'];
|
|
|
|
return $cena;
|
|
}
|
|
|
|
// Izracunamo popust glede na uporabnika (pri upgradu / downgradu paketa)
|
|
public function getDiscount($usr_id, $package_name, $trajanje){
|
|
|
|
// Dobimo trenuten dostop userja
|
|
$ua = UserAccess::getInstance($usr_id);
|
|
$user_access = $ua->getAccess();
|
|
|
|
// Dobimo polno ceno za paket
|
|
$price = $this->getPrice($package_name, $trajanje);
|
|
|
|
// UPGRADE oz. DOWNGRADE - iz 2ka na 3ka ali iz 3ka na 2ka
|
|
if( isset($user_access['package_name']) && (($user_access['package_name'] == '2ka' && $package_name == '3ka') || ($user_access['package_name'] == '3ka' && $package_name == '2ka')) ){
|
|
|
|
// Mesecna cena obstojecega paketa
|
|
$package_price = floatval($this->packages[$user_access['package_name']]['price']);
|
|
|
|
// Stevilo dni dokler je obstojeci paket se veljaven
|
|
$now = time();
|
|
$expire = strtotime($user_access['time_expire']);
|
|
$expire_in_days = floor(($expire - $now) / (60 * 60 * 24));
|
|
|
|
// Popravimo ceno, ce ima veljaven paket se za 3 mesece ali vec (pomeni, da je imel popust pri nakupu kar upostevamo)
|
|
if($package_name == '2ka'){
|
|
if($expire_in_days > 92){
|
|
$package_price = number_format($package_price - 4, 2, '.', '');
|
|
}
|
|
elseif($expire_in_days > 31){
|
|
$package_price = number_format($package_price - 2, 2, '.', '');
|
|
}
|
|
}
|
|
elseif($package_name == '3ka'){
|
|
if($expire_in_days > 92){
|
|
$package_price = number_format($package_price - 3, 2, '.', '');
|
|
}
|
|
elseif($expire_in_days > 31){
|
|
$package_price = number_format($package_price - 1.5, 2, '.', '');
|
|
}
|
|
}
|
|
|
|
// Popust izracunamo kot delez cene paketa in
|
|
$dayly_discount = number_format($package_price / 31, 2, '.', '');
|
|
$discount = number_format($dayly_discount * $expire_in_days, 2, '.', '');
|
|
|
|
return $discount;
|
|
}
|
|
// Drugace nimamo nobenega popusta
|
|
else{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
// Preverimo, ce narocilo slucajno nima ddv-ja (zavezanec za ddv iz tujine)
|
|
public function isWithoutDDV($narocilo_id){
|
|
|
|
$sqlNarocilo = sisplet_query("SELECT podjetje_drzava, podjetje_no_ddv
|
|
FROM user_access_narocilo
|
|
WHERE id='".$narocilo_id."'
|
|
");
|
|
if(mysqli_num_rows($sqlNarocilo) == 1){
|
|
|
|
$rowNarocilo = mysqli_fetch_array($sqlNarocilo);
|
|
|
|
// Slovenija ima vedno ddv
|
|
if($rowNarocilo['podjetje_drzava'] == 'Slovenija' || $rowNarocilo['podjetje_drzava'] == 'Slovenia'){
|
|
return false;
|
|
}
|
|
|
|
// Ce ni iz slovenije in ima oznaceno da ne placa ddv-ja
|
|
if($rowNarocilo['podjetje_no_ddv'] == '1'){
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
// Dobimo jezik narocila - v istem jeziku so potem emaili in racun/predracun
|
|
public function getNarociloLanguage($narocilo_id){
|
|
|
|
$sqlNarocilo = sisplet_query("SELECT language
|
|
FROM user_access_narocilo
|
|
WHERE id='".$narocilo_id."'
|
|
");
|
|
if(mysqli_num_rows($sqlNarocilo) == 1){
|
|
|
|
$rowNarocilo = mysqli_fetch_array($sqlNarocilo);
|
|
|
|
if($rowNarocilo['language'] == 'sl'){
|
|
return 'si';
|
|
}
|
|
else{
|
|
return 'en';
|
|
}
|
|
}
|
|
|
|
return 'en';
|
|
}
|
|
|
|
|
|
// Izpisemo podatke o narocilih uporabnika
|
|
public function displayNarocila(){
|
|
global $lang, $global_user_id;
|
|
|
|
// Podatki o trenutnem paketu uporabnika
|
|
echo '<fieldset>';
|
|
echo '<legend>'.$lang['srv_narocila_current'].'</legend>';
|
|
|
|
$ua = UserAccess::getInstance($global_user_id);
|
|
$user_access = $ua->getAccess();
|
|
|
|
// Ce ni polja v bazi oz je nastavljen paket na 1 ima osnovni paket
|
|
if(!$user_access || $user_access['package_id'] == '1'){
|
|
echo '<p>'.$lang['srv_narocila_no_package'].'.</p>';
|
|
}
|
|
// Imamo aktiviran paket - izpisemo podatke
|
|
else{
|
|
echo '<div class="data"><span class="setting_title">'.$lang['srv_narocila_current_package'].':</span> <span class="bold">'.$user_access['package_name'],'</span></div>';
|
|
echo '<div class="data"><span class="setting_title">'.$lang['srv_narocila_current_start'].':</span> <span class="bold">'.date( 'd.m.Y', strtotime($user_access['time_activate'])).'</span></div>';
|
|
echo '<div class="data"><span class="setting_title">'.$lang['srv_narocila_current_expire'].':</span> <span class="bold">'.date( 'd.m.Y', strtotime($user_access['time_expire'])),'</span></div>';
|
|
}
|
|
|
|
echo '</fieldset>';
|
|
|
|
|
|
// Tabela vseh narocil uporabnika
|
|
echo '<fieldset>';
|
|
echo '<legend>'.$lang['srv_narocila_list'].'</legend>';
|
|
|
|
$this->displayNarocilaTable();
|
|
|
|
echo '</fieldset>';
|
|
}
|
|
|
|
// Izpisemo seznam vseh narocil uporabnika
|
|
public function displayNarocilaTable(){
|
|
global $lang, $global_user_id;
|
|
|
|
// Dobimo vsa narocila uporabnika
|
|
$data = $this->getNarocila($global_user_id);
|
|
|
|
echo '<table id="user_narocila" class="user_narocila">';
|
|
|
|
// Glava tabele
|
|
echo ' <thead>';
|
|
echo ' <tr>';
|
|
|
|
echo ' <th>'.$lang['srv_narocilo_paket'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_trajanje'].' ('.$lang['srv_narocilo_trajanje_mesecev'].')</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_cas'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_nacin_placila'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_cena'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_status'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_pdf'].'</th>';
|
|
|
|
echo ' </tr>';
|
|
echo ' </thead>';
|
|
|
|
// Vsebina tabele
|
|
echo ' <tbody>';
|
|
|
|
foreach($data as $usr_id => $data_row){
|
|
|
|
echo '<tr>';
|
|
|
|
echo '<td>'.$data_row['package_name'].'</td>';
|
|
echo '<td>'.$data_row['trajanje'].'</td>';
|
|
echo '<td>'.date("j.n.Y H:i", strtotime($data_row['time'])).'</td>';
|
|
echo '<td>'.$data_row['payment_method'].'</td>';
|
|
|
|
// Cena
|
|
$cena = $this->getPrice($data_row['package_name'], $data_row['trajanje'], $data_row['discount']);
|
|
|
|
// Zavezanec iz tujine nima ddv-ja
|
|
if($this->isWithoutDDV($data_row['id']))
|
|
echo '<td>'.$cena['final_without_tax'].'</td>';
|
|
else
|
|
echo '<td>'.$cena['final'].'</td>';
|
|
|
|
if($data_row['status'] == '0')
|
|
$status_color = 'red';
|
|
elseif($data_row['status'] == '1')
|
|
$status_color = 'green';
|
|
else
|
|
$status_color = 'black';
|
|
echo '<td class="'.$status_color.'">'.$lang['srv_narocilo_status_'.$data_row['status']].'</td>';
|
|
|
|
// PDF
|
|
echo '<td>';
|
|
echo '<span class="pointer as_link" onClick="getNarociloPredracun(\''.$data_row['id'].'\')">'.$lang['srv_narocilo_pdf_predracun'].'</span>';
|
|
if($data_row['status'] == '1'){
|
|
echo ' | <span class="pointer as_link" onClick="getNarociloRacun(\''.$data_row['id'].'\')">'.$lang['srv_narocilo_pdf_racun'].'</span>';
|
|
}
|
|
echo '</td>';
|
|
|
|
echo '</tr>';
|
|
}
|
|
|
|
echo ' </tbody>';
|
|
|
|
echo '</table>';
|
|
}
|
|
|
|
// Izpisemo seznam vseh narocil - admin
|
|
public function displayNarocilaTableAdmin(){
|
|
global $lang, $global_user_id, $app_settings;
|
|
|
|
// Admini vidijo vsa narocila
|
|
$data = $this->getNarocila();
|
|
|
|
// Filtri po statusu
|
|
echo '<div class="narocila_filters">';
|
|
echo '<label for="filter_narocila_0"><input type="checkbox" id="filter_narocila_0" '.($this->narocila_filter['neplacana'] == 1 ? 'checked="checked"' : '').' onClick="filterNarocila(\'0\', this.checked)">'.$lang['srv_narocilo_filter_status_0'].'</label>';
|
|
echo '<label for="filter_narocila_1"><input type="checkbox" id="filter_narocila_1" '.($this->narocila_filter['placana'] == 1 ? 'checked="checked"' : '').' onClick="filterNarocila(\'1\', this.checked)">'.$lang['srv_narocilo_filter_status_1'].'</label>';
|
|
echo '<label for="filter_narocila_2"><input type="checkbox" id="filter_narocila_2" '.($this->narocila_filter['stornirana'] == 1 ? 'checked="checked"' : '').' onClick="filterNarocila(\'2\', this.checked)">'.$lang['srv_narocilo_filter_status_2'].'</label>';
|
|
echo '</div>';
|
|
|
|
echo '<table id="user_narocila" class="dataTable user_narocila_admin" style="width:100%">';
|
|
|
|
// Glava tabele
|
|
echo ' <thead>';
|
|
echo ' <tr>';
|
|
|
|
echo ' <th>'.$lang['srv_narocilo_ime'].'</th>';
|
|
echo ' <th>'.$lang['email'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_paket'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_trajanje'].' ('.$lang['srv_narocilo_trajanje_mesecev'].')</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_cas'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_nacin_placila'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_ddv'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_cena'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_status'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_podjetje_eracun'].'</th>';
|
|
echo ' <th>'.$lang['srv_narocilo_pdf'].'</th>';
|
|
echo ' <th>'.$lang['edit2'].'</th>';
|
|
echo ' </tr>';
|
|
echo ' </thead>';
|
|
|
|
|
|
// Vsebina tabele
|
|
echo ' <tbody>';
|
|
|
|
foreach($data as $usr_id => $data_row){
|
|
|
|
if($data_row['status'] == '0')
|
|
$status_color = 'red';
|
|
elseif($data_row['status'] == '1')
|
|
$status_color = 'green';
|
|
else
|
|
$status_color = 'black';
|
|
|
|
echo '<tr class="'.$status_color.'_bg">';
|
|
|
|
echo '<td>'.$data_row['name'].' '.$data_row['surname'].' '.($data_row['podjetje_ime'] != '' ? '('.$data_row['podjetje_ime'].')' : '').'</td>';
|
|
echo '<td><span class="as_link" onClick="edit_user(\''.$data_row['usr_id'].'\'); return false;">'.$data_row['email'].'</span></td>';
|
|
echo '<td>'.$data_row['package_name'].'</td>';
|
|
echo '<td>'.$data_row['trajanje'].'</td>';
|
|
echo '<td data-order="'.date("Y-n-j", strtotime($data_row['time'])).'">'.date("j.n.Y H:i", strtotime($data_row['time'])).'</td>';
|
|
echo '<td>'.$lang['srv_narocilo_nacin_placila_'.$data_row['payment_method']].'</td>';
|
|
|
|
// Ali placa ddv (podjetje - zavezanec iz tujine ga ne)
|
|
echo '<td>'.($this->isWithoutDDV($data_row['id']) ? $lang['no'] : $lang['yes']).'</td>';
|
|
|
|
// Cena
|
|
$cena = $this->getPrice($data_row['package_name'], $data_row['trajanje'], $data_row['discount']);
|
|
|
|
// Zavezanec iz tujine nima ddv-ja
|
|
if($this->isWithoutDDV($data_row['id']))
|
|
echo '<td>'.$cena['final_without_tax'].'</td>';
|
|
else
|
|
echo '<td>'.$cena['final'].'</td>';
|
|
|
|
echo '<td class="'.$status_color.'">';
|
|
|
|
echo $lang['srv_narocilo_status_'.$data_row['status']];
|
|
|
|
// Na www.1ka.si lahko narocilo placa samo Goran
|
|
if($data_row['status'] != '1' && $data_row['status'] != '2' && ($app_settings['app_name'] != 'www.1ka.si' || $global_user_id == '112696'))
|
|
echo ' | <span class="as_link" onClick="urediNarociloPay(\''.$data_row['id'].'\')">'.$lang['srv_narocilo_placaj'].'</span>';
|
|
|
|
echo '</td>';
|
|
|
|
// Eračun
|
|
echo '<td>'.($data_row['podjetje_eracun'] == '1' ? $lang['yes'] : $lang['no']).'</td>';
|
|
|
|
echo '<td>';
|
|
// Ce je bila cena 0 je bil avtomatsko "placan" in nima racuna oz. predracuna
|
|
if($cena['final'] == 0){
|
|
echo '/';
|
|
}
|
|
else{
|
|
echo '<span class="pointer as_link" onClick="getNarociloPredracun(\''.$data_row['id'].'\')">'.$lang['srv_narocilo_pdf_predracun'].'</span>';
|
|
if($data_row['status'] == '1'){
|
|
echo ' | <span class="pointer as_link" onClick="getNarociloRacun(\''.$data_row['id'].'\')">'.$lang['srv_narocilo_pdf_racun'].'</span>';
|
|
}
|
|
}
|
|
echo '</td>';
|
|
|
|
echo '<td>';
|
|
echo '<a href="#" onClick="displayNarociloPopup(\''.$data_row['id'].'\')" title="'.$lang['srv_narocila_edit'].'"><i class="fa fa-pencil-alt link-sv-moder"></i>';
|
|
// Narocilo se lahko pobrise samo ce se ni placano
|
|
if($data_row['status'] != '1')
|
|
echo ' <span class="no-print"> | </span><a href="#" onClick="brisiNarocilo(\''.$data_row['id'].'\')" title="'.$lang['srv_narocila_delete'].'"><i class="fa fa-times link-sv-moder"></a>';
|
|
echo '</td>';
|
|
|
|
echo '</tr>';
|
|
}
|
|
|
|
echo ' </tbody>';
|
|
|
|
echo '</table>';
|
|
|
|
// Se inicializiramo dataTable jquery
|
|
echo '<script> prepareNarocilaTableAdmin(); </script>';
|
|
}
|
|
|
|
// Prikazemo popup za pregled in urejanje narocilo
|
|
private function displayNarociloEdit($narocilo_id){
|
|
global $lang;
|
|
|
|
// Loop po vseh narocilih uporabnika
|
|
$sqlNarocilo = sisplet_query("SELECT un.*, u.name, u.surname, u.email, up.name AS package_name, up.description AS package_description, up.price AS package_price
|
|
FROM user_access_narocilo un, users u, user_access_paket up
|
|
WHERE un.id='".$narocilo_id."' AND un.usr_id=u.id AND un.package_id=up.id
|
|
");
|
|
|
|
if(mysqli_num_rows($sqlNarocilo) == 0){
|
|
echo 'Naročilo ne obstaja!';
|
|
return;
|
|
}
|
|
|
|
$rowNarocilo = mysqli_fetch_array($sqlNarocilo);
|
|
|
|
echo '<h2>'.$lang['srv_narocilo_number'].' '.$narocilo_id.'</h2>';
|
|
|
|
|
|
echo '<div class="edit_narocilo_content">';
|
|
|
|
echo '<div class="form_holder"><form name="edit_narocilo" id="edit_narocilo">';
|
|
|
|
echo '<input type="hidden" name="narocilo_id" value="'.$narocilo_id.'">';
|
|
|
|
|
|
// Podatki narocnika
|
|
echo '<div class="edit_narocilo_segment">';
|
|
|
|
// Ime in uporabnik
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_ime'].':</span> '.$rowNarocilo['ime'];
|
|
echo '</div>';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_uporabnik'].':</span> '.$rowNarocilo['name'].' '.$rowNarocilo['surname'].' ('.$rowNarocilo['email'].')';
|
|
echo '</div>';
|
|
|
|
// Telefon
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_telefon'].':</span> ';
|
|
//echo '<input type="hidden" name="phone" value="'.$rowNarocilo['phone'].'">';
|
|
echo '<input type="text" name="phone" value="'.$rowNarocilo['phone'].'">';
|
|
echo '</div>';
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Podatki narocila
|
|
$cena = $this->getPrice($rowNarocilo['package_name'], $rowNarocilo['trajanje'], $rowNarocilo['discount']);
|
|
|
|
echo '<div class="edit_narocilo_segment">';
|
|
|
|
// Cas narocila
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_cas'].':</span> '.date("j.n.Y H:i", strtotime($rowNarocilo['time']));
|
|
echo '<input type="hidden" name="time" value="'.$rowNarocilo['time'].'">';
|
|
echo '</div>';
|
|
|
|
// Paket
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_paket'].':</span> ';
|
|
if($rowNarocilo['status'] == '1'){
|
|
echo $rowNarocilo['package_id'].'ka';
|
|
echo '<input type="hidden" name="package_id" value="'.$rowNarocilo['package_id'].'">';
|
|
}
|
|
else{
|
|
echo '<select name="package_id">';
|
|
echo '<option value="1" '.($rowNarocilo['package_id'] == '1' ? 'selected="selected"' : '').'>1ka</option>';
|
|
echo '<option value="2" '.($rowNarocilo['package_id'] == '2' ? 'selected="selected"' : '').'>2ka</option>';
|
|
echo '<option value="3" '.($rowNarocilo['package_id'] == '3' ? 'selected="selected"' : '').'>3ka</option>';
|
|
echo '</select>';
|
|
}
|
|
echo '</div>';
|
|
|
|
// Trajanje v mesecih
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_trajanje'].':</span> ';
|
|
if($rowNarocilo['status'] == '1'){
|
|
echo $rowNarocilo['trajanje'].' '.$lang['srv_narocilo_trajanje_mesecev'];
|
|
echo '<input type="hidden" name="trajanje" value="'.$rowNarocilo['trajanje'].'">';
|
|
}
|
|
else{
|
|
echo '<input type="text" name="trajanje" value="'.$rowNarocilo['trajanje'].'" size="4"> '.$lang['srv_narocilo_trajanje_mesecev'];
|
|
}
|
|
echo '</div>';
|
|
|
|
// Cena paketa * trajanje
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_cena_brez_popusta'].':</span> '.$cena['full'].' € ('.$rowNarocilo['trajanje'].' '.$lang['srv_narocilo_trajanje_mesecev'].')';
|
|
echo '</div>';
|
|
|
|
// Popust
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_popust'].':</span> ';
|
|
if($rowNarocilo['status'] == '1'){
|
|
echo $rowNarocilo['discount'].' %';
|
|
echo '<input type="hidden" name="discount" value="'.$rowNarocilo['discount'].'">';
|
|
}
|
|
else{
|
|
echo '<input type="text" name="discount" value="'.$rowNarocilo['discount'].'" size="4"> %';
|
|
}
|
|
echo '</div>';
|
|
|
|
// Koncna cena - zavezanec iz tujine nima ddv-ja
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_cena'].':</span> '.($this->isWithoutDDV($data_row['id']) ? $cena['final_without_tax'] : $cena['final']).' €';
|
|
echo '</div>';
|
|
|
|
// Nacin placila
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_nacin_placila'].':</span> ';
|
|
if($rowNarocilo['status'] == '1'){
|
|
echo $lang['srv_narocilo_nacin_placila_'.$rowNarocilo['payment_method']];
|
|
echo '<input type="hidden" name="payment_method" value="'.$rowNarocilo['payment_method'].'">';
|
|
}
|
|
else{
|
|
echo '<select name="payment_method">';
|
|
echo '<option value="1" '.($rowNarocilo['payment_method'] == '1' ? 'selected="selected"' : '').'>'.$lang['srv_narocilo_nacin_placila_1'].'</option>';
|
|
echo '<option value="2" '.($rowNarocilo['payment_method'] == '2' ? 'selected="selected"' : '').'>'.$lang['srv_narocilo_nacin_placila_2'].'</option>';
|
|
echo '<option value="3" '.($rowNarocilo['payment_method'] == '3' ? 'selected="selected"' : '').'>'.$lang['srv_narocilo_nacin_placila_3'].'</option>';
|
|
echo '</select>';
|
|
}
|
|
echo '</div>';
|
|
|
|
// Status narocila
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_status'].':</span> ';
|
|
echo $lang['srv_narocilo_status_'.$rowNarocilo['status']];
|
|
echo '<input type="hidden" name="status" value="'.$rowNarocilo['status'].'">';
|
|
/*echo '<select name="status">';
|
|
echo '<option value="0" '.($rowNarocilo['status'] == '0' ? 'selected="selected"' : '').'>'.$lang['srv_narocilo_status_0'].'</option>';
|
|
echo '<option value="1" '.($rowNarocilo['status'] == '1' ? 'selected="selected"' : '').' disabled="disabled">'.$lang['srv_narocilo_status_1'].'</option>';
|
|
echo '<option value="2" '.($rowNarocilo['status'] == '2' ? 'selected="selected"' : '').'>'.$lang['srv_narocilo_status_2'].'</option>';
|
|
echo '</select>';*/
|
|
echo '</div>';
|
|
|
|
echo '</div>';
|
|
|
|
|
|
// Podatki podjetja ce je racun na podjetje
|
|
if($rowNarocilo['podjetje_ime'] != ''){
|
|
echo '<div class="edit_narocilo_segment">';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_ime'].':</span> ';
|
|
//echo '<input type="hidden" name="podjetje_ime" value="'.$rowNarocilo['podjetje_ime'].'">';
|
|
echo '<input type="text" name="podjetje_ime" value="'.$rowNarocilo['podjetje_ime'].'">';
|
|
echo '</div>';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_naslov'].':</span> ';
|
|
//echo '<input type="hidden" name="podjetje_naslov" value="'.$rowNarocilo['podjetje_naslov'].'">';
|
|
echo '<input type="text" name="podjetje_naslov" value="'.$rowNarocilo['podjetje_naslov'].'">';
|
|
echo '</div>';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_postna'].':</span> ';
|
|
//echo '<input type="hidden" name="podjetje_postna" value="'.$rowNarocilo['podjetje_postna'].'">';
|
|
echo '<input type="text" name="podjetje_postna" value="'.$rowNarocilo['podjetje_postna'].'">';
|
|
echo '</div>';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_posta'].':</span> ';
|
|
//echo '<input type="hidden" name="podjetje_posta" value="'.$rowNarocilo['podjetje_posta'].'">';
|
|
echo '<input type="text" name="podjetje_posta" value="'.$rowNarocilo['podjetje_posta'].'">';
|
|
echo '</div>';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_drzava'].':</span> ';
|
|
echo '<input type="text" name="podjetje_drzava" value="'.$rowNarocilo['podjetje_drzava'].'">';
|
|
echo '</div>';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_davcna'].':</span> ';
|
|
//echo '<input type="hidden" name="podjetje_davcna" value="'.$rowNarocilo['podjetje_davcna'].'">';
|
|
echo '<input type="text" name="podjetje_davcna" value="'.$rowNarocilo['podjetje_davcna'].'">';
|
|
echo '</div>';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_no_ddv'].':</span> ';
|
|
echo '<select name="podjetje_no_ddv">';
|
|
echo '<option value="0" '.($rowNarocilo['podjetje_no_ddv'] == '0' ? 'selected="selected"' : '').'>'.$lang['no'].'</option>';
|
|
echo '<option value="1" '.($rowNarocilo['podjetje_no_ddv'] == '1' ? 'selected="selected"' : '').'>'.$lang['yes'].'</option>';
|
|
echo '</select>';
|
|
echo '</div>';
|
|
|
|
echo '<div class="edit_narocilo_line">';
|
|
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_eracun'].':</span> ';
|
|
echo '<select name="podjetje_eracun">';
|
|
echo '<option value="0" '.($rowNarocilo['podjetje_eracun'] == '0' ? 'selected="selected"' : '').'>'.$lang['no'].'</option>';
|
|
echo '<option value="1" '.($rowNarocilo['podjetje_eracun'] == '1' ? 'selected="selected"' : '').'>'.$lang['yes'].'</option>';
|
|
echo '</select>';
|
|
echo '</div>';
|
|
|
|
echo '</div>';
|
|
}
|
|
|
|
echo '</form></div>';
|
|
|
|
// Gumbi na dnu
|
|
echo '<div class="buttons_holder">';
|
|
echo ' <div class="buttonwrapper floatRight"><a class="ovalbutton ovalbutton_orange btn_savesettings" href="#" onclick="urediNarociloSave();"><span>'.$lang['edit1337'].'</span></a></div>';
|
|
echo ' <div class="buttonwrapper floatRight spaceRight"><a class="ovalbutton ovalbutton_gray" href="#" onclick="urediNarociloClose();"><span>'.$lang['srv_zapri'].'</span></a></div>';
|
|
echo '</div>';
|
|
|
|
echo '</div>';
|
|
}
|
|
|
|
|
|
|
|
// Ustvari novo narocilo za uporabnika
|
|
public function createNarocilo($narocilo_data){
|
|
global $global_user_id;
|
|
global $lang;
|
|
|
|
$response = array();
|
|
|
|
if(isset($narocilo_data['email'])){
|
|
$uporabnik = sisplet_query("SELECT id, email FROM users WHERE email='".$narocilo_data['email']."'", "obj");
|
|
$usr_id = $uporabnik->id;
|
|
}
|
|
|
|
$status = isset($narocilo_data['status']) ? $narocilo_data['status'] : 0;
|
|
$package_id = isset($narocilo_data['package_id']) ? $narocilo_data['package_id'] : 1;
|
|
$payment_method = isset($narocilo_data['payment_method']) ? $narocilo_data['payment_method'] : 0;
|
|
//$discount = isset($narocilo_data['discount']) ? $narocilo_data['discount'] : 0;
|
|
$trajanje = isset($narocilo_data['trajanje']) ? $narocilo_data['trajanje'] : 0;
|
|
|
|
$ime_na_racunu = isset($narocilo_data['ime']) ? $narocilo_data['ime'] : '';
|
|
$phone = isset($narocilo_data['phone']) ? $narocilo_data['phone'] : '';
|
|
|
|
$podjetje_ime = isset($narocilo_data['podjetje_ime']) ? $narocilo_data['podjetje_ime'] : '';
|
|
$podjetje_naslov = isset($narocilo_data['podjetje_naslov']) ? $narocilo_data['podjetje_naslov'] : '';
|
|
$podjetje_postna = isset($narocilo_data['podjetje_postna']) ? $narocilo_data['podjetje_postna'] : '';
|
|
$podjetje_posta = isset($narocilo_data['podjetje_posta']) ? $narocilo_data['podjetje_posta'] : '';
|
|
$podjetje_drzava = isset($narocilo_data['podjetje_drzava']) ? $narocilo_data['podjetje_drzava'] : '';
|
|
$podjetje_davcna = isset($narocilo_data['podjetje_davcna']) ? $narocilo_data['podjetje_davcna'] : '';
|
|
$podjetje_eracun = isset($narocilo_data['podjetje_eracun']) ? '1' : '0';
|
|
|
|
$language = isset($narocilo_data['lang']) ? $narocilo_data['lang'] : 'sl';
|
|
|
|
if($usr_id <= 0){
|
|
$response['error'] = 'ERROR! Missing user ID.';
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
|
|
// Nastavimo ce placa DDV (zavezanci iz EU ga ne placajo)
|
|
if(self::checkPayDDV($podjetje_davcna, $podjetje_drzava))
|
|
$podjetje_no_ddv = '0';
|
|
else
|
|
$podjetje_no_ddv = '1';
|
|
|
|
$brezplacen_preklop = false;
|
|
|
|
// Preverimo, ce ima uporabnik ze aktiven paket - po novem lahko to predhodno preklaplja, ker se to preracuna v popust
|
|
$sqlAccess = sisplet_query("SELECT * FROM user_access WHERE usr_id='".$usr_id."' AND package_id != '1' AND time_expire > NOW()");
|
|
if(mysqli_num_rows($sqlAccess) > 0){
|
|
|
|
$rowAccess = mysqli_fetch_array($sqlAccess);
|
|
|
|
// Ce zeli uporabnik kupiti drug placljiv paket kot ga ima trenutno, preracunamo obstojec paket v popust
|
|
if($rowAccess['package_id'] != $package_id){
|
|
$sqlPackage = sisplet_query("SELECT name FROM user_access_paket WHERE id='".$package_id."'");
|
|
$rowPackage = mysqli_fetch_array($sqlPackage);
|
|
|
|
$discount = $this->getDiscount($usr_id, $rowPackage['name'], $trajanje);
|
|
|
|
// Preverimo, ce je cena slucajno 0 - oznacimo, da gre za brezplacen preklop
|
|
$cena = $this->getPrice($rowPackage['name'], $trajanje, $discount);
|
|
if($cena['final'] == 0){
|
|
$brezplacen_preklop = true;
|
|
|
|
// Dodamo piškotek, če gre za brezplačni nakup
|
|
global $cookie_domain;
|
|
setcookie('brezplacen_preklop', 1, time()+1800, '/', $cookie_domain);
|
|
}
|
|
}
|
|
}
|
|
|
|
$sqlNarocilo = sisplet_query("INSERT INTO user_access_narocilo
|
|
(usr_id, status, time, package_id, ime, payment_method, discount, trajanje, phone, podjetje_ime, podjetje_naslov, podjetje_postna, podjetje_posta, podjetje_drzava, podjetje_davcna, podjetje_no_ddv, podjetje_eracun, language)
|
|
VALUES
|
|
('".$usr_id."', '".$status."', NOW(), '".$package_id."', '".$ime_na_racunu."', '".$payment_method."', '".$discount."', '".$trajanje."', '".$phone."', '".$podjetje_ime."', '".$podjetje_naslov."', '".$podjetje_postna."', '".$podjetje_posta."', '".$podjetje_drzava."', '".$podjetje_davcna."', '".$podjetje_no_ddv."', '".$podjetje_eracun."', '".$language."')
|
|
");
|
|
if (!$sqlNarocilo){
|
|
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
|
|
$narocilo_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
|
|
|
|
// Ce gre za brezplacen preklop izvedemo placilo (aktivacijo paketa) brez izdaje racuna, maila...
|
|
if($brezplacen_preklop){
|
|
$response = $this->payNarocilo($narocilo_id, $brezplacen_preklop);
|
|
}
|
|
// Drugace izdamo predracun oz. placamo s kartico/paypalom
|
|
else{
|
|
|
|
// Glede na tip plačila dobmo ustrezen url (predracun, paypal, kartica)
|
|
// Paypal
|
|
if($payment_method == '2'){
|
|
$response = $this->finishNarociloPaypal($narocilo_id, $narocilo_data);
|
|
}
|
|
// Kartica
|
|
elseif($payment_method == '3'){
|
|
$response = $this->finishNarociloStripe($narocilo_id, $narocilo_data);
|
|
}
|
|
// Predracun
|
|
else{
|
|
$response = $this->finishNarociloPredracun($narocilo_id, $narocilo_data);
|
|
}
|
|
}
|
|
|
|
|
|
return $response;
|
|
}
|
|
|
|
// Dokoncaj narocilo s placilom preko predracuna
|
|
private function finishNarociloPredracun($narocilo_id, $narocilo_data){
|
|
global $lang;
|
|
|
|
$response = array();
|
|
$response['narocilo_id'] = $narocilo_id;
|
|
|
|
$cebelica = new UserNarocilaCebelica($narocilo_id);
|
|
$response['payment_link'] = $cebelica->getNarociloPredracun();
|
|
|
|
// Posljemo mail s predracunom
|
|
$subject = $lang['srv_narocilo_email_predracun_subject'].' '.$narocilo_id;
|
|
|
|
$content = $lang['srv_narocilo_email_predracun_content1'];
|
|
$content .= '<br /><br />'.$lang['srv_narocilo_email_predracun_content2'];
|
|
$content .= '<br /><a href="'.$response['payment_link'].'">'.$lang['srv_narocilo_email_predracun_file'].'</a>';
|
|
|
|
// Podpis
|
|
$signature = Common::getEmailSignature();
|
|
$content .= $signature;
|
|
|
|
try{
|
|
$MA = new MailAdapter($anketa=null, $type='payments');
|
|
|
|
$MA->addRecipients($narocilo_data['email']);
|
|
|
|
// Dodamo predracun v attachment
|
|
$MA->addAttachment(file_get_contents($response['payment_link']), $file_name='1ka_narocilo_'.$narocilo_id.'_predracun.pdf');
|
|
|
|
// Posljemo mail
|
|
$resultX = $MA->sendMail($content, $subject);
|
|
|
|
$response['success'] = true;
|
|
}
|
|
catch (Exception $e){
|
|
$response['error'] = 'ERROR! Sending email with invoice failed.';
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
|
|
return $response;
|
|
}
|
|
|
|
// Dokoncaj narocilo s placilom preko predracuna
|
|
private function finishNarociloStripe($narocilo_id, $narocilo_data){
|
|
global $lang;
|
|
|
|
$response = array();
|
|
|
|
// Inicializiramo paypal
|
|
$stripe = new UserNarocilaStripe($narocilo_id);
|
|
|
|
// Ustvarimo stripe session za placilo in vrnemo id sessiona, da uporabnik potrdi placilo
|
|
$stripe_response = $stripe->stripeCreateSession();
|
|
|
|
// Ce je bilo placilo preko stripa uspesno zgeneriramo racun in uporabniku aktiviramo paket
|
|
if($stripe_response['success'] == true){
|
|
$response['session_id'] = $stripe_response['session_id'];
|
|
$response['success'] = true;
|
|
}
|
|
else{
|
|
$response['error'] = $stripe_response['error'];
|
|
$response['success'] = false;
|
|
}
|
|
|
|
return $response;
|
|
}
|
|
|
|
// Dokoncaj narocilo s placilom preko predracuna
|
|
private function finishNarociloPaypal($narocilo_id, $narocilo_data){
|
|
global $lang;
|
|
|
|
$response = array();
|
|
|
|
// Inicializiramo paypal
|
|
$paypal = new UserNarocilaPaypal($narocilo_id);
|
|
|
|
// Ustvarimo paypal placilo in vrnemo url, da se uporabnik prijavi v paypal in potrdi placilo
|
|
$paypal_response = $paypal->paypalCreatePayment();
|
|
|
|
// Ce je bilo placilo preko stripa uspesno zgeneriramo racun in uporabniku aktiviramo paket
|
|
if($paypal_response['success'] == true){
|
|
$response['paypal_link'] = $paypal_response['paypal_link'];
|
|
$response['success'] = true;
|
|
}
|
|
else{
|
|
$response['error'] = $paypal_response['error'];
|
|
$response['success'] = false;
|
|
}
|
|
|
|
return $response;
|
|
}
|
|
|
|
|
|
|
|
// Posodobi obstojece narocilo za uporabnika
|
|
public function updateNarocilo($narocilo_data){
|
|
global $global_user_id;
|
|
|
|
$response = array();
|
|
|
|
// ce nimamo id-ja narocila vrnemo error
|
|
if(!isset($narocilo_data['narocilo_id']) || $narocilo_data['narocilo_id'] == '0'){
|
|
$response['error'] = 'Napaka! Manjka ID narocila!';
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
|
|
$update = '';
|
|
|
|
$update .= isset($narocilo_data['status']) ? ', status='.$narocilo_data['status'] : '';
|
|
$update .= isset($narocilo_data['package_id']) ? ', package_id='.$narocilo_data['package_id'] : '';
|
|
$update .= isset($narocilo_data['payment_method']) ? ', payment_method='.$narocilo_data['payment_method'] : '';
|
|
$update .= isset($narocilo_data['discount']) ? ', discount='.$narocilo_data['discount'] : '';
|
|
$update .= isset($narocilo_data['ime']) ? ', ime='.$narocilo_data['ime'] : '';
|
|
$update .= isset($narocilo_data['trajanje']) ? ', trajanje='.$narocilo_data['trajanje'] : '';
|
|
|
|
$update .= isset($narocilo_data['phone']) ? ', phone='.$narocilo_data['phone'] : '';
|
|
|
|
$update .= isset($narocilo_data['podjetje_ime']) ? ', podjetje_ime='.$narocilo_data['podjetje_ime'] : '';
|
|
$update .= isset($narocilo_data['podjetje_naslov']) ? ', podjetje_naslov='.$narocilo_data['podjetje_naslov'] : '';
|
|
$update .= isset($narocilo_data['podjetje_postna']) ? ', podjetje_postna='.$narocilo_data['podjetje_postna'] : '';
|
|
$update .= isset($narocilo_data['podjetje_posta']) ? ', podjetje_posta='.$narocilo_data['podjetje_posta'] : '';
|
|
$update .= isset($narocilo_data['podjetje_drzava']) ? ', podjetje_drzava='.$narocilo_data['podjetje_drzava'] : '';
|
|
$update .= isset($narocilo_data['podjetje_davcna']) ? ', podjetje_davcna='.$narocilo_data['podjetje_davcna'] : '';
|
|
$update .= isset($narocilo_data['podjetje_no_ddv']) ? ', podjetje_no_ddv='.$narocilo_data['podjetje_no_ddv'] : '';
|
|
$update .= isset($narocilo_data['podjetje_eracun']) ? ', podjetje_eracun='.$narocilo_data['podjetje_eracun'] : '';
|
|
|
|
$update = substr($update, 1);
|
|
|
|
// Update narocila in pobrisemo id racuna in predracuna, ker ga moramo generirati na novo
|
|
$sqlNarocilo = sisplet_query("UPDATE user_access_narocilo SET ".$update.", cebelica_id_racun='0', cebelica_id_predracun='0' WHERE id='".$narocilo_data['narocilo_id']."'");
|
|
if (!$sqlNarocilo){
|
|
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
|
|
$response['success'] = true;
|
|
|
|
return $response;
|
|
}
|
|
|
|
// Placa obstojece narocilo, uporabniku aktivira paket, zgenerira racun in ga poslje po mailu
|
|
public function payNarocilo($narocilo_id, $brezplacen_preklop=false){
|
|
global $global_user_id;
|
|
global $lang;
|
|
|
|
$response = array();
|
|
|
|
// Ce nimamo id-ja narocila vrnemo error
|
|
if($narocilo_id == 0){
|
|
$response['error'] = 'Napaka! Manjka ID narocila!';
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
|
|
|
|
// Dobimo podatke narocila
|
|
$sqlNarocilo = sisplet_query("SELECT n.*, u.email FROM user_access_narocilo n, users u WHERE n.id='".$narocilo_id."' AND u.id=n.usr_id");
|
|
$rowNarocilo = mysqli_fetch_array($sqlNarocilo);
|
|
|
|
// Ce je bil racun ze placan ne naredimo nicesar
|
|
if($rowNarocilo['status'] == 1){
|
|
$response['error'] = 'Napaka! Račun je že plačan!';
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
|
|
|
|
// Nastavimo ustrezen jezik - mail mora biti v istem jeziku kot je bilo narocilo
|
|
if($rowNarocilo['language'] == 'en'){
|
|
include('../../lang/2.php');
|
|
}
|
|
|
|
|
|
// Preverimo, ce ima uporabnik ze aktiven paket in ce je ta paket isti kot ta, ki ga je kupil
|
|
$sqlAccessCheck = sisplet_query("SELECT * FROM user_access WHERE usr_id='".$rowNarocilo['usr_id']."' AND package_id != '1' AND time_expire > NOW()");
|
|
if(mysqli_num_rows($sqlAccessCheck) > 0){
|
|
|
|
$rowAccessCheck = mysqli_fetch_array($sqlAccessCheck);
|
|
|
|
// Ce zeli uporabnik kupiti drug placljiv paket kot ga ima trenutno, ga zavrnemo - po novem normalno izvedemo ker preracunamo v popust
|
|
if($rowAccessCheck['package_id'] != $rowNarocilo['package_id']){
|
|
|
|
// Nastavimo dostop uporabniku
|
|
$sqlAccess = sisplet_query("INSERT INTO user_access
|
|
(usr_id, time_activate, time_expire, package_id)
|
|
VALUES
|
|
('".$rowNarocilo['usr_id']."', NOW(), NOW() + INTERVAL '".$rowNarocilo['trajanje']."' MONTH, '".$rowNarocilo['package_id']."')
|
|
ON DUPLICATE KEY UPDATE
|
|
time_activate=NOW(), time_expire=NOW() + INTERVAL '".$rowNarocilo['trajanje']."' MONTH, package_id='".$rowNarocilo['package_id']."'
|
|
");
|
|
if (!$sqlAccess){
|
|
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
}
|
|
// Uporabnik kupuje isti paket kot ga ze ima - mu ga samo podaljsamo
|
|
else{
|
|
$sqlAccess = sisplet_query("UPDATE user_access SET time_expire = time_expire + INTERVAL '".$rowNarocilo['trajanje']."' MONTH WHERE usr_id='".$rowNarocilo['usr_id']."'");
|
|
if (!$sqlAccess){
|
|
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
}
|
|
}
|
|
else{
|
|
|
|
// Nastavimo dostop uporabniku
|
|
$sqlAccess = sisplet_query("INSERT INTO user_access
|
|
(usr_id, time_activate, time_expire, package_id)
|
|
VALUES
|
|
('".$rowNarocilo['usr_id']."', NOW(), NOW() + INTERVAL '".$rowNarocilo['trajanje']."' MONTH, '".$rowNarocilo['package_id']."')
|
|
ON DUPLICATE KEY UPDATE
|
|
time_activate=NOW(), time_expire=NOW() + INTERVAL '".$rowNarocilo['trajanje']."' MONTH, package_id='".$rowNarocilo['package_id']."'
|
|
");
|
|
if (!$sqlAccess){
|
|
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
}
|
|
|
|
|
|
// Nastavimo status narocila na placan
|
|
$sqlNarociloStatus = sisplet_query("UPDATE user_access_narocilo SET status='1' WHERE id='".$narocilo_id."'");
|
|
if (!$sqlNarociloStatus){
|
|
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
|
|
$response['success'] = false;
|
|
|
|
return $response;
|
|
}
|
|
|
|
|
|
// Brezplacen preklop - samo posljemo mail z obvestilom o vklopu paketa
|
|
if($brezplacen_preklop){
|
|
|
|
// Posljemo mail z obvestilom
|
|
$subject = $lang['srv_narocilo_free_email_subject'].' '.$rowNarocilo['id'];
|
|
|
|
$content = $lang['srv_narocilo_free_email_content1'];
|
|
$content .= '<br /><br />'.$lang['srv_narocilo_free_email_content2'];
|
|
|
|
// Podpis
|
|
$signature = Common::getEmailSignature();
|
|
$content .= $signature;
|
|
|
|
try{
|
|
$MA = new MailAdapter($anketa=null, $type='payments');
|
|
$MA->addRecipients($rowNarocilo['email']);
|
|
$resultX = $MA->sendMail($content, $subject);
|
|
}
|
|
catch (Exception $e){
|
|
$response['false'] = true;
|
|
}
|
|
}
|
|
// Ce ne gre za brezplacen preklop zapisemo v placila, izdamo racun in posljemo mail
|
|
else{
|
|
|
|
// Ustvarimo placilo v tabeli placil
|
|
$up = new UserPlacila();
|
|
$up->createPlacilo($rowNarocilo);
|
|
|
|
|
|
// Ustvarimo racun
|
|
$cebelica = new UserNarocilaCebelica($narocilo_id);
|
|
$response['racun'] = $cebelica->getNarociloRacun();
|
|
|
|
|
|
// Posljemo mail z racunom
|
|
$subject = $lang['srv_narocilo_email_subject'].' '.$rowNarocilo['id'];
|
|
|
|
$content = $lang['srv_narocilo_email_content1'];
|
|
$content .= '<br /><a href="'.$response['racun'].'">'.$lang['srv_narocilo_email_file'].'</a>';
|
|
$content .= '<br /><br />'.$lang['srv_narocilo_email_content2'];
|
|
|
|
|
|
// Podpis
|
|
$signature = Common::getEmailSignature();
|
|
$content .= $signature;
|
|
|
|
try{
|
|
$MA = new MailAdapter($anketa=null, $type='payments');
|
|
|
|
$MA->addRecipients($rowNarocilo['email']);
|
|
|
|
// Dodamo predracun v attachment
|
|
$MA->addAttachment(file_get_contents($response['racun']), $file_name='1ka_narocilo_'.$rowNarocilo['id'].'_racun.pdf');
|
|
|
|
$resultX = $MA->sendMail($content, $subject);
|
|
}
|
|
catch (Exception $e){
|
|
$response['false'] = true;
|
|
}
|
|
}
|
|
|
|
|
|
$response['success'] = true;
|
|
|
|
return $response;
|
|
}
|
|
|
|
|
|
// Poslje mail z povprasevanjem za poslovne uporabnike (virtualna domena ali lastna instalacija)
|
|
public function sendPoslovniUporabniki($narocilo_data){
|
|
global $lang;
|
|
global $global_user_id;
|
|
|
|
$response = array();
|
|
|
|
|
|
$ime = isset($narocilo_data['ime']) ? $narocilo_data['ime'] : '';
|
|
$organizacija = isset($narocilo_data['organizacija']) ? $narocilo_data['organizacija'] : '';
|
|
$naslov = isset($narocilo_data['naslov']) ? $narocilo_data['naslov'] : '';
|
|
$telefon = isset($narocilo_data['telefon']) ? $narocilo_data['telefon'] : '';
|
|
$email = isset($narocilo_data['email']) ? $narocilo_data['email'] : '';
|
|
|
|
$paket = isset($narocilo_data['paket']) ? $narocilo_data['paket'] : '';
|
|
|
|
// Virtualna domena ali instalacija na 1ka strezniku
|
|
$vrsta_domene = isset($narocilo_data['vrsta_domene']) ? $narocilo_data['vrsta_domene'] : '';
|
|
$domena = isset($narocilo_data['domena']) ? $narocilo_data['domena'] : '';
|
|
|
|
// Lastna instalacija - paket
|
|
$strinjanje_s_pogoji = isset($narocilo_data['strinjanje_s_pogoji']) ? $narocilo_data['strinjanje_s_pogoji'] : '';
|
|
|
|
|
|
// Posljemo mail s podatki povprasevanja
|
|
$subject = $lang['srv_narocilo_poslovni_email_1ka_subject'];
|
|
|
|
$content = $lang['srv_narocilo_poslovni_email_1ka_text'];
|
|
$content .= '<br /><br />'.$lang['srv_narocilo_poslovni_email_1ka_text2'];
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_ime'].' <b>'.$ime.'</b>';
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_organizacija'].' <b>'.$organizacija.'</b>';
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_naslov'].' <b>'.$naslov.'</b>';
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_telefon'].' <b>'.$telefon.'</b>';
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_email'].' <b>'.$email.'</b>';
|
|
|
|
// lastna instalacija na 1ka streziku
|
|
if($paket == 2){
|
|
$content .= '<br /><br />'.$lang['srv_narocilo_poslovni_email_1ka_paket'].' <b>'.$lang['srv_narocilo_poslovni_email_1ka_paket2'].'</b>';
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_paket1_1'].' <b>'.($vrsta_domene == '2' ? 'xxx.yyy.zz' : 'xxx.1ka.si').'</b>';
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_paket1_2'].' <b>'.$domena.'</b>';
|
|
}
|
|
// lastna instalacija - paket
|
|
elseif($paket == 3){
|
|
$content .= '<br /><br />'.$lang['srv_narocilo_poslovni_email_1ka_paket'].' <b>'.$lang['srv_narocilo_poslovni_email_1ka_paket3'].'</b>';
|
|
}
|
|
// Virtualna domena
|
|
else{
|
|
$content .= '<br /><br />'.$lang['srv_narocilo_poslovni_email_1ka_paket'].' <b>'.$lang['srv_narocilo_poslovni_email_1ka_paket1'].'</b>';
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_paket1_1'].' <b>'.($vrsta_domene == '2' ? 'xxx.yyy.zz' : 'xxx.1ka.si').'</b>';
|
|
$content .= '<br />'.$lang['srv_narocilo_poslovni_email_1ka_paket1_2'].' <b>'.$domena.'</b>';
|
|
}
|
|
|
|
// Podpis
|
|
$signature = Common::getEmailSignature();
|
|
$content .= $signature;
|
|
|
|
try{
|
|
$MA = new MailAdapter();
|
|
$MA->addRecipients('info@1ka.si');
|
|
$resultX = $MA->sendMail($content, $subject);
|
|
}
|
|
catch (Exception $e){
|
|
$response['false'] = true;
|
|
}
|
|
|
|
|
|
// Posljemo mail stranki o uspesnem prejemu
|
|
// lastna instalacija na 1ka strezniku
|
|
if($paket == 2){
|
|
$subject = $lang['srv_narocilo_poslovni_email_stranka_subject_2'];
|
|
|
|
$content = $lang['srv_narocilo_poslovni_email_stranka_text_1_2'];
|
|
$content .= ' <b>'.$domena.'</b> ';
|
|
$content .= $lang['srv_narocilo_poslovni_email_stranka_text_2'];
|
|
}
|
|
// lastna instalacija - paket
|
|
elseif($paket == 3){
|
|
$subject = $lang['srv_narocilo_poslovni_email_stranka_subject_3'];
|
|
|
|
$content = $lang['srv_narocilo_poslovni_email_stranka_text_1_3'];
|
|
$content .= ' ';
|
|
$content .= $lang['srv_narocilo_poslovni_email_stranka_text_2'];
|
|
}
|
|
// Virtualna domena
|
|
else{
|
|
$subject = $lang['srv_narocilo_poslovni_email_stranka_subject_1'];
|
|
|
|
$content = $lang['srv_narocilo_poslovni_email_stranka_text_1_1'];
|
|
$content .= ' <b>'.$domena.'</b> ';
|
|
$content .= $lang['srv_narocilo_poslovni_email_stranka_text_2'];
|
|
}
|
|
|
|
// Podpis
|
|
$signature = Common::getEmailSignature();
|
|
$content .= $signature;
|
|
|
|
try{
|
|
$MA = new MailAdapter();
|
|
$MA->addRecipients($email);
|
|
$resultX = $MA->sendMail($content, $subject);
|
|
}
|
|
catch (Exception $e){
|
|
$response['false'] = true;
|
|
}
|
|
|
|
|
|
$response['success'] = true;
|
|
|
|
return $response;
|
|
}
|
|
|
|
// Izvede api klic kjer preveri davcno stevilko in zavezanost za DDV
|
|
public static function checkPayDDV($davcna_stevilka, $drzava){
|
|
global $lang;
|
|
global $global_user_id;
|
|
|
|
// Drzave EU brez slovenije
|
|
$countries_eu = array();
|
|
$countries_eu['Austria'] = 'AT';
|
|
$countries_eu['Belgium'] = 'BE';
|
|
$countries_eu['Bulgaria'] = 'BG';
|
|
$countries_eu['Cyprus'] = 'CY';
|
|
$countries_eu['Czech Republic'] = 'CZ';
|
|
$countries_eu['Germany'] = 'DE';
|
|
$countries_eu['Denmark'] = 'DK';
|
|
$countries_eu['Estonia'] = 'EE';
|
|
$countries_eu['Spain'] = 'ES';
|
|
$countries_eu['Finland'] = 'FI';
|
|
$countries_eu['France'] = 'FR';
|
|
$countries_eu['United Kingdom'] = 'GB';
|
|
$countries_eu['Greece'] = 'GR';
|
|
$countries_eu['Hungary'] = 'HU';
|
|
$countries_eu['Croatia'] = 'HR';
|
|
$countries_eu['Ireland'] = 'IE';
|
|
$countries_eu['Italy'] = 'IT';
|
|
$countries_eu['Lithuania'] = 'LT';
|
|
$countries_eu['Luxembourg'] = 'LU';
|
|
$countries_eu['Latvia'] = 'LV';
|
|
$countries_eu['Malta'] = 'MT';
|
|
$countries_eu['Netherlands'] = 'NL';
|
|
$countries_eu['Poland'] = 'PL';
|
|
$countries_eu['Portugal'] = 'PT';
|
|
$countries_eu['Romania'] = 'RO';
|
|
$countries_eu['Sweden'] = 'SE';
|
|
//$countries_eu['Slovenia'] = 'SI';
|
|
$countries_eu['Slovakia'] = 'SK';
|
|
|
|
|
|
// Ce drzava ni oznacena - placa DDV
|
|
if($drzava == '')
|
|
return true;
|
|
|
|
// Slovenija - vedno placa DDV
|
|
if($drzava == 'Slovenija' || $drzava == 'Slovenia')
|
|
return true;
|
|
|
|
// Ce ni drzava s seznama in ni Slovenija - po novem nikoli ne placa DDV
|
|
if(!isset($countries_eu[$drzava]))
|
|
return false;
|
|
|
|
// Drugace gre za tujca iz EU
|
|
// Pocistimo davcno stevilko - ohranimo samo stevilke ce je vnesel v obliki "DE12345678" -> "12345678"
|
|
$davcna_stevilka = preg_replace('[\D]', '', $davcna_stevilka);
|
|
|
|
// Preverimo, ce je zavezanec
|
|
$client = new SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl");
|
|
try{
|
|
$response = $client->checkVat( array('countryCode' => $countries_eu[$drzava], 'vatNumber' => $davcna_stevilka) );
|
|
}
|
|
catch (Exception $e) {
|
|
return true;
|
|
}
|
|
|
|
// Je valid zavezanec iz EU
|
|
if(isset($response->valid) && $response->valid == true)
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
// Dobimo podatke o vseh paketih
|
|
private function cachePackages(){
|
|
|
|
$sqlPackages = sisplet_query("SELECT * FROM user_access_paket");
|
|
while($row = mysqli_fetch_array($sqlPackages)){
|
|
$this->packages[$row['name']] = $row;
|
|
}
|
|
}
|
|
|
|
|
|
// Ajax klici
|
|
public function ajax(){
|
|
|
|
$narocilo_id = (isset($_POST['narocilo_id'])) ? $_POST['narocilo_id'] : 0;
|
|
|
|
|
|
// Prikazemo popup z urejanjem posameznega narocila
|
|
if($_GET['a'] == 'displayNarociloPopup') {
|
|
|
|
if($narocilo_id > 0)
|
|
$this->displayNarociloEdit($narocilo_id);
|
|
}
|
|
|
|
// Urejamo narocilo
|
|
if($_GET['a'] == 'editNarocilo') {
|
|
|
|
if($narocilo_id > 0){
|
|
|
|
$update = '';
|
|
|
|
$update .= (isset($_POST['status'])) ? " status='".$_POST['status']."'," : "";
|
|
$update .= (isset($_POST['package_id'])) ? " package_id='".$_POST['package_id']."'," : "";
|
|
$update .= (isset($_POST['payment_method'])) ? " payment_method='".$_POST['payment_method']."'," : "";
|
|
$update .= (isset($_POST['discount'])) ? " discount='".$_POST['discount']."'," : "";
|
|
$update .= (isset($_POST['trajanje'])) ? " trajanje='".$_POST['trajanje']."'," : "";
|
|
|
|
$update .= (isset($_POST['phone'])) ? " phone='".$_POST['phone']."'," : "";
|
|
|
|
$update .= (isset($_POST['podjetje_ime'])) ? " podjetje_ime='".$_POST['podjetje_ime']."'," : "";
|
|
$update .= (isset($_POST['podjetje_naslov'])) ? " podjetje_naslov='".$_POST['podjetje_naslov']."'," : "";
|
|
$update .= (isset($_POST['podjetje_postna'])) ? " podjetje_postna='".$_POST['podjetje_postna']."'," : "";
|
|
$update .= (isset($_POST['podjetje_posta'])) ? " podjetje_posta='".$_POST['podjetje_posta']."'," : "";
|
|
$update .= (isset($_POST['podjetje_drzava'])) ? " podjetje_drzava='".$_POST['podjetje_drzava']."'," : "";
|
|
$update .= (isset($_POST['podjetje_davcna'])) ? " podjetje_davcna='".$_POST['podjetje_davcna']."'," : "";
|
|
$update .= (isset($_POST['podjetje_no_ddv'])) ? " podjetje_no_ddv='".$_POST['podjetje_no_ddv']."'," : "";
|
|
$update .= (isset($_POST['podjetje_eracun'])) ? " podjetje_eracun='".$_POST['podjetje_eracun']."'," : "";
|
|
|
|
if($update != ''){
|
|
|
|
$update = substr($update, 0, -1);
|
|
|
|
$sqlNarocilo = sisplet_query("UPDATE user_access_narocilo SET ".$update.", cebelica_id_racun='0', cebelica_id_predracun='0' WHERE id='".$narocilo_id."'");
|
|
if (!$sqlNarocilo)
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
}
|
|
|
|
// Na novo izrisemo tabelo z narocili
|
|
$this->displayNarocilaTableAdmin();
|
|
}
|
|
|
|
// Urejamo narocilo
|
|
if($_GET['a'] == 'payNarocilo') {
|
|
|
|
if($narocilo_id > 0){
|
|
|
|
// Ce imamo nastavljen payment_method na 1 pomeni da gre za klik na "placano" v tabeli (Goran) in potem popravimo narocilu, da ima vedno nacin placila preko trr
|
|
$payment_method = (isset($_POST['payment_method'])) ? $_POST['payment_method'] : 0;
|
|
if($payment_method == '1'){
|
|
$sqlNarociloNacin = sisplet_query("UPDATE user_access_narocilo SET payment_method='1' WHERE id='".$narocilo_id."'");
|
|
}
|
|
|
|
$this->payNarocilo($narocilo_id);
|
|
}
|
|
|
|
// Na novo izrisemo tabelo z narocili
|
|
$this->displayNarocilaTableAdmin();
|
|
}
|
|
|
|
// Brisemo narocilo
|
|
if($_GET['a'] == 'deleteNarocilo') {
|
|
|
|
if($narocilo_id > 0){
|
|
$sqlNarocilo = sisplet_query("DELETE FROM user_access_narocilo WHERE id='".$narocilo_id."'");
|
|
}
|
|
}
|
|
|
|
// Filter narocil
|
|
if($_GET['a'] == 'filterNarocila') {
|
|
|
|
$status = (isset($_POST['status'])) ? $_POST['status'] : '';
|
|
$value = (isset($_POST['value'])) ? $_POST['value'] : '';
|
|
|
|
if($status != '' && $value != ''){
|
|
|
|
if($status == '0'){
|
|
$_SESSION['narocila_filter']['neplacana'] = $value;
|
|
$this->narocila_filter['neplacana'] = $value;
|
|
}
|
|
elseif($status == '1'){
|
|
$_SESSION['narocila_filter']['placana'] = $value;
|
|
$this->narocila_filter['placana'] = $value;
|
|
}
|
|
elseif($status == '2'){
|
|
$_SESSION['narocila_filter']['stornirana'] = $value;
|
|
$this->narocila_filter['stornirana'] = $value;
|
|
}
|
|
}
|
|
|
|
// Na novo izrisemo tabelo z narocili
|
|
$this->displayNarocilaTableAdmin();
|
|
}
|
|
|
|
// Vrnemo predracun
|
|
if($_GET['a'] == 'getPredracun') {
|
|
|
|
$narocilo_id = (isset($_POST['narocilo_id'])) ? $_POST['narocilo_id'] : '';
|
|
|
|
if($narocilo_id != ''){
|
|
$cebelica = new UserNarocilaCebelica($narocilo_id);
|
|
$predracun = $cebelica->getNarociloPredracun();
|
|
|
|
echo $predracun;
|
|
}
|
|
}
|
|
|
|
// Vrnemo racun
|
|
if($_GET['a'] == 'getRacun') {
|
|
|
|
$narocilo_id = (isset($_POST['narocilo_id'])) ? $_POST['narocilo_id'] : '';
|
|
|
|
if($narocilo_id != ''){
|
|
$cebelica = new UserNarocilaCebelica($narocilo_id);
|
|
$this->response = $cebelica->getNarociloRacun();
|
|
|
|
echo $predracun;
|
|
}
|
|
}
|
|
}
|
|
} |