Пример #1
0
 public function crearPagos(Request $request)
 {
     $id = $request->input('id');
     $fecha = $request->input('fecha');
     if ($fecha == "") {
         $fecha = Carbon::today();
     }
     if ($id == 0) {
         $distribuidores = Distribuidor::all();
         for ($j = 0; $j < sizeof($distribuidores); $j++) {
             $vales = Vale::where('id_distribuidor', $distribuidores[$j]->id_distribuidor)->where('deuda_actual', '>', 0)->where('estatus', 1)->where('fecha_inicio_pago', '<=', $this->calcularFechaCorte($fecha))->get();
             $saldoTotal = 0;
             for ($i = 0; $i < sizeof($vales); $i++) {
                 $importe = $vales[$i]->cantidad;
                 $saldoAnterior = $vales[$i]->deuda_actual;
                 $pagosRealizados = $vales[$i]->pagos_realizados + 1;
                 $numeroPagos = $vales[$i]->numero_pagos;
                 $abono = $this->calcularPago($importe, $numeroPagos, $pagosRealizados);
                 $saldoTotal += $abono;
             }
             if ($saldoTotal > 0) {
                 $comision = $this->calcularComision($saldoTotal, $distribuidores[$j]->id_distribuidor);
                 $pagoDoble = Pago::where('id_distribuidor', $distribuidores[$j]->id_distribuidor)->where('fecha_creacion', $this->calcularFechaCorte($fecha))->get();
                 $pagoAux = Pago::where('id_distribuidor', $distribuidores[$j]->id_distribuidor)->where('estado', 1)->get();
                 //pagos
                 if (count($pagoDoble) == 0) {
                     if (count($pagoAux) == 0) {
                         $pago = new Pago();
                         $pago->id_distribuidor = $distribuidores[$j]->id_distribuidor;
                         $pago->cantidad = $saldoTotal;
                         $pago->fecha_creacion = $this->calcularFechaCorte($fecha);
                         $pago->estado = 0;
                         // 0:pendiente  1:desfasado 2:pagado 3:Cancelado por nuevo pago
                         $pago->comision = $comision;
                         $pago->id_cuenta = Session::get('id');
                         $pago->save();
                         $distribuidores[$j]->comision = $comision;
                         $distribuidores[$j]->save();
                     } else {
                         $pagoAux[0]->estado = 3;
                         $pagoAux[0]->save();
                         $pago = new Pago();
                         $pago->id_distribuidor = $distribuidores[$j]->id_distribuidor;
                         $pago->cantidad = $saldoTotal + $this->saldoAtrasado($vales, $distribuidores[$j]->id_distribuidor);
                         $pago->fecha_creacion = $this->calcularFechaCorte($fecha);
                         $pago->estado = 0;
                         // 0:pendiente  1:desfasado 2:pagado 3:Cancelado por nuevo pago
                         $pago->comision = 0;
                         $pago->abono = $pagoAux[0]->abono;
                         $pago->id_cuenta = Session::get('id');
                         $pago->save();
                         $distribuidores[$j]->comision = $comision;
                         $distribuidores[$j]->save();
                     }
                     ///else
                 }
             }
             // if saldo total
         }
         // for distribuidores
     } else {
         $vales = Vale::where('id_distribuidor', $id)->where('deuda_actual', '>', 0)->where('estatus', 1)->where('fecha_inicio_pago', '<=', $this->calcularFechaCorte($fecha))->get();
         $saldoTotal = 0;
         $distribuidor = Distribuidor::find($id);
         for ($i = 0; $i < sizeof($vales); $i++) {
             $importe = $vales[$i]->cantidad;
             $saldoAnterior = $vales[$i]->deuda_actual;
             $pagosRealizados = $vales[$i]->pagos_realizados + 1;
             $numeroPagos = $vales[$i]->numero_pagos;
             $abono = $this->calcularPago($importe, $numeroPagos, $pagosRealizados);
             $saldoTotal += $abono;
         }
         if ($saldoTotal > 0) {
             $comision = $this->calcularComision($saldoTotal, $id);
             $pagoDoble = Pago::where('id_distribuidor', $distribuidor->id_distribuidor)->where('fecha_creacion', $this->calcularFechaCorte($fecha))->get();
             $pagoAux = Pago::where('id_distribuidor', $distribuidor->id_distribuidor)->where('estado', 1)->get();
             if (count($pagoDoble) == 0) {
                 if (count($pagoAux) == 0) {
                     $pago = new Pago();
                     $pago->id_distribuidor = $distribuidor->id_distribuidor;
                     $pago->cantidad = $saldoTotal;
                     $pago->fecha_creacion = $this->calcularFechaCorte($fecha);
                     $pago->estado = 0;
                     // 0:pendiente  1:desfasado 2:pagado 3:Cancelado por nuevo pago
                     $pago->comision = $comision;
                     $pago->id_cuenta = Session::get('id');
                     $pago->save();
                     $distribuidor->comision = $comision;
                     $distribuidor->save();
                 } else {
                     $pagoAux[0]->estado = 3;
                     $pagoAux[0]->save();
                     $pago = new Pago();
                     $pago->id_distribuidor = $distribuidor->id_distribuidor;
                     $pago->cantidad = $saldoTotal + $this->saldoAtrasado($vales, $distribuidor->id_distribuidor);
                     $pago->fecha_creacion = $this->calcularFechaCorte($fecha);
                     $pago->estado = 0;
                     // 0:pendiente  1:desfasado 2:pagado 3:Cancelado por nuevo pago
                     $pago->comision = 0;
                     $pago->abono = $pagoAux[0]->abono;
                     $pago->id_cuenta = Session::get('id');
                     $pago->save();
                     $distribuidor->comision = $comision;
                     $distribuidor->save();
                 }
                 ///else
             }
         }
         // if saldo total
     }
     // for distribuidores
     return redirect('consultarPagos');
 }
