<?php 

class ControladorProductos {

    /** MOSTRAR PRODUCTOS */

    static public function ctrMostrarProductos($item, $valor){
        
        $tabla = "productos";

		$respuesta = ModeloProductos::mdlMostrarProductos($tabla, $item, $valor);

		return $respuesta;
    }

	static public function ctrMostrarAlmacenes($item, $valor){
        
        $tabla = "almacen";

		$respuesta = ModeloProductos::mdlMostrarAlmacen($tabla, $item, $valor);

		return $respuesta;
    }

	static public function ctrMostrarVentasProductos($item, $valor){
        
        $tabla = "productos";

		$respuesta = ModeloProductos::mdlMostrarVentasProductos($tabla, $item, $valor);

		return $respuesta;
    }

	  /** MOSTRAR PRODUCTOS */

	  static public function ctrMostrarProductos1($item, $valor, $orden){

		$tabla = "productos";

		$respuesta = ModeloProductos::mdlMostrarProductos1($tabla, $item, $valor, $orden);

		return $respuesta;

	}
    /** CREAR PRODUCTO */
    static public function ctrCrearProducto(){
        if (isset($_POST["nuevaDescripcion"])) {
            if (preg_match('/[a-zA-Z0-9 ]/', $_POST["nuevaDescripcion"]) &&
                preg_match('/^[0-9]+$/', $_POST["nuevoStock"]) &&
                preg_match('/^[0-9.]+$/', $_POST["nuevoCosto"]) &&
                preg_match('/^[0-9.]+$/', $_POST["nuevoPrecioVenta"])) {
				$ruta = "vistas/dist/img/productos/anonymous.jpg";
				if(!empty($_FILES["nuevaImagen"]["tmp_name"])){
					list($ancho, $alto) = getimagesize($_FILES["nuevaImagen"]["tmp_name"]);
					$nuevoAncho = 500;
					$nuevoAlto = 500;
					/*=============================================
					CREAMOS EL DIRECTORIO DONDE VAMOS A GUARDAR LA FOTO DEL PRODUCTO
					=============================================*/
					$directorio = "vistas/dist/img/productos/".$_POST["nuevoCodigo"];
					mkdir($directorio, 0755);
					/*=============================================
					DE ACUERDO AL TIPO DE IMAGEN APLICAMOS LAS FUNCIONES POR DEFECTO DE PHP
					=============================================*/
					if($_FILES["nuevaImagen"]["type"] == "image/jpeg"){
						/*=============================================
						GUARDAMOS LA IMAGEN EN EL DIRECTORIO
						=============================================*/
						$aleatorio = mt_rand(100,999);
						$ruta = $directorio."/".$aleatorio.".jpg";
						$origen = imagecreatefromjpeg($_FILES["nuevaImagen"]["tmp_name"]);						
						$destino = imagecreatetruecolor($nuevoAncho, $nuevoAlto);
						imagecopyresized($destino, $origen, 0, 0, 0, 0, $nuevoAncho, $nuevoAlto, $ancho, $alto);
						imagejpeg($destino, $ruta);
					}
					if($_FILES["nuevaImagen"]["type"] == "image/png"){
						/*=============================================
						GUARDAMOS LA IMAGEN EN EL DIRECTORIO
						=============================================*/
						$aleatorio = mt_rand(100,999);
						$ruta = $directorio."/".$aleatorio.".png";
						$origen = imagecreatefrompng($_FILES["nuevaImagen"]["tmp_name"]);						
						$destino = imagecreatetruecolor($nuevoAncho, $nuevoAlto);
						imagecopyresized($destino, $origen, 0, 0, 0, 0, $nuevoAncho, $nuevoAlto, $ancho, $alto);
						imagepng($destino, $ruta);
					}
				}else {
					$ruta = "vistas/dist/img/productos/anonymous.jpg";
					$directorio = "vistas/dist/img/productos/".$_POST["nuevoCodigo"];
					mkdir($directorio, 0755);
				}
					date_default_timezone_set("America/Lima");
					$fechaActual = date('Y-m-d');
					$tabla = "productos";
                    $estado = 1;
					$costo = $_POST["nuevoCosto"];
					$costo = round($costo,2);
					$menor = $_POST["nuevoPrecioVenta"];
					$menor = round($menor,3);


                    $codigo = $_POST["nuevoCodigo"];
					$existe = ModeloProductos::mdlExisteProducto($tabla, $codigo);

					if ($existe) {
						echo '<script>
							swal({
								type: "error",
								title: "¡El código ya está registrado!",
								showConfirmButton: true,
								confirmButtonText: "Cerrar"
							}).then(function(result){
								if(result.value){
									window.location = "productos";
								}
							});
						</script>';
					} else {
						$datos = array(
							"id_categoria" => $_POST["nuevaCategoria"],
							"id_marca" => $_POST["nuevaMarca"],
							"id_unidad" => $_POST["nuevaUnidad"],
							"codigo" => $codigo,
							"descripcion" => $_POST["nuevaDescripcion"],
							"stock_fisico" => $_POST["nuevoStock"],
							"sucursal_id" => $_POST["nuevoSucursal"],
							"precio_compra_promedio" => $costo,
							"porcentaje_menor" => $_POST["porcentaje2"],
							"precio_venta_sugerido" => $menor,
							"estado" => $estado,
							"fecha_ingreso" => $fechaActual,
							"fecha_vencimiento" => $_POST["fecha_caducidad"],
							"imagen" => $ruta
						);

						$respuesta = ModeloProductos::mdlIngresarProducto($tabla, $datos);

						if ($respuesta == "ok") {
							echo '<script>
								swal({
									type: "success",
									title: "¡El Producto ha sido guardado correctamente!",
									showConfirmButton: true,
									confirmButtonText: "Cerrar"
								}).then(function(result){
									if(result.value){
										window.location = "productos";
									}
								});
							</script>';
						}
					}
	
                
            }else {

                echo '<script>

					swal({

						type: "error",
						title: "El producto no puede ir vacío o llevar caracteres especiales!",
						showConfirmButton: true,
						confirmButtonText: "Cerrar"

					}).then(function(result){

						if(result.value){
						
							window.location = "productos";

						}

					});
				

				</script>';
            }
        }
    }

