This commit is contained in:
Juan Pablo Vial
2023-07-24 20:41:38 -04:00
parent 6ab24c8961
commit be33305cf1
612 changed files with 11436 additions and 107 deletions

View File

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>
@if (isset($titulo))
{{$titulo}} -
@endif
Incoviba S. A.</title>
<link rel="stylesheet" type="text/css" href="css/app.css" />
<link rel="icon" type="image/png" href="images/Isotipo 32.png" />
<script type="text/javascript" src="js/app.js"></script>
@stack('styles')
</head>
<body>
<header>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo_cabezal">
<a href="."><img src="images/logo_cabezal.png" /></a>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
@include('admin.menu')
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
@yield('content')
</div>
</div>
</div>
@include('layout.footer')
@stack('scripts')
</body>
</html>

View File

@ -0,0 +1,40 @@
<nav class="navbar navbar-default">
<ul class="nav navbar-nav">
<li><a href=".">Inicio</a></li>
<li><a href="{{url('', ['p' => 'admin'])}}">Administraci&oacute;n</a>
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Modelos <span class="caret"></span>
</a>
@include('admin.menu.models')
</li>
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Roles <span class="caret"></span>
</a>
@include('admin.menu.roles')
</li>
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Usuarios <span class="caret"></span>
</a>
@include('admin.menu.users')
</li>
<li><a href="{{url('admin/registros')}}">Registros</a></li>
<?php
/*
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Registros <span class="caret"></span>
</a>
@include('admin.menu.registros')
</li>
*/ ?>
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{\App\Contract\Auth::User()->name}} <span class="caret"></span>
</a>
@include('layout.menu.login')
</li>
</ul>
</nav>

View File

@ -0,0 +1,3 @@
<ul class="dropdown-menu">
<li><a href="{{url('', ['p' => 'admin', 'a' => 'listModels'])}}">Listar Modelos</a></li>
</ul>

View File

@ -0,0 +1,3 @@
<ul class="dropdown-menu">
<li><a href="{{nUrl('registros', 'list')}}">Listar Registros</a></li>
</ul>

View File

@ -0,0 +1,4 @@
<ul class="dropdown-menu">
<li><a href="{{nUrl('admin', 'list_roles')}}">Listar Roles</a></li>
<li><a href="{{nUrl('admin', 'add_role')}}">Agregar Rol</a></li>
</ul>

View File

@ -0,0 +1,4 @@
<ul class="dropdown-menu">
<li><a href="{{url('', ['p' => 'admin', 'a' => 'list_users'])}}">Listar Usuarios</a></li>
<li><a href="{{url('', ['p' => 'admin', 'a' => 'add_user'])}}">Agregar Usuario</a></li>
</ul>

View File

