<commit_before><?php
namespace Application\Catalogo\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Console\Request as ConsoleRequest;

class ProductoController extends AbstractActionController
{
    
    public function renameproductAction(){
        
        $session = new \Shared\Session\AouthSession();
        $session = $session->getData();
        
        $request = $this->getRequest();
        if($request->isPost()){
            $post_data = $request->getPost();
            
            $exist = \ProductoQuery::create()->filterByIdempresa($session['idempresa'])->filterByProductoNombre($post_data['product_name'])->exists();
            
            //SI NO EXISTE EL PRODUCTO
            if(!$exist){
                
                $categoria = \CategoriaQuery::create()->filterByCategoriaNombre($post_data["producto"]['categoria_nombre'])->findOne();
                $subcategoria = \CategoriaQuery::create()->filterByCategoriaNombre($post_data["producto"]['categoria_nombre_sub'])->findOne();
                $unidad = \UnidadmedidaQuery::create()->filterByUnidadmedidaNombre($post_data["producto"]['producto_unidad'])->findOne();
                
                $producto = new \Producto();
                $producto->setIdempresa($session['idempresa'])
                         ->setIdcategoria($categoria->getIdcategoria())
                         ->setIdunidadmedida($unidad->getIdunidadmedida())
                         ->setIdsubcategoria($subcategoria->getIdcategoria())
                         ->setProductoBaja($post_data["producto"]['producto_baja'])
                         ->setProductoCosto($post_data["producto"]['producto_costo'])
                         ->setProductoIva($post_data["producto"]['producto_iva'])
                         ->setProductoNombre($post_data['product_name'])
                         ->setProductoPrecio($post_data["producto"]['producto_precio'])
                         ->setProductoRendimientooriginal($post_data["producto"]['producto_rendimientooriginal'])
                        ->setProductoRendimiento($post_data['producto_rendimiento'])
                         ->setProductoTipo($post_data["producto"]['producto_tipo'])
                         ->save();
                
                return $this->getResponse()->setContent(json_encode(array('response' => true)));
                
                
            }else{
                return $this->getResponse()->setContent(json_encode(array('response' => false)));
            }
        }
        
    }
    public function validateproductAction(){
        $session = new \Shared\Session\AouthSession();
        $session = $session->getData();
        
        $request = $this->getRequest();
        if($request->isPost()){
            $post_data = $request->getPost();
            
            $exist = \ProductoQuery::create()->filterByIdempresa($session['idempresa'])->filterByProductoNombre($post_data['producto_nombre'])->exists();
            
            //SI NO EXISTE EL PRODUCTO
            if(!$exist){
                
                $categoria = \CategoriaQuery::create()->filterByCategoriaNombre($post_data['categoria_nombre'])->findOne();
                $subcategoria = \CategoriaQuery::create()->filterByCategoriaNombre($post_data['categoria_nombre_sub'])->findOne();
                $unidad = \UnidadmedidaQuery::create()->filterByUnidadmedidaNombre($post_data['producto_unidad'])->findOne();
                $producto = new \Producto();
                $producto->setIdempresa($session['idempresa'])
                         ->setIdcategoria($categoria->getIdcategoria())
                         ->setIdunidadmedida($unidad->getIdunidadmedida())
                         ->setIdsubcategoria($subcategoria->getIdcategoria())
                         ->setProductoBaja($post_data['producto_baja'])
                         ->setProductoCosto($post_data['producto_costo'])
                         ->setProductoIva($post_data['producto_iva'])
                         ->setProductoNombre($post_data['producto_nombre'])
                         ->setProductoPrecio($post_data['producto_precio'])
                         ->setProductoRendimientooriginal($post_data['producto_rendimientooriginal'])
                        ->setProductoRendimiento($post_data['producto_rendimiento'])
                         ->setProductoTipo($post_data['producto_tipo'])
                         ->save();
                
                return $this->getResponse()->setContent(json_encode(array('response' => true)));
                
                
            }else{
                $producto = \ProductoQuery::create()->filterByIdempresa($session['idempresa'])->filterByProductoNombre($post_data['producto_nombre'])->findOne();
                return $this->getResponse()->setContent(json_encode(array('response' => false, 'data' => $producto->toArray(\BasePeer::TYPE_FIELDNAME))));
            }
            
           
            
        }
    }
    
