Fix: create guilds for dbRegister false
This commit is contained in:
@@ -33,6 +33,7 @@ import { getValidationSchema, getInitialValues } from "./utils/formUtils";
|
|||||||
import {
|
import {
|
||||||
mapResponseDataToFormFields,
|
mapResponseDataToFormFields,
|
||||||
prepareSubmitData,
|
prepareSubmitData,
|
||||||
|
mapExternalApiGuildToFormValues,
|
||||||
} from "./utils/dataMapping";
|
} from "./utils/dataMapping";
|
||||||
import { handleSubmitSuccess, handleSubmitError } from "./utils/submitHandlers";
|
import { handleSubmitSuccess, handleSubmitError } from "./utils/submitHandlers";
|
||||||
|
|
||||||
@@ -118,7 +119,6 @@ export const CreateGuilds = ({ guild, updateTable }) => {
|
|||||||
birth_date: values?.birth_date,
|
birth_date: values?.birth_date,
|
||||||
father_name: values?.father_name,
|
father_name: values?.father_name,
|
||||||
mobile: values?.mobile,
|
mobile: values?.mobile,
|
||||||
// Personal info city: always use current selection (guild section has city_name only)
|
|
||||||
person_city: values?.person_city,
|
person_city: values?.person_city,
|
||||||
city: values?.city,
|
city: values?.city,
|
||||||
};
|
};
|
||||||
@@ -224,6 +224,9 @@ export const CreateGuilds = ({ guild, updateTable }) => {
|
|||||||
if (responseData.dbRegister === false) {
|
if (responseData.dbRegister === false) {
|
||||||
setDbRegister(false);
|
setDbRegister(false);
|
||||||
setHasInquiry(null);
|
setHasInquiry(null);
|
||||||
|
if (guildsData.length > 0) {
|
||||||
|
setGuildActive(guildsData[0]?.active ?? true);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
setHasInquiry(responseData.hasInquiry ?? null);
|
setHasInquiry(responseData.hasInquiry ?? null);
|
||||||
const firstGuild = guildsData.length > 0 ? guildsData[0] : null;
|
const firstGuild = guildsData.length > 0 ? guildsData[0] : null;
|
||||||
@@ -235,13 +238,16 @@ export const CreateGuilds = ({ guild, updateTable }) => {
|
|||||||
|
|
||||||
if (guildsData.length > 0) {
|
if (guildsData.length > 0) {
|
||||||
setGuildsList(guildsData);
|
setGuildsList(guildsData);
|
||||||
const initialGuildValues = guildsData.map((guildItem) => {
|
const initialGuildValues =
|
||||||
const combinedGuild = {
|
responseData.dbRegister === false
|
||||||
...guildItem,
|
? guildsData.map((g) => mapExternalApiGuildToFormValues(g))
|
||||||
user: responseData.user || {},
|
: guildsData.map((guildItem) => {
|
||||||
};
|
const combinedGuild = {
|
||||||
return getInitialValues(combinedGuild);
|
...guildItem,
|
||||||
});
|
user: responseData.user || {},
|
||||||
|
};
|
||||||
|
return getInitialValues(combinedGuild);
|
||||||
|
});
|
||||||
setGuildsFormValues(initialGuildValues);
|
setGuildsFormValues(initialGuildValues);
|
||||||
|
|
||||||
// Update Formik's guilds array for validation (include validated fields)
|
// Update Formik's guilds array for validation (include validated fields)
|
||||||
|
|||||||
@@ -160,24 +160,27 @@ const extractFormFieldsFromDatabaseInquiry = (
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Personal info only from external API (dbRegister false).
|
||||||
|
* Guild data is mapped per guild via mapExternalApiGuildToFormValues.
|
||||||
|
*/
|
||||||
const extractFormFieldsFromExternalApi = (
|
const extractFormFieldsFromExternalApi = (
|
||||||
responseDataFromExternalApi,
|
responseDataFromExternalApi,
|
||||||
inquiryNationalCode
|
inquiryNationalCode
|
||||||
) => {
|
) => {
|
||||||
const userFromExternalApi = responseDataFromExternalApi.user || {};
|
const userFromExternalApi = responseDataFromExternalApi.user || {};
|
||||||
const firstGuildFromExternalApi =
|
const firstGuild =
|
||||||
Array.isArray(responseDataFromExternalApi.guilds) &&
|
Array.isArray(responseDataFromExternalApi.guilds) &&
|
||||||
responseDataFromExternalApi.guilds.length > 0
|
responseDataFromExternalApi.guilds.length > 0
|
||||||
? responseDataFromExternalApi.guilds[0]
|
? responseDataFromExternalApi.guilds[0]
|
||||||
: {};
|
: {};
|
||||||
const layerTwoFromExternalApi = firstGuildFromExternalApi.layerTwo || {};
|
const layerTwo = firstGuild.layerTwo || {};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
// Personal Information Fields
|
|
||||||
first_name: userFromExternalApi.firstName || "",
|
first_name: userFromExternalApi.firstName || "",
|
||||||
last_name: userFromExternalApi.lastName || "",
|
last_name: userFromExternalApi.lastName || "",
|
||||||
national_id: String(
|
national_id: String(
|
||||||
layerTwoFromExternalApi.nationalcode ||
|
layerTwo.nationalcode ||
|
||||||
userFromExternalApi.nationalCode ||
|
userFromExternalApi.nationalCode ||
|
||||||
inquiryNationalCode
|
inquiryNationalCode
|
||||||
).trim(),
|
).trim(),
|
||||||
@@ -191,58 +194,73 @@ const extractFormFieldsFromExternalApi = (
|
|||||||
? "False"
|
? "False"
|
||||||
: "",
|
: "",
|
||||||
person_city: userFromExternalApi.city || "",
|
person_city: userFromExternalApi.city || "",
|
||||||
|
city: "",
|
||||||
is_alive:
|
is_alive:
|
||||||
userFromExternalApi.isLive === true
|
userFromExternalApi.isLive === true
|
||||||
? "بلی"
|
? "بلی"
|
||||||
: userFromExternalApi.isLive === false
|
: userFromExternalApi.isLive === false
|
||||||
? "خیر"
|
? "خیر"
|
||||||
: "",
|
: "",
|
||||||
mobile: layerTwoFromExternalApi.mobilenumber || "",
|
mobile: layerTwo.mobilenumber || "",
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
// Guild Information Fields
|
/**
|
||||||
guild_name: firstGuildFromExternalApi.title || "",
|
* Maps one external API guild (dbRegister false) to guild form values.
|
||||||
area_activity: firstGuildFromExternalApi.isicname || "",
|
* All fields are guild data, not personal info.
|
||||||
city: "", // User selects from cities list
|
*/
|
||||||
address: firstGuildFromExternalApi.address || "",
|
export const mapExternalApiGuildToFormValues = (guild) => {
|
||||||
|
const layerTwo = guild?.layerTwo || {};
|
||||||
|
return {
|
||||||
|
guild_name: guild?.title || "",
|
||||||
|
area_activity: guild?.isicname || "",
|
||||||
|
city_name: guild?.city || "",
|
||||||
|
address: guild?.address || "",
|
||||||
license_expire_date: normalizeExternalApiDate(
|
license_expire_date: normalizeExternalApiDate(
|
||||||
firstGuildFromExternalApi.licenseExpireDate || ""
|
guild?.licenseExpireDate || ""
|
||||||
),
|
),
|
||||||
license_status: firstGuildFromExternalApi.licenseStatus || "",
|
license_status: guild?.licenseStatus || "",
|
||||||
license_type: firstGuildFromExternalApi.licenseType || "",
|
license_type: guild?.licenseType || "",
|
||||||
license_number: firstGuildFromExternalApi.licenseNumber || "",
|
license_number: guild?.licenseNumber || "",
|
||||||
license_issue_date: normalizeExternalApiDate(
|
license_issue_date: normalizeExternalApiDate(
|
||||||
layerTwoFromExternalApi.licenseIssueDate || ""
|
layerTwo.licenseIssueDate || ""
|
||||||
),
|
),
|
||||||
union_name: layerTwoFromExternalApi.unionName || "",
|
union_name: layerTwo.unionName || "",
|
||||||
postal_code: layerTwoFromExternalApi.postalcode || "",
|
postal_code: layerTwo.postalcode || "",
|
||||||
phone_number: layerTwoFromExternalApi.phonenumber || "",
|
phone_number: layerTwo.phonenumber || "",
|
||||||
guild_national_id: layerTwoFromExternalApi.nationalId || "",
|
guild_national_id: layerTwo.nationalId || "",
|
||||||
corporation_name: layerTwoFromExternalApi.corporationName || "",
|
corporation_name: layerTwo.corporationName || "",
|
||||||
|
active: guild?.active ?? true,
|
||||||
// Status Fields
|
|
||||||
is_foreigner:
|
is_foreigner:
|
||||||
layerTwoFromExternalApi.isForeigner === "خیر"
|
layerTwo.isForeigner === "خیر"
|
||||||
? false
|
? false
|
||||||
: layerTwoFromExternalApi.isForeigner === "بلی"
|
: layerTwo.isForeigner === "بلی"
|
||||||
? true
|
? true
|
||||||
: "",
|
|
||||||
has_steward:
|
|
||||||
layerTwoFromExternalApi.hasSteward === "خیر"
|
|
||||||
? false
|
|
||||||
: layerTwoFromExternalApi.hasSteward === "بلی"
|
|
||||||
? true
|
|
||||||
: "",
|
|
||||||
has_partner:
|
|
||||||
layerTwoFromExternalApi.hasPartner === "خیر"
|
|
||||||
? false
|
|
||||||
: layerTwoFromExternalApi.hasPartner === "بلی"
|
|
||||||
? true
|
|
||||||
: "",
|
|
||||||
steward: false, // External API doesn't provide steward status
|
|
||||||
guild:
|
|
||||||
typeof firstGuildFromExternalApi.guild === "boolean"
|
|
||||||
? firstGuildFromExternalApi.guild
|
|
||||||
: false,
|
: false,
|
||||||
|
has_steward:
|
||||||
|
layerTwo.hasSteward === "خیر"
|
||||||
|
? false
|
||||||
|
: layerTwo.hasSteward === "بلی"
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
has_partner:
|
||||||
|
layerTwo.hasPartner === "خیر"
|
||||||
|
? false
|
||||||
|
: layerTwo.hasPartner === "بلی"
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
steward:
|
||||||
|
layerTwo.hasSteward === "خیر"
|
||||||
|
? false
|
||||||
|
: layerTwo.hasSteward === "بلی"
|
||||||
|
? true
|
||||||
|
: false,
|
||||||
|
guild:
|
||||||
|
layerTwo.hasSteward === "خیر"
|
||||||
|
? true
|
||||||
|
: layerTwo.hasSteward === "بلی"
|
||||||
|
? true
|
||||||
|
: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user