Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
eb71e46b3a
|
@ -63,7 +63,7 @@ if ($options['dir'] == 'entrata') {
|
||||||
var costo_unitario = $("#costo_unitario").val().toEnglish();
|
var costo_unitario = $("#costo_unitario").val().toEnglish();
|
||||||
var prezzo = $("#prezzo_unitario").val().toEnglish();
|
var prezzo = $("#prezzo_unitario").val().toEnglish();
|
||||||
var sconto = $("#sconto").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;
|
sconto = sconto / 100 * prezzo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ if ($options['dir'] == 'entrata') {
|
||||||
$("#prezzo_unitario").keyup(aggiorna_guadagno);
|
$("#prezzo_unitario").keyup(aggiorna_guadagno);
|
||||||
$("#costo_unitario").keyup(aggiorna_guadagno);
|
$("#costo_unitario").keyup(aggiorna_guadagno);
|
||||||
$("#sconto").keyup(aggiorna_guadagno);
|
$("#sconto").keyup(aggiorna_guadagno);
|
||||||
$("select[id^=\'tipo_sconto\']").change(aggiorna_guadagno);
|
$("#modals select[id^=\'tipo_sconto\']").change(aggiorna_guadagno);
|
||||||
</script>';
|
</script>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
7
mail.php
7
mail.php
|
@ -87,7 +87,7 @@ echo '
|
||||||
foreach ($emails as $email) {
|
foreach ($emails as $email) {
|
||||||
echo '
|
echo '
|
||||||
<div class="col-md-12">
|
<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>';
|
</div>';
|
||||||
}
|
}
|
||||||
echo '
|
echo '
|
||||||
|
@ -166,9 +166,12 @@ echo '
|
||||||
if (id_anagrafica) {
|
if (id_anagrafica) {
|
||||||
$(document).load(globals.rootdir + "/ajax_complete.php?module=Anagrafiche&op=get_email&id_anagrafica=" + id_anagrafica + (pec ? "&type=pec" : ""), function(response) {
|
$(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);
|
emails = JSON.parse(response);
|
||||||
|
let num = 0;
|
||||||
$(".destinatari").each(function(){
|
$(".destinatari").each(function(){
|
||||||
addAutoComplete(this);
|
addAutoComplete(this);
|
||||||
|
if (num++==0) {
|
||||||
|
$(this).prop("required", true);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
aggiungiDestinatario();
|
aggiungiDestinatario();
|
||||||
|
|
|
@ -209,7 +209,7 @@ if (sizeof($problemi_anagrafica) > 0) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
use Modules\Anagrafiche\Anagrafica;
|
use Modules\Anagrafiche\Anagrafica;
|
||||||
use Modules\Articoli\Articolo;
|
use Modules\Articoli\Articolo;
|
||||||
use Modules\Articoli\Export\CSV;
|
use Modules\Articoli\Export\CSV;
|
||||||
|
use Modules\Iva\Aliquota;
|
||||||
use Modules\Preventivi\Components\Articolo as ArticoloPreventivo;
|
use Modules\Preventivi\Components\Articolo as ArticoloPreventivo;
|
||||||
use Modules\Preventivi\Preventivo;
|
use Modules\Preventivi\Preventivo;
|
||||||
use Modules\TipiIntervento\Tipo as TipoSessione;
|
use Modules\TipiIntervento\Tipo as TipoSessione;
|
||||||
|
@ -51,12 +52,34 @@ switch (post('op')) {
|
||||||
case 'change-vendita':
|
case 'change-vendita':
|
||||||
$percentuale = post('percentuale');
|
$percentuale = post('percentuale');
|
||||||
$prezzo_partenza = post('prezzo_partenza');
|
$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) {
|
foreach ($id_records as $id) {
|
||||||
$articolo = Articolo::find($id);
|
$articolo = Articolo::find($id);
|
||||||
$prezzo_partenza = post('prezzo_partenza') == 'vendita' ? $articolo->prezzo_vendita : $articolo->prezzo_acquisto;
|
$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);
|
$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->setPrezzoVendita($new_prezzo_vendita, $articolo->idiva_vendita);
|
||||||
$articolo->save();
|
$articolo->save();
|
||||||
}
|
}
|
||||||
|
@ -344,7 +367,9 @@ $operations['change-vendita'] = [
|
||||||
'title' => tr('Aggiornare il prezzo di vendita per gli articoli selezionati?'),
|
'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>
|
'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": "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'),
|
'button' => tr('Procedi'),
|
||||||
'class' => 'btn btn-lg btn-warning',
|
'class' => 'btn btn-lg btn-warning',
|
||||||
'blank' => false,
|
'blank' => false,
|
||||||
|
|
|
@ -272,7 +272,7 @@ switch (post('op')) {
|
||||||
$orario_inizio = date('Y-m-d', strtotime($data_ricorrenza)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
|
$orario_inizio = date('Y-m-d', strtotime($data_ricorrenza)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
|
||||||
} else {
|
} else {
|
||||||
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old);
|
$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);
|
$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));
|
$orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
|
||||||
} else {
|
} else {
|
||||||
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old);
|
$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);
|
$diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio);
|
||||||
|
|
|
@ -38,7 +38,7 @@ if (!empty($is_number_request)) {
|
||||||
echo '<small>
|
echo '<small>
|
||||||
'.(
|
'.(
|
||||||
$servizio_abilitato ?
|
$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')
|
tr('Servizio non abilitato')
|
||||||
).'
|
).'
|
||||||
</small>';
|
</small>';
|
||||||
|
|
|
@ -74,7 +74,6 @@ echo '
|
||||||
<script>
|
<script>
|
||||||
function avvia_stampa (){
|
function avvia_stampa (){
|
||||||
window.open("'.$link.'&dir='.$dir.'&id_sezionale="+$("#id_sezionale").val()+"&date_start="+$("#date_start").val()+"&date_end="+$("#date_end").val()+"");
|
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() {
|
$("#format").change(function() {
|
||||||
session_set("stampe_contabili,format", $(this).val(), 0, 0);
|
session_set("stampe_contabili,format", $(this).val(), 0, 0);
|
||||||
|
|
|
@ -692,7 +692,7 @@ class FatturaElettronica
|
||||||
if ($is_privato_estero) {
|
if ($is_privato_estero) {
|
||||||
$result['IdFiscaleIVA']['IdPaese'] = $anagrafica->nazione->iso2;
|
$result['IdFiscaleIVA']['IdPaese'] = $anagrafica->nazione->iso2;
|
||||||
$result['IdFiscaleIVA']['IdCodice'] = '999999999';
|
$result['IdFiscaleIVA']['IdCodice'] = '999999999';
|
||||||
unset($result['Anagrafica']['CodiceFiscale']);
|
unset($result['CodiceFiscale']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($anagrafica['nome']) or !empty($anagrafica['cognome'])) {
|
if (!empty($anagrafica['nome']) or !empty($anagrafica['cognome'])) {
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
use Plugins\PianificazioneInterventi\Promemoria;
|
use Plugins\PianificazioneInterventi\Promemoria;
|
||||||
|
|
||||||
include_once __DIR__.'/../../../core.php';
|
include_once __DIR__.'/../../../core.php';
|
||||||
|
|
|
@ -232,8 +232,11 @@ abstract class Component extends Model
|
||||||
|
|
||||||
// Correzione della descrizione
|
// Correzione della descrizione
|
||||||
$attributes['descrizione'] = str_replace($riferimento_precedente, '', $attributes['descrizione']);
|
$attributes['descrizione'] = str_replace($riferimento_precedente, '', $attributes['descrizione']);
|
||||||
|
|
||||||
|
if (setting('Aggiungi riferimento tra documenti')) {
|
||||||
$attributes['descrizione'] .= $nuovo_riferimento;
|
$attributes['descrizione'] .= $nuovo_riferimento;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Impostazione del genitore
|
// Impostazione del genitore
|
||||||
$model->setDocument($document);
|
$model->setDocument($document);
|
||||||
|
|
|
@ -143,7 +143,7 @@ class WidgetManager implements ManagerInterface
|
||||||
protected function render($widget, $title, $number = null)
|
protected function render($widget, $title, $number = null)
|
||||||
{
|
{
|
||||||
$result = '
|
$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">×</span><span class="sr-only">'.tr('Chiudi').'</span>
|
<span aria-hidden="true">×</span><span class="sr-only">'.tr('Chiudi').'</span>
|
||||||
</button>';
|
</button>';
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
-- Aggiunto help per impostazione
|
-- 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';
|
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`;
|
ALTER TABLE `in_tipiintervento` ADD `calcola_km` TINYINT NOT NULL AFTER `costo_diritto_chiamata_tecnico`;
|
||||||
UPDATE `in_tipiintervento` SET `calcola_km`=1;
|
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
|
-- 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';
|
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), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\'), \'€\') 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';
|
Loading…
Reference in New Issue