public function actionSortirbienautre()
 {
     $modelbien = new Bien();
     $model = new Reformer();
     $ref = new Reformer();
     $data = null;
     $selection = (array) Yii::$app->request->post('selection');
     foreach ($selection as $id) {
         $x = 0;
         $modelss = $this->findModel($id);
         $modelReformerSearch = new ReformerSearch();
         $dataProviderRS = $modelReformerSearch->searchRef(Yii::$app->request->queryParams, $modelss->codebien);
         $modelb = $dataProviderRS->getModels();
         foreach ($modelb as $rowb) {
             $modelss->titre = $model->titre;
             $modelss->save();
             $query = Bien::find()->where(['codebien' => $rowb->codebien]);
             $dataProviderBien = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 10]]);
             $modelsortir = $dataProviderBien->getModels();
             foreach ($modelsortir as $rowbs) {
                 $modelbien->codebien = $rowbs->codebien;
                 $rowbs->statutbien = "sortirf";
                 $rowbs->save();
             }
         }
     }
     $searchModel = new BienSearch();
     $i = 0;
     $dataProvider = $searchModel->searchListeReformeNonSortiePatrimoine(Yii::$app->request->queryParams);
     $models = $dataProvider->getModels();
     foreach ($models as $row) {
         /*---------------------------------  recherche type de reforme et la date de reforme ------------------------*/
         $comptecomp = $this->cherchercomptebien($row->codebien);
         $modelReformerSearch = new ReformerSearch();
         $dataProviderRS = $modelReformerSearch->searchRef(Yii::$app->request->queryParams, $row->codebien);
         $modelb = $dataProviderRS->getModels();
         $typ = null;
         $ann = null;
         foreach ($modelb as $rowb) {
             $typ = $rowb->typereforme;
             $ann = $rowb->datereforme;
             echo "type=" . $typ;
         }
         /*-----------------------------------------------tableau de resultat------------------------------------------------*/
         if ($typ != "Don" && $typ != "Cession") {
             $data[$i] = ['comptecomptable' => $comptecomp, 'codebien' => $row->codebien, 'designationbien' => $row->designationbien, 'typereforme' => $typ, 'dateRef' => $ann];
             $i++;
         }
     }
     $dataProviderRes = new ArrayDataProvider(['key' => 'codebien', 'allModels' => $data, 'sort' => ['attributes' => ['comptecomptable', 'codebien', 'designationbien', 'typereforme', 'dateRef']]]);
     $dataProvider = $dataProviderRes;
     return $this->render('sortirbienpatrimoineAutre', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'model' => $model]);
 }
 public function cherchercomptebien($code)
 {
     $res = 00;
     $model = new BienSearch();
     $searchModel = new BienSearch();
     //searchConsultationBienSelonCode
     $dataProvider = $searchModel->searchConsultationBienSelonCode(Yii::$app->request->queryParams, $code);
     $modelss = $dataProvider->getModels();
     foreach ($modelss as $rowsF) {
         $searchModelsf = new SousFamilleSearch();
         $dataProvidersf = $searchModelsf->searchSF(Yii::$app->request->queryParams, $rowsF->codesousfamille);
         $modelss = $dataProvidersf->getModels();
         foreach ($modelss as $rowsF) {
             $searchModelsf = new SousFamilleSearch();
             $dataProvidersf = $searchModelsf->searchSF(Yii::$app->request->queryParams, $rowsF->codesousfamille);
             $modelss = $dataProvidersf->getModels();
             foreach ($modelss as $rowsF) {
                 $searchModelF = new FamilleSearch();
                 $dataProviderF = $searchModelF->searchFC(Yii::$app->request->queryParams, $rowsF->codefamille);
                 $modelF = $dataProviderF->getModels();
                 foreach ($modelF as $rowF) {
                     $res = $rowF->codecomptecomptable;
                     return $res;
                 }
             }
         }
     }
 }
 public function actionAfficherecartcomptage()
 {
     $i = 0;
     $cpt1 = 0;
     $cpt2 = 0;
     $cpttotal = 0;
     $cptstr = 0;
     $data = null;
     $model = new Inventorier();
     $searchModel = new InventorierSearch();
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
     $cpttotal = $dataProvider->getTotalCount();
     $models = $dataProvider->getModels();
     /**************************traiter ecart entre les deux comptages **************************************/
     $selection = (array) Yii::$app->request->post('selection');
     //typecasting
     foreach ($selection as $id) {
         $modeltr = $this->findModel($id);
         $modeltr->comptage1 = '1';
         $modeltr->comptage2 = '1';
         $modeltr->save();
     }
     if ($model->load(Yii::$app->request->post())) {
         $querystr = Structure::find();
         $dataProviderstr = new ActiveDataProvider(['query' => $querystr]);
         $modelsstr = $dataProviderstr->getModels();
         foreach ($modelsstr as $rowstr) {
             if (intval($model->codestructure) == $rowstr->codestructure) {
                 $model->designationstructure = $rowstr->designation;
             }
         }
         $searchModelbur = new BureauSearch();
         $dataProviderbur = $searchModelbur->search(Yii::$app->request->queryParams);
         $modelsbur = $dataProviderbur->getModels();
         foreach ($modelsbur as $rowbur) {
             if ($rowbur->codestructure == intval($model->codestructure)) {
                 $searchModelaff = new AffecterSearch();
                 $dataProvideraff = $searchModelaff->searchCodbur(Yii::$app->request->queryParams, $rowbur->codebureau);
                 $modelsaff = $dataProvideraff->getModels();
                 foreach ($modelsaff as $rowaff) {
                     $searchModelbien = new BienSearch();
                     $dataProviderbien = $searchModelbien->searchConsultationBienSelonCodestatut(Yii::$app->request->queryParams, $rowaff->codebien);
                     $modelbien = $dataProviderbien->getModels();
                     foreach ($modelbien as $rowbien) {
                         if ($rowbien->statutbien == "affecte") {
                             $modeltrouv = Inventorier::findOne($rowbien->codebien);
                             if (($modeltrouv = Inventorier::findOne($rowbien->codebien)) !== null) {
                                 $cptstr++;
                                 if ($modeltrouv->comptage1 !== '1' && $modeltrouv->comptage2 == '1' || $modeltrouv->comptage1 == '1' && $modeltrouv->comptage2 !== '1') {
                                     if ($modeltrouv->comptage1 == '1' && $modeltrouv->comptage2 == '1') {
                                     } else {
                                         $data[$i] = ['codebien' => $rowbien->codebien, 'designation' => $rowbien->designationbien, 'bureau' => $rowbur->codebureau, 'etat' => $rowbien->etatbien];
                                         $i++;
                                         $cpt1++;
                                     }
                                 }
                             }
                         } else {
                             if ($rowbien->statutbien == "transfere") {
                                 $bur = $this->dernierTransfert($rowbien->codebien);
                                 $modeltrouv = Inventorier::findOne($rowbien->codebien);
                                 if (($modeltrouv = Inventorier::findOne($rowbien->codebien)) !== null) {
                                     $cptstr++;
                                     if ($modeltrouv->comptage1 == '1' && $modeltrouv->comptage2 !== '1' || $modeltrouv->comptage1 !== '1' && $modeltrouv->comptage2 == '1') {
                                         if ($modeltrouv->comptage1 == '1' && $modeltrouv->comptage2 == '1') {
                                         } else {
                                             $data[$i] = ['codebien' => $rowbien->codebien, 'designation' => $rowbien->designationbien, 'bureau' => $bur, 'etat' => $rowbien->etatbien];
                                             $i++;
                                             $cpt1++;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         $prc = 0;
         if ($cptstr != 0) {
             $prc = $cpt1 / $cptstr;
             $prc = $prc * 100;
         }
         $prc = number_format($prc, 2, ',', ' ');
         $model->pourcentageecart = $prc . " %";
         $dataProviderRes = new ArrayDataProvider(['allModels' => $data, 'key' => 'codebien', 'sort' => ['attributes' => ['codebien', 'designation', 'bureau', 'etat']]]);
         //  $modeltest=$dataProviderRes->getModels();
         $dataProvider = $dataProviderRes;
     } else {
         foreach ($models as $row) {
             if ($row->comptage1 == '1' && $row->comptage2 != '1') {
                 $rowbien = Bien::findOne($row->codebien);
                 $data[$i] = ['codebien' => $row->codebien, 'designation' => $rowbien->designationbien, 'bureau' => $row->bureau, 'etat' => $rowbien->etatbien];
                 $i++;
                 $cpt1++;
             } else {
                 if ($row->comptage1 != '1' && $row->comptage2 == '1') {
                     $rowbien = Bien::findOne($row->codebien);
                     $data[$i] = ['codebien' => $row->codebien, 'designation' => $rowbien->designationbien, 'bureau' => $row->bureau, 'etat' => $rowbien->etatbien];
                     $i++;
                     $cpt1++;
                 }
             }
         }
         $prc = 0;
         if ($cpttotal != 0) {
             $prc = $cpt1 / $cpttotal;
         }
         $prc = $prc * 100;
         $seuil = 0;
         $modelin = new Exerciceinventaire();
         $searchModelexerc = new ExerciceinventaireSearch();
         $dataProviderexerc = $searchModelexerc->search(Yii::$app->request->queryParams);
         $modelsexerc = $dataProviderexerc->getModels();
         foreach ($modelsexerc as $rowex) {
             if ($rowex->anneeinv == date('Y')) {
                 $seuil = $rowex->seuil_compte;
                 if ($seuil <= $prc) {
                     \Yii::$app->getSession()->setFlash('info', "L'écart entre les deux comptage est arrivé au seil, Vous devez passer au troisième comptage.");
                 }
             }
         }
         $prc = number_format($prc, 2, ',', ' ');
         $prc = $prc . " %";
         $model->pourcentageecart = $prc;
         $dataProviderRes = new ArrayDataProvider(['allModels' => $data, 'key' => 'codebien', 'sort' => ['attributes' => ['codebien', 'designation', 'bureau', 'etat']]]);
         //  $modeltest=$dataProviderRes->getModels();
         $dataProvider = $dataProviderRes;
     }
     return $this->render('extraireEcartComptage', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'model' => $model]);
 }
 public function actionEtatimmobien()
 {
     $model = new Bien();
     $data = array();
     $i = 0;
     $searchModel = new BienSearch();
     $dataProvider = $searchModel->searchConsultationBien(Yii::$app->request->queryParams, '0');
     $now = time();
     $comptecomp = 00;
     $totalActif = 0.0;
     $totalDotation = 0.0;
     $totalAmort = 0.0;
     $totalvalNet = 0.0;
     if ($model->load(Yii::$app->request->post())) {
         $comptecomp = $model->comptecomptable;
         $anneeExercice = $model->anneexercice;
         $compte = $comptecomp;
         $cpt = substr('' . $compte, 0, 3);
         if ($cpt == "211" || $cpt == "212" || $cpt == "213") {
             \Yii::$app->getSession()->setFlash('danger', "SVP insérer un compte comptable amortissable.");
             return $this->render('etatImmoParBien', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'model' => $model]);
         }
     }
     /*-----------------------------rechercher la famille --------------------------------------------*/
     $modelRes = new Bien();
     $searchModelF = new FamilleSearch();
     $dataProviderF = $searchModelF->searchF(Yii::$app->request->queryParams, $comptecomp);
     $modelF = $dataProviderF->getModels();
     foreach ($modelF as $rowF) {
         /*----------------------Rechercher la sous famille ------------------------------------------*/
         $searchModelsf = new SousFamilleSearch();
         $dataProvidersf = $searchModelsf->search(Yii::$app->request->queryParams, $rowF->codefamille);
         $modelssf = $dataProvidersf->getModels();
         foreach ($modelssf as $rowsF) {
             /*--------------------------Rechercher liste des biens------------------------------*/
             $dataProvider = $searchModel->searchConsultationBien(Yii::$app->request->queryParams, $rowsF->codesousfamille);
             $models = $dataProvider->getModels();
             foreach ($models as $row) {
                 $resultat = $this->CalculeAmortissements($row->dateacquisition, $anneeExercice, $row->dureevie, $row->prixachat);
                 $long = count($resultat) - 1;
                 /*----------------------------------------   tableau de resultat              -----------------------------------*/
                 $formatter = \Yii::$app->formatter;
                 $resultat[$long][1] = number_format($resultat[$long][1], 2, ',', ' ');
                 $resultat[$long][2] = number_format($resultat[$long][2], 2, ',', ' ');
                 $resultat[$long][3] = number_format($resultat[$long][3], 2, ',', ' ');
                 $resultat[$long][4] = number_format($resultat[$long][4], 2, ',', ' ');
                 $data[$i] = ['comptecomptable' => $comptecomp, 'codebien' => $row->codebien, 'designationbien' => $row->designationbien, 'dateacquisition' => $row->dateacquisition, 'actifbrut' => $resultat[$long][1], 'dureevie' => $row->dureevie, 'dotation' => $resultat[$long][2], 'amortpratiquee' => $resultat[$long][3], 'valeurnet' => $resultat[$long][4]];
                 $i++;
             }
         }
     }
     $dataProviderRes = new ArrayDataProvider(['allModels' => $data, 'sort' => ['attributes' => ['comptecomptable', 'codebien', 'designationbien', 'dateacquisition', 'actifbrut', 'dureevie', 'dotation', 'amortpratiquee', 'valeurnet']]]);
     $dataProvider = $dataProviderRes;
     return $this->render('etatImmoParBien', ['searchModel' => $searchModel, 'dataProvider' => $dataProviderRes, 'model' => $model]);
 }