Пример #2
0
 public function reporte_8_excel(Request $request)
 {
     $id = $request->input('id');
     $saldoTotal = 0;
     $saldoTotalActual = 0;
     $vales = Vale::where('id_distribuidor', $id)->where('estatus', 1)->get();
     for ($i = 0; $i < sizeof($vales); $i++) {
         $importe = $vales[$i]->cantidad;
         $saldoAnterior = $vales[$i]->deuda_actual;
         $pagosRealizados = $vales[$i]->pagos_realizados;
         $numeroPagos = $vales[$i]->numero_pagos;
         $abono = $this->calcularPago($importe, $numeroPagos, $pagosRealizados);
         $saldoActual = $saldoAnterior - $abono;
         $nombreCliente = Vale::find($vales[$i]->id_vale)->cliente->nombre;
         $saldoTotalActual += $saldoAnterior;
         $saldoTotal += $importe;
         $vales[$i]->id_cliente = $nombreCliente;
         $vales[$i]->cantidad = $importe . ".00";
         $vales[$i]->pagos_realizados = $pagosRealizados . " de " . $numeroPagos;
         $vales[$i]->deuda_actual = $saldoAnterior . ".00";
     }
     $datas = $vales;
     $distribuidor = $id . ".-" . Distribuidor::find($id)->nombre;
     $fechaHoy = Carbon::now();
     Excel::create('Reporte_Historico', function ($excel) use($datas, $fechaHoy, $distribuidor, $saldoTotal, $saldoTotalActual) {
         $excel->sheet('Reporte_Historico', function ($sheet) use($datas, $fechaHoy, $distribuidor, $saldoTotal, $saldoTotalActual) {
             $sheet->loadView('reportes.reporte_8_excel')->with("datas", $datas)->with("fechaHoy", $fechaHoy)->with("distribuidor", $distribuidor)->with("saldoTotal", $saldoTotal)->with("saldoTotalActual", $saldoTotalActual);
         });
     })->export('xls');
 }
Пример #3
0
 public function emitirReporteHistorico(Request $request)
 {
     $id = $request->input('id');
     $vales = Vale::where('id_distribuidor', $id)->where('estatus', 1)->get();
     for ($i = 0; $i < sizeof($vales); $i++) {
         $importe = $vales[$i]->cantidad;
         $saldoAnterior = $vales[$i]->deuda_actual;
         $pagosRealizados = $vales[$i]->pagos_realizados;
         $numeroPagos = $vales[$i]->numero_pagos;
         $abono = $this->calcularPago($importe, $numeroPagos, $pagosRealizados);
         $saldoActual = $saldoAnterior - $abono * $pagosRealizados;
         $nombreCliente = Vale::find($vales[$i]->id_vale)->cliente->nombre;
         $vales[$i]->id_cliente = $nombreCliente;
         $vales[$i]->cantidad = "\$" . $importe . ".00";
         $vales[$i]->pagos_realizados = $pagosRealizados . " de " . $numeroPagos;
         $vales[$i]->deuda_actual = "\$" . $saldoAnterior . ".00";
     }
     return $vales;
 }
