tabella articoli, bulk activate e deactivate

Sezione per la presentazione e discussione di personalizzazioni che possono essere utili nella versione di base del gestionale.
Rispondi
dario_web3lab
Messaggi: 17
Iscritto il: 25 set 2020 08:46

tabella articoli, bulk activate e deactivate

Messaggio da dario_web3lab »

Ciao a tutti, se puo interessare, modificando il file
modules/articoli/bulk.php
ho aggiunto la possibilità di attivare e disattivare più articoli in un colpo solo:

Codice: Seleziona tutto

<?php

include_once __DIR__.'/../../core.php';
use Modules\Articoli\Articolo;

switch (post('op')) {
    case 'change_acquisto':
        foreach ($id_records as $id) {
            $articolo = Articolo::find($id);
            $percentuale = post('percentuale');

            $new_prezzo_acquisto = $articolo->prezzo_acquisto + ($articolo->prezzo_acquisto * $percentuale / 100);
            $articolo->prezzo_acquisto = $new_prezzo_acquisto;
            $articolo->save();
        }

        flash()->info(tr('Prezzi di acquisto aggiornati!'));

        break;

    case 'delete-bulk':

        foreach ($id_records as $id) {
            $elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idarticolo` = '.prepare($id).')

            UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idarticolo` = '.prepare($id).')

            UNION SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`,  0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir FROM `co_preventivi` WHERE `co_preventivi`.`id` IN (SELECT `idpreventivo` FROM `co_righe_preventivi` WHERE `idarticolo` = '.prepare($id).')  ORDER BY `data`');

            if (!empty($elementi)) {
                $dbo->query('UPDATE mg_articoli SET deleted_at = NOW() WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module));
            } else {
                $dbo->query('DELETE FROM `mg_articoli` WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module));
            }
        }

        flash()->info(tr('Articoli eliminati!'));

        break;

    case 'deactivate':
        foreach ($id_records as $id) {
            $articolo = Articolo::find($id);
            $articolo->attivo = 0;
            $articolo->save();
        }
        flash()->info(tr('Articoli disattivati!'));

        break;
    case 'activate':

        foreach ($id_records as $id) {
            $articolo = Articolo::find($id);
            $articolo->attivo = 1;
            $articolo->save();
        }
        flash()->info(tr('Articoli attivati!'));

    break;
}

if (/*App::debug()*/true) {
    $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',
        ],
    ];
}

$operations['change_acquisto'] = [
    'text' => tr('Aggiorna prezzo di acquisto'),
    'data' => [
        'title' => tr('Aggiornare il prezzo di acquisto 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": "number", "label": "'.tr('Percentuale sconto/rincaro').'", "name": "percentuale", "required": 1, "icon-after": "%" ]}',
        'button' => tr('Procedi'),
        'class' => 'btn btn-lg btn-warning',
        'blank' => false,
    ],
];

$operations['deactivate'] = [
    'text' => tr('Disattiva articoli'),
    'data' => [
        'msg' => tr('Vuoi davvero disattivare gli articoli selezionati?'),
        'button' => tr('Procedi'),
        'class' => 'btn btn-lg btn-warning',
    ],
];

$operations['activate'] = [
    'text' => tr('Attiva articoli'),
    'data' => [
        'msg' => tr('Vuoi davvero attivare gli articoli selezionati?'),
        'button' => tr('Procedi'),
        'class' => 'btn btn-lg btn-success',
    ],
];

return $operations;
Ultima modifica di dario_web3lab il 30 set 2020 08:24, modificato 1 volta in totale.

Avatar utente
dasc3er
Messaggi: 1157
Iscritto il: 11 lug 2016 17:41

Re: tabella articoli, bulk activate e deactivate

Messaggio da dasc3er »

Ciao, ti consiglio di inserire il codice in un apposito tag bbcode disponibile nell'editor, così da semplificarne l'utilizzo :D

Rispondi