    public function indexAction()
    {
        //CARGAMOS LA SESSION PARA HACER VALIDACIONES
        $session = new \Shared\Session\AouthSession();
        $session = $session->getData();
        
        
      
        //OBTENEMOS LA COLECCION DE REGISTROS DE ACUERDO A SU ROL
       
        $emp = \EmpresaQuery::create()->findPk($session['idempresa']);

        $productos = \ProductoQuery::create()->filterByIdempresa($session['idempresa'])->find();
        
         
        //INTANCIAMOS NUESTRA VISTA
        $view_model = new ViewModel();
        $view_model->setTemplate('/application/catalogo/producto/index');
        $view_model->setVariables(array(
            'messages' => $this->flashMessenger(),
            'productos' => $productos,
            'empresa_habilitarrecetas' => $emp->getEmpresaHabilitarrecetas(),
            'empresa_habilitarproductos' => $emp->getEmpresaHabilitarproductos(),
        ));
        return $view_model;

    }
    
    public function nuevoAction()
    {
        

        
        
        $request = $this->getRequest();
        
        $categorias = array();
        $subcategorias = array();
        
        $cats   = \CategoriaQuery::create()->filterByIdcategoriapadre(null)->find();
        $subcategorias = \CategoriaQuery::create()->filterByIdcategoriapadre(1)->find();
        $subcategorias = \Shared\GeneralFunctions::collectionToSelectArray($subcategorias, 'idcategoria', 'categoria_nombre');
        
        //Crear arreglo de datos para formulario en campo categorias
        foreach ($cats as $item)
            $categorias[$item->getIdCategoria()] = $item->getCategorianombre();
        

        $form = new \Application\Catalogo\Form\ProductosForm($categorias,$subcategorias);
      
        if ($request->isPost()) 
        {
            $session = new \Shared\Session\AouthSession();
            $session = $session->getData();
            
            $post_data = $request->getPost();<commit_msg>bug en productos - nuevo<commit_after><?php
namespace Application\Catalogo\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Console\Request as ConsoleRequest;

class ProductoController extends AbstractActionController
{
    
    public function renameproductAction(){
        
        $session = new \Shared\Session\AouthSession();
        $session = $session->getData();
        
        $request = $this->getRequest();
        if($request->isPost()){
            $post_data = $request->getPost();
            
            $exist = \ProductoQuery::create()->filterByIdempresa($session['idempresa'])->filterByProductoNombre($post_data['product_name'])->exists();
            
            //SI NO EXISTE EL PRODUCTO
            if(!$exist){
                
                $categoria = \CategoriaQuery::create()->filterByCategoriaNombre($post_data["producto"]['categoria_nombre'])->findOne();
                $subcategoria = \CategoriaQuery::create()->filterByCategoriaNombre($post_data["producto"]['categoria_nombre_sub'])->findOne();
                $unidad = \UnidadmedidaQuery::create()->filterByUnidadmedidaNombre($post_data["producto"]['producto_unidad'])->findOne();
                
                $producto = new \Producto();
                $producto->setIdempresa($session['idempresa'])
                         ->setIdcategoria($categoria->getIdcategoria())
                         ->setIdunidadmedida($unidad->getIdunidadmedida())
                         ->setIdsubcategoria($subcategoria->getIdcategoria())
                         ->setProductoBaja($post_data["producto"]['producto_baja'])
                         ->setProductoCosto($post_data["producto"]['producto_costo'])
                         ->setProductoIva($post_data["producto"]['producto_iva'])
                         ->setProductoNombre($post_data['product_name'])
                         ->setProductoPrecio($post_data["producto"]['producto_precio'])
                         ->setProductoRendimientooriginal($post_data["producto"]['producto_rendimientooriginal'])
                        ->setProductoRendimiento($post_data['producto_rendimiento'])
                         ->setProductoTipo($post_data["producto"]['producto_tipo'])
                         ->save();
                
                return $this->getResponse()->setContent(json_encode(array('response' => true)));
                
                
            }else{
                return $this->getResponse()->setContent(json_encode(array('response' => false)));
            }
        }
        
    }
    public function validateproductAction(){
        $session = new \Shared\Session\AouthSession();
        $session = $session->getData();
        
        $request = $this->getRequest();
        if($request->isPost()){
            $post_data = $request->getPost();
            
            $exist = \ProductoQuery::create()->filterByIdempresa($session['idempresa'])->filterByProductoNombre($post_data['producto_nombre'])->exists();
            
            //SI NO EXISTE EL PRODUCTO
            if(!$exist){
                
                $categoria = \CategoriaQuery::create()->filterByCategoriaNombre($post_data['categoria_nombre'])->findOne();
                $subcategoria = \CategoriaQuery::create()->filterByCategoriaNombre($post_data['categoria_nombre_sub'])->findOne();
                $unidad = \UnidadmedidaQuery::create()->filterByUnidadmedidaNombre($post_data['producto_unidad'])->findOne();
                $producto = new \Producto();
                $producto->setIdempresa($session['idempresa'])
                         ->setIdcategoria($categoria->getIdcategoria())
                         ->setIdunidadmedida($unidad->getIdunidadmedida())
                         ->setIdsubcategoria($subcategoria->getIdcategoria())
                         ->setProductoBaja($post_data['producto_baja'])
                         ->setProductoCosto($post_data['producto_costo'])
                         ->setProductoIva($post_data['producto_iva'])
                         ->setProductoNombre($post_data['producto_nombre'])
                         ->setProductoPrecio($post_data['producto_precio'])
                         ->setProductoRendimientooriginal($post_data['producto_rendimientooriginal'])
                        ->setProductoRendimiento($post_data['producto_rendimiento'])
                         ->setProductoTipo($post_data['producto_tipo'])
                         ->save();
                
                return $this->getResponse()->setContent(json_encode(array('response' => true)));
                
                
            }else{
                $producto = \ProductoQuery::create()->filterByIdempresa($session['idempresa'])->filterByProductoNombre($post_data['producto_nombre'])->findOne();
                return $this->getResponse()->setContent(json_encode(array('response' => false, 'data' => $producto->toArray(\BasePeer::TYPE_FIELDNAME))));
            }
            
           
            
        }
    }
    
    public function indexAction()
    {
        //CARGAMOS LA SESSION PARA HACER VALIDACIONES
        $session = new \Shared\Session\AouthSession();
        $session = $session->getData();
        
        
      
        //OBTENEMOS LA COLECCION DE REGISTROS DE ACUERDO A SU ROL
       
        $emp = \EmpresaQuery::create()->findPk($session['idempresa']);

        $productos = \ProductoQuery::create()->filterByIdempresa($session['idempresa'])->find();
        
         
        //INTANCIAMOS NUESTRA VISTA
        $view_model = new ViewModel();
        $view_model->setTemplate('/application/catalogo/producto/index');
        $view_model->setVariables(array(
            'messages' => $this->flashMessenger(),
            'productos' => $productos,
            'empresa_habilitarrecetas' => $emp->getEmpresaHabilitarrecetas(),
            'empresa_habilitarproductos' => $emp->getEmpresaHabilitarproductos(),
        ));
        return $view_model;

    }
    
    public function nuevoAction()
    {
        

        
        
        $request = $this->getRequest();
        
        $categorias = array();
        $subcategorias = array();
        
        $cats   = \CategoriaQuery::create()->filterByIdcategoriapadre(null)->find();
        $subcategorias = \CategoriaQuery::create()->filterByIdcategoriapadre(1)->find();
        $subcategorias = \Shared\GeneralFunctions::collectionToSelectArray($subcategorias, 'idcategoria', 'categoria_nombre');
        
        //Crear arreglo de datos para formulario en campo categorias
        foreach ($cats as $item)
            $categorias[$item->getIdCategoria()] = $item->getCategorianombre();
        
        $form = new \Application\Catalogo\Form\ProductosForm($categorias,$subcategorias);
      
        if ($request->isPost()) 
        {
            $session = new \Shared\Session\AouthSession();
            $session = $session->getData();
            
            $post_data = $request->getPost();
{'fraction_non_alphanumeric': 0.13776671408250354, 'fraction_numerical': 0.0001422475106685633, 'mean_word_length': 2.150571364552991, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 199, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3021861', 'n_tokens_mistral': 3893, 'n_tokens_neox': 3856, 'n_words': 420}