Kasimy Trading sells to walk-in shoppers at the counter and to trade customers on account. Al Jawad Software House set up Odoo so that each branch, each credit decision and each cheque is recorded where the work happens, and payroll follows local practice.
The business
A trader that sells both retail and wholesale runs two businesses side by side. The counter wants speed. The wholesale desk wants to sell on account and know who owes what. The owner needs one clear picture.
Where the work gets hard
Which branch did it? Owners need to know what each branch sold, bought, holds and owes. If the branch is only added to a report afterwards, the numbers are hard to trust.
Selling on account. A warning on a credit limit is easy to ignore. What a customer really owes includes goods ordered but not yet delivered, and cheques already received change the picture too.
Cheques are not cash. Customers pay with post-dated cheques, which are dated for a later day, and with guarantee cheques. The debt stays open until the cheque clears, and a cheque that bounces brings the debt back.
Payroll has local rules. Pay depends on attendance, unpaid leave, salary advances repaid in instalments and end-of-service provisions. The bank also expects its salary file in a set format.
What we implemented
Branches recorded on every transaction
Sales, purchases, stock moves, payments and counters all carry the branch. Stock moving between branches is sent from one and received at the other, so nothing is lost in transit. Dashboards can be filtered by branch, and people only see the branches they are allowed to.

Credit control inside the order
A wholesale order that goes beyond a customer's credit position is held for approval instead of just flagged. Odoo counts what the customer owes, adds orders not yet delivered and the new order, and subtracts cheques received that have not yet cleared or bounced. Who approves depends on how much credit is used and how overdue the customer is. A rejection records its reason, and selected customers can be exempted.
Cheques followed to the bank
A cheque moves from draft to deposited, then cleared or bounced. Deposit and clearing update the accounts, and a bounce reverses them. One cheque can be matched to several invoices. Guarantee cheques have their own record, and the customer's ledger shows cheques next to invoices.

Payroll that follows local practice
Attendance, unpaid leave, salary advances and end-of-service provisions feed the payslip. Odoo produces the bank salary file as a spreadsheet. It does not connect to the bank.
Day-to-day buying and selling
Purchase orders accept lines from a spreadsheet, and freight is added to item cost. Customers receive a monthly statement by email.
How the work gets easier
| The usual way | With the new process |
|---|---|
| Branch results are put together after the month ends | Every transaction carries its branch from the start |
| Credit limits are a warning that people click past | Orders over the limit wait for the right approver |
| Open cheques are tracked in a separate list | Each cheque has a status, and the books follow it |
| A bounced cheque has to be reopened by hand | A bounce reverses the entries and the debt comes back |
| Stock between branches depends on a phone call | Transfers are sent, then received |
| Payroll is checked against attendance by hand | Attendance and leave flow into the payslip |
The result is a clearer view of each branch and fewer decisions made on incomplete information. Staff spend less time reconciling lists and more time on customers.
