Skip to content
HNROS Help Center
English
Start free
Contents4.1 The Delivery column and the red date4.2 The four filters — exactly what each brings4.3 The "Partially invoiced" badge4.4 The dispatcher's morning routineSorting by delivery date10. CSV export: taking a list into ExcelWhere the button sitsWhat is in the file — and what is notNarrow the filter and the file narrowsOn a paged list only the loaded rows come downBadge and button columns come out empty"Seç modu" and "CSV (seçili)" on the invoice listOpening the file in Excel11. Right-click › "Copy directly (new document)" — how it differs from "Open a copy"12. The "Suggested maximum" line in Invoice13. Orders › "Invoice the ready-to-ship"14. The stock list split into three families: Stock · Expense · Spare Parts / Equipment14.1 One dock tile, three icons14.2 Type chips and "Unclassified" old cards14.3 "+ New Expense" and "+ New Card" — the dialog follows the family14.4 The Expense Tracking panel — expenses from purchases14.5 Which columns drop out of the list?15. Stock groups: add and delete, several main groups, drag-and-drop15.1 Main group and subgroup — the names no longer carry a marker15.2 Adding and deleting: «+», «×» and the confirmation strip15.3 Membership by drag-and-drop and by right click15.4 The «In the groups | Outside the groups | All» switch — finding and placing ungrouped cards15.5 The panel splitter — resizing the main-group / subgroup areas15.6 Sales Charts — the period sales / purchase curve of the selected group

Help › List Screens

List Screens — Accounts, Stock, Invoices, Orders, Quotes

The program has five big lists and all of them work the same way. Learn one and you know all five. This page treats a list not as a "table" but as a tool built for finding things: search scope, filters, sorting, column widths and opening a card.

⏱ How long does it take?

This page is an 8-minute read. In return, the "let me find that record" task you do dozens of times a day drops from 10 seconds to 2.

1. Five lists, one logic

The five windows below all use the same table engine. The only real difference between them is how the data arrives — covered in section 6.

👤

Accounts

Customer and supplier cards. Full list — search and sort happen in the browser, instantly.

📦

Stock

Product cards, quantity on hand and warehouse breakdown. Also a full list. It splits into three families — Stock, Expense and Spare Parts / Equipment; see §14.

🧾

Invoices

Purchase and sales invoices. Because there are so many, they arrive from the server page by page.

📋

Orders

Orders received and placed; open/closed status is tracked here.

💬

Quotes

Price quotes issued. Those that became orders and those that did not sit in the same list.

2. The three zones of the screen

Whichever list you open, the screen always has three parts. Fix this map in your head once:

1 · TOOLBAR search · scope · filter · new record · CSV 2 · TABLE Click a header → sort Drag the header's right edge → column width Open the card: SINGLE click on accounts/stock, DOUBLE click on document lists (see §5) Right-click a row → context menu Only visible rows are drawn — 100,000 rows are as fast as 20. 3 · BOTTOM BAR record count · paging (only on server-paged lists)

Figure 1 — The three zones of every list screen

📥 The CSV button on the toolbar

Every list carries a CSV button in its toolbar: it downloads the currently visible (filtered/sorted) list as a CSV with Turkish separators — the file opens directly in Excel. A notification tells you how many rows were exported; with a filter on, only the filtered rows are included.

3. Search: first tell it "where to look"

Next to the search box there is a scope selector. This is the button beginners miss most: most "I can't find it" complaints come from searching in the wrong scope. On the Accounts list the scopes are:

Scope Where it looks When to use it
Otomatik Decides by itself, looking at the shape of what you typed The default — it usually guesses right
Code / Title Account code and company title When you know part of the company name
Tax ID Tax / national ID number Separates companies with similar names for certain
Phone · E-mail Contact fields When all you have is a number or an address
Contacts Names of the people attached to the company The "what was Deniz's company?" question
City The city field of the address Territory work, route planning
💡 Type less, find more

Search works on contains logic: type "deniz" and you get both "Deniz Yapı" and "Akdeniz Ticaret". You do not have to start from the beginning. Instead of typing a long title in full, type its most distinctive three letters.

4. Filters: the job search cannot do

Search is for "find the record whose name I know". A filter is for "bring me the records whose name I don't know but whose property I do" — for example "show everyone who owes me". The Status filter on the Accounts list offers:

Filter Who it shows
Status: AllNo filter — every card
Debit balanceThose who owe you — this is your collection list
Credit balanceThose you owe — your payment plan comes from here
Open (non-zero)Everyone whose account is not settled
Closed (zero)Cards whose balance is zero
Doubtful receivableAccounts flagged as risky to collect
Bad debt (incl. membership)Records written off as uncollectible
📊 Payment-behaviour badges

