Skip to content

Commit

Permalink
arreglo tablas provedores (falta arreglar formulario/funciones)
Browse files Browse the repository at this point in the history
  • Loading branch information
Sumbex committed Dec 3, 2019
2 parents 5826d31 + 6deb93b commit 6b552fa
Show file tree
Hide file tree
Showing 51 changed files with 74,750 additions and 61,147 deletions.
68 changes: 60 additions & 8 deletions app/Cliente.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
namespace App;

use Carbon\Carbon;
use App\TipoDeudaCliente;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Validator;

Expand Down Expand Up @@ -42,7 +44,7 @@ protected function traer_cliente()
->get();
if (count($listar) > 0) {
foreach ($listar as $key) {
$key->fecha_nacimiento = Carbon::parse($key->fecha_nacimiento)->format('d-m-Y');
$key->fecha_nacimiento = Carbon::parse($key->fecha_nacimiento)->format('d-m-Y');
$key->nombres = ucwords($key->nombres);
$key->apellido_paterno = ucfirst($key->apellido_paterno);
$key->apellido_materno = ucfirst($key->apellido_materno);
Expand Down Expand Up @@ -166,7 +168,7 @@ protected function modificar_campo_cliente($request)
$modificar->rut = $request->input;

if ($modificar->save()) {
return ['estado'=>'success', 'mensaje'=>'Fecha de nacimiento actualizada.'];
return ['estado'=>'success', 'mensaje'=>'Rut del cliente actualizado.'];
} else {
return ['estado'=>'failed', 'mensaje'=>'A ocurrido un error al igreso de datos.'];
}
Expand Down Expand Up @@ -226,16 +228,66 @@ protected function modificar_campo_cliente($request)

protected function eliminar_cliente($request)
{
$eliminar=$this::find($request->id);
$eliminar->activo = 'N';

if($eliminar->save()){
{
$deudaCliente = DeudasCliente::where([
'cliente_id'=>$request->id,
'activo'=>'S'
])
->get();

if ($deudaCliente->isEmpty()) {
$eliminar = $this::find($request->id);
$eliminar->activo = 'N';

if ($eliminar->save()) {
{
return ['estado'=>'success', 'mensaje'=>'Cliente Eliminado con exito!.'];
}
return ['estado'=>'failed', 'mensaje'=>'A ocurrido un error al eliminar el cliente.'];
}
return ['estado'=>'failed', 'mensaje'=>'A ocurrido un error al eliminar el cliente.'];
}
}else{
return ['estado'=>'failed', 'mensaje'=>'No es posible eliminar a este cliente ya que tiene deudas pendientes.'];

}

}

protected function traer_clientes_deudas()
{
$listar = $this::select([
'id',
DB::raw("INITCAP(concat(nombres ,' ',
apellido_paterno ,' ',
apellido_materno))
as cliente_deuda")
])
->where('activo', 'S')
->get();

if (count($listar) > 0) {
return $listar;
}else{
return "no hay clientes para mostrar";
}


}

protected function traer_tipo_deuda()
{
$listar = TipoDeudaCliente::select([
'id',
'tipo'
])
->where('activo','S')
->get();

if(count($listar) > 0){
return $listar;
}else{
return ("no hay datos para mostrar");
}

}

}
190 changes: 190 additions & 0 deletions app/DeudasCliente.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
<?php

namespace App;

use Carbon\Carbon;
use App\Cliente;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Validator;


class DeudasCliente extends Model
{
protected $table = 'deudas_cliente';


public function validar_datos_cliente_deudas($datos)
{
$validator = Validator::make(
$datos->all(),
[
'cliente_id' => 'required',
'tipo_deuda_id' => 'required',
'monto' => 'required|min:1|max:50',
'descripcion' => 'required|min:3|max:500',
'fecha' => 'required',
],
[
'cliente_id.required' => 'Debe selecionar un Cliente',
'tipo_deuda_id.required' => 'Debe seleccionar un tipo de deuda',
'monto.required' => 'El monto es necesario',
'monto.min' => 'El monto debe tener un minimo de 1 caracter.',
'monto.max' => 'El monto no puede tener más de 50 caracteres.',
'descripcion.required' => 'La descripcion es necesaria',
'descripcion.min' => 'La descripcion debe tener un minimo de 3 caracteres.',
'descripcion.max' => 'La descripcion no puede tener más de 500 caracteres.',
'fecha.required' => 'La fecha es necesaria',


]
);


if ($validator->fails()) {
return ['estado' => 'failed_v', 'mensaje' => $validator->errors()];
}
return ['estado' => 'success', 'mensaje' => 'success'];
}

protected function registro_cliente_deudas($datos)
{
$validarDatos = $this->validar_datos_cliente_deudas($datos);

if ($validarDatos['estado'] == 'success') {
$r = $this;
$r->cliente_id = $datos->cliente_id;
$r->tipo_deuda_id = $datos->tipo_deuda_id;
$r->monto=$datos->monto;
$r->descripcion=$datos->descripcion;
$r->fecha=$datos->fecha;
$r->activo='S';

if ($r->save()) {
return ['estado'=>'success', 'mensaje'=>'Deuda de cliente guardado con exito.'];
} else {
return ['estado'=>'failed', 'mensaje'=>'A ocurrido un error, verifique que los campos esten correctos'];

}
}

return $validarDatos;

}

protected function buscar_cliente($rut)
{
$limpiar = $this->limpiarRut($rut);
$verificar = $this->validarRut($limpiar);
if ($verificar == true) {
$listar = Cliente::select([
'id',
'rut',
DB::raw("INITCAP(concat(nombres ,' ',
apellido_paterno ,' ',
apellido_materno))
as cliente_deuda")

])
->where([
'activo'=>'S',
'rut'=>$limpiar
])
->get();

if(!$listar->isEmpty()){

return ['estado'=>'success' , 'cliente' => $listar[0]];
}
else{
return ['estado'=>'failed', 'mensaje'=>'El rut ingresado no existe en nuestros registros.'];
}

}else{
return ['estado'=>'failed', 'mensaje'=>'El rut ingresado no es valido.'];
}

}

protected function deudas_cliente($id){

$listar = DeudasCliente::select([
'deudas_cliente.id',
'deudas_cliente.monto',
'deudas_cliente.descripcion',
'deudas_cliente.fecha',
'tdc.tipo',
])
->join('tipo_deuda_cliente as tdc','tdc.id','deudas_cliente.tipo_deuda_id')
->orderBy('fecha','asc')
->where([
'deudas_cliente.activo'=>'S',
'deudas_cliente.cliente_id' =>$id
])
->get();

if (count($listar) > 0) {
foreach ($listar as $key) {
$key->fecha = Carbon::parse($key->fecha)->format('d-m-Y');
}
}
if(!$listar->isEmpty()){
return ['estado'=>'success' , 'cliente' => $listar];
}else{
return ['estado'=>'failed', 'mensaje'=>'El cliente no posee deudas vigentes.'];
}
}

protected function validarRut($rut)
{
try {
$rut = preg_replace('/[^k0-9]/i', '', $rut);
$dv = substr($rut, -1);
$numero = substr($rut, 0, strlen($rut) - 1);
$i = 2;
$suma = 0;
foreach (array_reverse(str_split($numero)) as $v) {
if ($i == 8)
$i = 2;
$suma += $v * $i;
++$i;
}
$dvr = 11 - ($suma % 11);

if ($dvr == 11)
$dvr = 0;
if ($dvr == 10)
$dvr = 'K';
if ($dvr == strtoupper($dv))
return true;
else
return false;
} catch (\Exception $e) {
return false;
}
}

protected function limpiarRut($rut)
{
$rut = str_replace('á', 'a', $rut);
$rut = str_replace('Á', 'A', $rut);
$rut = str_replace('é', 'e', $rut);
$rut = str_replace('É', 'E', $rut);
$rut = str_replace('í', 'i', $rut);
$rut = str_replace('Í', 'I', $rut);
$rut = str_replace('ó', 'o', $rut);
$rut = str_replace('Ó', 'O', $rut);
$rut = str_replace('Ú', 'U', $rut);
$rut = str_replace('ú', 'u', $rut);

//Quitando Caracteres Especiales
$rut = str_replace('"', '', $rut);
$rut = str_replace(':', '', $rut);
$rut = str_replace('.', '', $rut);
$rut = str_replace(',', '', $rut);
$rut = str_replace(';', '', $rut);
$rut = str_replace('-', '', $rut);
return $rut;
}

}
20 changes: 20 additions & 0 deletions app/Http/Controllers/ClienteController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Http\Controllers;

use App\Cliente;
use App\DeudasCliente;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

Expand Down Expand Up @@ -77,4 +78,23 @@ public function actualizar_campo_cliente(Request $datos){
public function eliminar_cliente(Request $datos){
return Cliente::eliminar_cliente($datos);
}

public function traer_clientes_deudas(){
return Cliente::traer_clientes_deudas();
}

public function traer_tipo_deuda(){
return Cliente::traer_tipo_deuda();
}

public function registro_cliente_deudas(Request $datos){
return DeudasCliente::registro_cliente_deudas($datos);
}

public function buscar_cliente($rut){
return DeudasCliente::buscar_cliente($rut);
}
public function deudas_cliente($id){
return DeudasCliente::deudas_cliente($id);
}
}
Loading

0 comments on commit 6b552fa

Please sign in to comment.