@ -0,0 +1,31 @@
@extends('layout.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">DB to Models</div>
<div class="panel-body">
<form action="{{url('', ['p' => 'admin', 'a' => 'models'])}}" method="post" class="form-horizontal" id="databases">
<div class="row form-group">
<div class="col-md-3">DB</div>
<div class="col-md-4">
<select name="database" class="form-control">
@foreach ($databases as $database)
<option value="{{$database}}">{{$database}}</option>
@endforeach
</select>
</div>
</div>
<div class="row form-group">
<div class="col-md-offset-3 col-md-2"><input type="submit" value="Listar" class="form-control" /></div>
</div>
</form>
<div class="row">
<div class="col-md-12" id="results"></div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript" src="js/admin.js"></script>
@endpush

View File

@ -0,0 +1,31 @@
<div class="row">
<div class="col-md-1">
@if ($start > 0)
<a href="{{url('admin/registros')}}">
<span class="glyphicon glyphicon-fast-backward"></span>
</a>
@endif
</div>
<div class="col-md-1">
@if ($start > 0)
<a href="{{url('admin/registros/') . ($start - $step + 1) . '/' . (($end > 0) ? $end - $step : $step * 2)}}">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
@endif
</div>
<div class="col-md-offset-3 col-md-2 text-center">{{$start + 1}} - {{$end}}</div>
<div class="col-md-offset-3 col-md-1 text-right">
@if ($end < $total)
<a href="{{url('admin/registros/') . (($end > 0) ? $end + 1 : $step) . '/' . (($end > 0) ? $end + $step : $step * 2)}}">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
@endif
</div>
<div class="col-md-1 text-right">
@if ($end < $total)
<a href="{{url('admin/registros/') . (round($total / $step, 0) * $step + 1) . '/' . (round($total / $step, 0) *$step + $step)}}">
<span class="glyphicon glyphicon-fast-forward"></span>
</a>
@endif
</div>
</div>

View File

@ -0,0 +1,41 @@
@extends('admin.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">Registros</div>
<div class="panel-body">
@include('admin.registros.controles_avance')
<table class="table table-striped">
<thead>
<tr>
<th>Usuario</th>
<th>Roles</th>
<th>Fecha - Hora</th>
<th>Modelo</th>
<th>Cambios</th>
</tr>
</thead>
<tbody>
@foreach ($registros as $registro)
<tr>
<td>{{$registro->user()->name}}</td>
<td>
@foreach ($registro->user()->roles() as $rol)
<span class="label label-default" style="padding: 3px; background-color: {{$colores[$rol->level]->toRGB()}};
@if ($colores[$rol->level]->isDark())
color: #fff;
@endif
">{{ucwords($rol->description)}}</span>
@endforeach
</td>
<td><a href="{{url('admin/registro/' . $registro->id)}}">{{$registro->time()->format('d-m-Y - H:i:s')}} hrs.</a></td>
<td>{{$registro->model()}}</td>
<td>{{count($registro->actions())}}</td>
</tr>
@endforeach
</tbody>
</table>
@include('admin.registros.controles_avance')
</div>
</div>
@endsection

View File

@ -0,0 +1,62 @@
@extends('admin.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">Ver Registro</div>
<div class="panel-body">
<div class="row">
<div class="col-md-2"><strong>Usuario</strong></div>
<div class="col-md-5">{{$registro->user()->name}}</div>
</div>
<div class="row">
<div class="col-md-2"><strong>Roles</strong></div>
<div class="col-md-8">
@foreach ($registro->user()->roles() as $rol)
<span style="padding: 3px; background-color: {{$colores[$rol->level]->toRGB()}};
@if ($colores[$rol->level]->isDark())
color: #fff;
@endif
">{{ucwords($rol->description)}}</span>
@endforeach
</div>
</div>
<div class="row">
<div class="col-md-2"><strong>Fecha - Hora</strong></div>
<div class="col-md-8">{{$registro->time()->format('d-m-Y - H:i:s')}}</div>
</div>
<div class="row">
<div class="col-md-2"><strong>Modelo</strong></div>
<div class="col-md-8">{{$registro->model()}}</div>
</div>
<div class="row">
<div class="col-md-2"><strong>Cambios</strong></div>
<div class="col-md-10">
<table class="table table-striped">
<thead>
<tr>
<th rowspan="2">Columna</th>
<th class="text-center" colspan="2">Valor</th>
</tr>
<tr>
<th>Antiguo</th>
<th>Nuevo</th>
</tr>
</thead>
<tbody>
@foreach ($registro->actions() as $column => $action)
<tr>
<td>{{$column}}</td>
<td>{{$action->old}}</td>
<td>{{$action->new}}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div class="row">
<a href="{{nUrl('registros', 'list')}}"><span class="glyphicon glyphicon-chevron-left"></span> Volver</a>
</div>
</div>
</div>
@endsection

View File

@ -0,0 +1,17 @@
@extends('admin.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">Agregar Rol</div>
</div>
<br />
<form action="{{url('', ['p' => 'admin', 'a' => 'do_add_role'])}}" method="post" class="form-horizontal">
<div class="form-group">
<div class="col-md-2">Descripci&oacute;n</div>
<div class="col-md-3"><input type="text" name="description" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Create</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,40 @@
@extends('admin.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">Agregar Permisos - {{$role->description}}</div>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('admin', 'do_add_role_permissions', ['role' => $role->id])}}">
<div class="form-group">
<div class="col-md-2">Permitidos</div>
<div class="col-md-3"><select name="allowed[]" class="form-control" multiple="multiple">
@foreach ($actions as $action)
<option value="{{$action->id}}"
@if ($role->checkAccess($action->description))
selected="selected"
@endif
>{{$action->description}}</option>
@endforeach
</select></div>
</div>
<?php
/*
<div class="form-group">
<div class="col-md-2">Denegados</div>
<div class="col-md-3"><select name="denied[]" class="form-control" multiple="multiple">
@foreach ($actions as $action)
<option value="{{$action->id}}"
@if (!$role->checkAccess($action->description))
selected="selected"
@endif
>{{$action->description}}</option>
@endforeach
</select></div>
</div>
*/ ?>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button class="form-control" type="submit">Agregar</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,24 @@
@extends('admin.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">Agregar Usuario - {{$role->description}}</div>
</div>
<br />
<form class="form-horizontal" method="post" action="{{url('', ['p' => 'admin', 'a' => 'do_add_user_role', 'role' => $role->id])}}">
<div class="form-group">
<div class="col-md-2">Ususarios</div>
<div class="col-md-3"><select name="users[]" class="form-control" multiple="multiple">
@foreach ($users as $user)
@if ($role->hasUser($user->id))
@continue
@endif
<option value="{{$user->id}}">{{$user->name}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Agregar</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,32 @@
@extends('admin.base')
@section('content')
<div class="page-heading row">
<div class="col-md-6 h3">Roles</div>
<div class="col-md-6 text-right h3"><a href="{{url('', ['p' => 'admin', 'a' => 'add_role'])}}"><span class="glyphicon glyphicon-plus"></span></a></div>
</div>
<table class="table">
<thead>
<tr>
<th>Descripci&oacute;n</th>
<th>Nivel</th>
<th>Usuarios</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach ($roles as $role)
<tr>
<td><a href="{{nUrl('admin', 'role', ['role' => $role->id])}}">{{$role->description}}</a></td>
<td>{{$role->level}}</td>
<td>
@foreach ($role->users() as $user)
{{$user->name}}
@endforeach
</td>
<td><a href="{{url('', ['p' => 'admin', 'a' => 'delete_role'])}}"><span class="glyphicon glyphicon-minus"></span></a></td>
</tr>
@endforeach
</tbody>
</table>
@endsection

View File

@ -0,0 +1,63 @@
@extends('admin.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">{{$role->description}}</div>
</div>
<div class="section-heading row">
<div class="col-md-6 h4">Usuarios</div>
<div class="col-md-6 h4 text-right"><a href="{{url('', ['p' => 'admin', 'a' => 'add_user_role', 'role' => $role->id])}}"><span class="glyphicon glyphicon-plus"></span></a></div>
</div>
<table class="table">
@foreach ($role->users() as $user)
<tr>
<td><a href="{{nUrl('admin', 'user', ['user' => $user->id])}}">{{$user->name}}</a></td>
<td><a href="{{url('', ['p' => 'admin', 'a' => 'remove_user_role', 'user' => $user->id, 'role' => $role->id])}}"><span class="glyphicon glyphicon-minus"></span></a></td>
</tr>
@endforeach
</table>
<div class="row section-heading">
<div class="col-md-6 h4">Permisos</div>
<div class="col-md-6 h4 text-right"><a href="{{nUrl('admin', 'add_role_permissions', ['role' => $role->id])}}"><span class="glyphicon glyphicon-plus"></span></a></div>
</div>
@if ($role->permissions())
<table class="table table-striped">
<thead>
<tr>
<th>Acci&oacute;n</th>
<th>Estado</th>
<th>Heredado</th>
</tr>
</thead>
<tbody>
@foreach ($permissions as $permission)
<tr>
<td>{{$permission->description}}</td>
<td style="color:
@if ($permission->status)
#00ff00
@else
#ff0000
@endif
;">
@if ($permission->status) Permitido @else Denegado @endif
</td>
<td style="color:
@if ($permission->inherited)
#00ff00
@else
#ff0000
@endif
;">
@if ($permission->inherited)
Si
@else
No
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
@endif
@endsection

View File

@ -0,0 +1,21 @@
@extends('admin.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">Agregar Ususario</div>
</div>
<br />
<form action="{{url('', ['p' => 'admin', 'a' => 'do_add_user'])}}" method="post" class="form-horizontal">
<div class="form-group">
<div class="col-md-2">Usuario</div>
<div class="col-md-3"><input type="text" name="name" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Password</div>
<div class="col-md-3"><input type="password" name="password" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Create</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,24 @@
@extends('admin.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">Agregar Rol - {{$user->name}}</div>
</div>
<br />
<form class="form-horizontal" method="post" action="{{url('', ['p' => 'admin', 'a' => 'do_add_user_role', 'user' => $user->id])}}">
<div class="form-group">
<div class="col-md-2">Rol</div>
<div class="col-md-3"><select name="role[]" class="form-control" multiple="multiple">
@foreach ($roles as $role)
@if ($user->hasRole($role->id))
@continue
@endif
<option value="{{$role->id}}">{{$role->description}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Agregar</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,29 @@
@extends('admin.base')
@section('content')
<div class="page-heading row">
<div class="col-md-6 h3">Usuarios</div>
<div class="col-md-6 text-right h3"><a href="{{url('', ['p' => 'admin', 'a' => 'add_user'])}}"><span class="glyphicon glyphicon-plus"></span></a></div>
</div>
<table class="table">
<thead>
<tr>
<th>Nombre</th>
<th>Roles</th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td><a href="{{url('', ['p' => 'admin', 'a' => 'user', 'user' => $user->id])}}">{{$user->name}}</a></td>
<td>
@foreach ($user->roles() as $role)
{{$role->description}}
@endforeach
</td>
<td><a href="{{url('', ['p' => 'admin', 'a' => 'delete_user', 'user' => $user->id])}}"><span class="glyphicon glyphicon-minus"></span></a></td>
</tr>
@endforeach
</tbody>
</table>
@endsection

View File

@ -0,0 +1,62 @@
@extends('admin.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">{{$user->name}}</div>
</div>
<a href="{{nUrl('admin', 'reset_user', ['user' => $user->id])}}">
Resetear Clave
</a>
<div class="section-heading row">
<div class="col-md-6 h4">Roles</div>
<div class="col-md-6 h4 text-right"><a href="{{url('', ['p' => 'admin', 'a' => 'add_user_role', 'user' => $user->id])}}"><span class="glyphicon glyphicon-plus"></span></a></div>
</div>
<table class="table">
@foreach ($user->roles() as $role)
<tr>
<td><a href="{{nUrl('admin', 'role', ['role' => $role->id])}}">{{$role->description}}</a></td>
<td><a href="{{url('', ['p' => 'admin', 'a' => 'remove_user_role', 'user' => $user->id, 'role' => $role->id])}}"><span class="glyphicon glyphicon-minus"></span></a></td>
</tr>
@endforeach
</table>
<div class="row section-heading">
<div class="col-md-6 h4">Permisos</div>
<div class="col-md-6 h4 text-right"><a href="{{nUrl('admin', 'add_user_permissions', ['user' => $user->id])}}"><span class="glyphicon glyphicon-plus"></span></a></div>
</div>
@if ($user->permissions())
<table class="table">
<thead>
<tr>
<th>P&aacute;ginas</th>
<th>Rol</th>
<th>Acceso</th>
</tr>
</thead>
<tbody>
@foreach ($user->permissions() as $permission)
<tr>
<td>
{{$permission->action()->description}}
</td>
<td>
@if ($permission->type == 2)
{{$permission->who()->description}}
@endif
</td>
<td>
@if ($permission->all == 0)
@if ($permission->access == 1)
Permitido
@else
Denegado
@endif
@else
Permitido
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
@endif
@endsection

View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>
@if (isset($titulo))
{{$titulo}} -
@endif
Incoviba S. A.</title>
<link rel="stylesheet" type="text/css" href="{{$urls->base}}/css/app.css" />
<link rel="icon" type="image/png" href="{{$urls->base}}/images/Isotipo 32.png" />
<script type="text/javascript" src="{{$urls->base}}/js/app.js"></script>
@stack('styles')
</head>
<body>
<header>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo_cabezal">
<a href="."><img src="{{$urls->base}}/images/logo_cabezal.png" alt="Logo" /></a>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<nav class="navbar navbar-default">
<ul class="nav navbar-nav">
<li><a href=".">Inicio</a></li>
@if (\App\Contract\Auth::isIn())
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{\App\Contract\Auth::User()->name}} <span class="caret"></span>
</a>
@include('layout.menu.login')
</li>
@else
<li><a href="{{$urls->base}}/auth/login">Ingresar</a></li>
@endif
</ul>
</nav>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
@yield('content')
</div>
</div>
</div>
@include('layout.footer')
@stack('scripts')
</body>
</html>

View File

@ -0,0 +1,78 @@
@extends('auth.base')
@section('content')
<div class="row page-heading">
<div class="col-md-12 h3">Cambio de Cl&aacute;ve</div>
</div>
<br />
<form class="form-horizontal" method="post" action="{{url('', ['p' => 'auth', 'a' => 'do_change_pass'])}}">
<div class="form-group">
<div class="col-md-2">Cl&aacute;ve anterior</div>
<div class="col-md-3"><input type="password" name="old" class="form-control" /></div>
<div class="col-md-3" id="msg1"></div>
</div>
<div class="form-group">
<div class="col-md-2">Cl&aacute;ve nueva</div>
<div class="col-md-3"><input type="password" name="new" class="form-control" /></div>
<div class="col-md-3" id="msg2"></div>
</div>
<div class="form-group">
<div class="col-md-2">Repetir cl&aacute;ve</div>
<div class="col-md-3"><input type="password" name="new2" class="form-control" /></div>
<div class="col-md-3" id="msg3"></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Cambiar</button></div>
</div>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
var status = [0, 0, 0, 0];
$("input[name='old']").blur(function(e) {
$.post('{!!nUrl('auth', 'check_pass', ['ajax' => 'true'])!!}', {"password": $(this).val()}, function(data) {
if (data == 'KO') {
$('#msg1').html('<span class="label label-danger"><span class="glyphicon glyphicon-warning-sign"></span> Cl&aacute;ve anterior inv&aacute;lida.</span>');
status[1] = 0;
} else {
$('#msg1').html('<span class="label label-success"><span class="glyphicon glyphicon-ok "></span></span>');
status[1] = 1;
}
});
})
$("input[name='new']").blur(function(e) {
var result = zxcvbn($(this).val(), user_inputs=[$("input[name='old']").val(), '{{\App\Contract\Auth::User()->name}}']);
if (result.score < 3) {
$('#msg2').html('<span class="label label-danger"><span class="glyphicon glyphicon-warning-sign"></span> Nivel ' + result.score + '</span>');
status[2] = 0;
} else {
if (result.score == 3) {
$('#msg2').html('<span class="label label-warning"><span class="glyphicon glyphicon-ok"></span> Nivel ' + result.score + '</span>');
} else {
$('#msg2').html('<span class="label label-success"><span class="glyphicon glyphicon-ok"></span> Nivel ' + result.score + '</span>');
}
status[2] = 1;
}
});
$("input[name='new2']").blur(function(e) {
var n = $("input[name='new']").val();
if ($(this).val() != n) {
$('#msg3').html('<span class="label label-danger"><span class="glyphicon glyphicon-warning-sign"></span> Las cl&aacute;ves no coinciden.</span>');
status[3] = 0;
} else {
$('#msg3').html('<span class="label label-success"><span class="glyphicon glyphicon-ok"></span></span>');
status[3] = 1;
}
});
$("form").submit(function(e) {
status[0] = status[1] & status[2] & status[3];
if (!status[0]) {
e.preventDefault();
}
return status[0];
});
});
</script>
@endpush

View File

@ -0,0 +1,17 @@
@extends('auth.base')
@section('content')
<form class="form-horizontal" action="{{$urls->base}}/auth/login" method="post">
<div class="form-group">
<div class="col-md-2"><label for="name">Usuario</label></div>
<div class="col-md-3"><input type="text" id="name" name="name" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-2"><label for="password">Cl&aacute;ve</label></div>
<div class="col-md-3"><input type="password" id="password" name="password" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><input type="submit" value="Ingresar" class="form-control" /></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,7 @@
<br />
<div class="benchmark container">
<div class="row alert alert-info">
<div class="col-md-2">Tiempo demorado</div>
<div class="col-md-5">{{$benchmark->time}} s</div>
</div>
</div>

View File

@ -0,0 +1,79 @@
@extends('layout.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">Buscar</div>
<div class="panel-body">
<form action="{{url('', ['p' => 'buscar'])}}" method="get" class="form form-horizontal">
<input type="hidden" name="p" value="buscar" />
<div class="form-group">
<div class="col-md-6"><input type="text" name="q" class="form-control"
@if (get('q'))
value="{!!urldecode(get('q'))!!}"
@elseif (get('query'))
value="{!!urldecode(get('query'))!!}"
@endif
/></div>
<div class="col-md-2"><input type="submit" value="Buscar" class="form-control" /></div>
<div class="col-md-4">
<div class="col-md-12 text-center">
<input type="radio" name="tipo" value="{{urlencode($tipos[0])}}"
@if (get('tipo') == null or get('tipo') == $tipos[0])
checked="checked"
@endif
/>
{{ucwords($tipos[0])}}
</div>
@foreach ($tipos as $i => $tipo)
@if ($tipo == 'cualquiera')
@continue
@endif
<div class="col-md-6">
<input type="radio" name="tipo" value="{{urlencode($tipo)}}"
@if (get('tipo') != null)
@if ($tipo == get('tipo'))
checked="checked"
@endif
@else
@if ($tipo == 'cualquiera')
checked="checked"
@endif
@endif
/>
{{ucwords($tipo)}}
</div>
@endforeach
</div>
</div>
</form>
</div>
</div>
@if ($results != null)
<div class="panel panel-default">
<div class="panel-heading">Resultados</div>
<div class="panel-body">
<table class="table table-striped">
<thead>
<tr>
<th>Proyecto</th>
<th>Departamento</th>
<th>Propietario</th>
<th>Tipo</th>
<th>m&#0178;</th>
<th>Valor [UF]</th>
<th>Fecha Venta</th>
<th>Fecha Entrega</th>
</tr>
</thead>
<tbody>
@if (isset($results) and is_array($results) and count($results) > 0)
@foreach ($results as $resultado)
@include('buscar.resultado', ['resultado' => $resultado])
@endforeach
@endif
</tbody>
</table>
</div>
</div>
@endif
@endsection

View File

@ -0,0 +1,46 @@
<tr>
<td>
<a href="{{url('', ['p' => 'buscar', 'q' => urlencode('"' . $resultado->proyecto()->descripcion . '"'), 't' => 'proyecto'])}}">
{{$resultado->proyecto()->descripcion}} <span class="small glyphicon glyphicon-search"></span>
</a>
</td>
@if (method_exists($resultado, 'unidad'))
<td>
<a href="{{url('', ['p' => 'ventas', 'a' => 'show', 'venta' => $resultado->id])}}">
{{$resultado->unidad()->descripcion}}
@if ($resultado->estado == 0)
(r)
@elseif ($resultado->estado == -1)
(c)
@endif
<span class="small glyphicon glyphicon-chevron-right"></span>
</a>
</td>
<td>
<a href="{{url('', ['p' => 'buscar', 'q' => urlencode('"' . $resultado->propietario()->nombreCompleto() . '"'), 't' => 'propietario'])}}">
{{$resultado->propietario()->nombreCompleto()}} <span class="small glyphicon glyphicon-search"></span>
</a>
</td>
<td>{{ucwords($resultado->unidad()->tipo()->descripcion)}}</td>
<td>{{\App\Helper\Format::m2($resultado->unidad()->m2())}}</td>
<td>{{\App\Helper\Format::ufs($resultado->valor_uf)}}</td>
<td>{{\App\Helper\Format::shortDate($resultado->fecha)}}</td>
<td>
@if ($resultado->entrega != 0)
{{\App\Helper\Format::shortDate($resultado->entrega()->fecha)}}
@endif
</td>
@else
<td>
{{$resultado->descripcion}} <span class="glyphicon glyphicon-ban-circle"></span>
</td><td>
<td>{{ucwords($resultado->tipo()->descripcion)}}</td>
<td>{{\App\Helper\Format::m2($resultado->m2())}}</td>
@if ($resultado->valor)
<td>{{format('ufs', $resultado->valor)}}</td>
@else
<td></td>
@endif
<td></td>
@endif
</tr>

View File

@ -0,0 +1,17 @@
<div class="ui divided list" style="max-width: 300px;">
@foreach ($dias as $dia => $proyectos)
<div class="item">
<div class="date"><strong>{{format('localDate', $dia, 'ddd DD [de] MMMM [de] YYYY', true)}}</strong></div>
<div class="ui feed">
@foreach ($proyectos as $proyecto => $cantidad)
<div class="event">
<div class="content">
<div class="summary">{{$proyecto}}</div>
</div>
<div class="meta">{{$cantidad}}</div>
</div>
@endforeach
</div>
</div>
@endforeach
</div>

View File

@ -0,0 +1,31 @@
<h3 class="ui header">Cierres Vigentes</h3>
<div class="ui divided list" style="max-width: 300px;">
@foreach ($cierres as $proyecto => $cierre)
<div class="item">
<div class="date"><strong>{{$proyecto}}</strong> [{{$cierre->total}}]</div>
<div class="ui feed">
<div class="event">
<div class="content">
<div class="summary">Promesados</div>
</div>
<div class="meta">{{count($cierre->vigentes)}}</div>
</div>
<div class="event">
<div class="content">
<div class="summary">Pendientes</div>
@if (count($cierre->pendientes) > 0)
<div class="date">Desde {{$cierre->pendientes[0]->periodo()}} d&iacute;as atr&aacute;s</div>
@endif
</div>
<div class="meta">{{count($cierre->pendientes)}}</div>
</div>
<div class="event">
<div class="content">
<div class="summary">Rechazados</div>
</div>
<div class="meta">{{count($cierre->rechazados)}}</div>
</div>
</div>
</div>
@endforeach
</div>

View File

@ -0,0 +1,5 @@
@extends('layout.base')
@section('content')
Secci&oacute;n en construcci&oacute;n.
@endsection

View File

@ -0,0 +1,20 @@
@extends('layout.base')
@section('content')
<div class="page-heading">
<h2>Pagos del Mes - {{$proyecto->descripcion}} - {{$proyecto->inmobiliaria()->abreviacion}}</h2>
</div>
<h3>{{$fecha->format('d / m / Y')}}</h3>
{{!d($pagos)}}
<table class="table">
@foreach ($pagos as $pago)
<tr>
<td>{{$pago->Departamento}}</td>
<td>{{$pago->Numero}}</td>
<td>{{$pago->Total}}</td>
<td>{{format('ufs', $pago->Valor->UF)}}</td>
<td>{{format('pesos', $pago->Valor->Pesos)}}</td>
</tr>
@endforeach
</table>
@endsection

View File

@ -0,0 +1,74 @@
@extends('layout.base')
@section('content')
<div class="page-heading">
<h2>Pagos del Mes</h2>
</div>
<table class="table table-striped">
<thead>
<tr>
<th colspan="2">Proyectos</th>
</tr>
<tr>
<th>Nombre</th>
<th>Inmobiliaria</th>
</tr>
</thead>
<tbody id="proyectos">
</tbody>
</table>
@endsection
@push('scripts')
<script type="text/javascript">
let proyectos = {
id: "#proyectos",
proyectos: [],
get: function() {
let url = '{{nUrl('contabilidad')}}&a=get_proyectos&ajax=1'
return $.getJSON(url, (data) => {
this.proyectos = data.proyectos
})
},
build: function() {
let tbod = $(this.id)
$.each(this.proyectos, (i, el) => {
let inm = $('<td></td>').html(el.inmobiliaria.abreviacion)
let line2 = $('<tr></tr>')
let line = $('<tr></tr>').attr('data-proyecto', el.id).append(
$('<td></td>').html(el.descripcion)
).append(
inm
).click(function(e) {
line2.html('')
let url = '{{nUrl('contabilidad')}}&a=get_fechas&proyecto=' + el.id
$.getJSON(url, (data) => {
let tb = $('<table></table>')
$.each(data.fechas, (k, fe) => {
let url = '{{nUrl('contabilidad')}}&a=show_pagos&proyecto=' + el.id + '&fecha=' + fe.short
let tr = $('<tr></tr>').append(
$('<td></td>').append(
$('<a></a>').attr('href', url).html(fe.long)
)
)
tb.append(tr)
})
line2.append($('<td></td>')).append(tb)
})
})
tbod.append(line).append(line2)
})
},
setup: function() {
this.get().then(() => {
this.build()
})
}
}
$(document).ready(() => {
proyectos.setup()
})
</script>
@endpush

View File

@ -0,0 +1,38 @@
<?php $t = \Carbon\Carbon::today(config('app.timezone')) ?>
<div class="col-md-1"><select name="day{{(isset($id)) ? $id : ''}}" class="form-control">
@for ($i = 0; $i < 31; $i ++)
<option value="{{$i + 1}}"
@if (isset($f))
@if ($f->day == $i + 1)
selected="selected"
@endif
@elseif ($t->day == $i + 1)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></div>
<div class="col-md-1"><select name="month{{(isset($id)) ? $id : ''}}" class="form-control">
@for ($i = 0; $i < 12; $i ++)
<option value="{{$i + 1}}"
@if (isset($f))
@if ($f->month == $i + 1)
selected="selected"
@endif
@elseif ($t->month == $i + 1)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></div>
<div class="col-md-2"><select name="year{{(isset($id)) ? $id : ''}}" class="form-control">
@for ($i = $t->year; $i > $t->year - 5; $i --)
<option value="{{$i}}"
@if (isset($f))
@if ($f->year == $i)
selected="selected"
@endif
@endif
>{{$i}}</option>
@endfor
</select></div>

View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>
@if (isset($titulo))
{{$titulo}} -
@endif
Incoviba S. A.</title>
<link rel="stylesheet" type="text/css" href="{{$urls->base}}/css/app.css" />
<link rel="icon" type="image/png" href="{{$urls->base}}/images/Isotipo 32.png" />
<script type="text/javascript" src="{{$urls->base}}/js/app.js"></script>
@stack('styles')
</head>
<body>
<header>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo_cabezal">
<a href="."><img src="{{$urls->base}}/images/logo_cabezal.png" alt="Logo" /></a>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<nav class="navbar navbar-default">
<ul class="nav navbar-nav">
<li><a href=".">Inicio</a></li>
@if (\App\Contract\Auth::isIn())
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{Auth::User()}} <span class="caret"></span>
</a>
@include('layout.menu.login')
</li>
@else
<li><a href="{{$urls->base}}/auth/login">Ingresar</a></li>
@endif
</ul>
</nav>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
Hola invitad@, favor ingresar.
</div>
</div>
</div>
@include('layout.footer')
@stack('scripts')
</body>
</html>

View File

@ -0,0 +1,28 @@
@extends('layout.base')
@section('content')
@if ($hoy > 0)
<div clasS="row">
<div class="col-md-12">Hay {{$hoy}} deposito{{($hoy > 1) ? 's' : ''}} para hoy.</div>
</div>
@endif
@if ($pendientes > 0)
<div class="row">
<div class="col-md-12"><a href="{{$url->base}}/cuotas/pendientes">Existe{{($pendientes > 1) ? 'n' : ''}} {{$pendientes}} cuota{{($pendientes > 1) ? 's' : ''}} pendiente{{($pendientes > 1) ? 's' : ''}}. <span class="glyphicon glyphicon-arrow-right"></span></a></div>
</div>
@endif
<table class="ui table">
<tr>
@if (count($dias) > 0)
<td>
@include('calendario')
</td>
@endif
@if (count($cierres) > 0)
<td>
@include('cierres')
</td>
@endif
</tr>
</table>
@endsection

View File

@ -0,0 +1,49 @@
@extends('layout.base')
@section('content')
<div class="page-heading">
<h2>Comisiones - {{$proyecto->descripcion}}</h2>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>Departamento</th>
<th>Propietario</th>
<th class="text-center">Estacionamientos</th>
<th class="text-center">Bodegas</th>
<th colspan="2" class="text-center">Precio</th>
<th colspan="2" class="text-center">Comisi&oacute;n</th>
<th>Operador</th>
</tr>
<tr>
<th colspan="4"></th>
<th class="text-right">Promesa</th>
<th class="text-right">Neto</th>
<th class="text-center">%</th>
<th class="text-right">UF</th>
</tr>
</thead>
<tbody>
@foreach ($ventas as $venta)
<tr>
<td><a href="{{nUrl('ventas', 'show', ['venta' => $venta->id])}}">{{$venta->unidad()->descripcion}}</a></td>
<td>{{$venta->propietario()->nombreCompleto()}}</td>
<td class="text-center">{{implode(' - ', $venta->propiedad()->estacionamientos('array'))}}</td>
<td class="text-center">{{implode(' - ', $venta->propiedad()->bodegas('array'))}}</td>
<td class="text-right">{{format('ufs', $venta->valor_uf, null, true)}}</td>
<td class="text-right">{{format('ufs', $venta->valorCorredora(), null, true)}}</td>
<td class="text-center">1,5 %</td>
<td class="text-right">{{format('ufs', $venta->valorCorredora() * 1.5 / 100, null, true)}}</td>
<td>{{($venta->agente != 0 and $venta->agente()->agente != 1) ? $venta->agente()->agente()->descripcion : ''}}</td>
</tr>
@endforeach
<tr>
<td colspan="4"><b>Total</b></td>
<td class="text-right"><b>{{format('ufs', $totales->precio, null, true)}}</b></td>
<td class="text-right"><b>{{format('ufs', $totales->neto, null, true)}}</b></td>
<td class="text-center"><b>1,5 %</b></td>
<td class="text-right"><b>{{format('ufs', $totales->comision, null, true)}}</b></td>
</tbody>
</table>
<!-- <a href="{{nUrl('informes', 'comisiones_xlsx', ['ventas' => implode(',', $ids)])}}">Excel</a> -->
@endsection

View File

@ -0,0 +1,68 @@
@extends('layout.base')
@section('content')
<h2>Contabilidad</h2>
<form action="#" class="form-horizontal">
<div class="form-group">
<div class="col-md-1">Mes</div>
<div class="col-md-3"><select name="mes" class="form-control">
<option value="">Todo</option>
<?php $f = Carbon\Carbon::today(); ?>
@for ($y = date('Y'); $y >= date('Y') - 5; $y --)
@for ($m = 12; $m > 0; $m --)
@if ($y == date('Y') and $m >= date('m'))
@continue
@endif
<option value="{{$y}}-{{$m}}" @if ($m == $f->month-1 and $y == $f->year) selected="selected" @endif>{{ucwords(strftime('%B - %Y', mktime(0, 0, 0, $m, 1, $y)))}}</option>
@endfor
@endfor
</select></div>
</div>
</form>
<div id="proyectos">
@include('informes.proyectos', ['a' => 'contabilidad'])
</div>
@endsection
@push('scripts')
<script type="text/javascript">
function changeUrl(url, field, change) {
if (url.indexOf(field) > -1) {
var nurl = [];
var info = url.split('&');
$.each(info, function(k, v) {
if (v.indexOf(field) == -1) {
nurl.push(v);
} else {
if (change != '') {
nurl.push(field + '=' + change);
}
}
});
nurl = nurl.join('&');
return nurl;
} else {
if (change != '') {
nurl = url + '&' + field + '=' + change;
return nurl;
}
}
return url;
}
function updateUrls(select, link_id) {
var f = $("select[name='" + select + "']").val();
var links = $('#' + link_id + ' a');
links.each(function(k, v) {
url = $(v).attr('href');
nurl = changeUrl(url, 'fecha', f);
$(v).attr('href', nurl);
});
}
$(document).ready(function() {
$("select[name='mes']").change(function(e) {
updateUrls('mes', 'proyectos');
});
updateUrls('mes', 'proyectos');
});
</script>
@endpush

View File

@ -0,0 +1,6 @@
@extends('layout.base')
@section('content')
<h2>Escrituras</h2>
@include('informes.proyectos', ['a' => 'escrituras'])
@endsection

View File

@ -0,0 +1,6 @@
@extends('layout.base')
@section('content')
<h2>Gantt de Entregas</h2>
@include('informes.proyectos', ['a' => 'gantt_entregas'])
@endsection

View File

@ -0,0 +1,25 @@
@extends('layout.base')
@section('content')
<div class="page-heading">
<h2>Comisiones</h2>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('informes', 'comisiones')}}">
<div class="form-group">
<div class="col-md-2">Proyecto</div>
<div class="col-md-3"><select class="form-control" name="proyecto">
@foreach ($proyectos as $proyecto)
<option value="{{$proyecto->id}}">{{$proyecto->descripcion}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">Unidades</div>
<div class="col-md-5"><textarea name="unidades" class="form-control" rows="5"></textarea></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Buscar</button>
</div>
</form>
@endsection

View File

@ -0,0 +1,12 @@
<div class="panel panel-default">
<div class="panel-heading">Proyectos</div>
<ul class="list-group">
@foreach ($proyectos as $proyecto)
<li class="list-group-item">
<a href="{{url('', ['p' => 'informes', 'a' => $a, 'proyecto' => $proyecto->id])}}">
{{$proyecto->descripcion}} - {{$proyecto->inmobiliaria()->abreviacion}}
</a>
</li>
@endforeach
</ul>
</div>

View File

@ -0,0 +1,6 @@
@extends('layout.base')
@section('content')
<h2>Resciliaciones</h2>
@include('informes.proyectos', ['a' => 'resciliaciones'])
@endsection

View File

@ -0,0 +1,71 @@
@extends('layout.base')
@section('content')
<h2>Resumen para Contabilidad</h2>
<form action="#" class="form-horizontal">
<div class="form-group">
<div class="col-md-1">Hasta Mes</div>
<div class="col-md-3"><select name="mes" class="form-control">
<option value="">Todo</option>
<?php $f = Carbon\Carbon::today(); ?>
@for ($y = date('Y'); $y >= date('Y') - 5; $y --)
@for ($m = 12; $m > 0; $m --)
@if ($y == date('Y') and $m >= date('m'))
@continue
@endif
<option value="{{$y}}-{{$m}}" @if ($m == $f->month-1 and $y == $f->year) selected="selected" @endif>
{{ucwords(strftime('%B - %Y', mktime(0, 0, 0, $m, 1, $y)))}}
</option>
@endfor
@endfor
</select></div>
</div>
</form>
<div id="proyectos">
@include('informes.proyectos', ['a' => 'resumen_contabilidad'])
</div>
@endsection
@push('scripts')
<script type="text/javascript">
function changeUrl(url, field, change) {
if (url.indexOf(field) > -1) {
var nurl = [];
var info = url.split('&');
$.each(info, function(k, v) {
if (v.indexOf(field) == -1) {
nurl.push(v);
} else {
if (change != '') {
nurl.push(field + '=' + change);
}
}
});
nurl = nurl.join('&');
return nurl;
} else {
if (change != '') {
nurl = url + '&' + field + '=' + change;
return nurl;
}
}
return url;
}
function updateUrls(select, link_id) {
var f = $("select[name='" + select + "']").val();
var links = $('#' + link_id + ' a');
links.each(function(k, v) {
url = $(v).attr('href');
nurl = changeUrl(url, 'fecha', f);
$(v).attr('href', nurl);
});
}
$(document).ready(function() {
$("select[name='mes']").change(function(e) {
updateUrls('mes', 'proyectos');
});
updateUrls('mes', 'proyectos');
});
</script>
@endpush

View File

@ -0,0 +1,6 @@
@extends('layout.base')
@section('content')
<h2>Ventas</h2>
@include('informes.proyectos', ['a' => 'ventas'])
@endsection

View File

@ -0,0 +1,50 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Agregar Inmobiliaria</h3>
</div>
<br />
<form method="post" class="form-horizontal" action="{{url('', ['p' => 'inmobiliarias', 'a' => 'agregar'])}}">
<div class="form-group">
<div class="col-md-2">RUT</div>
<div class="col-md-3"><input type="text" name="rut" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Raz&oacute;n Social</div>
<div class="col-md-5"><input type="text" name="razon" class="form-control" /></div>
<div class="col-md-2">
<select name="sociedad" class="form-control">
@foreach ($sociedades as $sociedad)
<option value="{{$sociedad->id}}">{{$sociedad->abreviacion}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<div class="col-md-2">Abreviaci&oacute;n</div>
<div class="col-md-4"><input type="text" name="abrev" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><input type="submit" value="Agregar" class="form-control" /></div>
</div>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
$("input[name='rut']").rut({"formatOn": 'keyup', "validateOn": 'blur'}).on('rutInvalido', function(e) {
$(this).parent().next().remove();
$(this).parent().after($('<div></div>').attr('class', 'col-md-2 alert-danger').html('Rut inv&aacute;lido'));
}).on('rutValido', function(e, rut, dv) {
$(this).parent().next().remove();
$.post('{!!url('', ['p' => 'ajax', 'a' => 'inmobiliarias', 'ajax' => true])!!}', {'rut': rut}, function(data) {
$("input[name='razon']").val(data.razon);
$("input[name='abrev']").val(data.abreviacion);
}, 'json');
});
});
</script>
@endpush

View File

@ -0,0 +1,54 @@
@extends('layout.base')
@section('content')
<div class="page-heading">
<h3>Editar <a href="{{nUrl('inmobiliarias', 'show', ['rut' => $inmobiliaria->rut])}}">{{$inmobiliaria->abreviacion}}</a></h3>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('inmobiliarias', 'do_edit', ['rut' => $inmobiliaria->rut])}}">
<div class="form-group">
<div class="col-md-2">RUT</div>
<div class="col-md-3"><input type="text" name="rut" class="form-control" value="{{$inmobiliaria->rut}}" /></div>
<div class="col-md-1"><input type="text" name="dv" class="form-control" value="{{$inmobiliaria->dv}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Abreviaci&oacute;n</div>
<div class="col-md-3"><input type="text" name="abreviacion" class="form-control" value="{{$inmobiliaria->abreviacion}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Raz&oacute;n Social</div>
<div class="col-md-4"><input type="text" name="razon" value="{{$inmobiliaria->razon}}" class="form-control" /></div>
<div class="col-md-2">
<select name="sociedad" class="form-control">
@foreach ($sociedades as $sociedad)
<option value="{{$sociedad->id}}"
@if ($sociedad->id == $inmobiliaria->sociedad)
selected="selected"
@endif
>{{$sociedad->abreviacion}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<div class="col-md-2">Banco</div>
<div class="col-md-3"><select name="banco" class="form-control">
<option value="0">---</option>
@foreach ($bancos as $banco)
<option value="{{$banco->id}}"
@if ($banco->id == $inmobiliaria->id)
selected="selected"
@endif
>{{$banco->nombre}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">Cuenta</div>
<div class="col-md-3"><input type="text" name="cuenta" class="form-control" value="{{$inmobiliaria->cuenta}}" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Edit</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,31 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="col-md-10 h3">Inmobiliarias</div>
<div class="col-md-2 text-right h4">
<a href="{{url('', ['p' => 'inmobiliarias', 'a' => 'add'])}}">
<span class="glyphicon glyphicon-plus"></span>
</a>
</div>
</div>
<div class="ui segment">
<div class="ui cards">
@foreach ($inmobiliarias as $inmobiliaria)
<div class="card">
<div class="content">
<div class="header">
<a href="{{nUrl('inmobiliarias', 'show', ['rut' => $inmobiliaria->rut])}}">{{$inmobiliaria->nombre()}}</a>
</div>
<div class="meta">
{{$inmobiliaria->rut()}}
</div>
<div class="description">
{{$inmobiliaria->razon(true)}}
</div>
</div>
</div>
@endforeach
</div>
</div>
@endsection

View File

@ -0,0 +1,47 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="col-md-10">
<h3>Inmobiliaria {{$inmobiliaria->nombre()}}</h3>
</div>
<div class="col-md-2 text-right h3">
<a href="{{url('', ['p' => 'inmobiliarias', 'a' => 'edit', 'rut' => $inmobiliaria->rut])}}">
<span class="glyphicon glyphicon-edit"></span>
</a>
</div>
</div>
<br />
<div class="row">
<div class="col-md-2">RUT</div>
<div class="col-md-4">{{format('rut', $inmobiliaria->rut)}}-{{$inmobiliaria->dv}}</div>
</div>
<div class="row">
<div class="col-md-2">Raz&oacute;n Social</div>
<div class="col-md-10">{{$inmobiliaria->razon(true)}}</div>
</div>
@if ($inmobiliaria->banco != 0)
<div class="row">
<div class="col-md-2">Cuenta</div>
<div class="col-md-2">{{$inmobiliaria->banco()->nombre}}</div>
<div class="col-md-3">{{$inmobiliaria->cuenta}}</div>
</div>
@endif
<br />
<div class="row">
<div class="col-md-2">Proyectos</div>
<div class="col-md-10 text-right"><a href="{{url('', ['p' => 'proyectos', 'a' => 'add', 'inmobiliaria' => $inmobiliaria->rut])}}"><span class="glyphicon glyphicon-plus"></span></a></div>
</div>
<div class="row">
<div class="col-md-offset-2 col-md-10">
<table class="table table-striped">
@foreach ($inmobiliaria->proyectos() as $proyecto)
<tr>
<td><a href="{{url('', ['p' => 'proyectos', 'a' => 'show', 'proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a></td>
<td>{{$proyecto->estado()->tipo()->etapa()->descripcion}}</td>
</tr>
@endforeach
</table>
</div>
</div>
@endsection

View File

@ -0,0 +1,47 @@
@extends('install.base')
@section('content')
<h3>Create Admin</h3>
<form class="form-horizontal" method="post" action="create_admin.php">
<div class="form-group">
<div class="col-md-2">Username</div>
<div class="col-md-3"><input type="text" name="name" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Password</div>
<div class="col-md-3"><input type="password" name="password" class="form-control" /></div>
<div class="col-md-3" id="msg2"></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Create</button></div>
</div>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
status = 0;
$("input[name='password']").blur(function(e) {
var result = zxcvbn($(this).val(), user_inputs=[$("input[name='name']").val()]);
if (result.score < 3) {
$('#msg2').html('<span class="label label-danger"><span class="glyphicon glyphicon-warning-sign"></span> Nivel ' + result.score + '</span>');
status = 0;
} else {
if (result.score == 3) {
$('#msg2').html('<span class="label label-warning"><span class="glyphicon glyphicon-ok"></span> Nivel ' + result.score + '</span>');
} else {
$('#msg2').html('<span class="label label-success"><span class="glyphicon glyphicon-ok"></span> Nivel ' + result.score + '</span>');
}
status = 1;
}
});
$("form").submit(function(e) {
if (!status) {
e.preventDefault();
}
return status;
});
};
</script>
@endpush

View File

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>
@if (isset($titulo))
{{$titulo}} -
@endif
Incoviba S. A.</title>
<link rel="stylesheet" type="text/css" href="../css/app.css" />
<link rel="icon" type="image/png" href="../images/Isotipo 32.png" />
<script type="text/javascript" src="../js/app.js"></script>
@stack('styles')
</head>
<body>
<header>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo_cabezal">
<a href="."><img src="../images/logo_cabezal.png" /></a>
</div>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
@yield('content')
</div>
</div>
</div>
@include('layout.footer')
@stack('scripts')
</body>
</html>

View File

@ -0,0 +1,5 @@
@extends('install.base')
@section('content')
Installation ended. Go to <a href="../">Inicio</a>. Remember to remove install folder.
@endsection

View File

@ -0,0 +1,6 @@
@extends('install.base')
@section('content')
Start Installation
<a href="next_step.php">Create Tables</a>
@endsection

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>
@if (isset($titulo))
{{$titulo}} -
@endif
Incoviba S. A.</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.7.8/semantic.min.css" />
<link rel="stylesheet" type="text/css" href="css/app.css" />
<link rel="stylesheet" type="text/css" href="css/custom.css" />
<link rel="icon" type="image/png" href="images/Isotipo 32.png" />
<script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.7.8/semantic.min.js"></script>
@stack('styles')
</head>
<body>
@include('layout.header')
<div class="container">
<div class="row">
<div class="col-md-12">
@yield('content')
</div>
</div>
</div>
@include('layout.footer')
@stack('scripts')
</body>
</html>

View File

@ -0,0 +1,16 @@
<header>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo_cabezal">
<a href="."><img src="images/logo_cabezal.png" /></a>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
@include('layout.menu')
</div>
</div>
</div>
</header>

View File

@ -0,0 +1 @@
<span class="glyphicon glyphicon-piggy-bank small" title="Abonar"></span>

View File

@ -0,0 +1,5 @@
<span class="glyphicon glyphicon-plus
@if (isset($small) and $small)
small
@endif
" title="Agregar"></span>

View File

@ -0,0 +1,5 @@
<span class="glyphicon glyphicon-edit
@if (isset($small) and $small)
small
@endif
" title="Editar"></span>

View File

@ -0,0 +1 @@
<span class="glyphicon glyphicon-usd small" title="Pagar"></span>

View File

@ -0,0 +1,5 @@
<span class="glyphicon glyphicon-remove
@if (isset($small) and $small)
small
@endif
" title="Eliminar"></span>

View File

@ -0,0 +1,9 @@
<span class="glyphicon glyphicon-{{$icon}}
@if (isset($small) and $small)
small
@endif
"
@if (isset($title))
title="{{$title}}"
@endif
></span>

View File

@ -0,0 +1,69 @@
<nav class="navbar navbar-default">
<ul class="nav navbar-nav">
<li><a href=".">Inicio</a></li>
@if (\App\Contract\Auth::isIn())
@if (\App\Contract\Auth::checkAccess('ventas'))
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Ventas <span class="caret"></span>
</a>
@include('layout.menu.ventas')
</li>
@endif
@if (\App\Contract\Auth::checkAccess('proyectos'))
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Proyectos <span class="caret"></span>
</a>
@include('layout.menu.proyectos')
</li>
@endif
@if (\App\Contract\Auth::checkAccess('inmobiliarias'))
<li><a href="{{url('', ['p' => 'inmobiliarias', 'a' => 'list'])}}">Inmobiliarias</a></li>
@endif
@if (\App\Contract\Auth::checkAccess('viewInformesContabilidad'))
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Contabilidad <span class="caret"></span>
</a>
@include('layout.menu.informes')
</li>
@endif
<li rol="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Operadores <span class="caret"></span>
</a>
@include('layout.menu.operadores')
</li>
@if (\App\Contract\Auth::checkAccess('viewHerramientas'))
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Herramientas <span class="caret"></span>
</a>
@include('layout.menu.herramientas')
</li>
@endif
@else
<li><a href="{{url('', ['p' => 'auth', 'a' => 'login'])}}">Ingresar</a></li>
@endif
</ul>
@if (\App\Contract\Auth::isIn())
<ul class="nav navbar-nav navbar-right">
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{\App\Contract\Auth::User()->name}} <span class="caret"></span>
</a>
@include('layout.menu.login')
</li>
@if (\App\Contract\Auth::checkAccess('buscar'))
<li style="font-size: large; border-left: 1px solid #e7e7e7;"><a href="{{$url->base}}/buscar"><span class="glyphicon glyphicon-search"></span></a></li>
<li style="margin-right: 15px;">&nbsp;</li>
@endif
</ul>
@endif
</nav>

View File

@ -0,0 +1,62 @@
<nav class="navbar navbar-default">
<ul class="nav navbar-nav">
<li><a href=".">Inicio</a></li>
@if (\App\Contract\Auth::isIn())
@if (\App\Contract\Auth::checkAccess('ventas'))
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Ventas <span class="caret"></span>
</a>
@include('layout.menu.ventas')
</li>
@endif
@if (\App\Contract\Auth::checkAccess('proyectos'))
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Proyectos <span class="caret"></span>
</a>
@include('layout.menu.proyectos')
@endif
@if (\App\Contract\Auth::checkAccess('inmobiliarias'))
<li><a href="{{url('', ['p' => 'inmobiliarias', 'a' => 'list'])}}">Inmobiliarias</a></li>
@endif
@if (\App\Contract\Auth::checkAccess('viewInformesContabilidad'))
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Contabilidad <span class="caret"></span>
</a>
@include('layout.menu.informes')
</li>
@endif
@if (\App\Contract\Auth::checkAccess('viewHerramientas'))
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Herramientas <span class="caret"></span>
</a>
@include('layout.menu.herramientas')
</li>
@endif
@else
<li><a href="{{url('', ['p' => 'auth', 'a' => 'login'])}}">Ingresar</a></li>
@endif
</ul>
@if (\App\Contract\Auth::isIn())
<ul class="nav navbar-nav navbar-right">
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
{{\App\Contract\Auth::User()->name}} <span class="caret"></span>
</a>
@include('layout.menu.login')
</li>
@if (\App\Contract\Auth::checkAccess('buscar'))
<li style="font-size: large; border-left: 1px solid #e7e7e7;"><a href="{{url('', ['p' => 'buscar'])}}"><span class="glyphicon glyphicon-search"></span></a></li>
<li style="margin-right: 15px;">&nbsp;</li>
@endif
</ul>
@endif
</nav>

View File

@ -0,0 +1,3 @@
<ul class="dropdown-menu">
<li><a href="http://{{config('locations.money')}}">Valores Monetarios</a></li>
</ul>

View File

@ -0,0 +1,4 @@
<ul class="dropdown-menu">
<li><a href="{{url('', ['p' => 'informes', 'a' => 'contabilidad'])}}">Pagos Mes</a></li>
<li><a href="{{url('', ['p' => 'informes', 'a' => 'resumen_contabilidad'])}}">Resumen</a></li>
</ul>

View File

@ -0,0 +1,3 @@
<ul class="dropdown-menu">
<li><a href="{{url('', ['p' => 'inmobiliarias', 'a' => 'list'])}}">Listado</a></li>
</ul>

View File

@ -0,0 +1,8 @@
<ul class="dropdown-menu">
<li><a href="{{$urls->base}}/auth/pass/change">Cambiar Cl&aacute;ve</a></li>
@if (\App\Contract\Auth::checkAccess('admin'))
<li><a href="{{$urls->base}}/admin">Administraci&oacute;n</a></li>
@endif
<li><a href="{{$urls->base}}/auth/logout">Salir</a></li>
</ul>

View File

@ -0,0 +1,12 @@
<ul class="dropdown-menu">
<li>
<a href="http://provm.cl:8000/operadores">Listado</a>
</li>
<li>
<a href="http://provm.cl:8000/ventas">Ventas</a>
</li>
<li>
<a href="http://provm.cl:8000/facturas">Informe</a>
</li>
</ul>

View File

@ -0,0 +1,4 @@
<ul class="dropdown-menu">
<li><a href="{{url('', ['p' => 'proyectos', 'a' => 'list'])}}">Listado</a></li>
<li><a href="{{url('', ['p' => 'proyectos', 'a' => 'unidades'])}}">Unidades</a></li>
</ul>

View File

@ -0,0 +1,24 @@
<ul class="dropdown-menu">
<li class="dropdown-submenu"><a>Listado</a>
<ul class="dropdown-menu">
<li><a href="{{nUrl('precios', 'listProyectos')}}">Precios</a></li>
<li><a href="{{url('', ['p' => 'cierres', 'a' => 'list'])}}">Cierres</a></li>
<li><a href="{{url('', ['p' => 'ventas', 'a' => 'list'])}}">Ventas</a></li>
<li><a href="{{url('', ['p' => 'cuotas', 'a' => 'pendientes'])}}">Cuotas Pendientes</a></li>
<li><a href="{{url('', ['p' => 'cuotas', 'a' => 'para_abonar'])}}">Abonar Cuotas</a></li>
<li><a href="{{url('', ['p' => 'pagos', 'a' => 'pendientes'])}}">Pagos Pendientes</a></li>
<li><a href="{{url('', ['p' => 'ventas', 'a' => 'consolidacion'])}}">Consolidado Ventas</a>
</ul>
</li>
<li class="dropdown-submenu"><a>Informes</a>
<ul class="dropdown-menu">
<li><a href="{{url('', ['p' => 'informes', 'a' => 'ventas'])}}">Ventas</a></li>
<li><a href="{{url('', ['p' => 'informes', 'a' => 'escrituras'])}}">Escrituras</a></li>
<li><a href="{{url('', ['p' => 'informes', 'a' => 'gantt_entregas'])}}">Gantt de Entregas</a></li>
<li><a href="{{nUrl('informes', 'resciliaciones')}}">Resciliaciones</a></li>
</ul>
</li>
<li><a href="{{nUrl('precios', 'import')}}">Importar Precios</a></li>
<li><a href="{{nUrl('cierres', 'evalue')}}">Evaluar Cierre</a></li>
<li><a href="{{url('', ['p' => 'ventas', 'a' => 'new'])}}">Nueva Venta <span class="glyphicon glyphicon-plus"></span></a></li>
</ul>

View File

@ -0,0 +1,21 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Capacidades</h3>
</div>
<table class="table table-striped">
<?php $class = '' ?>
@foreach ($capacidades as $method)
@if ($class != $method->class)
<?php $class = $method->class ?>
<tr class="section-heading">
<td>{{\Stringy\Stringy::create($method->class)->replace('App\\Controller\\', '')}}</td>
</tr>
@endif
<tr>
<td>{{\Stringy\Stringy::create($method->class)->replace('App\\Controller\\', '')}}::{{$method->name}}</td>
</tr>
@endforeach
</table>
@endsection

View File

@ -0,0 +1,26 @@
@extends('layout.base')
@section('content')
<form action="{{url('', ['p' => 'other', 'a' => 'entregar_multiple'])}}" method="post" enctype="multipart/form-data">
<div class="form-group">
<div class="col-md-3">Archivo</div>
<div class="col-md-6"><input type="file" name="entregas" class="form-control" /></div>
</div>
<div class="row">
<div class="col-md-offset-3 col-md-9 small">archivo CSV con separador ';'. 2 columnas: Departamento; Fecha</div>
</div>
<div class="form-group">
<div class="col-md-3">Proyecto</div>
<div class="col-md-6">
<select name="proyecto">
@foreach ($proyectos as $proyecto)
<option value="{{$proyecto->id}}">{{htmlentities($proyecto->descripcion)}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-3 col-md-2"><input type="submit" value="Entregar" /></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,136 @@
@extends('layout.base')
@section('content')
<div id="print">
<div class="title">Devoluci&oacute;n Por Pago Excesivo</div>
<br /><br />
<table class="data-box">
<tbody>
<tr>
<td>Fecha</td>
<?php setlocale(LC_TIME, 'es'); $f = \Carbon\Carbon::today(config('app.timezone'))?>
<td>{{$f->formatLocalized('%A, %d de %B de %Y')}}</td>
</tr>
<tr>
<td>Inmobiliaria</td>
<td>{{$venta->proyecto()->inmobiliaria()->razon}}</td>
</tr>
<tr>
<td>Proyecto</td>
<td>{{$venta->proyecto()->descripcion}}</td>
</tr>
<tr>
<td>Propiedad</td>
<td>{{$venta->unidad()->descripcion}}</td>
</tr>
<tr>
<td>Propietario</td>
<td>{{$venta->propietario()->nombreCompleto()}}</td>
</tr>
</tbody>
</table>
<br />
<label for="pago">Detalle de Pago</label>
<table class="details" id="pago">
<thead>
<tr>
<th>Pago</th>
<th>Detalle</th>
<th>Valor Pagado</th>
</tr>
</thead>
<tbody>
<?php $sum = 0 ?>
@if ($venta->pie)
<?php $sum += $venta->pie()->valorAbonado('ufs') ?>
<tr>
<td>Pie</td>
<td>@if ($venta->pie()->cuotas > 1) {{count($venta->pie()->abonadas())}} cuotas @else contado @endif</td>
<td>{{format('ufs', $venta->pie()->valorAbonado('ufs'), null, true)}}</td>
</tr>
@if ($venta->pie()->reajuste and $venta->pie()->reajuste()->estado()->estado == 2)
<?php $venta->pie()->reajuste()->valor('ufs') ?>
<tr>
<td>Reajuste de Pie</td>
<td></td>
<td>{{format('ufs', $venta->pie()->reajuste()->valor('ufs'), null, true)}}</td>
</tr>
@endif
@endif
@if ($venta->escritura and $venta->escritura()->estado()->estado == 2)
<?php $venta->pie()->escritura()->valor('ufs') ?>
<tr>
<td>Abono en Escritura</td>
<td></td>
<td>{{format('ufs', $venta->escritura()->valor('ufs'), null, true)}}</td>
</tr>
@endif
@if ($venta->subsidio)
<?php $sum += $venta->subsidio()->total('ufs') ?>
<tr>
<td>Subsidio</td>
<td>Ahorro: {{format('ufs', $venta->subsidio()->pago()->valor('ufs'), null, true)}}</td>
<td>{{format('ufs', $venta->subsidio()->total('ufs'), null, true)}}</td>
</tr>
@endif
@if ($venta->bono_pie)
<?php $sum += $venta->bonoPie()->pago()->valor('ufs') ?>
<tr>
<td>Bono Pie</td>
<td></td>
<td>{{format('ufs', $venta->bonoPie()->pago()->valor('ufs'))}}</td>
</tr>
@endif
@if ($venta->credito)
<?php $sum += $venta->credito()->pago()->valor('ufs') ?>
<tr>
<td>Cr&eacute;dito</td>
<td>Banco: {{$venta->credito()->pago()->banco()->nombre}}</td>
<td>{{format('ufs', $venta->credito()->pago()->valor('ufs'), null, true)}}</td>
</tr>
@endif
<tr class="total">
<td colspan="2">TOTAL</td>
<td>{{format('ufs', $sum, null, true)}}</td>
</tr>
</tbody>
</table>
<br />
<div class="data">Valor Venta</div>
<div class="data-value">{{format('ufs', $venta->valor('ufs'), null, true)}}</div>
<br class="clear" />
<div class="data">Devoluci&oacute;n</div>
<div class="data-value">{{format('ufs', $venta->saldo('ufs'), null, true)}}</div>
<br class="clear" />
<br />
<div class="data">Valor de UF a la fecha</div>
<div class="data-value">$ {{format('ufs', $uf = uf($f)->uf->value)}}</div>
<br class="clear" />
<br />
<div class="total">Total a Devolver</div>
<div class="total-value">{{format('pesos', $uf * $venta->saldo('ufs'), null, true)}}</div>
<br class="clear" />
<br />
<br />
<br />
<label for="firma">Recibido Conforme</label>
<table class="signature" id="firma">
<tr>
<td>Nombre</td>
<td></td>
</tr>
<tr>
<td>RUT</td>
<td></td>
</tr>
<tr>
<td>Fecha</td>
<td></td>
</tr>
<tr class="triple">
<td>Firma</td>
<td></td>
</tr>
</table>
</div>
@endsection

View File

@ -0,0 +1,80 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Agregar Proyecto</h3>
</div>
<br />
<form method="post" class="form-horizontal" action="{{url('', ['p' => 'proyectos', 'a' => 'agregar'])}}">
<div class="form-group">
<div class="col-md-2">Nombre</div>
<div class="col-md-5"><input type="text" name="descripcion" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Inmobiliaria</div>
<div class="col-md-4"><select name="inmobiliaria" class="form-control">
@foreach ($inmobiliarias as $inmobiliaria)
<option value="{{$inmobiliaria->rut}}"
@if ($inmobiliaria->rut == $rut)
selected="selected"
@endif
>{{$inmobiliaria->abreviacion}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">Direcci&oacute;n</div>
<div class="col-md-4"><input type="text" name="calle" class="form-control" /></div>
<div class="col-md-1"><input type="text" name="numero" class="form-control" /></div>
<div class="col-md-3"><input type="text" name="extra" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-4"><select name="region" class="form-control">
@foreach ($regiones as $region)
<option value="{{$region->id}}"
@if ($region->numeral == 'RM')
selected="selected"
@endif
>{{$region->descripcion}}</option>
@endforeach
</select></div>
<div class="col-md-4"><select name="comuna" class="form-control"></select></div>
</div>
<div class="form-group">
<div class="col-md-2">Fecha de Inicio</div>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-3"><input type="submit" value="Agregar" class="form-control" /></div>
</div>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
$("select[name='region']").change(function(e) {
changeRegion($(this).val());
});
changeRegion($("select[name='region']").val());
$.post('{!!nUrl('ajax', 'calles', ['ajax' => true])!!}', function(data) {
$("input[name='calle']").typeahead({"source": data});
}, 'json');
$("input[name='extra']").typeahead({"source": ['Casa', 'Departamento', 'Oficina', 'Villa']});
});
function changeRegion(region) {
var jq_comunas = $("select[name='comuna']");
var region = $("select[name='region']").val();
jq_comunas.html('');
return $.post('{!!url('', ['p' => 'ajax', 'a' => 'comunas', 'ajax' => true])!!}', {"region": region}, function(data) {
info = $.parseJSON(data);
$.each(info, function(i, e) {
jq_comunas.append(
$('<option></option>').attr('value', e.id).html(e.descripcion)
);
});
});
}
</script>
@endpush

View File

@ -0,0 +1,98 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Avanzar Proyecto</h3>
</div>
<br />
@if ($proyecto->estado()->tipo()->etapa()->descripcion == 'Construcción' and (float) $proyecto->avances()[count($proyecto->avances())-1]->avance < 1)
<form method="post" class="form-horizontal" action="{{nUrl('proyectos', 'avance', ['proyecto' => $proyecto->id])}}">
<div class="form-group">
<div class="col-md-12"><h4>{{$proyecto->descripcion}}</h4></div>
</div>
<div class="form-group">
<div class="col-md-5">{{$proyecto->estado()->tipo()->descripcion}}</div>
<div class="col-md-2">{{format('shortDate', $proyecto->estado()->fecha)}}</div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha</div>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-3">% Avance</div>
<div class="col-md-1"><input type="text" name="avance" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Estado de Pago</div>
<div class="col-md-1"><input type="text" name="numero" class="form-control" placeholder="{{count($proyecto->avances()) + 1}}" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Valor Estado de Pago [UF]</div>
<div class="col-md-3"><input type="text" name="estado_pago" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-3 col-md-2"><button class="form-control">Avanzar</button></div>
</div>
</form>
@else
<form method="post" class="form-horizontal" action="{{url('', ['p' => 'proyectos', 'a' => 'avanzar', 'proyecto' => $proyecto->id])}}">
<div class="form-group">
<div class="col-md-12"><h4>{{$proyecto->descripcion}}</h4></div>
</div>
<div class="form-group">
<div class="col-md-5">{{$proyecto->estado()->tipo()->descripcion}}</div>
<div class="col-md-2">{{format('shortDate', $proyecto->estado()->fecha)}}</div>
</div>
<div class="form-group">
<div class="col-md-3">Nuevo Estado</div>
<div class="col-md-4"><select name="estado" class="form-control">
<?php $etapa = ''; $group = false ?>
@foreach ($estados as $estado)
@if ($etapa != $estado->etapa()->descripcion)
<?php $etapa = $estado->etapa()->descripcion?>
@if ($group)
</optgroup>
@endif
<optgroup label="{{$etapa}}">
<?php $group = true ?>
@endif
<option value="{{$estado->id}}">{{$estado->descripcion}}</option>
@endforeach
@if ($group)
</optgroup>
@endif
</select></div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha</div>
<div class="col-md-1"><select name="day" class="form-control">
<?php $t = \Carbon\Carbon::today(config('app.timezone')) ?>
@for ($i = 0; $i < 31; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $t->day)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></div>
<div class="col-md-1"><select name="month" class="form-control">
@for ($i = 0; $i < 12; $i ++)
<option value="{{$i + 1}}"
@if ($i + 1 == $t->month)
selected="selected"
@endif
>{{str_pad($i + 1, 2, '0', STR_PAD_LEFT)}}</option>
@endfor
</select></div>
<div class="col-md-2"><select name="year" class="form-control">
@for ($i = $t->year; $i > $t->year - 5; $i --)
<option value="{{$i}}">{{$i}}</option>
@endfor
</select></div>
</div>
<div class="form-group">
<div class="col-md-offset-3 col-md-3"><input type="submit" value="Avanzar" class="form-control" /></div>
</div>
</form>
@endif
@endsection

View File

@ -0,0 +1,15 @@
<div class="progress">
<?php
$total = 1;
if ($proyecto->estado()->tipo()->orden < max($estados) - 1 and count($proyecto->estados()) > 1) {
$tf = \Carbon\Carbon::parse($proyecto->estado()->fecha, config('app.timezone'));
$t0 = \Carbon\Carbon::parse($proyecto->estados()[0]->fecha, config('app.timezone'));
$df = $tf->diffInSeconds($t0);
$hoy = \Carbon\Carbon::now(config('app.timezone'));
$dh = $hoy->diffInSeconds($t0);
$total = $df / $dh;
}
$valor = round(($proyecto->estado()->tipo()->orden + 1) / max($estados) * 100 * $total);
?>
<div class="progress-bar" style="width: {{$valor}}%">{{$valor}}%</div>
</div>

View File

@ -0,0 +1,39 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Edit Avance - {{$avance->proyecto()->descripcion}}</h3>
</div>
<br />
<form method="post" class="form-horizontal" action="{{nUrl('proyectos', 'edit_avance', ['avance' => $avance->id])}}">
<div class="form-group">
<div class="col-md-3">Estado de Pago</div>
<div class="col-md-1">{{$avance->numero}}</div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha</div>
<?php $f = $avance->fecha() ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-3">% Avance</div>
<div class="col-md-1"><input type="text" name="avance" class="form-control" value="{{$avance->avance * 100}}" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Valor Estado de Pago [UF]</div>
<div class="col-md-3"><input type="text" name="estado_pago" class="form-control" value="{{$avance->estado_pago}}" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Pagado [$]</div>
<div class="col-md-3"><input type="text" name="pagado" class="form-control" value="{{$avance->pagado}}" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-1 col-md-2">Fecha</div>
<?php $f = $avance->fechaPago(); $id = '_pago' ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-offset-3 col-md-2"><button class="form-control">Editar</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,27 @@
<tr>
<td>EP {{$avance->numero}}</td>
<td>{{$avance->pagare()->id}}</td>
<td style="min-width: 150px;">
<div class="progress">
<div class="progress-bar" style="width: {{round($avance->avance * 100, 2)}}%">
<span class="sr-only">{{format('percent', round($avance->avance * 100, 2))}}%</span>
@if ($avance->avance > 0.3)
{{format('percent', round($avance->avance * 100, 2))}}%
@endif
</div>
<div class="progress-bar progress-bar-warning" style="width: {{round(100 - $avance->avance * 100, 2)}}%">
<span class="sr-only">{{format('percent', round(100 - $avance->avance * 100, 2))}}%</span>
@if ($avance->avance <= 0.3)
{{format('percent', round($avance->avance * 100, 2))}}%
@endif
</div>
</div>
</td>
<td>{{format('shortDate', $avance->fecha)}}</td>
<td>{{format('ufs', $avance->estado_pago)}}</td>
<td>{{format('shortDate', $avance->pagare()->fecha)}}</td>
<td>{{format('ufs', $avance->pagare()->valor())}}</td>
<th>{{format('ufs', $total_avance)}}</th>
<th>{{format('ufs', $total_deuda)}}</th>
<th>{{format('ufs', $total_dif)}}</th>
</tr>

View File

@ -0,0 +1,336 @@
@extends('layout.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">
<h3>Construcci&oacute;n Proyecto <a href="{{nUrl('proyectos', 'show', ['proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a></h3>
</div>
<div class="panel-body">
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-md-2"><b>Estado de Pago</b></div>
<div class="col-md-10"><b>Avance</b></div>
</div>
</div>
<div class="panel-body">
@foreach ($proyecto->avances() as $avance)
<div class="row">
<div class="col-md-2">
@if ($avance->numero == 0)
Anticipo
@else
{{$avance->numero}}
@endif
</div>
<div class="col-md-10">
<div class="progress" style="margin: 2px 0;">
<div class="progress-bar" style="width: {{round($avance->avance * 100, 2)}}%">
<span class="sr-only">{{format('percent', round($avance->avance * 100, 2))}}%</span>
@if ($avance->avance > 0.3)
{{format('percent', round($avance->avance * 100, 2))}}%
@endif
</div>
<div class="progress-bar progress-bar-warning" style="width: {{round(100 - $avance->avance * 100, 2)}}%">
<span class="sr-only">{{format('percent', round(100 - $avance->avance * 100, 2))}}%</span>
@if ($avance->avance <= 0.3)
{{format('percent', round($avance->avance * 100, 2))}}%
@endif
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th rowspan="2">
Estado de Pago
<a href="{{nUrl('proyectos', 'advance', ['proyecto' => $proyecto->id])}}">
<span class="glyphicon glyphicon-plus"></span>
</a>
</th>
<th colspan="4" class="text-center">Pagado</th>
<th rowspan="2">
Pagar&eacute;
<a href="{{nUrl('pagares', 'add', ['proyecto' => $proyecto->id])}}">
<span class="glyphicon small glyphicon-plus"></span>
</a>
</th>
<th colspan="4" class="text-center">Deuda</th>
</tr>
<tr>
<th>Fecha</th>
<th>Valor</th>
<th>Real</th>
<th>Diferencia</th>
<th>Fecha</th>
<th>Valor</th>
<th>Abonado</th>
<th>Diferencia</th>
<th>Intereses</th>
<th class="small">% Intereses</th>
</tr>
</thead>
<tbody>
<?php $totales = (object) [
'avance' => (object) [
'pagado' => 0,
'real' => 0,
'dif' => 0
],
'deuda' => (object) [
'pagare' => 0,
'abonado' => 0,
'dif' => 0,
'intereses' => 0
],
'dif' => 0,
'dif_real' => 0
] ?>
@foreach ($proyecto->avances() as $i => $avance)
<?php
$totales->avance->pagado += $avance->estado_pago;
$totales->avance->real += $avance->pagado();
if ($avance->pagado() > 0) {
$totales->avance->dif += $avance->pagado() - $avance->estado_pago;
}
if ($avance->pagares()) {
$arr = $avance->pagares();
$totales->deuda->pagare += array_reduce($arr, function($sum, $item) {
return $sum + $item->valor();
});
$totales->deuda->abonado += array_reduce($arr, function($sum, $item) {
return $sum + $item->abonado();
});
$totales->deuda->dif += array_reduce($arr, function($sum, $item) {
return $sum + $item->abonado() - $item->valor();
});
$totales->deuda->intereses += array_reduce($arr, function($sum, $item) {
return $sum + $item->intereses();
});
$totales->dif += array_reduce($arr, function($sum, $item) {
return $sum + $item->valor();
}) - $avance->estado_pago;
}
?>
<tr>
<td>
<a href="{{nUrl('proyectos', 'editar_avance', ['avance' => $avance->id])}}">
@if ($avance->numero == 0)
Anticipo
@else
{{$avance->numero}}</a>
@endif
</a>
</td>
<td>{{format('shortDate', $avance->fecha)}}</td>
<td class="text-right">{{format('ufs', $avance->estado_pago)}}</td>
<td class="text-right">
@if ($avance->pagado() > 0)
{{format('ufs', $avance->pagado())}}
@endif
</td>
<td class="text-right">
@if ($avance->pagado() > 0)
{{format('ufs', $avance->estado_pago - $avance->pagado())}}
@endif
</td>
<td>
@if ($avance->pagares())
@foreach ($avance->pagares() as $pagare)
<a href="{{nUrl('pagares', 'show', ['pagare' => $pagare->id])}}">
{{$pagare->id}} ({{$pagare->moneda()->descripcion}})
</a><br />
@endforeach
@else
--
@endif
</td>
<td>
@if ($avance->pagares())
@foreach ($avance->pagares() as $pagare)
{{format('shortDate', $pagare->fecha)}} ({{$pagare->duracion}})<br />
@endforeach
@endif
</td>
<td class="text-right">
@if ($avance->pagares())
@foreach ($avance->pagares() as $pagare)
{{format('ufs', $pagare->valor())}}<br />
@endforeach
@endif
</td>
<td class="text-right">
@if ($avance->pagares())
@foreach ($avance->pagares() as $pagare)
{{format('ufs', $pagare->abonado())}}<br />
@endforeach
@endif
</td>
<td class="text-right">
@if ($avance->pagare())
{{format('ufs', $pagare->abonado() - $pagare->valor())}}
@endif
</td>
<td class="text-right">
@if ($avance->pagares())
@foreach ($avance->pagares() as $pagare)
{{format('ufs', - $pagare->intereses())}}<br />
@endforeach
@endif
</td>
<td class="text-right small">
@if ($avance->pagares())
@foreach ($avance->pagares() as $pagare)
{{format('percent', round($pagare->intereses() / $pagare->valor() * 100, 2), null, true)}}<br />
@endforeach
@endif
</td>
</tr>
@endforeach
<tr>
<td><b>Total</b></td>
<td></td>
<td class="text-right"><b>{{format('ufs', $totales->avance->pagado)}}</b></td>
<td class="text-right"><b>{{format('ufs', $totales->avance->real)}}</b></td>
<td class="text-right"><b>{{format('ufs', - $totales->avance->dif)}}</b></td>
<td colspan="2"></td>
<td class="text-right"><b>{{format('ufs', $totales->deuda->pagare)}}</b></td>
<td class="text-right"><b>{{format('ufs', $totales->deuda->abonado)}}</b></td>
<td class="text-right"><b>{{format('ufs', $totales->deuda->dif)}}</b></td>
<td class="text-right"><b>{{format('ufs', - $totales->deuda->intereses)}}</b></td>
</tr>
</tbody>
</table>
<div class="panel panel-default">
<div class="panel-heading">
<b>Diferencias en Caja</b>
</div>
<div class="panel-body">
<canvas id="estados_pago"></canvas>
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
var estados_pago = []
var pagado = []
var abonado = []
var diferencia = []
var intereses = []
var colores_dif = []
function setUp() {
@foreach ($proyecto->avances() as $avance)
estados_pago.push({{$avance->numero}})
pagado.push(({{$avance->pagado()}}).toFixed(2))
valor = 0
if (diferencia.length > 0) {
valor = parseFloat(diferencia[diferencia.length - 1])
}
valor2 = 0
if (intereses.length > 0) {
valor2 = parseFloat(intereses[intereses.length - 1])
}
@if ($avance->pagares())
<?php $arr = $avance->pagares() ?>
abonado.push({{array_reduce($arr, function($sum, $item) {return $sum + $item->abonado();})}}.toFixed(2))
diferencia.push((valor + {{array_reduce($arr, function($sum, $item) {return $sum + $item->abonado();}) - $avance->pagado()}}).toFixed(2))
intereses.push((valor2 + {{array_reduce($arr, function($sum, $item) {return $sum + $item->intereses();})}}).toFixed(2))
@else
abonado.push(0)
diferencia.push((valor + {{-$avance->pagado()}}).toFixed(2))
intereses.push(valor2.toFixed(2))
@endif
if (diferencia[diferencia.length - 1] < 0) {
colores_dif.push('rgba(255, 0, 0, 1)')
} else {
colores_dif.push('rgba(0, 255, 0, 1)')
}
@endforeach
console.debug(intereses)
}
function formatNumber(number, decimals = 2, dec_sep = ',', thou_sep = '.') {
var arr = ('' + number).split('.')
var num = arr[0]
var dec = arr.length > 1 ? dec_sep + arr[1] : ''
var rgx = /(\d+)(\d{3})/
while (rgx.test(num)) {
num = num.replace(rgx, '$1' + thou_sep + '$2')
}
return num + dec
}
function build() {
var ctx = $('#estados_pago').get(0).getContext('2d')
var chart = new Chart(ctx, {
type: 'bar',
data: {
labels: estados_pago,
datasets: [
{
label: 'Abonado por Banco',
data: abonado,
backgroundColor: 'rgba(0, 255, 255, 1)'
},
{
label: 'Pagado a Constructora',
data: pagado,
backgroundColor: 'rgba(0, 0, 255, 1)'
},
{
label: 'Diferencia',
data: diferencia,
backgroundColor: colores_dif
},
{
label: 'Intereses',
data: intereses,
backgroundColor: 'rgba(255, 255, 0, 1)'
}
]
},
options: {
scales: {
yAxes: [{
afterTickToLabelConversion: (axis) => {
$.each(axis.ticks, (i, el) => {
axis.ticks[i] = formatNumber(parseInt(el))
})
return axis
}
}]
},
tooltips: {
callbacks: {
title: (tooltipItem, data) => {
var ep = data.labels[tooltipItem[0].index]
var label = 'Anticipo'
if (ep > 0) {
label = 'EP ' + ep
}
return label
},
label: (tooltipItem, data) => {
var label = data.datasets[tooltipItem.datasetIndex].label || ''
if (label) {
label += ': '
}
label += formatNumber(tooltipItem.yLabel)
return label
}
}
}
}
})
}
$(document).ready(function() {
setUp()
build()
})
</script>
@endpush

View File

@ -0,0 +1,36 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="col h3">Unidades Disponibles - <a href="{{url('', ['p' => 'proyectos', 'a' => 'show', 'proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a> [{{count($proyecto->unidadesDisponibles())}}]</div>
</div>
<br />
<div class="row">
<table class="table table-striped">
<thead>
<tr>
<th>Tipo</th>
<th>Unidad</th>
<th>Piso</th>
<th> Vendibles</th>
<th>Valor Referencial</th>
</tr>
</thead>
<tbody>
@foreach ($proyecto->unidadesDisponibles() as $unidad)
<tr>
<td>{{ucwords($unidad->tipo()->descripcion)}}</td>
<td>{{$unidad->descripcion}}</td>
<td>{{$unidad->piso}}</td>
<td>
@if ($unidad->tipo == 1)
{{$unidad->m2('vendible')}}
@endif
</td>
<td>{{format('ufs', (($unidad->precio()) ? $unidad->precio()->valor : $unidad->valor) ?: 0, null, true)}}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endsection

View File

@ -0,0 +1,42 @@
@if (count($proyecto->ventas()) > 0 and $proyecto->valores()->estimados->departamentos->cantidad > 0)
<tr>
<td>Estimado Total</td>
<td colspan="2">
<table class="table table-striped">
<thead>
<tr>
<th>
UF Total<br />
Bruto - Neto
</th>
<th>UF/m&#0178; Neto</th>
<th>UF Promedio</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{format('ufs', $proyecto->valores()->vendidos->ingreso->bruto + $proyecto->valores()->estimados->ingreso->bruto, null, true)}} - {{format('ufs', $proyecto->valores()->vendidos->ingreso->neto + $proyecto->valores()->estimados->ingreso->neto, null, true)}}</td>
<td>{{format('ufs', ($proyecto->valores()->vendidos->ingreso->neto + $proyecto->valores()->estimados->ingreso->neto) / $proyecto->superficie('vendible'), null, true)}}</td>
<td>{{format('ufs', ($proyecto->valores()->vendidos->ingreso->neto + $proyecto->valores()->estimados->ingreso->neto) / count($proyecto->unidades(1)), null, true)}}</td>
</tr>
</tbody>
<thead>
<tr>
<th colspan="3">Estacionamientos y Bodegas</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="3">{{format('ufs', $proyecto->valores()->vendidos->otros->valor + $proyecto->valores()->estimados->otros->valor, null, true)}}</td>
</tr>
</tbody>
<thead>
<tr>
<th>Total</th>
<th colspan="2">{{format('ufs', $proyecto->valores()->vendidos->ingreso->neto + $proyecto->valores()->estimados->ingreso->neto + $proyecto->valores()->vendidos->otros->valor + $proyecto->valores()->estimados->otros->valor, null, true)}}</th>
</tr>
</thead>
</table>
</td>
</tr>
@endif

View File

@ -0,0 +1,74 @@
@extends('layout.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="row">
<div class="col-md-6">
Historial Proyecto <a href="{{nUrl('proyectos', 'show', ['proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a>
</div>
<div class="col-md-6 text-right">
<a href="{{nUrl('proyectos', 'advance', ['proyecto' => $proyecto->id])}}">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
</h3>
</div>
<div class="panel-body"><?php $t = \Carbon\Carbon::today(config('app.timezone')) ?>
<table class="table">
<thead>
<tr>
<th>Etapa</th>
<th>Estado</th>
<th>Fecha</th>
<th>Duraci&oacute;n</th>
</tr>
</thead>
<tbody>
<?php
$estados = [];
foreach ($proyecto->estados() as $estado) {
$estados[$estado->fecha] []= $estado;
}
ksort($estados);
$ff = null;
?>
@foreach ($estados as $fecha => $es)
<?php
$f = \Carbon\Carbon::parse($fecha, config('app.timezone'));
usort($es, function($a, $b) {
return $a->tipo()->orden - $b->tipo()->orden;
});
$estado = $es[count($es) - 1];
?>
<tr>
<td>
@if ($estado->tipo()->etapa()->descripcion == 'Construcción')
<a href="{{nUrl('proyectos', 'construccion', ['proyecto' => $proyecto->id])}}">
@endif
{{$estado->tipo()->etapa()->descripcion}}
@if ($estado->tipo()->etapa()->descripcion == 'Construcción')
</a>
@endif
</td>
<td>{{$estado->tipo()->descripcion}}</td>
<td>
@if ($f->timestamp > 0)
{{$f->format('d M Y')}}
@else
--
@endif
</td>
<td>
@if ($ff !== null)
{{$f->longAbsoluteDiffForHumans($ff)}}
@endif
</td>
</tr>
<?php $ff = $f; ?>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection

View File

@ -0,0 +1,82 @@
@extends('layout.base')
@section('content')
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="row">
<div class="col-md-6">
Historial Proyecto <a href="{{nUrl('proyectos', 'show', ['proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a>
</div>
<div class="col-md-6 text-right">
<a href="{{nUrl('proyectos', 'advance', ['proyecto' => $proyecto->id])}}">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
</h3>
</div>
<div class="panel-body"><?php $t = \Carbon\Carbon::today(config('app.timezone')) ?>
<table class="table">
<thead>
<tr>
<th>Fecha</th>
<th></th>
<th>Duraci&oacute;n</th>
</tr>
</thead>
<tbody>
<?php
$estados = [];
foreach ($proyecto->estados() as $estado) {
$estados[$estado->fecha] []= $estado;
}
ksort($estados);
$ff = \Carbon\Carbon::parse('0', config('app.timezone'));
?>
@foreach ($estados as $fecha => $es)
<?php
$f = \Carbon\Carbon::parse($fecha, config('app.timezone'));
usort($es, function($a, $b) {
return $a->tipo()->orden - $b->tipo()->orden;
});
?>
<tr>
<td>{{$f->format('d M Y')}}</td>
<td>
<table class="table table-striped">
<thead>
<tr>
<th>Etapa</th>
<th>Estado</th>
</tr>
</thead>
<tbody>
@foreach ($es as $estado)
<tr>
<td>
@if ($estado->tipo()->etapa()->descripcion == 'Construcción')
<a href="{{nUrl('proyectos', 'construccion', ['proyecto' => $proyecto->id])}}">
@endif
{{$estado->tipo()->etapa()->descripcion}}
@if ($estado->tipo()->etapa()->descripcion == 'Construcción')
</a>
@endif
</td>
<td>{{$estado->tipo()->descripcion}}</td>
</tr>
@endforeach
</tbody>
</table>
</td>
<td>
@if ($f->diffInYears($ff) < 100)
{{$f->longAbsoluteDiffForHumans($ff)}}
@endif
</td>
</tr>
<?php $ff = $f; ?>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection

View File

@ -0,0 +1,42 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="h3">
<div class="row">
<div class="col-md-6">
Proyectos
</div>
<div class="col-md-6 text-right">
<a href="{{nUrl('proyectos', 'add')}}">
<span class="glyphicon small glyphicon-plus"></span>
</a>
</div>
</div>
</div>
</div>
<table class="table table-hover">
<thead>
<tr>
<th>Proyecto</th>
<th>Inmobiliaria</th>
<th>Etapa</th>
<th>Estado</th>
<th>Tiempo Total</th>
</tr>
</thead>
<tbody>
@foreach ($proyectos as $proyecto)
<tr>
<td><a href="{{url('', ['p' => 'proyectos', 'a' => 'show', 'proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a></td>
<td><a href="{{url('', ['p' => 'proyectos', 'a' => 'list', 'inmobiliaria' => $proyecto->inmobiliaria()->id])}}">{{$proyecto->inmobiliaria()->abreviacion}}</a></td>
<td>{{$proyecto->estado()->tipo()->etapa()->descripcion}}</td>
<td>{{$proyecto->estado()->tipo()->descripcion}} ({{\Carbon\Carbon::parse($proyecto->estado()->fecha, config('app.timezone'))->diffForHumans()}})</td>
<td>
{{\Carbon\Carbon::parse($proyecto->estados()[0]->fecha, config('app.timezone'))->diffForHumans()}}
</td>
</tr>
@endforeach
</tbody>
</table>
@endsection

View File

@ -0,0 +1,29 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Agregar Operadores - {{$proyecto->descripcion}}</h3>
</div>
<br />
<form method="post" class="form-horizontal" action="{{nUrl('operadores', 'add', ['proyecto' => $proyecto->id])}}">
<div class="form-group">
<div class="col-md-2">Operadores</div>
<div class="col-md-3">
<select name="operadores[]" multiple="multiple">
@foreach ($operadores as $operador)
<option value="{{$operador->id}}"
@if (array_search($operador, $vigentes) !== false)
selected="selected"
@endif
>{{$operador->abreviacion}}
@endforeach
</select>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-3">
<button class="form-control" type="submit">Agregar</button>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,62 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Agregar Pagar&eacute;
<a href="{{nUrl('proyectos', 'construccion', ['proyecto' => $proyecto->id])}}">
<span class="glyphicon small glyphicon-chevron-up"></span>
</a>
</h3>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('pagares', 'do_add', ['proyecto' => $proyecto->id])}}">
<div class="form-group">
<div class="col-md-3">Estado Pago</div>
<div class="col-md-1"><input type="text" name="estado_pago" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">N&uacute;mero</div>
<div class="col-md-3"><input type="text" name="numero" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Moneda</div>
<div class="col-md-2">
<select name="moneda" class="form-control">
<option value="UF">UF</option>
<option value="Pesos">Pesos</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-md-3">Capital</div>
<div class="col-md-3"><input type="text" name="capital" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Tasa [%]</div>
<div class="col-md-1"><input type="text" name="tasa" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha Otorgado</div>
<?php $id = '_banco' ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-3">Duraci&oacute;n</div>
<div class="col-md-1"><input type="text" name="duracion" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha Abonado</div>
<?php unset($id) ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-3">Monto Abonado [$]</div>
<div class="col-md-3"><input type="text" name="abonado" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-1 col-md-2">
<button class="form-control">Agregar</button>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,44 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Agregar Renovaci&oacute;n Pagar&eacute; <a href="{{nUrl('pagares', 'show', ['pagare' => $pagare->id])}}">{{$pagare->id}}</a>
</h3>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('pagares', 'do_add_renovacion', ['pagare' => $pagare->id])}}">
<div class="form-group">
<div class="col-md-3">Fecha</div>
<?php $id = '_banco' ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-3">Duraci&oacute;n [d&iacute;as]</div>
<div class="col-md-1"><input type="text" name="duracion" class="form-control" /></div>
<div class="col-md-3 small">* Pagar&eacute; {{$pagare->duracion}}</div>
</div>
<div class="form-group">
<div class="col-md-3">Monto Insoluto [{{$pagare->moneda()->descripcion}}]</div>
<div class="col-md-3"><input type="text" name="insoluto" class="form-control" value="{{$pagare->capital}}" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Tasa [%]</div>
<div class="col-md-1"><input type="text" name="tasa" class="form-control" /></div>
<div class="col-md-2 small">* Pagar&eacute; {{format('percent', $pagare->tasa, null, true)}} </div>
</div>
<div class="form-group">
<div class="col-md-3">Intereses [$]</div>
<div class="col-md-3"><input type="text" name="intereses" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha Abono</div>
<?php unset($id) ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-offset-1 col-md-2">
<button class="form-control">Agregar</button>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,66 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Pagar&eacute; <a href="{{nUrl('pageres', 'show', ['pagare' => $pagare->id])}}">{{$pagare->id}}</a></h3>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('pagares', 'do_edit', ['pagare' => $pagare->id])}}">
<div class="form-group">
<div class="col-md-3">Estado Pago</div>
<div class="col-md-1"><input type="text" name="estado_pago" value="{{$pagare->estado_pago}}" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">N&uacute;mero</div>
<div class="col-md-3"><input type="text" name="numero" value="{{$pagare->id}}" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Moneda</div>
<div class="col-md-2">
<select name="moneda" class="form-control">
<option value="UF"
@if (strtolower($pagare->moneda()->descripcion) == 'uf')
selected="selected"
@endif
>UF</option>
<option value="Pesos"
@if (strtolower($pagare->moneda()->descripcion) == 'pesos')
selected="selected"
@endif
>Pesos</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-md-3">Capital</div>
<div class="col-md-3"><input type="text" name="capital" value="{{$pagare->capital}}" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Tasa [%]</div>
<div class="col-md-1"><input type="text" name="tasa" value="{{$pagare->tasa}}" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha Otorgado</div>
<?php $f = $pagare->fechaBanco(); $id = '_banco' ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-3">Duraci&oacute;n</div>
<div class="col-md-1"><input type="text" name="duracion" class="form-control" value="{{$pagare->duracion}}" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha Abonado</div>
<?php $f = $pagare->fecha(); unset($id) ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-3">Monto Abonado [$]</div>
<div class="col-md-3"><input type="text" name="abonado" class="form-control" value="{{$pagare->abonado}}" /></div>
</div>
<div class="form-group">
<div class="col-md-offset-1 col-md-2">
<button class="form-control">Editar</button>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,45 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Renovaci&oacute;n
{{array_search($renovacion, $renovacion->pagare()->renovaciones()) + 1}}
Pagar&eacute; <a href="{{nUrl('pagares', 'show', ['pagare' => $renovacion->pagare])}}">{{$renovacion->pagare}}</a>
</h3>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('pagares', 'do_edit_renovacion', ['renovacion' => $renovacion->id])}}">
<div class="form-group">
<div class="col-md-3">Fecha</div>
<?php $f = $renovacion->fechaBanco(); $id = '_banco' ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-3">Duraci&oacute;n [d&iacute;as]</div>
<div class="col-md-1"><input type="text" name="duracion" value="{{$renovacion->duracion}}" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Monto Insoluto [{{$renovacion->pagare()->moneda()->descripcion}}]</div>
<div class="col-md-3"><input type="text" name="insoluto" value="{{$renovacion->insoluto}}" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Tasa [%]</div>
<div class="col-md-1"><input type="text" name="tasa" value="{{$renovacion->tasa}}" class="form-control" /></div>
<div class="col-md-2 small">* Pagar&eacute; {{format('percent', $renovacion->pagare()->tasa, null, true)}} </div>
</div>
<div class="form-group">
<div class="col-md-3">Intereses [$]</div>
<div class="col-md-3"><input type="text" name="intereses" value="{{$renovacion->intereses}}" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-3">Fecha Abono</div>
<?php $f = $renovacion->fecha(); unset($id) ?>
@include('form.fecha')
</div>
<div class="form-group">
<div class="col-md-offset-1 col-md-2">
<button class="form-control">Editar</button>
</div>
</div>
</form>
@endsection

