loan paid off detail better

This commit is contained in:
2025-07-04 20:24:34 +05:00
parent 6c15093ebc
commit cfa0b840ed

View File

@@ -6,6 +6,35 @@ import apiService from '../../services/apiService';
import { COLORS } from '../../constants/colors';
import { StatusBar } from 'expo-status-bar';
// Add helper format functions
const formatDate = (dateStr) => {
if (!dateStr) return '';
const d = new Date(dateStr);
if (isNaN(d)) return dateStr;
return d.toLocaleDateString('tk-TM');
};
const formatDateTime = (dateStr) => {
if (!dateStr) return '';
const d = new Date(dateStr);
if (isNaN(d)) return dateStr;
return d.toLocaleString('tk-TM', {
hour: '2-digit',
minute: '2-digit',
day: '2-digit',
month: '2-digit',
year: 'numeric',
});
};
// Inline component for a key/value row
const DetailRow = ({ label, value, showBorder = true }) => (
<View style={[styles.detailRow, showBorder && styles.detailRowBorder]}>
<Text style={styles.detailKey}>{label}</Text>
<Text style={styles.detailValue}>{String(value)}</Text>
</View>
);
const LoanPaidOffLetterOrderDetailsScreen = () => {
const navigation = useNavigation();
const route = useRoute();
@@ -71,55 +100,50 @@ const LoanPaidOffLetterOrderDetailsScreen = () => {
</TouchableOpacity>
<ScrollView contentContainerStyle={{ paddingBottom: 40, paddingHorizontal: 24 }}>
<Text style={styles.title}>Güwanama {order.id}</Text>
<Text style={styles.title}>Karzyň ýapylandygy barada güwanama maglumatlary</Text>
{/* Basic order info */}
<View style={styles.detailCard}>
{[
'id',
'region',
'branch_id',
'customer_name',
'customer_surname',
'customer_patronic_name',
'born_at',
'phone',
'passport_serie',
'passport_id',
'status',
'notes',
'loan_contract_number',
'loan_contract_date',
'loan_amount',
'loan_reason',
].filter((k) => order[k] !== undefined && order[k] !== null).map((key, idx, arr) => {
const titles = {
id: 'ID',
region: 'Welaýat',
branch_id: 'Şahamça',
customer_name: 'Ady',
customer_surname: 'Familiýasy',
customer_patronic_name: 'Atasynyň ady',
born_at: 'Doglan senesi',
phone: 'Telefon',
passport_serie: 'Passport seriýa',
passport_id: 'Passport nomer',
status: 'Status',
notes: 'Bellikler',
loan_contract_number: 'Karz şertnamanyň belgisi',
loan_contract_date: 'Karz şertnamanyň senesi',
loan_amount: 'Karzyň möçberi',
loan_reason: 'Karzyň maksady',
};
return (
<View
key={key}
style={[styles.detailRow, idx !== arr.length - 1 && styles.detailRowBorder]}
>
<Text style={styles.detailKey}>{titles[key]}</Text>
<Text style={styles.detailValue}>{String(order[key])}</Text>
</View>
);
})}
<DetailRow label="ID" value={order.id} />
{order.created_at && (
<DetailRow label="Döredilen wagty" value={formatDateTime(order.created_at)} />
)}
{order.status && <DetailRow label="Status" value={order.status} />}
{<DetailRow label="Bellik" value={order.notes ?? '-'} showBorder={false} />}
</View>
{/* Lokasiýa */}
{(order.region || order.branch_id) && (
<>
<Text style={styles.sectionTitle}>Lokasiýa</Text>
<View style={styles.detailCard}>
{order.region && <DetailRow label="Welaýat" value={order.region} />}
{order.branch_id && <DetailRow label="Şahamça" value={order.branch_id} showBorder={false} />}
</View>
</>
)}
{/* Şahsy maglumatlar */}
<Text style={styles.sectionTitle}>Şahsy maglumatlar</Text>
<View style={styles.detailCard}>
<DetailRow label="Doly ady" value={`${order.customer_name} ${order.customer_surname} ${order.customer_patronic_name ?? ''}`.trim()} />
{order.born_at && (
<DetailRow label="Doglan güni" value={formatDate(order.born_at)} />
)}
{order.phone && <DetailRow label="Telefon" value={order.phone} />}
{order.passport_serie && <DetailRow label="Pasport seriýasy" value={order.passport_serie} />}
{order.passport_id && <DetailRow label="Pasport belgisi" value={order.passport_id} showBorder={false} />}
</View>
{/* Karz barada maglumatlar */}
<Text style={styles.sectionTitle}>Karz barada maglumatlar</Text>
<View style={styles.detailCard}>
{order.loan_contract_number && <DetailRow label="Karz şertnamanyň belgisi" value={order.loan_contract_number} />}
{order.loan_contract_date && (
<DetailRow label="Karz şertnamanyň senesi" value={formatDate(order.loan_contract_date)} />
)}
{order.loan_amount && <DetailRow label="Karzyň möçberi" value={order.loan_amount} />}
{order.loan_reason && <DetailRow label="Karzyň maksady" value={order.loan_reason} showBorder={false} />}
</View>
<TouchableOpacity style={styles.deleteBtn} onPress={handleDelete}>
@@ -188,6 +212,12 @@ const styles = StyleSheet.create({
fontSize: 16,
fontWeight: '600',
},
sectionTitle: {
fontSize: 18,
fontWeight: '700',
color: COLORS.textPrimary,
marginBottom: 12,
},
});
export default LoanPaidOffLetterOrderDetailsScreen;