|
|
@@ -6,7 +6,7 @@ import 'database_provider.dart';
|
|
|
|
|
|
class OrderState {
|
|
|
final Ordine? order;
|
|
|
- final List<RigaOrdine> lines;
|
|
|
+ final List<VRigheOrdineData> lines;
|
|
|
final List<int> removedLineIds;
|
|
|
final bool isLoading;
|
|
|
final String? error;
|
|
|
@@ -57,7 +57,7 @@ class OrderNotifier extends Notifier<OrderState> {
|
|
|
final mgr = _buildManager();
|
|
|
final order = await mgr.loadOrder(id);
|
|
|
if (order != null) {
|
|
|
- final lines = await mgr.getOrderLines(id);
|
|
|
+ final lines = await ref.read(ordiniDaoProvider).getOrderLinesView(id);
|
|
|
state = OrderState(order: order, lines: lines);
|
|
|
} else {
|
|
|
state = const OrderState(error: 'Ordine non trovato');
|
|
|
@@ -72,7 +72,7 @@ class OrderNotifier extends Notifier<OrderState> {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- void addLine(RigaOrdine line) {
|
|
|
+ void addLine(VRigheOrdineData line) {
|
|
|
if (state.order == null) return;
|
|
|
state = OrderState(
|
|
|
order: state.order,
|
|
|
@@ -84,7 +84,7 @@ class OrderNotifier extends Notifier<OrderState> {
|
|
|
void removeLine(int index) {
|
|
|
if (state.order == null || index < 0 || index >= state.lines.length) return;
|
|
|
final removed = state.lines[index];
|
|
|
- final newLines = List<RigaOrdine>.from(state.lines)..removeAt(index);
|
|
|
+ final newLines = List<VRigheOrdineData>.from(state.lines)..removeAt(index);
|
|
|
final newRemovedIds = [
|
|
|
...state.removedLineIds,
|
|
|
if (removed.idRigaOrdine > 0) removed.idRigaOrdine,
|
|
|
@@ -109,11 +109,32 @@ class OrderNotifier extends Notifier<OrderState> {
|
|
|
order = order.copyWith(idOrdine: id);
|
|
|
}
|
|
|
|
|
|
- for (final line in state.lines) {
|
|
|
- final lineToSave = line.copyWith(
|
|
|
- idOrdine: Value<int?>(order.idOrdine),
|
|
|
+ for (final viewLine in state.lines) {
|
|
|
+ var lineToSave = RigaOrdine(
|
|
|
+ idRigaOrdine: viewLine.idRigaOrdine,
|
|
|
+ idOrdine: order.idOrdine,
|
|
|
+ idArticolo: viewLine.idArticolo,
|
|
|
+ idListino: viewLine.idListino,
|
|
|
+ quantita: viewLine.quantita,
|
|
|
+ prezzoLordo: viewLine.prezzoLordo,
|
|
|
+ sconto1: viewLine.sconto1,
|
|
|
+ sconto2: viewLine.sconto2,
|
|
|
+ sconto3: viewLine.sconto3,
|
|
|
+ sconto4: viewLine.sconto4,
|
|
|
+ sconto5: viewLine.sconto5,
|
|
|
+ prezzoNetto: viewLine.prezzoNetto,
|
|
|
+ scontoMerce: viewLine.scontoMerce,
|
|
|
+ totale: viewLine.totale,
|
|
|
+ dataConsegna: viewLine.dataConsegna,
|
|
|
+ dataModifica: viewLine.dataModifica,
|
|
|
+ qtaEvasa: viewLine.qtaEvasa,
|
|
|
+ stato: viewLine.stato,
|
|
|
+ colli: viewLine.colli,
|
|
|
+ promozione: viewLine.promozione,
|
|
|
+ rigaPromozione: viewLine.rigaPromozione,
|
|
|
+ prezzoManuale: viewLine.prezzoManuale,
|
|
|
);
|
|
|
- if (line.idRigaOrdine == 0) {
|
|
|
+ if (viewLine.idRigaOrdine == 0) {
|
|
|
await dao.insertOrderLine(lineToSave);
|
|
|
} else {
|
|
|
await dao.updateOrderLine(lineToSave);
|