fetchRow("SELECT id FROM auth_permissions WHERE name = 'sales.quote.view'")) { $this->table('auth_permissions')->insert([ 'name' => 'sales.quote.view', 'display_name' => 'Preventivi matrici', 'description' => 'Calcolare preventivi: costo mescola, ricarico, prezzo suggerito', 'removable' => 1, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ])->saveData(); } if (!$this->hasTable('sales_quotes')) { $this->table('sales_quotes', ['collation' => 'utf8mb4_general_ci']) ->addColumn('created_at', 'datetime') ->addColumn('user_id', 'integer', ['null' => true]) ->addColumn('idmatrice', 'integer') ->addColumn('matrice_name', 'string', ['limit' => 150]) ->addColumn('customer_code', 'string', ['limit' => 20, 'null' => true]) ->addColumn('customer_name', 'string', ['limit' => 200, 'null' => true]) ->addColumn('uom', 'string', ['limit' => 4]) ->addColumn('cost_mix', 'decimal', ['precision' => 12, 'scale' => 4, 'null' => true]) ->addColumn('scrap_pct', 'decimal', ['precision' => 6, 'scale' => 2, 'default' => 0]) ->addColumn('other_costs', 'decimal', ['precision' => 12, 'scale' => 4, 'default' => 0]) ->addColumn('cost_total', 'decimal', ['precision' => 12, 'scale' => 4, 'null' => true]) ->addColumn('markup_pct', 'decimal', ['precision' => 7, 'scale' => 2, 'null' => true]) ->addColumn('price_suggested', 'decimal', ['precision' => 12, 'scale' => 4, 'null' => true]) ->addColumn('price_offered', 'decimal', ['precision' => 12, 'scale' => 4, 'null' => true]) ->addColumn('ref_last_price', 'decimal', ['precision' => 12, 'scale' => 4, 'null' => true]) ->addColumn('ref_avg_price', 'decimal', ['precision' => 12, 'scale' => 4, 'null' => true]) ->addColumn('mix_detail', 'text', ['null' => true]) ->addColumn('comment', 'text', ['null' => true]) ->addIndex(['idmatrice']) ->addIndex(['customer_code']) ->addIndex(['created_at']) ->create(); } } public function down(): void { if ($this->hasTable('sales_quotes')) $this->table('sales_quotes')->drop()->save(); $this->execute("DELETE pr FROM auth_permission_role pr JOIN auth_permissions p ON p.id = pr.permission_id WHERE p.name = 'sales.quote.view'"); $this->execute("DELETE FROM auth_permissions WHERE name = 'sales.quote.view'"); } }