On some rows of the Accounts list you will see small coloured badges: Cash, On time, Slightly late, Late, Chronically late. Nobody types these — the program computes them from the customer's past payment speed. When granting terms to a new customer, this badge is a more reliable adviser than your gut.

🚚 In one sentence

The Delivery column shows the date an order was promised for; the filter strip narrows the list by that date; and Ready to ship is the dispatcher's morning list. The strip exists only on the orders list — not on invoices or quotes.

4.1 The Delivery column and the red date

The Delivery column shows the delivery date you typed when entering the order — it is not a new field, it is information the order has always carried; it is simply visible in the list now. It has three states:

What you see in the cell Meaning What to do
A plain date The delivery day has not arrived yet Nothing; it will drop into the "Today" filter when its turn comes
A red date The date has passed and the order is still open — an overdue delivery Call the customer or ship it today; the row leaves the list once the job is done
— No delivery date was ever written on this order (most older records are like this) This row matches no delivery filter — read the warning below
🚨 An order with no delivery date is invisible to the filters

This is the most common misreading. When you press Ready to ship and see "12 orders", those are 12 orders that have a date. An order left without a delivery date appears in none of the four filters — but press All and you will see it sitting there. The habit to build is simple: type the delivery date when you enter the order. That is how you build next week's shipping list today.

4.2 The four filters — exactly what each brings

All four are applied on the server: it is the whole set that is filtered, not just the page you see, and the count and total in the strip above belong to that filtered set. Day boundaries are built from the server's local calendar — press it at 21:00 and "today" is still today.

Button Exact definition Who uses it
Today Delivery date falls exactly on today (00:00–23:59) Dispatch — today's loading plan
This week Seven days from today (today included, up to six days ahead). It is not the calendar week — press it on Friday and it also covers next Wednesday Planning — lining up with production and purchasing
Overdue Delivery date before today — today is excluded. An order still on the list is by definition open or partial, so no extra "open" condition is needed Sales and customer relations — an apology and a new date
Ready to ship Delivery date today or earlier and the row still open/partial — that is Today plus Overdue together Dispatch — the real morning list
All Removes the filter — everything, including rows with no delivery date Everyone — the normal working state
🧭 The delivery filter and the date filter are different things

There are two different notions of time in the strip, and mixing them makes the list look "empty": the period picker (Today/Week/Month/Year/All) looks at the date the order was written; the delivery strip looks at the date it will be delivered. They work together: "orders written this month whose delivery is overdue" is a perfectly valid question. The orders list opens with the All period by default, because orders are few — so the delivery strip gives the right answer on the first click.

🔎 What happens while you are typing a search?

The moment you type into the search box the period filter is suspended (the program searches all dates), but the delivery filter keeps applying. That distinction is deliberate: a date range is a convenience, whereas the delivery choice is your deliberate view — a search narrows it, it does not cancel it. With "Ready to ship" selected, typing a customer name answers: that customer's open orders due today or earlier.

4.3 The "Partially invoiced" badge

The status column is the delivery column's twin: delivery answers when, status answers how much of it. You will see three values:

Badge What it means For dispatch
Open No invoice has been raised from the order at all The whole thing is to be loaded
Partially invoiced Part of the order has been invoiced and the rest is still open Load only the remainder — open the card to see what is left
Invoice #… It is linked to an invoice, whose number is shown The job is done; follow it from the document chain
💡 Why you never see a "fully invoiced" order on the list

Because when an order line is invoiced in full the program removes it from the order book — the job is done and there is no point keeping it among open work. So every order that is still on the list yet marked as invoiced is by definition partial. That is why the badge is called "Partially invoiced", and what it tells you is: there is still goods to load on this order.

4.4 The dispatcher's morning routine

  1. Open the orders list and press Ready to ship on the delivery strip. The information strip at the top gives you two figures: how many orders and how much money in total. That is the one-line summary of the morning's workload.
  2. Click the Delivery header so the oldest delivery comes to the top. The list is then in order of urgency: the topmost red row is the customer who has waited longest.
  3. Look at the status column. On rows marked "Partially invoiced" you will load the remainder, not the whole order — double-click the row to open the Order Card and see what is left.
  4. Export the list (the CSV button on the toolbar — see the CSV section) and hand it to the warehouse. The export carries the Delivery column too, so nobody asks "which order is for today" again on paper.
  5. Save this layout. Right-click an empty spot on the page and save the page preset: the selected delivery filter, the sort and the period are stored together. Next morning the window opens already on "Ready to ship" — without pressing a thing.

5. Sorting and columns

🏷 What are the "Süreç" and "Süreç Ek Durumu" columns?

