This commit is contained in:
Beppe 2021-11-10 11:04:01 +01:00
commit eb71e46b3a
12 changed files with 55 additions and 13 deletions

View File

@ -63,7 +63,7 @@ if ($options['dir'] == 'entrata') {
var costo_unitario = $("#costo_unitario").val().toEnglish();
var prezzo = $("#prezzo_unitario").val().toEnglish();
var sconto = $("#sconto").val().toEnglish();
if ($("select[id^=\'tipo_sconto\']").val() === "PRC") {
if ($("#modals select[id^=\'tipo_sconto\']").val() === "PRC") {
sconto = sconto / 100 * prezzo;
}
@ -131,7 +131,7 @@ if ($options['dir'] == 'entrata') {
$("#prezzo_unitario").keyup(aggiorna_guadagno);
$("#costo_unitario").keyup(aggiorna_guadagno);
$("#sconto").keyup(aggiorna_guadagno);
$("select[id^=\'tipo_sconto\']").change(aggiorna_guadagno);
$("#modals select[id^=\'tipo_sconto\']").change(aggiorna_guadagno);
</script>';
}

View File

@ -87,7 +87,7 @@ echo '
foreach ($emails as $email) {
echo '
<div class="col-md-12">
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 1 ]}
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
</div>';
}
echo '
@ -166,9 +166,12 @@ echo '
if (id_anagrafica) {
$(document).load(globals.rootdir + "/ajax_complete.php?module=Anagrafiche&op=get_email&id_anagrafica=" + id_anagrafica + (pec ? "&type=pec" : ""), function(response) {
emails = JSON.parse(response);
let num = 0;
$(".destinatari").each(function(){
addAutoComplete(this);
if (num++==0) {
$(this).prop("required", true);
}
});
aggiungiDestinatario();

View File

@ -209,7 +209,7 @@ if (sizeof($problemi_anagrafica) > 0) {
</div>
<div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Email'); ?>", "name": "email", "class": "email-mask", "placeholder": "casella@dominio.ext", "value": "$email$", "icon-before": "<i class='fa fa-envelope'></i>", "validation": "email" ]}
{[ "type": "text", "label": "<?php echo tr('Email'); ?>", "name": "email", "placeholder": "casella@dominio.ext", "value": "$email$", "icon-before": "<i class='fa fa-envelope'></i>", "validation": "email" ]}
</div>
</div>

View File

@ -20,6 +20,7 @@
use Modules\Anagrafiche\Anagrafica;
use Modules\Articoli\Articolo;
use Modules\Articoli\Export\CSV;
use Modules\Iva\Aliquota;
use Modules\Preventivi\Components\Articolo as ArticoloPreventivo;
use Modules\Preventivi\Preventivo;
use Modules\TipiIntervento\Tipo as TipoSessione;
@ -51,12 +52,34 @@ switch (post('op')) {
case 'change-vendita':
$percentuale = post('percentuale');
$prezzo_partenza = post('prezzo_partenza');
$tipologia = post('tipologia');
$arrotondamento = post('arrotondamento');
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
foreach ($id_records as $id) {
$articolo = Articolo::find($id);
$prezzo_partenza = post('prezzo_partenza') == 'vendita' ? $articolo->prezzo_vendita : $articolo->prezzo_acquisto;
$aliquota_iva = floatval(Aliquota::find($articolo->idiva_vendita)->percentuale);
$new_prezzo_vendita = $prezzo_partenza + ($prezzo_partenza * $percentuale / 100);
// Arrotondamento
if (!empty($tipologia) && !empty($arrotondamento)) {
if ($tipologia == 'ivato') {
$new_prezzo_vendita = $new_prezzo_vendita + ($new_prezzo_vendita * $aliquota_iva / 100);
}
$new_prezzo_vendita = ceil($new_prezzo_vendita / $arrotondamento) * $arrotondamento;
}
if (in_array($tipologia, ['ivato', '']) && !$prezzi_ivati) {
$new_prezzo_vendita = $new_prezzo_vendita * 100 / (100 + $aliquota_iva);
}
if (in_array($tipologia, ['imponibile', '']) && $prezzi_ivati) {
$new_prezzo_vendita = $new_prezzo_vendita + ($new_prezzo_vendita * $aliquota_iva / 100);
}
$articolo->setPrezzoVendita($new_prezzo_vendita, $articolo->idiva_vendita);
$articolo->save();
}
@ -344,7 +367,9 @@ $operations['change-vendita'] = [
'title' => tr('Aggiornare il prezzo di vendita per gli articoli selezionati?'),
'msg' => 'Per indicare uno sconto inserire la percentuale con il segno meno, al contrario per un rincaro inserire la percentuale senza segno.<br><br>
{[ "type": "select", "label": "'.tr('Partendo da:').'", "name": "prezzo_partenza", "required": 1, "values": "list=\"acquisto\":\"Prezzo di acquisto\",\"vendita\":\"Prezzo di vendita\"" ]}<br>
{[ "type": "number", "label": "'.tr('Percentuale sconto/magg.').'", "name": "percentuale", "required": 1, "icon-after": "%" ]}',
{[ "type": "number", "label": "'.tr('Percentuale sconto/magg.').'", "name": "percentuale", "required": 1, "icon-after": "%" ]}<br>
{[ "type": "select", "label": "'.tr('Arrotonda prezzo:').'", "name": "tipologia", "values": "list=\"0\":\"Non arrotondare\",\"imponibile\":\"Imponibile\",\"ivato\":\"Ivato\"", "value": 0 ]}<br>
{[ "type": "select", "label": "'.tr('Arrotondamento:').'", "name": "arrotondamento", "values": "list=\"0.1\":\"0,10 €\",\"1\":\"1,00 €\",\"10\":\"10,00 €\",\"100\":\"100,00 €\"" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,

View File

@ -272,7 +272,7 @@ switch (post('op')) {
$orario_inizio = date('Y-m-d', strtotime($data_ricorrenza)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
} else {
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old);
$orario_inizio = date('Y-m-d H:i:s', (strtotime($sessione->orario_inizio) + $diff));
$orario_inizio = date('Y-m-d H:i:s', (strtotime($new_sessione->orario_inizio) + $diff));
}
$diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio);
@ -719,7 +719,7 @@ switch (post('op')) {
$orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
} else {
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old);
$orario_inizio = date('Y-m-d H:i:s', (strtotime($sessione->orario_inizio) + $diff));
$orario_inizio = date('Y-m-d H:i:s', (strtotime($new_sessione->orario_inizio) + $diff));
}
$diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio);

View File

@ -38,7 +38,7 @@ if (!empty($is_number_request)) {
echo '<small>
'.(
$servizio_abilitato ?
tr('Clicca qui per avviare la sincronizzazione con il servizio esterno la gestione dei dsiscritti') :
tr('Clicca qui per avviare la sincronizzazione con il servizio esterno la gestione dei disiscritti') :
tr('Servizio non abilitato')
).'
</small>';

View File

@ -74,7 +74,6 @@ echo '
<script>
function avvia_stampa (){
window.open("'.$link.'&dir='.$dir.'&id_sezionale="+$("#id_sezionale").val()+"&date_start="+$("#date_start").val()+"&date_end="+$("#date_end").val()+"");
return false;
}
$("#format").change(function() {
session_set("stampe_contabili,format", $(this).val(), 0, 0);

View File

@ -692,7 +692,7 @@ class FatturaElettronica
if ($is_privato_estero) {
$result['IdFiscaleIVA']['IdPaese'] = $anagrafica->nazione->iso2;
$result['IdFiscaleIVA']['IdCodice'] = '999999999';
unset($result['Anagrafica']['CodiceFiscale']);
unset($result['CodiceFiscale']);
}
if (!empty($anagrafica['nome']) or !empty($anagrafica['cognome'])) {

View File

@ -17,6 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Carbon\Carbon;
use Plugins\PianificazioneInterventi\Promemoria;
include_once __DIR__.'/../../../core.php';

View File

@ -232,8 +232,11 @@ abstract class Component extends Model
// Correzione della descrizione
$attributes['descrizione'] = str_replace($riferimento_precedente, '', $attributes['descrizione']);
if (setting('Aggiungi riferimento tra documenti')) {
$attributes['descrizione'] .= $nuovo_riferimento;
}
}
// Impostazione del genitore
$model->setDocument($document);

View File

@ -143,7 +143,7 @@ class WidgetManager implements ManagerInterface
protected function render($widget, $title, $number = null)
{
$result = '
<button type="button" class="close" onclick="if(confirm(\'Disabilitare questo widget?\')) { $.post( \''.base_path().'/actions.php?id_module='.self::getModule()->id.'\', { op: \'disable_widget\', id: \''.$widget['id'].'\' }, function(response){ location.reload(); }); };" >
<button type="button" class="close" onclick="if(confirm(\'Disabilitare questo widget?\')) { $.post( \''.base_path().'/actions.php?id_module='.self::getModule()->id.'\', { op: \'disabilita-widget\', id: \''.$widget['id'].'\' }, function(response){ location.reload(); }); };" >
<span aria-hidden="true">&times;</span><span class="sr-only">'.tr('Chiudi').'</span>
</button>';

View File

@ -1,6 +1,7 @@
-- Aggiunto help per impostazione
UPDATE `zz_settings` SET `help` = 'Documenti di Vendita quali Fatture, DDT e Attività' WHERE `zz_settings`.`nome` = 'Permetti selezione articoli con quantità minore o uguale a zero in Documenti di Vendita';
-- Aggiunto flag calcola km
ALTER TABLE `in_tipiintervento` ADD `calcola_km` TINYINT NOT NULL AFTER `costo_diritto_chiamata_tecnico`;
UPDATE `in_tipiintervento` SET `calcola_km`=1;
@ -13,3 +14,13 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`,
-- Rimozione delle aliquote iva eliminate dalla lista
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_iva` WHERE 1=1 AND deleted_at IS NULL HAVING 2=2' WHERE `name` = 'IVA';
-- Aggiunta colonna Codice in Combinazioni
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`, `created_at`, `updated_at`) VALUES
(442, 94, 'Codice', 'mg_combinazioni.codice', 1, 1, 0, 0, '', '', 1, 0, 0, '2021-11-08 10:17:47', '2021-11-08 10:18:07');
-- Aggiunta impostazione per impostare o meno il riferimento del documento
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Aggiungi riferimento tra documenti', '1', 'boolean', '1', 'Generali', '18', 'Permette l\'aggiunta del riferimento al documento nella descrizione della riga importata');
-- Aggiunto controllo sul widget fatturato per non conteggiare le fatture in Bozza
UPDATE `zz_widgets` SET `query` = 'SELECT\n CONCAT_WS(\' \', REPLACE(REPLACE(REPLACE(FORMAT((\n SELECT SUM(\n (co_righe_documenti.subtotale - co_righe_documenti.sconto) * IF(co_tipidocumento.reversed, -1, 1)\n )\n ), 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\'), \'&euro;\') AS dato\nFROM co_righe_documenti\n INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id\n INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id\n INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id\nWHERE co_statidocumento.descrizione!=\'Bozza\' AND co_tipidocumento.dir=\'entrata\' |segment| AND data >= \'|period_start|\' AND data <= \'|period_end|\' AND 1=1' WHERE `zz_widgets`.`name` = 'Fatturato';