Untitled
unknown
plain_text
5 months ago
3.7 kB
5
Indexable
const setOfferVariant = ({ calc, from, to, index, setValue, currentData, }: { from: string | Date; to: string | Date; calc: ReturnType<typeof formulas.filterPriceList>; index: number; setValue: UseFormSetValue<Slice>; currentData: Slice['energyConsumptionPointsElectricity'][number]; }) => { const filteredPriceList = Array.isArray(calc) ? calc : null; if (!filteredPriceList) return; // TODO: czy code czy inny klucz const priceListName = filteredPriceList?.[index]?.selectedPriceList?.code ?? ''; const product = filteredPriceList?.[index]?.selectedProduct ?? null; if (product === null) { setValue( `energyConsumptionPointsElectricity.${index}.values`, Array.from( { length: Math.abs( new Date(to).getFullYear() - new Date(from).getFullYear() ) + 1, }, (_, i) => { return { year: new Date(from).getFullYear() + i, sellingPrice: 0, priceListNumber: '', priceFromPriceList: 0, marginMass: 0, tradingFee: 0, repurchasePrice: 0, purchasePriceFromInstallation: 0, gpPrice: 0, minMargin: 0, maxMargin: 0, isPriceListAvailable: false, }; } ) ); } if (from && to && product) { setValue( `energyConsumptionPointsElectricity.${index}.values`, Array.from( { length: Math.abs( new Date(to).getFullYear() - new Date(from).getFullYear() ) + 1, }, (_, i) => { const periods = product?.periods ?? []; let period; if (periods) { const startYear = dateFns.getYear(new Date(from)); const endYear = dateFns.getYear(new Date(to)); const isSameYear = startYear === endYear; const currentYear = new Date(from).getFullYear() + i; if (!isSameYear) { period = periods.find( (p) => currentYear >= new Date(p.start_date).getFullYear() && currentYear <= new Date(p.end_date).getFullYear() && new Date(p.start_date).getFullYear() !== new Date(p.end_date).getFullYear() ); if (!period) { period = periods.find( (p) => new Date(p.start_date).getFullYear() === currentYear && new Date(p.end_date).getFullYear() === currentYear ); } } else { period = periods.find( (p) => new Date(p.start_date).getFullYear() === currentYear && new Date(p.end_date).getFullYear() === currentYear ); } } return { year: new Date(from).getFullYear() + i, sellingPrice: currentData?.values?.[i]?.sellingPrice ?? 0, priceListNumber: priceListName, priceFromPriceList: period?.price ?? 0, marginMass: 0, tradingFee: period?.trade_fee ?? 0, repurchasePrice: period?.repurchase ?? 0, purchasePriceFromInstallation: 0, gpPrice: period?.price_gp ?? 0, minMargin: period?.min_margin ?? 0, maxMargin: period?.max_margin ?? 0, isPriceListAvailable: !period ? false : true, }; } ) ); } };
Editor is loading...
Leave a Comment