These two columns on the quote, order and invoice lists are free labels defined by your own company — the program attaches no meaning to them ("in production", "ready to ship", "at accounting" and the like). To label a document, right-click its row and pick from the Süreç ▸ menu; the list of options is edited under Ayarlar → HNR Tercihleri → Firma Bilgileri → Süreç & Aktivite Listeleri. An empty column just means nobody set a label — it is not an error.

Sorting by delivery date

Click the Delivery header: the list is sorted by delivery date, and a second click reverses the direction. The sort also happens on the server, so the whole set is sorted rather than the page you see — an order on page 3 really is the latest one. Rows with no delivery date are always pushed to the end; whichever direction you sort, you never get a block of blanks at the top. This sort option exists only for orders — invoice and quote lists have no Delivery header.

6. Full list or paged list?

There are two kinds of list and they behave slightly differently. Knowing the difference answers "why is search instant here but not there":

FULL LIST — accounts, stock Everything loads once, at open Search and sort run IN THE BROWSER ✓ Filters as you type, no waiting ✓ No paging — you just scroll ! The first open may take a few seconds The accounts list carries ~24,700 cards and still scrolls smoothly: only the visible rows are drawn. PAGED — invoices, orders, quotes Arrives from the server page by page Search runs ON THE SERVER ✓ Opens instantly even at 100,000 records ✓ Page buttons sit in the bottom bar ! Typing a search causes a brief wait Invoices ~72,000, quotes ~104,000 rows: instead of downloading all of it, the server finds what you want and sends that page.

Figure 2 — Two kinds of list and how they differ

7. Creating a new record from the list

Every list has a + New … button in its toolbar. On the Accounts list, + New Account opens a small form; when you save, the card is written to HNR and starts with a balance of 0. On the invoice/order/quote lists the new button opens the relevant document entry window — which has its own guide.

⚠ Do not create the same company twice

Before creating a new account always search first — by code, by title and by tax number. A duplicate card means one customer's balance is split across two cards; the statement comes out wrong and fixing it requires manual transfers. Thirty seconds of searching prevents two hours of cleanup.

8. Three common mistakes

Mistake Symptom The right way
Leaving a filter on "The record vanished!" — but a filter is hiding it When you can't find it, first set Status to All
Searching in a narrow scope You type a company name but the scope is "Phone" When unsure, set the scope to Automatic
Working out totals by hand Counting rows by hand or adding them up on a calculator Use Reports for totals and breakdowns; to take data into Excel, the CSV button on the toolbar downloads the visible list

9. Frequently asked

The list came up empty — was the data deleted?

Almost never. Check in order: (1) old text may be left in the search box, (2) a filter may be on, (3) on a paged list you may be on the last page. Clear all three; if the list fills up, your data is fine.

I ruined my column layout — can I undo it?

Widths are personal and you can fix them any time by dragging again; nobody else is affected. There is no lasting damage — the layout is part of your view, not of the data.

Can I delete a record from the list?

Deletion requires administrator rights and is blocked outright for records that have movements (when an account cannot be deleted the program tells you why). The right reflex is not to delete but to deactivate the record or change its status: history stays intact.

How many lists can I keep open at once?

As many as you like — each stays as its own window and gets a dot under its dock icon. Keeping the accounts list open while you also open the invoice list and moving between them is a normal way to work.

"Today" came back empty, yet we are shipping goods today.

Almost always for the same reason: those orders have no delivery date. Press All, find the rows with — in the Delivery column and fill the dates in. The second reason is that delivery was not today but yesterday — then the row is not under "Today" but under "Overdue"; use Ready to ship to see both at once.

Why is "This week" not the calendar week?

Because shipping is planned by the days ahead, not by the calendar. On a Friday the calendar week would leave you two days of work, while the real problem is the load that will not be ready by next Tuesday. So "This week" means seven days from today — whichever day of the week you press it, it shows the week ahead of you.

I would like the delivery filter on invoices too.

An invoice is a document already issued; the delivery promise is in the past and filtering it would mean nothing. Quotes do not have it either: a quote is not even an order yet. The strip was deliberately placed on orders only — that is the one list where work that has been promised but not yet done lives.

10. CSV export: taking a list into Excel

Lists show everything but calculate nothing. The moment you say "let me total the VAT on these 340 invoices and send it to the manager", the screen is no longer enough; you need the data in Excel. That is what the small CSV button — a downward arrow and one word — on every list is for.

Where the button sits

It can be in one of two places; both produce the same kind of file under the same rule:

Place On which screens The file you get
The toolbar on top — next to the search box and the filters The five big lists: Accounts, Stock, Invoices, Orders, Quotes — and the Statement tab of the account card cari-listesi.csv · stok-listesi.csv · faturalar.csv · siparisler.csv · teklifler.csv · ekstre-C001.csv
The footer strip — at the right end of the totals line Newer tables; today it is on the Reconciliation → Receivables Ageing tab. More tables will gain it over time. alacak-yaslandirma.csv
ℹ The only difference between the two

The toolbar button exports a column set tailored to that list (a column you hid on screen may still appear in the file) and, once downloaded, shows a notice: "CSV downloaded · 128 rows — faturalar.csv". The generic footer button exports exactly what you see: a column you hid stays out of the file. Both write the same file format; use whichever the list offers.

What is in the file — and what is not

One-sentence rule: what you see on screen is what you get. That has three practical consequences:

  1. Narrow the filter and the file narrows

    The search box, the date range, the status filter — all of them carry into the file. This is not a limitation but a tool: if you want "only this month's cancelled invoices", build that view on screen first, then press CSV. You never need to hunt for a separate report screen.

  2. On a paged list only the loaded rows come down

    The distinction from section 6 matters here. On full-list screens (Accounts, Stock) the data is on the client from the start, so CSV gives you the whole list. On paged screens (Invoices, Orders, Quotes) it arrives from the server piece by piece, and CSV exports only the page that is loaded. To get everything, scroll down to load the pages first, or narrow the filter so it fits one page — the footer always tells you how many records are loaded.

  3. Badge and button columns come out empty

    If a column shows a coloured badge or an action button (🖨, "Open", a status light), it has no Excel equivalent and the cell arrives empty. This is not a gap but a deliberate choice: only numbers and text go into the file. The status is usually also present in words in another column; use that one.

"Seç modu" and "CSV (seçili)" on the invoice list

Sometimes what you want cannot be described by a filter: "these three invoices plus those two below". The invoice list has Seç modu (selection mode) for that. Turn it on and click rows to select several; the CSV (seçili) button that appears next to it downloads only your selection as faturalar-secili.csv. The plain CSV button ignores the selection — it always exports the visible page.

Opening the file in Excel

The file is written so that Excel with Turkish regional settings opens it on a double click. Three small but critical choices make that work:

Choice Why
Columns are separated by a semicolon (;) In Turkish the comma is the decimal mark. A comma-separated file gets pasted into one column by Excel.
Numbers use a decimal comma and no thousands separator Written as "12.500,00" Excel would read it as text, and you could not sum it. The file says "12500,00"; Excel adds the pretty formatting itself.
An invisible marker is placed at the start of the file Without it Excel mangles Turkish letters — "Şişli" becomes something like "ÅŸiÅŸli". With it, ş, ğ, İ, ı arrive correctly.

Dates always arrive as DD.MM.YYYY. Sentinel values that mean "no date" in HNR's older records (1900, or 31.12.1999) become empty cells in the file — so a made-up date never sorts to the top of your Excel list.

⚠ The "no rows to export" warning

If you press CSV with no rows on screen, nothing downloads; instead a notice appears: "no rows to export — there are no records visible in the list, widen your filters". Downloading an empty file would feel like a failure, so the program states the reason instead. The generic footer button simply greys out in the same situation.

💡 I cannot find the file I downloaded

The file is produced by the browser itself, not fetched from the server — that is why it appears instantly even on a slow network. Look in your browser's Downloads folder (Ctrl+J). Exporting the same list twice makes Windows append "(1)" to the name; your earlier export is not overwritten.

11. Glossary

Turkish Short description
KapsamWhich fields the search looks at
FiltreFiltering rows by property (status, balance)
Tam listeA list loaded all at once and filtered in the browser
Sayfalı listeA list that arrives from the server in chunks
Kolon tercihiPer-user column widths stored on the server
Bağlam menüsüThe shortcut list opened by right-click
🖨 Print this page

The Print button at the top right produces an A4-friendly version (navigation and buttons are hidden). Related guides: Account Card, Stock Card, Document Entry.

11. Right-click › "Copy directly (new document)" — how it differs from "Open a copy"

Right-clicking a row in the Quote, Order and Invoice lists shows two neighbouring menu items. Open a copy works as before: it opens the entry window, you change lines, fix the date, then Save. Copy directly (new document) opens no window: after one confirmation it writes a new document dated today in a single request and shows "Source #x → new #y · n lines". Ideal for repeating orders, the same invoice every month, "same as last week".

Open a copy Copy directly
Window Opens, you edit None; one confirmation
Date / due You choose Today; due blank (= date)
Lines, account, warehouse, currency Editable Exactly as source (quantity and amount identical)
Gates Run on Save The same gates (account/stock checks, negative-stock approval, number from server)

