Top Ad unit 728 × 90

Recientes

recent

Diseño Sistema web PHP con laravel y Mysql (20-36) Controlador: Venta (2)

Continuamos en este videocurso para diseñar un sistema web en el lenguaje de programación PHP con el framework Laravel utilizando como gestor de base de datos MySql.
En este capítulo implementaremos un controlador para gestionar los métodos referentes a la tabla Ingreso y sus detalles, en este controlador estarán las funciones de listado, creación y edición de registros de compras o ingresos almacén.

Puedes descargar el código fuente y el curso completo (45 videos) desde:
http://www.incanatoit.com/2016/11/codigo-sistema-compras-ventas-laravel-mysql-jquery-bootstrap.html

Muchas gracias por seguirme en mi canal de youtube, bendiciones desde Chiclayo - Perú.
Puedes revisar todo el curso en mi canal de youtube www.youtube.com/jcarlosad7 desde:
https://www.youtube.com/playlist?list=PLZPrWDz1MolrxS1uw-u7PrnK66DCFmhDR

Puedes descargar la base de datos y la plantilla desde el siguiente enlace:
https://drive.google.com/open?id=0B4TQqfBO_oQ1MXhVT2FoOWlpOFE

Puedes ver el código inicial en github en la siguiente dirección:
https://github.com/jcarlosad7/crudLaravelTutorial

Revisa la documentación de laravel 5.2
https://laravel.com/docs/5.2

Código fuente del Controlador: IngresoController.php


namespace sisVentas\Http\Controllers;

use Illuminate\Http\Request;

use sisVentas\Http\Requests;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Input;
use sisVentas\Http\Requests\IngresoFormRequest;
use sisVentas\Ingreso;
use sisVentas\DetalleIngreso;
use DB;

use Carbon\Carbon;
use Response;
use Illuminate\Support\Collection;

class IngresoController extends Controller
{
     public function __construct()
    {

    }
    public function index(Request $request)
    {
        if ($request)
        {
           $query=trim($request->get('searchText'));
           $ingresos=DB::table('ingreso as i')
            ->join('persona as p','i.idproveedor','=','p.idpersona')
            ->join('detalle_ingreso as di','i.idingreso','=','di.idingreso')
            ->select('i.idingreso','i.fecha_hora','p.nombre','i.tipo_comprobante','i.serie_comprobante','i.num_comprobante','i.impuesto','i.estado',DB::raw('sum(di.cantidad*precio_compra) as total'))
            ->where('i.num_comprobante','LIKE','%'.$query.'%')
            ->orderBy('i.idingreso','desc')
            ->groupBy('i.idingreso','i.fecha_hora','p.nombre','i.tipo_comprobante','i.serie_comprobante','i.num_comprobante','i.impuesto','i.estado')
            ->paginate(7);
            return view('compras.ingreso.index',["ingresos"=>$ingresos,"searchText"=>$query]);

        }
    }
    public function create()
    {
     $personas=DB::table('persona')->where('tipo_persona','=','Proveedor')->get();
     $articulos = DB::table('articulo as art')
            ->select(DB::raw('CONCAT(art.codigo, " ",art.nombre) AS articulo'),'art.idarticulo')
            ->where('art.estado','=','Activo')
            ->get();
        return view("compras.ingreso.create",["personas"=>$personas,"articulos"=>$articulos]);
    }

     public function store (IngresoFormRequest $request)
    {
     try{
         DB::beginTransaction();
         $ingreso=new Ingreso;
         $ingreso->idproveedor=$request->get('idproveedor');
         $ingreso->tipo_comprobante=$request->get('tipo_comprobante');
         $ingreso->serie_comprobante=$request->get('serie_comprobante');
         $ingreso->num_comprobante=$request->get('num_comprobante');
         
         $mytime = Carbon::now('America/Lima');
         $ingreso->fecha_hora=$mytime->toDateTimeString();
         $ingreso->impuesto='18';
         $ingreso->estado='A';
         $ingreso->save();

         $idarticulo = $request->get('idarticulo');
         $cantidad = $request->get('cantidad');
         $precio_compra = $request->get('precio_compra');
         $precio_venta = $request->get('precio_venta');

         $cont = 0;

         while($cont < count($idarticulo)){
             $detalle = new DetalleIngreso();
             $detalle->idingreso= $ingreso->idingreso; 
             $detalle->idarticulo= $idarticulo[$cont];
             $detalle->cantidad= $cantidad[$cont];
             $detalle->precio_compra= $precio_compra[$cont];
             $detalle->precio_venta= $precio_venta[$cont];
             $detalle->save();
             $cont=$cont+1;            
         }

         DB::commit();

        }catch(\Exception $e)
        {
           DB::rollback();
        }

        return Redirect::to('compras/ingreso');
    }

    public function show($id)
    {
     $ingreso=DB::table('ingreso as i')
            ->join('persona as p','i.idproveedor','=','p.idpersona')
            ->join('detalle_ingreso as di','i.idingreso','=','di.idingreso')
            ->select('i.idingreso','i.fecha_hora','p.nombre','i.tipo_comprobante','i.serie_comprobante','i.num_comprobante','i.impuesto','i.estado',DB::raw('sum(di.cantidad*precio_compra) as total'))
            ->where('i.idingreso','=',$id)
            ->first();

        $detalles=DB::table('detalle_ingreso as d')
             ->join('articulo as a','d.idarticulo','=','a.idarticulo')
             ->select('a.nombre as articulo','d.cantidad','d.precio_compra','d.precio_venta')
             ->where('d.idingreso','=',$id)
             ->get();
        return view("compras.ingreso.show",["ingreso"=>$ingreso,"detalles"=>$detalles]);
    }

    public function destroy($id)
    {
     $ingreso=Ingreso::findOrFail($id);
        $ingreso->Estado='C';
        $ingreso->update();
        return Redirect::to('compras/ingreso');
    }
}
Video 20: Sistema web PHP con laravel y Mysql  (20-36) Controlador: Ingreso (Compras Almacén)

Saludos Imperio, un abrazo a la distancia!

Diseño Sistema web PHP con laravel y Mysql (20-36) Controlador: Venta (2) Reviewed by Juan Carlos Arcila Díaz on 19:04 Rating: 5

No hay comentarios:

All Rights Reserved by www.IncanatoIT.com - Desarrollando Software © 2014 - 2015
Powered By Blogger, Designed by Sweetheme

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

IncanatoIt.com. Con la tecnología de Blogger.