/**
  * Returns a new PropiedadvalorQuery object.
  *
  * @param     string $modelAlias The alias of a model in the query
  * @param   PropiedadvalorQuery|Criteria $criteria Optional Criteria to build the query from
  *
  * @return PropiedadvalorQuery
  */
 public static function create($modelAlias = null, $criteria = null)
 {
     if ($criteria instanceof PropiedadvalorQuery) {
         return $criteria;
     }
     $query = new PropiedadvalorQuery(null, null, $modelAlias);
     if ($criteria instanceof Criteria) {
         $query->mergeWith($criteria);
     }
     return $query;
 }
Beispiel #2
0
 public function indexAction()
 {
     $request = $this->request;
     if ($request->isPost()) {
         //Si envian el formulario
         $post_data = $request->getPost();
         //Creamos una instacia de nuestro articulovariante
         $articuloVariante = \ArticulovarianteQuery::create()->findOneByIdarticulovariante($post_data['idproducto']);
         $articuloVariante->setArticulovarianteCosto($request->getPost()->articulovariante_costo);
         $articuloVariante->setArticulovariantePrecio($request->getPost()->articulovariante_precio);
         $articuloVariante->setArticulovarianteIva($request->getPost()->articulovariante_iva);
         if ($articuloVariante->isModified()) {
             $articuloVariante->save();
         }
         return;
     }
     //Obtenemos nuestros productos
     $articuloCollection = \ArticuloQuery::create()->find();
     //De cada articulo obtenemos sus variaciones (articulovariante)
     $productos = array();
     foreach ($articuloCollection as $ka => $av) {
         $tmp['nombre'] = $av->getArticuloNombre();
         $articulovarianteCollection = $av->getArticulovariantes();
         //Comenzamos a itinerar sobre las variaciones
         foreach ($articulovarianteCollection as $kav => $vav) {
             $tmp['id'] = $vav->getIdarticulovariante();
             $tmp['codigo_barras'] = !is_null($vav->getArticuloVarianteCodigobarras()) ? $vav->getArticuloVarianteCodigobarras() : '';
             $tmp['costo'] = !is_null($vav->getArticuloVarianteCosto()) ? $vav->getArticuloVarianteCosto() : 0.0;
             $tmp['precio'] = !is_null($vav->getArticuloVariantePrecio()) ? $vav->getArticuloVariantePrecio() : 0.0;
             $tmp['iva'] = !is_null($vav->getArticuloVarianteIva()) ? $vav->getArticuloVarianteIva() : 0;
             $tmp['imagen'] = $vav->getArticuloVarianteImagen();
             //Por cada valor obtenemos su variaciones
             $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($vav->getIdarticulovariante())->find();
             //Comenzamos a itinerar sobre articulovariantevalor para obtener sus resultado
             $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'] .= ' - ';
                 }
             }
             array_push($productos, $tmp);
         }
     }
     //var_dump($this->flashMessenger()->getMessages());
     return new ViewModel(array('flashMessages' => $this->flashMessenger()->getMessages(), 'productos' => $productos));
 }
Beispiel #3
0
 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;
 }
Beispiel #5
0
 public function detallesAction()
 {
     $id = (int) $this->params()->fromRoute('id', 0);
     if ($id) {
         if (\VentaQuery::create()->filterByIdventa($id)->exists()) {
             $ventaEntity = \VentaQuery::create()->filterByIdventa($id)->findOne();
             $cargoventaQuery = $ventaEntity->getCargoventas();
             if ($cargoventaQuery->getArrayCopy()) {
                 $cargoventaArticuloArray = array();
                 $cargoventaServicioArray = array();
                 foreach ($cargoventaQuery as $cargoventaEntity) {
                     if ($cargoventaEntity->getIdlugarinventario() != null) {
                         $articulovarianteEntity = $cargoventaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                         $propiedadvalorNombre = null;
                         foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                             $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                             $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                             $propiedadvalorNombre .= $propiedadQuery->getPropiedadNombre() . " " . $propiedadvalorQuery->getPropiedadvalorNombre() . " ";
                         }
                         $cargoventaArticulo = array('idcargoventa' => $cargoventaEntity->getIdcargoventa(), 'idventa' => $cargoventaEntity->getIdventa(), 'venta_status' => $cargoventaEntity->getVenta()->getVentaStatus(), 'cantidad' => $cargoventaEntity->getCantidad(), 'articulo' => $cargoventaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadvalorNombre), 'salida' => $cargoventaEntity->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoventaEntity->getCargoventaFecha(), 'precio' => $cargoventaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoventaEntity->getMonto());
                         array_push($cargoventaArticuloArray, $cargoventaArticulo);
                     }
                     if ($cargoventaEntity->getIdservicio() != null) {
                         $cargoventaServicio = array('idcargoventa' => $cargoventaEntity->getIdcargoventa(), 'idventa' => $cargoventaEntity->getIdventa(), 'venta_status' => $cargoventaEntity->getVenta()->getVentaStatus(), 'cantidad' => $cargoventaEntity->getCantidad(), 'servicio' => $cargoventaEntity->getServicio()->getServicioNombre(), 'descripcion' => $cargoventaEntity->getServicio()->getServicioDescripcion(), 'precio' => $cargoventaEntity->getServicio()->getServicioPrecio(), 'subtotal' => $cargoventaEntity->getMonto(), 'fechahora' => $cargoventaEntity->getCargoventaFecha());
                         array_push($cargoventaServicioArray, $cargoventaServicio);
                     }
                 }
             }
             return new ViewModel(array('ventaEntity' => $ventaEntity, 'cargoventaArticuloArray' => $cargoventaArticuloArray, 'cargoventaServicioArray' => $cargoventaServicioArray));
         }
     } else {
         return $this->redirect()->toRoute('venta');
     }
 }