	    /** EDITAR PRODUCTO */

		static public function ctrEditarProducto(){
			if (isset($_POST["editarDescripcion"])) {	
				if (preg_match('/[a-zA-Z0-9 ]/', $_POST["editarDescripcion"]) &&
					preg_match('/^[0-9.]+$/', $_POST["editarStock"]) &&
					preg_match('/^[0-9.]+$/', $_POST["editarCosto"]) &&
					preg_match('/^[0-9.]+$/', $_POST["editarPrecioVenta"])) {	
					/*=============================================
					VALIDAR IMAGEN
					=============================================*/	
					$ruta = $_POST["imagenActual"];
						if(isset($_FILES["editarImagen"]["tmp_name"]) && !empty($_FILES["editarImagen"]["tmp_name"])){
							list($ancho, $alto) = getimagesize($_FILES["editarImagen"]["tmp_name"]);
							$nuevoAncho = 500;
							$nuevoAlto = 500;
							/*=============================================
							CREAMOS EL DIRECTORIO DONDE VAMOS A GUARDAR LA FOTO DEL PRODUCTO
							=============================================*/		
							$directorio = "vistas/dist/img/productos/".$_POST["editarCodigo"];
								/*=============================================
								PREGUNTAMOS SI EXISTE OTRA IMAGEN EN LA BD
								=============================================*/
								if (!empty($_POST["imagenActual"])) {
									
									unlink($_POST["imagenActual"]);
								}else{

									mkdir($directorio, 0755);
								}
							/*=============================================
							DE ACUERDO AL TIPO DE IMAGEN APLICAMOS LAS FUNCIONES POR DEFECTO DE PHP
							=============================================*/	
								if($_FILES["editarImagen"]["type"] == "image/jpeg"){			
									/*=============================================
									GUARDAMOS LA IMAGEN EN EL DIRECTORIO
									=============================================*/		
									$aleatorio = mt_rand(100,999);		
									$ruta = $directorio."/".$aleatorio.".jpg";			
									$origen = imagecreatefromjpeg($_FILES["editarImagen"]["tmp_name"]);								
									$destino = imagecreatetruecolor($nuevoAncho, $nuevoAlto);		
									imagecopyresized($destino, $origen, 0, 0, 0, 0, $nuevoAncho, $nuevoAlto, $ancho, $alto);		
									imagejpeg($destino, $ruta);			
								}		
								if($_FILES["editarImagen"]["type"] == "image/png"){			
									/*=============================================
									GUARDAMOS LA IMAGEN EN EL DIRECTORIO
									=============================================*/			
									$aleatorio = mt_rand(100,999);			
									$ruta = $directorio."/".$aleatorio.".png";		
									$origen = imagecreatefrompng($_FILES["editarImagen"]["tmp_name"]);									
									$destino = imagecreatetruecolor($nuevoAncho, $nuevoAlto);	
									imagecopyresized($destino, $origen, 0, 0, 0, 0, $nuevoAncho, $nuevoAlto, $ancho, $alto);		
									imagepng($destino, $ruta);		
								}	
						}
					
						$tabla = "productos";
						$estado = $_POST["estado"];
						$costo = $_POST["editarCosto"];
						$costo = round($costo,2);
						$menor = $_POST["editarPrecioVenta"]; 
						$menor = round($menor,3);					
	
						$datos = array("id_categoria" => $_POST["editarCategoria"],
									"id_marca" => $_POST["editarMarca"],
									"id_unidad" => $_POST["editarUnidad"],
									"id" => $_POST["idProducto"],
									"descripcion" => $_POST["editarDescripcion"],
									"sucursal_id" => $_POST["editarSucursal"],
									"stock_fisico" => $_POST["editarStock"],
									"precio_compra_promedio" => $costo,
									"porcentaje_menor" => $_POST["editarPorcentaje2"],
									"precio_venta_sugerido" => $menor,
									"estado" => $estado,
									"fecha_vencimiento" => $_POST["fecha_caducidad1"],
									"imagen" => $ruta);
									
						$respuesta = ModeloProductos::mdlEditarProducto($tabla, $datos);
						if($respuesta == "ok"){
							echo '<script>
									swal({
										type: "success",
										title: "¡El Producto ha sido editado correctamente!",
										showConfirmButton: true,
										confirmButtonText: "Cerrar"
									}).then(function(result){
										if(result.value){	
											window.location = "productos";
										}
									});
									</script>';
						}	
				}else {
	
					echo '<script>
	
						swal({
	
							type: "error",
							title: "El producto no puede ir vacío o llevar caracteres especiales!",
							showConfirmButton: true,
							confirmButtonText: "Cerrar"
	
						}).then(function(result){
	
							if(result.value){
							
								window.location = "productos";
	
							}
	
						});
					
	
					</script>';
				}
			}
		}
		/** ELIMINAR PRODUCTO */

