Refactor product pricing: catalog owns base price, pricing manager owns rules
This commit is contained in:
@@ -10,6 +10,7 @@ interface AdEditorModalProps {
|
||||
onClose: () => void;
|
||||
onConfirm: (listingId: number, price: number, description: string) => void;
|
||||
clientId: number | null; // El aviso se vinculará a este cliente
|
||||
productId: number; // Necesario para el precio base
|
||||
}
|
||||
|
||||
interface PricingResult {
|
||||
@@ -18,7 +19,7 @@ interface PricingResult {
|
||||
details: string;
|
||||
}
|
||||
|
||||
export default function AdEditorModal({ isOpen, onClose, onConfirm, clientId }: AdEditorModalProps) {
|
||||
export default function AdEditorModal({ isOpen, onClose, onConfirm, clientId, productId }: AdEditorModalProps) {
|
||||
const [flatCategories, setFlatCategories] = useState<FlatCategory[]>([]);
|
||||
const [operations, setOperations] = useState<any[]>([]);
|
||||
const [loading, setLoading] = useState(false);
|
||||
@@ -72,6 +73,7 @@ export default function AdEditorModal({ isOpen, onClose, onConfirm, clientId }:
|
||||
try {
|
||||
const res = await api.post('/pricing/calculate', {
|
||||
categoryId: parseInt(categoryId),
|
||||
productId: productId,
|
||||
text: debouncedText,
|
||||
days: days,
|
||||
isBold: styles.isBold,
|
||||
|
||||
@@ -240,6 +240,7 @@ export default function FastEntryPage() {
|
||||
try {
|
||||
const res = await api.post('/pricing/calculate', {
|
||||
categoryId: parseInt(formData.categoryId),
|
||||
productId: 0, // En FastEntry no hay producto aún
|
||||
text: debouncedText || "",
|
||||
days: formData.days,
|
||||
isBold: options.isBold,
|
||||
|
||||
@@ -310,6 +310,7 @@ export default function UniversalPosPage() {
|
||||
onClose={() => setShowAdEditor(false)}
|
||||
onConfirm={handleAdConfirmed}
|
||||
clientId={clientId || 1005}
|
||||
productId={selectedAdProduct?.id || 0}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ export interface Product {
|
||||
id: number;
|
||||
companyId: number;
|
||||
productTypeId: number; // 1:Classified, 2:Graphic, 3:Radio, 4:Physical, 5:Service, 6:Bundle
|
||||
categoryId?: number; // Para relacionarlo a un rubro
|
||||
name: string;
|
||||
description?: string;
|
||||
sku?: string;
|
||||
|
||||
Reference in New Issue
Block a user