Skip to content

Instantly share code, notes, and snippets.

@akatche
Last active March 23, 2016 21:41
Show Gist options
  • Save akatche/b538d18fdc81e5ec9e4e to your computer and use it in GitHub Desktop.
Save akatche/b538d18fdc81e5ec9e4e to your computer and use it in GitHub Desktop.
Idea para Shoel
//tiene ingresos de una recudacion, tiene gastos del chofer, tiene gasto de la recaudacion
//tiene autos , y el chofer tiene auto
//Me voy a basar en esto que me dijiste en el caralibro
//Como vos tenes un chofer haria esto
$chofer = Chofer::find(1); //Obtengo un chofer
//El chofer, tiene viajes, por lo tanto
$viajes = $chofer->viajes; //En la variable $viajes, vos tenes todos los viajes de ese chofer
/*
Para esto necesitas una relacion one-to-many, siendo el one el chofer y el many viajes, porque un chofer tiene muchos viajes
pero un viaje solo tiene un chofer.
Necesitas dos tablas, la table chofer y la tabla viaje, en la tabla viaje vos necesitas una columna llamada chofer_id
para que se puedan relacionar
*/
//Si vos quisieras tener la informacion de un viaje, ponele el primero haria asi
$viaje = $viajes->first();
/*
Ahora, viene el tema, vos me dijiste que un viaje tiene
-ingresos de recaudacion
-gasto del chofer
-gasto de recaudacion
-etc
Para esto, vos necesitas una tabla, vamos a llamarla Costos y deberia tener estos datos
-id
-viaje_id
-ingreso_recaudacion
-gasto_chofer
-gasto_recaudacion
(esto imaginando que vos tenes un form en el cual agregas estos datos una vez, si fuera de otra manera se puede hacer de otra forma)
Ahora, tenes que crear un modelo llamado Costos y hacer una relacion one-to-one, porque un viaje tiene un costo
y un costo solo tiene un viaje asociado, con lo cual vos vas a poder hacer esto al final
*/
$costo = $viaje->costo;
/*
Si haces un dump de la variable costo vas a tener algo asi
[
'id'=>'1',
'viaje_id'=>'2',
'ingreso_recaudacion'=>25400
'gasto_chofer'=>1440
'gasto_recaudacion'=>454
]
Esto, se lo pasas al frontend y listo, tenes toda esa info sin tener que hacer joins raros y matarte la cabeza
*/
/*
Lo piola de esta forma de hacerlo que tranquilamente podrias sacar estadisticas de forma rapida, ponele
la cantidad de viajes que hizo un chofer
$cantidad_viajes = $chofer->viajes()->count();
//Agarrar info de los viajes que fueron hechos el ultimo mes
$viajes = $chofer->viajes()->whereBetween('created_at', [fecha_inicio, fecha_fin])->get();
//Saber la recaudacion de esos viajes
$recaudacion = $viajes->costo->sum('recaudacion'); //Creo que mande fruta aca, pero algo asi se puede hacer
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment