Service / Workshop¶
Beyond retail, the product supports a service / repair workshop flow — taking in an item for repair, assigning a technician, consuming spare parts, and settling on pickup. It shares the customer, item, and cashier masters with the rest of the system.
A secondary module
Service is smaller than the inventory/POS core (the SmartSoft.Service.FrameWork.DataAccess
bundle is ~29 classes). This page is an orientation, not an exhaustive reference.
The workflow¶
flowchart LR
A["Intake<br/>frmTandaTerimaService<br/>photos + accessories + down-payment"] --> B["Assign technician + job<br/>parts via tbTr_ServicePart"]
B --> C["Process / finish<br/>frmProsesService<br/>SVH_TGLSELESAI, status"]
C --> D["Validate<br/>frmValidasiService"]
D --> E["Pickup + settle<br/>SVH_TGLAMBIL, tender split"]
style A fill:#e3f2fd,stroke:#1976d2
style E fill:#e8f5e9,stroke:#388e3c
| Stage | Form | What happens |
|---|---|---|
| Intake | frmTandaTerimaService.vb |
Record the item, serial, accessories, condition photos, and take a down-payment. |
| Process | frmProsesService.vb |
Assign technician + job type; consume spare parts; mark work done. |
| Validate | frmValidasiService.vb |
Sign-off / hand-off before pickup. |
| Discount | frmDiscount.vb |
Apply discounts to the service charge. |
Receipt printing: FrameWork.SmartSoft.Struk/StrukService.vb; the intake proof is the
Bukti/TandaTerimaService.rpt Crystal report.
Data model¶
Service order header/detail (SmartSoft.Service.FrameWork.DataAccess):
| Table | Holds |
|---|---|
tbTr_Service_H / _D (SVH_ / SVD_) |
The service order (see key columns below). |
tbTr_ServicePart |
Parts used per order. |
tbTr_TandaTerimaService_H / _D |
The intake receipt. |
tbTemp_Service, tbTemp_SparePart |
Working/staging tables. |
tbTr_Pembayaran, tbTr_Rewards |
Payments; loyalty rewards. |
Masters: tbMaster_SparePart, tbMaster_Teknisi (technicians),
tbMaster_JenisPekerjaan / tbMaster_HargaPekerjaan (job types & pricing).
Table relationships¶
erDiagram
tbMaster_Customer ||--o{ tbTr_Service_H : "owner"
tbMaster_Teknisi ||--o{ tbTr_Service_H : "technician"
tbMaster_HargaPekerjaan ||--o{ tbTr_Service_H : "job pricing"
tbTr_TandaTerimaService_H ||--|{ tbTr_TandaTerimaService_D : "intake header/detail"
tbTr_Service_H ||--|{ tbTr_Service_D : "service header/detail"
tbTr_Service_H ||--o{ tbTr_ServicePart : "parts used"
tbMaster_SparePart ||--o{ tbTr_ServicePart : "part"
tbTr_Service_H {
string SVH_KODECABANG PK
string SVH_NOSTRUK PK
string SVH_KODECUST FK
string SVH_KODETEKNISI FK
string SVH_SERIALNUMBER
string SVH_STATUS
double SVH_UANGMUKA "down-payment"
double SVH_GROSS
}
tbTr_Service_H (SVH_) — the repair record¶
The header captures the full workflow in one wide row:
- Session/identity:
SVH_KODECABANG,SVH_NOSTRUK,SVH_TGLTRN,SVH_STATION,SVH_SHIFT,SVH_USERID. - Item under repair:
SVH_SERIALNUMBER,SVH_PERLENGKAPAN(accessories),SVH_KETERANGAN,SVH_PHOTO/SVH_PHOTO2(condition photos),SVH_GARANSI(warranty),SVH_KODEPEK(job code). - Customer block:
SVH_KODECUST,SVH_NAMACUST, address,SVH_TELEPHONE,SVH_NOKARTU. - Workflow dates/status:
SVH_TGLSELESAI(done),SVH_TGLAMBIL(picked up),SVH_TGLEXPIRED,SVH_TGLBATAL(cancelled),SVH_STATUS. - Assignment/commission:
SVH_KODETEKNISI,SVH_TEKNISIKOMISI,SVH_KODESALES,SVH_SALESKOMISI,SVH_SPAREPART. - Money:
SVH_GROSS,SVH_HPP,SVH_PPN, discounts,SVH_UANGMUKA(down-payment), and the tender split (SVH_CASH,SVH_DEBIT,SVH_CARD,SVH_VOUCHER,SVH_TARIKTUNAI,SVH_JASALUAR= outside labour).
Integration points¶
- Sales: the retail sale header also carries service columns (
JLH_NOSERVICE,JLH_JASASERVICE,JLH_SPAREPART) so a service can be billed through the till — see POS & Sales. - Inter-branch sync: service data ships between sites under the
SVH(header) andSVP(photo) file prefixes — see Inter-Branch Sync. - Stock: consumed spare parts move inventory through the same stock engine as everything else — see Stock & Costing.