This commit is contained in:
Thomas Zilio 2019-07-25 17:20:24 +02:00
parent d2ad9914f2
commit ce1731a3a6
14 changed files with 90 additions and 52 deletions

View File

@ -1726,6 +1726,7 @@ function submitAjax(form, data = {}, callback = null, errorCallback = null) {
data.id_module = data.id_module ? data.id_module : globals.id_module;
data.id_record = data.id_record ? data.id_record : globals.id_record;
data.id_plugin = data.id_plugin ? data.id_plugin : globals.id_plugin;
data.ajax = 1;
// Invio dei dati
$(form).ajaxSubmit({

View File

@ -98,13 +98,13 @@ switch (post('op')) {
// Elimino la scadenza e tutti i movimenti, poi se la fattura è emessa le ricalcolo
if ($stato['descrizione'] == 'Bozza' or $stato['descrizione'] == 'Annullata') {
elimina_scadenza($id_record);
//elimina_movimento($id_record, 0);
elimina_scadenze($id_record);
//elimina_movimenti($id_record, 0);
//elimino movimento anche prima nota (se pagata o parzialmente pagata)
elimina_movimento($id_record, 1);
elimina_movimenti($id_record, 1);
} elseif ($stato['descrizione'] == 'Emessa') {
elimina_scadenza($id_record);
elimina_movimento($id_record, 0);
elimina_scadenze($id_record);
elimina_movimenti($id_record, 0);
} elseif (($stato['descrizione'] == 'Pagato' or $stato['descrizione'] == 'Parzialmente pagato') and ($dbo->fetchNum('SELECT id FROM co_scadenziario WHERE iddocumento = '.prepare($id_record)) == 0)) {
// aggiungo la scadenza come già pagata
aggiungi_scadenza($id_record, null, 1);
@ -211,12 +211,11 @@ switch (post('op')) {
case 'reopen':
if (!empty($id_record)) {
if ($dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Bozza') WHERE id=".prepare($id_record))) {
elimina_scadenza($id_record);
elimina_movimento($id_record, 1);
ricalcola_costiagg_fattura($id_record);
flash()->info(tr('Fattura riaperta!'));
}
$dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Bozza') WHERE id=".prepare($id_record));
elimina_scadenze($id_record);
elimina_movimenti($id_record, 1);
ricalcola_costiagg_fattura($id_record);
flash()->info(tr('Fattura riaperta!'));
}
break;

View File

@ -77,9 +77,10 @@ if (!empty($record['is_fiscale'])) {
}
if ($record['stato'] == 'Pagato') {
?>
<button type="button" class="btn btn-primary tip" onclick="if( confirm('<?php echo tr('Se riapri questa fattura verrà azzerato lo scadenzario e la prima nota. Continuare?'); ?>') ){ $.post( '<?php echo $rootdir; ?>/editor.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>', { id_module: '<?php echo $id_module; ?>', id_record: '<?php echo $id_record; ?>', op: 'reopen' }, function(){ location.href='<?php echo $rootdir; ?>/editor.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>'; } ); }" title="<?php echo tr('Riporta la fattura in stato bozza e ne elimina i movimenti contabili.'); ?>" ><i class="fa fa-folder-open"></i> <?php echo tr('Riapri fattura'); ?>...</button>
<?php
echo '
<button type="button" class="btn btn-primary ask tip" data-msg="'.tr('Se riapri questa fattura verrà azzerato lo scadenzario e la prima nota. Continuare?').'" data-method="post" data-op="reopen" data-backto="record-edit" data-title="'.tr('Riaprire la fattura?').'" title="'.tr('Riporta la fattura in stato bozza e ne elimina i movimenti contabili').'">
<i class="fa fa-folder-open"></i> '.tr('Riapri fattura').'...
</button>';
}
}
?>

View File

@ -91,7 +91,7 @@ function get_ivaindetraibile_fattura($iddocumento)
/**
* Elimina una scadenza in base al codice documento.
*/
function elimina_scadenza($iddocumento)
function elimina_scadenze($iddocumento)
{
$fattura = Fattura::find($iddocumento);
@ -215,7 +215,7 @@ function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento, $i
/**
* Elimina i movimenti collegati ad una fattura.
*/
function elimina_movimento($iddocumento, $anche_prima_nota = 0)
function elimina_movimenti($iddocumento, $anche_prima_nota = 0)
{
$dbo = database();

View File

@ -446,7 +446,7 @@ class Fattura extends Document
$result = parent::delete();
$this->rimuoviScadenze();
elimina_movimento($this->id);
elimina_movimenti($this->id);
return $result;
}

View File

@ -67,6 +67,10 @@ switch (post('op')) {
}
}
if (isAjaxRequest()) {
echo json_encode(['id' => $id_record]);
}
break;
case 'test':

View File

@ -2,37 +2,39 @@
echo '
<button type="button" class="btn btn-primary" onclick="testAccount(this)">
<i class="fa fa-id-card-o"></i> '.tr('Controlla credenziali').'
<i class="fa fa-id-card-o"></i> '.tr('Salva e controlla credenziali').'
</button>
<script>
function testAccount(btn){
var restore = buttonLoading(btn);
submitAjax("#edit-form", {}, function(data) {
var restore = buttonLoading(btn);
$.ajax({
url: globals.rootdir + "/actions.php",
cache: false,
type: "POST",
data: {
id_module: globals.id_module,
id_record: globals.id_record,
op: "test",
},
success: function(data) {
buttonRestore(btn, restore);
data = JSON.parse(data);
if(data.test){
swal("'.tr('Connessione SMTP riuscita').'", "'.tr("Connessione all'account SMTP completata con successo").'", "success");
}else{
swal("'.tr('Connessione SMTP fallita').'", "'.tr("Impossibile connettersi all'account SMTP").'", "error");
$.ajax({
url: globals.rootdir + "/actions.php",
cache: false,
type: "POST",
data: {
id_module: globals.id_module,
id_record: globals.id_record,
op: "test",
},
success: function(data) {
buttonRestore(btn, restore);
data = JSON.parse(data);
if(data.test){
swal("'.tr('Connessione SMTP riuscita').'", "'.tr("Connessione all'account SMTP completata con successo").'", "success");
} else {
swal("'.tr('Connessione SMTP fallita').'", "'.tr("Impossibile connettersi all'account SMTP").'", "error");
}
},
error: function(data) {
swal("'.tr('Errore').'", "'.tr('Errore durante il test').'", "error");
buttonRestore(btn, restore);
}
},
error: function(data) {
swal("'.tr('Errore').'", "'.tr('Errore durante il test').'", "error");
buttonRestore(btn, restore);
}
});
});
})
}
</script>';

View File

@ -47,6 +47,9 @@ switch (filter('op')) {
$utente->username = $username;
$utente->email = $email;
$cambia_password = filter('change_password');
if (!empty($cambia_password))
$utente->password = $password;
} else {
$utente = User::build($username, $email, $password);

View File

@ -7,7 +7,7 @@ $_SESSION['superselect']['idanagrafica'] = $utente['id_anagrafica'];
echo '
<div class="row">
<div class="col-md-12">
{[ "type": "text", "label": "'.tr('Username').'", "name": "username", "required": 1, "value": "'.$utente['username'].'", "validation": "username" ]}
{[ "type": "text", "label": "'.tr('Username').'", "name": "username", "required": 1, "value": "'.$utente['username'].'", "validation": "username||'.($utente['id']?:0).'" ]}
</div>
</div>';

View File

@ -5,6 +5,6 @@ include_once __DIR__.'/../../core.php';
echo '
<div class="row">
<div class="col-md-12">
{[ "type": "password", "label": "'.tr('Password').'", "name": "password", "required": 1, "strength": "#submit-button" ]}
{[ "type": "password", "label": "'.tr('Password').'", "name": "password", "strength": "#submit-button" ]}
</div>
</div>';

View File

@ -37,6 +37,28 @@ echo '
include $structure->filepath('components/photo.php');
include $structure->filepath('components/base.php');
if (!empty($user)) {
echo '
<div class="row">
<div class="col-md-12">
{[ "type": "checkbox", "label": "' . tr('Cambia password') . '", "name": "change_password", "value": "1" ]}
</div>
</div>
<script>
$("#change_password").change(function() {
if (this.checked) {
$("#password").attr("disabled", false);
$("#password").change();
} else {
$("#password").attr("disabled", true);
$("#submit-button").attr("disabled", false).removeClass("disabled");
}
})
</script>';
}
include $structure->filepath('components/password.php');
echo '

View File

@ -11,7 +11,7 @@ switch ($name) {
case 'username':
$disponibile = User::where([
['username', $value],
['idanagrafica', '<>', $id_record],
['id', '<>', $id_record],
])->count() == 0;
$message = $disponibile ? tr("L'username è disponbile") : tr("L'username è già utilizzato");

View File

@ -97,8 +97,8 @@ switch (filter('op')) {
$id_fattura = $fattura_pa->save($info);
ricalcola_costiagg_fattura($id_fattura);
elimina_scadenza($id_fattura);
elimina_movimento($id_fattura, 0);
elimina_scadenze($id_fattura);
elimina_movimenti($id_fattura, 0);
aggiungi_scadenza($id_fattura);
aggiungi_movimento($id_fattura, 'uscita');

View File

@ -1,5 +1,6 @@
<?php
use API\Response as API;
use Models\User;
/**
@ -56,8 +57,8 @@ class Auth extends \Util\Singleton
if ($database->isInstalled()) {
// Controllo dell'accesso da API
if (API\Response::isAPIRequest()) {
$token = API\Response::getRequest()['token'];
if (API::isAPIRequest()) {
$token = API::getRequest()['token'];
$user = $database->fetchArray('SELECT `id_utente` FROM `zz_tokens` WHERE `enabled` = 1 AND `token` = :token', [
':token' => $token,
@ -232,7 +233,7 @@ class Auth extends \Util\Singleton
session_unset();
session_regenerate_id();
if (!API\Response::isAPIRequest()) {
if (!API::isAPIRequest()) {
flash()->clearMessages();
}
}
@ -464,6 +465,11 @@ class Auth extends \Util\Singleton
if (!empty($results)) {
$this->user = User::with('group')->find($user_id);
if(!API::isAPIRequest() && !empty($this->user->reset_token)) {
$this->user->reset_token = null;
$this->user->save();
}
}
} catch (PDOException $e) {
$this->destory();