View File

@ -0,0 +1,100 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="col-md-6 h3">
Pagar&eacute; {{$pagare->id}}
<a href="{{nUrl('proyectos', 'construccion', ['proyecto' => $pagare->proyecto()->id])}}">
<span class="glyphicon small glyphicon-chevron-up"></span>
</a>
</div>
<div class="col-md-6 h3 text-right">
<a href="{{nUrl('pagares', 'edit', ['pagare' => $pagare->id])}}">
<span class="glyphicon glyphicon-edit"></span>
</a>
</div>
</div>
<table class="table table-striped">
<thead></thead>
<tbody>
<tr>
<td>Estado Pago</td>
<td>
{{$pagare->estado_pago}}
</td>
</tr>
<tr>
<td>Moneda</td>
<td>{{$pagare->moneda()->descripcion}}</td>
</tr>
<tr>
<td>Capital</td>
<td>{{format('ufs', $pagare->valor(), null, true)}}</td>
<td>{{format('pesos', $pagare->valor('pesos'), null, true)}}</td>
<td>{{format('shortDate', $pagare->fecha_banco)}}</td>
</tr>
<tr>
<td>Abonado</td>
<td>{{format('ufs', $pagare->abonado(), null, true)}}</td>
<td>{{format('pesos', $pagare->abonado('pesos'), null, true)}}</td>
<td>
@if ($pagare->fecha != '0000-00-00')
{{format('shortDate', $pagare->fecha)}}
@endif
</td>
</tr>
<tr>
<td>Tasa Anualizada</td>
<td colspan="3">{{format('percent', $pagare->tasa, null, true)}}</td>
</tr>
<tr>
<td>Duraci&oacute;n</td>
<td>{{$pagare->duracion}}</td>
<td colspan="2">{{format('shortDate', $pagare->vencimiento()->format('Y-m-d'))}}</td>
</tr>
</tbody>
</table>
@if ($pagare->renovaciones())
<table class="table table-striped">
<thead>
<tr>
<th colspan="3">Renovaciones</th>
</tr>
<tr>
<th>Fecha Renovaci&oacute;n</th>
<th>Intereses Pagados</th>
<th>
<a href="{{nUrl('pagares', 'add_renovacion', ['pagare' => $pagare->id])}}">
<span class="glyphicon glyphicon-plus"></span>
</a>
</th>
</tr>
</thead>
<tbody>
<?php $total = 0 ?>
@foreach ($pagare->renovaciones() as $renovacion)
<?php $total += $renovacion->intereses() ?>
<tr>
<td>
{{format('shortDate', $renovacion->fecha)}}
({{$renovacion->duracion}})
{{format('shortDate', $renovacion->vencimiento()->format('Y-m-d'))}}
</td>
<td>{{format('ufs', $renovacion->intereses(), null, true)}}</td>
<td>
<a href="{{nUrl('pagares', 'edit_renovacion', ['renovacion' => $renovacion->id])}}">
<span class="glyphicon glyphicon-edit"></span>
</a>
</td>
</tr>
@endforeach
<tr>
<td><b>Total</b></td>
<td colspan="2"><b>{{format('ufs', $total, null, true)}}</b></td>
</tr>
</tbody>
</table>
@else
<a href="{{nUrl('pagares', 'add_renovacion', ['pagare' => $pagare->id])}}">Agregar Renovaci&oacute;n</a>
@endif
@endsection

