Donc, ce que j'essaie de faire est de produire un rapport de balance de vérification. Je dois obtenir tous les plans de compte (coas) et la somme de son débit et la somme de son crédit entre deux dates. J'ai ces tables dans la base de données et ce sont leurs attributsComment retourner des données avec une plage de dates avec Laravel 5.2?
- Client: id, nom
- Coas: id, nom
- Journal: id, description, date
- Journal_details: id, journal_id, coa_id, debit, credit
J'ai déjà mis leurs relations dans le modèle.
Client.php
public function coas()
{
return $this->belongsToMany('App\Coa');
}
public function journal(){
return $this->hasMany('App\Journal');
}
Coa.php
public function clients(){
return $this->belongsToMany('App\Client');
}
public function journals_details(){
return $this->hasMany('App\JournalDetails');
}
Journal.php
public function journal_details(){
return $this->hasMany('App\JournalDetails');
}
public function client(){
return $this->belongsTo('App\Client');
}
JournalDetails.php
public function journal(){
return $this->belongsTo('App\Journal');
}
public function coa()
{
return $this->belongsTo('App\Coa');
}
Je suis en train de faire tous les plans d'action avec des détails de journal d'un client spécifique, que je suis déjà. $ trials = $ client-> coas() -> avec ('journals_details') -> get(); Cependant, j'utilise une plage de dates pour sélectionner uniquement celles qui appartenaient à la date spécifique qui est entrée. Voici mon contrôleur. J'ai essayé mais ça ne marche pas.
public function trial_balance_generate(Request $request)
{
$client = Client::find($request->client_id);
$start = \Carbon\Carbon::parse($request->from)->startOfDay();
$end = \Carbon\Carbon::parse($request->to)->endOfDay();
$data= $client->coas()->with('journals_details')->whereBetween('date',[$start,$end])->get();
return response()->json($data);
}
Je sais que quelque chose ne va pas dans la façon dont j'obtiens les données. Je ne sais pas comment obtenir tous les coas et ses détails avec l'en-tête du journal qui contient la date.
Ceci est mon javascript pour obtenir la plage de dates.
$('.date').on('change', function() {
var from = $('#from').val();
var to = $('#to').val();
var client_id = $('.clientHidden').val();
$.ajax({
type : 'get',
url : '/user/'+client_id+'/reports/trialbalance/generate/',
dataType: 'json',
data : {
'from':from,
'to':to,
client_id':client_id
},
success:function(data){
$('td').remove();
for(var ctr = 0; ctr < data.length; ctr++)
{
$('#reportTbody').append()
'<tr><td>'+ data[ctr].name +'</td><td>{{$trial->journals_details->sum("debit")}}</td><td>{{$trial->journals_details->sum("credit")}}</td></tr>'+
}
}
});
});
Voici une photo de ce que je suis en train de réaliser https://imgur.com/a/IZvio qui retourne tout donc pas encore les dates.
Vous n'avez pas besoin de la colonne 'client_id' dans la table' coas' pour que 'Coa-> belongsToMany' fonctionne? – Matey
Il y a une autre table nommée 'client_coa' qui se compose du client_id et du coa_id. – ninuhh