fetchNum("SELECT `an_anagrafiche`.`idanagrafica` FROM `an_anagrafiche` LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `an_tipianagrafiche`.`descrizione` = 'Azienda' AND `an_anagrafiche`.`deleted_at` IS NULL") != 0; } catch (PDOException $e) { $has_azienda = false; } // Controllo sull'utente amministratore try { $has_user = $database->fetchNum('SELECT `id` FROM `zz_users`') != 0; } catch (PDOException $e) { $has_user = false; } // Controlli sulle impostazioni $settings = [ 'Regime Fiscale' => true, 'Tipo Cassa Previdenziale' => false, 'Conto predefinito fatture di vendita' => true, 'Conto predefinito fatture di acquisto' => true, "Percentuale ritenuta d'acconto" => false, "Causale ritenuta d'acconto" => false, 'Valuta' => true, ]; $has_settings = true; try { if (!empty(setting("Percentuale ritenuta d'acconto"))) { $settings["Causale ritenuta d'acconto"] = true; } foreach ($settings as $setting => $required) { if (empty(setting($setting)) && $required) { $has_settings = false; break; } } } catch (QueryException $e) { $has_settings = false; } self::$init = [ 'has_user' => $has_user, 'has_azienda' => $has_azienda, 'has_settings' => $has_settings, 'settings' => $settings, ]; } return self::$init; } public function index(Request $request) { $database = database(); $values = self::getInitValues(); $settings = []; foreach ($values['settings'] as $setting => $required) { if (empty(setting($setting))) { $settings[] = Setting::pool($setting)->input($required); } } // Form dell'anagrafica Azienda ob_start(); $module_id = module('Anagrafiche')->id; $idtipoanagrafica = $database->fetchOne("SELECT idtipoanagrafica AS id FROM an_tipianagrafiche WHERE descrizione='Azienda'")['id']; $readonly_tipo = true; $skip_permissions = true; $api_request = false; include base_path('legacy').'/modules/anagrafiche/add.php'; $anagrafica = ob_get_clean(); $form = str_replace('', '', $anagrafica); $args = [ 'has_user' => $values['has_user'], 'has_azienda' => $values['has_azienda'], 'has_settings' => $values['has_settings'], 'settings' => $settings, 'azienda_form' => $form, ]; return view('config.initialization', $args); } public function save(Request $request) { $database = database(); $values = self::getInitValues(); $has_user = $values['has_user']; $has_azienda = $values['has_azienda']; $has_settings = $values['has_settings']; $settings = $values['settings']; // Azienda predefinita if (!$has_azienda) { $this->saveAnagrafica(); } // Utente amministratore if (!$has_user) { // Creazione utente Amministratore $gruppo = Group::where('nome', '=', 'Amministratori')->first(); $username = $request->input('admin_username'); $password = $request->input('admin_password'); $email = $request->input('admin_email'); $user = User::build($gruppo, $username, $email, $password); $id_record = $database->selectOne('an_anagrafiche', ['idanagrafica'])['idanagrafica']; $user->idanagrafica = isset($id_record) ? $id_record : 0; $user->save(); } if (!$has_settings) { foreach ($settings as $setting => $required) { $setting = Setting::pool($setting); $value = $request->input('setting.'.$setting['id']); if (!empty($value)) { Setting::pool($setting['nome'])->setValue($value); } } } return redirect(route('initialization')); } protected function saveAnagrafica() { $dbo = $database = database(); // Inizializzazione forzata per Filter Filter::getPOST(); Filter::set('post', 'op', 'add'); // Salvataggio anagrafica tramite modulo Anagrafiche $id_module = module('Anagrafiche')['id']; $skip_permissions = true; $api_request = false; include base_path('legacy').'/modules/anagrafiche/actions.php'; // Logo stampe if (!empty($_FILES) && !empty($_FILES['blob']['name'])) { $file = Upload::build($_FILES['blob'], [ 'name' => 'Logo stampe', 'id_module' => $id_module, 'id_record' => $id_record, ]); Setting::pool('Logo stampe')->setValue($file); } } }