Creato funzione di filtraggio e assegnazione categoria in importazione in base alle regole di assegnazione
This commit is contained in:
parent
652f9a7e76
commit
f82f65a0c5
@ -44,7 +44,15 @@ class ImportRuleController extends Controller
|
||||
'is_active' => 'boolean',
|
||||
'created_by' => 'nullable|string|max:255',
|
||||
]);
|
||||
ImportRule::create($request->all());
|
||||
ImportRule::create(
|
||||
[
|
||||
'category_id'=>$request->category_id,
|
||||
'pattern'=>$request->pattern,
|
||||
'description'=>$request->description,
|
||||
'is_active'=>1,
|
||||
]
|
||||
|
||||
);
|
||||
return redirect()->route('import_rules.index'); // Redirect to the index after storing the rule
|
||||
}
|
||||
|
||||
|
@ -381,7 +381,7 @@ class MovimentiController extends Controller
|
||||
'mov_descrizione' => $line[$this->map['mov_descrizione']],
|
||||
'mov_importo_dare' => $line[$this->map['mov_importo_dare']],
|
||||
'mov_importo_avere' => $line[$this->map['mov_importo_avere']],
|
||||
'mov_fk_categoria' => '1',
|
||||
'mov_fk_categoria' => Movimenti::setCategoriesFromCsv($line[$this->map['mov_descrizione']]),
|
||||
'mov_fk_tags' => 1,
|
||||
'mov_inserito_da' => Auth::id(),
|
||||
'conto_id_da' => 1
|
||||
|
@ -8,7 +8,13 @@ use Illuminate\Database\Eloquent\Model;
|
||||
class ImportRule extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = [
|
||||
'category_id',
|
||||
'pattern',
|
||||
'description',
|
||||
'is_active',
|
||||
'created_by',
|
||||
];
|
||||
|
||||
// In MovimentiController o direttamente nel model Movimenti
|
||||
|
||||
|
@ -379,9 +379,23 @@ JOIN categories as c ON a.mov_fk_categoria=c.id';
|
||||
public static function getSuggestedCategory($descrizione)
|
||||
{
|
||||
$rule = ImportRule::whereRaw('? LIKE CONCAT("%", pattern, "%")', [$descrizione])->first();
|
||||
return $rule ? $rule->category_id : null;
|
||||
return $rule ? $rule->category_id : 1;
|
||||
}
|
||||
|
||||
public static function setCategoriesFromCsv($descrizione)
|
||||
{
|
||||
$rules = \App\Models\ImportRule::all();
|
||||
$categoria = 1; // Default category
|
||||
|
||||
foreach ($rules as $rule) {
|
||||
if (preg_match("/$rule->pattern/i", $descrizione)) {
|
||||
$categoria = $rule->category_id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $categoria;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -17,9 +17,9 @@ class CategorieSeeder extends Seeder
|
||||
// Inserisce le categorie necessarie
|
||||
DB::table('categories')->insert(
|
||||
[
|
||||
'cat_name'=>'Automobili',
|
||||
'cat_name'=>'Da Selezionare',
|
||||
'cat_uscita'=>1,
|
||||
'cat_entrata'=>0,
|
||||
'cat_entrata'=>1,
|
||||
]
|
||||
);
|
||||
DB::table('categories')->insert(
|
||||
@ -30,9 +30,23 @@ class CategorieSeeder extends Seeder
|
||||
);
|
||||
DB::table('categories')->insert(
|
||||
[
|
||||
'cat_name'=>'Utenze',
|
||||
'cat_name'=>'Automobili',
|
||||
'cat_uscita'=>1,
|
||||
'cat_entrata'=>0]
|
||||
);
|
||||
DB::table('categories')->insert(
|
||||
[
|
||||
'cat_name'=>'Alimentari',
|
||||
'cat_uscita'=>1,
|
||||
'cat_entrata'=>0,
|
||||
]
|
||||
);
|
||||
DB::table('categories')->insert(
|
||||
[
|
||||
'cat_name'=>'Utenze',
|
||||
'cat_uscita'=>1,
|
||||
'cat_entrata'=>0,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -98,15 +98,23 @@ Route::middleware([
|
||||
Route::get('admin/movimenti/importgen', [MovimentiController::class,'importFileGen'])->name('importGen');
|
||||
Route::post('admin/movimenti/importgen', [MovimentiController::class,'importGenericCsv']);
|
||||
Route::post('admin/movimenti/importmapped', [MovimentiController::class,'importmappedCsv'])->name('conti.map.store');
|
||||
Route::get('/admin/movimenti/giroconto', [MovimentiController::class,'giroconto'])->name('giroconto');
|
||||
Route::post('/admin/movimenti/giroconto', [MovimentiController::class,'girocontoPost']);
|
||||
|
||||
|
||||
Route::get('/admin/movimenti/import_rules', [ImportRuleController::class, 'index'])->name('import_rules.index');
|
||||
Route::get('/admin/movimenti/import_rules/create', [ImportRuleController::class, 'create'])->name('import_rules.create');
|
||||
Route::post('/admin/movimenti/import_rules', [ImportRuleController::class, 'store'])->name('import_rules.store');
|
||||
Route::get('/admin/movimenti/import_rules/{import_rule}', [ImportRuleController::class, 'show'])->name('import_rules.show');
|
||||
Route::get('/admin/movimenti/import_rules/{import_rule}/edit', [ImportRuleController::class, 'edit'])->name('import_rules.edit');
|
||||
Route::put('/admin/movimenti/import_rules/{import_rule}', [ImportRuleController::class, 'update'])->name('import_rules.update');
|
||||
Route::delete('/admin/movimenti/import_rules/{import_rule}', [ImportRuleController::class, 'destroy'])->name('import_rules.destroy');
|
||||
|
||||
|
||||
Route::resource('admin/conti', ContoController::class);
|
||||
|
||||
|
||||
Route::get('/admin/movimenti/giroconto', [MovimentiController::class,'giroconto'])->name('giroconto');
|
||||
Route::post('/admin/movimenti/giroconto', [MovimentiController::class,'girocontoPost']);
|
||||
|
||||
// CATEGORIE
|
||||
Route::get('admin/categorie', [CategorieController::class,'listCategorie'])->name('categorie');
|
||||
Route::post('admin/categorie', [CategorieController::class,'insCategorie']);
|
||||
|
Loading…
x
Reference in New Issue
Block a user