/** * Creates a new cotizacion model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate($id) { $model = new Cotizacion(); if (isset($_POST['Cotizacion']) && isset($_POST['detalle'])) { //echo '<pre>';print_r($_POST);echo '</pre>';exit; try { $cotizacion = $_POST['Cotizacion']; $conection = Yii::$app->db; $transaction = $conection->beginTransaction(); $comandoCotizacion = $conection->createCommand("INSERT INTO Cotizacion\n (folio, fecha_f, cliente_did, porcentaje,\n comentarios, estatus_did, requisicion_did,usuario_aid, empresa_did, subtotal, iva, total)\n VALUES (:folio, :fecha_f, :cliente_did, :porcentaje,\n :comentarios, :estatus_did, :requisicion_did, :usuario_aid, :empresa_did, :subtotal, :iva, :total)"); $comandoCotizacion->bindValue(":folio", $cotizacion['folio'], PDO::PARAM_STR); $comandoCotizacion->bindValue(":fecha_f", $cotizacion['fecha_f'], PDO::PARAM_STR); $comandoCotizacion->bindValue(":cliente_did", $cotizacion['cliente_did'], PDO::PARAM_INT); $comandoCotizacion->bindValue(":porcentaje", $cotizacion['porcentaje'], PDO::PARAM_INT); $comandoCotizacion->bindValue(":comentarios", $cotizacion['comentarios'], PDO::PARAM_STR); $comandoCotizacion->bindValue(":estatus_did", 1, PDO::PARAM_INT); $comandoCotizacion->bindValue(":requisicion_did", $id, PDO::PARAM_INT); $comandoCotizacion->bindValue(":empresa_did", Yii::$app->session->get('empresa_did'), PDO::PARAM_INT); $comandoCotizacion->bindValue(":usuario_aid", Yii::$app->user->id, PDO::PARAM_INT); $comandoCotizacion->bindValue(":subtotal", $cotizacion['subtotal'], PDO::PARAM_INT); $comandoCotizacion->bindValue(":iva", $cotizacion['iva'], PDO::PARAM_INT); $comandoCotizacion->bindValue(":total", $cotizacion['total'], PDO::PARAM_INT); if ($comandoCotizacion->execute()) { $cotizacionId = Cotizacion::find()->orderBy("id DESC")->one(); $detalleCotizacion = $_POST['detalle']; foreach ($detalleCotizacion as $detalle) { $comandoDetalle = $conection->createCommand("INSERT INTO DetalleCotizacion\n (proveedor_aid, cantidad, articulo_aid, comentarios, estatus_did, cotizacion_did, importe, preciounitario, preciounitariofinal, porcentaje)\n VALUES(:proveedor_aid, :cantidad, :articulo_aid, :comentarios, :estatus_did, :cotizacion_did, :importe , :preciounitario, :preciounitariofinal, :porcentaje)"); $comandoDetalle->bindValue(":proveedor_aid", $detalle['proveedor'], PDO::PARAM_STR); $comandoDetalle->bindValue(":cantidad", $detalle['cantidad'], PDO::PARAM_STR); $comandoDetalle->bindValue(":articulo_aid", $detalle['articulo'], PDO::PARAM_STR); $comandoDetalle->bindValue(":comentarios", $detalle['comentarios'], PDO::PARAM_STR); $comandoDetalle->bindValue(":estatus_did", 1, PDO::PARAM_INT); $comandoDetalle->bindValue(":cotizacion_did", $cotizacionId->id, PDO::PARAM_INT); $comandoDetalle->bindValue(":importe", $detalle['importe'], PDO::PARAM_INT); $comandoDetalle->bindValue(":preciounitario", $detalle['precioUnitario'], PDO::PARAM_STR); $comandoDetalle->bindValue(":preciounitariofinal", $detalle['precioFinal'], PDO::PARAM_STR); $comandoDetalle->bindValue(":porcentaje", $detalle['porcentaje'], PDO::PARAM_INT); $comandoDetalle->execute(); } } $transaction->commit(); } catch (Exception $e) { $transaction->rollBack(); } return $this->redirect(['index']); } else { $cotizacion = Requisicion::find()->where('id=:id', ['id' => $id])->one(); $model->folio = $cotizacion->folio; $model->cliente_did = $cotizacion->cliente_did; $model->fecha_f = date("Y-m-d"); $detalle = DetalleRequisicion::find()->asArray()->where("requisicion_did = " . $id)->all(); return $this->render('create', ['model' => $model, 'detalle' => $detalle]); } }
public function actionUpdate($id) { $model = $this->findModel($id); if (isset($_POST['Requisicion'])) { $conection = Yii::$app->db; try { $requisicion = $_POST['Requisicion']; $conection = Yii::$app->db; $transaction = $conection->beginTransaction(); $comandoRequisicion = $conection->createCommand("UPDATE Requisicion SET\n folio = :folio,\n fecha_f = :fecha_f,\n cliente_did = :cliente_did,\n departamento = :departamento,\n comentarios = :comentarios,\n estatus_did = :estatus_did,\n usuario_aid = :usuario_aid,\n empresa_did = :empresa_did\n WHERE id = " . $id); $comandoRequisicion->bindValue(":folio", $requisicion['folio'], PDO::PARAM_STR); $comandoRequisicion->bindValue(":fecha_f", $requisicion['fecha_f'], PDO::PARAM_STR); $comandoRequisicion->bindValue(":cliente_did", $requisicion['cliente_did'], PDO::PARAM_INT); $comandoRequisicion->bindValue(":departamento", $requisicion['departamento'], PDO::PARAM_STR); $comandoRequisicion->bindValue(":comentarios", $requisicion['comentarios'], PDO::PARAM_STR); $comandoRequisicion->bindValue(":estatus_did", $requisicion['estatus_did'], PDO::PARAM_INT); $comandoRequisicion->bindValue(":usuario_aid", $requisicion['usuario_aid'], PDO::PARAM_INT); $comandoRequisicion->bindValue(":empresa_did", Yii::$app->session->get('empresa_did'), PDO::PARAM_INT); $comandoRequisicion->execute(); $detalleRequisicion = $_POST['detalle']; $comandoEliminaDetalle = $conection->createCommand("DELETE FROM DetalleRequisicion WHERE requisicion_did = " . $id); $comandoEliminaDetalle->execute(); foreach ($detalleRequisicion as $detalle) { $comandoInsertaDetalle = $conection->createCommand("INSERT INTO DetalleRequisicion\n (cantidad, articulo_aid, comentarios, requisicion_did)\n VALUES(:cantidad, :articulo_aid, :comentarios, :requisicion_did)"); $comandoInsertaDetalle->bindValue(":cantidad", $detalle['cantidad'], PDO::PARAM_STR); $comandoInsertaDetalle->bindValue(":articulo_aid", $detalle['articulo'], PDO::PARAM_STR); $comandoInsertaDetalle->bindValue(":comentarios", $detalle['comentarios'], PDO::PARAM_STR); $comandoInsertaDetalle->bindValue(":requisicion_did", $id, PDO::PARAM_STR); $comandoInsertaDetalle->execute(); } $conection->createCommand("INSERT INTO Actividad (descripcion, usuario) Values ('Ha actualizado una requisición', '" . Yii::$app->user->id . "')")->execute(); $transaction->commit(); $this->redirect(array('view', 'id' => $id)); } catch (Exception $e) { echo '<pre>'; print_r($e); echo "</pre>"; exit; $transaction->rollBack(); Yii::$app->user->setFlash('warning', '<strong>Hubo un error al actualizar la requisición!</strong>'); } } else { $detalle = DetalleRequisicion::find()->asArray()->where("requisicion_did = " . $id)->all(); return $this->render('update', ['model' => $model, 'detalle' => $detalle]); } }