Пример #4
0
 public function invertirVales(Request $request)
 {
     $vale_1 = $request->input('vale_1');
     $vale_2 = $request->input('vale_2');
     $serie_1 = $request->input('serie_1');
     $serie_2 = $request->input('serie_2');
     $vale1 = Vale::where("folio", $vale_1)->where("serie", $serie_1)->first();
     $vale2 = Vale::where("folio", $vale_2)->where("serie", $serie_2)->first();
     $auxVale = clone $vale1;
     if ($vale1 && $vale2) {
         $vale1->id_vale = $vale2->id_vale;
         $vale1->folio = $vale2->folio;
         $vale1->serie = $vale2->serie;
         $vale1->id_distribuidor = $vale2->id_distribuidor;
         $vale1->cantidad_limite = $vale2->cantidad_limite;
         $vale1->fecha_creacion = $vale2->fecha_creacion;
         ///////
         $vale2->id_vale = 0;
         $vale2->folio = $auxVale->folio;
         $vale2->serie = $auxVale->serie;
         $vale2->id_distribuidor = $auxVale->id_distribuidor;
         $vale2->cantidad_limite = $auxVale->cantidad_limite;
         $vale2->fecha_creacion = $auxVale->fecha_creacion;
         $vale2->save();
         $vale1->save();
         $vale2->id_vale = $auxVale->id_vale;
         $vale2->save();
         //return $vale1.'---------------'.$vale2;
         Session::flash('message', 'Vales invertidos correctamente');
         Session::flash('class', 'success');
     } else {
         Session::flash('message', 'Algún vale no se encuentra en la base de datos');
         Session::flash('class', 'danger');
     }
     return redirect('mostrarInvertirVales');
 }