Permission: the write right for that document type — the copy passes the same gates as a hand-written document. The source document never changes. A double click makes the second request return "already exists" with the same new document. Errors: 404 if the source was deleted, 422 for a source without lines, and the negative-stock question from document entry if stock would go negative.

12. The "Suggested maximum" line in Invoice

When invoicing an order and stock is short or the order remainder is exceeded, the program stops (422). The message used to say only "insufficient"; now a Suggested maximum line sits under the error band: "line 1 STK-01: at most 0 (requested 4)". On over-shipment the maximum is the order remainder; on negative stock it is the warehouse on-hand (never below zero). Reduce the quantity to that value and retry, or, if you have the right, tick the negative-stock / over-shipment approval box.

13. Orders › "Invoice the ready-to-ship"

The "Ready to ship" filter in section 4 shows the orders; the Invoice the ready-to-ship button at the top of the Orders window selects and batch-invoices them: pick a date, read the stock badge (enough / short / unknown), only orders with enough stock are selected by default, press Invoice and read the per-order result. Step-by-step guide and error table: Sales guide, section 18.

14. The stock list split into three families: Stock · Expense · Spare Parts / Equipment

Every stock card now has a Type, and the type puts the card into one of three families. Each family is listed in its own window; all three use the same list engine (search, group filter, sorting, column picker, CSV) — the only things that change are which cards appear and which columns and fields still make sense.

Family Types Is stock kept? Window
Stock Material · Semi-finished · Semi-finished 2 · Finished goods · Scrap / Waste Yes Stock
Expense Expense · Service · Labor No — a purchase invoice does not increase stock Expense
Machine Machine · Equipment · Spare part Yes — but in a separate list Spare Parts / Equipment
⚠ The expense family keeps no stock

When you write electricity, water, waste disposal or a service line on a purchase invoice, and the card belongs to the expense family, the quantity on hand does not grow. Those lines feed the expense, not the stock: you follow them from the Expense Tracking panel in 14.4. Previously such cards sat in the Stock list and their on-hand figures inflated forever.

14.1 One dock tile, three icons

DOCK · Stock / Warehouse click the tile → the sub-bar opens 📦 Stock material · semi-finished finished goods · scrap 💡 Expense expense · service · labor NO STOCK KEPT 🔧 Spare Parts machine · equipment spare part THE SAME STRIP IN ALL THREE WINDOWS Family name · All (n) · a chip per type (n) · plus Unclassified (n) in Stock "+ New Stock" / "+ New Expense" / "+ New Card" — the button is named after the family Only in the Expense window: the "Expense Tracking" button All three windows can stay open at once; the column layout is remembered separately for each.

Figure 4 — The Stock / Warehouse tile and the three card lists

Click the Stock / Warehouse tile on the dock; the sub-bar shows the Stock, Expense and Spare Parts / Equipment icons (together with Warehouses). All three windows are the same screen — whichever icon you use, it lists that family's cards. The permission is shared: a user who can see the Stock list also sees the other two; you do not have to grant anything extra.

14.2 Type chips and "Unclassified" old cards

Right under the toolbar there is a chip strip: the family name on the left, then All and every type of the family — each chip carries the number of cards of that type. Clicking a chip narrows the list to that type; clicking the same chip again releases it. The counts are independent of the group filter; they are counted from the full list, so "how many finished goods are in this family" always gives the same answer.

Old cards that have not been given a type yet carry an empty type. They count as the stock family (so the old behaviour is preserved: they do keep stock) and in the Stock window they also appear under an Unclassified chip. That chip is drawn only in the Stock window and only when such cards exist. To set a type, open the card › Edit › Type. Forgetting to set it does not corrupt anything — the card simply keeps showing up in the wrong list.

💡 The search box also matches the type name

Besides the code and the description, search also scans the type label. So typing "scrap" in the Stock window brings up the scrap cards — no chip click needed. In the Expense window a reminder sits at the right of the chip strip: "Expense cards keep no stock — tracking comes from purchase invoices".

14.3 "+ New Expense" and "+ New Card" — the dialog follows the family

The new-card button is named after the window: + New Stock in Stock, + New Expense in Expense, + New Card in Spare Parts / Equipment. The dialog that opens offers only that family's types (the Type dropdown) and does not draw the fields that make no sense for the family:

14.4 The Expense Tracking panel — expenses from purchases

Since expense cards keep no stock, the answer to "how much did we pay for electricity" is not in the on-hand figure but in the purchases. The Expense Tracking button — present only on the Expense window's toolbar — opens a panel inside the window (no separate window; pressing Close leaves the list exactly where it was).

