2020-05-29 17:12:23 +02:00
< ? php
2020-09-07 15:04:06 +02:00
/*
* OpenSTAManager : il software gestionale open source per l ' assistenza tecnica e la fatturazione
2021-01-20 15:08:51 +01:00
* Copyright ( C ) DevCode s . r . l .
2020-09-07 15:04:06 +02:00
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*/
2020-05-29 17:12:23 +02:00
2024-03-22 15:52:24 +01:00
use Models\Module ;
2021-01-25 16:44:56 +01:00
use Modules\Anagrafiche\Anagrafica ;
2021-02-18 18:48:44 +01:00
use Modules\Articoli\Articolo ;
2021-09-20 13:33:45 +02:00
use Modules\Articoli\Export\CSV ;
2021-11-05 16:02:48 +01:00
use Modules\Iva\Aliquota ;
2023-12-28 17:14:26 +01:00
use Modules\ListiniCliente\Articolo as ArticoloListino ;
2021-01-25 16:44:56 +01:00
use Modules\Preventivi\Components\Articolo as ArticoloPreventivo ;
2021-02-18 18:48:44 +01:00
use Modules\Preventivi\Preventivo ;
2021-01-25 16:44:56 +01:00
use Modules\TipiIntervento\Tipo as TipoSessione ;
2021-07-28 12:06:29 +02:00
use Plugins\ListinoClienti\DettaglioPrezzo ;
2021-09-20 13:33:45 +02:00
include_once __DIR__ . '/../../core.php' ;
2020-05-29 17:12:23 +02:00
2022-11-28 09:27:25 +01:00
// Segmenti
2024-06-11 16:58:27 +02:00
$id_preventivi = Module :: where ( 'name' , 'Preventivi' ) -> first () -> id ;
2022-11-28 09:27:25 +01:00
$id_segment = $_SESSION [ 'module_' . $id_preventivi ][ 'id_segment' ];
2020-05-29 17:12:23 +02:00
switch ( post ( 'op' )) {
2020-12-10 17:20:19 +01:00
case 'change-acquisto' :
2020-07-13 18:24:18 +02:00
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
$percentuale = post ( 'percentuale' );
2020-07-16 16:49:36 +02:00
$new_prezzo_acquisto = $articolo -> prezzo_acquisto + ( $articolo -> prezzo_acquisto * $percentuale / 100 );
2020-07-13 18:24:18 +02:00
$articolo -> prezzo_acquisto = $new_prezzo_acquisto ;
$articolo -> save ();
2021-03-30 15:20:15 +02:00
2021-03-31 22:03:55 +02:00
if ( ! empty ( $articolo -> id_fornitore )) {
2021-03-30 15:20:15 +02:00
$prezzo_predefinito = DettaglioPrezzo :: dettaglioPredefinito ( $articolo -> id , $articolo -> id_fornitore , 'uscita' ) -> first ();
$prezzo_predefinito -> setPrezzoUnitario ( $new_prezzo_acquisto );
$prezzo_predefinito -> save ();
}
2020-07-13 18:24:18 +02:00
}
flash () -> info ( tr ( 'Prezzi di acquisto aggiornati!' ));
2020-07-16 16:49:36 +02:00
2020-07-13 18:24:18 +02:00
break ;
2021-03-31 22:03:55 +02:00
2021-03-29 12:48:53 +02:00
case 'change-vendita' :
2021-10-04 15:40:08 +02:00
$percentuale = post ( 'percentuale' );
$prezzo_partenza = post ( 'prezzo_partenza' );
2021-11-05 16:02:48 +01:00
$tipologia = post ( 'tipologia' );
$arrotondamento = post ( 'arrotondamento' );
$prezzi_ivati = setting ( 'Utilizza prezzi di vendita comprensivi di IVA' );
2022-03-07 09:35:58 +01:00
$articoli_coeff = 0 ;
2021-10-04 15:40:08 +02:00
2021-03-29 12:48:53 +02:00
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
2023-08-04 14:54:28 +02:00
if ( empty (( int ) $articolo -> coefficiente )) {
2022-03-07 09:35:58 +01:00
$prezzo_partenza = post ( 'prezzo_partenza' ) == 'vendita' ? $articolo -> prezzo_vendita : $articolo -> prezzo_acquisto ;
$aliquota_iva = floatval ( Aliquota :: find ( $articolo -> idiva_vendita ) -> percentuale );
2021-11-05 16:02:48 +01:00
2022-03-07 09:35:58 +01:00
$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 );
}
2024-08-27 09:20:20 +02:00
$new_prezzo_vendita = ceil ( $new_prezzo_vendita / ( $arrotondamento ? : 1 )) * $arrotondamento ;
2022-03-07 09:35:58 +01:00
}
if ( in_array ( $tipologia , [ 'ivato' , '' ]) && ! $prezzi_ivati ) {
$new_prezzo_vendita = $new_prezzo_vendita * 100 / ( 100 + $aliquota_iva );
}
if ( in_array ( $tipologia , [ 'imponibile' , '' ]) && $prezzi_ivati ) {
2021-11-05 16:02:48 +01:00
$new_prezzo_vendita = $new_prezzo_vendita + ( $new_prezzo_vendita * $aliquota_iva / 100 );
}
2022-03-07 09:35:58 +01:00
$articolo -> setPrezzoVendita ( $new_prezzo_vendita , $articolo -> idiva_vendita );
$articolo -> save ();
} else {
2023-08-04 14:54:28 +02:00
++ $articoli_coeff ;
2021-11-05 16:02:48 +01:00
}
2022-03-07 09:35:58 +01:00
}
2021-11-05 16:02:48 +01:00
2022-03-07 09:35:58 +01:00
flash () -> info ( tr ( 'Prezzi di vendita aggiornati!' ));
2023-03-08 16:22:53 +01:00
if ( $articoli_coeff > 0 ) {
flash () -> warning ( tr ( '_NUM_ prezzi di vendita non aggiornati per coefficiente impostato!' , [
'_NUM_' => $articoli_coeff ,
]));
}
2021-11-05 16:02:48 +01:00
2022-03-07 09:35:58 +01:00
break ;
case 'change-coefficiente' :
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
$coefficiente = post ( 'coefficiente' );
2021-11-05 16:02:48 +01:00
2022-03-07 09:35:58 +01:00
$articolo -> coefficiente = $coefficiente ;
2023-08-04 14:54:28 +02:00
$articolo -> prezzo_vendita = $articolo -> prezzo_acquisto * $coefficiente ;
2021-03-29 12:48:53 +02:00
$articolo -> save ();
}
2022-03-07 09:35:58 +01:00
flash () -> info ( tr ( 'Coefficienti di vendita aggiornati!' ));
2021-03-29 12:48:53 +02:00
break ;
2020-05-29 17:12:23 +02:00
case 'delete-bulk' :
foreach ( $id_records as $id ) {
2024-07-09 12:50:12 +02:00
$elementi = $dbo -> fetchArray ( '
SELECT `co_documenti` . `id` FROM `co_documenti`
INNER JOIN `co_righe_documenti` ON `co_righe_documenti` . `iddocumento` = `co_documenti` . `id`
WHERE `co_righe_documenti` . `idarticolo` = '.prepare($id).'
UNION
SELECT `dt_ddt` . `id` FROM `dt_ddt`
INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt` . `idddt` = `dt_ddt` . `id`
WHERE `dt_righe_ddt` . `idarticolo` = '.prepare($id).'
UNION
SELECT `or_ordini` . `id` FROM `or_ordini`
INNER JOIN `or_righe_ordini` ON `or_righe_ordini` . `idordine` = `or_ordini` . `id`
WHERE `or_righe_ordini` . `idarticolo` = '.prepare($id).'
UNION
SELECT `co_contratti` . `id` FROM `co_contratti`
INNER JOIN `co_righe_contratti` ON `co_righe_contratti` . `idcontratto` = `co_contratti` . `id`
WHERE `co_righe_contratti` . `idarticolo` = '.prepare($id).'
UNION
SELECT `co_preventivi` . `id` FROM `co_preventivi`
INNER JOIN `co_righe_preventivi` ON `co_righe_preventivi` . `idpreventivo` = `co_preventivi` . `id`
WHERE `co_righe_preventivi` . `idarticolo` = '.prepare($id).'
UNION
SELECT `in_interventi` . `id` FROM `in_interventi`
INNER JOIN `in_righe_interventi` ON `in_righe_interventi` . `idintervento` = `in_interventi` . `id`
WHERE `in_righe_interventi` . `idarticolo` = ' . prepare ( $id )
);
2020-05-29 17:12:23 +02:00
if ( ! empty ( $elementi )) {
2024-02-27 15:51:13 +01:00
$dbo -> query ( 'UPDATE `mg_articoli` SET `deleted_at` = NOW() WHERE `id` = ' . prepare ( $id ) . Modules :: getAdditionalsQuery ( $id_module ));
2020-06-09 16:59:26 +02:00
} else {
2024-07-25 16:49:44 +02:00
$dbo -> query ( 'DELETE FROM `mg_prezzi_articoli` WHERE `id_articolo` = ' . prepare ( $id ));
2024-02-27 15:51:13 +01:00
$dbo -> query ( 'DELETE FROM `mg_articoli` WHERE `id` = ' . prepare ( $id ) . Modules :: getAdditionalsQuery ( $id_module ));
2020-05-29 17:12:23 +02:00
}
}
flash () -> info ( tr ( 'Articoli eliminati!' ));
2020-12-10 17:20:19 +01:00
break ;
2021-02-18 18:48:44 +01:00
2020-12-10 17:20:19 +01:00
case 'stampa-etichette' :
$_SESSION [ 'superselect' ][ 'id_articolo_barcode' ] = $id_records ;
2022-06-06 17:46:35 +02:00
if ( post ( 'tipologia' ) == 'singola' ) {
$id_print = Prints :: getPrints ()[ 'Barcode' ];
} else {
$id_print = Prints :: getPrints ()[ 'Barcode bulk' ];
}
2020-12-10 17:20:19 +01:00
2022-03-23 17:25:12 +01:00
redirect ( base_path () . '/pdfgen.php?id_print=' . $id_print . '&id_record=' . Articolo :: where ( 'codice' , '!=' , '' ) -> first () -> id );
2024-01-15 15:30:45 +01:00
exit ;
2020-12-10 17:20:19 +01:00
2021-01-25 10:38:58 +01:00
case 'change-qta' :
$descrizione = post ( 'descrizione' );
$data = post ( 'data' );
$qta = post ( 'qta' );
$n_articoli = 0 ;
2021-02-18 18:48:44 +01:00
foreach ( $id_records as $id ) {
2021-01-25 10:38:58 +01:00
$articolo = Articolo :: find ( $id );
$qta_movimento = $qta - $articolo -> qta ;
$articolo -> movimenta ( $qta_movimento , $descrizione , $data , true );
++ $n_articoli ;
}
if ( $n_articoli > 0 ) {
flash () -> info ( tr ( 'Quantità cambiate a _NUM_ articoli!' , [
'_NUM_' => $n_articoli ,
]));
} else {
flash () -> warning ( tr ( 'Nessun articolo modificato!' ));
}
2021-01-25 16:44:56 +01:00
break ;
case 'crea-preventivo' :
$nome = post ( 'nome' );
$data = post ( 'data' );
$id_tipo = post ( 'id_tipo' );
$id_cliente = post ( 'id_cliente' );
$anagrafica = Anagrafica :: find ( $id_cliente );
$tipo = TipoSessione :: find ( $id_tipo );
$n_articoli = 0 ;
2022-11-28 09:27:25 +01:00
$preventivo = Preventivo :: build ( $anagrafica , $tipo , $nome , $data , 0 , post ( 'id_segment' ));
2021-01-25 16:44:56 +01:00
$id_preventivo = $preventivo -> id ;
2021-02-18 18:48:44 +01:00
foreach ( $id_records as $id ) {
2021-01-25 16:44:56 +01:00
$originale = Articolo :: find ( $id );
$articolo = ArticoloPreventivo :: build ( $preventivo , $originale );
2023-04-12 17:56:15 +02:00
$id_iva = $originale -> idiva_vendita ? : setting ( 'Iva predefinita' );
2021-01-25 16:44:56 +01:00
$articolo -> qta = 1 ;
$articolo -> um = $originale -> um ? : null ;
$articolo -> costo_unitario = $originale -> prezzo_acquisto ;
$articolo -> prezzo_unitario = $originale -> prezzo_vendita ;
2023-04-12 17:56:15 +02:00
$articolo -> idiva = $id_iva ;
$articolo -> setPrezzoUnitario ( $originale -> prezzo_vendita , $id_iva );
2021-01-25 16:44:56 +01:00
$articolo -> save ();
++ $n_articoli ;
}
if ( $n_articoli > 0 ) {
flash () -> info ( tr ( '_NUM_ articoli sono stati aggiunti al preventivo' , [
'_NUM_' => $n_articoli ,
]));
} else {
flash () -> warning ( tr ( 'Nessun articolo modificato!' ));
}
$database -> commitTransaction ();
2024-03-05 16:01:45 +01:00
redirect ( base_path () . '/editor.php?id_module=' . $id_preventivi . '&id_record=' . $id_preventivo );
2024-01-15 15:30:45 +01:00
exit ;
2021-01-25 16:44:56 +01:00
2021-09-20 13:33:45 +02:00
case 'export-csv' :
$file = temp_file ();
$exporter = new CSV ( $file );
// Esportazione dei record selezionati
$anagrafiche = Articolo :: whereIn ( 'id' , $id_records ) -> get ();
$exporter -> setRecords ( $anagrafiche );
$count = $exporter -> exportRecords ();
download ( $file , 'articoli.csv' );
break ;
2021-10-04 15:46:39 +02:00
case 'change-categoria' :
$categoria = post ( 'id_categoria' );
2021-12-28 17:02:42 +01:00
$sottocategoria = post ( 'subcategoria' );
2021-10-04 15:46:39 +02:00
$n_articoli = 0 ;
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
$articolo -> id_categoria = $categoria ;
2021-12-28 17:02:42 +01:00
$articolo -> id_sottocategoria = $sottocategoria ? : null ;
2021-10-04 15:46:39 +02:00
$articolo -> save ();
++ $n_articoli ;
}
if ( $n_articoli > 0 ) {
2021-12-28 17:02:42 +01:00
flash () -> info ( tr ( 'Categoria e Sottocategoria aggiornata a _NUM_ articoli!' , [
2021-10-04 15:46:39 +02:00
'_NUM_' => $n_articoli ,
]));
} else {
flash () -> warning ( tr ( 'Nessun articolo modificato!' ));
}
2021-10-04 15:47:39 +02:00
break ;
case 'change-iva' :
$iva = post ( 'id_iva' );
$n_articoli = 0 ;
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
$articolo -> idiva_vendita = $iva ;
$articolo -> save ();
++ $n_articoli ;
}
if ( $n_articoli > 0 ) {
2021-11-03 10:10:33 +01:00
flash () -> info ( tr ( 'Aliquota iva cambiata a _NUM_ articoli!' , [
2021-10-04 15:47:39 +02:00
'_NUM_' => $n_articoli ,
]));
} else {
flash () -> warning ( tr ( 'Nessun articolo modificato!' ));
}
2021-10-25 15:28:10 +02:00
break ;
case 'set-acquisto-ifzero' :
$n_art = 0 ;
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
2023-08-04 14:54:28 +02:00
if ( $articolo -> prezzo_acquisto == 0 && empty ( $articolo -> idfornitore )) {
2024-03-22 15:52:24 +01:00
$new_prezzo_acquisto = $dbo -> fetchOne ( 'SELECT (`prezzo_unitario`-`sconto_unitario`) AS prezzo_acquisto FROM `co_righe_documenti` LEFT JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id`=`co_documenti`.`idtipodocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = ' . prepare ( Models\Locale :: getDefault () -> id ) . ') WHERE `idarticolo`=' . prepare ( $id ) . ' AND `dir`="uscita" ORDER BY `co_documenti`.`data` DESC, `co_righe_documenti`.`id` DESC LIMIT 0,1' )[ 'prezzo_acquisto' ];
2021-10-25 15:28:10 +02:00
$articolo -> prezzo_acquisto = $new_prezzo_acquisto ;
$articolo -> save ();
2023-08-04 14:54:28 +02:00
if ( $new_prezzo_acquisto != 0 ) {
++ $n_art ;
2021-10-25 15:28:10 +02:00
}
}
}
flash () -> info ( tr ( 'Prezzi di acquisto aggiornati per _NUM_ articoli!' , [
'_NUM_' => $n_art ,
]));
2021-11-03 10:10:33 +01:00
break ;
case 'change-um' :
$um = post ( 'um' );
$n_articoli = 0 ;
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
$articolo -> um = $um ;
$articolo -> save ();
++ $n_articoli ;
}
if ( $n_articoli > 0 ) {
flash () -> info ( tr ( 'Unità di misura cambiata a _NUM_ articoli!' , [
'_NUM_' => $n_articoli ,
]));
} else {
flash () -> warning ( tr ( 'Nessun articolo modificato!' ));
}
2021-11-04 15:55:33 +01:00
break ;
case 'change-conto-acquisto' :
$conto_acquisto = post ( 'conto_acquisto' );
$n_articoli = 0 ;
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
$articolo -> idconto_acquisto = $conto_acquisto ;
$articolo -> save ();
++ $n_articoli ;
}
if ( $n_articoli > 0 ) {
flash () -> info ( tr ( 'Conto predefinito di acquisto cambiato a _NUM_ articoli!' , [
'_NUM_' => $n_articoli ,
]));
} else {
flash () -> warning ( tr ( 'Nessun articolo modificato!' ));
}
break ;
case 'change-conto-vendita' :
$conto_vendita = post ( 'conto_vendita' );
$n_articoli = 0 ;
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
$articolo -> idconto_vendita = $conto_vendita ;
$articolo -> save ();
++ $n_articoli ;
}
if ( $n_articoli > 0 ) {
flash () -> info ( tr ( 'Conto predefinito di vendita cambiato a _NUM_ articoli!' , [
'_NUM_' => $n_articoli ,
]));
} else {
flash () -> warning ( tr ( 'Nessun articolo modificato!' ));
}
2022-05-19 17:42:41 +02:00
break ;
case 'set-provvigione' :
$n_art = 0 ;
foreach ( $id_records as $id ) {
$exist = $dbo -> selectOne ( 'co_provvigioni' , 'id' , [ 'idarticolo' => $id , 'idagente' => post ( 'idagente' )]);
if ( $exist ) {
$dbo -> update ( 'co_provvigioni' , [
'idagente' => post ( 'idagente' ),
'provvigione' => post ( 'provvigione' ),
'tipo_provvigione' => post ( 'tipo_provvigione' ),
], [ 'idarticolo' => $id , 'idagente' => post ( 'idagente' )]);
} else {
$dbo -> insert ( 'co_provvigioni' , [
'idarticolo' => $id ,
'idagente' => post ( 'idagente' ),
'provvigione' => post ( 'provvigione' ),
'tipo_provvigione' => post ( 'tipo_provvigione' ),
]);
}
2023-08-04 14:54:28 +02:00
++ $n_art ;
2022-05-19 17:42:41 +02:00
}
flash () -> info ( tr ( 'Provvigioni inserite correttamente!' , [
'_NUM_' => $n_art ,
]));
2023-12-28 17:14:26 +01:00
break ;
case 'add-listino' :
$id_listino = post ( 'id_listino' );
$prezzi_ivati = setting ( 'Utilizza prezzi di vendita comprensivi di IVA' );
foreach ( $id_records as $id ) {
$articolo = Articolo :: find ( $id );
$prezzo_unitario = $prezzi_ivati ? $articolo -> prezzo_vendita_ivato : $articolo -> prezzo_vendita ;
$articolo_listino = ArticoloListino :: where ( 'id_articolo' , $id ) -> where ( 'id_listino' , $id_listino ) -> first ();
if ( ! $articolo_listino ) {
$articolo_listino = ArticoloListino :: build ( $articolo , $id_listino );
}
$articolo_listino -> data_scadenza = post ( 'data_scadenza' ) ? : null ;
$articolo_listino -> setPrezzoUnitario ( $prezzo_unitario );
$articolo_listino -> sconto_percentuale = post ( 'sconto_percentuale' );
$articolo_listino -> save ();
}
flash () -> info ( tr ( 'Listino aggiornato correttamente!' ));
2021-10-04 15:46:39 +02:00
break ;
2020-05-29 17:12:23 +02:00
}
2024-08-07 10:25:17 +02:00
$operations [ 'change-iva' ] = [
'text' => '<span><i class="fa fa-percent"></i> ' . tr ( 'Aggiorna aliquota iva' ) . '</span>' ,
'data' => [
'title' => tr ( 'Cambiare l\'aliquota iva?' ),
'msg' => tr ( 'Per ciascun articolo selezionato, verrà modificata l\'aliquota iva' ) . '
< br >< br > {[ " type " : " select " , " label " : " '.tr('Iva').' " , " name " : " id_iva " , " required " : 1 , " ajax-source " : " iva " ]} ' ,
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
],
];
2020-05-29 17:12:23 +02:00
2024-08-07 10:25:17 +02:00
$operations [ 'change-categoria' ] = [
'text' => '<span><i class="fa fa-briefcase"></i> ' . tr ( 'Aggiorna categoria e sottocategoria' ) . '</span>' ,
2021-09-20 13:33:45 +02:00
'data' => [
2024-08-07 10:25:17 +02:00
'title' => tr ( 'Cambiare la categoria e la sottocategoria?' ),
'msg' => tr ( 'Per ciascun articolo selezionato, verrà modificata la categoria e la sottocategoria' ) . '
< br >< br > {[ " type " : " select " , " label " : " '.tr('Categoria').' " , " name " : " id_categoria " , " required " : 1 , " ajax-source " : " categorie " , " extra " : " onchange= \" $ ( \ '#subcategoria \ ').enable();updateSelectOption( \ 'id_categoria \ ', $ ( \ '#id_categoria \ ').val());session_set( \ 'superselect,id_categoria \ ', $ ( \ '#id_categoria \ ').val(), 0); $ ( \ '#subcategoria \ ').val(null).trigger( \ 'change \ '); \" " ]} < br >
{[ " type " : " select " , " label " : " '.tr('Sottocategoria').' " , " name " : " subcategoria " , " ajax-source " : " sottocategorie " , " disabled " : " 1 " , " select-options-escape " : true ]} ' ,
2021-09-20 13:33:45 +02:00
'button' => tr ( 'Procedi' ),
2024-08-07 10:25:17 +02:00
'class' => 'btn btn-lg btn-warning' ,
],
];
$operations [ 'change-coefficiente' ] = [
'text' => '<span><i class="fa fa-refresh"></i> ' . tr ( 'Aggiorna coefficiente di vendita' ) . '</span>' ,
'data' => [
'title' => tr ( 'Aggiornare il coefficiente di vendita per gli articoli selezionati?' ),
'msg' => tr ( 'Per ciascun articolo selezionato, verrà modificato il coefficiente e il relativo prezzo di vendita' ) . '<br><br>{[ "type": "number", "label": "' . tr ( 'Coefficiente di vendita' ) . '", "name": "coefficiente", "required": 1 ]}' ,
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
'blank' => false ,
],
];
$operations [ 'change-conto-acquisto' ] = [
'text' => '<span><i class="fa fa-money"></i> ' . tr ( 'Aggiorna conto predefinito di acquisto' ) . '</span>' ,
'data' => [
'title' => tr ( 'Cambiare il conto predefinito di acquisto?' ),
'msg' => tr ( 'Per ciascun articolo selezionato, verrà modificato il conto predefinito di acquisto' ) . '
< br >< br > {[ " type " : " select " , " label " : " '.tr('Conto acquisto').' " , " name " : " conto_acquisto " , " required " : 1 , " ajax-source " : " conti-acquisti " ]} ' ,
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
],
];
$operations [ 'change-conto-vendita' ] = [
'text' => '<span><i class="fa fa-money"></i> ' . tr ( 'Aggiorna conto predefinito di vendita' ) . '</span>' ,
'data' => [
'title' => tr ( 'Cambiare il conto predefinito di vendita?' ),
'msg' => tr ( 'Per ciascun articolo selezionato, verrà modificato il conto predefinito di vendita' ) . '
< br >< br > {[ " type " : " select " , " label " : " '.tr('Conto vendita').' " , " name " : " conto_vendita " , " required " : 1 , " ajax-source " : " conti-vendite " ]} ' ,
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
2021-09-20 13:33:45 +02:00
],
];
2020-12-10 17:20:19 +01:00
$operations [ 'change-acquisto' ] = [
2020-11-12 10:13:23 +01:00
'text' => '<span><i class="fa fa-refresh"></i> ' . tr ( 'Aggiorna prezzo di acquisto' ) . '</span>' ,
2020-07-13 18:24:18 +02:00
'data' => [
'title' => tr ( 'Aggiornare il prezzo di acquisto per gli articoli selezionati?' ),
2022-03-07 09:35:58 +01:00
'msg' => tr ( 'Per indicare uno sconto inserire la percentuale con il segno meno, al contrario per un rincaro inserire la percentuale senza segno.' ) . '<br><br>{[ "type": "number", "label": "' . tr ( 'Percentuale sconto/magg.' ) . '", "name": "percentuale", "required": 1, "icon-after": "%" ]}' ,
2020-07-13 18:24:18 +02:00
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
2021-03-29 12:48:53 +02:00
'blank' => false ,
],
];
$operations [ 'change-vendita' ] = [
'text' => '<span><i class="fa fa-refresh"></i> ' . tr ( 'Aggiorna prezzo di vendita' ) . '</span>' ,
'data' => [
'title' => tr ( 'Aggiornare il prezzo di vendita per gli articoli selezionati?' ),
2022-03-07 09:35:58 +01:00
'msg' => tr ( 'Per indicare uno sconto inserire la percentuale con il segno meno, al contrario per un rincaro inserire la percentuale senza segno.' ) . ' < br >< br >
2021-10-04 15:40:08 +02:00
{[ " type " : " select " , " label " : " '.tr('Partendo da:').' " , " name " : " prezzo_partenza " , " required " : 1 , " values " : " list= \" acquisto \" : \" Prezzo di acquisto \" , \" vendita \" : \" Prezzo di vendita \" " ]} < br >
2021-11-05 16:02:48 +01:00
{[ " 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 € \" " ]} ' ,
2021-03-29 12:48:53 +02:00
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
'blank' => false ,
2020-12-10 17:20:19 +01:00
],
];
2024-08-07 10:25:17 +02:00
$operations [ 'change-qta' ] = [
'text' => '<span><i class="fa fa-refresh"></i> ' . tr ( 'Aggiorna quantità' ) . '</span>' ,
2022-03-07 09:35:58 +01:00
'data' => [
2024-08-07 10:25:17 +02:00
'title' => tr ( 'Cambiare le quantità?' ),
'msg' => tr ( 'Per ciascun articolo selezionato, verrà modificata la quantità' ) . '
< br >< br > {[ " type " : " text " , " label " : " '.tr('Quantità').' " , " name " : " qta " , " required " : 1 ]}
{[ " type " : " text " , " label " : " '.tr('Causale').' " , " name " : " descrizione " , " required " : 1 ]}
{[ " type " : " date " , " label " : " '.tr('Data').' " , " name " : " data " , " required " : 1 , " value " : " -now- " ]} ' ,
2022-03-07 09:35:58 +01:00
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
],
];
2024-08-07 10:25:17 +02:00
$operations [ 'change-um' ] = [
'text' => '<span><i class="fa fa-balance-scale"></i> ' . tr ( 'Aggiorna unità di misura' ) . '</span>' ,
2020-12-10 17:20:19 +01:00
'data' => [
2024-08-07 10:25:17 +02:00
'title' => tr ( 'Cambiare l\'unità di misura?' ),
'msg' => tr ( 'Per ciascun articolo selezionato, verrà modificata l\'unità di misura' ) . '
< br >< br > {[ " type " : " select " , " label " : " '.tr('Unità di misura').' " , " name " : " um " , " required " : 1 , " ajax-source " : " misure " ]} ' ,
2020-12-10 17:20:19 +01:00
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
2020-07-13 18:24:18 +02:00
],
];
2024-08-07 10:25:17 +02:00
$operations [ 'add-listino' ] = [
'text' => '<span><i class="fa fa-plus"></i> ' . tr ( 'Aggiungi a listino cliente' ) . '</span>' ,
2021-01-25 10:38:58 +01:00
'data' => [
2024-08-07 10:25:17 +02:00
'msg' => tr ( 'Vuoi davvero aggiungere gli articoli al listino cliente?' ) . '<br><br>{[ "type": "select", "label": "' . tr ( 'Listino cliente' ) . ' " , " name " : " id_listino " , " required " : 1, " ajax - source " : " listini " ]}
< br > {[ " type " : " number " , " label " : " '.tr('Sconto percentuale').' " , " name " : " sconto_percentuale " , " required " : 1 , " icon-after " : " % " ]}
< br > {[ " type " : " date " , " label " : " '.tr('Data scadenza').' " , " name " : " data_scadenza " , " placeholder " : " '.tr('Utilizza data scadenza predefinita listino').' " ]} ' ,
2021-01-25 10:38:58 +01:00
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
],
];
2021-01-25 16:44:56 +01:00
$operations [ 'crea-preventivo' ] = [
'text' => '<span><i class="fa fa-plus"></i> ' . tr ( 'Crea preventivo' ) . '</span>' ,
'data' => [
'title' => tr ( 'Creare preventivo?' ),
'msg' => tr ( 'Ogni articolo selezionato, verrà aggiunto al preventivo' ) . '
< br >< br > {[ " type " : " text " , " label " : " '.tr('Nome preventivo').' " , " name " : " nome " , " required " : 1 ]}
{[ " type " : " select " , " label " : " '.tr('Cliente').' " , " name " : " id_cliente " , " ajax-source " : " clienti " , " required " : 1 ]}
2023-08-04 14:54:28 +02:00
{[ " type " : " select " , " label " : " '.tr('Sezionale').' " , " name " : " id_segment " , " required " : 1 , " ajax-source " : " segmenti " , " select-options " : '.json_encode([' id_module ' => $id_preventivi, ' is_sezionale ' => 1]).' , " value " : " '. $id_segment .' " , " select-options-escape " : true ]}
2023-04-18 16:55:37 +02:00
{[ " type " : " select " , " label " : " '.tr('Tipo di attività').' " , " name " : " id_tipo " , " ajax-source " : " tipiintervento " , " required " : 1 ]}
2021-01-25 16:44:56 +01:00
{[ " type " : " date " , " label " : " '.tr('Data').' " , " name " : " data " , " required " : 1 , " value " : " -now- " ]} ' ,
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
],
];
2024-08-07 10:25:17 +02:00
if ( App :: debug ()) {
$operations [ 'delete-bulk' ] = [
'text' => '<span><i class="fa fa-trash"></i> ' . tr ( 'Elimina selezionati' ) . '</span>' ,
'data' => [
'msg' => tr ( 'Vuoi davvero eliminare gli articoli selezionati?' ),
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-danger' ,
],
];
}
2021-10-04 15:46:39 +02:00
2024-08-07 10:25:17 +02:00
$operations [ 'export-csv' ] = [
'text' => '<span><i class="fa fa-download"></i> ' . tr ( 'Esporta selezionati' ) . '</span>' ,
2021-10-04 15:47:39 +02:00
'data' => [
2024-08-07 10:25:17 +02:00
'msg' => tr ( 'Vuoi esportare un CSV con gli articoli selezionati?' ),
2021-10-04 15:47:39 +02:00
'button' => tr ( 'Procedi' ),
2024-08-07 10:25:17 +02:00
'class' => 'btn btn-lg btn-success' ,
'blank' => true ,
2021-10-04 15:47:39 +02:00
],
];
2021-10-25 15:28:10 +02:00
$operations [ 'set-acquisto-ifzero' ] = [
'text' => '<span><i class="fa fa-refresh"></i> ' . tr ( 'Imposta prezzo di acquisto da fattura ' ) . '</span>' ,
'data' => [
'title' => tr ( 'Impostare il prezzo di acquisto per gli articoli selezionati?' ),
'msg' => 'Il prezzo di acquisto verrà impostato sugli articoli che non hanno nessun prezzo di acquisto inserito e verrà aggiornato in base alla fattura di acquisto più recente' ,
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
'blank' => false ,
],
];
2022-05-19 17:42:41 +02:00
$operations [ 'set-provvigione' ] = [
'text' => '<span><i class="fa fa-percent"></i> ' . tr ( 'Imposta una provvigione' ) . '</span>' ,
'data' => [
'title' => tr ( 'Impostare una provvigione?' ),
'msg' => tr ( 'Selezionare un agente e la provvigione prevista:' ) . '
< br >< br > {[ " type " : " select " , " label " : " '.tr('Agente').' " , " name " : " idagente " , " required " : 1 , " ajax-source " : " agenti " ]}
< br > {[ " type " : " number " , " label " : " '.tr('Provvigione').' " , " name " : " provvigione " , " required " : 1 , " icon-after " : " choice|untprc| " ]} ' ,
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
],
];
2024-08-07 10:25:17 +02:00
$operations [ 'stampa-etichette' ] = [
'text' => '<span><i class="fa fa-barcode"></i> ' . tr ( 'Stampa etichette' ) . '</span>' ,
2023-12-28 17:14:26 +01:00
'data' => [
2024-08-07 10:25:17 +02:00
'title' => tr ( 'Stampare le etichette?' ),
'msg' => tr ( 'Per ciascun articolo selezionato, verrà stampata un\'etichetta' ) . ' < br >< br >
{[ " type " : " select " , " label " : " '.tr('Tipologia stampa').' " , " name " : " tipologia " , " required " : 1 , " values " : " list= \" singola \" : \" Singola \" , \" a4 \" : \" Formato A4 \" " , " value " : " singola " ]} < br > ' ,
2023-12-28 17:14:26 +01:00
'button' => tr ( 'Procedi' ),
'class' => 'btn btn-lg btn-warning' ,
2024-08-07 10:25:17 +02:00
'blank' => true ,
2023-12-28 17:14:26 +01:00
],
];
2020-05-29 17:12:23 +02:00
return $operations ;