public function editarAction() { //Cachamos el valor desde nuestro params $id = (int) $this->params()->fromRoute('id'); //Verificamos que el Id articulo que se quiere modificar exista if (!\TraspasoQuery::create()->filterByIdinventariolugar($id)->exists()) { $id = 0; } //Si es incorrecto redireccionavos al action nuevo if (!$id) { return $this->redirect()->toRoute('almacen-transferencias', array('action' => 'nuevo')); } $request = $this->getRequest(); $entity = \TraspasoQuery::create()->findOneByIdinventariolugar($id); $entity_array = $entity->toArray(); $entity_array['detalles'] = array(); $traspaso_detalles = $entity->getTraspasodetalless(); foreach ($traspaso_detalles as $detalle) { $tmp['costo'] = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovarianteCosto(); $tmp['idarticulovariante'] = $detalle->getLugarinventario()->getOrdencompradetalle()->getIdarticulovariante(); $tmp['idlugarinventario'] = $detalle->getIdlugarinventario(); $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() . ' '; $propiedadCount = 0; 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($entity_array['detalles'], $tmp); } //Instanciamos nuestro lugares $lugaresCollection = \LugarQuery::create()->find(); $lugarArray = array(); foreach ($lugaresCollection as $lugar) { $lugarArray[] = array('value' => $lugar->getIdLugar(), 'name' => $lugar->getLugarNombre()); } if ($request->isPost()) { //Si hicieron POST $post_data = $request->getPost(); //echo '<pre>';var_dump($entity_array); echo '<pre>';exit(); //Eliminamos nuestra anterior transferencia $traspaso = \TraspasoQuery::create()->findOneByIdinventariolugar($id); $traspaso_idorden = $traspaso->getIdOrdencompra(); $traspaso_detalles = $traspaso->getTraspasodetalless(); //Eliminamos los detalles y los regresamos a almacen general foreach ($traspaso_detalles as $detalle) { //Instanciamos nuestro el lugar inventario del detalle $lugar_inventario = $detalle->getLugarinventario(); $current_stock = $lugar_inventario->getLugarinventarioCantidad(); $new_stock = $current_stock + $detalle->getTraspasoCantidad(); $lugar_inventario->setLugarinventarioCantidad($new_stock); $lugar_inventario->save(); } //Eliminamos el traspaso y la orden $traspaso->delete(); \OrdencompraQuery::create()->findPk($traspaso_idorden)->delete(); /* * Creamos la nueva */ $traspaso_fecha = \DateTime::createFromFormat('d/m/Y', $post_data['traspaso_fecha']); //Si existen items en el traspaso if (isset($post_data["traspaso_detalles"])) { //Creamos una nueva orden donde vamos a registrar el traspaso $orden = new \Ordencompra(); $orden->setIdproveedor(1)->setOrdencompraNofactura($traspaso_fecha->getTimestamp())->setOrdencompraFecha($traspaso_fecha->format('Y-m-d h:m:s'))->setOrdencompraImporte(0.0)->setOrdencompraStatus('inventario')->setOrdencompraFechaapagar($traspaso_fecha->format('Y-m-d'))->save(); //Generamos el traspaso $traspaso = new \Traspaso(); $traspaso->setIdinventariolugar($entity_array['Idinventariolugar']); $traspaso_fecha = \DateTime::createFromFormat('d/m/Y', $post_data['traspaso_fecha']); $traspaso->setTraspasoFecha($traspaso_fecha->format('Y-m-d h:m:s')); $traspaso->setIdordencompra($orden->getIdordencompra()); $traspaso->setTraspasoStatus('recibido'); $traspaso->setIdlugarremitente($post_data['traspaso_idlugarorigen']); $traspaso->setIdlugardestinatario($post_data["traspaso_idlugardestinatario"]); $traspaso->save(); $idtraspaso = $traspaso->getIdinventariolugar(); //Se guardo con exito la orden if (!$orden->isPrimaryKeyNull()) { $idorden = $orden->getIdordencompra(); //Modificamos el idorden de nuestro traspaso //Insertamos los orden items foreach ($post_data["traspaso_detalles"] as $detalle) { //Agregamos los detalles del traspaso $traspaso_detalle = new \Traspasodetalles(); $traspaso_detalle->setIdtraspaso($idtraspaso)->setIdlugarinventario($detalle["idlugarinventario"])->setTraspasoCantidad($detalle["traspaso_cantidad"])->save(); //Agregamos el order item a la orden $orden_detalle = new \Ordencompradetalle(); $orden_detalle->setIdordencompra($idorden)->setIdarticulovariante($detalle["idarticulovariante"])->setOrdencompradetalleCantidad($detalle["traspaso_cantidad"])->setOrdencompradetalleCosto(0.0)->setOrdencompradetallePrecio(0.0)->setOrdencompradetalleImporte(0.0); if ($detalle['caducidad'] != 'N/D') { $caducidad = \DateTime::createFromFormat('m/Y', $detalle['caducidad']); $orden_detalle->setOrdencompradetalleCaducidad($caducidad->format('Y-m-d')); } $orden_detalle->save(); //Insertamos en nuestro almacen destinatario $lugar_inventario = new \Lugarinventario(); $lugar_inventario->setIdlugar($post_data["traspaso_idlugardestinatario"])->setIdordencompradetalle($orden_detalle->getIdordencompradetalle())->setLugarinventarioCantidad($orden_detalle->getOrdencompradetalleCantidad())->save(); //Restamos del lugarinventario remitente (almacen general) $lugar_inventario = \LugarinventarioQuery::create()->findPk($detalle["idlugarinventario"]); $current_stock = $lugar_inventario->getLugarinventarioCantidad(); $new_stock = $current_stock - $orden_detalle->getOrdencompradetalleCantidad(); $lugar_inventario->setLugarinventarioCantidad($new_stock)->save(); } } } //Agregamos un mensaje $this->flashMessenger()->addMessage('Transferencia modificada exitosamente!'); return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => true))); } return new ViewModel(array('id' => $id, 'transferencia' => $entity_array, 'lugares' => $lugarArray)); }
/** * Get the associated Lugarinventario object * * @param PropelPDO $con Optional Connection object. * @param $doQuery Executes a query to get the object if required * @return Lugarinventario The associated Lugarinventario object. * @throws PropelException */ public function getLugarinventario(PropelPDO $con = null, $doQuery = true) { if ($this->aLugarinventario === null && $this->idlugarinventario !== null && $doQuery) { $this->aLugarinventario = LugarinventarioQuery::create()->findPk($this->idlugarinventario, $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->aLugarinventario->addCargoadmisions($this); */ } return $this->aLugarinventario; }
public function editarAction() { $request = $this->getRequest(); if ($request->isPost()) { //Guaradamos nuestra variable de orden $orden = $request->getPost('orden'); $idorden = $orden['idorden']; $orden_compra = \OrdencompraQuery::create()->findPk($idorden); //Setiamos los valores que nos envian $ordencompra_fecha = new \DateTime(); $ordencompra_fecha = $ordencompra_fecha->createFromFormat('d/m/Y', $orden['orden_fecha']); if (!empty($orden['orden_fechaapagar'])) { $ordencompra_fechapagar = new \DateTime(); $ordencompra_fechapagar = $ordencompra_fechapagar->createFromFormat('d/m/Y', $orden['orden_fechaapagar']); } $ordencompra_importe = $orden['orden_importe']; $ordencompra_importe_split = explode('$ ', $ordencompra_importe); $ordencompra_importe = $ordencompra_importe_split[1]; $ordencompra_importe = str_replace(',', '', $ordencompra_importe); //Guardamos nuestra compra $orden_compra->setIdproveedor($orden["orden_proveedor"])->setOrdencompraStatus($orden['orden_status'])->setOrdencompraNofactura($orden['orden_folio'])->setOrdencompraFecha($ordencompra_fecha->format('Y-m-d'))->setOrdencompraImporte($ordencompra_importe); if (isset($ordencompra_fechapagar)) { $orden_compra->setOrdencompraFechaapagar($ordencompra_fechapagar->format('Y-m-d')); } if (!is_null($orden['orden_facturapdf'])) { $orden_compra->setOrdencompraFacturapdf($orden['orden_facturapdf']); } $orden_compra->save(); //Itenaramos sobre los items foreach ($orden['orden_items'] as $item) { if (isset($item["idordendetalle"])) { $item_importe = $item['ordencompradetalle_importe']; $item_importe_split = explode('$ ', $item_importe); $item_importe = $item_importe_split[1]; $item_importe = str_replace(',', '', $item_importe); $ordenCompraDetalle = \OrdencompradetalleQuery::create()->findPk($item["idordendetalle"]); $ordenCompraDetalle->setIdarticulovariante($item['idarticulovariante'])->setOrdencompradetalleCantidad($item['ordencompradetalle_cantidad'])->setOrdencompradetalleCosto($item['ordencompradetalle_costo'])->setOrdencompradetallePrecio($item['ordencompradetalle_precio'])->setOrdencompradetalleImporte($item_importe); if (!empty($item['ordencompradetalle_caducidad'])) { $ordenCompraDetalle->setOrdencompradetalleCaducidad($item['ordencompradetalle_caducidad']); } $ordenCompraDetalle->save(); //Tambien actualizamos el precio del articulo variante $articulo_variante = \ArticulovarianteQuery::create()->findPk($item['idarticulovariante']); $articulo_variante->setArticulovariantePrecio($item['ordencompradetalle_precio']); $articulo_variante->save(); //Actualizamos el lugar inventario $lugarInventario = \LugarinventarioQuery::create()->findOneByIdordencompradetalle($item["idordendetalle"]); $lugarInventario->setLugarinventarioCantidad($ordenCompraDetalle->getOrdencompradetalleCantidad()); $lugarInventario->setIdlugar($orden['orden_lugar']); $lugarInventario->save(); } else { $item_importe = $item['ordencompradetalle_importe']; $item_importe_split = explode('$ ', $item_importe); $item_importe = $item_importe_split[1]; $item_importe = str_replace(',', '', $item_importe); $ordenCompraDetalle = new \Ordencompradetalle(); $ordenCompraDetalle->setIdordencompra($orden_compra->getIdordencompra())->setIdarticulovariante($item['idarticulovariante'])->setOrdencompradetalleCantidad($item['ordencompradetalle_cantidad'])->setOrdencompradetalleCosto($item['ordencompradetalle_costo'])->setOrdencompradetallePrecio($item['ordencompradetalle_precio'])->setOrdencompradetalleImporte($item_importe); if (!empty($item['ordencompradetalle_caducidad'])) { $ordenCompraDetalle->setOrdencompradetalleCaducidad($item['ordencompradetalle_caducidad']); } $ordenCompraDetalle->save(); //Tambien actualizamos el precio del articulo variante $articulo_variante = \ArticulovarianteQuery::create()->findPk($item['idarticulovariante']); $articulo_variante->setArticulovariantePrecio($item['ordencompradetalle_precio']); $articulo_variante->save(); //Los insertamos en nuestro almacen general $lugarInventario = new \Lugarinventario(); $lugarInventario->setIdlugar($orden['orden_lugar'])->setIdOrdencompradetalle($ordenCompraDetalle->getIdordencompradetalle())->setLugarinventarioCantidad($ordenCompraDetalle->getOrdencompradetalleCantidad())->save(); } } //Agregamos un mensaje $this->flashMessenger()->addMessage('Orden guardada exitosamente!'); return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => true))); } //Cachamos el valor desde nuestro params $id = (int) $this->params()->fromRoute('id'); //Verificamos que el Id compra que se quiere editar if (!\OrdencompraQuery::create()->filterByIdordencompra($id)->exists()) { $id = 0; } //Si es incorrecto redireccionavos al action nuevo if (!$id) { return $this->redirect()->toRoute('compras'); } $orden = array(); //Instanciamos nuestro compra $compra = \OrdencompraQuery::create()->findPk($id); //Almacenamos los valores que nos importan en nuestro arreglo orden $orden['id'] = $id; $orden['facturapdf'] = $compra->getOrdencompraFacturapdf(); $orden['idproveedor'] = $compra->getIdproveedor(); $orden['proveedor'] = $compra->getProveedor()->getProveedorNombre(); $orden['nofactura'] = $compra->getOrdencompraNofactura(); $orden['fecha'] = $compra->getOrdencompraFecha($format = 'd/m/Y'); $orden['fechapagar'] = $compra->getOrdencompraFechaapagar($format = 'd/m/Y'); $orden['importe'] = $compra->getOrdencompraImporte(); $orden['status'] = $compra->getOrdencompraStatus(); $orden['orden_items'] = array(); //Los detalles $orden_detalles = \OrdencompradetalleQuery::create()->filterByIdordencompra($id)->find(); $i = new \Ordencompradetalle(); $orden['idlugar'] = null; foreach ($orden_detalles as $item) { $tmp['id'] = $item->getIdordencompradetalle(); $tmp['idarticulo'] = $item->getIdarticulovariante(); $tmp['articulo'] = $this->getArticuloNombreByid($item->getIdarticulovariante()); $tmp['cantidad'] = $item->getOrdencompradetalleCantidad(); $tmp['costo'] = $item->getOrdencompradetalleCosto(); $tmp['precio'] = $item->getOrdencompradetallePrecio(); $tmp['importe'] = $item->getOrdencompradetalleImporte(); $tmp['caducidad'] = $item->getOrdencompradetalleCaducidad(); if (!is_null($tmp['caducidad'])) { $date_caducidad = new \DateTime($tmp['caducidad']); $tmp['caducidad'] = $date_caducidad->format('m/y'); } $li = \LugarinventarioQuery::create()->findOneByIdordencompradetalle($item->getIdordencompradetalle()); $orden['idlugar'] = $li->getIdlugar(); $orden['orden_items'][] = $tmp; } $almacenes = \LugarQuery::create()->find()->toArray(null, false, \BasePeer::TYPE_FIELDNAME); return new ViewModel(array('almacenes' => $almacenes, 'orden' => $orden, 'flashMessages' => $this->flashMessenger()->getMessages())); }
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; }
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; }
/** * If this collection has already been initialized with * an identical criteria, it returns the collection. * Otherwise if this Ordencompradetalle is new, it will return * an empty collection; or if this Ordencompradetalle has previously * been saved, it will retrieve related Lugarinventarios from storage. * * This method is protected by default in order to keep the public * api reasonable. You can provide public methods for those you * actually need in Ordencompradetalle. * * @param Criteria $criteria optional Criteria object to narrow the query * @param PropelPDO $con optional connection object * @param string $join_behavior optional join type to use (defaults to Criteria::LEFT_JOIN) * @return PropelObjectCollection|Lugarinventario[] List of Lugarinventario objects */ public function getLugarinventariosJoinLugar($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN) { $query = LugarinventarioQuery::create(null, $criteria); $query->joinWith('Lugar', $join_behavior); return $this->getLugarinventarios($query, $con); }
public function listaAction() { //obtenemos nuestros almacenes $lugarCollection = \LugarQuery::create()->find(); $lugarCollectionArray = array(); foreach ($lugarCollection as $kl => $vl) { $lugarCollectionArray[] = array('nombre' => $vl->getLugarNombre(), 'id' => $vl->getIdLugar()); } //Obtenemos nuestros productos $articuloCollection = \ArticuloQuery::create()->find(); //De cada articulo obtenemos sus variaciones (articulovariante) $productos = array(); foreach ($articuloCollection as $ka => $av) { $tmp = array(); $tmp['nombre'] = $av->getArticuloNombre(); $articulovarianteCollection = $av->getArticulovariantes(); foreach ($articulovarianteCollection as $kav => $vav) { $tmp['id'] = $vav->getIdarticulovariante(); $tmp['codigo_barras'] = $vav->getArticulovarianteCodigoBarras(); $tmp['precio'] = $vav->getArticulovariantePrecio(); $tmp['imagen'] = $vav->getArticuloVarianteImagen(); //Por cada valor obtenemos su variaciones $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($vav->getIdarticulovariante())->find(); $tmp['descripcion'] = ''; $propiedadCount = 0; foreach ($articuloVarianteValorCollection as $kavv => $vavv) { $propiedadCount++; $tmp['descripcion'] .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre(); //Propiedad $tmp['descripcion'] .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre(); //PropiedadValor if ($propiedadCount < $articuloVarianteValorCollection->count()) { $tmp['descripcion'] .= ' - '; } } //Por cada variacion obtenemos los datos de reorden $reordenCollection = \ArticulovariantereordenQuery::create()->findByIdarticulovariante($vav->getIdArticulovariante()); $reordenArray = $reordenCollection->toArray(); if (!empty($reordenArray)) { //Itineramos en el foreach ($reordenCollection as $krc => $vro) { $tmp['reorden']['id'] = $vro->getIdArticulovariantereorden(); $tmp['reorden'][$vro->getLugar()->getLugarNombre()]['min'] = (int) $vro->getMinimo(); $tmp['reorden'][$vro->getLugar()->getLugarNombre()]['reorden'] = (int) $vro->getReorden(); $tmp['reorden'][$vro->getLugar()->getLugarNombre()]['max'] = (int) $vro->getMaximo(); } } else { foreach ($lugarCollection as $kl => $vl) { $tmp['reorden'][$vl->getLugarNombre()]['min'] = 0; $tmp['reorden'][$vl->getLugarNombre()]['reorden'] = 0; $tmp['reorden'][$vl->getLugarNombre()]['max'] = 0; } } //Comenzamos a itinerar sobre los lugares disponibles foreach ($lugarCollection as $kl => $vl) { //Los agregamos a nuestro arreglo $tmp['reorden'][$vl->getLugarNombre()]['existencias'] = 0; } //Obtenemos las compras que se han realizado del articulo variante $compraDetalleCollection = \OrdencompradetalleQuery::create()->findByIdarticulovariante($vav->getIdArticuloVariante()); //Itineramos en la coleccion de compras foreach ($compraDetalleCollection as $kcd => $vcd) { $idCompraDetalle = $vcd->getIdOrdenCompraDetalle(); //por cada compra detalle la buscamos en lugar inventario $lugarInventarioCollection = \LugarinventarioQuery::create()->findByIdordencompradetalle($idCompraDetalle); //empezamos a itinerar en los registros para irlos sumando a nuestro lugar foreach ($lugarInventarioCollection as $kli => $vli) { $lugarNombre = $vli->getLugar()->getLugarNombre(); $cantidad = $vli->getLugarinventarioCantidad(); $tmp['reorden'][$lugarNombre]['existencias'] += $cantidad; } } array_push($productos, $tmp); } } return new ViewModel(array('lugares' => $lugarCollectionArray, 'productos' => $productos)); }
public function nuevoAction() { // Almacenamos en un array los registros de todos los consultorios existentes en la base de datos $consultaCollection = \ConsultaQuery::create()->find(); $consultaArray = array(); foreach ($consultaCollection as $consultaEntity) { $consultaArray[$consultaEntity->getIdconsulta()] = $consultaEntity->getPaciente()->getPacienteNombre(); } // Almacenamos en un array los registros de todos los Lugarinventario para obtener el nombre de los productos existentes en la base de datos $lugarinventarioCollection = \LugarinventarioQuery::create()->find(); $lugarinventarioArray = array(); foreach ($lugarinventarioCollection as $lugarinventarioEntity) { $lugarinventarioArray[$lugarinventarioEntity->getIdlugarinventario()] = $lugarinventarioEntity->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(); } //Intanciamos nuestro formulario cargoconsulta y le mandamos por parametro los medicos y consultorios existentes $cargoconsultaForm = new CargoconsultaForm($consultaArray, $lugarinventarioArray); $request = $this->getRequest(); if ($request->isPost()) { //Instanciamos nuestro filtro $cargoconsultaFilter = new CargoconsultaFilter(); //Le ponemos nuestro filtro a nuesto fromulario $cargoconsultaForm->setInputFilter($cargoconsultaFilter->getInputFilter()); //Le ponemos los datos a nuestro formulario $cargoconsultaForm->setData($request->getPost()); //Validamos nuestro formulario if ($cargoconsultaForm->isValid()) { //Instanciamos un nuevo objeto de nuestro objeto Paciente $cargoconsulta = new \Cargoconsulta(); //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Consulta foreach ($cargoconsultaForm->getData() as $cargoconsultaKey => $cargoconsultaValue) { $cargoconsulta->setByName($cargoconsultaKey, $cargoconsultaValue, \BasePeer::TYPE_FIELDNAME); } $cargoconsulta->save(); // Validar precio, caducidad y existencia de ordencompradetalle $existencia = $cargoconsulta->getLugarinventario()->getOrdencompradetalle()->getOrdencompradetalleExistencia(); $caducidad = $cargoconsulta->getLugarinventario()->getOrdencompradetalle()->getOrdencompradetalleCaducidad(); $precio = $cargoconsulta->getLugarinventario()->getOrdencompradetalle()->getOrdencompradetallePrecio(); $cantidad = $cargoconsulta->getCantidad(); if ($existencia > 0) { if ($caducidad < date('Y-m-d')) { $cargoconsulta->setMonto($request->getPost()->cantidad * $precio); } } //Guardamos en nuestra base de datos $cargoconsulta->save(); //Redireccionamos a nuestro list //return $this->redirect()->toRoute('pacientes'); } else { $messageArray = array(); foreach ($cargoconsultaForm->getMessages() as $key => $value) { foreach ($value as $val) { //Obtenemos el valor de la columna con error $message = $key . ' ' . $val; array_push($messageArray, $message); } } var_dump($messageArray); return new ViewModel(array('input_error' => $messageArray)); } } return array('cargoconsultaForm' => $cargoconsultaForm); }
/** * 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(LugarinventarioPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { $deleteQuery = LugarinventarioQuery::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 a new LugarinventarioQuery object. * * @param string $modelAlias The alias of a model in the query * @param LugarinventarioQuery|Criteria $criteria Optional Criteria to build the query from * * @return LugarinventarioQuery */ public static function create($modelAlias = null, $criteria = null) { if ($criteria instanceof LugarinventarioQuery) { return $criteria; } $query = new LugarinventarioQuery(null, null, $modelAlias); if ($criteria instanceof Criteria) { $query->mergeWith($criteria); } return $query; }