diff --git a/admin/survey/script/narocila.js b/admin/survey/script/narocila.js
index c2a078f8d..103c8c253 100644
--- a/admin/survey/script/narocila.js
+++ b/admin/survey/script/narocila.js
@@ -230,6 +230,15 @@ function urediNarociloPay(narocilo_id){
$('#fade').fadeOut('slow');
});
}
+// Urejanje narocila - placaj eracun
+function urediNarociloPayEracun(narocilo_id){
+
+ $("#narocila").load('ajax.php?t=userNarocila&a=payNarociloEracun', {narocilo_id: narocilo_id, payment_method: '1'}, function () {
+
+ $('#user_narocila_popup').hide().html('');
+ $('#fade').fadeOut('slow');
+ });
+}
// Urejanje narocila - zapri
function urediNarociloClose(){
diff --git a/frontend/payments/cebelica/InvoiceFox/cebelcaApi.php b/frontend/payments/cebelica/InvoiceFox/cebelcaApi.php
index fe2581fbe..fc4adfc45 100644
--- a/frontend/payments/cebelica/InvoiceFox/cebelcaApi.php
+++ b/frontend/payments/cebelica/InvoiceFox/cebelcaApi.php
@@ -4,24 +4,24 @@ require_once('lib/strpcapi.php');
require_once('lib/invfoxapi.php');
// debugMode = true izpisuje klice in njihove rezultate
-function vnosRacunaCebelca($podatki, $debugMode, $proformaId, $lang='si') {
+function vnosRacunaCebelca($podatki, $debugMode, $proformaId, $lang='si', $eracun) {
$api = new InvfoxAPI(API_KODA, "www.cebelca.biz", $debugMode);
if($proformaId != 0)
- $id = racunIzPredracuna($api,$podatki,$proformaId,$lang);
+ $id = racunIzPredracuna($api, $podatki, $proformaId, $lang, $eracun);
else
- $id = ustvariPredracun($api,$podatki,$lang);
+ $id = ustvariPredracun($api, $podatki, $lang);
return $id;
}
-function racunIzPredracuna($api,$podatki,$proformaId,$lang='si') {
+function racunIzPredracuna($api, $podatki, $proformaId, $lang='si', $eracun=false) {
// parametri za glavo predracuna
$argumentiProforma = array(
"id" => $proformaId,
"date_sent" => date("d.m.Y"),
- "date_to_pay" => date("d.m.Y"),
+ "date_to_pay" => ($eracun) ? date("d.m.Y", strtotime('-30 days')) : date("d.m.Y"),
"date_served" => date("d.m.Y",strtotime($podatki['datum']))
);
@@ -44,8 +44,9 @@ function racunIzPredracuna($api,$podatki,$proformaId,$lang='si') {
'id_payment_method' => $tip_placila // 1=trr, 3=kartica, 5=paypal
);
- // nastavi, da je plačano
- $api->markPayed($header);
+ // nastavi, da je plačano - eracun ni placan!
+ if(!$eracun)
+ $api->markPayed($header);
// kartica in paypal se potrjujeta
if($tip_placila == 3 || $tip_placila == 5){
diff --git a/frontend/payments/classes/class.UserNarocila.php b/frontend/payments/classes/class.UserNarocila.php
index 415b19138..a29d98191 100644
--- a/frontend/payments/classes/class.UserNarocila.php
+++ b/frontend/payments/classes/class.UserNarocila.php
@@ -430,8 +430,13 @@ class UserNarocila{
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 ' | '.$lang['srv_narocilo_placaj'].'';
+ if($data_row['status'] != '1' && $data_row['status'] != '2' && ($app_settings['app_name'] != 'www.1ka.si' || $global_user_id == '112696')){
+ echo '
';
+ echo ''.$lang['srv_narocilo_placaj'].'';
+
+ if($data_row['podjetje_eracun'] == '1')
+ echo ' | '.$lang['srv_narocilo_placaj_eracun'].'';
+ }
echo '';
@@ -1106,6 +1111,147 @@ class UserNarocila{
return $response;
}
+ // Placa narocilo - za eracune, kjer se jih zabelezi kot placane ampak imajo 30 dnevni rok
+ public function payNarociloEracun($narocilo_id){
+ 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;
+ }
+
+
+ // Ustvarimo placilo v tabeli placil
+ $up = new UserPlacila();
+ $up->createPlacilo($rowNarocilo, $eracun=true);
+
+
+ // Ustvarimo racun - nima "markPayed"!
+ $cebelica = new UserNarocilaCebelica($narocilo_id);
+ $response['racun'] = $cebelica->getNarociloRacun($eracun=true);
+
+
+ // Posljemo mail z racunom
+ $subject = $lang['srv_narocilo_email_subject'].' '.$rowNarocilo['id'];
+
+ $content = $lang['srv_narocilo_email_content1_eracun'];
+ $content .= '
'.$lang['srv_narocilo_email_file'].'';
+ $content .= '
'.$lang['srv_narocilo_email_content2'];
+
+
+ // Podpis
+ $signature = Common::getEmailSignature();
+ $content .= $signature;
+
+ try{
+ $MA = new MailAdapter($anketa=null, $type='payments');
+
+ $MA->addRecipients($rowNarocilo['email']);
+
+ // Dodamo racun (brez "markPayed") 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){
@@ -1367,6 +1513,24 @@ class UserNarocila{
$this->displayNarocilaTableAdmin();
}
+ // Placamo narocilo brez racuna
+ if($_GET['a'] == 'payNarociloEracun') {
+
+ 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->payNarociloEracun($narocilo_id);
+ }
+
+ // Na novo izrisemo tabelo z narocili
+ $this->displayNarocilaTableAdmin();
+ }
+
// Brisemo narocilo
if($_GET['a'] == 'deleteNarocilo') {
diff --git a/frontend/payments/classes/class.UserNarocilaCebelica.php b/frontend/payments/classes/class.UserNarocilaCebelica.php
index 39ac710c3..a029b1ae9 100644
--- a/frontend/payments/classes/class.UserNarocilaCebelica.php
+++ b/frontend/payments/classes/class.UserNarocilaCebelica.php
@@ -54,7 +54,7 @@ class UserNarocilaCebelica{
// Zgeneriramo in vrnemo link do pdf-ja racuna za narocilo
- public function getNarociloRacun(){
+ public function getNarociloRacun($eracun=false){
global $global_user_id;
// Preverimo, ce racun ze obstaja
@@ -72,7 +72,7 @@ class UserNarocilaCebelica{
}
// Zgeneriramo pdf racun na podlagi predracuna
- $cebelica_id_new = $this->generatePdf($this->narocilo['cebelica_id_predracun']);
+ $cebelica_id_new = $this->generatePdf($this->narocilo['cebelica_id_predracun'], $eracun);
// Vstavimo id cebelice predracuna v bazo
$sqlNarocilo = sisplet_query("UPDATE user_access_narocilo SET cebelica_id_racun='".$cebelica_id_new."' WHERE id='".$this->narocilo['id']."'");
@@ -113,7 +113,7 @@ class UserNarocilaCebelica{
// Poklicemo cebelico in zgeneriramo predracun oz. racun
- private function generatePdf($cebelica_id=0){
+ private function generatePdf($cebelica_id=0, $eracun=false){
global $site_path;
// Api za povezavo s cebelico
@@ -204,7 +204,7 @@ class UserNarocilaCebelica{
// 0 generira predračun, številka naredi račun iz predračuna
- $cebelica_id_new = vnosRacunaCebelca($podatki, $debug=false, $cebelica_id, $lang);
+ $cebelica_id_new = vnosRacunaCebelca($podatki, $debug=false, $cebelica_id, $lang, $eracun);
if($cebelica_id_new){
return $cebelica_id_new;
diff --git a/frontend/payments/classes/class.UserPlacila.php b/frontend/payments/classes/class.UserPlacila.php
index 8a0ba7c3f..3beec6a88 100644
--- a/frontend/payments/classes/class.UserPlacila.php
+++ b/frontend/payments/classes/class.UserPlacila.php
@@ -69,7 +69,7 @@ class UserPlacila{
}
// Ustvarimo placilo iz narocila
- public function createPlacilo($narocilo){
+ public function createPlacilo($narocilo, $eracun=false){
// Preverimo, ce slucajno se obstaja placilo za to narocilo - vrnemo error
$sqlPlaciloCheck = sisplet_query("SELECT id FROM user_access_placilo WHERE narocilo_id='".$narocilo['id']."'");
@@ -90,10 +90,13 @@ class UserPlacila{
// Zavezanec iz tujine je placal brez ddv
$cena_placano = ($UA->isWithoutDDV($narocilo['id'])) ? $cena['final_without_tax'] : $cena['final'];
+ // Ce je placilo eracuna, bo placano sele cez 30 dni
+ $time = ($eracun) ? 'NOW() + INTERVAL 1 MONTH': 'NOW()';
+
$sqlPlacilo = sisplet_query("INSERT INTO user_access_placilo
(narocilo_id, note, time, price, payment_method)
VALUES
- ('".$narocilo['id']."', '".$note."', NOW(), '".$cena_placano."', '".$narocilo['payment_method']."')
+ ('".$narocilo['id']."', '".$note."', ".$time.", '".$cena_placano."', '".$narocilo['payment_method']."')
");
if (!$sqlPlacilo)
echo mysqli_error($GLOBALS['connect_db']);
diff --git a/lang/1.php b/lang/1.php
index b8687a0f4..b886cd7cd 100644
--- a/lang/1.php
+++ b/lang/1.php
@@ -7430,6 +7430,7 @@ $lang = array (
'srv_narocilo_podjetje_no_ddv' => "Ne plača DDV",
'srv_narocilo_podjetje_eracun' => "E-račun",
'srv_narocilo_placaj' => "Plačaj",
+ 'srv_narocilo_placaj_eracun' => "Plačaj e-račun",
'srv_narocilo_status_0' => "Neplačano",
'srv_narocilo_status_1' => "Plačano",
@@ -7449,6 +7450,8 @@ $lang = array (
'srv_narocilo_email_content1' => "Spoštovani,
račun je plačan in dostopen na spodnji povezavi:",
'srv_narocilo_email_content2' => "Vaš 1KA uporabniški račun je posodobljen in funkcionalnosti so na voljo za uporabo.",
'srv_narocilo_email_file' => "PDF - Račun",
+
+ 'srv_narocilo_email_content1_eracun' => "Spoštovani,
e-račun boste prejeli v kratkem, račun je dostopen na spodnji povezavi:",
'srv_narocilo_free_email_subject' => "Zaključeno naročilo št. ",
'srv_narocilo_free_email_content1' => "Spoštovani,
naročilo je uspešno zaključeno.",
diff --git a/lang/2.php b/lang/2.php
index 8f97e51d5..dae10b71a 100644
--- a/lang/2.php
+++ b/lang/2.php
@@ -7313,6 +7313,7 @@ $lang = array (
'srv_narocilo_podjetje_no_ddv' => "Does not pay VAT",
'srv_narocilo_podjetje_eracun' => "E-invoice",
'srv_narocilo_placaj' => "Pay",
+ 'srv_narocilo_placaj_eracun' => "Pay e-invoice",
'srv_narocilo_status_0' => "Unpaid",
'srv_narocilo_status_1' => "Paid",
@@ -7332,7 +7333,9 @@ $lang = array (
'srv_narocilo_email_content1' => "Dear,
Bill has been paid and is available here:",
'srv_narocilo_email_content2' => "Your 1KA account has been updated and additional functionalities are ready to use.",
'srv_narocilo_email_file' => "PDF - Receipt",
-
+
+ 'srv_narocilo_email_content1_eracun' => "Dear,
You will recieve e-invoice shortly, invoice is available here:",
+
'srv_narocilo_free_email_subject' => "Finished order no.",
'srv_narocilo_free_email_content1' => "Dear,
Your order has been completed.",
'srv_narocilo_free_email_content2' => "Your 1KA account has been updated and additional functionalities are ready to use.",