various fixes to the site (socios, ingresos, gastos, balance, solicitudes) have been made
This commit is contained in:
@@ -64,6 +64,8 @@ const IngresoCard = ({
|
||||
type: income.type ?? CONSTANTS.PAYMENT_TYPE_CASH,
|
||||
frequency: income.frequency ?? CONSTANTS.PAYMENT_FREQUENCY_YEARLY,
|
||||
memberNumber: income.memberNumber,
|
||||
userId: income.userId,
|
||||
displayName: income.displayName || '',
|
||||
createdAt: income.createdAt?.slice(0, 16) || (isNew ? getNowAsLocalDatetime() : ''),
|
||||
});
|
||||
|
||||
@@ -74,14 +76,29 @@ const IngresoCard = ({
|
||||
amount: income.amount || 0,
|
||||
type: income.type ?? CONSTANTS.PAYMENT_TYPE_CASH,
|
||||
frequency: income.frequency ?? CONSTANTS.PAYMENT_FREQUENCY_YEARLY,
|
||||
displayName: income.displayName,
|
||||
userId: income.userId,
|
||||
memberNumber: income.memberNumber,
|
||||
displayName: income.displayName || '',
|
||||
createdAt: income.createdAt?.slice(0, 16) || (isNew ? getNowAsLocalDatetime() : ''),
|
||||
});
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [income, editMode]);
|
||||
|
||||
useEffect(() => {
|
||||
if (formData.memberNumber && !formData.userId) {
|
||||
const member = members.find(m => m.memberNumber === formData.memberNumber);
|
||||
if (member) {
|
||||
setFormData(prev => ({
|
||||
...prev,
|
||||
userId: member.userId,
|
||||
displayName: member.displayName
|
||||
}));
|
||||
}
|
||||
}
|
||||
}, [formData.memberNumber, formData.userId, members]);
|
||||
|
||||
|
||||
const handleChange = (field, value) =>
|
||||
setFormData(prev => ({ ...prev, [field]: value }));
|
||||
|
||||
@@ -167,13 +184,20 @@ const IngresoCard = ({
|
||||
<Form.Select
|
||||
className="themed-input"
|
||||
size="sm"
|
||||
value={formData.memberNumber}
|
||||
onChange={(e) => handleChange('memberNumber', parseInt(e.target.value))}
|
||||
style={{ maxWidth: '300px', display: 'inline-block' }}
|
||||
value={formData.memberNumber ?? ""}
|
||||
onChange={(e) => {
|
||||
const memberNumber = parseInt(e.target.value);
|
||||
const member = members.find(m => m.memberNumber === memberNumber);
|
||||
|
||||
handleChange('memberNumber', memberNumber);
|
||||
handleChange('userId', member?.userId ?? null);
|
||||
handleChange('displayName', member?.displayName ?? "");
|
||||
}}
|
||||
>
|
||||
{uniqueMembers.map((m) => (
|
||||
<option key={m.memberNumber} value={m.memberNumber}>
|
||||
{`${m.displayName} (${m.memberNumber})`}
|
||||
<option value="" disabled>Selecciona socio</option>
|
||||
{uniqueMembers.map((i) => (
|
||||
<option key={i.memberNumber} value={i.memberNumber}>
|
||||
{`${i.displayName} (${i.memberNumber})`}
|
||||
</option>
|
||||
))}
|
||||
</Form.Select>
|
||||
|
||||
@@ -128,7 +128,7 @@ const SocioCard = ({ identity, isNew = false, onCreate, onUpdate, onDelete, onCa
|
||||
plotNumber: identity.metadata.plotNumber,
|
||||
notes: identity.metadata.notes || '',
|
||||
status: identity.account.status,
|
||||
type: identity.metadat.type,
|
||||
type: identity.metadata.type,
|
||||
createdAt: identity.metadata.createdAt?.slice(0, 16) || (isNew ? getNowAsLocalDatetime() : ''),
|
||||
assignedAt: identity.metadata.assignedAt?.slice(0, 16) || undefined,
|
||||
deactivatedAt: identity.metadata.deactivatedAt?.slice(0, 16) || undefined,
|
||||
|
||||
@@ -97,7 +97,7 @@ export const SociosPDF = ({ socios }) => (
|
||||
<Text style={[styles.headerCell, { flex: 1 }]}>Tipo</Text>
|
||||
</View>
|
||||
|
||||
{socios.map((socio, idx) => (
|
||||
{socios.map((identity, idx) => (
|
||||
<View
|
||||
key={idx}
|
||||
style={[
|
||||
@@ -107,16 +107,16 @@ export const SociosPDF = ({ socios }) => (
|
||||
{ borderBottomRightRadius: idx === socios.length - 1 ? 10 : 0 },
|
||||
]}
|
||||
>
|
||||
<Text style={[styles.cell, { flex: 0.2 }]}>{socio?.memberNumber}</Text>
|
||||
<Text style={[styles.cell, { flex: 0.2 }]}>{socio?.plotNumber}</Text>
|
||||
<Text style={[styles.cell, { flex: 3 }]}>{socio?.displayName}</Text>
|
||||
<Text style={[styles.cell, { flex: 1 }]}>{socio?.dni}</Text>
|
||||
<Text style={[styles.cell, { flex: 1 }]}>{socio?.phone}</Text>
|
||||
<Text style={[styles.cell, { flex: 3 }]}>{socio?.email || ''}</Text>
|
||||
<Text style={[styles.cell, { flex: 1 }]}>{parseDate(socio?.createdAt?.split('T')[0] || '')}</Text>
|
||||
<Text style={[styles.cell, { flex: 0.2 }]}>{identity?.metadata?.memberNumber}</Text>
|
||||
<Text style={[styles.cell, { flex: 0.2 }]}>{identity?.metadata?.plotNumber}</Text>
|
||||
<Text style={[styles.cell, { flex: 3 }]}>{identity?.user?.displayName}</Text>
|
||||
<Text style={[styles.cell, { flex: 1 }]}>{identity?.metadata?.dni}</Text>
|
||||
<Text style={[styles.cell, { flex: 1 }]}>{identity?.metadata?.phone}</Text>
|
||||
<Text style={[styles.cell, { flex: 3 }]}>{identity?.account?.email || ''}</Text>
|
||||
<Text style={[styles.cell, { flex: 1 }]}>{parseDate(identity?.metadata?.createdAt?.split('T')[0] || '')}</Text>
|
||||
<Text style={[styles.cell, { flex: 1 }]}>
|
||||
{(() => {
|
||||
switch (socio?.type) {
|
||||
switch (identity?.metadata?.type) {
|
||||
case 0: return 'L. Espera';
|
||||
case 1: return 'Hortelano';
|
||||
case 2: return 'Invernadero';
|
||||
|
||||
@@ -35,15 +35,15 @@ const getPFP = (tipo) => {
|
||||
};
|
||||
|
||||
const renderDescripcionSolicitud = (data, onProfile) => {
|
||||
const { type, status, requestedByName, preDisplayName } = data;
|
||||
console.log(data);
|
||||
|
||||
switch (type) {
|
||||
switch (data.requestType) {
|
||||
case 0:
|
||||
if (requestedByName) {
|
||||
return `${requestedByName} quiere darse de alta.`;
|
||||
} else if (status !== 1 && preDisplayName) {
|
||||
return `${preDisplayName} quiere darse de alta.`;
|
||||
} else if (status !== 1) {
|
||||
if (data.requestedByName) {
|
||||
return `${data.requestedByName} quiere darse de alta.`;
|
||||
} else if (data.requestStatus !== 1 && data.preDisplayName) {
|
||||
return `${data.preDisplayName} quiere darse de alta.`;
|
||||
} else if (data.requestStatus !== 1) {
|
||||
return `Alguien quiere darse de alta.`;
|
||||
} else {
|
||||
return `Se ha aceptado esta solicitud de alta.`;
|
||||
@@ -52,30 +52,30 @@ const renderDescripcionSolicitud = (data, onProfile) => {
|
||||
case 1:
|
||||
return onProfile
|
||||
? "Has solicitado darte de baja."
|
||||
: requestedByName
|
||||
? `${requestedByName} quiere darse de baja.`
|
||||
: status !== 1
|
||||
: data.requestedByName
|
||||
? `${data.requestedByName} quiere darse de baja.`
|
||||
: data.requestStatus !== 1
|
||||
? `Alguien quiere darse de baja.`
|
||||
: `Se ha aceptado esta solicitud de baja.`;
|
||||
|
||||
case 2:
|
||||
if (onProfile) {
|
||||
switch (status) {
|
||||
switch (data.requestStatus) {
|
||||
case 0: return "Has solicitado añadir un colaborador.";
|
||||
case 1: return "Tu solicitud de colaborador ha sido aceptada.";
|
||||
case 2: return "Tu solicitud de colaborador ha sido rechazada.";
|
||||
default: return "Solicitud de colaborador desconocida.";
|
||||
}
|
||||
} else {
|
||||
switch (status) {
|
||||
switch (data.requestStatus) {
|
||||
case 0:
|
||||
return requestedByName
|
||||
? `${requestedByName} quiere añadir a ${preDisplayName || "un colaborador"} como colaborador.`
|
||||
: `Alguien quiere añadir a ${preDisplayName || "un colaborador"} como colaborador.`;
|
||||
return data.requestedByName
|
||||
? `${data.requestedByName} quiere añadir a ${data.preDisplayName || "un colaborador"} como colaborador.`
|
||||
: `Alguien quiere añadir a ${data.preDisplayName || "un colaborador"} como colaborador.`;
|
||||
case 1:
|
||||
return `La solicitud de colaborador de ${requestedByName || "alguien"} ha sido aceptada.`;
|
||||
return `La solicitud de colaborador de ${data.requestedByName || "alguien"} ha sido aceptada.`;
|
||||
case 2:
|
||||
return `La solicitud de colaborador de ${requestedByName || "alguien"} ha sido rechazada.`;
|
||||
return `La solicitud de colaborador de ${data.requestedByName || "alguien"} ha sido rechazada.`;
|
||||
default:
|
||||
return "Solicitud de colaborador desconocida.";
|
||||
}
|
||||
@@ -84,27 +84,27 @@ const renderDescripcionSolicitud = (data, onProfile) => {
|
||||
case 3:
|
||||
return onProfile
|
||||
? "Has solicitado quitar tu colaborador."
|
||||
: requestedByName
|
||||
? `${requestedByName} quiere quitar su colaborador.`
|
||||
: status !== 1
|
||||
: data.requestedByName
|
||||
? `${data.requestedByName} quiere quitar su colaborador.`
|
||||
: data.requestStatus !== 1
|
||||
? `Alguien quiere quitar su colaborador.`
|
||||
: `Se ha aceptado esta solicitud de baja de colaborador.`;
|
||||
|
||||
case 4:
|
||||
return onProfile
|
||||
? "Has solicitado una parcela en el invernadero."
|
||||
: requestedByName
|
||||
? `${requestedByName} quiere una parcela en el invernadero.`
|
||||
: status !== 1
|
||||
: data.requestedByName
|
||||
? `${data.requestedByName} quiere una parcela en el invernadero.`
|
||||
: data.requestStatus !== 1
|
||||
? `Alguien quiere una parcela en el invernadero.`
|
||||
: `Se ha aceptado esta solicitud de parcela en el invernadero.`;
|
||||
|
||||
case 5:
|
||||
return onProfile
|
||||
? "Has solicitado dejar tu parcela del invernadero."
|
||||
: requestedByName
|
||||
? `${requestedByName} quiere dejar su parcela del invernadero.`
|
||||
: status !== 1
|
||||
: data.requestedByName
|
||||
? `${data.requestedByName} quiere dejar su parcela del invernadero.`
|
||||
: data.requestStatus !== 1
|
||||
? `Alguien quiere dejar su parcela del invernadero.`
|
||||
: `Se ha aceptado esta solicitud de salida del invernadero.`;
|
||||
|
||||
@@ -123,9 +123,9 @@ const SolicitudCard = ({ data, onAccept, onReject, onDelete, editable = true, on
|
||||
<img src={getPFP(data.preType)} width="36" className="rounded me-3" alt="PFP" />
|
||||
<div>
|
||||
<Card.Title className="mb-0">
|
||||
Solicitud #{data.requestId} - {getTipoSolicitud(data.type)}
|
||||
Solicitud #{data.idx} - {getTipoSolicitud(data.requestType)}
|
||||
</Card.Title>
|
||||
<small className='state-small'>Estado: <strong>{getEstadoSolicitud(data.status)}</strong></small>
|
||||
<small className='state-small'>Estado: <strong>{getEstadoSolicitud(data.requestStatus)}</strong></small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -147,7 +147,7 @@ const SolicitudCard = ({ data, onAccept, onReject, onDelete, editable = true, on
|
||||
<ListGroup variant="flush" className="border rounded-3 mb-3">
|
||||
<ListGroup.Item>
|
||||
<FontAwesomeIcon icon={faCalendar} className="me-2" />
|
||||
Fecha de solicitud: <strong>{parseDate(data.request_createdAt)}</strong>
|
||||
Fecha de solicitud: <strong>{parseDate(data.createdAt)}</strong>
|
||||
</ListGroup.Item>
|
||||
</ListGroup>
|
||||
|
||||
@@ -174,7 +174,7 @@ const SolicitudCard = ({ data, onAccept, onReject, onDelete, editable = true, on
|
||||
</>
|
||||
)}
|
||||
|
||||
{editable && data.status === 0 && (
|
||||
{editable && data.requestStatus === 0 && (
|
||||
<div className="d-flex justify-content-end gap-2 mt-3">
|
||||
<Button variant="danger" size="sm" onClick={() => onReject?.(data)}>Rechazar</Button>
|
||||
<Button variant="success" size="sm" onClick={() => onAccept?.(data)}>Aceptar</Button>
|
||||
|
||||
Reference in New Issue
Block a user