View File

@ -0,0 +1,66 @@
@if (count($proyecto->unidades()) > 0 and $proyecto->valores()->estimados->departamentos->cantidad > 0)
<tr>
<td><a href="{{url('', ['p' => 'proyectos', 'a' => 'disponibles', 'proyecto' => $proyecto->id])}}">Por vender</a></td>
<td colspan="2">
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>% Por Vender</th>
<th>m&#0178; promedio</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{$proyecto->valores()->estimados->departamentos->cantidad}}</td>
<td>{{\App\Helper\Format::number($proyecto->valores()->estimados->departamentos->cantidad / count($proyecto->unidades(1)) * 100, 2)}} %</td>
<td>{!!format('m2', $proyecto->valores()->estimados->departamentos->mts->vendibles->promedio, null, true)!!}</td>
</tr>
</tbody>
<thead>
<tr>
<th>UF Estimado<br />
Bruto - Neto
</th>
<th>UF/m&#0178; Neto</th>
<th>UF promedio</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{format('ufs', $proyecto->valores()->estimados->ingreso->bruto, null, true)}} - {{format('ufs', $proyecto->valores()->estimados->ingreso->neto, null, true)}}</td>
<td>{{format('ufs', $proyecto->valores()->estimados->departamentos->uf_m2->promedio, null, true)}}</td>
<td>{{format('ufs', $proyecto->valores()->estimados->departamentos->precio->promedio, null, true)}}</td>
</tr>
</tbody>
<thead>
<tr>
<th>Estacionamientos</th>
<th>Bodegas</th>
<th>Valor Estimado</th>
</th>
</thead>
<tbody>
<tr>
<td>{{count($proyecto->unidadesDisponibles(2))}}</td>
<td>{{count($proyecto->unidadesDisponibles(3))}}</td>
<td>{{format('ufs', $proyecto->valores()->estimados->otros->valor, null, true)}}</td>
</tr>
</tbody>
<thead>
<tr>
<th>Operador</th>
<th>Bono Pie</th>
<th>Premios</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{format('ufs', $proyecto->valores()->estimados->comision, null, true)}}</td>
<td>{{format('ufs', $proyecto->valores()->estimados->bono->valor, null, true)}}</td>
<td>{{format('ufs', $proyecto->valores()->estimados->premios(), null, true)}}</td>
</tbody>
</table>
</td>
</tr>
@endif

