Fix #415
This commit is contained in:
parent
1f289dd8c9
commit
072c7b37f9
|
@ -212,6 +212,21 @@ abstract class Row extends Description
|
|||
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)
|
||||
{
|
||||
parent::boot(true);
|
||||
|
@ -277,19 +292,4 @@ abstract class Row extends Description
|
|||
{
|
||||
$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');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,24 +26,6 @@ abstract class Document extends Model
|
|||
|
||||
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.
|
||||
*
|
||||
|
@ -154,6 +136,24 @@ abstract class Document extends Model
|
|||
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.
|
||||
*
|
||||
|
|
|
@ -25,12 +25,12 @@ switch (post('op')) {
|
|||
$sede->email = post('email');
|
||||
|
||||
$sede->save();
|
||||
|
||||
if (!empty(post('nome')) and !empty(post('cognome')) ){
|
||||
$ragione_sociale = post('nome').' '.post('cognome');
|
||||
}else{
|
||||
$ragione_sociale = post('ragione_sociale');
|
||||
}
|
||||
|
||||
if (!empty(post('nome')) and !empty(post('cognome'))) {
|
||||
$ragione_sociale = post('nome').' '.post('cognome');
|
||||
} else {
|
||||
$ragione_sociale = post('ragione_sociale');
|
||||
}
|
||||
// Informazioni sull'anagrafica
|
||||
$anagrafica->codice = post('codice');
|
||||
$anagrafica->tipo = post('tipo');
|
||||
|
@ -68,7 +68,7 @@ switch (post('op')) {
|
|||
$anagrafica->idagente = post('idagente');
|
||||
$anagrafica->idrelazione = post('idrelazione');
|
||||
$anagrafica->sitoweb = post('sitoweb');
|
||||
$anagrafica->nome = post('nome');
|
||||
$anagrafica->nome = post('nome');
|
||||
$anagrafica->cognome = post('cognome');
|
||||
$anagrafica->iscrizione_tribunale = post('iscrizione_tribunale');
|
||||
$anagrafica->cciaa = post('cciaa');
|
||||
|
@ -127,7 +127,7 @@ switch (post('op')) {
|
|||
case 'add':
|
||||
$idtipoanagrafica = post('idtipoanagrafica');
|
||||
$ragione_sociale = post('ragione_sociale');
|
||||
|
||||
|
||||
$anagrafica = Anagrafica::build($ragione_sociale, $idtipoanagrafica);
|
||||
$id_record = $anagrafica->id;
|
||||
|
||||
|
@ -145,9 +145,9 @@ switch (post('op')) {
|
|||
}
|
||||
|
||||
$idagente = ($agente_is_logged && in_array($id_cliente, $idtipoanagrafica)) ? $user['idanagrafica'] : 0;
|
||||
|
||||
$anagrafica->nome = post('nome');
|
||||
$anagrafica->cognome = post('cognome');
|
||||
|
||||
$anagrafica->nome = post('nome');
|
||||
$anagrafica->cognome = post('cognome');
|
||||
$anagrafica->partita_iva = post('piva');
|
||||
$anagrafica->codice_fiscale = post('codice_fiscale');
|
||||
$anagrafica->indirizzo = post('indirizzo');
|
||||
|
|
|
@ -32,7 +32,6 @@ echo '
|
|||
</div>
|
||||
</div>';
|
||||
|
||||
|
||||
echo '
|
||||
<div class="box box-info collapsed-box">
|
||||
<div class="box-header with-border">
|
||||
|
|
|
@ -95,8 +95,8 @@ if (!$cliente) {
|
|||
|
||||
<div class="col-md-2">
|
||||
<?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'); ?>" ]}
|
||||
</div>
|
||||
|
||||
|
@ -449,7 +449,7 @@ if (!empty($google)) {
|
|||
<div class="row">
|
||||
|
||||
<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>è obbligatorio</strong> per:<ul><li>Stato;</li><li>organi statali ancorché dotati di personalità 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>è obbligatorio</strong> per:<ul><li>Stato;</li><li>organi statali ancorché dotati di personalità 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 class="col-md-9">
|
||||
|
|
|
@ -134,10 +134,10 @@ echo '
|
|||
<div class="box-body">';
|
||||
// Fatture di vendita
|
||||
$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) {
|
||||
$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');
|
||||
|
|
|
@ -15,7 +15,7 @@ class Articolo extends Article
|
|||
/**
|
||||
* Crea un nuovo articolo collegato ad una ddt.
|
||||
*
|
||||
* @param DDT $ddt
|
||||
* @param DDT $ddt
|
||||
* @param Original $articolo
|
||||
*
|
||||
* @return self
|
||||
|
|
|
@ -92,20 +92,18 @@ switch (post('op')) {
|
|||
//Creo il modello di prima nota
|
||||
|
||||
if (!empty(post('crea_modello'))) {
|
||||
|
||||
if (empty(post('idmastrino'))){
|
||||
$idmastrino = get_new_idmastrino('co_movimenti_modelli');
|
||||
}else{
|
||||
$dbo->query('DELETE FROM co_movimenti_modelli WHERE idmastrino='.prepare(post('idmastrino')));
|
||||
$idmastrino = post('idmastrino');
|
||||
}
|
||||
|
||||
for ($i = 0; $i < sizeof(post('idconto')); ++$i) {
|
||||
$idconto = post('idconto')[$i];
|
||||
$query = 'INSERT INTO co_movimenti_modelli(idmastrino, descrizione, idconto) VALUES('.prepare($idmastrino).', '.prepare($descrizione).', '.prepare($idconto).')';
|
||||
$dbo->query($query);
|
||||
}
|
||||
|
||||
if (empty(post('idmastrino'))) {
|
||||
$idmastrino = get_new_idmastrino('co_movimenti_modelli');
|
||||
} else {
|
||||
$dbo->query('DELETE FROM co_movimenti_modelli WHERE idmastrino='.prepare(post('idmastrino')));
|
||||
$idmastrino = post('idmastrino');
|
||||
}
|
||||
|
||||
for ($i = 0; $i < sizeof(post('idconto')); ++$i) {
|
||||
$idconto = post('idconto')[$i];
|
||||
$query = 'INSERT INTO co_movimenti_modelli(idmastrino, descrizione, idconto) VALUES('.prepare($idmastrino).', '.prepare($descrizione).', '.prepare($idconto).')';
|
||||
$dbo->query($query);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -351,9 +351,11 @@ include_once __DIR__.'/../../core.php';
|
|||
var causale = $(this).find('option:selected').text();
|
||||
|
||||
//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);
|
||||
<?php } ?>
|
||||
<?php
|
||||
} ?>
|
||||
|
||||
$.get('<?php echo $rootdir; ?>/ajax_complete.php?op=get_conti&idmastrino='+idmastrino, function(data){
|
||||
var conti = data.split(',');
|
||||
|
|
|
@ -637,8 +637,6 @@ class FatturaElettronica
|
|||
return $this->intermediario;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Restituisce le informazioni riguardanti un anagrafica sulla base dell'identificativo fornito.
|
||||
*
|
||||
|
@ -1077,12 +1075,11 @@ class FatturaElettronica
|
|||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Restituisce l'array responsabile per la generazione del tag TerzoIntermediarioOSoggettoEmittente (1.5).
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
* Restituisce l'array responsabile per la generazione del tag TerzoIntermediarioOSoggettoEmittente (1.5).
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected static function getTerzoIntermediarioOSoggettoEmittente($fattura)
|
||||
{
|
||||
$intermediario = $fattura->getIntermediario();
|
||||
|
@ -1094,7 +1091,6 @@ class FatturaElettronica
|
|||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Restituisce l'array responsabile per la generazione del tag DatiGeneraliDocumento.
|
||||
*
|
||||
|
|
|
@ -30,8 +30,8 @@ echo '
|
|||
<h4>'.
|
||||
$ragione_sociale.'<br>
|
||||
<small>
|
||||
'.( !empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'<br>') : '' ).'
|
||||
'.( !empty($partita_iva) ? (tr('Partita IVA').': '.$partita_iva.'<br>') : '' ).'
|
||||
'.(!empty($codice_fiscale) ? (tr('Codice Fiscale').': '.$codice_fiscale.'<br>') : '').'
|
||||
'.(!empty($partita_iva) ? (tr('Partita IVA').': '.$partita_iva.'<br>') : '').'
|
||||
'.$cap.' '.$citta.' ('.$provincia.')<br>
|
||||
</small>
|
||||
</h4><br>';
|
||||
|
@ -41,9 +41,14 @@ $pagamenti = $fattura_pa->getBody()['DatiPagamento'];
|
|||
|
||||
$metodi = $pagamenti['DettaglioPagamento'];
|
||||
$metodi = isset($metodi[0]) ? $metodi : [$metodi];
|
||||
$codice_modalita_pagamento = $metodi[0]['ModalitaPagamento'];
|
||||
|
||||
// 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 '
|
||||
<h4>'.tr('Pagamento').'</h4>
|
||||
|
|
|
@ -77,7 +77,7 @@ class FileManager implements ManagerInterface
|
|||
</tr>';
|
||||
|
||||
foreach ($rs as $r) {
|
||||
$extension = pathinfo($r['original'])['extension'];
|
||||
$extension = pathinfo($r['original'])['extension'];
|
||||
$result .= '
|
||||
<tr>
|
||||
<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'].'">
|
||||
<i class="fa fa-eye"></i>
|
||||
</button>';
|
||||
} elseif (strtolower($extension) == 'xml' ) {
|
||||
} elseif (strtolower($extension) == 'xml') {
|
||||
$result .= '
|
||||
<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>
|
||||
|
|
Loading…
Reference in New Issue