Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
47c9923803
|
@ -332,6 +332,10 @@ class Fattura extends Document
|
|||
*/
|
||||
public static function registraScadenza(Fattura $fattura, $importo, $scadenza, $is_pagato, $type = 'fattura')
|
||||
{
|
||||
|
||||
//Calcolo la descrizione
|
||||
$descrizione = database()->fetchOne("SELECT CONCAT(co_tipidocumento.descrizione, CONCAT(' numero ', IF(numero_esterno!='', numero_esterno, numero))) AS descrizione FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='".$fattura->id."'")['descrizione'];
|
||||
|
||||
database()->insert('co_scadenziario', [
|
||||
'iddocumento' => $fattura->id,
|
||||
'data_emissione' => $fattura->data,
|
||||
|
@ -340,6 +344,7 @@ class Fattura extends Document
|
|||
'tipo' => $type,
|
||||
'pagato' => $is_pagato ? $importo : 0,
|
||||
'data_pagamento' => $is_pagato ? $scadenza : null,
|
||||
'descrizione' => $descrizione,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,19 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
switch (post('op')) {
|
||||
|
||||
case 'add':
|
||||
$data = post("data");
|
||||
$tipo = post("tipo");
|
||||
$da_pagare = post("da_pagare");
|
||||
$descrizione = post("descrizione");
|
||||
|
||||
$dbo->query("INSERT INTO co_scadenziario(descrizione, tipo, data_emissione, scadenza, da_pagare, pagato, data_pagamento) VALUES(".prepare($descrizione).", ".prepare($tipo).", CURDATE(), ".prepare($data).", ".prepare($da_pagare).", '0', '0000-00-00')");
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
flash()->info(tr('Scadenza inserita!'));
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
// Calcolo il totale da pagare
|
||||
$rs = $dbo->fetchArray('SELECT SUM(da_pagare) AS totale_da_pagare FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento=(SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).')');
|
||||
|
@ -26,4 +39,9 @@ switch (post('op')) {
|
|||
}
|
||||
|
||||
break;
|
||||
|
||||
case "delete":
|
||||
$dbo->query("DELETE FROM co_scadenziario WHERE id='".$id_record."'");
|
||||
flash()->info(tr('Scadenza eliminata!'));
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
?>
|
||||
|
||||
<form action="" method="post" id="add-form">
|
||||
<input type="hidden" name="op" value="add">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="dir" value="<?php echo $dir ?>">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Tipo'); ?>", "name": "tipo", "required": 1, "values": "list=\"\":\"- Seleziona un'opzione -\", \"f24\":\"F24\", \"generico\":\"Scadenze generiche\"", "value": "" ]}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "date", "label": "<?php echo tr('Data scadenza'); ?>", "name": "data", "required": 1, "value": "-now-" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "<?php echo tr('Importo'); ?>", "name": "da_pagare", "required": 1, "value": "" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='row'>
|
||||
<div class='col-md-12'>
|
||||
{[ "type": "textarea", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='pull-right'>
|
||||
<button type='submit' class='btn btn-primary'><i class='fa fa-plus'></i> Aggiungi</button>
|
||||
</div>
|
||||
|
||||
<div class='clearfix'></div>
|
||||
|
||||
</form>
|
|
@ -16,20 +16,8 @@ if (empty($dbo->fetchArray('SELECT * FROM co_scadenziario'))) {
|
|||
<div class="row">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
|
||||
<button type="button" onclick="window.open('<?php echo Prints::getHref('Scadenzario', null, 'type=all'); ?>');" <?php echo $disabled; ?> class="btn btn-<?php echo $class; ?> btn-block btn-lg text-center"><i class="fa fa-print"></i> <?php echo tr('Stampa scadenzario'); ?></button>
|
||||
<button type="button" onclick="window.open('<?php echo Prints::getHref('Scadenzario', null, null); ?>');" <?php echo $disabled; ?> class="btn btn-<?php echo $class; ?> btn-block btn-lg text-center"><i class="fa fa-print"></i> <?php echo tr('Stampa scadenzario'); ?></button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<!-- STAMPE SINGOLE -->
|
||||
<div class="row">
|
||||
<div class="col-md-2 col-md-offset-4">
|
||||
<button type="button" onclick="window.open('<?php echo Prints::getHref('Scadenzario', null, 'type=clienti'); ?>');" <?php echo $disabled; ?> class="btn btn-<?php echo $class; ?> btn-block"><i class="fa fa-print"></i> <?php echo tr('Scadenzario clienti'); ?></button>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<button type="button" onclick="window.open('<?php echo Prints::getHref('Scadenzario', null, 'type=fornitori'); ?>');" <?php echo $disabled; ?> class="btn btn-<?php echo $class; ?> btn-block"><i class="fa fa-print"></i> <?php echo tr('Scadenzario fornitori'); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
|
|
@ -34,7 +34,22 @@ if ($rs[0]['dir'] == 'entrata') {
|
|||
'.Modules::link('Anagrafiche', $rs[0]['idanagrafica'], $rs[0]['ragione_sociale']).'
|
||||
</td>
|
||||
</tr>';
|
||||
} else {
|
||||
echo '
|
||||
<tr>
|
||||
<th>'.tr('Documento').':</th>
|
||||
<td>'.$rs[0]['descrizione'].'</td>
|
||||
</tr>';
|
||||
echo '
|
||||
<tr>
|
||||
<th>'.tr('Numero').':</th>
|
||||
<td>'.$numero.'</td>
|
||||
</tr>';
|
||||
echo '
|
||||
<tr>
|
||||
<th>'.tr('Data').':</th>
|
||||
<td>'.Translator::dateToLocale($rs[0]['data']).'</td>
|
||||
</tr>';
|
||||
} else if ($rs[0]['dir'] == 'uscita') {
|
||||
$dir = 'uscita';
|
||||
$modulo = 'Fatture di acquisto';
|
||||
echo "
|
||||
|
@ -42,23 +57,30 @@ if ($rs[0]['dir'] == 'entrata') {
|
|||
<th width='120'>".tr('Fornitore').':</th>
|
||||
<td>'.$rs[0]['ragione_sociale'].'</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
echo '
|
||||
echo '
|
||||
<tr>
|
||||
<th>'.tr('Documento').':</th>
|
||||
<td>'.$rs[0]['descrizione'].'</td>
|
||||
</tr>';
|
||||
echo '
|
||||
echo '
|
||||
<tr>
|
||||
<th>'.tr('Numero').':</th>
|
||||
<td>'.$numero.'</td>
|
||||
</tr>';
|
||||
echo '
|
||||
echo '
|
||||
<tr>
|
||||
<th>'.tr('Data').':</th>
|
||||
<td>'.Translator::dateToLocale($rs[0]['data']).'</td>
|
||||
</tr>';
|
||||
}else{
|
||||
$rs = $dbo->fetchArray("SELECT * FROM co_scadenziario WHERE id='".$id_record."'");
|
||||
echo "
|
||||
<tr>
|
||||
<th width='120'>".tr('Descrizione').':</th>
|
||||
<td><input type="text" class="form-control" name="descrizione" value="'.$rs[0]['descrizione'].'"></td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</table>
|
||||
|
||||
|
@ -77,7 +99,12 @@ echo '
|
|||
$totale_da_pagare = 0;
|
||||
$totale_pagato = 0;
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento = (SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).') ORDER BY scadenza ASC');
|
||||
//Scelgo la query in base al segmento
|
||||
if($record['iddocumento']!=0){
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento = (SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).') ORDER BY scadenza ASC');
|
||||
}else{
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE id='.prepare($id_record).' ORDER BY scadenza ASC');
|
||||
}
|
||||
|
||||
for ($i = 0; $i < count($rs); ++$i) {
|
||||
if ($rs[$i]['da_pagare'] == $rs[$i]['pagato']) {
|
||||
|
@ -129,7 +156,7 @@ echo '
|
|||
</table>
|
||||
|
||||
<div class='pull-right'>
|
||||
<a onclick="launch_modal( 'Aggiungi prima nota', '<?php echo $rootdir; ?>/add.php?id_module=<?php echo Modules::get('Prima nota')['id']; ?>&iddocumento=<?php echo $record['iddocumento']; ?>&dir=<?php echo $dir; ?>', 1 );" class="btn btn-sm btn-primary"><i class="fa fa-euro"></i> <?php echo tr('Aggiungi prima nota...'); ?></a>
|
||||
<a onclick="launch_modal( 'Registra contabile pagamento', '<?php echo $rootdir; ?>/add.php?id_module=<?php echo Modules::get('Prima nota')['id']; ?>&iddocumento=<?php echo $record['iddocumento']; ?>&dir=<?php echo $dir; ?>', 1 );" class="btn btn-sm btn-primary"><i class="fa fa-euro"></i> <?php echo tr('Registra contabile pagamento...'); ?></a>
|
||||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
@ -153,10 +180,27 @@ echo '
|
|||
|
||||
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
||||
|
||||
<?php
|
||||
if($records[0]['iddocumento']==0){
|
||||
?>
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
</a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<script>
|
||||
$(document).ready( function(){
|
||||
totale_ok();
|
||||
|
||||
<?php
|
||||
if($record['iddocumento']!=0){
|
||||
?>
|
||||
$('input[name*=scadenza]').keyup( function(){ totale_ok(); } );
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
});
|
||||
|
||||
function totale_ok(){
|
||||
|
|
|
@ -13,19 +13,11 @@ $body = file_get_contents($docroot.'/templates/scadenzario/scadenzario_body.html
|
|||
|
||||
include_once $docroot.'/templates/pdfgen_variables.php';
|
||||
|
||||
/*
|
||||
Dati scadenzario
|
||||
*/
|
||||
if ($_GET['type'] == 'clienti') {
|
||||
$titolo = 'Scadenzario clienti';
|
||||
$add_where = "AND co_tipidocumento.dir='entrata'";
|
||||
} elseif ($_GET['type'] == 'fornitori') {
|
||||
$titolo = 'Scadenzario fornitori';
|
||||
$add_where = "AND co_tipidocumento.dir='uscita'";
|
||||
} else {
|
||||
$titolo = 'Scadenzario';
|
||||
$add_where = '';
|
||||
}
|
||||
//Filtro in base al segmento
|
||||
$id_segment = $_SESSION['module_18']['id_segment'];
|
||||
$rs_segment = $dbo->fetchArray("SELECT * FROM zz_segments WHERE id=".prepare($id_segment));
|
||||
|
||||
$add_where = "AND ".$rs_segment[0]['clause'];
|
||||
|
||||
$body .= '<h3>'.$titolo.' dal '.Translator::dateToLocale($date_start).' al '.Translator::dateToLocale($date_end)."</h3>\n";
|
||||
$body .= "<table class=\"table_values\" cellspacing=\"0\" border=\"0\" cellpadding=\"0\" style=\"table-layout:fixed; border-color:#aaa;\">\n";
|
||||
|
|
|
@ -57,3 +57,11 @@ foreach ($files as $key => $value) {
|
|||
}
|
||||
|
||||
delete($files);
|
||||
|
||||
|
||||
//Calcolo la descrizione per il nuovo campo descrizione in scadenzario
|
||||
$rs = $dbo->fetchArray("SELECT * FROM co_scadenziario");
|
||||
|
||||
for($i=0;$i<sizeof($rs);$i++){
|
||||
$dbo->query("UPDATE co_scadenziario SET descrizione=(SELECT CONCAT(co_tipidocumento.descrizione, CONCAT(' numero ', IF(numero_esterno!='', numero_esterno, numero))) FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='".$rs[$i]['iddocumento']."') WHERE co_scadenziario.id='".$rs[$i]['id']."'");
|
||||
}
|
|
@ -258,3 +258,11 @@ UPDATE `co_documenti` SET `data_stato_fe` = NULL WHERE `data_stato_fe` = '0000-0
|
|||
|
||||
-- Rimozione tasto di stampa scadenzario totale da dentro la scadenza
|
||||
UPDATE `zz_prints` SET `is_record` = 0 WHERE `name` = 'Scadenzario';
|
||||
|
||||
ALTER TABLE co_scadenziario ADD `descrizione` TEXT NOT NULL AFTER `tipo`;
|
||||
|
||||
INSERT INTO `zz_segments` (`id`, `id_module`, `name`, `clause`, `position`, `pattern`, `note`, `predefined`, `predefined_accredito`, `predefined_addebito`, `is_fiscale`) VALUES (NULL, (SELECT id FROM zz_modules WHERE `name`='Scadenzario'), 'Scadenzario generico', 'co_scadenziario.tipo="generico"', 'WHR', '####', '', 0, 0, 0, 0), (NULL, (SELECT id FROM zz_modules WHERE `name`='Scadenzario'), 'Scadenzario F24', 'co_scadenziario.tipo="f24"', 'WHR', '####', '', 0, 0, 0, 0);
|
||||
|
||||
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM (`co_scadenziario` LEFT JOIN (((`co_documenti` LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`) LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`) LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`) ON `co_scadenziario`.`iddocumento` = `co_documenti`.`id`) LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` WHERE 1=1 HAVING 2=2 AND (ABS(`pagato_reale`) < ABS(`da_pagare`) AND IF(`co_statidocumento`.`descrizione` IS NOT NULL, `co_statidocumento`.`descrizione` IN(\'Emessa\',\'Parzialmente pagato\'), 3=3)) ORDER BY `scadenza` ASC' WHERE `zz_modules`.`name` = 'Scadenzario';
|
||||
|
||||
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES (NULL, (SELECT id FROM zz_modules WHERE `name`='Scadenzario'), 'Descrizione scadenza', 'co_scadenziario.descrizione', 1, 1, 0, 0, '', '', 1, 0, 0);
|
Loading…
Reference in New Issue