View File

@ -0,0 +1,72 @@
@extends('layout.base')
@section('content')
<h1 class="page-heading">
<a href="{{nUrl('proyectos', 'show', ['proyecto' => $proyecto->id])}}">
<span class="glyphicon small glyphicon-chevron-up"></span></a>
Ventas y Reservas - {{$proyecto->descripcion}}
</h1>
<table class="ui celled table">
<thead>
<tr>
<th>Piso</th>
@for ($i = 1; $i <= $max_unidades; $i ++)
<th>{{$i}}</th>
@endfor
</tr>
</thead>
<tbody>
@foreach ($pisos as $piso)
<tr>
<td>{{$piso->descripcion}}</td>
@for ($i = 1; $i <= $max_unidades; $i ++)
@if (!isset($piso->unidades[$i]))
<td style="min-width: 12ex;"></td>
@continue
@endif
<?php $unidad = $piso->unidades[$i] ?>
<td style="min-width: 12ex;">
<strong>{{$unidad->descripcion}}</strong>
<br />
{{$unidad->tipologia()->tipologia()->descripcion}}
<br />
{{format('ufs', $unidad->precio()->valor, null, true)}}
<br />
@if ($unidad->isVendida())
<span style="color: white; background-color: darkgreen; width: 100%; padding: 2px;">{{format('shortDate', $unidad->venta()->fecha)}}</span>
@endif
<br />
@if ($unidad->isReservada())
<span style="color: white; background-color: olive; padding: 2px;">{{format('shortDate', $unidad->cierre()->fecha)}}</span>
@endif
</td>
@endfor
</tr>
@endforeach
<tr>
<td>
<div style="color: white; background-color: darkgreen; min-width: 5ex; text-align: center">
<strong>
{{array_reduce($totales, function($sum, $item) {
return $sum + $item->ventas;
})}}
</strong>
</div>
<div style="color: white; background-color: olive; min-width: 5ex; text-align: center;">
<strong>
{{array_reduce($totales, function($sum, $item) {
return $sum + $item->reservas;
})}}
</strong>
</div>
</td>
@for ($i = 1; $i <= $max_unidades; $i ++)
<td>
<div style="color: white; background-color: darkgreen; min-width: 12ex; text-align: center;"><strong>{{$totales[$i]->ventas}}</strong></div>
<div style="color: white; background-color: olive; min-width: 12ex; text-align: center;"><strong>{{$totales[$i]->reservas}}</strong></div>
</td>
@endfor
</tr>
</tbody>
</table>
@endsection

