Skip to content

exvas/garage_app

Repository files navigation

Garage Management App

A comprehensive garage management system built for ERPNext/Frappe Framework that handles vehicle service operations, work orders, inspections, and sales invoice integration.

Features

Core Functionality

  • Vehicle Job Cards: Complete job card management with status tracking
  • Service Work Orders: Individual work order management and tracking
  • Vehicle Inspections: Inward and final inspection workflows
  • Sales Invoice Integration: Automatic invoice creation and payment tracking
  • Parts Management: Track parts usage and costs
  • Technician Management: Work assignment and tracking

Advanced Features

  • Payment Status Tracking: Real-time payment status with overdue detection
  • Automatic Status Updates: Smart status progression based on work completion
  • Force Cancel Utilities: Handle linked document cancellation issues
  • Progress Indicators: Visual work progress tracking
  • Comprehensive Reporting: Job card status and work completion reports

Sales Invoice Management

  • Automatic Creation: Generate invoices from completed job cards
  • Payment Tracking: Monitor payment status (Unpaid/Paid/Overdue/Partially Paid)
  • Smart Unlinking: Force cancel linked invoices when needed
  • Status Synchronization: Auto-update job card status based on invoice status
  • Overdue Handling: Automatic detection and status updates for overdue invoices

Vehicle Job Card Workflow

  1. Draft → Initial creation
  2. To Inspection → Requires inward inspection
  3. To Work Order → Ready for work assignment
  4. In Progress → Work orders active
  5. Ready for Delivery → Work completed, ready for invoice
  6. Completed → Invoice created and work finalized

Service Work Order Statuses

  • Draft → Initial state
  • Not Started → Assigned but not begun
  • In Progress → Currently being worked on
  • Completed → Work finished
  • On Hold → Temporarily paused
  • Cancelled → Work cancelled

Installation

  1. Install the app:
bench get-app garage_app
bench install-app garage_app
  1. Run database migrations:
bench migrate
  1. Restart the system:
bench restart

Usage

Creating a Vehicle Job Card

  1. Navigate to Vehicle Job Card doctype
  2. Fill in vehicle details and customer information
  3. Add required services to the services table
  4. Submit the job card to begin workflow

Managing Work Orders

  1. Work orders are automatically created from job card services
  2. Assign technicians to individual work orders
  3. Track progress and update status as work progresses
  4. Mark work orders as completed when finished

Invoice Generation

  1. When job card status reaches "Ready for Delivery"
  2. Click "Create Sales Invoice" button
  3. Review and submit the generated invoice
  4. Job card status automatically updates to "Completed"

Handling Payment Issues

  • Overdue Detection: System automatically detects overdue invoices daily
  • Status Updates: Job cards with overdue invoices remain "Completed" status
  • Force Cancellation: Use built-in utilities to handle linked document issues

Configuration

Custom Fields

The app automatically creates custom fields for Sales Invoice integration:

  • vehicle_job_card - Link to source job card
  • payment_status - Payment tracking field
  • invoice_total - Total amount
  • outstanding_amount - Remaining balance

Scheduled Jobs

  • Daily: Check for overdue invoices and update statuses
  • Hourly: Update job card statuses based on work order completion

API Endpoints

Force Cancel Utilities

  • garage_app.force_cancel_utils.force_cancel_sales_invoice - Force cancel linked invoices
  • garage_app.invoice_management.cleanup_and_create_invoice - Clean and recreate invoices
  • garage_app.payment_status_updater.check_overdue_invoices - Update payment statuses

Status Management

  • garage_app.invoice_management.check_job_card_invoice_status - Check linking status
  • Vehicle Job Card methods: create_sales_invoice(), update_payment_status()

Troubleshooting

Common Issues

"Cannot delete or cancel because Sales Invoice is linked"

  • Use the Force Cancel button in Sales Invoice form
  • Or run: bench --site [site] execute garage_app.force_cancel_utils.force_cancel_sales_invoice --kwargs "{'docname': 'INVOICE_NAME'}"

"Field not found" errors in JavaScript

  • Ensure all custom fields are created properly
  • Check field names match between JavaScript and DocType definitions

Job Card status not updating

  • Run payment status updater manually: garage_app.payment_status_updater.check_overdue_invoices
  • Check that all work orders are properly completed

Support

For issues and support, please check the error logs in ERPNext and ensure all dependencies are properly installed.

License

MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors