Erweitere VoTiAn NG um Auftrags-, Stamm- und Verwaltungsfunktionen
Ergänzt Auftragserfassung und -bearbeitung, Unternehmerbelege, Stornos, Lagerkorrekturen, Stammdaten, Abrechnung, CRM, Formulare, Berichte und Preisverwaltung auf Basis der aktuellen PHP-Anwendung. Enthält Integrations- und Oberflächentests sowie dokumentierte Abgleiche und Prüfstände.
This commit is contained in:
1 parent
42c87282ee
commit
363bc27c26
190 files changed
+14815
-1857
No files matched your search
@@ -0,0 +1,25 @@
|
||||
package de.stadtbote.votian;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import java.util.*;
|
||||
import static de.stadtbote.votian.ApiController.user;
|
||||
@RestController
|
||||
@RequestMapping("/api/crm")
|
||||
class CrmController {
|
||||
private final ContactService contacts;private final SalesAnalytics sales;
|
||||
CrmController(ContactService contacts,SalesAnalytics sales){this.contacts=contacts;this.sales=sales;}
|
||||
@GetMapping("/options") Map<String,Object> options(Authentication a){return sales.options(user(a));}
|
||||
@GetMapping("/contacts/schema") Map<String,Object> schema(Authentication a,@RequestParam long headquarters){return contacts.schema(user(a),headquarters);}
|
||||
@PostMapping("/contacts/query") List<Map<String,Object>> contacts(Authentication a,@RequestBody ContactService.Query q){return contacts.list(user(a),q);}
|
||||
@GetMapping("/contacts/{id}") Map<String,Object> contact(Authentication a,@PathVariable long id,@RequestParam long headquarters){return contacts.get(user(a),headquarters,id);}
|
||||
@GetMapping("/contacts/{id}/history") List<Map<String,Object>> history(Authentication a,@PathVariable long id,@RequestParam long headquarters){return contacts.history(user(a),headquarters,id);}
|
||||
@PostMapping("/contacts") Map<String,Object> create(Authentication a,@RequestBody ContactService.Save s){return contacts.save(user(a),null,s);}
|
||||
@PutMapping("/contacts/{id}") Map<String,Object> save(Authentication a,@PathVariable long id,@RequestBody ContactService.Save s){return contacts.save(user(a),id,s);}
|
||||
record Delete(long headquarters,String revision){}
|
||||
@DeleteMapping("/contacts/{id}") @ResponseStatus(org.springframework.http.HttpStatus.NO_CONTENT) void remove(Authentication a,@PathVariable long id,@RequestBody Delete s){contacts.remove(user(a),s.headquarters(),id,s.revision());}
|
||||
@PostMapping("/switches") Map<String,Object> switches(Authentication a,@RequestBody SalesAnalytics.Query q){return sales.switches(user(a),q);}
|
||||
record Motivation(String month,List<Long> headquarters){}
|
||||
@PostMapping("/motivation") Map<String,Object> motivation(Authentication a,@RequestBody Motivation q){return sales.motivation(user(a),q.month(),q.headquarters());}
|
||||
@PostMapping("/targets/query") List<Map<String,Object>> targets(Authentication a,@RequestBody SalesAnalytics.TargetAccess s){return sales.targets(user(a),s);}
|
||||
@PostMapping("/targets") Map<String,Object> target(Authentication a,@RequestBody SalesAnalytics.Target s){return sales.target(user(a),s);}
|
||||
}
|
||||
Reference in new issue
Block a user