Exemple #1
0
 function comprasbyarticulovarianteAction()
 {
     //Cachamos los datos de la url
     $idarticulovariante = $this->params()->fromQuery('idarticulovariante');
     $descripcion = $this->params()->fromQuery('descripcion');
     $modalName = 'modal-producto-' . $idarticulovariante . '-compras';
     $producto = array();
     $articuloVariante = \ArticulovarianteQuery::create()->findPk($idarticulovariante);
     $producto['nombre'] = $articuloVariante->getArticulo()->getArticuloNombre();
     $producto['descripcion'] = $descripcion;
     $producto['imagen'] = $articuloVariante->getArticulovarianteImagen();
     //Ahora las compras
     $compras = array();
     $compraDetalle = \OrdencompradetalleQuery::create()->filterByIdarticulovariante($idarticulovariante)->useOrdencompraQuery()->filterByIdproveedor(1, \Criteria::NOT_EQUAL)->endUse()->find();
     foreach ($compraDetalle as $kcd => $vcd) {
         $tmp = array();
         $tmp['costo'] = $vcd->getOrdencompradetalleCosto();
         $tmp['fecha'] = $vcd->getOrdencompra()->getOrdencompraFecha('d-m-Y');
         $tmp['proveedor'] = $vcd->getOrdencompra()->getProveedor()->getProveedorNombre();
         array_push($compras, $tmp);
     }
     //var_dump($this->flashMessenger()->getMessages());
     $viewModel = new ViewModel();
     $viewModel->setTerminal(true);
     $viewModel->setVariables(array('modalName' => $modalName, 'producto' => $producto, 'compras' => $compras));
     return $viewModel;
 }
 public function caducidadbylugarAction()
 {
     //Cachamos los datos de la url
     $idarticulovariante = $this->params()->fromQuery('idarticulovariante');
     $idlugar = $this->params()->fromQuery('idlugar');
     $descripcion = $this->params()->fromQuery('descripcion');
     $existencias = $this->params()->fromQuery('existencias');
     $lugarNombre = $this->params()->fromQuery('lugarNombre');
     $modalName = 'modal-producto-' . $idarticulovariante . '-lugar-' . $idlugar;
     $modal = array('nombre' => \ArticulovarianteQuery::create()->findOneByIdarticulovariante($idarticulovariante)->getArticulo()->getArticuloNombre(), 'descripcion' => $descripcion, 'caducidad' => array(), 'existencias' => $existencias, 'lugar_nombre' => $lugarNombre);
     //Obtenemos todas las ordenes de compra por idarticulovariante
     $ordenCompraDetalleCollection = \OrdencompradetalleQuery::create()->findByIdarticulovariante($idarticulovariante);
     //Comenzamos a itinerar
     foreach ($ordenCompraDetalleCollection as $kocd => $vocd) {
         $date = new \DateTime($vocd->getOrdencompradetalleCaducidad());
         $tmp['caducidad'] = $date->format('m/y');
         $tmp['id'] = $vocd->getIdOrdencompradetalle();
         //Por cada item de articulovariante revisamos su lugar en el inventrario
         $idodencompreadetalle = $vocd->getIdordencompradetalle();
         $lugarinventarioCollection = \LugarinventarioQuery::create()->filterByIdlugar($idlugar)->filterByIdordencompradetalle($idodencompreadetalle)->find();
         //Itineramos en lugarInventario
         foreach ($lugarinventarioCollection as $kli => $vli) {
             $tmp['cantidad'] = $vli->getLugarinventarioCantidad();
             $modal['caducidad'][] = $tmp;
         }
     }
     $viewModel = new ViewModel();
     $viewModel->setTerminal(true);
     $viewModel->setVariables(array('modalName' => $modalName, 'modal' => $modal));
     return $viewModel;
 }
 public function editarAction()
 {
     $request = $this->getRequest();
     //Cachamos el valor desde nuestro params
     $id = (int) $this->params()->fromRoute('id');
     //Verificamos que el Id articulo que se quiere modificar exista
     if (!ArticuloQuery::create()->filterByIdarticulo($id)->exists()) {
         $id = 0;
     }
     //Si es incorrecto redireccionavos al action nuevo
     if (!$id) {
         return $this->redirect()->toRoute('articulo', array('action' => 'nuevo'));
     }
     //Instanciamos nuestro articulo
     $articulo = ArticuloQuery::create()->findPk($id);
     //propiedades
     $propiedades = \PropiedadQuery::create()->filterByIdarticulo($articulo->getIdarticulo())->find();
     //Almacenamos en un arreglo todas los Tipos
     $tipoCollection = \TipoQuery::create()->find();
     $tipoArray = array();
     foreach ($tipoCollection as $tipo) {
         $tipoArray[$tipo->getIdtipo()] = $tipo->getTipoNombre();
     }
     //Instanciamos nuestro formulario
     $articuloForm = new ArticuloForm($tipoArray);
     //Le ponemos los datos de nuestro articulo a nuestro formulario
     $articuloForm->setData($articulo->toArray(BasePeer::TYPE_FIELDNAME));
     if ($request->isPost()) {
         //Si hicieron POST
         //Instanciamos nuestro filtro de articulo
         $articuloFilter = new ArticuloFilter();
         //Le ponemos nuestro filtro a nuesto fromulario
         $articuloForm->setInputFilter($articuloFilter->getInputFilter());
         //Le ponemos los datos a nuestro formulario
         $articuloForm->setData($request->getPost());
         //Validamos nuestro formulario de articulo
         if ($articuloForm->isValid()) {
             //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Articulo
             foreach ($articuloForm->getData() as $articuloKey => $articuloValue) {
                 $articulo->setByName($articuloKey, $articuloValue, \BasePeer::TYPE_FIELDNAME);
             }
             //Guardamos en nuestra base de datos Articulo
             $articulo->save();
             //Si el articulo tiene propiedades las eliminamos para volverlas a setear
             if ($propiedades->count()) {
                 foreach ($propiedades as $propiedad) {
                     $propiedad->delete();
                     //Eliminamos de la base de datos
                 }
             }
             //Verificamos si nos enviaron propiedades
             foreach ($_POST as $key => $value) {
                 if (strstr($key, 'propiedad') && $value['nombre'] != null) {
                     //Guardamos las propiedades
                     $propiedad = new \Propiedad();
                     $propiedad->setIdarticulo($articulo->getIdarticulo());
                     $propiedad->setPropiedadNombre($value["nombre"]);
                     $propiedad->save();
                     //Guardamos las variantes de la propiedad
                     foreach ($value as $varianteKey => $varianteValue) {
                         if ($varianteKey !== "nombre" && $varianteValue != null) {
                             $variante = new \Propiedadvalor();
                             $variante->setIdarticulo($articulo->getIdarticulo());
                             $variante->setIdpropiedad($propiedad->getIdpropiedad());
                             $variante->setPropiedadvalorNombre($varianteValue);
                             $variante->save();
                         }
                     }
                 }
             }
             //Despues de haber insertado el esquelo, insertamos en las tablas de variaciones
             //Comenzamos a itinerar sobre las propiedad para obtener el numero de combinaciones posibles
             $propiedadCollection = $articulo->getPropiedads();
             $combinaciones = 0;
             foreach ($propiedadCollection as $propiedad) {
                 if ($combinaciones == 0) {
                     $combinaciones = $propiedad->getPropiedadvalors()->count();
                 } else {
                     $combinaciones *= $propiedad->getPropiedadvalors()->count();
                 }
             }
             //De acuerdo al numero de combinaciones posibles insertamos en la tabla articulo variante
             if ($combinaciones > 0) {
                 for ($i = 0; $i < $combinaciones; $i++) {
                     $articulovariante = new \Articulovariante();
                     $articulovariante->setIdarticulo($articulo->getIdarticulo());
                     $articulovariante->save();
                 }
             }
             //Guardamos en un arreglo las propiedades Valores
             $propiedadValor = array();
             $propiedadValorCollection = \PropiedadvalorQuery::create()->findByIdarticulo($articulo->getIdarticulo());
             foreach ($propiedadValorCollection as $pvk => $pvv) {
                 $idpropiedadNombre = $pvv->getPropiedad()->getPropiedadNombre();
                 $propiedadValor[$idpropiedadNombre][] = $pvv->toArray();
             }
             $idArticuloVarianteArray = array();
             $propiedadVarianteCollection = \ArticulovarianteQuery::create()->findByIdarticulo($articulo->getIdarticulo());
             foreach ($propiedadVarianteCollection as $propiedadVariante) {
                 $idArticuloVarianteArray[] = $propiedadVariante->getIdArticuloVariante();
             }
             $i = 0;
             foreach ($propiedadValor as $key => $value) {
                 $php .= 'foreach ($propiedadValor[' . $key . '] as $k' . $key . ' => $v' . $key . '){';
             }
             foreach ($propiedadValor as $key => $value) {
                 $php .= '$articulovariantevalor = new \\Articulovariantevalor();';
                 $php .= '$articulovariantevalor->setIdarticulo($articulo->getIdarticulo())';
                 $php .= '->setIdpropiedad($v' . $key . '["Idpropiedad"])';
                 $php .= '->setIdpropiedadvalor($v' . $key . '["Idpropiedadvalor"])';
                 $php .= '->setIdarticulovariante($idArticuloVarianteArray[$i])';
                 $php .= '->save();';
             }
             $php .= '$i++;';
             foreach ($propiedadValor as $key => $value) {
                 $php .= '}';
             }
             eval($php);
             //Agregamos un mensaje
             $this->flashMessenger()->addMessage('Articulo Modificado exitosamente!');
             //Redireccionamos a nuestro list
             return $this->redirect()->toRoute('articulo');
         } else {
         }
     }
     return new ViewModel(array('id' => $id, 'articuloForm' => $articuloForm, 'propiedades' => $propiedades));
 }
 public function transferenciadetallesAction()
 {
     $id = $this->params()->fromQuery('id');
     $modalName = 'modal-preview-' . $id;
     $modal = array();
     $entity = \TraspasoQuery::create()->findOneByIdinventariolugar($id);
     $modal['id'] = $entity->getIdinventariolugar();
     $modal['fecha'] = $entity->getTraspasoFecha('d-m-Y');
     $modal['remitente'] = $entity->getLugarRelatedByIdlugarremitente()->getLugarNombre();
     $modal['receptor'] = $entity->getLugarRelatedByIdlugardestinatario()->getLugarNombre();
     $modal['detalles'] = array();
     $traspaso_detalles = $entity->getTraspasodetalless();
     foreach ($traspaso_detalles as $detalle) {
         $tmp['cantidad'] = (int) $detalle->getTraspasoCantidad();
         $tmp['descripcion'] = '';
         $idarticulovariante = $detalle->getLugarinventario()->getOrdencompradetalle()->getIdarticulovariante();
         $articulovariante = \ArticulovarianteQuery::create()->findPk($idarticulovariante);
         $articulovariantevalor = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($idarticulovariante)->find();
         $tmp['descripcion'] .= $articulovariante->getArticulo()->getArticuloNombre() . ' ';
         foreach ($articulovariantevalor as $key => $value) {
             $propiedadCount++;
             $tmp['descripcion'] .= \PropiedadQuery::create()->findOneByIdpropiedad($value->getIdpropiedad())->getPropiedadNombre();
             //Propiedad
             $tmp['descripcion'] .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($value->getIdpropiedadvalor())->getPropiedadvalorNombre();
             //PropiedadValor
             if ($propiedadCount < $articulovariantevalor->count()) {
                 $tmp['descripcion'] .= ' - ';
             }
         }
         $tmp['caducidad'] = !is_null($detalle->getLugarinventario()->getOrdencompradetalle()->getOrdencompradetalleCaducidad('m/Y')) ? $detalle->getLugarinventario()->getOrdencompradetalle()->getOrdencompradetalleCaducidad('m/Y') : 'N/D';
         array_push($modal['detalles'], $tmp);
     }
     $viewModel = new ViewModel();
     $viewModel->setTerminal(true);
     $viewModel->setVariables(array('modalName' => $modalName, 'modal' => $modal));
     return $viewModel;
 }
