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; }
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; } }
/** * 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); }