Beispiel #6
0
 public function getproductosAction()
 {
     //Obtenemos nuestros productos
     $articuloCollection = \ArticuloQuery::create()->find();
     $productos = array();
     foreach ($articuloCollection as $ka => $av) {
         $tmp['nombre'] = $av->getArticuloNombre();
         $articulovarianteCollection = $av->getArticulovariantes();
         //Comenzamos a itinerar sobre las variaciones
         foreach ($articulovarianteCollection as $kav => $vav) {
             $tmp['value'] = $vav->getIdarticulovariante();
             $articulovariante = \ArticulovarianteQuery::create()->findPk($tmp['value']);
             $tmp['precio'] = !is_null($articulovariante->getArticulovariantePrecio()) ? $articulovariante->getArticulovariantePrecio() : 0.0;
             $tmp['costo'] = !is_null($articulovariante->getArticulovarianteCosto()) ? $articulovariante->getArticulovarianteCosto() : 0.0;
             //Por cada valor obtenemos su variaciones
             $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($vav->getIdarticulovariante())->find();
             //Comenzamos a itinerar sobre articulovariantevalor para obtener sus resultado
             $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'] .= ' - ';
                 }
                 $tmp['label'] = $tmp['nombre'] . ' ' . $tmp['descripcion'];
             }
             array_push($productos, $tmp);
         }
     }
     $producto_array = array();
     foreach ($productos as $producto) {
         unset($producto['descripcion']);
         unset($producto['nombre']);
         array_push($producto_array, $producto);
     }
     return $this->getResponse()->setContent(\Zend\Json\Json::encode($producto_array));
 }
Beispiel #7
0
 public function indexAction()
 {
     //Obtenemos nuestros productos
     $articuloCollection = \ArticuloQuery::create()->find();
     //obtenemos nuestros almacenes
     $lugarCollection = \LugarQuery::create()->find();
     $lugarCollectionArray = array();
     foreach ($lugarCollection as $kl => $vl) {
         $lugarCollectionArray[] = array('nombre' => $vl->getLugarNombre(), 'id' => $vl->getIdLugar());
     }
     //De cada articulo obtenemos sus variaciones (articulovariante)
     $productos = array();
     foreach ($articuloCollection as $ka => $av) {
         $tmp['nombre'] = $av->getArticuloNombre();
         $articulovarianteCollection = $av->getArticulovariantes();
         //Comenzamos a itinerar sobre las variaciones
         foreach ($articulovarianteCollection as $kav => $vav) {
             $tmp['id'] = $vav->getIdarticulovariante();
             $tmp['codigo_barras'] = !is_null($vav->getArticuloVarianteCodigobarras()) ? $vav->getArticuloVarianteCodigobarras() : '';
             $tmp['precio'] = !is_null($vav->getArticuloVariantePrecio()) ? $vav->getArticuloVariantePrecio() : 0.0;
             $tmp['imagen'] = $vav->getArticuloVarianteImagen();
             //Comenzamos a itinerar sobre los lugares disponibles
             foreach ($lugarCollection as $kl => $vl) {
                 //Los agregamos a nuestro arreglo
                 $tmp['lugar'][$vl->getLugarNombre()] = NULL;
             }
             //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['lugar'][$lugarNombre] += $cantidad;
                 }
             }
             //Por cada valor obtenemos su variaciones
             $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($vav->getIdarticulovariante())->find();
             //Comenzamos a itinerar sobre articulovariantevalor para obtener sus resultado
             $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'] .= ' - ';
                 }
             }
             array_push($productos, $tmp);
         }
     }
     //var_dump($this->flashMessenger()->getMessages());
     return new ViewModel(array('lugares' => $lugarCollectionArray, 'productos' => $productos));
 }
Beispiel #8
0
 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));
 }
Beispiel #9
0
 /**
  * If this collection has already been initialized with
  * an identical criteria, it returns the collection.
  * Otherwise if this Propiedad is new, it will return
  * an empty collection; or if this Propiedad has previously
  * been saved, it will retrieve related Propiedadvalors 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 Propiedad.
  *
  * @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|Propiedadvalor[] List of Propiedadvalor objects
  */
 public function getPropiedadvalorsJoinArticulo($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN)
 {
     $query = PropiedadvalorQuery::create(null, $criteria);
     $query->joinWith('Articulo', $join_behavior);
     return $this->getPropiedadvalors($query, $con);
 }
