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