This commit is contained in:
Thomas Zilio 2019-01-06 14:23:03 +01:00
parent 1f289dd8c9
commit 072c7b37f9
12 changed files with 80 additions and 80 deletions

View File

@ -212,6 +212,21 @@ abstract class Row extends Description
return parent::save($options); return parent::save($options);
} }
public function aliquota()
{
return $this->belongsTo(Aliquota::class, 'idiva');
}
public function rivalsa()
{
return $this->belongsTo(RivalsaINPS::class, 'idrivalsainps');
}
public function ritenuta()
{
return $this->belongsTo(RitenutaAcconto::class, 'idritenutaacconto');
}
protected static function boot($bypass = false) protected static function boot($bypass = false)
{ {
parent::boot(true); parent::boot(true);
@ -277,19 +292,4 @@ abstract class Row extends Description
{ {
$this->attributes['sconto'] = $this->sconto; $this->attributes['sconto'] = $this->sconto;
} }
public function aliquota()
{
return $this->belongsTo(Aliquota::class, 'idiva');
}
public function rivalsa()
{
return $this->belongsTo(RivalsaINPS::class, 'idrivalsainps');
}
public function ritenuta()
{
return $this->belongsTo(RitenutaAcconto::class, 'idritenutaacconto');
}
} }

View File