View File

@ -0,0 +1,230 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="col-md-6 h3">Proyecto - {{$proyecto->descripcion}}</div>
<div class="col-md-6 h3 text-right"><a href="{{url('', ['p' => 'proyectos', 'a' => 'edit', 'proyecto' => $proyecto->id])}}"><span class="glyphicon glyphicon-edit"></span></a></div>
</div>
<table class="table table-striped">
<tr>
<td>Direcci&oacute;n</td>
<td>{{$proyecto->direccion()->completa(true)}}</td>
</tr>
<tr>
<td>Inmobiliaria</td>
<td colspan="2"><a href="{{url('', ['p' => 'inmobiliarias', 'a' => 'show', 'rut' => $proyecto->inmobiliaria()->rut])}}">{{$proyecto->inmobiliaria()->abreviacion}}</a></td>
</tr>
<tr>
<td>Inicio</td>
<td>{{$proyecto->estados()[0]->tipo()->descripcion}} [{{$proyecto->estados()[0]->tipo()->etapa()->descripcion}}]] ({{format('shortDate', $proyecto->estados()[0]->fecha)}})
(<?php
$today = \Carbon\Carbon::today(config('app.timezone'));
$f = \Carbon\Carbon::parse($proyecto->estados()[0]->fecha, config('app.timezone'));
?>{{$f->diffForHumans($today)}})
</td>
<td></td>
</tr>
<tr>
<td>Estado <a href="{{nUrl('proyectos', 'historial', ['proyecto' => $proyecto->id])}}"><span class="glyphicon glyphicon-list-alt"></span></a></td>
<td>{{$proyecto->estado()->tipo()->descripcion}}
@if ($proyecto->estado()->tipo()->etapa()->descripcion == 'Construcción')
<a href="{{nUrl('proyectos', 'construccion', ['proyecto' => $proyecto->id])}}">
@endif
[{{$proyecto->estado()->tipo()->etapa()->descripcion}}]
@if ($proyecto->estado()->tipo()->etapa()->descripcion == 'Construcción')
</a>
@endif
({{format('shortDate', $proyecto->estado()->fecha)}}) (<?php
$f = \Carbon\Carbon::parse($proyecto->estado()->fecha, config('app.timezone'));
?>{{$f->diffForHumans($today)}})</td>
<td><a href="{{url('', ['p' => 'proyectos', 'a' => 'advance', 'proyecto' => $proyecto->id])}}"><span class="glyphicon glyphicon-chevron-right"></span></a>
</tr>
<tr>
<td></td>
<td>@include('proyectos.avance')
</tr>
<tr>
<td>Operadores</td>
<td>
@if ($proyecto->operadoresVigentes())
{{array_reduce($proyecto->operadoresVigentes(), function($list, $item) {
return trim($list . ', ' . $item->agente()->agente()->abreviacion, ', ');
})}}
@endif
<a href="{{nUrl('operadores', 'agregar', ['proyecto' => $proyecto->id])}}">
<span class="glyphicon glyphicon-plus"></span>
</a>
</td>
</tr>
@include('proyectos.superficies')
@if (count($proyecto->proyectoTipoUnidades()) > 0)
<tr>
<td>Departamentos</td>
<td colspan="2"><a href="{{nUrl('proyectos', 'list_unidades', ['proyecto' => $proyecto->id])}}">{{count($proyecto->unidades(1))}}</a></td>
</tr>
<tr>
<td>Pisos</td>
<td colspan="2">{{$proyecto->pisos()}}</td>
</tr>
@else
<tr>
<td></td>
<td colspan="2"><a href="{{url('', ['p' => 'proyectos', 'a' => 'add_tipo_unidad', 'proyecto' => $proyecto->id])}}">Agregar tipo de unidad <span class="glyphicon glyphicon-plus"></span></a></td>
</tr>
@endif
@include('proyectos.ventas')
@include('proyectos.por_vender')
@include('proyectos.estimado')
<tr>
<td colspan="2" style="text-align: center;">
<canvas id="ventas_un" width="400" height="300" style="display: inline;"></canvas>
<canvas id="ventas_uf" width="400" height="300" style="display: inline;"></canvas>
</td>
</tr>
<tr>
<td colspan="2" class="text-center">
<table class="table">
<tr id="graficos_unidades"></tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<canvas id="ventas_pt" width="1000" height="400" style="display: inline;"></canvas>
</td>
</tr>
</table>
@endsection
@push('scripts')
@if (count($proyecto->unidades()) > 0)
<script>
function buildPie(chart_id, data, options) {
var ctx = document.getElementById(chart_id).getContext('2d')
var vData = {
datasets: [{
data: data.values,
backgroundColor: data.colors
}],
labels: data.labels
}
var vOptions = {
responsive: false,
title: {
display: true,
text: options.title
},
legend: {
position: 'right'
},
tooltips: {
callbacks: {
label: changeLabel
}
}
}
return chart = new Chart(ctx, {
type: 'pie',
data: vData,
options: vOptions
})
}
$(document).ready(function() {
@if ($proyecto->ventas())
buildPie('ventas_un', {
values: [
{{count($proyecto->ventas())}},
{{$proyecto->valores()->estimados->departamentos->cantidad}}
],
colors: [
'rgba(0, 200, 0, .7)',
'rgba(200, 0, 0, .7)'
],
labels: [
'Vendida',
'Por Vender'
]
}, {
title: 'Unidades Vendidas'
})
buildPie('ventas_uf', {
values: [
{{round($proyecto->valores()->vendidos->ingreso->bruto, 0)}},
{{round($proyecto->valores()->estimados->ingreso->bruto, 0)}}
],
colors: [
'rgba(0, 200, 0, .7)',
'rgba(200, 0, 0, .7)'
],
labels: [
'Vendida',
'Estimada'
]
}, {
title: 'UF Neto Vendida'
})
var width = {{floor(1000 / count($ventas_pt->data))}}
<?php $c = 0 ?>
@foreach ($ventas_pt->data as $tipo => $data)
chart = $('<td></td>').append(
$('<canvas></canvas>').attr('id', 'chart_{{$tipo}}').attr('width', width).attr('height', 300)
)
$('#graficos_unidades').append(chart)
buildPie('chart_{{$tipo}}', {
values: [
{{$ventas_pt->totales[$tipo] * $data[count($data) - 1] / 100}},
{{$ventas_pt->totales[$tipo] * (1 - $data[count($data) - 1] / 100)}}
],
colors: ['rgba(0, 255, 0, .7)', 'rgba(255, 0, 0, .7)'],
labels: ['Vendido', 'Total']
}, {
title: '{{$tipo}}'
})
@endforeach
ctx = document.getElementById('ventas_pt').getContext('2d');
vData = {
labels: ["{!!implode('", "', $ventas_pt->fields)!!}"],
datasets: [
<?php $c = 0 ?>
@foreach ($ventas_pt->data as $tipo => $data)
{
data: [{{implode(', ', $data)}}],
borderColor: '{{$colors[$c]}}',
backgroundColor: '{{$colors[$c ++]}}',
fill: false,
label: "{{$tipo}}"
},
@endforeach
]
}
vOptions = {
responsive: false,
title: {
display: true,
text: "% Unidades Vendidas por Tipo"
},
legend: {
position: 'bottom'
},
scales: {
yAxes: [{
ticks: {
min: 0,
max: 100
}
}]
}
};
ventas = new Chart(ctx, {
type: "line",
data: vData,
options: vOptions
})
@endif
})
</script>
@endif
@endpush

