feat: update sales ui
Build & Deploy iOS to TestFlight / build-and-deploy (push) Waiting to run

This commit is contained in:
Efril
2026-06-23 23:18:22 +07:00
parent 7137cd2335
commit 8d801e52d9
37 changed files with 3234 additions and 833 deletions
File diff suppressed because it is too large Load Diff
@@ -11,6 +11,7 @@ _$SalesAnalyticDtoImpl _$$SalesAnalyticDtoImplFromJson(
) => _$SalesAnalyticDtoImpl(
organizationId: json['organization_id'] as String?,
outletId: json['outlet_id'] as String?,
outletName: json['outlet_name'] as String?,
dateFrom: json['date_from'] == null
? null
: DateTime.parse(json['date_from'] as String),
@@ -33,6 +34,7 @@ Map<String, dynamic> _$$SalesAnalyticDtoImplToJson(
) => <String, dynamic>{
'organization_id': instance.organizationId,
'outlet_id': instance.outletId,
'outlet_name': instance.outletName,
'date_from': instance.dateFrom?.toIso8601String(),
'date_to': instance.dateTo?.toIso8601String(),
'group_by': instance.groupBy,
@@ -219,6 +221,7 @@ _$CategoryAnalyticDtoImpl _$$CategoryAnalyticDtoImplFromJson(
) => _$CategoryAnalyticDtoImpl(
organizationId: json['organization_id'] as String?,
outletId: json['outlet_id'] as String?,
outletName: json['outlet_name'] as String?,
dateFrom: json['date_from'] as String?,
dateTo: json['date_to'] as String?,
data: (json['data'] as List<dynamic>?)
@@ -231,6 +234,7 @@ Map<String, dynamic> _$$CategoryAnalyticDtoImplToJson(
) => <String, dynamic>{
'organization_id': instance.organizationId,
'outlet_id': instance.outletId,
'outlet_name': instance.outletName,
'date_from': instance.dateFrom,
'date_to': instance.dateTo,
'data': instance.data,
@@ -391,6 +395,7 @@ _$DashboardAnalyticDtoImpl _$$DashboardAnalyticDtoImplFromJson(
) => _$DashboardAnalyticDtoImpl(
organizationId: json['organization_id'] as String?,
outletId: json['outlet_id'] as String?,
outletName: json['outlet_name'] as String?,
dateFrom: json['date_from'] as String?,
dateTo: json['date_to'] as String?,
overview: json['overview'] == null
@@ -414,6 +419,7 @@ Map<String, dynamic> _$$DashboardAnalyticDtoImplToJson(
) => <String, dynamic>{
'organization_id': instance.organizationId,
'outlet_id': instance.outletId,
'outlet_name': instance.outletName,
'date_from': instance.dateFrom,
'date_to': instance.dateTo,
'overview': instance.overview,
@@ -431,6 +437,9 @@ _$DashboardOverviewDtoImpl _$$DashboardOverviewDtoImplFromJson(
totalCustomers: (json['total_customers'] as num?)?.toInt(),
voidedOrders: (json['voided_orders'] as num?)?.toInt(),
refundedOrders: (json['refunded_orders'] as num?)?.toInt(),
totalItemSold: (json['total_item_sold'] as num?)?.toInt(),
totalLowStock: (json['total_low_stock'] as num?)?.toInt(),
totalProductActive: (json['total_product_active'] as num?)?.toInt(),
);
Map<String, dynamic> _$$DashboardOverviewDtoImplToJson(
@@ -442,6 +451,9 @@ Map<String, dynamic> _$$DashboardOverviewDtoImplToJson(
'total_customers': instance.totalCustomers,
'voided_orders': instance.voidedOrders,
'refunded_orders': instance.refundedOrders,
'total_item_sold': instance.totalItemSold,
'total_low_stock': instance.totalLowStock,
'total_product_active': instance.totalProductActive,
};
_$DashboardTopProductDtoImpl _$$DashboardTopProductDtoImplFromJson(
@@ -523,6 +535,7 @@ _$ProductAnalyticDtoImpl _$$ProductAnalyticDtoImplFromJson(
) => _$ProductAnalyticDtoImpl(
organizationId: json['organization_id'] as String?,
outletId: json['outlet_id'] as String?,
outletName: json['outlet_name'] as String?,
dateFrom: json['date_from'] as String?,
dateTo: json['date_to'] as String?,
data: (json['data'] as List<dynamic>?)
@@ -535,6 +548,7 @@ Map<String, dynamic> _$$ProductAnalyticDtoImplToJson(
) => <String, dynamic>{
'organization_id': instance.organizationId,
'outlet_id': instance.outletId,
'outlet_name': instance.outletName,
'date_from': instance.dateFrom,
'date_to': instance.dateTo,
'data': instance.data,
@@ -545,12 +559,22 @@ _$ProductAnalyticDataDtoImpl _$$ProductAnalyticDataDtoImplFromJson(
) => _$ProductAnalyticDataDtoImpl(
productId: json['product_id'] as String?,
productName: json['product_name'] as String?,
productSku: json['product_sku'] as String?,
productPrice: (json['product_price'] as num?)?.toInt(),
categoryId: json['category_id'] as String?,
categoryName: json['category_name'] as String?,
categoryOrder: (json['category_order'] as num?)?.toInt(),
quantitySold: (json['quantity_sold'] as num?)?.toInt(),
revenue: (json['revenue'] as num?)?.toInt(),
averagePrice: (json['average_price'] as num?)?.toDouble(),
orderCount: (json['order_count'] as num?)?.toInt(),
standardHppPerUnit: (json['standard_hpp_per_unit'] as num?)?.toInt(),
standardHppTotal: (json['standard_hpp_total'] as num?)?.toInt(),
fifoHppPerUnit: (json['fifo_hpp_per_unit'] as num?)?.toInt(),
fifoHppTotal: (json['fifo_hpp_total'] as num?)?.toInt(),
movingAverageHppPerUnit: (json['moving_average_hpp_per_unit'] as num?)
?.toInt(),
movingAverageHppTotal: (json['moving_average_hpp_total'] as num?)?.toInt(),
);
Map<String, dynamic> _$$ProductAnalyticDataDtoImplToJson(
@@ -558,12 +582,21 @@ Map<String, dynamic> _$$ProductAnalyticDataDtoImplToJson(
) => <String, dynamic>{
'product_id': instance.productId,
'product_name': instance.productName,
'product_sku': instance.productSku,
'product_price': instance.productPrice,
'category_id': instance.categoryId,
'category_name': instance.categoryName,
'category_order': instance.categoryOrder,
'quantity_sold': instance.quantitySold,
'revenue': instance.revenue,
'average_price': instance.averagePrice,
'order_count': instance.orderCount,
'standard_hpp_per_unit': instance.standardHppPerUnit,
'standard_hpp_total': instance.standardHppTotal,
'fifo_hpp_per_unit': instance.fifoHppPerUnit,
'fifo_hpp_total': instance.fifoHppTotal,
'moving_average_hpp_per_unit': instance.movingAverageHppPerUnit,
'moving_average_hpp_total': instance.movingAverageHppTotal,
};
_$PaymentMethodAnalyticDtoImpl _$$PaymentMethodAnalyticDtoImplFromJson(
@@ -571,6 +604,7 @@ _$PaymentMethodAnalyticDtoImpl _$$PaymentMethodAnalyticDtoImplFromJson(
) => _$PaymentMethodAnalyticDtoImpl(
organizationId: json['organization_id'] as String?,
outletId: json['outlet_id'] as String?,
outletName: json['outlet_name'] as String?,
dateFrom: json['date_from'] as String?,
dateTo: json['date_to'] as String?,
groupBy: json['group_by'] as String?,
@@ -589,6 +623,7 @@ Map<String, dynamic> _$$PaymentMethodAnalyticDtoImplToJson(
) => <String, dynamic>{
'organization_id': instance.organizationId,
'outlet_id': instance.outletId,
'outlet_name': instance.outletName,
'date_from': instance.dateFrom,
'date_to': instance.dateTo,
'group_by': instance.groupBy,
@@ -795,6 +830,7 @@ _$ExclusiveSummaryDtoImpl _$$ExclusiveSummaryDtoImplFromJson(
) => _$ExclusiveSummaryDtoImpl(
organizationId: json['organization_id'] as String?,
outletId: json['outlet_id'] as String?,
outletName: json['outlet_name'] as String?,
period: json['period'] == null
? null
: ExclusiveSummaryPeriodDto.fromJson(
@@ -839,6 +875,7 @@ Map<String, dynamic> _$$ExclusiveSummaryDtoImplToJson(
) => <String, dynamic>{
'organization_id': instance.organizationId,
'outlet_id': instance.outletId,
'outlet_name': instance.outletName,
'period': instance.period,
'summary': instance.summary,
'reimburse': instance.reimburse,
@@ -7,6 +7,7 @@ class CategoryAnalyticDto with _$CategoryAnalyticDto {
const factory CategoryAnalyticDto({
@JsonKey(name: 'organization_id') String? organizationId,
@JsonKey(name: 'outlet_id') String? outletId,
@JsonKey(name: 'outlet_name') String? outletName,
@JsonKey(name: 'date_from') String? dateFrom,
@JsonKey(name: 'date_to') String? dateTo,
@JsonKey(name: 'data') List<CategoryAnalyticItemDto>? data,
@@ -18,6 +19,7 @@ class CategoryAnalyticDto with _$CategoryAnalyticDto {
CategoryAnalytic toDomain() => CategoryAnalytic(
organizationId: organizationId ?? "",
outletId: outletId ?? "",
outletName: outletName ?? "",
dateFrom: dateFrom ?? "",
dateTo: dateTo ?? "",
data: data?.map((e) => e.toDomain()).toList() ?? [],
@@ -7,6 +7,7 @@ class DashboardAnalyticDto with _$DashboardAnalyticDto {
const factory DashboardAnalyticDto({
@JsonKey(name: 'organization_id') String? organizationId,
@JsonKey(name: 'outlet_id') String? outletId,
@JsonKey(name: 'outlet_name') String? outletName,
@JsonKey(name: 'date_from') String? dateFrom,
@JsonKey(name: 'date_to') String? dateTo,
@JsonKey(name: 'overview') DashboardOverviewDto? overview,
@@ -22,6 +23,7 @@ class DashboardAnalyticDto with _$DashboardAnalyticDto {
DashboardAnalytic toDomain() => DashboardAnalytic(
organizationId: organizationId ?? '',
outletId: outletId ?? '',
outletName: outletName ?? '',
dateFrom: dateFrom ?? '',
dateTo: dateTo ?? '',
overview: overview?.toDomain() ?? DashboardOverview.empty(),
@@ -42,6 +44,9 @@ class DashboardOverviewDto with _$DashboardOverviewDto {
@JsonKey(name: 'total_customers') int? totalCustomers,
@JsonKey(name: 'voided_orders') int? voidedOrders,
@JsonKey(name: 'refunded_orders') int? refundedOrders,
@JsonKey(name: 'total_item_sold') int? totalItemSold,
@JsonKey(name: 'total_low_stock') int? totalLowStock,
@JsonKey(name: 'total_product_active') int? totalProductActive,
}) = _DashboardOverviewDto;
factory DashboardOverviewDto.fromJson(Map<String, dynamic> json) =>
@@ -54,6 +59,9 @@ class DashboardOverviewDto with _$DashboardOverviewDto {
totalCustomers: totalCustomers ?? 0,
voidedOrders: voidedOrders ?? 0,
refundedOrders: refundedOrders ?? 0,
totalItemSold: totalItemSold ?? 0,
totalLowStock: totalLowStock ?? 0,
totalProductActive: totalProductActive ?? 0,
);
}
@@ -7,6 +7,7 @@ class ExclusiveSummaryDto with _$ExclusiveSummaryDto {
const factory ExclusiveSummaryDto({
@JsonKey(name: 'organization_id') String? organizationId,
@JsonKey(name: 'outlet_id') String? outletId,
@JsonKey(name: 'outlet_name') String? outletName,
@JsonKey(name: 'period') ExclusiveSummaryPeriodDto? period,
@JsonKey(name: 'summary') ExclusiveSummarySummaryDto? summary,
@JsonKey(name: 'reimburse') ExclusiveSummaryReimburseDto? reimburse,
@@ -26,6 +27,7 @@ class ExclusiveSummaryDto with _$ExclusiveSummaryDto {
ExclusiveSummary toDomain() => ExclusiveSummary(
organizationId: organizationId ?? '',
outletId: outletId ?? '',
outletName: outletName ?? '',
period: period?.toDomain() ?? ExclusiveSummaryPeriod.empty(),
summary: summary?.toDomain() ?? ExclusiveSummarySummary.empty(),
reimburse: reimburse?.toDomain() ?? ExclusiveSummaryReimburse.empty(),
@@ -7,6 +7,7 @@ class PaymentMethodAnalyticDto with _$PaymentMethodAnalyticDto {
const factory PaymentMethodAnalyticDto({
@JsonKey(name: 'organization_id') String? organizationId,
@JsonKey(name: 'outlet_id') String? outletId,
@JsonKey(name: 'outlet_name') String? outletName,
@JsonKey(name: 'date_from') String? dateFrom,
@JsonKey(name: 'date_to') String? dateTo,
@JsonKey(name: 'group_by') String? groupBy,
@@ -21,6 +22,7 @@ class PaymentMethodAnalyticDto with _$PaymentMethodAnalyticDto {
return PaymentMethodAnalytic(
organizationId: organizationId ?? '',
outletId: outletId ?? '',
outletName: outletName ?? '',
dateFrom: dateFrom ?? '',
dateTo: dateTo ?? '',
groupBy: groupBy ?? '',
@@ -7,6 +7,7 @@ class ProductAnalyticDto with _$ProductAnalyticDto {
const factory ProductAnalyticDto({
@JsonKey(name: 'organization_id') String? organizationId,
@JsonKey(name: 'outlet_id') String? outletId,
@JsonKey(name: 'outlet_name') String? outletName,
@JsonKey(name: 'date_from') String? dateFrom,
@JsonKey(name: 'date_to') String? dateTo,
@JsonKey(name: 'data') List<ProductAnalyticDataDto>? data,
@@ -18,6 +19,7 @@ class ProductAnalyticDto with _$ProductAnalyticDto {
ProductAnalytic toDomain() => ProductAnalytic(
organizationId: organizationId ?? "",
outletId: outletId ?? "",
outletName: outletName ?? "",
dateFrom: dateFrom ?? "",
dateTo: dateTo ?? "",
data: data?.map((e) => e.toDomain()).toList() ?? [],
@@ -31,12 +33,21 @@ class ProductAnalyticDataDto with _$ProductAnalyticDataDto {
const factory ProductAnalyticDataDto({
@JsonKey(name: 'product_id') String? productId,
@JsonKey(name: 'product_name') String? productName,
@JsonKey(name: 'product_sku') String? productSku,
@JsonKey(name: 'product_price') int? productPrice,
@JsonKey(name: 'category_id') String? categoryId,
@JsonKey(name: 'category_name') String? categoryName,
@JsonKey(name: 'category_order') int? categoryOrder,
@JsonKey(name: 'quantity_sold') int? quantitySold,
@JsonKey(name: 'revenue') int? revenue,
@JsonKey(name: 'average_price') double? averagePrice,
@JsonKey(name: 'order_count') int? orderCount,
@JsonKey(name: 'standard_hpp_per_unit') int? standardHppPerUnit,
@JsonKey(name: 'standard_hpp_total') int? standardHppTotal,
@JsonKey(name: 'fifo_hpp_per_unit') int? fifoHppPerUnit,
@JsonKey(name: 'fifo_hpp_total') int? fifoHppTotal,
@JsonKey(name: 'moving_average_hpp_per_unit') int? movingAverageHppPerUnit,
@JsonKey(name: 'moving_average_hpp_total') int? movingAverageHppTotal,
}) = _ProductAnalyticDataDto;
factory ProductAnalyticDataDto.fromJson(Map<String, dynamic> json) =>
@@ -45,11 +56,20 @@ class ProductAnalyticDataDto with _$ProductAnalyticDataDto {
ProductAnalyticData toDomain() => ProductAnalyticData(
productId: productId ?? "",
productName: productName ?? "",
productSku: productSku ?? "",
productPrice: productPrice ?? 0,
categoryId: categoryId ?? "",
categoryName: categoryName ?? "",
categoryOrder: categoryOrder ?? 0,
quantitySold: quantitySold ?? 0,
revenue: revenue ?? 0,
averagePrice: averagePrice ?? 0,
orderCount: orderCount ?? 0,
standardHppPerUnit: standardHppPerUnit ?? 0,
standardHppTotal: standardHppTotal ?? 0,
fifoHppPerUnit: fifoHppPerUnit ?? 0,
fifoHppTotal: fifoHppTotal ?? 0,
movingAverageHppPerUnit: movingAverageHppPerUnit ?? 0,
movingAverageHppTotal: movingAverageHppTotal ?? 0,
);
}
@@ -7,6 +7,7 @@ class SalesAnalyticDto with _$SalesAnalyticDto {
const factory SalesAnalyticDto({
@JsonKey(name: 'organization_id') String? organizationId,
@JsonKey(name: 'outlet_id') String? outletId,
@JsonKey(name: 'outlet_name') String? outletName,
@JsonKey(name: 'date_from') DateTime? dateFrom,
@JsonKey(name: 'date_to') DateTime? dateTo,
@JsonKey(name: 'group_by') String? groupBy,
@@ -20,6 +21,7 @@ class SalesAnalyticDto with _$SalesAnalyticDto {
SalesAnalytic toDomain() => SalesAnalytic(
organizationId: organizationId ?? '',
outletId: outletId ?? '',
outletName: outletName ?? '',
dateFrom: dateFrom ?? DateTime.fromMillisecondsSinceEpoch(0),
dateTo: dateTo ?? DateTime.fromMillisecondsSinceEpoch(0),
groupBy: groupBy ?? '',