first commit

This commit is contained in:
2026-02-07 15:57:09 +07:00
commit 157096f164
1153 changed files with 415766 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
class PartyLedgerFilterParam {
final String partyId;
final String? duration;
PartyLedgerFilterParam({
required this.partyId,
this.duration,
});
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is PartyLedgerFilterParam &&
runtimeType == other.runtimeType &&
partyId == other.partyId &&
duration == other.duration;
@override
int get hashCode => partyId.hashCode ^ duration.hashCode;
}

View File

@@ -0,0 +1,123 @@
class PartyLedgerModel {
int? id;
String? platform;
// num? amount;
num? creditAmount;
num? debitAmount;
String? date;
num? balance;
String? invoiceNumber;
SaleModel? sale;
PurchaseModel? purchase;
DueModelLeger? dueCollect;
PartyLedgerModel({
this.id,
this.platform,
this.creditAmount,
this.debitAmount,
this.date,
this.balance,
this.invoiceNumber,
this.sale,
this.purchase,
this.dueCollect,
});
// factory PartyLedgerModel.fromJson(Map<String, dynamic> json) {
// // Helper to extract invoice number from nested objects
// String? getInvoice(Map<String, dynamic> json) {
// if (json['sale'] != null) return json['sale']['invoiceNumber'];
// if (json['purchase'] != null) return json['purchase']['invoiceNumber'];
// if (json['due_collect'] != null) return json['due_collect']['invoiceNumber'];
// return null;
// }
//
// return PartyLedgerModel(
// id: json['id'],
// platform: json['platform'],
// debitAmount: num.tryParse(json['debit_amount'].toString()),
// creditAmount: num.tryParse(json['credit_amount'].toString()),
// date: json['date'],
// balance: num.tryParse(json['balance'].toString()),
// sale: json['sale'] != null ? SaleModel.fromJson(json['sale']) : null,
// purchase: json['purchase'] != null ? PurchaseModel.fromJson(json['purchase']) : null,
// dueCollect: json['due_collect'] != null ? DueModelLeger.fromJson(json['due_collect']) : null,
// invoiceNumber: getInvoice(json),
// );
// }
factory PartyLedgerModel.fromJson(Map<String, dynamic> json) {
return PartyLedgerModel(
id: json['id'],
platform: json['platform'],
debitAmount:
json['debit_amount'] is String ? num.tryParse(json['debit_amount']) : json['debit_amount']?.toDouble(),
creditAmount:
json['credit_amount'] is String ? num.tryParse(json['credit_amount']) : json['credit_amount']?.toDouble(),
date: json['date']?.toString(),
balance: json['balance'] is String ? num.tryParse(json['balance']) : json['balance']?.toDouble(),
invoiceNumber: json['invoice_no'],
);
}
}
//SalePartyLegerModel
class SaleModel {
int? id;
String? invoiceNumber;
int? partyId;
SaleModel({this.id, this.invoiceNumber, this.partyId});
factory SaleModel.fromJson(Map<String, dynamic> json) {
return SaleModel(
id: json['id'],
invoiceNumber: json['invoiceNumber'],
partyId: json['party_id'],
);
}
}
//SalePartyLegerModel
class PurchaseModel {
int? id;
String? invoiceNumber;
int? partyId;
PurchaseModel({this.id, this.invoiceNumber, this.partyId});
factory PurchaseModel.fromJson(Map<String, dynamic> json) {
return PurchaseModel(
id: json['id'],
invoiceNumber: json['invoiceNumber'],
partyId: json['party_id'],
);
}
}
//SalePartyLegerModel
class DueModelLeger {
int? id;
String? invoiceNumber;
int? partyId;
DueModelLeger({this.id, this.invoiceNumber, this.partyId});
factory DueModelLeger.fromJson(Map<String, dynamic> json) {
return DueModelLeger(
id: json['id'],
invoiceNumber: json['invoiceNumber'],
partyId: json['party_id'],
);
}
}
// Helper class to return data + pagination info
class PartyLedgerResponse {
final List<PartyLedgerModel> data;
final int lastPage;
final int currentPage;
PartyLedgerResponse({required this.data, required this.lastPage, required this.currentPage});
}