@ -26,24 +26,6 @@ abstract class Document extends Model
abstract public function scontoGlobale(); abstract public function scontoGlobale();
/**
* Calcola la somma degli attributi indicati come parametri.
* Il metodo **non** deve essere adattato per ulteriori funzionalità: deve esclusivamente calcolare la somma richiesta in modo esplicito dagli argomenti.
*
* @param mixed ...$args
*
* @return float
*/
protected function calcola(...$args)
{
$result = 0;
foreach ($args as $arg) {
$result += $this->getRigheContabili()->sum($arg);
}
return $this->round($result);
}
/** /**
* Calcola l'imponibile della fattura. * Calcola l'imponibile della fattura.
* *
@ -154,6 +136,24 @@ abstract class Document extends Model
return $this->calcola('guadagno'); return $this->calcola('guadagno');
} }
/**
* Calcola la somma degli attributi indicati come parametri.
* Il metodo **non** deve essere adattato per ulteriori funzionalità: deve esclusivamente calcolare la somma richiesta in modo esplicito dagli argomenti.
*
* @param mixed ...$args
*
* @return float
*/
protected function calcola(...$args)
{
$result = 0;
foreach ($args as $arg) {
$result += $this->getRigheContabili()->sum($arg);
}
return $this->round($result);
}
/** /**
* Restituisce la collezione di righe e articoli con valori rilevanti per i conti. * Restituisce la collezione di righe e articoli con valori rilevanti per i conti.
* *

View File

@ -25,12 +25,12 @@ switch (post('op')) {
$sede->email = post('email'); $sede->email = post('email');
$sede->save(); $sede->save();
if (!empty(post('nome')) and !empty(post('cognome')) ){ if (!empty(post('nome')) and !empty(post('cognome'))) {
$ragione_sociale = post('nome').' '.post('cognome'); $ragione_sociale = post('nome').' '.post('cognome');
}else{ } else {
$ragione_sociale = post('ragione_sociale'); $ragione_sociale = post('ragione_sociale');
} }
// Informazioni sull'anagrafica // Informazioni sull'anagrafica
$anagrafica->codice = post('codice'); $anagrafica->codice = post('codice');
$anagrafica->tipo = post('tipo'); $anagrafica->tipo = post('tipo');
@ -68,7 +68,7 @@ switch (post('op')) {
$anagrafica->idagente = post('idagente'); $anagrafica->idagente = post('idagente');
$anagrafica->idrelazione = post('idrelazione'); $anagrafica->idrelazione = post('idrelazione');
$anagrafica->sitoweb = post('sitoweb'); $anagrafica->sitoweb = post('sitoweb');
$anagrafica->nome = post('nome'); $anagrafica->nome = post('nome');
$anagrafica->cognome = post('cognome'); $anagrafica->cognome = post('cognome');
$anagrafica->iscrizione_tribunale = post('iscrizione_tribunale'); $anagrafica->iscrizione_tribunale = post('iscrizione_tribunale');
$anagrafica->cciaa = post('cciaa'); $anagrafica->cciaa = post('cciaa');
@ -127,7 +127,7 @@ switch (post('op')) {
case 'add': case 'add':
$idtipoanagrafica = post('idtipoanagrafica'); $idtipoanagrafica = post('idtipoanagrafica');
$ragione_sociale = post('ragione_sociale'); $ragione_sociale = post('ragione_sociale');
$anagrafica = Anagrafica::build($ragione_sociale, $idtipoanagrafica); $anagrafica = Anagrafica::build($ragione_sociale, $idtipoanagrafica);
$id_record = $anagrafica->id; $id_record = $anagrafica->id;
@ -145,9 +145,9 @@ switch (post('op')) {
} }
$idagente = ($agente_is_logged && in_array($id_cliente, $idtipoanagrafica)) ? $user['idanagrafica'] : 0; $idagente = ($agente_is_logged && in_array($id_cliente, $idtipoanagrafica)) ? $user['idanagrafica'] : 0;
$anagrafica->nome = post('nome'); $anagrafica->nome = post('nome');
$anagrafica->cognome = post('cognome'); $anagrafica->cognome = post('cognome');
$anagrafica->partita_iva = post('piva'); $anagrafica->partita_iva = post('piva');
$anagrafica->codice_fiscale = post('codice_fiscale'); $anagrafica->codice_fiscale = post('codice_fiscale');
$anagrafica->indirizzo = post('indirizzo'); $anagrafica->indirizzo = post('indirizzo');

View File

@ -32,7 +32,6 @@ echo '
</div> </div>
</div>'; </div>';
echo ' echo '
<div class="box box-info collapsed-box"> <div class="box box-info collapsed-box">
<div class="box-header with-border"> <div class="box-header with-border">

View File

@ -95,8 +95,8 @@ if (!$cliente) {
<div class="col-md-2"> <div class="col-md-2">
<?php <?php
$help_text = '<b>Attenzione</b>: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>'.((in_array($id_azienda, $tipi_anagrafica)) ? '<p>N.B. <b>non è necessario</b> comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell\'Agenzia Entrate (SDI)</p>' : '').''; $help_text = '<b>Attenzione</b>: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>'.((in_array($id_azienda, $tipi_anagrafica)) ? '<p>N.B. <b>non è necessario</b> comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell\'Agenzia Entrate (SDI)</p>' : '').'';
?> ?>
{[ "type": "text", "label": "<?php echo ($record['tipo'] == 'Ente pubblico') ? tr('Codice unico ufficio') : tr('Codice destinatario'); ?>", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": <?php echo ($record['tipo'] == 'Ente pubblico') ? '6' : '7'; ?>, "extra": "<?php echo (empty($record['tipo']) or ($record['tipo'] == 'Privato')) ? 'disabled' : ''; ?>", "help": "<?php echo tr($help_text); ?>", "readonly": "<?php echo intval($anagrafica->sedeLegale->nazione->iso2 != 'IT'); ?>" ]} {[ "type": "text", "label": "<?php echo ($record['tipo'] == 'Ente pubblico') ? tr('Codice unico ufficio') : tr('Codice destinatario'); ?>", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": <?php echo ($record['tipo'] == 'Ente pubblico') ? '6' : '7'; ?>, "extra": "<?php echo (empty($record['tipo']) or ($record['tipo'] == 'Privato')) ? 'disabled' : ''; ?>", "help": "<?php echo tr($help_text); ?>", "readonly": "<?php echo intval($anagrafica->sedeLegale->nazione->iso2 != 'IT'); ?>" ]}
</div> </div>
@ -449,7 +449,7 @@ if (!empty($google)) {
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Abilitare lo split payment'); ?>", "name": "split_payment", "value": "$split_payment$", "help": "<?php echo tr('Lo split payment è disponibile per le anagrafiche di tipologia \"Ente pubblico\" o \"Azienda\" ed <strong>&egrave; obbligatorio</strong> per:<ul><li>Stato;</li><li>organi statali ancorch&eacute; dotati di personalit&agrave; giuridica;</li><li>enti pubblici territoriali e dei consorzi tra essi costituiti;</li><li>Camere di Commercio;</li><li>Istituti universitari;</li><li>ASL e degli enti ospedalieri;</li><li>enti pubblici di ricovero e cura aventi prevalente carattere scientifico;</li><li>enti pubblici di assistenza e beneficienza;</li><li>enti di previdenza;</li><li>consorzi tra questi costituiti.</li></ul>'); ?>", "placeholder": "<?php echo tr('Split payment'); ?>", "extra" : "<?php echo ($record['tipo'] == 'Ente pubblico' or $record['tipo'] == 'Azienda') ? '' : 'disabled'; ?>" ]} {[ "type": "checkbox", "label": "<?php echo tr('Abilitare lo split payment'); ?>", "name": "split_payment", "value": "$split_payment$", "help": "<?php echo tr('Lo split payment è disponibile per le anagrafiche di tipologia \"Ente pubblico\" o \"Azienda\" ed <strong>&egrave; obbligatorio</strong> per:<ul><li>Stato;</li><li>organi statali ancorch&eacute; dotati di personalit&agrave; giuridica;</li><li>enti pubblici territoriali e dei consorzi tra essi costituiti;</li><li>Camere di Commercio;</li><li>Istituti universitari;</li><li>ASL e degli enti ospedalieri;</li><li>enti pubblici di ricovero e cura aventi prevalente carattere scientifico;</li><li>enti pubblici di assistenza e beneficienza;</li><li>enti di previdenza;</li><li>consorzi tra questi costituiti.</li></ul>'); ?>", "placeholder": "<?php echo tr('Split payment'); ?>", "extra" : "<?php echo ($record['tipo'] == 'Ente pubblico' or $record['tipo'] == 'Azienda') ? '' : 'disabled'; ?>" ]}
</div> </div>
<div class="col-md-9"> <div class="col-md-9">

View File

@ -134,10 +134,10 @@ echo '
<div class="box-body">'; <div class="box-body">';
// Fatture di vendita // Fatture di vendita
$totale_fatture_vendita = 0; $totale_fatture_vendita = 0;
$fatture = database()->fetchArray("SELECT id FROM co_documenti WHERE idanagrafica=".prepare($id_record)); $fatture = database()->fetchArray('SELECT id FROM co_documenti WHERE idanagrafica='.prepare($id_record));
foreach ($fatture as $fattura) { foreach ($fatture as $fattura) {
$totale_fatture_vendita = sum( $totale_fatture_vendita, Modules\Fatture\Fattura::find( $fattura['id'] )->netto ); $totale_fatture_vendita = sum($totale_fatture_vendita, Modules\Fatture\Fattura::find($fattura['id'])->netto);
} }
$data_start = strtotime('now'); $data_start = strtotime('now');

View File

@ -15,7 +15,7 @@ class Articolo extends Article
/** /**
* Crea un nuovo articolo collegato ad una ddt. * Crea un nuovo articolo collegato ad una ddt.
* *
* @param DDT $ddt * @param DDT $ddt
* @param Original $articolo * @param Original $articolo
* *
* @return self * @return self

View File

@ -92,20 +92,18 @@ switch (post('op')) {
//Creo il modello di prima nota //Creo il modello di prima nota
if (!empty(post('crea_modello'))) { if (!empty(post('crea_modello'))) {
if (empty(post('idmastrino'))) {
if (empty(post('idmastrino'))){ $idmastrino = get_new_idmastrino('co_movimenti_modelli');
$idmastrino = get_new_idmastrino('co_movimenti_modelli'); } else {
}else{ $dbo->query('DELETE FROM co_movimenti_modelli WHERE idmastrino='.prepare(post('idmastrino')));
$dbo->query('DELETE FROM co_movimenti_modelli WHERE idmastrino='.prepare(post('idmastrino'))); $idmastrino = post('idmastrino');
$idmastrino = post('idmastrino'); }
}
for ($i = 0; $i < sizeof(post('idconto')); ++$i) {
for ($i = 0; $i < sizeof(post('idconto')); ++$i) { $idconto = post('idconto')[$i];
$idconto = post('idconto')[$i]; $query = 'INSERT INTO co_movimenti_modelli(idmastrino, descrizione, idconto) VALUES('.prepare($idmastrino).', '.prepare($descrizione).', '.prepare($idconto).')';
$query = 'INSERT INTO co_movimenti_modelli(idmastrino, descrizione, idconto) VALUES('.prepare($idmastrino).', '.prepare($descrizione).', '.prepare($idconto).')'; $dbo->query($query);
$dbo->query($query); }
}
} }
break; break;

View File

@ -351,9 +351,11 @@ include_once __DIR__.'/../../core.php';
var causale = $(this).find('option:selected').text(); var causale = $(this).find('option:selected').text();
//aggiornava erroneamente anche la causale ed eventuale numero di fattura e data //aggiornava erroneamente anche la causale ed eventuale numero di fattura e data
<?php if (empty($iddocumento)) {?> <?php if (empty($iddocumento)) {
?>
$('#bs-popup #desc').val(causale); $('#bs-popup #desc').val(causale);
<?php } ?> <?php
} ?>
$.get('<?php echo $rootdir; ?>/ajax_complete.php?op=get_conti&idmastrino='+idmastrino, function(data){ $.get('<?php echo $rootdir; ?>/ajax_complete.php?op=get_conti&idmastrino='+idmastrino, function(data){
var conti = data.split(','); var conti = data.split(',');

View File

@ -637,8 +637,6 @@ class FatturaElettronica
return $this->intermediario; return $this->intermediario;
} }
/** /**
* Restituisce le informazioni riguardanti un anagrafica sulla base dell'identificativo fornito. * Restituisce le informazioni riguardanti un anagrafica sulla base dell'identificativo fornito.
* *
@ -1077,12 +1075,11 @@ class FatturaElettronica
return $result; return $result;
} }
/** /**
* Restituisce l'array responsabile per la generazione del tag TerzoIntermediarioOSoggettoEmittente (1.5). * Restituisce l'array responsabile per la generazione del tag TerzoIntermediarioOSoggettoEmittente (1.5).
* *
* @return array * @return array
*/ */
protected static function getTerzoIntermediarioOSoggettoEmittente($fattura) protected static function getTerzoIntermediarioOSoggettoEmittente($fattura)
{ {
$intermediario = $fattura->getIntermediario(); $intermediario = $fattura->getIntermediario();
@ -1094,7 +1091,6 @@ class FatturaElettronica
return $result; return $result;
} }
/** /**
* Restituisce l'array responsabile per la generazione del tag DatiGeneraliDocumento. * Restituisce l'array responsabile per la generazione del tag DatiGeneraliDocumento.
* *

View File

@ -30,8 +30,8 @@ echo '
<h4>'. <h4>'.
$ragione_sociale.'<br> $ragione_sociale.'<br>
<small> <small>
'.( !empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'<br>') : '' ).' '.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'<br>') : '').'
'.( !empty($partita_iva) ? (tr('Partita IVA').': '.$partita_iva.'<br>') : '' ).' '.(!empty($partita_iva) ? (tr('Partita IVA').': '.$partita_iva.'<br>') : '').'
'.$cap.' '.$citta.' ('.$provincia.')<br> '.$cap.' '.$citta.' ('.$provincia.')<br>
</small> </small>
</h4><br>'; </h4><br>';
@ -41,9 +41,14 @@ $pagamenti = $fattura_pa->getBody()['DatiPagamento'];
$metodi = $pagamenti['DettaglioPagamento']; $metodi = $pagamenti['DettaglioPagamento'];
$metodi = isset($metodi[0]) ? $metodi : [$metodi]; $metodi = isset($metodi[0]) ? $metodi : [$metodi];
$codice_modalita_pagamento = $metodi[0]['ModalitaPagamento'];
// prc '.($pagamenti['CondizioniPagamento'] == 'TP01' ? '!' : '').'= 100 AND // prc '.($pagamenti['CondizioniPagamento'] == 'TP01' ? '!' : '').'= 100 AND
$query = 'SELECT id, descrizione FROM co_pagamenti WHERE codice_modalita_pagamento_fe = '.prepare($metodi[0]['ModalitaPagamento']).' GROUP BY descrizione ORDER BY descrizione ASC'; $query = 'SELECT id, descrizione FROM co_pagamenti';
if (!empty($codice_modalita_pagamento)) {
$query .= ' WHERE codice_modalita_pagamento_fe = '.prepare($codice_modalita_pagamento);
}
$query .= ' GROUP BY descrizione ORDER BY descrizione ASC';
echo ' echo '
<h4>'.tr('Pagamento').'</h4> <h4>'.tr('Pagamento').'</h4>

View File

@ -77,7 +77,7 @@ class FileManager implements ManagerInterface
</tr>'; </tr>';
foreach ($rs as $r) { foreach ($rs as $r) {
$extension = pathinfo($r['original'])['extension']; $extension = pathinfo($r['original'])['extension'];
$result .= ' $result .= '
<tr> <tr>
<td align="left"> <td align="left">
@ -112,7 +112,7 @@ class FileManager implements ManagerInterface
<button class="btn btn-xs btn-info" data-target="#bs-popup2" type="button" data-title="'.prepareToField($r['name']).' <small><em>('.$r['filename'].')</em></small>" data-href="#view-'.$r['id'].'"> <button class="btn btn-xs btn-info" data-target="#bs-popup2" type="button" data-title="'.prepareToField($r['name']).' <small><em>('.$r['filename'].')</em></small>" data-href="#view-'.$r['id'].'">
<i class="fa fa-eye"></i> <i class="fa fa-eye"></i>
</button>'; </button>';
} elseif (strtolower($extension) == 'xml' ) { } elseif (strtolower($extension) == 'xml') {
$result .= ' $result .= '
<a class="btn btn-xs btn-info" href="'.ROOTDIR.'/plugins/exportFE/view.php?id_record='.$r['id'].'" target="_blank"> <a class="btn btn-xs btn-info" href="'.ROOTDIR.'/plugins/exportFE/view.php?id_record='.$r['id'].'" target="_blank">
<i class="fa fa-eye"></i> <i class="fa fa-eye"></i>