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);
}
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');
}
}

View File

@ -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.
*

View File

@ -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');

View File

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

View File

@ -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>&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 class="col-md-9">

View File

@ -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');

View File

@ -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

View File

@ -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;

View File

@ -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(',');

View File

@ -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.
*

View File

@ -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>

View File

@ -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>