async def createCompany(conn: AsyncIOMotorClient, payment: PaymentCompany):
    date = payment.paymentDate
    dates = date.split('-')
    financialYear = fiscalyear.FiscalDate(
        int(dates[0]), int(dates[1]), int(dates[2])).fiscal_year
    payment.financialYear = financialYear
    payment.paymentNumber = await get_payment_number_by_year(conn, financialYear)
    rows = await conn[database_name][payments_collection_name].insert_one(payment.dict())
    data = await get_by_id_companyDetails(conn, rows.inserted_id)
    return data
Example #2
0
    def test_contains(self, a, f, g):
        assert a not in f
        assert f in g

        assert fiscalyear.FiscalDateTime(2016, 8, 1, 0, 0, 0) in a
        assert datetime.datetime(2016, 8, 1, 0, 0, 0) in a
        assert fiscalyear.FiscalDate(2016, 8, 1) in a
        assert datetime.date(2016, 8, 1) in a

        with pytest.raises(TypeError):
            fiscalyear.FiscalYear(2016) in a
Example #3
0
    def test_contains(self, a, b, c, d, f):
        assert b in c
        assert a not in f
        assert b in d

        assert fiscalyear.FiscalDateTime(2015, 10, 1, 0, 0, 0) in a
        assert datetime.datetime(2015, 10, 1, 0, 0, 0) in a
        assert fiscalyear.FiscalDate(2015, 10, 1) in a
        assert datetime.date(2015, 10, 1) in a

        with pytest.raises(TypeError):
            "hello world" in a
Example #4
0
    def test_contains(self, a, b, c, d):
        assert b in c
        assert d not in a
        assert d in b

        assert fiscalyear.FiscalDateTime(2016, 1, 1, 0, 0, 0) in a
        assert datetime.datetime(2016, 1, 1, 0, 0, 0) in a
        assert fiscalyear.FiscalDate(2016, 1, 1) in a
        assert datetime.date(2016, 1, 1) in a

        with pytest.raises(TypeError):
            'hello world' in a
Example #5
0
 def test_leap_year(self):
     assert fiscalyear.FiscalDate(2016, 1, 1).fiscal_day == 93
     assert fiscalyear.FiscalDate(2016, 2, 29).fiscal_day == 152
     assert fiscalyear.FiscalDate(2017, 3, 1).fiscal_day == 152
     assert fiscalyear.FiscalDate(2016, 9, 30).fiscal_day == 366
     assert fiscalyear.FiscalDate(2017, 9, 30).fiscal_day == 365
     assert fiscalyear.FiscalDate(2018, 9, 30).fiscal_day == 365
async def create(conn: AsyncIOMotorClient, bills: BillMaster):
    date = bills.billDate
    dates = date.split('-')
    financialYear = fiscalyear.FiscalDate(int(dates[0]), int(dates[1]),
                                          int(dates[2])).fiscal_year
    bills.financialYear = financialYear
    bills.billNumber = await get_bill_number_by_year(conn, financialYear)
    rows = await conn[database_name][bills_collection_name].insert_one(
        bills.dict())
    for billData in bills.billDetails:
        stockData = await reduce_stock(conn, billData.stockId,
                                       billData.productQuantity)
    data = await get_by_id(conn, rows.inserted_id)
    return data
Example #7
0
    def test_contains(self, a, b, c, f):
        assert b in c
        assert a not in f

        assert fiscalyear.FiscalDateTime(2015, 10, 1, 0, 0, 0) in a
        assert datetime.datetime(2015, 10, 1, 0, 0, 0) in a
        assert fiscalyear.FiscalDate(2015, 10, 1) in a
        assert datetime.date(2015, 10, 1) in a

        assert b in fiscalyear.FiscalMonth(2016, 1)
        assert b in fiscalyear.FiscalQuarter(2016, 1)
        assert b in fiscalyear.FiscalYear(2016)

        with pytest.raises(TypeError):
            "hello world" in a
Example #8
0
    def test_complex(self):
        # Test defaults
        day = fiscalyear.FiscalDate(2017, 12, 1)
        assert day.fiscal_year == 2018
        assert day.fiscal_quarter == 1

        # Change fiscal year settings
        fiscalyear.setup_fiscal_calendar("same", 1, 1)
        assert day.fiscal_year == 2017
        assert day.fiscal_quarter == 4

        # Restore defaults and re-test
        fiscalyear.setup_fiscal_calendar("previous", 10, 1)
        assert day.fiscal_year == 2018
        assert day.fiscal_quarter == 1