Exemple #5
0
 function getArticuloNombreByid($id)
 {
     $articulovariante = \ArticulovarianteQuery::create()->findPk($id);
     //Nombre
     $articulo_nombre = $articulovariante->getArticulo()->getArticuloNombre();
     //Descripcion
     $articulo_descripcion = '';
     $articulovariantevalor = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($id)->find();
     $articulovariantevalorCount = count($articulovariantevalor->toArray());
     $count = 0;
     foreach ($articulovariantevalor as $valor) {
         $articulo_descripcion .= $valor->getPropiedad()->getPropiedadNombre() . ':';
         $articulo_descripcion .= $valor->getPropiedadvalor()->getPropiedadvalorNombre();
         $count++;
         if ($count < $articulovariantevalorCount) {
             $articulo_descripcion .= ' - ';
         }
     }
     return $articulo_nombre . ' ' . $articulo_descripcion;
 }
 public function caducidadbylugarAction()
 {
     $request = $this->request;
     if ($request->isPost()) {
         $post_data = $request->getPost();
         //Creamos una nueva Orden de compra, donde el proveedor va ser el mismo hospital
         $orden = new \Ordencompra();
         $orden->setIdproveedor(1);
         $fecha = new \DateTime();
         $orden->setOrdencompraNofactura($fecha->getTimestamp());
         $orden->setOrdencompraFecha($fecha->format('Y-m-d'));
         $orden->setOrdencompraImporte(0);
         $orden->setOrdencompraStatus('inventario');
         $orden->setOrdencompraFechaapagar($fecha->format('Y-m-d'));
         $post_data_array = array();
         foreach ($post_data as $post) {
             if (is_array($post)) {
                 $post_data_array[] = $post;
             }
         }
         //Comenzamos a itinerar sobre el post
         foreach ($post_data_array as $row) {
             //Si ya es una orden de compra detalle existente
             if (isset($row['id'])) {
                 //Creamos una instancia de la orden compra detalle
                 $ocd = \OrdencompradetalleQuery::create()->findPk($row['id']);
                 //Setiamos los valores
                 $newCaducidad = new \DateTime();
                 //Si nos envian la fecha, le damos formato
                 if (!empty($row['caducidad'])) {
                     $newCaducidad = $newCaducidad->createFromFormat('d/m/y', '01/' . $row['caducidad']);
                 } else {
                     $newCaducidad = null;
                 }
                 $ocd->setOrdencompradetalleCantidad($row['cantidad']);
                 if (!is_null($newCaducidad)) {
                     $ocd->setOrdencompradetalleCaducidad($newCaducidad->format('Y-m-d'));
                 }
                 $ocd->save();
                 //Ahora actualizamos en lugarInventario
                 $lugarInventario = \LugarinventarioQuery::create()->filterByIdlugar($post_data['idlugar'])->filterByIdordencompradetalle($ocd->getIdordencompradetalle())->findOne();
                 $lugarInventario->setLugarinventarioCantidad($row['cantidad']);
                 $lugarInventario->save();
             } else {
                 //En dado caso que no exista...
                 if (is_null($orden->getIdordencompra())) {
                     $orden->save();
                 }
                 //Nueva instancia de orden compra detalle
                 $ocd = new \Ordencompradetalle();
                 $newCaducidad = new \DateTime();
                 //Si nos envian la fecha, le damos formato
                 if (!empty($row['caducidad'])) {
                     $newCaducidad = $newCaducidad->createFromFormat('d/m/y', '01/' . $row['caducidad']);
                 } else {
                     $newCaducidad = null;
                 }
                 $ocd->setIdordencompra($orden->getIdordencompra())->setIdarticulovariante($post_data['idarticulovariante'])->setOrdencompradetalleCantidad($row['cantidad'])->setOrdencompradetalleCosto(0)->setOrdencompradetallePrecio(0)->setOrdencompradetalleImporte(0);
                 if (!is_null($newCaducidad)) {
                     $ocd->setOrdencompradetalleCaducidad($newCaducidad->format('Y-m-d'));
                 }
                 $ocd->save();
                 //Hacemos el insert en lugar inventario
                 $lugarInventario = new \Lugarinventario();
                 $lugarInventario->setIdlugar($post_data['idlugar'])->setIdordencompradetalle($ocd->getIdordencompradetalle())->setLugarinventarioCantidad($ocd->getOrdencompradetalleCantidad())->save();
             }
         }
         //Agregamos un mensaje
         $this->flashMessenger()->addMessage('Existencias guardadas exitosamente!');
         //Redireccionamos
         return $this->redirect()->toUrl('/productos/existencias');
     }
     //Cachamos los datos de la url
     $idarticulovariante = $this->params()->fromQuery('idarticulovariante');
     $idlugar = $this->params()->fromQuery('idlugar');
     $descripcion = $this->params()->fromQuery('descripcion');
     $existencias = $this->params()->fromQuery('existencias');
     $lugarNombre = $this->params()->fromQuery('lugarNombre');
     $modalName = 'modal-producto-' . $idarticulovariante . '-lugar-' . $idlugar;
     $modal = array('id' => $idarticulovariante, 'idlugar' => $idlugar, 'nombre' => \ArticulovarianteQuery::create()->findOneByIdarticulovariante($idarticulovariante)->getArticulo()->getArticuloNombre(), 'descripcion' => $descripcion, 'caducidad' => array(), 'existencias' => $existencias, 'lugar_nombre' => $lugarNombre);
     //Obtenemos todas las ordenes de compra por idarticulovariante
     $ordenCompraDetalleCollection = \OrdencompradetalleQuery::create()->findByIdarticulovariante($idarticulovariante);
     //Comenzamos a itinerar
     foreach ($ordenCompraDetalleCollection as $kocd => $vocd) {
         $tmp['idordendetallecompra'] = $vocd->getIdordencompradetalle();
         if (!is_null($vocd->getOrdencompradetalleCaducidad())) {
             $date = new \DateTime($vocd->getOrdencompradetalleCaducidad());
             $tmp['caducidad'] = $date->format('m/y');
         } else {
             $tmp['caducidad'] = '';
         }
         //Por cada item de articulovariante revisamos su lugar en el inventrario
         $idodencompreadetalle = $vocd->getIdordencompradetalle();
         $lugarinventarioCollection = \LugarinventarioQuery::create()->filterByIdlugar($idlugar)->filterByIdordencompradetalle($idodencompreadetalle)->find();
         //Itineramos en lugarInventario
         foreach ($lugarinventarioCollection as $kli => $vli) {
             $tmp['cantidad'] = $vli->getLugarinventarioCantidad();
             $modal['caducidad'][] = $tmp;
         }
     }
     $viewModel = new ViewModel();
     $viewModel->setTerminal(true);
     $viewModel->setVariables(array('modalName' => $modalName, 'modal' => $modal));
     return $viewModel;
 }
 /**
  * Get the associated Articulovariante object
  *
  * @param PropelPDO $con Optional Connection object.
  * @param $doQuery Executes a query to get the object if required
  * @return Articulovariante The associated Articulovariante object.
  * @throws PropelException
  */
 public function getArticulovariante(PropelPDO $con = null, $doQuery = true)
 {
     if ($this->aArticulovariante === null && $this->idarticulovariante !== null && $doQuery) {
         $this->aArticulovariante = ArticulovarianteQuery::create()->findPk($this->idarticulovariante, $con);
         /* The following can be used additionally to
               guarantee the related object contains a reference
               to this object.  This level of coupling may, however, be
               undesirable since it could result in an only partially populated collection
               in the referenced object.
               $this->aArticulovariante->addOrdencompradetalles($this);
            */
     }
     return $this->aArticulovariante;
 }
 public function eliminarAction()
 {
     //Cachamos el valor desde nuestro params
     $id = (int) $this->params()->fromRoute('id');
     //Verificamos que el Id articulo que se quiere eliminar exista
     if (!\ArticulovarianteQuery::create()->filterByIdarticulovariante($id)->exists()) {
         $id = 0;
     }
     //Si es incorrecto redireccionavos al action nuevo
     if (!$id) {
         return $this->redirect()->toRoute('productos-registro');
     }
     //Instanciamos nuestro articulo
     $articulovariante = \ArticulovarianteQuery::create()->findPk($id);
     $articulovariante->delete();
     //Agregamos un mensaje
     $this->flashMessenger()->addMessage('Producto eliminado exitosamente!');
     //Redireccionamos a nuestro list
     return $this->redirect()->toRoute('productos-registro');
 }
 /**
  * Removes this object from datastore and sets delete attribute.
  *
  * @param PropelPDO $con
  * @return void
  * @throws PropelException
  * @throws Exception
  * @see        BaseObject::setDeleted()
  * @see        BaseObject::isDeleted()
  */
 public function delete(PropelPDO $con = null)
 {
     if ($this->isDeleted()) {
         throw new PropelException("This object has already been deleted.");
     }
     if ($con === null) {
         $con = Propel::getConnection(ArticulovariantePeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     $con->beginTransaction();
     try {
         $deleteQuery = ArticulovarianteQuery::create()->filterByPrimaryKey($this->getPrimaryKey());
         $ret = $this->preDelete($con);
         if ($ret) {
             $deleteQuery->delete($con);
             $this->postDelete($con);
             $con->commit();
             $this->setDeleted(true);
         } else {
             $con->commit();
         }
     } catch (Exception $e) {
         $con->rollBack();
         throw $e;
     }
 }
Exemple #10
0
 /**
  * Returns the number of related Articulovariante objects.
  *
  * @param Criteria $criteria
  * @param boolean $distinct
  * @param PropelPDO $con
  * @return int             Count of related Articulovariante objects.
  * @throws PropelException
  */
 public function countArticulovariantes(Criteria $criteria = null, $distinct = false, PropelPDO $con = null)
 {
     $partial = $this->collArticulovariantesPartial && !$this->isNew();
     if (null === $this->collArticulovariantes || null !== $criteria || $partial) {
         if ($this->isNew() && null === $this->collArticulovariantes) {
             return 0;
         }
         if ($partial && !$criteria) {
             return count($this->getArticulovariantes());
         }
         $query = ArticulovarianteQuery::create(null, $criteria);
         if ($distinct) {
             $query->distinct();
         }
         return $query->filterByArticulo($this)->count($con);
     }
     return count($this->collArticulovariantes);
 }