loan order working

This commit is contained in:
2025-07-08 12:37:28 +05:00
parent cd8b129f16
commit 6642c96ebd

View File

@@ -62,6 +62,19 @@ const CreateLoanOrderScreen = () => {
const [cardMonth, setCardMonth] = useState(''); const [cardMonth, setCardMonth] = useState('');
const [cardYear, setCardYear] = useState(''); const [cardYear, setCardYear] = useState('');
// Guarantor fields
const [guarantorName, setGuarantorName] = useState('');
const [guarantorSurname, setGuarantorSurname] = useState('');
const [guarantorPatro, setGuarantorPatro] = useState('');
const [guarantorCardNumber, setGuarantorCardNumber] = useState('');
const [guarantorCardName, setGuarantorCardName] = useState('');
const [guarantorCardMonth, setGuarantorCardMonth] = useState('');
const [guarantorCardYear, setGuarantorCardYear] = useState('');
const [guarantorPassportSerie, setGuarantorPassportSerie] = useState('');
const [guarantorPassportId, setGuarantorPassportId] = useState('');
const [submitted, setSubmitted] = useState(false); const [submitted, setSubmitted] = useState(false);
const req = (l) => `${l} *`; const req = (l) => `${l} *`;
@@ -101,6 +114,11 @@ const CreateLoanOrderScreen = () => {
setCardNumber(formatCardNumber(text)); setCardNumber(formatCardNumber(text));
}; };
const handleGuarantorCardNumberChange = (text) => {
const formatted = formatCardNumber(text);
setGuarantorCardNumber(formatted);
};
useEffect(() => { useEffect(() => {
if (user) { if (user) {
if (user.passport_serie) setPassportSerie(user.passport_serie); if (user.passport_serie) setPassportSerie(user.passport_serie);
@@ -141,7 +159,7 @@ const CreateLoanOrderScreen = () => {
const handleSubmit = async () => { const handleSubmit = async () => {
setSubmitted(true); setSubmitted(true);
if (!loanType || !loanAmount || !region || !branchId || !customerName || !customerSurname || !passportSerie || !passportId || !passportGivenAt || !passportGivenBy || !bornAt || !bornPlace || !phone || !phoneHome || !education || !marriageStatus || !passportAddress || !realAddress || !workCompany || !workCompanyAccNum || !workRegion || !workProvinceId || !workPosition || !workSalary || !workStartedAt || !passportOne || !passportTwo || !passportThree || !passportFour || !cardNumber || !cardName || !cardMonth || !cardYear) { if (!loanType || !loanAmount || !region || !branchId || !customerName || !customerSurname || !passportSerie || !passportId || !passportGivenAt || !passportGivenBy || !bornAt || !bornPlace || !phone || !phoneHome || !education || !marriageStatus || !passportAddress || !realAddress || !workCompany || !workCompanyAccNum || !workRegion || !workProvinceId || !workPosition || !workSalary || !workStartedAt || !passportOne || !passportTwo || !passportThree || !passportFour || !cardNumber || !cardName || !cardMonth || !cardYear || !guarantorName || !guarantorSurname || !guarantorCardNumber || !guarantorCardName || !guarantorCardMonth || !guarantorCardYear || !guarantorPassportSerie || !guarantorPassportId ) {
Alert.alert('Error', 'Fill all required fields'); Alert.alert('Error', 'Fill all required fields');
return; return;
} }
@@ -193,6 +211,20 @@ const CreateLoanOrderScreen = () => {
appendField('card_month', cardMonth); appendField('card_month', cardMonth);
appendField('card_year', cardYear); appendField('card_year', cardYear);
// Guarantor info
appendField('guarantor_name', guarantorName);
appendField('guarantor_surname', guarantorSurname);
appendField('guarantor_patronic_name', guarantorPatro);
const rawGuarantorCard = guarantorCardNumber.replace(/[^0-9]/g, '');
appendField('guarantor_card_number', rawGuarantorCard);
appendField('guarantor_card_name', guarantorCardName);
appendField('guarantor_card_month', guarantorCardMonth);
appendField('guarantor_card_year', guarantorCardYear);
appendField('guarantor_passport_serie', guarantorPassportSerie);
appendField('guarantor_passport_id', guarantorPassportId);
const addImage = (field, uri) => { const addImage = (field, uri) => {
if (!uri) return; if (!uri) return;
const fileName = uri.split('/').pop(); const fileName = uri.split('/').pop();
@@ -301,6 +333,23 @@ const CreateLoanOrderScreen = () => {
<ImageInput label={req('Pasport (32-nji sahypa)')} image={passportFour} onChange={setPassportFour} error={submitted && !passportFour} /> <ImageInput label={req('Pasport (32-nji sahypa)')} image={passportFour} onChange={setPassportFour} error={submitted && !passportFour} />
</View> </View>
{/* Guarantor info */}
<Text style={[styles.title, { marginTop: 24 }]}>Zamun barada maglumat</Text>
<Input label={req('Zamunyň ady')} value={guarantorName} onChangeText={setGuarantorName} error={submitted && !guarantorName} />
<Input label={req('Zamunyň familiýasy')} value={guarantorSurname} onChangeText={setGuarantorSurname} error={submitted && !guarantorSurname} />
<Input label="Zamunyň atasynyň ady" value={guarantorPatro} onChangeText={setGuarantorPatro} />
{/* Guarantor card */}
<Input label={req('Kart belgisi')} placeholder="xxxx-xxxx-xxxx-xxxx" value={guarantorCardNumber} onChangeText={handleGuarantorCardNumberChange} keyboardType="numeric" error={submitted && !guarantorCardNumber} />
<Input label={req('Kartdaky ady')} value={guarantorCardName} onChangeText={setGuarantorCardName} error={submitted && !guarantorCardName} />
<SelectInput label={req('Möhleti (aý)')} value={guarantorCardMonth} options={monthOptions} onValueChange={setGuarantorCardMonth} placeholder="Saýla" error={submitted && !guarantorCardMonth} />
<SelectInput label={req('Möhleti (ýyl)')} value={guarantorCardYear} options={yearOptions} onValueChange={setGuarantorCardYear} placeholder="Saýla" error={submitted && !guarantorCardYear} />
{/* Guarantor passport */}
<SelectInput label={req('Pasport seriýasy')} value={guarantorPassportSerie} options={passportSeriesOptions} onValueChange={setGuarantorPassportSerie} placeholder="Saýla" error={submitted && !guarantorPassportSerie} />
<Input label={req('Pasport belgisi')} value={guarantorPassportId} onChangeText={setGuarantorPassportId} keyboardType="numeric" error={submitted && !guarantorPassportId} />
<TouchableOpacity style={styles.submitBtn} onPress={handleSubmit} disabled={loading}> <TouchableOpacity style={styles.submitBtn} onPress={handleSubmit} disabled={loading}>
{loading ? <ActivityIndicator color={COLORS.white} /> : <Text style={styles.submitText}>Ýatda sakla</Text>} {loading ? <ActivityIndicator color={COLORS.white} /> : <Text style={styles.submitText}>Ýatda sakla</Text>}
</TouchableOpacity> </TouchableOpacity>