While no card is selected the monthly statement fetches nothing and says "No card is selected — select cards below."; when a month holds no line at all it says "There is no line in this month." The selection stays with the panel: changing the dates keeps the ticked cards and only closes the open monthly statement.

The column headings of the monthly statement — Date · Code · Account · Document · Quantity · Price · Amount — are clickable. Clicking a heading sorts the statement by that column: the numeric columns (Quantity, Price, Amount) come from the largest down on the first click — whoever looks at the amount is after the big line — while text columns are ordered A→Z in Turkish letter order. Clicking the same heading a second time reverses the direction; the heading of the active column carries a ▲ or ▼ mark. The sorting happens entirely on the screen: no new request goes to the server, the row limit does not change, and rows with equal values keep the order in which the server sent them. The sorting you chose stays when you move to another month.

Expense Tracking follows the group filter of the window. If you open the panel while a main group or a subgroup is selected in the Groups panel on the left, the figures are computed from the cards currently visible in the list only — this is how "tracking the expenses of that group" is done. A blue chip in the parameter strip says so: «Main group: operations · all its subgroups · 12», «Group: electricity, water · 5», or, in the Outside the groups mode, «Outside the groups: … · 9»; the number at the end is how many cards in that scope have a purchase in this period. The caption at the top right also becomes Group total instead of Period total, so you never confuse where the figure came from.

The All cards button next to the chip removes the filter temporarily: the panel goes back to every expense card, the chip is struck through and the button is renamed Only those in the group — pressing it returns you to the window's filter. Every time you flip the switch the card selection is cleared and the open monthly statement closes, because the set of cards is built anew. If the cards in the selected group have no purchase at all in that period, the panel says «The cards in the selected group have no purchase in this period — you can remove the filter with "All cards".» While nothing is selected in the Groups panel no chip appears either: the panel counts every expense card as before.

To the right of the monthly bars there is a ring (pie) chart: the breakdown of the selected month's expenses by card. Its heading says which data it draws — Monthly breakdown · 2026-03 while a month is selected, Period breakdown while the whole range is drawn. When the panel first opens no month is selected; the pie then shows the last month. If you click a month bar, both the line statement of that month opens and the pie switches to that month; which month is drawn you see from the small ◉ mark at the end of the month row. The Whole period button in the heading releases the month selection and gathers the entire chosen date range into a single pie.

The largest eight cards become separate slices in the pie, the rest are gathered into the Others slice. The legend on the right carries each slice's colour, card code, amount and percentage; in the middle of the ring stands the total of the selected month — or, while the whole period is drawn, of the entire range under the word PERIOD. The card selection and the VAT excluded / VAT included switch apply to the pie as well: only the ticked cards become slices and the amounts are written in the mode you chose. The pie sends no separate request to the server; it derives its figures from the monthly breakdown of the card table, so changing the month brings no waiting. If the selected month holds no expense at all, "There is no expense in this month." stands in place of the pie; if the whole range is empty, "There is no expense in this period."

The figures come from purchase invoice and delivery-note lines: a purchase is added, a purchase return subtracted; the net amount is the difference. The amount formula is the same as in document entry — price × rate × quantity × (100 − discount) ⁄ 100. Warehouse vouchers, stock counts and production movements are not counted; they are not purchases.

ℹ Two warning strips

If the range you picked exceeds 20,000 rows, a strip appears at the top of the panel: "The row limit was reached — narrow the range; the totals may be incomplete." Narrow the dates before trusting the figures. When there is no purchase at all in the period the panel says so plainly: "There is no purchase to expense cards in this period. Once you add a card of type expense/service/labor to a purchase invoice, it accumulates here."

14.5 Which columns drop out of the list?

The core columns are the same in every family — Code · Description · Unit · Type — but the meaningless ones are simply not drawn: in the Expense window Price 1 and On hand drop out, in the Spare Parts / Equipment window Price 1 does. Your column choice from the gear is stored separately per window and they never overwrite each other. The CSV button also names the file after the family: stok-listesi.csv, gider-kartlari.csv, ekipman-kartlari.csv.

Which tabs and sections are hidden on the card's own screen is explained in section 12 of the Stock Card guide.

15. Stock groups: add and delete, several main groups, drag-and-drop

The Groups panel on the left of the Stock window is no longer just a filter; it is where you manage the groups themselves: you create and delete main groups and subgroups, link one subgroup to several main groups, and drag stock cards onto a group. The same panel in the Accounts window stays read-only — the management buttons appear only in Stock.

15.1 Main group and subgroup — the names no longer carry a marker

Groups have two layers. Main groups sit on top (for example «pipes», «pumps»), and under each of them are the subgroups linked to it. A stock card belongs to a SUBGROUP only; a main group carries no membership — it is a heading that gathers the subgroups beneath it.

