Spaces:
Sleeping
Sleeping
| // Core data types for Mirchi Trading application | |
| export interface Party { | |
| id: string; | |
| name: string; | |
| contact?: string; | |
| address?: string; | |
| gstNumber?: string; | |
| balance: number; // Running balance (positive = they owe us, negative = we owe them) | |
| createdAt: string; | |
| } | |
| export interface BillBook { | |
| id: string; | |
| name: string; | |
| serialFrom: number; | |
| serialTo: number; | |
| currentSerial: number; | |
| isActive: boolean; | |
| } | |
| export interface Lot { | |
| id: string; | |
| lotNumber: string; | |
| particular: string; // Variety: Teja, Garuda, 341, etc. | |
| purchaseDate: string; | |
| partyId: string; | |
| partyName: string; | |
| gaadiDetails?: string; // Truck/vehicle details | |
| quality?: string; | |
| totalBags: number; | |
| soldBags: number; | |
| availableBags: number; | |
| grossWeightPerBag: number; | |
| netWeightPerBag: number; | |
| purchaseRate: number; // Rate per kg | |
| totalWeight: number; | |
| totalAmount: number; | |
| paidAmount: number; | |
| remainingAmount: number; | |
| paymentStatus: 'paid' | 'partial' | 'pending'; | |
| } | |
| export interface PaymentTerm { | |
| totalAmount: number; | |
| advanceAmount: number; | |
| remainingAmount: number; | |
| payments: Payment[]; | |
| } | |
| export interface Payment { | |
| id: string; | |
| date: string; | |
| amount: number; | |
| method: 'cash' | 'cheque' | 'online' | 'other'; | |
| reference?: string; | |
| notes?: string; | |
| } | |
| export interface InvoiceItem { | |
| particular: string; // Variety | |
| lotNumber: string; | |
| bags: number; | |
| grossWeightPerBag: number; | |
| netWeightPerBag: number; | |
| rate: number; | |
| basicAmount: number; | |
| } | |
| export interface Invoice { | |
| id: string; | |
| serialNumber: string; | |
| billBookId: string; | |
| date: string; | |
| partyId: string; | |
| partyName: string; | |
| items: InvoiceItem[]; | |
| charges: { | |
| bardhana: number; // ₹18 per bag | |
| hamali: number; // ₹6 per bag | |
| adhath: number; // Commission percentage | |
| cess: number; // Market cess 1-6% | |
| gaadiBharni: number; // Optional vehicle loading charges | |
| }; | |
| subtotal: number; | |
| totalCharges: number; | |
| totalAmount: number; | |
| paymentTerms: PaymentTerm; | |
| notes?: string; | |
| createdAt: string; | |
| updatedAt: string; | |
| } | |
| export interface PurchaseEntry { | |
| id: string; | |
| date: string; | |
| partyId: string; | |
| partyName: string; | |
| gaadiDetails?: string; | |
| lots: Lot[]; | |
| totalAmount: number; | |
| paymentTerms: PaymentTerm; | |
| notes?: string; | |
| createdAt: string; | |
| } | |
| export interface LedgerEntry { | |
| id: string; | |
| date: string; | |
| particulars: string; // Description | |
| referenceNumber: string; // BN number, invoice number, etc. | |
| lotNumber?: string; | |
| debit: number; // Money they owe us (Jawak/Sales) | |
| credit: number; // Money we owe them (Awak/Purchase) | |
| balance: number; // Running balance | |
| type: 'awak' | 'jawak' | 'payment' | 'return' | 'adjustment'; | |
| } | |
| export interface StockSummary { | |
| particular: string; // Variety | |
| awak: { | |
| bags: number; | |
| weight: number; | |
| value: number; | |
| }; | |
| jawak: { | |
| bags: number; | |
| weight: number; | |
| value: number; | |
| }; | |
| stock: { | |
| bags: number; | |
| weight: number; | |
| value: number; | |
| }; | |
| avgBuyRate: number; | |
| avgSellRate: number; | |
| profit: number; | |
| lots: Lot[]; | |
| } | |
| export interface Transaction { | |
| id: string; | |
| date: string; | |
| type: 'awak' | 'jawak'; | |
| particular: string; | |
| lotNumber: string; | |
| party: string; | |
| bags: number; | |
| weight: number; | |
| rate: number; | |
| amount: number; | |
| referenceNumber: string; | |
| } | |