Beispiel #10
0
 public function historicodetallesAction()
 {
     $id = (int) $this->params()->fromRoute('id', 0);
     if ($id) {
         if (\PacienteQuery::create()->filterByIdpaciente($id)->exists()) {
             $cargoconsultaArticuloArray = array();
             $cargoconsultaServicioArray = array();
             $cargoadmisionArticuloArray = array();
             $cargoadmisionServicioArray = array();
             $admisionanticiposArray = array();
             $pacienteEntity = \PacienteQuery::create()->filterByIdpaciente($id)->findOne();
             $consultasQuery = $pacienteEntity->getConsultas();
             $admisionesQuery = $pacienteEntity->getAdmisions();
             if ($consultasQuery->count() != 0) {
                 foreach ($consultasQuery as $consultaEntity) {
                     $cargoconsultas = $consultaEntity->getCargoconsultas();
                     if ($cargoconsultas->count() != 0) {
                         foreach ($cargoconsultas as $cargoconsultaEntity) {
                             if ($cargoconsultaEntity->getIdlugarinventario() != null) {
                                 $articulovarianteEntity = $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                                 $propiedadvalorNombre = null;
                                 foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                                     $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                                     $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                                     $propiedadvalorNombre .= $propiedadQuery->getPropiedadNombre() . " " . $propiedadvalorQuery->getPropiedadvalorNombre() . " ";
                                 }
                                 $cargoconsultaArticulo = array('idcargoconsulta' => $cargoconsultaEntity->getIdcargoconsulta(), 'idconsulta' => $cargoconsultaEntity->getIdconsulta(), 'status' => $cargoconsultaEntity->getConsulta()->getConsultaStatus(), 'cantidad' => $cargoconsultaEntity->getCantidad(), 'articulo' => $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadvalorNombre), 'salida' => $cargoconsultaEntity->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoconsultaEntity->getCargoconsultaFecha(), 'precio' => $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoconsultaEntity->getMonto());
                                 array_push($cargoconsultaArticuloArray, $cargoconsultaArticulo);
                             }
                             if ($cargoconsultaEntity->getIdservicio() != null) {
                                 $cargoconsultaServicio = array('idcargoconsulta' => $cargoconsultaEntity->getIdcargoconsulta(), 'idconsulta' => $cargoconsultaEntity->getIdconsulta(), 'status' => $cargoconsultaEntity->getConsulta()->getConsultaStatus(), 'cantidad' => $cargoconsultaEntity->getCantidad(), 'servicio' => $cargoconsultaEntity->getServicio()->getServicioNombre(), 'descripcion' => $cargoconsultaEntity->getServicio()->getServicioDescripcion(), 'precio' => $cargoconsultaEntity->getServicio()->getServicioPrecio(), 'subtotal' => $cargoconsultaEntity->getMonto(), 'fechahora' => $cargoconsultaEntity->getConsulta()->getConsultaFecha());
                                 array_push($cargoconsultaServicioArray, $cargoconsultaServicio);
                             }
                         }
                     }
                 }
             }
             if ($admisionesQuery->count() != 0) {
                 foreach ($admisionesQuery as $admisionEntity) {
                     $cargoadmisiones = $admisionEntity->getCargoadmisions();
                     $admisionanticiposQuery = $admisionEntity->getAdmisionAnticipos();
                     foreach ($admisionanticiposQuery as $admisionanticipoEntity) {
                         $admisionanticipo = array('idadmisionanticipo' => $admisionanticipoEntity->getIdadmisionanticipo(), 'idadmision' => $admisionanticipoEntity->getIdadmision(), 'admisionanticipo_fecha' => $admisionanticipoEntity->getAdmisionanticipoFecha(), 'admisionanticipo_cantidad' => $admisionanticipoEntity->getAdmisionanticipoCantidad(), 'admisionanticipo_nota' => $admisionanticipoEntity->getAdmisionanticipoNota(), 'admisionanticipo_tipo' => $admisionanticipoEntity->getAdmisionanticipoTipo());
                         array_push($admisionanticiposArray, $admisionanticipo);
                     }
                     if ($cargoadmisiones->count() != 0) {
                         foreach ($cargoadmisiones as $cargoadmisionEntity) {
                             if ($cargoadmisionEntity->getIdlugarinventario() != null) {
                                 $articulovarianteEntity = $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                                 foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                                     $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                                     $propiedadNombre = $propiedadQuery->getPropiedadNombre();
                                 }
                                 foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                                     $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                                     $propiedadvalorNombre = $propiedadvalorQuery->getPropiedadvalorNombre();
                                 }
                                 $cargoadmisionArticulo = array('idcargoadmision' => $cargoadmisionEntity->getIdcargoadmision(), 'idadmision' => $cargoadmisionEntity->getIdadmision(), 'status' => $cargoadmisionEntity->getAdmision()->getAdmisionStatus(), 'cargoadmision_cantidad' => $cargoadmisionEntity->getCargoadmisionCantidad(), 'articulo' => $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadNombre . " " . $propiedadvalorNombre), 'salida' => $cargoadmisionEntity->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoadmisionEntity->getCargoadmisionFecha(), 'precio' => $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoadmisionEntity->getCargoadmisionMonto());
                                 array_push($cargoadmisionArticuloArray, $cargoadmisionArticulo);
                             }
                             if ($cargoadmisionEntity->getIdservicio() != null) {
                                 $cargoadmisionServicio = array('idcargoadmision' => $cargoadmisionEntity->getIdcargoadmision(), 'idadmision' => $cargoadmisionEntity->getIdadmision(), 'status' => $cargoadmisionEntity->getAdmision()->getAdmisionStatus(), 'cargoadmision_cantidad' => $cargoadmisionEntity->getCargoadmisionCantidad(), 'servicio' => $cargoadmisionEntity->getServicio()->getServicioNombre(), 'descripcion' => $cargoadmisionEntity->getServicio()->getServicioDescripcion(), 'precio' => $cargoadmisionEntity->getServicio()->getServicioPrecio(), 'subtotal' => $cargoadmisionEntity->getCargoadmisionMonto(), 'fechahora' => $cargoadmisionEntity->getAdmision()->getAdmisionFechaadmision());
                                 array_push($cargoadmisionServicioArray, $cargoadmisionServicio);
                             }
                         }
                     }
                 }
             }
             return new ViewModel(array('pacienteEntity' => $pacienteEntity, 'consultasQuery' => $consultasQuery, 'admisionesQuery' => $admisionesQuery, 'admisionanticiposArray' => $admisionanticiposArray, 'cargoconsultaArticuloArray' => $cargoconsultaArticuloArray, 'cargoconsultaServicioArray' => $cargoconsultaServicioArray, 'cargoadmisionArticuloArray' => $cargoadmisionArticuloArray, 'cargoadmisionServicioArray' => $cargoadmisionServicioArray));
         }
     } else {
         return $this->redirect()->toRoute('pacientes', array('action' => 'historicos'));
     }
 }
