Aggiunta creazione conti di secondo livello da Piano dei conti

This commit is contained in:
MatteoPistorello 2021-07-02 10:20:07 +02:00
parent 983a62c535
commit 91a0667aec
4 changed files with 61 additions and 26 deletions

View File

@ -44,6 +44,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- Sostituito plugin **Componenti** nel modulo Impianti con la possibilità di inserire gli articoli di magazzino
- Aggiunta colonna Scaduto nel modulo Scadenzario
- Aggiunto campi confermato, data e ora evasione nel modulo **Preventivi**
- Aggiunta possibilità di creare un nuovi conti di secondo livello dal modulo **Piano dei conti**
### Fixed
-

View File

@ -25,21 +25,32 @@ use Modules\PrimaNota\Movimento;
switch (post('op')) {
// Aggiunta nuovo conto nel partitario
case 'add':
$idpianodeiconti2 = post('idpianodeiconti2');
$id_conto = post('id_conto');
$numero = post('numero');
$descrizione = post('descrizione');
$lvl = post('lvl');
if (post('idpianodeiconti2') !== null) {
if (post('id_conto') !== null) {
if($lvl=='2'){
// Controllo che non sia stato usato un numero non valido del conto
$query = 'SELECT idpianodeiconti2, numero FROM co_pianodeiconti3 WHERE numero='.prepare($numero).' AND idpianodeiconti2='.prepare($idpianodeiconti2);
$query = 'SELECT idpianodeiconti1, numero FROM co_pianodeiconti2 WHERE numero='.prepare($numero).' AND idpianodeiconti1='.prepare($id_conto);
$rs = $dbo->fetchArray($query);
if (sizeof($rs) == 0) {
$query = 'INSERT INTO co_pianodeiconti3(numero, descrizione, idpianodeiconti2, dir) VALUES('.prepare($numero).', '.prepare($descrizione).', '.prepare($idpianodeiconti2).', (SELECT dir FROM co_pianodeiconti2 WHERE id='.prepare($idpianodeiconti2).'))';
$query = 'INSERT INTO co_pianodeiconti2(numero, descrizione, idpianodeiconti1) VALUES('.prepare($numero).', '.prepare($descrizione).', '.prepare($id_conto).')';
}
}else {
// Controllo che non sia stato usato un numero non valido del conto
$query = 'SELECT idpianodeiconti2, numero FROM co_pianodeiconti3 WHERE numero='.prepare($numero).' AND idpianodeiconti2='.prepare($id_conto);
$rs = $dbo->fetchArray($query);
if (sizeof($rs) == 0) {
$query = 'INSERT INTO co_pianodeiconti3(numero, descrizione, idpianodeiconti2, dir) VALUES('.prepare($numero).', '.prepare($descrizione).', '.prepare($id_conto).', (SELECT dir FROM co_pianodeiconti2 WHERE id='.prepare($id_conto).'))';
}
}
if ($dbo->query($query)) {
flash()->info(tr('Nuovo conto aggiunto!'));
}
} else {
flash()->error(tr('Il numero scelto è già esistente!'));
}

View File

@ -19,13 +19,16 @@
include_once __DIR__.'/../../core.php';
$id_conto_lvl2 = get('id');
$id_conto = get('id');
$lvl = get('lvl')
?><form action="<?php echo base_path(); ?>/editor.php?id_module=<?php echo Modules::get('Piano dei conti')['id']; ?>" method="post">
<input type="hidden" name="op" value="add">
<input type="hidden" name="backto" value="record-list">
<input type="hidden" name="idpianodeiconti2" value="<?php echo $id_conto_lvl2; ?>">
<input type="hidden" name="id_conto" value="<?php echo $id_conto; ?>">
<input type="hidden" name="lvl" value="<?php echo $lvl; ?>">
<div class="row">

View File

@ -54,7 +54,12 @@ foreach ($primo_livello as $conto_primo) {
<hr>
<div class="box">
<div class="box-header">
<h3 class="box-title">'.$titolo.'</h3>
<h3 class="box-title">
'.$titolo.'
<button type="button" class="btn btn-xs btn-primary" data-toggle="tooltip" title="'.tr('Aggiungi un nuovo conto...').'" onclick="aggiungiConto('.$conto_primo['id'].', 2)">
<i class="fa fa-plus-circle"></i>
</button>
</h3>
<div class="pull-right">
'.Prints::getLink('Mastrino', $conto_primo['id'], null, tr('Stampa'), null, 'lev=1').'
</div>
@ -77,7 +82,12 @@ foreach ($primo_livello as $conto_primo) {
</button>
</div>
<h5><b>'.$conto_secondo['numero'].' '.$conto_secondo['descrizione'].'</b></h5>
<h5>
<b>'.$conto_secondo['numero'].' '.$conto_secondo['descrizione'].'</b>
<button type="button" class="btn btn-xs btn-primary" data-toggle="tooltip" title="'.tr('Aggiungi un nuovo conto...').'" onclick="aggiungiConto('.$conto_secondo['id'].')">
<i class="fa fa-plus-circle"></i>
</button>
</h5>
<div class="table-responsive">
<table class="table table-striped table-hover table-condensed">
@ -136,7 +146,7 @@ foreach ($primo_livello as $conto_primo) {
// Possibilità di esplodere i movimenti del conto
if (!empty($numero_movimenti)) {
echo '
<a href="javascript:;" class="btn btn-primary btn-xs plus-btn"><i class="fa fa-plus"></i></a>';
<button type="button" id="movimenti-'.$conto_terzo['id'].'" class="btn btn-default btn-xs plus-btn"><i class="fa fa-plus"></i></button>';
}
// Span con i pulsanti
@ -215,13 +225,7 @@ foreach ($primo_livello as $conto_primo) {
echo '
</tr>
</tfoot>
</table>';
// Possibilità di inserire un nuovo conto
echo '
<button type="button" class="btn btn-xs btn-primary" data-toggle="tooltip" title="'.tr('Aggiungi un nuovo conto...').'" onclick="aggiungiConto('.$conto_secondo['id'].')">
<i class="fa fa-plus-circle"></i>
</button>
</table>
<br><br>
</div>';
@ -411,13 +415,29 @@ echo '
movimenti.slideToggle();
}
$(this).find(".plus-btn i").toggleClass("fa-plus").toggleClass("fa-minus");
$(this).parent().find(".plus-btn i").toggleClass("fa-plus").toggleClass("fa-minus");
});
})
$("button[id^=movimenti-]").each(function() {
$(this).on("click", function() {
let movimenti = $(this).parent().find("div[id^=conto_]");
if(!movimenti.html()) {
let id_conto = $(this).attr("id").split("-").pop();
caricaMovimenti(movimenti.attr("id"), id_conto);
} else {
movimenti.slideToggle();
}
$(this).parent().find(".plus-btn i").toggleClass("fa-plus").toggleClass("fa-minus");
});
})
});
function aggiungiConto(id_conto_lvl2) {
openModal("'.tr('Nuovo conto').'", "'.$structure->fileurl('add_conto.php').'?id=" + id_conto_lvl2);
function aggiungiConto(id_conto, level = 3) {
openModal("'.tr('Nuovo conto').'", "'.$structure->fileurl('add_conto.php').'?id=" + id_conto + "&lvl=" + level);
}
function modificaConto(id_conto, level = 3) {