Пример #1
0
 public function guardarordenAction()
 {
     //Recibimos la orden como parametro
     $request = $this->request;
     $orden = $request->getPost('orden');
     //Cre un nuevo objeto de ordencompra
     $ordenCompra = new \Ordencompra();
     //Seteo los datos
     $ordencompra_fecha = new \DateTime();
     $ordencompra_fecha = $ordencompra_fecha->createFromFormat('d/m/Y', $orden['orden_fecha']);
     if (!empty($orden['orden_fechaapagar'])) {
         $ordencompra_fechapagar = new \DateTime();
         $ordencompra_fechapagar = $ordencompra_fechapagar->createFromFormat('d/m/Y', $orden['orden_fechaapagar']);
     }
     $ordencompra_importe = $orden['orden_importe'];
     $ordencompra_importe_split = explode('$ ', $ordencompra_importe);
     $ordencompra_importe = $ordencompra_importe_split[1];
     $ordencompra_importe = str_replace(',', '', $ordencompra_importe);
     //Guardamos nuestra compra
     $ordenCompra->setIdproveedor($orden['orden_proveedor'])->setOrdencompraStatus($orden['orden_status'])->setOrdencompraNofactura($orden['orden_folio'])->setOrdencompraFecha($ordencompra_fecha->format('Y-m-d'))->setOrdencompraImporte($ordencompra_importe);
     if (isset($ordencompra_fechapagar)) {
         $ordenCompra->setOrdencompraFechaapagar($ordencompra_fechapagar->format('Y-m-d'));
     }
     if (!is_null($orden['orden_facturapdf'])) {
         $ordenCompra->setOrdencompraFacturapdf($orden['orden_facturapdf']);
     }
     //echo '<pre>';var_dump($ordenCompra->toArray()); echo '<pre>';exit();
     $ordenCompra->save();
     //Itenaramos sobre los items
     foreach ($orden['orden_items'] as $item) {
         $item_importe = $item['ordencompradetalle_importe'];
         $item_importe_split = explode('$ ', $item_importe);
         $item_importe = $item_importe_split[1];
         $item_importe = str_replace(',', '', $item_importe);
         $ordenCompraDetalle = new \Ordencompradetalle();
         $ordenCompraDetalle->setIdordencompra($ordenCompra->getIdordencompra())->setIdarticulovariante($item['idarticulovariante'])->setOrdencompradetalleCantidad($item['ordencompradetalle_cantidad'])->setOrdencompradetalleCosto($item['ordencompradetalle_costo'])->setOrdencompradetallePrecio($item['ordencompradetalle_precio'])->setOrdencompradetalleImporte($item_importe);
         if (!empty($item['ordencompradetalle_caducidad'])) {
             $caducidad = \DateTime::createFromFormat('m/Y', $item['ordencompradetalle_caducidad']);
             $caducidad = $caducidad->format('Y-m-d');
             $ordenCompraDetalle->setOrdencompradetalleCaducidad($caducidad);
         }
         $ordenCompraDetalle->save();
         //Tambien actualizamos el precio del articulo variante
         $articulo_variante = \ArticulovarianteQuery::create()->findPk($item['idarticulovariante']);
         $articulo_variante->setArticulovariantePrecio($item['ordencompradetalle_precio']);
         $articulo_variante->setArticulovarianteCosto($item['ordencompradetalle_costo']);
         $articulo_variante->save();
         //Los insertamos en nuestro almacen general
         $lugarInventario = new \Lugarinventario();
         $lugarInventario->setIdlugar($orden['orden_lugar'])->setIdordencompradetalle($ordenCompraDetalle->getIdordencompradetalle())->setLugarinventarioCantidad($ordenCompraDetalle->getOrdencompradetalleCantidad())->save();
     }
     //Agregamos un mensaje
     $this->flashMessenger()->addMessage('Orden generada exitosamente!');
     return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => true)));
 }