示例#1
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));
 }
 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;
 }
示例#3
0
 function getArticuloNombreByid($id)
 {
     $articulovariante = \ArticulovarianteQuery::create()->findPk($id);
     //Nombre
     $articulo_nombre = $articulovariante->getArticulo()->getArticuloNombre();
     //Descripcion
     $articulo_descripcion = '';
     $articulovariantevalor = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($id)->find();
     $articulovariantevalorCount = count($articulovariantevalor->toArray());
     $count = 0;
     foreach ($articulovariantevalor as $valor) {
         $articulo_descripcion .= $valor->getPropiedad()->getPropiedadNombre() . ':';
         $articulo_descripcion .= $valor->getPropiedadvalor()->getPropiedadvalorNombre();
         $count++;
         if ($count < $articulovariantevalorCount) {
             $articulo_descripcion .= ' - ';
         }
     }
     return $articulo_nombre . ' ' . $articulo_descripcion;
 }
示例#4
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));
 }
示例#5
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));
 }
示例#6
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 Articulovariantevalors 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|Articulovariantevalor[] List of Articulovariantevalor objects
  */
 public function getArticulovariantevalorsJoinPropiedadvalor($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN)
 {
     $query = ArticulovariantevalorQuery::create(null, $criteria);
     $query->joinWith('Propiedadvalor', $join_behavior);
     return $this->getArticulovariantevalors($query, $con);
 }
示例#7
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)));
     }
 }
示例#9
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;
 }
 /**
  * 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(ArticulovariantevalorPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     $con->beginTransaction();
     try {
         $deleteQuery = ArticulovariantevalorQuery::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;
     }
 }