In the old desktop program a main group name was stored with an exclamation mark and was shown that way on screen too: «!pipes». The marker now stays in the STORAGE format only; in the panel, in the lists and in the reports you see the main group by its name: «pipes». The one rule that follows is this: a new group name cannot START with an exclamation mark — if you try, the box says "A group name cannot start with '!'" and nothing is saved.

A subgroup can be linked to more than one main group. The subgroup «gaskets» can appear under both «pipes» and «pumps»; the card joins once and is found from either branch. Subgroups linked to no main group are not lost: they stay visible under the Unlinked subgroups entry at the bottom of the main-group list.

15.2 Adding and deleting: «+», «×» and the confirmation strip

The «+» button to the right of the «Main Groups» and «Subgroups» headings opens a small inline name box: type, Enter saves, Esc cancels. Deleting starts with the «×» that appears when you hover a row, and it does not happen at once — first a confirmation strip appears that spells out, with numbers, what is about to happen.

Groups are now separated by list. The Stock, Expense and Spare Part/Equipment windows each see only THEIR OWN main groups, THEIR OWN subgroups and their own Unlinked subgroups entry: if «pipes» was created in the stock list, it does not appear in the expense window at all. A new main group is written to the family of the window it was created in, and every group that existed before counts as the «stock» family. The Group Memberships list on the stock card is filtered by the card's family too.

The separation is complete: the lists do not see one another's groups, so there is no operation for moving a group to another list either — do not look for such an entry in the panel. The suggestion list in the subgroup box offers only the subgroups of this list. If you try to create a subgroup here under a name that is already defined in another list, the server refuses it: ««gaskets» is defined in another list (Stock cards) — the lists do not see one another's groups; use a different name in this list.» The bracket tells you which list holds that name; what you do is pick a different name in this list. A subgroup left unlinked is not lost and does not cross over to another list either: it stays in the list of the main group it was last linked to, under that list's Unlinked subgroups entry. Very old subgroups that carry no family record at all count in the Stock cards list.

15.3 Membership by drag-and-drop and by right click

The shortest way to put a stock card into a group: grab the row in the list and drop it onto a SUBGROUP row in the left panel. The target row is outlined in blue; on drop it says «Added to the group» and the list refreshes. You cannot drop onto a main-group row — membership exists only at subgroup level, so a main-group row does not accept the drag.

The twin of the same action, for keyboard and touch, is in the right-click menu. With one or more subgroups selected in the left panel, right-click a row in the list: the commands Add to the selected groups (N) and Remove from the selected groups (N) appear, where N is the number of selected subgroups. If the write fails it says «Group membership could not be saved» and the reason is printed in the body.

The same drag logic works for the subgroups THEMSELVES: grab a subgroup row in the left panel (hovering it reveals a ⋮⋮ handle on the left) and drop it onto another main group in the Main groups list — the subgroup gets linked to that main group as well. The target main group is outlined in blue; on drop it says «The subgroup is now linked to this main group as well», or «The subgroup is already in this main group» if the link was there. Only a link is added, nothing is copied: the subgroup's definition, its stock memberships and its previous main-group link all stay as they are — a single subgroup appears under several main groups. Dropping onto the main group you are already in is ignored. The rows under «Unlinked subgroups» can be dragged too; dropping one onto a main group takes it out of that list. Dragging depends on the group operations permission. To remove a link, use × on the subgroup row → «Remove from this main group only»; to remove several subgroups at once, tick the rows and use the − button in the heading.

15.4 The «In the groups | Outside the groups | All» switch — finding and placing ungrouped cards

There is a THREE-position switch on the toolbar. In the groups is the familiar behaviour: it lists the members of the selected subgroups. Outside the groups brings the OPPOSITE of the same selection — the cards that are NOT members of the selected groups. All shows both at once: nothing is filtered out, every card stays where it is, and the ones that are members are marked with a small badge on the row. The badge strip states the mode plainly: «Outside the groups: pipes, pumps».

Its real use appears when NO subgroup is selected: then «Outside the groups» means the cards that belong to no group at all — the ungrouped ones; the badge says «Cards with no group». The workflow is this: flip the switch to «Outside the groups», clear the selection, and drag the cards that appear onto the subgroups in the left panel — each drop removes the card from the list, so the list gets shorter. When you finally read «No stock without a group — every card belongs to a group», the job is done. If the list empties while groups are selected, the message reads «There is no stock outside the selected groups» instead.