Пример #5
0
 public function body_reporte_1b($id, $fecha)
 {
     $vales = Vale::where('id_distribuidor', $id)->where('deuda_actual', '>', 0)->where('estatus', 1)->where('fecha_inicio_pago', '<=', $this->calcularFechaCorte($fecha))->get();
     $pagosAbonados = Pago::where('id_distribuidor', $id)->where('estado', 3)->get();
     $valesClonados = array();
     for ($i = 0; $i < sizeof($vales); $i++) {
         $clon = clone $vales[$i];
         $valesClonados[] = $clon;
     }
     for ($i = 0; $i < sizeof($vales); $i++) {
         for ($j = 0; $j < sizeof($pagosAbonados); $j++) {
             $fecha_pago_carbon = Carbon::parse($vales[$i]->fecha_inicio_pago);
             $fecha_atraso_carbon = Carbon::parse($pagosAbonados[$j]->fecha_creacion);
             if ($vales[$i]->pagos_realizados < $vales[$i]->numero_pagos - 1 && $fecha_pago_carbon <= $fecha_atraso_carbon) {
                 $importe = $vales[$i]->cantidad;
                 //*
                 $saldoAnterior = $vales[$i]->deuda_actual;
                 //*
                 $pagosRealizados = $vales[$i]->pagos_realizados + 1;
                 //*
                 $numeroPagos = $vales[$i]->numero_pagos;
                 //*
                 $abono = $this->calcularPago($importe, $numeroPagos, $pagosRealizados);
                 //*
                 $saldoActual = $saldoAnterior - $abono;
                 //*
                 $vales[$i]->deuda_actual = $saldoActual;
                 $vales[$i]->pagos_realizados = $vales[$i]->pagos_realizados + 1;
                 $clone = clone $vales[$i];
                 $valesClonados[] = $clone;
             }
         }
     }
     $saldoTotal = 0;
     $saldoComision;
     for ($i = 0; $i < sizeof($valesClonados); $i++) {
         $importe = $valesClonados[$i]->cantidad;
         $saldoAnterior = $valesClonados[$i]->deuda_actual;
         $pagosRealizados = $valesClonados[$i]->pagos_realizados + 1;
         $numeroPagos = $valesClonados[$i]->numero_pagos;
         $abono = $this->calcularPago($importe, $numeroPagos, $pagosRealizados);
         $saldoTotal += $abono;
         $saldoActual = $saldoAnterior - $abono;
         $nombreCliente = Vale::find($valesClonados[$i]->id_vale)->cliente->nombre;
         $valesClonados[$i]->id_vale = $valesClonados[$i]->id_cliente;
         $valesClonados[$i]->id_cliente = $nombreCliente;
         $valesClonados[$i]->cantidad = "\$" . $importe . ".00";
         $valesClonados[$i]->numero_pagos = "\$" . $saldoAnterior . ".00";
         $valesClonados[$i]->pagos_realizados = $pagosRealizados . " de " . $numeroPagos;
         $valesClonados[$i]->cantidad_limite = "\$" . $abono . ".00";
         $valesClonados[$i]->deuda_actual = "\$" . $saldoActual . ".00";
     }
     $comision = $this->calcularComision($saldoTotal, $id);
     $saldoDistribuidor = intval($saldoTotal * $comision / 100);
     $saldoComision = $saldoTotal - $saldoDistribuidor;
     $data = $valesClonados;
     $distribuidor = Distribuidor::find($id)->nombre;
     $fechaHoy = $this->modificarFechas(Carbon::today()->toDateString());
     $fechaEntrega = $this->CalcularFechaEntrega($fecha);
     $fechaLimite = $this->CalcularFechaLimiteCliente($fecha);
     $periodo = $this->calcularPeriodo($fecha);
     $view = \View::make('reportes/reporte_1b_todos', compact('data', 'fechaHoy', 'distribuidor', 'fechaEntrega', 'fechaLimite', 'periodo', 'comision', 'saldoTotal', 'saldoComision'))->render();
     return $view;
 }
Пример #6
0
    Route::get('reporte_2_todos', 'PdfController@reporte_2_todos');
    Route::get('reporte_9_pdf', 'PdfController@reporte_9_pdf');
    Route::get('reporteCobranzaExcel', 'DistribuidorsController@reporteCobranzaExcel');
    Route::get('reporte_2_excel', 'ExcelController@reporte_2_excel');
    Route::get('reporte_6_excel', 'ExcelController@reporte_6_excel');
    Route::get('reporte_8_excel', 'ExcelController@reporte_8_excel');
    Route::get('reporte_7_excel', 'ExcelController@reporte_7_excel');
    Route::get('reporte_9_excel', 'ExcelController@reporte_9_excel');
});
Route::get('prueba', function () {
    //--------------------------------------------------------------------------------------------------
    //Pruebas para la relacion de 1 - * de pagos y distribuidores (Aprobada)
    $calle_distribuidor = Pago::find(1)->distribuidor->calle;
    $pagos = Distribuidor::find(1)->pagos;
    //Pruebas para la relacion de 1 - * de pagos y cuenta (Aprobada)
    $nombre_cuenta = Pago::find(1)->cuenta->nombre;
    $pagos_cuenta = Cuenta::find(1)->pagos;
    //Pruebas para la relacion de 1 - * de vales y cuenta (Aprobada)
    $usuario_cuenta = Vale::find(80)->cuenta->usuario;
    $vales_cuenta = Cuenta::find(2)->vales;
    //Pruebas para la relacion de 1 - * de vales y distribuidor (Aprobada)
    $vales_distribuidor = Distribuidor::find(1)->vales;
    $colonia_distribuidor = Vale::find(80)->distribuidor->colonia;
    //Pruebas para la relacion de 1 - * de vales y clientes (Aprobada)
    $vales_cliente = Cliente::find(1)->vales;
    $telefono_cliente = Vale::find(80)->cliente->nombre;
    //Pruebas para la relacion de 1 - * de vales y promociones (Aprobada)
    //$vales_promocion = Promocion::find(33)->vales;
    //$fecha_termino = Vale::find(80)->promocion->fecha_termino;
    return "Holi--->" . $telefono_cliente;
});