Example #9
0
 def c(self):
     return fiscalyear.FiscalDate(2017, 11, 15)
Example #10
0
 def b(self):
     return fiscalyear.FiscalDate(2017, 8, 31)
Example #11
0
 def a(self):
     return fiscalyear.FiscalDate(2017, 1, 1)
Example #12
0
 def test_current(self, mocker):
     mock_today = mocker.patch.object(fiscalyear.FiscalDate, "today")
     mock_today.return_value = fiscalyear.FiscalDate(2016, 10, 1)
     current = fiscalyear.FiscalDay.current()
     assert current == fiscalyear.FiscalDay(2017, 1)
Example #13
0
    'Cat': '^[CKG].*at.*',
    'Clown': '^[CK]l.*n$',
    'Devil': '^D.*(ev|ia).*',
    'Dinosaur': '^Dino.*',
    'Ghost': '^G.*t$',
    'Pirate': '^Pira.*',
    'Vampire': '^Vamp.*',
    'Werewolf': '^We.*wolf$',
    'Zombie': '^Z.*mbi.*'
}
fiscalyear.START_MONTH = 11
xlsx = pd.ExcelFile("F:/Data/Halloween Costumes.xlsx")
df = pd.read_excel(xlsx, sheet_names=1)
df['Date'] = df['Date'].apply(lambda x: datetime.strptime(x, '%d/%m/%Y'))
df['FiscalYear'] = df['Date'].apply(
    lambda x: fiscalyear.FiscalDate(x.year, x.month, x.day).fiscal_year)
df = df[df['FiscalYear'] >= 2019].copy()
df['FiscalYear'] = df['FiscalYear'].apply(lambda x: f'{x} FY Sales')
for correct, pattern in costume_pt.items():
    df['Costume'] = df['Costume'].replace(to_replace=pattern,
                                          value=correct,
                                          regex=True)
df = df.replace({
    'Country': {
        'Indonsia': 'Indonesia',
        'Slovnia': 'Slovenia',
        'Philippins': 'Philippines',
        'Luxmbourg': 'Luxembourg'
    }
})
final = df.melt(id_vars=[c for c in df.columns if not re.search('^Sales', c)],
Example #14
0
# Clean up date.
# * Split DATE TIME into 2 values
# * Coerce Value column to numeric and drop NA rows to exclude missing data
# * Get columns for Day, Month and Year from the Date column
snow[['Date', 'Time']] = snow['DATE TIME'].str.split(expand=True)
snow['VALUE'] = pd.to_numeric(snow['VALUE'], errors='coerce')
snow.dropna(subset=['Date', 'VALUE'])
snow['Year'] = snow.Date.str.slice(stop=4).astype('int32')
snow['Month'] = snow.Date.str.slice(start=4, stop=6).astype('int32')
snow['Day'] = snow.Date.str.slice(start=6, stop=8).astype('int32')

# Calculate snow year days for plotting using the Fiscal Year calendar
# Fiscal Year Day 1 = 9/1, so Month 1 = Sept, etc.
snow['SnowYear'] = snow.apply(
    lambda x: fy.FiscalDate(x['Year'], x['Month'], x['Day']).fiscal_year,
    axis=1)
snow['SnowMonth'] = snow.apply(
    lambda x: fy.FiscalDate(x['Year'], x['Month'], x['Day']).fiscal_month,
    axis=1)
snow['SnowDay'] = snow.apply(
    lambda x: fy.FiscalDate(x['Year'], x['Month'], x['Day']).fiscal_day,
    axis=1)

# Get subset of data to plot
plotting_columns = [
    'STATION_ID', 'VALUE', 'Date', 'SnowYear', 'SnowMonth', 'SnowDay'
]
plot_data = snow[plotting_columns].sort_values(
    by=['STATION_ID', 'SnowYear', 'SnowMonth', 'SnowDay'])
Example #15
0
def in_fiscal_year(date, fiscal_year=None):
    if fiscal_year is None:
        fiscal_year = current_fiscal_year()
    fiscal_date = FY.FiscalDate(date.year, date.month, date.day)
    return fiscal_date.fiscal_year == fiscal_year
Example #16
0
def current_fiscal_year(today=None):
    today = date.today() if today is None else today
    return FY.FiscalDate(today.year, today.month, today.day).fiscal_year