View File

@ -0,0 +1,97 @@
@if ($proyecto->superficie('total') != null)
<tr>
<td>Superficies</td>
<td colspan="2">
<table class="table table-striped">
<tr>
<td>Total</td>
<td>{!!format('m2', $proyecto->superficie('total'), null, true)!!}</td>
<td rowspan="6">
<canvas id="superficies" width="300" height="200"></canvas>
</td>
</tr>
<tr>
<td>Sobre Nivel</td>
<td>{!!format('m2', $proyecto->superficie('snt'), null, true)!!}</td>
</tr>
<tr>
<td>Bajo Nivel</td>
<td>{!!format('m2', $proyecto->superficie('bnt'), null, true)!!}</td>
</tr>
<tr>
<td>Vendible</td>
<td>{!!format('m2', $proyecto->superficie('vendible'), null, true)!!}</td>
</tr>
@if (count($proyecto->ventas()) > 0)
<tr>
<td>Vendido</td>
<td>{!!format('m2', $proyecto->superficie('vendida'), null, true)!!}</td>
</tr>
<tr>
<td>Por Vender</td>
<td>{!!format('m2', $proyecto->superficie('por vender'), null, true)!!}</td>
</tr>
@endif
</table>
</td>
</tr>
@endif
@push('scripts')
@if ($proyecto->superficie('total') != null)
<script>
Number.prototype.formatMoney = function(c, d, t) {
var n = this,
c = isNaN(c = Math.abs(c)) ? 2 : c,
d = d == undefined ? "." : d,
t = t == undefined ? "," : t,
s = n < 0 ? "-" : "",
i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))),
j = ((j = i.length) > 3) ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
function changeLabel(tooltipItem, data) {
var label = data.labels[tooltipItem.index] || '';
var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
var total = data.datasets[tooltipItem.datasetIndex].data.reduce((a, b) => a + b, 0);
if (label) {
label += ': ';
}
label += value.formatMoney(0, ',', '.') + ' (' + Math.round(value / total * 100, 1) + '%)';
return label;
}
var ctx = document.getElementById('superficies').getContext('2d');
var sData = {
"datasets": [{
"data": [
{{(($proyecto->superficie('vendible') > 0) ? round($proyecto->superficie('vendida') / $proyecto->superficie('vendible') * 100, 2) : 0)}},
{{(($proyecto->superficie('vendible') > 0) ? round($proyecto->superficie('por vender') / $proyecto->superficie('vendible') * 100, 2) : 0)}}
],
"backgroundColor": ['rgba(0, 200, 0, .7)', 'rgba(200, 0, 0, .7)']
}],
"labels": ["Vendida", "Por Vender"]
};
var sOptions = {
"responsive": false,
"title": {
"display": true,
"text": "Superfice Vendible"
},
"legend": {
"position": 'right'
},
"tooltips": {
"callbacks": {
"label": changeLabel
}
}
};
var superficies = new Chart(ctx, {
"type": "pie",
"data": sData,
"options": sOptions
});
</script>
@endif
@endpush

View File

