Merge branch 'main' of git.golsystems.mx:juan.zapata/pdv.frontend
This commit is contained in:
commit
f8e4421ffc
@ -770,8 +770,8 @@ watch(activeTab, (tab) => {
|
||||
<FormInput
|
||||
v-model.number="eqForm.conversion_factor"
|
||||
type="number"
|
||||
min="0.001"
|
||||
step="0.001"
|
||||
min="0"
|
||||
step="any"
|
||||
placeholder="Ej: 24"
|
||||
required
|
||||
/>
|
||||
|
||||
@ -227,41 +227,27 @@ const closeModal = () => {
|
||||
emit('close');
|
||||
};
|
||||
|
||||
/** Observadores */
|
||||
watch(() => props.show, (isShown) => {
|
||||
if (isShown) {
|
||||
loadWarehouses();
|
||||
|
||||
if (props.movement) {
|
||||
// Cargar datos del movimiento
|
||||
form.quantity = props.movement.quantity || 0;
|
||||
form.unit_cost = props.movement.unit_cost || 0;
|
||||
form.invoice_reference = props.movement.invoice_reference || '';
|
||||
form.notes = props.movement.notes || '';
|
||||
form.supplier_id = props.movement.supplier_id || null;
|
||||
|
||||
// Cargar números de serie según tipo de movimiento
|
||||
const isTransfer = props.movement.movement_type === 'transfer';
|
||||
const isExit = props.movement.movement_type === 'exit';
|
||||
/** Helpers */
|
||||
const applySerials = (movement) => {
|
||||
const isTransfer = movement.movement_type === 'transfer';
|
||||
const isExit = movement.movement_type === 'exit';
|
||||
const rawSerials = isTransfer
|
||||
? (props.movement.transferred_serials || [])
|
||||
? (movement.transferred_serials || [])
|
||||
: isExit
|
||||
? (props.movement.exited_serials || [])
|
||||
: (props.movement.serials || []);
|
||||
? (movement.exited_serials || [])
|
||||
: (movement.serials || []);
|
||||
|
||||
// Para traspasos/salidas: inicializar objetos de seriales para SerialSelector
|
||||
if (isTransfer || isExit) {
|
||||
selectedSerialObjects.value = rawSerials;
|
||||
}
|
||||
|
||||
if (rawSerials.length > 0) {
|
||||
const movementWarehouseId = props.movement.warehouse_id || props.movement.warehouse_to?.id;
|
||||
const movementWarehouseId = movement.warehouse_to?.id || movement.warehouse_to_id;
|
||||
|
||||
serialsList.value = rawSerials.map(s => {
|
||||
let locked = false;
|
||||
let lock_reason = null;
|
||||
|
||||
// Seriales con status='salida' son propios de este movimiento → editables
|
||||
const isOwnExitSerial = isExit && s.status === 'salida';
|
||||
|
||||
if (!isOwnExitSerial && s.status !== 'disponible') {
|
||||
@ -279,27 +265,47 @@ watch(() => props.show, (isShown) => {
|
||||
|
||||
return { serial_number: s.serial_number, locked, lock_reason };
|
||||
});
|
||||
} else if (props.movement.serial_numbers && props.movement.serial_numbers.length > 0) {
|
||||
serialsList.value = props.movement.serial_numbers.map(sn => ({
|
||||
serial_number: sn,
|
||||
locked: false
|
||||
}));
|
||||
} else {
|
||||
serialsList.value = [{ serial_number: '', locked: false }];
|
||||
}
|
||||
};
|
||||
|
||||
/** Observadores */
|
||||
watch(() => props.show, (isShown) => {
|
||||
if (isShown) {
|
||||
loadWarehouses();
|
||||
|
||||
if (props.movement) {
|
||||
// Cargar datos básicos del formulario desde el prop
|
||||
form.quantity = props.movement.quantity || 0;
|
||||
form.unit_cost = props.movement.unit_cost || 0;
|
||||
form.invoice_reference = props.movement.invoice_reference || '';
|
||||
form.notes = props.movement.notes || '';
|
||||
form.supplier_id = props.movement.supplier_id || null;
|
||||
|
||||
// Almacenes según tipo
|
||||
if (props.movement.movement_type === 'entry') {
|
||||
form.destination_warehouse_id = props.movement.warehouse_id || '';
|
||||
form.destination_warehouse_id = props.movement.warehouse_to_id || props.movement.warehouse_to?.id || '';
|
||||
} else if (props.movement.movement_type === 'exit') {
|
||||
form.origin_warehouse_id = props.movement.warehouse_from_id || props.movement.warehouse_from?.id || '';
|
||||
} else if (props.movement.movement_type === 'transfer') {
|
||||
form.origin_warehouse_id = props.movement.warehouse_from_id || props.movement.warehouse_from?.id || '';
|
||||
form.destination_warehouse_id = props.movement.warehouse_to_id || props.movement.warehouse_to?.id || '';
|
||||
}
|
||||
|
||||
// Limpiar seriales mientras se carga el detalle
|
||||
serialsList.value = [{ serial_number: '', locked: false }];
|
||||
selectedSerialObjects.value = [];
|
||||
|
||||
// Obtener el movimiento completo con seriales desde el endpoint de detalle
|
||||
api.get(apiURL(`movimientos/${props.movement.id}`), {
|
||||
onSuccess: (data) => {
|
||||
applySerials(data.movement);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// Limpiar seriales al cerrar
|
||||
// Limpiar al cerrar
|
||||
serialsText.value = '';
|
||||
}
|
||||
}, { immediate: true });
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user