Main group scope: if a MAIN group is selected in the left panel but you have checked none of its subgroups, the switch runs over ALL the subgroups of that main group: «In the groups» brings the cards that are members of any subgroup of the main group, «Outside the groups» those that are members of none of them, and «All» lists everything and marks the members with a Member badge. The strip writes it as «Main group: pipes · all its subgroups» (or, depending on the mode, «Outside the main group: …» or «All — members of the main group marked: …»). As soon as you check one of the subgroups the scope narrows and, as before, only the checked subgroup set applies.

In the All mode nothing is filtered out; the cards are MARKED instead. If at least one subgroup is selected, the members of those groups carry a Member badge on the row (hovering the badge reads «Member of the selected groups»); if no group is selected, it is the cards belonging to no group at all that are marked, with a No group badge. The strip gives the numbers too: «All — members marked: pipes, pumps · 2908 stock · 15 member(s) / 2893 not»; with no group selected the heading becomes «All — cards with no group marked». This mode answers «which groups is this card in?» without narrowing the list — while you look for a code you see both the member and the non-member on the same screen.

When you select a subgroup, a small copy of the same switch also appears in the group strip above the list, so you do not have to go back to the toolbar to change the mode. On the right of the strip, if you hold the group-writing permission, sits the hint «Drag and drop the row onto a group»; hovering it explains «Drop the row onto a subgroup name in the left panel». The hint is hidden in the «In the groups» mode — there every row is a member already.

ℹ Group Reports is disabled in this mode

In the «Outside the groups» mode the Group Reports button on the toolbar is greyed out and cannot be pressed. The reason is simple: those reports run over the MEMBERS of a group, and a set of non-members has no group breakdown. Flip the switch back to «In the groups» to take a report.

15.5 The panel splitter — resizing the main-group / subgroup areas

When you select a main group, a thin draggable horizontal bar appears in the panel between Main Groups and Subgroups. Dragging the bar up shrinks the main-group area and makes room for the subgroups; dragging it down does the opposite. A double-click evens the two areas out again (50% / 50%). You can focus the bar with Tab and move it five points at a time with the ↑ and ↓ keys. The ratio is clamped between 12% and 88%, so neither area ever closes completely.

The ratio you pick is remembered in the browser: it stays the same when you close and reopen the window, and in the other list windows too. This is a convenience belonging to that browser alone — it is not written to the server, so on another computer you start again from the default half-and-half layout. The bar is shown only while a main group is selected; with the subgroup list closed there is nothing to split.

15.6 Sales Charts — the period sales / purchase curve of the selected group

The Sales Charts button on the toolbar becomes active when you select a subgroup or a main group in the left panel; while none is selected it stays greyed out and hovering it reads «First select a group or a main group from the left panel». The panel opens as a layer INSIDE the window, and Close takes you back to the list. The scope comes from the group filter of the window: whichever mode you are in (In the groups / Outside the groups), the chart describes that same set. This panel is the stock twin of the Expense Tracking of 14.4 — the same logic, running over the stock cards in scope instead of the expense cards.

On the top row sit the Start and End dates, the Sale | Purchase switch, the VAT excluded / VAT included button and the scope chip. «Sale» counts the lines of sales invoices and delivery notes (outbound), «Purchase» those of purchase invoices and delivery notes (inbound). The scope chip states plainly what is being added up: «Group: pipes, pumps · 12», with a main group selected «Main group: pipes · all its subgroups · 522», in the opposite mode «Outside the groups: …»; the number at the end is how many cards are in scope. At the right end it reads Sale · period total (Purchase for purchases); once you select cards the heading turns into Selected total. The value criteria are exactly the same as in Group Reports — over the same range the two screens give the same figure.

In the middle are the monthly bars, and to their right the pie. Each month row shows that month's amount by the length of its bar; hovering it gives the quantity and the number of lines. Clicking a month switches the pie on the right to that month and its heading becomes «Monthly breakdown · 2026-03»; clicking the same month again, or the Whole period button, returns the pie to the entire range («Period breakdown»). The pie draws the eight largest stock items as separate slices and collects the rest into an «Others» slice. If there is no movement at all in the period, the panel says «There is no sale from the stock items in scope in this period.» (for purchases, «There is no purchase to the stock items in scope in this period.»); if the selected month is empty, only the place of the pie reads «There is no sale in this month.».

At the bottom is the By card table: each row carries the code, the description, the type, the quantity, the number of lines and the amount. The check box at the start puts the card into the selection — the monthly bars, the pie and the total are then computed only from the ticked cards; the All and None buttons set the selection in one go, and double-clicking a row leaves only that card selected. Clicking the Code, Description, Quantity and Amount headings sorts the table; a second click reverses the direction (the little arrow shows it). Clicking a row opens the card on its Transactions tab, so you reach the documents behind the figure you see in the chart with a single click.