@ -0,0 +1,44 @@
@extends('layout.base')
@section('content')
<div class="page-heading">
<h2>Agregar Tipo Unidad - <a href="{{nUrl('proyectos', 'list_unidades', ['proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a></h2>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('proyectos', 'agregar_tipo_unidad', ['proyecto' => $proyecto->id])}}">
<div class="form-group">
<div class="col-md-2">Tipo</div>
<div class="col-md-3"><select name="tipo" class="form-control">
@foreach ($tipos as $tipo)
<option value="{{$tipo->id}}">{{ucwords($tipo->descripcion)}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">Nombre</div>
<div class="col-md-3"><input type="text" name="nombre" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Abreviaci&oacute;n</div>
<div class="col-md-3"><input type="text" name="abreviacion" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-2">m&#0178;</div>
<div class="col-md-2">Interior</div>
<div class="col-md-2">Logia</div>
<div class="col-md-2">Terraza</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-1"><input type="text" name="m2" class="form-control" /></div>
<div class="col-md-offset-1 col-md-1"><input type="text" name="logia" class="form-control" /></div>
<div class="col-md-offset-1 col-md-1"><input type="text" name="terraza" class="form-control" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Descripci&oacute;n</div>
<div class="col-md-5"><textarea class="form-control" name="descripcion" rows="5"></textarea></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Agregar</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,43 @@
@extends('layout.base')
@section('content')
<div class="page-heading">
<h2>Editar Tipo Unidad - <a href="{{nUrl('proyecto', 'list_unidades', ['proyecto' => $tipo->proyecto()->id])}}">{{$tipo->proyecto()->descripcion}}</a></h2>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('proyecto_tipo_unidades', 'editar', ['tipo_unidad' => $tipo->id])}}">
<div class="form-group">
<div class="col-md-2">Tipo</div>
<div class="col-md-3"><select name="tipo" class="form-control">
@foreach ($tipos as $t)
<option value="{{$t->id}}"
@if ($t->id == $tipo->tipo)
selected="selected"
@endif
>{{ucwords($t->descripcion)}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">Nombre</div>
<div class="col-md-3"><input type="text" name="nombre" class="form-control" value="{{$tipo->nombre}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Abreviaci&oacute;n</div>
<div class="col-md-3"><input type="text" name="abreviacion" class="form-control" value="{{$tipo->abreviacion}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">m&#0178;</div>
<div class="col-md-1"><input type="text" name="m2" class="form-control" value="{{$tipo->m2}}" /></div>
<div class="col-md-1"><input type="text" name="logia" class="form-control" value="{{$tipo->logia}}" /></div>
<div class="col-md-1"><input type="text" name="terraza" class="form-control" value="{{$tipo->terraza}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Descripci&oacute;n</div>
<div class="col-md-5"><textarea class="form-control" name="descripcion" rows="5">{{$tipo->descripcion}}</textarea></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button type="submit" class="form-control">Editar</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,110 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Agregar Unidades - <a href="{{nUrl('proyectos', 'list_unidades', ['proyecto' => $tipo->proyecto()->id])}}">{{$tipo->proyecto()->descripcion}}</a> - {{$tipo->nombre}}</h3>
</div>
<br />
<div class="row">
<div class="col-md-2">Tipo</div>
<div class="col-md-3">{{$tipo->nombre}}</div>
<div class="col-md-2">
@if ($tipo->tipologia())
{{$tipo->tipologia()->descripcion}}
@else
{{$tipo->abreviacion}}
@endif
</div>
<div class="col-md-2">{{format('m2', $tipo->m2())}} m&#0178;</div>
</div>
<br />
<form method="post" class="form-horizontal" action="{{url('', ['p' => 'unidades', 'a' => 'agregar', 'tipo' => $tipo->id])}}">
<div class="form-group">
<div class="col-md-2">Total Departamentos por Piso</div>
<div class="col-md-1"><input type="text" name="total" maxlength="2" class="form-control" /></div>
<div class="col-md-offset-7 col-md-1 text-right"><span class="glyphicon glyphicon-plus agregar" id="agregar_unidad"></span></div>
<div class="col-md-1"><input type="text" size="3" maxlength="3" id="unis" value="1" class="form-control" /></div>
<input type="hidden" name="unidades" value="[1]" />
</div>
<div class="form-group" id="primero">
<div class="col-md-2">L&iacute;nea</div>
<div class="col-md-1"><input type="text" name="linea1" maxlength="2" class="form-control" /></div>
<div class="col-md-2">Orientaci&oacute;n</div>
<div class="col-md-2">
<?php $orientaciones = ['N', 'NO', 'O', 'SO', 'S', 'SP', 'P', 'NP'] ?>
<select name="orientacion1" class="form-control">
@foreach ($orientaciones as $orientacion)
<option value="{{$orientacion}}">{{$orientacion}}</option>
@endforeach
</select>
</div>
<div class="col-md-2">Pisos</div>
<div class="col-md-1"><input type="text" name="piso_ini1" maxlength="3" class="form-control" /></div>
<div class="col-md-1"><input type="text" name="piso_end1" maxlength="3" class="form-control" /></div>
</div>
<div id="unidades"></div>
<div class="form-group">
<div class="col-md-offset-2 col-md-3"><input type="submit" value="Agregar" class="form-control" /></div>
</div>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
var unidades = [1];
$(document).ready(function() {
$('#agregar_unidad').click(function(e) {
var cnt = $('#unis').val();
for (var i = 0; i < cnt; i ++) {
addUnidad();
}
});
});
function addUnidad() {
var n = unidades[unidades.length - 1] + 1;
if (unidades.length == 0) {
n = 1
}
unidades[unidades.length] = n;
var orientaciones = $('<select></select>').attr('name', 'orientacion' + n).attr('class', 'form-control')
@foreach ($orientaciones as $orientacion)
orientaciones.append($('<option></option>').attr('value', '{{$orientacion}}').html('{{$orientacion}}'))
@endforeach
$('#unidades').append(
$('<div></div>').attr('class', 'form-group').append(
$('<div></div>').attr('class', 'col-md-2').html('L&iacute;nea')
).append(
$('<div></div>').attr('class', 'col-md-1').append($('<input/>').attr('type', 'text').attr('name', 'linea' + n).attr('maxlength', 2).attr('class', 'form-control'))
).append(
$('<div></div>').attr('class', 'col-md-2').html('Orientaci&oacute;n')
).append(
$('<div></div>').attr('class', 'col-md-2').append(orientaciones)
).append(
$('<div></div>').attr('class', 'col-md-2').html('Pisos')
).append(
$('<div></div>').attr('class', 'col-md-1').append($('<input/>').attr('type', 'text').attr('name', 'piso_ini' + n).attr('maxlength', 3).attr('class', 'form-control'))
).append(
$('<div></div>').attr('class', 'col-md-1').append($('<input/>').attr('type', 'text').attr('name', 'piso_end' + n).attr('maxlength', 3).attr('class', 'form-control'))
).append(
$('<div></div>').attr('class', 'col-md-1').append($('<span></span>').attr('class', 'glyphicon glyphicon-minus remover').attr('id', 'remover_unidad' + n).attr('data-id', n))
)
)
$("input[name='unidades']").val(JSON.stringify(unidades));
$('#remover_unidad' + n).click(function(e) {
i = $(this).attr('data-id');
removeUnidad(i);
});
}
function removeUnidad(n) {
var unis = $('#unidades');
unis.find("input[name='linea" + n + "']").parent().parent().next().remove();
unis.find("input[name='linea" + n + "']").parent().parent().remove();
i = unidades.binaryIndexOf(n);
unidades.splice(i, 1);
$("input[name='unidades']").val(JSON.stringify(unidades));
}
</script>
@endpush

View File

@ -0,0 +1,86 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h3>Agregar Unidades - <a href="{{nUrl('proyectos', 'list_unidades', ['proyecto' => $tipo->proyecto()->id])}}">{{$tipo->proyecto()->descripcion}}</a> - {{$tipo->nombre}}</h3>
</div>
<br />
<div class="row">
<div class="col-md-2">Tipo</div>
<div class="col-md-3">{{$tipo->nombre}}</div>
<div class="col-md-2">{{$tipo->abreviacion}}</div>
<div class="col-md-2">{{format('m2', $tipo->m2())}} m&#0178;</div>
</div>
<br />
<form method="post" class="form-horizontal" action="{{url('', ['p' => 'unidades', 'a' => 'agregar', 'tipo' => $tipo->id])}}">
<div class="form-group">
<div class="col-md-2">Unidades</div>
<div class="col-md-1" id="n_unidades"></div>
<div class="col-md-offset-7 col-md-1 text-right"><span class="glyphicon glyphicon-plus agregar" id="agregar_unidad"></span></div>
<div class="col-md-1"><input type="text" size="3" maxlength="3" id="unis" value="1" class="form-control" /></div>
<input type="hidden" name="unidades" value="[1]" />
</div>
<div class="form-group" id="primero">
<div class="col-md-2">Descripci&oacute;n</div>
<div class="col-md-2"><input type="text" name="descripcion1" class="form-control" /></div>
<div class="col-md-2">Piso</div>
<div class="col-md-1"><input type="text" name="piso1" maxlength="3" class="form-control" /></div>
</div>
<div id="unidades"></div>
<div class="form-group">
<div class="col-md-offset-2 col-md-3"><input type="submit" value="Agregar" class="form-control" /></div>
</div>
</form>
@endsection
@push('scripts')
<script type="text/javascript">
var unidades = [1];
$(document).ready(function() {
$('#agregar_unidad').click(function(e) {
var cnt = $('#unis').val();
for (var i = 0; i < cnt; i ++) {
addUnidad();
}
});
$('#n_unidades').html(unidades.length)
});
function addUnidad() {
var n = unidades[unidades.length - 1] + 1;
if (unidades.length == 0) {
n = 1
}
unidades[unidades.length] = n;
$('#n_unidades').html(unidades.length)
$('#unidades').append(
$('<div></div>').attr('class', 'form-group').append(
$('<div></div>').attr('class', 'col-md-2').html('Descripci&oacute;n')
).append(
$('<div></div>').attr('class', 'col-md-2').append($('<input/>').attr('type', 'text').attr('name', 'descripcion' + n).attr('class', 'form-control'))
).append(
$('<div></div>').attr('class', 'col-md-2').html('Piso')
).append(
$('<div></div>').attr('class', 'col-md-1').append($('<input/>').attr('type', 'text').attr('name', 'piso' + n).attr('maxlength', 3).attr('class', 'form-control'))
).append(
$('<div></div>').attr('class', 'col-md-1').append($('<span></span>').attr('class', 'glyphicon glyphicon-minus remover').attr('id', 'remover_unidad' + n).attr('data-id', n))
)
)
$("input[name='unidades']").val(JSON.stringify(unidades));
$('#remover_unidad' + n).click(function(e) {
i = $(this).attr('data-id');
removeUnidad(i);
});
}
function removeUnidad(n) {
var unis = $('#unidades');
unis.find("input[name='descripcion" + n + "']").parent().parent().next().remove();
unis.find("input[name='descripcion" + n + "']").parent().parent().remove();
i = unidades.binaryIndexOf(n);
unidades.splice(i, 1);
$('#n_unidades').html(unidades.length)
$("input[name='unidades']").val(JSON.stringify(unidades));
}
</script>
@endpush

View File

@ -0,0 +1,38 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<h2>Asignar Tipo a Unidades - <a href="{{nUrl('proyectos', 'list_unidades', ['proyecto', $proyecto->id])}}">{{$proyecto->descripcion}}</a></h2>
</div>
<form class="form-horizontal" method="post" action="{{nUrl('proyecto_tipo_unidades', 'asignar', ['proyecto' => $proyecto->id])}}">
<table class="table">
<thead>
<tr>
<th>Unidad</th>
<th>Tipo</th>
<th>PT</th>
</tr>
</thead>
<tbody>
@foreach ($libres as $unidad)
<tr>
<td>{{$unidad->descripcion}}</td>
<td>{{$unidad->tipo()->descripcion}}</td>
<td><select name="tipo{{$unidad->id}}" class="form-control">
<option value="0">---</option>
@foreach ($tipos as $tipo)
<option value="{{$tipo->id}}"
@if ($tipo->tipo == $unidad->tipo)
selected="selected"
@endif
>{{$tipo->descripcion}}</option>
@endforeach
</select></td>
@endforeach
</tbody>
</table>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button class="form-control" type="submit">Asignar</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,52 @@
@extends('layout.base')
@section('content')
<div class="page-heading">
<h2>Editar Unidad - <a href="{{nUrl('proyectos', 'list_unidades', ['proyecto' => $unidad->proyecto()->id])}}">{{$unidad->proyecto()->descripcion}}</a> - {{$unidad->descripcion}}</h2>
</div>
<br />
<form class="form-horizontal" method="post" action="{{nUrl('unidades', 'editar', ['unidad' => $unidad->id])}}">
<div class="form-group">
<div class="col-md-2">Tipo</div>
<div class="col-md-3"><select name="tipo" class="form-control">
@foreach ($tipos as $tipo)
<option value="{{$tipo->id}}"
@if ($tipo->id == $unidad->pt)
selected="selected"
@endif
>{{ucwords($tipo->tipo()->descripcion)}} {{$tipo->abreviacion}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-2">Descripci&oacute;n</div>
<div class="col-md-3"><input name="descripcion" type="text" class="form-control" value="{{$unidad->descripcion}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Piso</div>
<div class="col-md-2"><input type="text" name="piso" class="form-control" value="{{$unidad->piso}}" /></div>
<div class="col-md-2">L&iacute;nea</div>
<div class="col-md-2"><input type="text" name="linea" class="form-control" value="{{$unidad->subtipo}}" /></div>
</div>
<div class="form-group">
<div class="col-md-2">Orientaci&oacute;n</div>
<div class="col-md-3"><select name="orientacion" class="form-control">
<option value=""
@if ("" == $unidad->orientacion)
selected="selected"
@endif
>---</option>
@foreach ($orientaciones as $orientacion)
<option value="{{$orientacion->abreviacion}}"
@if ($orientacion->abreviacion == $unidad->orientacion)
selected="selected"
@endif
>{{$orientacion->descripcion}}</option>
@endforeach
</select></div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-2"><button class="form-control" type="submit">Editar</button></div>
</div>
</form>
@endsection

View File

@ -0,0 +1,198 @@
@extends('layout.base')
@section('content')
<?php $cnt = []; $pisos = [] ?>
<div class="page-heading">
<h2>Unidades - <a href="{{nUrl('proyectos', 'show', ['proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a></h2>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>Tipo</th>
<th>Nombre</th>
<th>Abreviaci&oacute;n</th>
<th>#</th>
<th>L&iacute;neas</th>
<th>m&#0178; &Uacute;til</th>
<th>m&#0178; Terraza</th>
<th>m&#0178; Vendible</th>
<th>m&#0178; Total</th>
<th>Descripci&oacute;n</th>
<th><a href="{{nUrl('proyectos', 'add_tipo_unidad', ['proyecto' => $proyecto->id])}}"><span class="glyphicon glyphicon-plus"></span></a></th>
</tr>
</thead>
<tbody>
@foreach ($proyecto->proyectoTipoUnidades() as $tipo)
<tr class="show-unidades" data-status="closed" data-tipo="{{$tipo->id}}">
<td>{{ucwords($tipo->tipo()->descripcion)}}</td>
<td>{{$tipo->nombre}}</td>
<td>
@if ($tipo->tipologia())
{{$tipo->tipologia()->descripcion}}
@else
{{$tipo->abreviacion}}
@endif
</td>
<td>{{count($tipo->unidades())}}</td>
<td>{{$tipo->lineas()}}</td>
<td>{{format('m2', $tipo->m2 + $tipo->logia)}}</td>
<td>{{format('m2', $tipo->terraza)}}</td>
<td>{{format('m2', $tipo->m2())}}</td>
<td>{{format('m2', $tipo->m2('total'))}}</td>
<td>
@if ($tipo->tipologia())
{{$tipo->tipologia()->detalle}}
@else
{{$tipo->descripcion}}
@endif
</td>
<td><a href="{{nUrl('proyecto_tipo_unidades', 'edit', ['tipo_unidad' => $tipo->id])}}"><span class="glyphicon glyphicon-edit"></span></a></td>
</tr>
<tr class="unidades" data-tipo="{{$tipo->id}}">
<td></td>
<td colspan="8">
<table class="table table-striped">
<thead>
<tr>
<th>Descripci&oacute;n</th>
<th>#</th>
<th>Piso</th>
<th>L&iacute;nea</th>
<th>Orientaci&oacute;n</th>
<th class="text-right">
<a href="{{nUrl('proyecto_tipo_unidades', 'add_unidad', ['tipo_unidad' => $tipo->id])}}">
<span class="glyphicon glyphicon-plus"></span>
</a>
</th>
</tr>
</thead>
<tbody>
<?php $subtipo = '' ?>
@foreach ($tipo->unidades() as $unidad)
@if ($subtipo != $unidad->subtipo)
<?php $subtipo = $unidad->subtipo; $cnt[$tipo->nombre."-".$subtipo] = 0; $pisos[$tipo->nombre."-".$subtipo] = [] ?>
<tr data-id="{{$tipo->nombre}}-{{$subtipo}}" data-status="closed" class="subtipo">
<th>L&iacute;nea {{$subtipo}}</th>
<th class="cantidad_subtipo" data-subtipo="{{$tipo->nombre}}-{{$subtipo}}"></th>
<th class="pisos_subtipo" data-subtipo="{{$tipo->nombre}}-{{$subtipo}}"></th>
<th>{{$subtipo}}</th>
<th>{{$unidad->orientacion}}</th>
</tr>
@endif
<tr>
<td>{{$unidad->descripcion}}</td>
<td>{{$unidad->piso}}</td>
<td>{{$unidad->subtipo}}</td>
<td>{{$unidad->orientacion}}</td>
<td class="text-right">
<a href="{{nUrl('unidades', 'edit', ['unidad' => $unidad->id])}}"><span class="glyphicon glyphicon-edit"></span></a>
<a href="{{nUrl('unidades', 'remove', ['unidad' => $unidad->id, 'proyecto' => $proyecto->id])}}"><span class="glyphicon glyphicon-remove"></span></a>
</td>
</tr>
<?php
if ($subtipo != '') {
$cnt[$tipo->nombre."-".$subtipo] ++;
$pisos[$tipo->nombre."-".$subtipo] []= $unidad->piso;
}
?>
@endforeach
</tbody>
</table>
</td>
</tr>
@endforeach
@if (count($libres) > 0)
<tr class="show-unidades" data-status="closed" data-tipo="libres">
<td>Libres</td>
<td colspan="5"></td>
<td><a href="{{nUrl('proyecto_tipo_unidades', 'assign', ['proyecto' => $proyecto->id])}}"><span class="glyphicon glyphicon-chevron-right"></span></a></td>
</tr>
<tr class="unidades" data-tipo="libres">
<td></td>
<td colspan="7">
<table class="table table-striped">
<thead>
<tr>
<th>Descripci&oacute;n</th>
<th>Piso</th>
<th>L&iacute;nea</th>
<th>Orientaci&oacute;n</th>
<th>Valor</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach ($libres as $unidad)
<tr>
<td>{{$unidad->descripcion}}</td>
<td>{{$unidad->piso}}</td>
<td>{{$unidad->subtipo}}</td>
<td>{{$unidad->orientacion}}</td>
<td>{{format('ufs', $unidad->valor, null, true)}}</td>
<td>
<a href="{{nUrl('unidades', 'edit', ['unidad' => $unidad->id])}}"><span class="glyphicon glyphicon-edit"></span></a>
<a href="{{nUrl('unidades', 'remove', ['unidad' => $unidad->id, 'proyecto' => $proyecto->id])}}"><span class="glyphicon glyphicon-remove"></span></a>
</td>
</tr>
@endforeach
</tbody>
</table>
</td>
</tr>
@endif
</tbody>
</table>
@endsection
@push('scripts')
<script type="text/javascript">
$(document).ready(function() {
var cnt = {
@foreach ($cnt as $subtipo => $c)
"{{$subtipo}}": {{$c}},
@endforeach
}
var pisos = {
@foreach ($pisos as $subtipo => $piso)
"{{$subtipo}}": "{{min($piso)}} - {{max($piso)}}",
@endforeach
}
console.debug(pisos)
$('.unidades').hide()
$('.cantidad_subtipo').each(function(i, el) {
var id = $(this).attr('data-subtipo')
$(this).html(cnt[id])
})
$('.pisos_subtipo').each(function(i, el) {
var id = $(this).attr('data-subtipo')
$(this).html(pisos[id])
})
$('.show-unidades').css('cursor', 'pointer').click(function(e) {
var id = $(this).attr('data-tipo')
var status = $(this).attr('data-status')
if (status == 'open') {
$(".unidades[data-tipo='" + id + "']").hide()
$(this).attr('data-status', 'closed')
} else {
$(".unidades[data-tipo='" + id + "']").show()
if ($(".unidades[data-tipo='" + id + "']").find('.subtipo').length > 0) {
$(".unidades[data-tipo='" + id + "']").find('tbody tr').hide()
$(".unidades[data-tipo='" + id + "']").find('.subtipo').show()
}
$(this).attr('data-status', 'open')
}
})
$('.subtipo').css('cursor', 'pointer').click(function(e) {
var id = $(this).attr('data-id')
var status = $(this).attr('data-status')
if (status == 'open') {
$(this).nextUntil('.subtipo').hide()
$(this).attr('data-status', 'closed')
} else {
$(this).nextUntil('.subtipo').show()
$(this).attr('data-status', 'open')
}
})
})
</script>
@endpush

View File

@ -0,0 +1,29 @@
@extends('layout.base')
@section('content')
<div class="row page-heading">
<div class="h3">
<div class="row">
<div class="col-md-6">
Unidades de Proyectos
</div>
</div>
</div>
</div>
<table class="table table-hover">
<thead>
<tr>
<th>Proyecto</th>
<th>Inmobiliaria</th>
</tr>
</thead>
<tbody>
@foreach ($proyectos as $proyecto)
<tr>
<td><a href="{{url('', ['p' => 'proyectos', 'a' => 'unidades', 'proyecto' => $proyecto->id])}}">{{$proyecto->descripcion}}</a></td>
<td>{{$proyecto->inmobiliaria()->abreviacion}}</td>
</tr>
@endforeach
</tbody>
</table>
@endsection

Some files were not shown because too many files have changed in this diff Show More