Beispiel #11
0
 public function editarAction()
 {
     $id = (int) $this->params()->fromRoute('id', 0);
     if (!$id) {
         return $this->redirect()->toRoute('producto', array('action' => 'nuevo'));
     }
     $request = $this->getRequest();
     //Verificamos que el idarticulo que se quiere modificar exista
     if (ArticuloQuery::create()->filterByIdarticulo($id)->exists()) {
         //Instanciamos nuestro idarticulo
         $articulo = ArticuloQuery::create()->findPk($id);
         //Almacenamos en un arreglo todas las propiedades
         $tipoCollection = \TipoQuery::create()->find();
         $tipoArray = array();
         foreach ($tipoCollection as $tipoEntity) {
             $tipoArray[$tipoEntity->getIdtipo()] = $tipoEntity->getTipoNombre();
         }
         //Instanciamos nuestro formulario
         $productoForm = new ProductoForm($tipoArray);
         $productoArray = array();
         foreach ($articulo->toArray(BasePeer::TYPE_FIELDNAME) as $articuloKey => $articuloValue) {
             $productoArray[$articuloKey] = $articuloValue;
         }
         //Almacenamos en un arreglo todas las propiedades
         $propiedadCollection = \PropiedadQuery::create()->filterByIdarticulo($productoArray['idarticulo'])->find();
         $propiedadArray = array();
         // Si existen registros
         if ($propiedadCollection->getArrayCopy()) {
             foreach ($propiedadCollection->getArrayCopy() as $propiedadEntity) {
                 foreach ($propiedadEntity->toArray(BasePeer::TYPE_FIELDNAME) as $propiedadKey => $propiedadValue) {
                     //Si los keys son igual a idpropiedad o propiedad_nombre
                     if ($propiedadKey == 'idpropiedad' || $propiedadKey == 'propiedad_nombre') {
                         $propiedadArray[$propiedadKey] = $propiedadValue;
                         //Almacenamos en un arreglo todas los valores de las propiedades
                         $propiedadvalorCollection = \PropiedadvalorQuery::create()->filterByIdpropiedad($propiedadArray['idpropiedad'])->filterByIdarticulo($productoArray['idarticulo'])->find();
                         $propiedadvalorArray = array();
                         if ($propiedadvalorCollection->getArrayCopy()) {
                             foreach ($propiedadvalorCollection->getArrayCopy() as $propiedadvalorEntity) {
                                 foreach ($propiedadvalorEntity->toArray(BasePeer::TYPE_FIELDNAME) as $propiedadvalorKey => $propiedadvalorValue) {
                                     if ($propiedadvalorKey == 'idpropiedadvalor' || $propiedadvalorKey == 'propiedadvalor_nombre') {
                                         $propiedadvalorArray[$propiedadvalorKey] = $propiedadvalorValue;
                                         array_push($productoArray, $propiedadvalorArray);
                                     }
                                 }
                             }
                         }
                         array_push($productoArray, $propiedadArray);
                     }
                 }
             }
         }
         //Le ponemos los datos de nuestro producto a nuestro formulario
         $productoForm->setData($productoArray);
         if ($request->isPost()) {
             //Si hicieron POST
             //Instanciamos nuestro filtro
             $productoFilter = new ProductoFilter();
             //Le ponemos nuestro filtro a nuesto fromulario
             $productoForm->setInputFilter($productoFilter->getInputFilter());
             //Le ponemos los datos a nuestro formulario
             $productoForm->setData($request->getPost());
             //Validamos nuestro formulario
             if ($productoForm->isValid()) {
                 //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Medico
                 foreach ($productoForm->getData() as $productoKey => $productoValue) {
                     $articulo->setByName($productoKey, $productoValue, \BasePeer::TYPE_FIELDNAME);
                 }
                 //Guardamos en nuestra base de datos
                 $articulo->save();
                 //Agregamos un mensaje
                 $this->flashMessenger()->addMessage('Medico guardado exitosamente!');
                 //Redireccionamos a nuestro list
                 return $this->redirect()->toRoute('producto');
             } else {
             }
         }
         return new ViewModel(array('id' => $id, 'ProductoForm' => $productoForm));
     }
 }
