This commit is contained in:
tzw
2024-09-23 12:15:57 +06:30
68 changed files with 430 additions and 391 deletions

1
.gitignore vendored
View File

@@ -55,3 +55,4 @@ android/app/src/prod/res/values/strings.xml
.gradle/buildOutputCleanup/cache.properties
.gradle/vcs-1/gc.properties
android/key.keystore
android/dev-key.properties

View File

@@ -25,7 +25,7 @@ apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
def keystorePropertiesFile = rootProject.file('dev-key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

View File

@@ -1,5 +1,5 @@
buildscript {
ext.kotlin_version = '1.6.10'
ext.kotlin_version = '1.8.22'
repositories {
google()

View File

@@ -50,14 +50,12 @@ const message_type_profile = "t_profile";
const message_type_shipment = "t_s";
// Fcs shipment status
const fcs_shipment_confirmed_status = "confirmed";
const fcs_shipment_shipped_status = "shipped";
const fcs_shipment_pending_status = "pending";
const fcs_shipment_processing_status = "processing";
const fcs_shipment_canceled_status = "canceled";
const fcs_shipment_processed_status = "processed";
const fcs_shipment_shipped_status = "shipped";
const fcs_shipment_arrived_status = "arrived";
const fcs_shipment_invoiced_status = "invoiced";
const fcs_shipment_delivered_status = "delivered";
const fcs_shipment_canceled_status = "canceled";
// Package status
const package_received_status = "received";

View File

@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/auth_result.dart' as fcs;
import 'package:fcs/domain/entities/auth_status.dart';
import 'package:fcs/domain/entities/setting.dart';

View File

@@ -1,6 +1,6 @@
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/helpers/api_helper.dart';
import 'package:fcs/helpers/firebase_helper.dart';
@@ -47,7 +47,7 @@ class CartonDataProvider {
.collection(path)
.where("carton_number", isEqualTo: term)
.where("is_deleted", isEqualTo: false)
.orderBy("created_at",descending: true)
.orderBy("created_at", descending: true)
.get();
return querySnap.docs.map((e) => Carton.fromMap(e.data(), e.id)).toList();
} catch (e) {

View File

@@ -22,28 +22,8 @@ class FcsShipmentDataProvider {
return data["url"];
}
Future<void> processFcsShipment(String id) async {
return await requestAPI("/fcs_shipments/process", "PUT",
payload: {"id": id}, token: await getToken());
}
Future<void> cancelFcsShipment(String id) async {
return await requestAPI("/fcs_shipments/cancel", "POST",
payload: {"id": id}, token: await getToken());
}
Future<void> shipFcsShipment(String id) async {
return await requestAPI("/fcs_shipments/ship", "PUT",
payload: {"id": id}, token: await getToken());
}
Future<void> arriveFcsShipment(String id) async {
return await requestAPI("/fcs_shipments/arrive", "PUT",
payload: {"id": id}, token: await getToken());
}
Future<void> invoiceFcsShipment(String id) async {
return await requestAPI("/fcs_shipments/invoice", "PUT",
payload: {"id": id}, token: await getToken());
Future<void> updateFcsShipmentStatus(String id, String status) async {
return await requestAPI("/fcs_shipments/status", "PUT",
payload: {"id": id, "status": status}, token: await getToken());
}
}

View File

@@ -1,7 +1,7 @@
import 'dart:convert';
import 'package:fcs/config.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/helpers/api_helper.dart';
import 'package:fcs/helpers/firebase_helper.dart';

View File

@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/cargo_type.dart';
import 'package:fcs/domain/entities/custom_duty.dart';
import 'package:fcs/domain/entities/discount_by_weight.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:convert';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/config.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/helpers/api_helper.dart';
import 'package:fcs/helpers/firebase_helper.dart';

View File

@@ -29,27 +29,7 @@ class FcsShipmentServiceImp implements FcsShipmentService {
}
@override
Future<void> arriveFcsShipment(String id) {
return shipmentDataProvider.arriveFcsShipment(id);
}
@override
Future<void> cancelFcsShipment(String id) {
return shipmentDataProvider.cancelFcsShipment(id);
}
@override
Future<void> invoiceFcsShipment(String id) {
return shipmentDataProvider.invoiceFcsShipment(id);
}
@override
Future<void> processFcsShipment(String id) {
return shipmentDataProvider.processFcsShipment(id);
}
@override
Future<void> shipFcsShipment(String id) {
return shipmentDataProvider.shipFcsShipment(id);
Future<void> updateFcsShipmentStatus(String id, String status) {
return shipmentDataProvider.updateFcsShipmentStatus(id, status);
}
}

View File

@@ -4,9 +4,10 @@ abstract class FcsShipmentService {
Future<void> createFcsShipment(FcsShipment fcsShipment);
Future<void> updateFcsShipment(FcsShipment fcsShipment);
Future<String> report(FcsShipment fcsShipment);
Future<void> processFcsShipment(String id);
Future<void> cancelFcsShipment(String id);
Future<void> shipFcsShipment(String id);
Future<void> arriveFcsShipment(String id);
Future<void> invoiceFcsShipment(String id);
Future<void> updateFcsShipmentStatus(String id, String status);
// Future<void> processFcsShipment(String id);
// Future<void> cancelFcsShipment(String id);
// Future<void> shipFcsShipment(String id);
// Future<void> arriveFcsShipment(String id);
// Future<void> invoiceFcsShipment(String id);
}

View File

@@ -1,7 +1,5 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import '../constants.dart';
class FcsShipment {
String? id;
String? shipmentNumber;
@@ -66,10 +64,6 @@ class FcsShipment {
};
}
bool isConfirmed() {
return status == fcs_shipment_confirmed_status;
}
bool isChangedForEdit(FcsShipment fcsShipment) {
return fcsShipment.shipmentNumber != this.shipmentNumber ||
fcsShipment.cutoffDate != this.cutoffDate ||

View File

@@ -1,5 +1,5 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/vo/delivery_address.dart';

View File

@@ -2,7 +2,7 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/foundation.dart';
import 'package:intl/intl.dart';
import '../constants.dart';
import '../../constants.dart';
DateFormat dayFormat = DateFormat("MMM dd yyyy");
DateFormat timeFormat = DateFormat("hh:mm a");

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_icons_null_safety/flutter_icons_null_safety.dart';

View File

@@ -15,10 +15,10 @@ Future<void> main() async {
Config(
flavor: Flavor.DEV,
color: Colors.blue,
apiURL: "https://asia-northeast1-fcs-dev1.cloudfunctions.net/API12",
apiURL: "https://asia-northeast1-fcs-dev1.cloudfunctions.net/API13",
reportURL: "http://petrok.mokkon.com:7071",
reportProjectID: "fcs-dev",
bucketName: "gs://fcs-dev1-us",
level: Level.ALL);
runApp(App(title:"FCS - Dev"));
runApp(App(title: "FCS - Dev"));
}

View File

@@ -9,10 +9,10 @@ void main() {
Config(
flavor: Flavor.PRODUCTION,
color: Colors.blue,
apiURL: "https://asia-northeast1-fcs-prod1.cloudfunctions.net/API106",
apiURL: "https://asia-northeast1-fcs-prod1.cloudfunctions.net/API13",
reportURL: "http://petrok.mokkon.com:8092",
reportProjectID: "fcs-prod",
bucketName: "gs://fcs-prod1",
level: Level.ALL);
runApp(App(title:"FCS"));
runApp(App(title: "FCS"));
}

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/helpers/theme.dart';

View File

@@ -2,7 +2,7 @@ import 'package:fcs/pages/carton/model/sender_selection_model.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../domain/constants.dart';
import '../../constants.dart';
import '../../domain/entities/fcs_shipment.dart';
import '../../domain/entities/user.dart';
import '../../helpers/theme.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/cargo_type.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/entities/package.dart';

View File

@@ -8,7 +8,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart';
import '../../domain/constants.dart';
import '../../constants.dart';
import '../../domain/entities/carton.dart';
import '../../pagination/paginator_listview.dart';
import '../carton_search/carton_search.dart';

View File

@@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../../domain/constants.dart';
import '../../constants.dart';
import '../../../domain/entities/carton_size.dart';
import '../../../domain/entities/fcs_shipment.dart';
import '../../../domain/vo/local_step.dart';
@@ -88,8 +88,10 @@ class _CartonPackageEditorState extends State<CartonPackageEditor> {
_length = widget.carton.length;
_width = widget.carton.width;
_height = widget.carton.height;
_cargoTypes = widget.carton.cargoTypes.where((e) => !e.isCutomDuty).toList();
_surchareItems = widget.carton.cargoTypes.where((e) => e.isCutomDuty).toList();
_cargoTypes =
widget.carton.cargoTypes.where((e) => !e.isCutomDuty).toList();
_surchareItems =
widget.carton.cargoTypes.where((e) => e.isCutomDuty).toList();
var s = await context
.read<FcsShipmentModel>()

View File

@@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../../domain/constants.dart';
import '../../constants.dart';
import '../../../domain/entities/carton_size.dart';
import '../../../domain/entities/fcs_shipment.dart';
import '../../../domain/vo/local_step.dart';
@@ -27,12 +27,11 @@ class CartonPackageForm extends StatefulWidget {
final User sender;
final User consignee;
const CartonPackageForm(
{Key? key,
required this.sender,
required this.consignee,
})
: super(key: key);
const CartonPackageForm({
Key? key,
required this.sender,
required this.consignee,
}) : super(key: key);
@override
State<CartonPackageForm> createState() => _CartonPackageFormState();
@@ -148,7 +147,7 @@ class _CartonPackageFormState extends State<CartonPackageForm> {
onPrevious: () {
Navigator.pop(context);
},
onContinue: (deliveryType,billType ,shipment, cartonSizeType,
onContinue: (deliveryType, billType, shipment, cartonSizeType,
{standardSize, length, width, height}) {
setState(() {
_selectedDeliveryType = deliveryType;

View File

@@ -3,7 +3,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart';
import '../../../domain/constants.dart';
import '../../constants.dart';
import '../../../domain/entities/carton_size.dart';
import '../../../domain/entities/fcs_shipment.dart';
import '../../../helpers/theme.dart';

View File

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:intl/intl.dart';
import '../../../domain/constants.dart';
import '../../constants.dart';
import '../../../domain/entities/cargo_type.dart';
import '../../../domain/entities/carton_size.dart';
import '../../../domain/entities/fcs_shipment.dart';

View File

@@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../../domain/entities/carton.dart';
import '../../../domain/entities/carton_size.dart';
import '../../../domain/entities/fcs_shipment.dart';

View File

@@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../../domain/entities/carton.dart';
import '../../../domain/entities/carton_size.dart';
import '../../../domain/entities/fcs_shipment.dart';

View File

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:intl/intl.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../../domain/entities/cargo_type.dart';
import '../../../domain/entities/carton.dart';
import '../../../domain/entities/carton_size.dart';

View File

@@ -3,7 +3,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../../domain/entities/carton_size.dart';
import '../../../domain/entities/fcs_shipment.dart';
import '../../../helpers/theme.dart';

View File

@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/entities/fcs_shipment.dart';
import 'package:fcs/pages/main/model/base_model.dart';
@@ -17,7 +17,7 @@ import 'package:path/path.dart' as Path;
class CartonModel extends BaseModel {
final log = Logger('CartonModel');
var defaultShipment =FcsShipment(shipmentNumber: "All shipments", id: all);
var defaultShipment = FcsShipment(shipmentNumber: "All shipments", id: all);
PaginatorListener<Carton>? cartonsByFilter;
PaginatorListener<Carton>? getBoxes;

View File

@@ -4,7 +4,7 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:logging/logging.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../main/model/base_model.dart';
class CartonSelectionModel extends BaseModel {

View File

@@ -5,7 +5,7 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/config.dart';
import 'package:logging/logging.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../../domain/entities/user.dart';
import '../../../helpers/api_helper.dart';
import '../../../helpers/firebase_helper.dart';

View File

@@ -3,7 +3,7 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:logging/logging.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../../domain/entities/package.dart';
import '../../main/model/base_model.dart';

View File

@@ -5,7 +5,7 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:logging/logging.dart';
import '../../../config.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../../domain/entities/user.dart';
import '../../../helpers/api_helper.dart';
import '../../../helpers/firebase_helper.dart';

View File

@@ -4,7 +4,7 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/entities/fcs_shipment.dart';
import 'package:logging/logging.dart';
import '../../../domain/constants.dart';
import '../../../constants.dart';
import '../../main/model/base_model.dart';
class ShipmentSelectionModel extends BaseModel {
@@ -39,7 +39,7 @@ class ShipmentSelectionModel extends BaseModel {
Query query = FirebaseFirestore.instance
.collection(path)
.where("status", whereIn: [
fcs_shipment_processing_status,
fcs_shipment_processed_status,
fcs_shipment_shipped_status,
fcs_shipment_arrived_status,
fcs_shipment_invoiced_status

View File

@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton_size.dart';
import 'package:fcs/helpers/firebase_helper.dart';
import 'package:fcs/pages/main/model/base_model.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/entities/shipment.dart';
import 'package:fcs/domain/entities/user.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/vo/message.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:logging/logging.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/chat/message_detail.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/chat/message_detail.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:logging/logging.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/vo/delivery_address.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:logging/logging.dart';

View File

@@ -3,7 +3,7 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/vo/delivery_address.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:logging/logging.dart';
class DeliveryAddressModel extends BaseModel {

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/discount.dart';
import 'package:fcs/helpers/paginator.dart';
import 'package:fcs/pages/main/model/base_model.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/faq.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/faq/model/faq_model.dart';
@@ -61,7 +61,7 @@ class _FAQEditorState extends State<FAQEditor> {
textInputType: TextInputType.number,
autovalidateMode: AutovalidateMode.onUserInteraction,
validator: (value) {
if (value == null || value.isEmpty || value.length==0) {
if (value == null || value.isEmpty || value.length == 0) {
return "Please insert S/N";
}

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/faq.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/buying_instruction/buying_online.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/fcs_shipment.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
@@ -219,7 +219,7 @@ class _FcsShipmentInfoState extends State<FcsShipmentInfo> {
? Container(
padding: EdgeInsets.only(top: 3), child: cancelBtn)
: Container(),
_fcsShipment?.status == fcs_shipment_processing_status
_fcsShipment?.status == fcs_shipment_processed_status
? shipBtn
: Container(),
_fcsShipment?.status == fcs_shipment_shipped_status

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/fcs_shipment.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:logging/logging.dart';
@@ -41,9 +41,9 @@ class FcsShipmentModel extends BaseModel {
// processing status
if (index == 2) {
col = col.where("status", isEqualTo: fcs_shipment_processing_status);
col = col.where("status", isEqualTo: fcs_shipment_processed_status);
pageQuery =
pageQuery.where("status", isEqualTo: fcs_shipment_processing_status);
pageQuery.where("status", isEqualTo: fcs_shipment_processed_status);
}
// shipped status
@@ -87,7 +87,7 @@ class FcsShipmentModel extends BaseModel {
try {
var snaps = await FirebaseFirestore.instance
.collection("/$fcs_shipment_collection")
.where("status", isEqualTo: fcs_shipment_processing_status)
.where("status", isEqualTo: fcs_shipment_processed_status)
.get(const GetOptions(source: Source.server));
fcsShipments = snaps.docs.map((documentSnapshot) {
var fcs =
@@ -176,23 +176,28 @@ class FcsShipmentModel extends BaseModel {
}
Future<void> process(String id) {
return Services.instance.fcsShipmentService.processFcsShipment(id);
return Services.instance.fcsShipmentService
.updateFcsShipmentStatus(id, fcs_shipment_processed_status);
}
Future<void> ship(String id) {
return Services.instance.fcsShipmentService.shipFcsShipment(id);
return Services.instance.fcsShipmentService
.updateFcsShipmentStatus(id, fcs_shipment_shipped_status);
}
Future<void> arrive(String id) {
return Services.instance.fcsShipmentService.arriveFcsShipment(id);
return Services.instance.fcsShipmentService
.updateFcsShipmentStatus(id, fcs_shipment_arrived_status);
}
Future<void> invoice(String id) {
return Services.instance.fcsShipmentService.invoiceFcsShipment(id);
return Services.instance.fcsShipmentService
.updateFcsShipmentStatus(id, fcs_shipment_shipped_status);
}
Future<void> cancel(String id) {
return Services.instance.fcsShipmentService.cancelFcsShipment(id);
return Services.instance.fcsShipmentService
.updateFcsShipmentStatus(id, fcs_shipment_canceled_status);
}
Future<String> report(FcsShipment fcsShipment) {
@@ -205,7 +210,7 @@ class FcsShipmentModel extends BaseModel {
var snaps = await FirebaseFirestore.instance
.collection("/$fcs_shipment_collection")
.where("status", whereIn: [
fcs_shipment_processing_status,
fcs_shipment_processed_status,
fcs_shipment_shipped_status,
fcs_shipment_arrived_status,
fcs_shipment_invoiced_status

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/entities/invoice.dart';
import 'package:fcs/helpers/theme.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/invoice.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/invoice/invoice_info.dart';

View File

@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/invoice.dart';
import 'package:fcs/domain/entities/payment.dart';
import 'package:fcs/helpers/firebase_helper.dart';

View File

@@ -1,6 +1,6 @@
import 'dart:io';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/invoice.dart';
import 'package:fcs/domain/entities/payment.dart';
import 'package:fcs/helpers/theme.dart';

View File

@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/market.dart';
import 'package:fcs/helpers/firebase_helper.dart';
import 'package:fcs/pages/main/model/base_model.dart';

View File

@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/domain/vo/delivery_address.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/vo/delivery_address.dart';
import 'package:fcs/helpers/theme.dart';
@@ -179,11 +179,11 @@ class _PackageInfoState extends State<PackageInfo> {
widget.isSearchResult
? Container()
: Padding(
padding: const EdgeInsets.only(top: 15),
child: StatusTree(
shipmentHistory: _package!.shipmentHistory,
currentStatus: _package!.status),
),
padding: const EdgeInsets.only(top: 15),
child: StatusTree(
shipmentHistory: _package!.shipmentHistory,
currentStatus: _package!.status),
),
SizedBox(
height: 20,
)

View File

@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/pickup.dart';
import 'package:fcs/helpers/firebase_helper.dart';
import 'package:fcs/pages/main/model/base_model.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/market.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/entities/user.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/shipment.dart';
import 'package:fcs/helpers/paginator.dart';
import 'package:fcs/pages/main/model/base_model.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/entities/shipment.dart';
import 'package:fcs/domain/vo/delivery_address.dart';

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/entities/shipment.dart';
import 'package:fcs/helpers/theme.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:fcs/domain/vo/privilege.dart';
import 'package:fcs/helpers/firebase_helper.dart';
@@ -83,11 +83,7 @@ class StaffModel extends BaseModel {
required bool enablePin,
required int? pin}) async {
await request("/employee/pin", "PUT",
payload: {
"id": userID,
"enable_pin_login": enablePin,
"pin": pin
},
payload: {"id": userID, "enable_pin_login": enablePin, "pin": pin},
token: await getToken());
}

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/constants.dart';
import 'package:fcs/constants.dart';
import 'package:fcs/domain/vo/shipment_status.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:flutter/material.dart';
@@ -19,7 +19,8 @@ class StatusTree extends StatelessWidget {
Widget build(BuildContext context) {
return ExpansionTile(
initiallyExpanded: true,
shape: Border.symmetric(horizontal: BorderSide(color: Colors.grey.shade300)),
shape:
Border.symmetric(horizontal: BorderSide(color: Colors.grey.shade300)),
title: Text(
'Status',
style: TextStyle(color: primaryColor, fontWeight: FontWeight.bold),

View File

@@ -7,12 +7,16 @@
#include "generated_plugin_registrant.h"
#include <file_selector_linux/file_selector_plugin.h>
#include <open_file_linux/open_file_linux_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
g_autoptr(FlPluginRegistrar) open_file_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "OpenFileLinuxPlugin");
open_file_linux_plugin_register_with_registrar(open_file_linux_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);

View File

@@ -4,6 +4,7 @@
list(APPEND FLUTTER_PLUGIN_LIST
file_selector_linux
open_file_linux
url_launcher_linux
)

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
name: fcs
description: FCS Logistics
publish_to: 'none'
version: 1.0.6+10
version: 1.0.9+11
environment:
sdk: '>=3.0.6 <4.0.0'
@@ -30,7 +30,7 @@ dependencies:
dio: ^5.4.0
package_info: ^2.0.2
google_api_availability: ^5.0.0
intl: ^0.18.1
intl: ^0.19.0
font_awesome_flutter: ^10.6.0
photo_view: ^0.14.0
uuid: ^4.2.2
@@ -49,7 +49,7 @@ dependencies:
timeline_list: ^0.0.5
barcode_scan2: ^4.1.4
flutter_pdfview: ^1.2.1
flutter_local_notifications: ^16.3.2
flutter_local_notifications: ^17.2.3
share: ^2.0.4
cached_network_image: ^3.3.1
flutter_cache_manager: ^3.1.2