findOne($id); return view('ventas.pies.cuotas.show', compact('cuota')); } public static function edit() { $id = get('cuota'); $cuota = \Model::factory(Cuota::class)->findOne($id); return view('ventas.pies.cuotas.edit', compact('cuota')); } public static function editar() { $id = get('cuota'); $cuota = \Model::factory(Cuota::class)->findOne($id); $cuota->numero = post('numero'); $cuota->{'valor_$'} = post('valor'); $banco = \Model::factory(\Incoviba\old\Common\Banco::class)->where('nombre', post('banco'))->findOne(); if ($banco) { $cuota->banco = $banco->id; } else { $cuota->banco = 0; } $f = \Carbon\Carbon::createFromDate(post('year'), post('month'), post('day'), config('app.timezone')); $cuota->fecha = $f->format('Y-m-d'); $pago = $cuota->pago(); $pago->valor = post('valor'); $pago->banco = $banco->id; $pago->identificador = post('identificador'); $pago->fecha = $f->format('Y-m-d'); $uf = uf($f); if ($uf->total > 0) { $pago->uf = $uf->uf->value; } else { $pago->uf = 0; } $pago->save(); $cuota->save(); header('Location: ' . url('', ['p' => 'pies', 'a' => 'resumen', 'pie' => $cuota->pie()->id])); } public static function edited() { $id = get('cuota'); $cuota = \Model::factory(Cuota::class)->findOne($id); $pago = $cuota->pago(); foreach ($_POST as $key => $value) { $pago->$key = $value; } $pago->save(); } public static function pendientes() { $f = \Carbon\Carbon::today(config('app.timezone')); $cuotas = \Model::factory(Cuota::class) ->select('cuota.*') ->join('pago', ['pago.id', '=', 'cuota.pago']) ->join('venta', ['venta.pie', '=', 'cuota.pie']) ->raw_join('JOIN (SELECT e1.* FROM (SELECT pago, MAX(id) AS id FROM estado_pago GROUP BY pago) e0 JOIN estado_pago e1 ON e1.id = e0.id)', ['ep.pago', '=', 'pago.id'], 'ep') ->where('ep.estado', 0) ->where('venta.estado', 1) ->whereLte('pago.fecha', $f->format('Y-m-d')) ->order_by_asc('pago.fecha') ->findMany(); $sum = 0; if (count($cuotas) > 0) { $sum = array_reduce($cuotas, function($carry, $item) { $carry += $item->pago()->valor; return $carry; }); } setlocale(LC_TIME, 'es'); return view('ventas.pies.cuotas.pendientes', compact('cuotas', 'sum')); } public static function depositar() { $id = post('cuota'); $cuota = \Model::factory(Cuota::class)->findOne($id); if ($cuota->pago()->estado()->estado == 1) { return 'ok'; } $estado = \Model::factory(EstadoPago::class)->create(); $estado->pago = $cuota->pago()->id; $estado->estado = 1; $f = Carbon::parse(post('fecha'), config('app.timezone')); $estado->fecha = $f->format('Y-m-d'); $estado->save(); return 'ok'; } public static function remove() { $id = get('cuota'); $cuota = \Model::factory(Cuota::class)->findOne($id); $estado = \Model::factory(EstadoPago::class)->create(); $estado->pago = $cuota->pago()->id; $estado->estado = -3; $f = Carbon::today(config('app.timezone')); $estado->fecha = $f->format('Y-m-d'); $estado->save(); header('Location: ' . url('', ['p' => 'pies', 'a' => 'resumen', 'pie' => $cuota->pie()->id])); } public static function para_abonar() { $cuotas = \Model::factory(Cuota::class) ->select('cuota.*') ->join('pago', ['pago.id', '=', 'cuota.pago']) ->join('venta', ['venta.pie', '=', 'cuota.pie']) ->raw_join('JOIN (SELECT e1.* FROM (SELECT pago, MAX(id) AS id FROM estado_pago GROUP BY pago) e0 JOIN estado_pago e1 ON e1.id = e0.id)', ['ep.pago', '=', 'pago.id'], 'ep') ->where('ep.estado', 1) ->where('venta.estado', 1) ->order_by_asc('ep.fecha') ->findMany(); $ini = get('start'); if ($ini == null) { $ini = 0; } $n = get('step'); if ($n == 0) { $n = 30; } $total = count($cuotas); $cuotas = array_slice($cuotas, $ini, $n); $pages = ceil($total / $n); $current = ($ini + $n) / $n; return view('ventas.pies.cuotas.abonar', compact('cuotas', 'total', 'pages', 'current')); } public static function abonar() { $id = post('cuota'); $cuota = \Model::factory(Cuota::class)->findOne($id); if ($cuota->pago()->estado()->estado == 2) { return 'ok'; } $estado = \Model::factory(EstadoPago::class)->create(); $estado->pago = $cuota->pago()->id; $estado->estado = 2; $f = Carbon::parse(post('fecha'), config('app.timezone')); $estado->fecha = $f->format('Y-m-d'); $estado->save(); return 'ok'; } public static function rebotar() { $id = post('cuota'); $cuota = \Model::factory(Cuota::class)->findOne($id); if ($cuota->pago()->estado()->estado == -1) { return 'ok'; } $estado = \Model::factory(EstadoPago::class)->create(); $estado->pago = $cuota->pago()->id; $estado->estado = -1; $f = Carbon::parse(post('fecha'), config('app.timezone')); $estado->fecha = $f->format('Y-m-d'); $estado->save(); return 'ok'; } public static function add() { $id = get('pie'); $pie = \Model::factory(Pie::class)->findOne($id); return view('ventas.pies.cuotas.add', compact('pie')); } public static function agregar() { $id = get('pie'); $pie = \Model::factory(Pie::class)->findOne($id); $cant = $pie->cuotas - count($pie->cuotas()); for ($i = 0; $i < $cant; $i ++) { if (trim(post('valor' . $i)) == '') { continue; } $banco = \Model::factory(Banco::class)->where('nombre', post('banco' . $i))->findOne(); $f = Carbon::createFromDate(post('year' . $i), post('month' . $i), post('day' . $i), config('app.timezone')); $uf = uf($f); $valor = correctNumber(post('valor' . $i)); $pago = \Model::factory(Pago::class)->create(); $pago->banco = $banco->id; $pago->fecha = $f->format('Y-m-d'); if ($uf and $uf->total > 0) { $pago->uf = $uf->uf->value; } else { $pago->uf = 0; } $pago->tipo = 1; $pago->valor = $valor; $pago->identificador = post('identificador' . $i); $cuota = \Model::factory(Cuota::class)->create(); $cuota->pie = $pie->id; $cuota->fecha = $pago->fecha; $cuota->{'valor_$'} = $pago->valor; $cuota->estado = 0; $cuota->banco = $pago->banco; $cuota->uf = $pago->uf; $cuota->numero = post('numero' . $i); $pago->new(); $cuota->pago = $pago->id; $cuota->save(); header('Location: ' . url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $pie->venta()->id])); } } } ?>