Beispiel #12
0
 public function indexAction()
 {
     $request = $this->request;
     if ($request->isPost()) {
         //Si envian el formulario
         $post_data = $request->getPost();
         $id = $post_data['idproducto'];
         if ($id) {
             //Creamos una instacia de nuestro articulovariante
             $articuloVariante = \ArticulovarianteQuery::create()->findOneByIdarticulovariante($id);
             $articuloVariante->setArticulovarianteCodigobarras($request->getPost()->articulovariante_codigobarras);
             $articuloVariante->setArticulovarianteCosto($request->getPost()->articulovariante_costo);
             $articuloVariante->setArticulovariantePrecio($request->getPost()->articulovariante_precio);
             $articuloVariante->setArticulovarianteIva($request->getPost()->articulovariante_iva);
             if ($articuloVariante->isModified()) {
                 $articuloVariante->save();
             }
         } else {
             //Comenzamos a itinerar sobre nuestro los elementos enviados
             foreach ($request->getPost() as $key => $value) {
                 if (strpos($key, 'producto') !== false) {
                     $idArticuloVariante = explode("-", $key);
                     $idArticuloVariante = $idArticuloVariante[1];
                     //Creamos una instacia de nuestro articulovariante
                     $articuloVariante = \ArticulovarianteQuery::create()->findOneByIdarticulovariante($idArticuloVariante);
                     $articuloVariante->setArticulovarianteCodigobarras($value["codigobarras"]);
                     $articuloVariante->setArticulovarianteCosto($value["costo"]);
                     $articuloVariante->setArticulovariantePrecio($value["precio"]);
                     $articuloVariante->setArticulovarianteIva($value["iva"]);
                     if ($articuloVariante->isModified()) {
                         $articuloVariante->save();
                     }
                 }
             }
         }
         //Ahora las imagen
         if (!empty($_FILES)) {
             $upload_folder = '/img/productos/';
             $imagen = $_FILES['articulovariante_imagen'];
             $tipo_archivo = $_FILES['articulovariante_imagen']['type'];
             $tipo_archivo = explode('/', $tipo_archivo);
             $tipo_archivo = $tipo_archivo[1];
             $nombre_archivo = 'producto_' . $post_data['idproducto'] . '.' . $tipo_archivo;
             $tmp_archivo = $imagen['tmp_name'];
             $archivador = $upload_folder . $nombre_archivo;
             if (move_uploaded_file($tmp_archivo, $_SERVER["DOCUMENT_ROOT"] . $archivador)) {
                 $articuloVariante->setArticulovarianteImagen($archivador);
                 $articuloVariante->save();
             }
         } else {
             $oldulr = $_SERVER["DOCUMENT_ROOT"] . $articuloVariante->getArticulovarianteImagen();
             unlink($oldulr);
             $articuloVariante->setArticulovarianteImagen('');
             if ($articuloVariante->isModified()) {
                 $articuloVariante->save();
             }
         }
         //Agregamos un mensaje
         //$this->flashMessenger()->addMessage('Registro de productos guardados exitosamente!');
     }
     //Obtenemos nuestros productos
     $articuloCollection = \ArticuloQuery::create()->find();
     //De cada articulo obtenemos sus variaciones (articulovariante)
     $productos = array();
     foreach ($articuloCollection as $ka => $av) {
         $tmp['nombre'] = $av->getArticuloNombre();
         $articulovarianteCollection = $av->getArticulovariantes();
         //Comenzamos a itinerar sobre las variaciones
         foreach ($articulovarianteCollection as $kav => $vav) {
             $tmp['id'] = $vav->getIdarticulovariante();
             $tmp['codigo_barras'] = !is_null($vav->getArticuloVarianteCodigobarras()) ? $vav->getArticuloVarianteCodigobarras() : '';
             $tmp['costo'] = !is_null($vav->getArticuloVarianteCosto()) ? $vav->getArticuloVarianteCosto() : 0.0;
             $tmp['precio'] = !is_null($vav->getArticuloVariantePrecio()) ? $vav->getArticuloVariantePrecio() : 0.0;
             $tmp['iva'] = !is_null($vav->getArticuloVarianteIva()) ? $vav->getArticuloVarianteIva() : 0;
             $tmp['imagen'] = $vav->getArticuloVarianteImagen();
             //Por cada valor obtenemos su variaciones
             $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($vav->getIdarticulovariante())->find();
             //Comenzamos a itinerar sobre articulovariantevalor para obtener sus resultado
             $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'] .= ' - ';
                 }
             }
             array_push($productos, $tmp);
         }
     }
     //var_dump($this->flashMessenger()->getMessages());
     return new ViewModel(array('flashMessages' => $this->flashMessenger()->getMessages(), 'productos' => $productos));
 }
 public function generarAction()
 {
     if ($this->params()->fromQuery('id')) {
         $param = $this->params()->fromQuery('id');
         $type = explode('-', $param);
         $type = $type[0];
         $idmovimiento = explode('-', $param);
         $idmovimiento = $idmovimiento[1];
         switch ($type) {
             case 'ADM':
                 $admision = \AdmisionQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $admision_detalles_servicios = \CargoadmisionQuery::create()->filterByCargoadmisionTipo('servicio')->filterByIdadmision($idmovimiento)->find();
                 foreach ($admision_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $admision['detalles'][] = $item;
                 }
                 $admision_detalles_articulo = \CargoadmisionQuery::create()->filterByCargoadmisionTipo('articulo')->filterByIdadmision($idmovimiento)->find();
                 foreach ($admision_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $admision['detalles'][] = $item;
                 }
                 $generalOrder = $admision;
                 break;
             case 'CON':
                 $consulta = \ConsultaQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $consulta_detalles_servicios = \CargoconsultaQuery::create()->filterByCargoconsultaTipo('servicio')->filterByIdconsulta($idmovimiento)->find();
                 foreach ($consulta_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $consulta['detalles'][] = $item;
                 }
                 $consulta_detalles_articulo = \CargoconsultaQuery::create()->filterByCargoconsultaTipo('articulo')->filterByIdconsulta($idmovimiento)->find();
                 foreach ($consulta_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $consulta['detalles'][] = $item;
                 }
                 $generalOrder = $consulta;
                 break;
             case 'VP':
                 $venta = \VentaQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $venta_detalles_servicios = \CargoventaQuery::create()->filterByCargoventaTipo('servicio')->filterByIdventa($idmovimiento)->find();
                 foreach ($venta_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $venta['detalles'][] = $item;
                 }
                 $venta_detalles_articulo = \CargoventaQuery::create()->filterByCargoventaTipo('articulo')->filterByIdventa($idmovimiento)->find();
                 foreach ($venta_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $venta['detalles'][] = $item;
                 }
                 $generalOrder = $venta;
                 break;
         }
         //PDF
         $filePathPDF = '/tmp/pdf/notaremision_' . $param . '.pdf';
         $pdf = new \Notasremision\PdfGenerator\PdfGenerator($generalOrder);
         $pdf->AliasNbPages();
         $pdf->AddPage();
         $pdf->FancyTable();
         $pdf->Output($_SERVER['DOCUMENT_ROOT'] . $filePathPDF, 'F');
         $base64_pdf = base64_encode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . $filePathPDF, 'F'));
         return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => true, 'base64' => $base64_pdf, 'base64_name' => $filePathPDF)));
     }
 }
