Moznost "placaj eracun" pri narocilih - izda racun z rokom 30 dni (neplacan) in ustvari placilo
This commit is contained in:
parent
4f3e07694a
commit
0da6b81046
@ -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(){
|
||||
|
||||
|
@ -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);
|
||||
|
||||
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,7 +44,8 @@ function racunIzPredracuna($api,$podatki,$proformaId,$lang='si') {
|
||||
'id_payment_method' => $tip_placila // 1=trr, 3=kartica, 5=paypal
|
||||
);
|
||||
|
||||
// nastavi, da je plačano
|
||||
// nastavi, da je plačano - eracun ni placan!
|
||||
if(!$eracun)
|
||||
$api->markPayed($header);
|
||||
|
||||
// kartica in paypal se potrjujeta
|
||||
|
@ -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 ' | <span class="as_link" onClick="urediNarociloPay(\''.$data_row['id'].'\')">'.$lang['srv_narocilo_placaj'].'</span>';
|
||||
if($data_row['status'] != '1' && $data_row['status'] != '2' && ($app_settings['app_name'] != 'www.1ka.si' || $global_user_id == '112696')){
|
||||
echo '<br />';
|
||||
echo '<span class="as_link" onClick="urediNarociloPay(\''.$data_row['id'].'\')">'.$lang['srv_narocilo_placaj'].'</span>';
|
||||
|
||||
if($data_row['podjetje_eracun'] == '1')
|
||||
echo ' | <span class="as_link" onClick="urediNarociloPayEracun(\''.$data_row['id'].'\')">'.$lang['srv_narocilo_placaj_eracun'].'</span>';
|
||||
}
|
||||
|
||||
echo '</td>';
|
||||
|
||||
@ -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 .= '<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 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') {
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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']);
|
||||
|
@ -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",
|
||||
@ -7450,6 +7451,8 @@ $lang = array (
|
||||
'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,<br/><br/>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,<br/><br/>naročilo je uspešno zaključeno.",
|
||||
'srv_narocilo_free_email_content2' => "Vaš 1KA uporabniški račun je posodobljen in funkcionalnosti so na voljo za uporabo.",
|
||||
|
@ -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",
|
||||
@ -7333,6 +7334,8 @@ $lang = array (
|
||||
'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,<br/><br/>You will recieve e-invoice shortly, invoice is available here:",
|
||||
|
||||
'srv_narocilo_free_email_subject' => "Finished order no.",
|
||||
'srv_narocilo_free_email_content1' => "Dear,<br/><br/>Your order has been completed.",
|
||||
'srv_narocilo_free_email_content2' => "Your 1KA account has been updated and additional functionalities are ready to use.",
|
||||
|
Loading…
x
Reference in New Issue
Block a user