		static public function ctrEliminarProducto(){
			if(isset($_GET["idProducto"])){
				$tabla = "productos";
				$datos = $_GET["idProducto"];
				if($_GET["imagen"] != "" && $_GET["imagen"] != "vistas/dist/img/productos/anonymous.jpg"){
					unlink($_GET["imagen"]);
					rmdir('vistas/dist/img/productos/'.$_GET["codigo"]);	
				}
					rmdir('vistas/dist/img/productos/'.$_GET["codigo"]);
				$respuesta = ModeloProductos::mdlEliminarProducto($tabla, $datos);
				if($respuesta == "ok"){
					echo'<script>
					swal({
						  type: "success",
						  title: "El Producto ha sido borrado correctamente",
						  showConfirmButton: true,
						  confirmButtonText: "Cerrar"
						  }).then(function(result){
									if (result.value) {
									window.location = "productos";
									}
								})
					</script>';
	
				}		
			}
		}
		/*=============================================
	MOSTRAR SUMA VENTAS
	=============================================*/

	static public function ctrMostrarSumaVentas(){

		$tabla = "productos";

		$respuesta = ModeloProductos::mdlMostrarSumaVentas($tabla);

		return $respuesta;

	}

	/*=============================================
	EDITAR VEHICULO
	=============================================*/

	static public function ctrEditarAlmacen(){

		if(isset($_POST["EditarAlmacen"])){

			if(preg_match('/[a-zA-Z0-9 ]/', $_POST["EditarAlmacen"])){

				$tabla = "almacen";


				$datos = array("descripcion" => $_POST["EditarAlmacen"],
							   	"id" => $_POST["idAlmacen"]);

				$respuesta = ModeloProductos::mdlEditarAlmacen($tabla, $datos);

				if($respuesta == "ok"){

					echo'<script>

					swal({
						  type: "success",
						  title: "Los Datos del Almacen ha sido editado correctamente",
						  showConfirmButton: true,
						  confirmButtonText: "Cerrar"
						  }).then(function(result){
									if (result.value) {

									window.location = "almacenes";
									
									}
							})

					</script>';
		
				}


			}else{

				echo'<script>

					swal({
						  type: "error",
						  title: "¡El nombre no puede ir vacío o llevar caracteres especiales!",
						  showConfirmButton: true,
						  confirmButtonText: "Cerrar"
						  }).then(function(result){
							if (result.value) {

							window.location = "almacenes";

							}
						})

			  	</script>';

			}

		}

	}

	static public function ctrCrearAlmacen(){

        if (isset($_POST["nuevoAlmacen"])) {
            if (preg_match('/^[a-zA-Z0-9ñÑáéíóúÁÉÍÓÚ ]+$/', $_POST["nuevoAlmacen"])) {
                
                $tabla = "almacen";

                $datos = $_POST["nuevoAlmacen"];

                $respuesta = ModeloProductos::mdlIngresarAlmacen($tabla, $datos);

                if ($respuesta == "ok") {

                    echo '<script>

					swal({

						type: "success",
						title: "El almacen ha sido guardado correctamente!",
						showConfirmButton: true,
						confirmButtonText: "Cerrar"

					}).then(function(result){

						if(result.value){
						
							window.location = "almacenes";

						}

					});
				

					</script>';

                }
            }else {
                echo '<script>

					swal({

						type: "error",
						title: "¡ La descripcion no puede ir vacío o llevar caracteres especiales!",
						showConfirmButton: true,
						confirmButtonText: "Cerrar"

					}).then(function(result){

						if(result.value){
						
							window.location = "almacenes";

						}

					});
				

				</script>';
            }
        }
    }

}