Beispiel #14
0
 /**
  * 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(PropiedadvalorPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     $con->beginTransaction();
     try {
         $deleteQuery = PropiedadvalorQuery::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;
     }
 }
Beispiel #15
0
 public function generarAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $post_data = $request->getPost();
         $cerpem = file_get_contents(__DIR__ . '/../Certificados/aad990814bp7_1210261233s.cer.pem');
         $this->emisorArr['cerpem'] = $cerpem;
         $keypem = file_get_contents(__DIR__ . '/../Certificados/aad990814bp7_1210261233s.key.pem');
         $this->emisorArr['keypem'] = $keypem;
         $receptorArr = \PacientefacturacionQuery::create()->findPk($post_data['idpacientefacturacion'])->toArray(\BasePeer::TYPE_FIELDNAME);
         $idmovimiento = $post_data['idmovimiento'];
         $type = explode('-', $idmovimiento);
         $idmovimiento = $type[1];
         $type = $type[0];
         switch ($type) {
             case 'ADM':
                 $admision = \AdmisionQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $admision_detalles_servicios = \CargoadmisionQuery::create()->filterByCargoadmisionTipo('servicio')->filterByIdadmision($idmovimiento)->find();
                 foreach ($admision_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $admision['detalles'][] = $item;
                 }
                 $admision_detalles_articulo = \CargoadmisionQuery::create()->filterByCargoadmisionTipo('articulo')->filterByIdadmision($idmovimiento)->find();
                 foreach ($admision_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $admision['detalles'][] = $item;
                 }
                 $generalOrder = $admision;
                 break;
             case 'CON':
                 $consulta = \ConsultaQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $consulta_detalles_servicios = \CargoconsultaQuery::create()->filterByCargoconsultaTipo('servicio')->filterByIdconsulta($idmovimiento)->find();
                 foreach ($consulta_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $consulta['detalles'][] = $item;
                 }
                 $consulta_detalles_articulo = \CargoconsultaQuery::create()->filterByCargoconsultaTipo('articulo')->filterByIdconsulta($idmovimiento)->find();
                 foreach ($consulta_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $consulta['detalles'][] = $item;
                 }
                 $generalOrder = $consulta;
                 break;
             case 'VP':
                 $venta = \VentaQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $venta_detalles_servicios = \CargoventaQuery::create()->filterByCargoventaTipo('servicio')->filterByIdventa($idmovimiento)->find();
                 foreach ($venta_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $venta['detalles'][] = $item;
                 }
                 $venta_detalles_articulo = \CargoventaQuery::create()->filterByCargoventaTipo('articulo')->filterByIdventa($idmovimiento)->find();
                 foreach ($venta_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $venta['detalles'][] = $item;
                 }
                 $generalOrder = $venta;
                 break;
         }
         // Aqui hacer conexion con el timbrador
         $bridgeFacturas = new \Facturacion\Timbradores\BridgeFacturas('finkok');
         //// A la pasarela  ------------------------------------------------------------
         $res = $bridgeFacturas->timbrar('factura', $type, $generalOrder, $this->emisorArr, $receptorArr);
         //Verificamos que no exista error al timbrar
         if (isset($res['error']) && $res['error'] != '') {
             $details = $res['error'];
             return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => false, 'details' => $details)));
         } else {
             $xmlTimbrado = $res['response'];
             $filePathXML = '/tmp/xml/' . $res['xmlId'] . '.xml';
             $filePathPDF = '/tmp/pdf/' . $res['xmlId'] . '.pdf';
             //Generamos la url del qrcode
             $qr_main = 'http://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=';
             $qr_url .= 're=' . $this->emisorArr['rfc'];
             //Emisor
             $qr_url .= '&rr=' . $receptorArr['pacientefacturacion_rfc'];
             //Receptor
             $qr_url .= '&tt=' . $this->numberTo17Digits($xmlArray["Comprobante"]["total"]);
             $qr_url .= '&id=' . $xmlArray['TimbreFiscalDigital']['UUID'];
             $qr_url = $qr_main . urlencode($qr_url) . '.png';
             //http://chart.googleapis.com/chart?cht=qr&chl=Hello+world&choe=UTF-8&chs=200x200
             //EL PDF
             $cfdi = $xmlTimbrado['xml'];
             $cadena_original = $xmlTimbrado['cadenaOriginal'];
             $qrcode = $qr_url;
             $pdf = new \Facturacion\PdfGenerator\PdfGenerator($cfdi, $cadena_original, $qrcode);
             $pdf->AliasNbPages();
             $pdf->AddPage();
             $pdf->FancyTable();
             $pdf->QrCode();
             $pdf->Output($_SERVER['DOCUMENT_ROOT'] . $filePathPDF, 'F');
             //Guardamos los datos de la factura
             $factura = new \Factura();
             $factura->setIddatosfacturacion($post_data['idpacientefacturacion']);
             if ($type == 'ADM') {
                 $factura->setIdadmision($idmovimiento);
                 $admision = \AdmisionQuery::create()->findPk($idmovimiento);
                 $admision->setAdmisionFacturada(1);
                 $admision->save();
             } else {
                 if ($type == 'CON') {
                     $factura->setIdconsulta($idmovimiento);
                     $consulta = \ConsultaQuery::create()->findPk($idmovimiento);
                     $consulta->setConsultaFacturada(1);
                     $consulta->save();
                 } else {
                     $factura->setIdventa($idmovimiento);
                     $venta = \VentaQuery::create()->findPk($idmovimiento);
                     $venta->setVentaFacturada(1);
                     $venta->save();
                 }
             }
             $factura->setFacturaUrlXml($filePathXML);
             $factura->setFacturaUrlPdf($filePathPDF);
             $factura->setFacturaFecha($xmlTimbrado['fecha']);
             $factura->setFacturaSellosat($xmlTimbrado['SatSeal']);
             $factura->setFacturaCertificadosat($xmlTimbrado['NoCertificadoSAT']);
             $factura->setFacturaCfdi($xmlTimbrado['uuid']);
             $factura->setFacturaMensaje($xmlTimbrado['codEstatus']);
             $factura->setFacturaTipodepago('unico');
             $factura->setFacturaTipo('ingreso');
             $factura->setFacturaStatus('creada');
             $factura->setFacturaQrcode($qr_url);
             $factura->save();
             $this->flashMessenger()->addMessage('Factura emitida exitosamente!');
             return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => true)));
         }
     }
     if ($this->params()->fromRoute('id')) {
         $id = $this->params()->fromRoute('id');
         $type = explode('-', $id);
         $id = $type[1];
         $type = $type[0];
         $factura_info = array();
         switch ($type) {
             case 'ADM':
                 $admision = \AdmisionQuery::create()->findPk($id);
                 $factura_info['fecha'] = $admision->getAdmisionFechaadmision('d-m-Y H:i');
                 $factura_info['id'] = 'ADM-' . $admision->getIdadmision();
                 $factura_info['paciente'] = $admision->getPaciente()->getPacienteNombre() . ' ' . $admision->getPaciente()->getPacienteAp() . ' ' . $admision->getPaciente()->getPacienteAm();
                 $factura_info['idpaciente'] = $admision->getPaciente()->getIdpaciente();
                 $factura_info['medico'] = $admision->getMedico()->getMedicoNombre() . ' ' . $admision->getMedico()->getMedicoApellidopaterno() . ' ' . $admision->getMedico()->getMedicoApellidomaterno();
                 $factura_info['pagada'] = $admision->getAdmisionPagadaen('d-m-Y H:i');
                 $factura_info['tipo_pago'] = $admision->getAdmisionTipodepago();
                 $factura_info['total'] = $admision->getAdmisionTotal();
                 $factura_info['tipo'] = 'admision';
                 $direcciones = \PacientefacturacionQuery::create()->filterByIdpaciente($admision->getPaciente()->getIdpaciente())->find()->toArray(null, false, \BasePeer::TYPE_FIELDNAME);
                 break;
             case 'CON':
                 $consulta = \ConsultaQuery::create()->findPk($id);
                 $factura_info['fecha'] = $consulta->getConsultaFecha('d-m-Y');
                 $factura_info['fecha'] .= ' ' . $consulta->getConsultaHora();
                 $factura_info['id'] = 'CON-' . $consulta->getIdconsulta();
                 $factura_info['paciente'] = $consulta->getPaciente()->getPacienteNombre() . ' ' . $consulta->getPaciente()->getPacienteAp() . ' ' . $consulta->getPaciente()->getPacienteAm();
                 $factura_info['idpaciente'] = $consulta->getPaciente()->getIdpaciente();
                 $factura_info['medico'] = $consulta->getMedico()->getMedicoNombre() . ' ' . $consulta->getMedico()->getMedicoApellidopaterno() . ' ' . $consulta->getMedico()->getMedicoApellidomaterno();
                 $factura_info['pagada'] = $consulta->getConsultaFecha('d-m-Y');
                 $factura_info['pagada'] .= ' ' . $consulta->getConsultaHora();
                 $factura_info['tipo_pago'] = $consulta->getConsultaTipodepago();
                 $factura_info['total'] = $consulta->getConsultaTotal();
                 $factura_info['tipo'] = 'consulta';
                 $direcciones = \PacientefacturacionQuery::create()->filterByIdpaciente($consulta->getPaciente()->getIdpaciente())->find()->toArray(null, false, \BasePeer::TYPE_FIELDNAME);
                 break;
             case 'VP':
                 $venta = \VentaQuery::create()->findPk($id);
                 $factura_info['fecha'] = $venta->getVentaFecha('d-m-Y H:i');
                 $factura_info['id'] = 'VP-' . $venta->getIdventa();
                 $factura_info['paciente'] = $venta->getPaciente()->getPacienteNombre() . ' ' . $venta->getPaciente()->getPacienteAp() . ' ' . $venta->getPaciente()->getPacienteAm();
                 $factura_info['idpaciente'] = $venta->getPaciente()->getIdpaciente();
                 $factura_info['medico'] = 'N/A';
                 $factura_info['pagada'] = $venta->getVentaFecha('d-m-Y H:i');
                 $factura_info['tipo_pago'] = $venta->getVentaTipodepago();
                 $factura_info['total'] = $venta->getVentaTotal();
                 $factura_info['tipo'] = 'venta al publico';
                 $direcciones = \PacientefacturacionQuery::create()->filterByIdpaciente(1)->find()->toArray(null, false, \BasePeer::TYPE_FIELDNAME);
                 break;
         }
         return new ViewModel(array('general_info' => $factura_info, 'facturacion_info' => $direcciones));
     }
     $this->getResponse()->setStatusCode(404);
     return;
 }
 /**
  * Get the associated Propiedadvalor object
  *
  * @param PropelPDO $con Optional Connection object.
  * @param $doQuery Executes a query to get the object if required
  * @return Propiedadvalor The associated Propiedadvalor object.
  * @throws PropelException
  */
 public function getPropiedadvalor(PropelPDO $con = null, $doQuery = true)
 {
     if ($this->aPropiedadvalor === null && $this->idpropiedadvalor !== null && $doQuery) {
         $this->aPropiedadvalor = PropiedadvalorQuery::create()->findPk($this->idpropiedadvalor, $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->aPropiedadvalor->addArticulovariantevalors($this);
            */
     }
     return $this->aPropiedadvalor;
 }