Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions vsd_fleet_ms/vsd_fleet_ms/doctype/trips/trips.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,16 @@ frappe.ui.form.on('Trips', {
requested_total();
rejected_total();
fuel_amount();
if (frm.doc.trip_completed == 0 && frm.doc.trip_status != "Breakdown") {
if (frm.doc.trip_completed == 0 && frm.doc.trip_status != "Brake down") {
frm.add_custom_button(__("Complete Trip"), function () {
frm.set_value("trip_completed", 1);
frm.set_value("trip_completed_date", frappe.datetime.nowdate());
var truck = frm.doc.truck_number;
frm.save();
if (frm.doc.transporter_type == "In House") {
frappe.db.set_value('Truck', truck, {
trans_ms_current_trip: '',
status: 'Idle'
}).then(r => {
frappe.msgprint(__(`Truck ${truck} is Available now`));
});
}
frm.save().then(() => {
if (frm.doc.transporter_type == "In House") {
frappe.msgprint(__(`Trip completed. Truck ${truck} status updated accordingly.`));
}
});
}, __('Actions'));
}
if(frm.doc.trip_completed == 0 && frm.doc.trip_status == "Pending" && frm.doc.docstatus == 0){
Expand All @@ -41,7 +37,7 @@ frappe.ui.form.on('Trips', {
});
}, __('Actions'));
}
if(!frm.doc.resumption_trip && frm.doc.trip_status == "Breakdown" && frm.doc.status != "Re-Assigned"){
if(!frm.doc.resumption_trip && frm.doc.trip_status == "Brake down" && frm.doc.status != "Re-Assigned"){
frm.add_custom_button(__('Allocate New Vehicle Trip'), function() {
frappe.call({
method: 'vsd_fleet_ms.vsd_fleet_ms.doctype.trips.trips.create_resumption_trip',
Expand Down
12 changes: 6 additions & 6 deletions vsd_fleet_ms/vsd_fleet_ms/doctype/trips/trips.json
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@
"fieldname": "eta_end_of_trip",
"fieldtype": "Data",
"label": "ETA End Of Trip",
"read_only_depends_on": "eval:doc.trip_status == \"Breakdown\""
"read_only_depends_on": "eval:doc.trip_status == \"Brake down\""
},
{
"fieldname": "section_break_ld7mf",
Expand Down Expand Up @@ -334,7 +334,7 @@
"fieldtype": "Table",
"label": "Location Update",
"options": "Truck Trip Location Update",
"read_only_depends_on": "eval:doc.trip_status == \"Breakdown\""
"read_only_depends_on": "eval:doc.trip_status == \"Brake down\""
},
{
"fieldname": "side_trips_tab",
Expand Down Expand Up @@ -374,14 +374,14 @@
"fieldname": "phone_number",
"fieldtype": "Data",
"label": "Phone Number",
"read_only_depends_on": "eval:doc.trip_status == \"Breakdown\""
"read_only_depends_on": "eval:doc.trip_status == \"Brake down\""
},
{
"depends_on": "eval:doc.transporter_type == \"In House\"",
"fieldname": "licence_number",
"fieldtype": "Data",
"label": "Licence Number",
"read_only_depends_on": "eval:doc.trip_status == \"Breakdown\""
"read_only_depends_on": "eval:doc.trip_status == \"Brake down\""
},
{
"fieldname": "section_break_7vc12",
Expand Down Expand Up @@ -552,11 +552,11 @@
"fieldname": "trip_status",
"fieldtype": "Select",
"label": "Trip Status",
"options": "Pending\nCompleted\nBreakdown",
"options": "Pending\nCompleted\nBrake down",
"read_only": 1
},
{
"depends_on": "eval:doc.trip_status == \"Breakdown\"",
"depends_on": "eval:doc.trip_status == \"Brake down\"",
"fieldname": "vehicle_breakdown_tab",
"fieldtype": "Tab Break",
"label": "Vehicle Breakdown"
Expand Down
58 changes: 57 additions & 1 deletion vsd_fleet_ms/vsd_fleet_ms/doctype/trips/trips.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,61 @@
from vsd_fleet_ms.vsd_fleet_ms.doctype.requested_payment.requested_payment import request_funds

class Trips(Document):
def before_save(self):
if not self.date:
self.date = datetime.datetime.now()
# validate_requested_funds(self)
self.validate_main_route_inputs()
self.update_truck_status()

def update_truck_status(self):
if self.transporter_type == "In House" and self.truck_number:
# Update truck status based on trip status
if self.trip_completed == 1:
# Check if truck has any other active trips before setting to Idle
other_active_trips = frappe.db.count('Trips', {
'truck_number': self.truck_number,
'trip_completed': 0,
'name': ['!=', self.name],
'docstatus': ['!=', 2] # Exclude cancelled trips
})

if other_active_trips == 0:
# Set truck to Idle when trip is completed and no other active trips
frappe.db.set_value('Truck', self.truck_number, {
'status': 'Idle',
'trans_ms_current_trip': ''
})
else:
# If there are other active trips, just clear current trip reference
frappe.db.set_value('Truck', self.truck_number, {
'trans_ms_current_trip': ''
})
elif self.trip_status == "Brake down":
# Set truck status to Breakdown
frappe.db.set_value('Truck', self.truck_number, {
'status': 'Breakdown',
'trans_ms_current_trip': self.name
})
else:
# Set truck to On Trip when assigned
frappe.db.set_value('Truck', self.truck_number, {
'status': 'On Trip',
'trans_ms_current_trip': self.name
})

def on_update(self):
# Update trip status based on completion
if self.trip_completed == 1 and self.trip_status != "Completed":
self.db_set("trip_status", "Completed")
# Update truck status when trip is completed
self.update_truck_status()
elif self.trip_status == "Brake down" and self.trip_completed == 1:
# If a breakdown trip is marked as completed, update status
self.db_set("trip_status", "Completed")
# Update truck status when breakdown trip is completed
self.update_truck_status()

def before_submit(self):
self.set_driver()
self.validate_request_status()
Expand Down Expand Up @@ -125,6 +180,7 @@ def before_save(self):
self.date = datetime.datetime.now()
# validate_requested_funds(self)
self.validate_main_route_inputs()
self.update_truck_status()

def validate_fuel_requests(self):
make_request = False
Expand Down Expand Up @@ -453,7 +509,7 @@ def create_purchase_order(request_doc, item):
@frappe.whitelist()
def create_breakdown(docname):
trip = frappe.get_doc("Trips", docname)
trip.trip_status = "Breakdown"
trip.trip_status = "Brake down"
trip.status = "Not Re-Assigned"
trip.breakdown_date = now()
trip.save()
Expand Down
6 changes: 5 additions & 1 deletion vsd_fleet_ms/vsd_fleet_ms/doctype/truck/truck.json
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
"fieldname": "status",
"fieldtype": "Select",
"label": "Status",
"options": "Idle\nUnder Maintenance\nOn Trip\nDisabled",
"options": "Idle\nUnder Maintenance\nOn Trip\nBreakdown\nDisabled",
"read_only": 1
},
{
Expand Down Expand Up @@ -302,6 +302,10 @@
"color": "Green",
"title": "On Trip"
},
{
"color": "Orange",
"title": "Breakdown"
},
{
"color": "Red",
"title": "Disabled"
Expand Down
2 changes: 1 addition & 1 deletion vsd_fleet_ms/vsd_fleet_ms/doctype/truck_log/truck_log.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"fieldtype": "Select",
"in_list_view": 1,
"label": "Vehicle Status",
"options": "Idle\nUnder Maintenance\nOn Trip\nDisabled",
"options": "Idle\nUnder Maintenance\nOn Trip\nBreakdown\nDisabled",
"reqd": 1
},
{
Expand Down