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