Dodano filtriranje narocil po statusu, popravek racunanja DDV (3. drzave ga nimajo), dodan clen za brez DDV na predracun in racun

This commit is contained in:
Peter Hrvatin 2020-11-25 10:26:10 +01:00
parent 5831aad30d
commit b19a964651
7 changed files with 112 additions and 8 deletions

View File

@ -106,8 +106,8 @@ function prepareNarocilaTableAdmin(){
exportOptions: { exportOptions: {
columns: ':visible' columns: ':visible'
} }
}, }/*,
'colvis' 'colvis'*/
] ]
}); });
} }
@ -300,4 +300,15 @@ function stornirajPlacilo(placilo_id){
if(confirm('Ste prepričani?')){ if(confirm('Ste prepričani?')){
$("#placila").load('ajax.php?t=userPlacila&a=stornirajPlacilo', {placilo_id: placilo_id}); $("#placila").load('ajax.php?t=userPlacila&a=stornirajPlacilo', {placilo_id: placilo_id});
} }
}
// Nastavi filtriranje po statusu
function filterNarocila(status, checked){
if(checked)
var value = 1;
else
var value = 0;
$("#narocila").load('ajax.php?t=userNarocila&a=filterNarocila', {status: status, value: value});
} }

View File

@ -135,13 +135,28 @@ function ustvariPredracun($api,$podatki,$lang='si') {
$clientId=0; $clientId=0;
if(isset($clientIdA[0]['id'])) if(isset($clientIdA[0]['id']))
$clientId = $clientIdA[0]['id']; $clientId = $clientIdA[0]['id'];
// Sklic na člen glede DDV
$pub_notes = '';
// Podjetje, ki nima ddv (EU zavezanec oz. katerakoli 3. drzava)
if($podatki['podjetjeime'] != "" && $podatki['ddv'] != 1) {
$pub_notes = 'V skladu s členom 25/1 ZDDV-1 ni obračunan DDV.';
}
// Fizicna oseba iz 3. drzave, ki nima ddv
if($podatki['podjetjeime'] == "" && $podatki['ddv'] != 1) {
$pub_notes = 'V skladu s členom 30.d/1 ZDDV-1 ni obračunan DDV.';
}
$glava = array ( $glava = array (
'title' => date("y")."-".$clientId, 'title' => date("y")."-".$clientId,
'date_sent' => date("d.m.Y"), 'date_sent' => date("d.m.Y"),
'days_valid' => $podatki['veljavnost'], 'days_valid' => $podatki['veljavnost'],
'id_partner' => $clientId, 'id_partner' => $clientId,
'pub_notes' => '', 'pub_notes' => $pub_notes,
'date_served' => date("d.m.Y"), 'date_served' => date("d.m.Y"),
'date_to_pay' => date("d.m.Y"), 'date_to_pay' => date("d.m.Y"),
'date_payed' => date("d.m.Y"), 'date_payed' => date("d.m.Y"),

View File

@ -12,11 +12,23 @@ class UserNarocila{
// Array z vsemi paketi // Array z vsemi paketi
private $packages = array(); private $packages = array();
// Filter narocil
private $narocila_filter = array('neplacana' => 1, 'pacana' => 0, 'stornirana' => 0);
function __construct(){ function __construct(){
// Zakesiramo vse pakete // Zakesiramo vse pakete
$this->cachePackages(); $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;
} }
@ -29,10 +41,18 @@ class UserNarocila{
// Vsa narocila lahko pregledujejo samo admini // Vsa narocila lahko pregledujejo samo admini
if($admin_type == 0 && $usr_id == 0){ if($admin_type == 0 && $usr_id == 0){
// Loop po vseh narocilih v sistemu // 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 $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 FROM user_access_narocilo un, users u, user_access_paket up
WHERE un.usr_id=u.id AND un.package_id=up.id WHERE un.usr_id=u.id AND un.package_id=up.id ".$status."
ORDER BY un.id DESC ORDER BY un.id DESC
"); ");
while($rowNarocilo = mysqli_fetch_array($sqlNarocilo)){ while($rowNarocilo = mysqli_fetch_array($sqlNarocilo)){
@ -343,6 +363,13 @@ class UserNarocila{
// Admini vidijo vsa narocila // Admini vidijo vsa narocila
$data = $this->getNarocila(); $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%">'; echo '<table id="user_narocila" class="dataTable user_narocila_admin" style="width:100%">';
// Glava tabele // Glava tabele
@ -1228,10 +1255,13 @@ class UserNarocila{
$countries_eu['Slovakia'] = 'SK'; $countries_eu['Slovakia'] = 'SK';
// Ce ni drzava s seznama vedno placa DDV // Slovenija - vedno placa DDV
if(!isset($countries_eu[$drzava])) if($drzava == 'Slovenija' || $drzava == 'Slovenia')
return true; 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 - preverimo ce je zavezanec // Drugace gre za tujca iz EU - preverimo ce je zavezanec
$client = new SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl"); $client = new SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl");
@ -1336,5 +1366,31 @@ class UserNarocila{
$sqlNarocilo = sisplet_query("DELETE FROM user_access_narocilo WHERE id='".$narocilo_id."'"); $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();
}
} }
} }

View File

@ -7410,6 +7410,10 @@ $lang = array (
'srv_narocilo_status_1' => "Plačano", 'srv_narocilo_status_1' => "Plačano",
'srv_narocilo_status_2' => "Stornirano", 'srv_narocilo_status_2' => "Stornirano",
'srv_narocilo_filter_status_0' => "Neplačana",
'srv_narocilo_filter_status_1' => "Plačana",
'srv_narocilo_filter_status_2' => "Stornirana",
'srv_narocilo_email_predracun_subject' => "Oddano naročilo št. ", 'srv_narocilo_email_predracun_subject' => "Oddano naročilo št. ",
'srv_narocilo_email_predracun_content1' => "Hvala za oddano naročilo.", 'srv_narocilo_email_predracun_content1' => "Hvala za oddano naročilo.",
'srv_narocilo_email_predracun_content2' => "Predračun za plačilo je dostopen na spodnji povezavi:", 'srv_narocilo_email_predracun_content2' => "Predračun za plačilo je dostopen na spodnji povezavi:",

View File

@ -7293,6 +7293,10 @@ $lang = array (
'srv_narocilo_status_1' => "Paid", 'srv_narocilo_status_1' => "Paid",
'srv_narocilo_status_2' => "Canceled", 'srv_narocilo_status_2' => "Canceled",
'srv_narocilo_filter_status_0' => "Unpaid",
'srv_narocilo_filter_status_1' => "Paid",
'srv_narocilo_filter_status_2' => "Canceled",
'srv_narocilo_email_predracun_subject' => "Order no. ", 'srv_narocilo_email_predracun_subject' => "Order no. ",
'srv_narocilo_email_predracun_content1' => "Thank you for your order.", 'srv_narocilo_email_predracun_content1' => "Thank you for your order.",
'srv_narocilo_email_predracun_content2' => "Invoice for payment is availible here:", 'srv_narocilo_email_predracun_content2' => "Invoice for payment is availible here:",

View File

@ -26922,6 +26922,12 @@ label.user_access_locked:hover,
#narocila a.ovalbutton { #narocila a.ovalbutton {
line-height: 18px; line-height: 18px;
} }
#narocila .narocila_filters {
margin-bottom: 15px;
}
#narocila .narocila_filters label {
margin-right: 10px;
}
#narocila table.dataTable.user_narocila_admin { #narocila table.dataTable.user_narocila_admin {
padding: 20px 0; padding: 20px 0;
} }

View File

@ -203,6 +203,14 @@ label.user_access_locked,
} }
// Narocila - tabele // Narocila - tabele
.narocila_filters{
margin-bottom: 15px;
label{
margin-right: 10px;
}
}
table.dataTable.user_narocila_admin{ table.dataTable.user_narocila_admin{
padding: 20px 0; padding: 20px 0;