"""Formulas from sheet 'Orders' of 'fpna_month_end.xlsx'. Generated by Power Migrate 0.1.0a1 (no-AI mode). One function per logic block, in the order they appear on the sheet; ``model.compute`` runs them in dependency order. """ from .. import xl from ..xl import Book def month(book: Book) -> None: r"""Month Orders!F2:F301 (300 rows, copied down). Excel (F2): =EOMONTH(B2,0) Pattern (R1C1): =EOMONTH(RC[-4],0) Reads: Orders!B2 """ orders = book['Orders'] for r in range(2, 302): orders[r, 'F'] = xl.EOMONTH(orders[r, 'B'], 0) def region(book: Book) -> None: r"""Region Orders!G2:G301 (300 rows, copied down). Excel (G2): =VLOOKUP(C2,Lookups!$E$3:$F$8,2,FALSE) Pattern (R1C1): =VLOOKUP(RC[-4],Lookups!R3C5:R8C6,2,FALSE) Reads: Orders!C2, Lookups!E3:F8 """ orders = book['Orders'] lookups = book['Lookups'] for r in range(2, 302): orders[r, 'G'] = xl.VLOOKUP(orders[r, 'C'], lookups["E3:F8"], 2, False) def unit_price(book: Book) -> None: r"""Unit price Orders!H2:H301 (300 rows, copied down). Excel (H2): =VLOOKUP(D2,Lookups!$A$3:$C$12,3,FALSE) Pattern (R1C1): =VLOOKUP(RC[-4],Lookups!R3C1:R12C3,3,FALSE) Reads: Orders!D2, Lookups!A3:C12 """ orders = book['Orders'] lookups = book['Lookups'] for r in range(2, 302): orders[r, 'H'] = xl.VLOOKUP(orders[r, 'D'], lookups["A3:C12"], 3, False) def gross_eur(book: Book) -> None: r"""Gross EUR Orders!I2:I301 (300 rows, copied down). Excel (I2): =E2*H2 Pattern (R1C1): =RC[-4]*RC[-1] Reads: Orders!E2, Orders!H2 """ orders = book['Orders'] for r in range(2, 302): orders[r, 'I'] = orders[r, 'E'] * orders[r, 'H'] def discount_eur(book: Book) -> None: r"""Discount EUR Orders!J2:J301 (300 rows, copied down). Excel (J2): =IF(I2>Assumptions!$B$11,I2*Assumptions!$B$12,0) Pattern (R1C1): =IF(RC[-1]>Assumptions!R11C2,RC[-1]*Assumptions!R12C2,0) Reads: Assumptions!B11, Assumptions!B12, Orders!I2 """ orders = book['Orders'] assumptions = book['Assumptions'] for r in range(2, 302): orders[r, 'J'] = xl.IF(orders[r, 'I'] > assumptions["B11"], orders[r, 'I'] * assumptions["B12"], 0) def net_gbp(book: Book) -> None: r"""Net GBP Orders!K2:K149 (148 rows, copied down). Excel (K2): =(I2-J2)*FX_EUR_GBP Pattern (R1C1): =(RC[-2]-RC[-1])*FX_EUR_GBP Reads: Assumptions!B7, Orders!I2, Orders!J2, name FX_EUR_GBP """ orders = book['Orders'] for r in range(2, 150): orders[r, 'K'] = (orders[r, 'I'] - orders[r, 'J']) * book.name('FX_EUR_GBP') def period(book: Book) -> None: r"""Period Orders!L2:L301 (300 rows, copied down). Excel (L2): =TEXT(B2,"yyyy-mm") Pattern (R1C1): =TEXT(RC[-10],"yyyy-mm") Reads: Orders!B2 """ orders = book['Orders'] for r in range(2, 302): orders[r, 'L'] = xl.TEXT(orders[r, 'B'], 'yyyy-mm') def range_k151_k301(book: Book) -> None: r"""Orders!K151:K301 Orders!K151:K301 (151 rows, copied down). Excel (K151): =(I151-J151)*FX_EUR_GBP Pattern (R1C1): =(RC[-2]-RC[-1])*FX_EUR_GBP Reads: Assumptions!B7, Orders!I151, Orders!J151, name FX_EUR_GBP """ orders = book['Orders'] for r in range(151, 302): orders[r, 'K'] = (orders[r, 'I'] - orders[r, 'J']) * book.name('FX_EUR_GBP')