Compare commits

...

5 Commits

Author SHA1 Message Date
MatteoPistorello 17bed5c5a9 Merge branch 'master' of https://github.com/devcode-it/openstamanager 2021-09-21 15:19:38 +02:00
MatteoPistorello ce5f1912dc Fix iva in creazione fattura da attività 2021-09-21 15:17:43 +02:00
Dasc3er 324607a116 Stile del codice 2021-09-21 11:50:17 +02:00
Dasc3er 17d5fd8df3 Correzioni minori stampa Preventivi 2021-09-21 11:46:05 +02:00
Dasc3er cbfec9fc3a Correzioni minori in impostazione Stato Preventivo e Contratto 2021-09-21 09:49:05 +02:00
13 changed files with 39 additions and 38 deletions

View File

@ -102,7 +102,6 @@ $operations['export-csv'] = [
],
];
if (App::debug() && $google) {
$operations['ricerca-coordinate'] = [
'text' => '<span><i class="fa fa-map"></i> '.tr('Ricerca coordinate').'</span>',

View File

@ -20,7 +20,6 @@
namespace Modules\Articoli\Export;
use Exporter\CSVExporter;
use Modules\Anagrafiche\Anagrafica;
use Modules\Articoli\Articolo;
/**

View File

@ -27,6 +27,7 @@ use Modules\Contratti\Components\Descrizione;
use Modules\Contratti\Components\Riga;
use Modules\Contratti\Components\Sconto;
use Modules\Contratti\Contratto;
use Modules\Contratti\Stato;
use Plugins\PianificazioneInterventi\Promemoria;
switch (post('op')) {
@ -130,7 +131,9 @@ switch (post('op')) {
case 'copy':
$new = $contratto->replicate();
$new->numero = Contratto::getNextNumero();
$new->stato = 'Bozza';
$stato = Stato::where('descrizione', '=', 'Bozza')->first();
$new->stato()->associate($stato);
$new->save();
$id_record = $new->id;
@ -349,13 +352,17 @@ $riga = $contratto->getRiga($type, $id_riga);
$diff = $contratto->data_conclusione->diffAsCarbonInterval($contratto->data_accettazione);
$new_contratto = $contratto->replicate();
$new_contratto->numero = Contratto::getNextNumero();
$new_contratto->idcontratto_prev = $contratto->id;
$new_contratto->data_accettazione = $contratto->data_conclusione->copy()->addDays(1);
$new_contratto->data_conclusione = $new_contratto->data_accettazione->copy()->add($diff);
$new_contratto->data_bozza = Carbon::now();
$new_contratto->stato = 'Bozza';
$stato = Stato::where('descrizione', '=', 'Bozza')->first();
$new_contratto->stato()->associate($stato);
$new_contratto->save();
$new_idcontratto = $new_contratto->id;

View File

@ -296,9 +296,4 @@ class Contratto extends Document
{
return $this->anagrafica->ragione_sociale;
}
public function setStatoAttribute($stato)
{
$this->idstato = Stato::where('descrizione', $stato)->first()['id'];
}
}

View File

@ -19,6 +19,8 @@
include_once __DIR__.'/../../core.php';
use Modules\Fatture\Fattura;
$module = Modules::get($id_module);
if ($module['name'] == 'Fatture di vendita') {
@ -29,9 +31,9 @@ if ($module['name'] == 'Fatture di vendita') {
$conti = 'conti-acquisti';
}
$info = $dbo->fetchOne('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($info['numero_esterno'] != '') ? $info['numero_esterno'] : $info['numero'];
$idanagrafica = $info['idanagrafica'];
$fattura = Fattura::find($id_record);
$numero = ($fattura->numero_esterno != '') ? $fattura->numero_esterno : $fattura->numero;
$idanagrafica = $fattura->idanagrafica;
$idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto');
@ -108,7 +110,7 @@ $options['id_ritenuta_acconto_predefined'] = $ritenuta_acconto['id_ritenuta_acco
echo App::internalLoad('conti.php', [], $options);
// Leggo l'iva predefinita dall'articolo e se non c'è leggo quella predefinita generica
$idiva = $idiva ?: setting('Iva predefinita');
$idiva = $fattura->anagrafica->idiva_vendite ?: setting('Iva predefinita');
// Iva
echo '

View File

@ -85,7 +85,6 @@ switch (post('op')) {
$dir = 'entrata';
$tipo_documento = Tipo::where('id', post('idtipodocumento'))->first();
$id_iva = setting('Iva predefinita');
$id_conto = setting('Conto predefinito fatture di vendita');
$accodare = post('accodare');
@ -96,9 +95,11 @@ switch (post('op')) {
// Lettura righe selezionate
foreach ($interventi as $intervento) {
$id_anagrafica = $intervento['idanagrafica'];
$id_documento = $id_documento_cliente[$id_anagrafica];
$anagrafica = Anagrafica::find($id_anagrafica);
$id_iva = $anagrafica->idiva_vendite ?: setting('Iva predefinita');
// Se non c'è già una fattura appena creata per questo cliente, creo una fattura nuova
if (empty($id_documento)) {
if (!empty($accodare)) {
@ -109,7 +110,6 @@ switch (post('op')) {
}
if (empty($id_documento)) {
$anagrafica = Anagrafica::find($id_anagrafica);
$fattura = Fattura::build($anagrafica, $tipo_documento, $data, $id_segment);
$id_documento = $fattura->id;

View File

@ -143,9 +143,6 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion
$fattura = Fattura::find($id_fattura);
$intervento = Intervento::find($id_intervento);
if (!empty($fattura->anagrafica->idiva_vendite)) {
$id_iva = $fattura->anagrafica->idiva_vendite;
}
$data = $intervento->fine;
$codice = $intervento->codice;

View File

@ -27,6 +27,7 @@ use Modules\Preventivi\Components\Descrizione;
use Modules\Preventivi\Components\Riga;
use Modules\Preventivi\Components\Sconto;
use Modules\Preventivi\Preventivo;
use Modules\Preventivi\Stato;
use Modules\TipiIntervento\Tipo as TipoSessione;
switch (post('op')) {
@ -98,7 +99,10 @@ switch (post('op')) {
$new->numero = Preventivo::getNextNumero(Carbon::now());
$new->data_bozza = Carbon::now();
$new->data_conclusione = Carbon::now()->addMonth();
$new->stato = 'Bozza';
$stato_preventivo = Stato::where('descrizione', '=', 'Bozza')->first();
$new->stato()->associate($stato_preventivo);
$new->save();
$new->master_revision = $new->id;
@ -367,7 +371,10 @@ switch (post('op')) {
// Copia del preventivo
$new = $preventivo->replicate();
$new->stato = 'Bozza';
$stato_preventivo = Stato::where('descrizione', '=', 'Bozza')->first();
$new->stato()->associate($stato_preventivo);
$new->save();
$new->default_revision = 1;

View File

@ -330,9 +330,4 @@ class Preventivo extends Document
{
return Preventivo::selectRaw('MAX(numero_revision) AS revisione')->where('master_revision', $this->master_revision)->get()->toArray()[0]['revisione'];
}
public function setStatoAttribute($stato)
{
$this->idstato = Stato::where('descrizione', $stato)->first()['id'];
}
}

View File

@ -229,9 +229,9 @@ class FatturaOrdinaria extends FatturaElettronica
// Determina il tipo di sconto in caso di sconti misti UNT e PRC
foreach ($sconti as $sconto) {
$tipo_sconto = !empty($sconto['Importo']) ? 'UNT' : 'PRC';
if(!empty($tipo) && $tipo_sconto!=$tipo){
if (!empty($tipo) && $tipo_sconto != $tipo) {
$tipo = 'UNT';
} else{
} else {
$tipo = $tipo_sconto;
}
}
@ -251,17 +251,17 @@ class FatturaOrdinaria extends FatturaElettronica
'qta' => $obj->qta,
'cumulativo' => false,
]);
if($tipo == 'PRC'){
if ($tipo == 'PRC') {
$tot_sconto = $sconto_calcolato * 100 / $obj->imponibile;
} else {
$tot_sconto = $sconto_calcolato;
}
} else{
} else {
$tot_sconto = $sconto_riga;
}
$sconto_unitario += $tot_sconto;
$sconto_unitario += $tot_sconto;
}
$obj->setSconto($sconto_unitario, $tipo);

View File

@ -74,7 +74,7 @@ echo '
$counter = 0;
while (!empty($id_contratto_precedente) && $counter < 50) {
$counter++;
++$counter;
$rs = $dbo->fetchArray('SELECT nome, numero, data_accettazione, data_conclusione, budget, idcontratto_prev FROM co_contratti WHERE id='.prepare($id_contratto_precedente));
echo '

View File

@ -138,7 +138,7 @@ class Intervento extends Resource implements UpdateInterface
// Fix id_cliente per Intervento in caso di generazione da zero
if ($risorsa instanceof Interventi && !empty($this->response['cliente'][$id]) && !empty($this->response['cliente'][$id]['id'])) {
$record['id_cliente'] = $this->response['cliente'][$id]['id'];
} elseif (!($risorsa instanceof Clienti) && !empty($this->response['intervento'][0]) && !empty($this->response['intervento'][0]['id'])){
} elseif (!($risorsa instanceof Clienti) && !empty($this->response['intervento'][0]) && !empty($this->response['intervento'][0]['id'])) {
$record['id_intervento'] = $this->response['intervento'][0]['id'];
}

View File

@ -25,12 +25,12 @@ include_once __DIR__.'/../../core.php';
$anagrafica = Anagrafica::find($documento['idanagrafica']);
$pagamento = $dbo->fetchOne('SELECT * FROM co_pagamenti WHERE id = '.prepare($documento['idpagamento']));
//Verifico se c'è una banca predefinita per il mio cliente
// Verifico se c'è una banca predefinita per il mio cliente
if (!empty($anagrafica->idbanca_vendite)) {
$banca = $dbo->fetchOne('SELECT co_banche.nome, co_banche.iban, co_banche.bic FROM co_banche INNER JOIN co_pianodeiconti3 ON co_banche.id_pianodeiconti3 = co_pianodeiconti3.id WHERE co_pianodeiconti3.id = '.prepare($pagamento['idconto_vendite']).' AND co_banche.id ='.prepare($anagrafica->idbanca_vendite));
$banca = $dbo->fetchOne('SELECT co_banche.nome, co_banche.iban, co_banche.bic FROM co_banche WHERE co_banche.id_pianodeiconti3 = '.prepare($pagamento['idconto_vendite']).' AND co_banche.id_anagrafica = '.prepare($anagrafica->id).' AND co_banche.id ='.prepare($anagrafica->idbanca_vendite));
} elseif (!empty($pagamento['idconto_vendite'])) {
//Altrimenti prendo quella associata la metodo di pagamento selezionato
$banca = $dbo->fetchOne('SELECT co_banche.nome, co_banche.iban, co_banche.bic FROM co_banche INNER JOIN co_pianodeiconti3 ON co_banche.id_pianodeiconti3 = co_pianodeiconti3.id WHERE co_pianodeiconti3.id = '.prepare($pagamento['idconto_vendite']).' AND co_banche.deleted_at IS NULL');
// Altrimenti prendo quella associata la metodo di pagamento selezionato
$banca = $dbo->fetchOne('SELECT co_banche.nome, co_banche.iban, co_banche.bic FROM co_banche WHERE co_banche.id_pianodeiconti3 = '.prepare($pagamento['idconto_vendite']).' AND co_banche.id_anagrafica = '.prepare($anagrafica->id).' AND co_banche.deleted_at IS NULL');
}
// Righe documento