public function addChequesTerceros($opId, $chequesListJson) { try { //$chequesList = utf8_encode($chequesList);//html_entity_decode($chequesList); $chequesList = json_decode($chequesListJson); $chequesFlag = false; $adminMapper = new Gyuser_Model_AdminDataMapper(); $adminSettings = $adminMapper->getAdminSettings(); foreach ($chequesList as $cheque) { unset($clientId); unset($bankId); unset($chequeId); //1. add client $clientMapper = new Gyuser_Model_UserDataMapper(); $client = new Gyuser_Model_User(); $client->setFirst_name($cheque->first_name); $client->setLast_name($cheque->last_name); $client->setDNI($cheque->DNI); $client->setCUIL($cheque->CUIL); $clientId = $clientMapper->createTerceroClient($client); if (!$clientId) { throw Exception('Error creating cheque tercero client on DB'); } //2. add bank account $bankMapper = new Gyuser_Model_BankAccountsDataMapper(); $bank = new Gyuser_Model_BankAccounts(); $bank->setUser_id($clientId); $bank->setBank_name($cheque->bank_name); $bank->setAccount_n($cheque->account_n); $bank->setBranch($cheque->branch); $bank->setZip_code($cheque->zip_code); $bank->setLocation_capital($cheque->location_capital); $bank->setOpening_date($cheque->account_date); $bankId = $bankMapper->save($bank); if (!$bankId) { throw Exception('Error inserting bank account for cheque tercero on DB'); } //3. add cheque list($Day, $Month, $Year) = explode('/', $cheque->check_date); $stampeddate = mktime(12, 0, 0, $Month, $Day, $Year); $date = date("Y-m-d", $stampeddate); $amount = floatval($cheque->check_amount); if ($cheque->location_capital == '1') { $acreditacionHrs = $adminSettings->getTiempo_ac_capital(); } else { $acreditacionHrs = $adminSettings->getTiempo_ac_interior(); } $data = array('operation_id' => $opId, 'client_id' => $clientId, 'bank_account_id' => $bankId, 'date' => $date, 'check_n' => $cheque->check_n, 'amount' => $amount, 'acreditacion_hrs' => $acreditacionHrs, 'local' => 1, 'status' => 6); $chequeId = $this->getDbTable()->insert($data); if (!$chequeId) { throw Exception('Error inserting cheque tercero on DB'); } } return $opId; } catch (Exception $e) { } }
public function OpTercerosStateChange($opId, $newStateId, $tasaAnual = null, $chequesListJson = null) { $success = 0; $obj = new Gyuser_Model_Operations(); $obj->setId($opId); $opResult = $this->GetStateByOperationId($obj); $currentStateId = (int) $opResult['stateid']; if ($currentStateId < $newStateId) { switch ($newStateId) { case 2: $data = array('state_order_id' => $obj->getState(), 'cave_id' => $obj->getCave_id()); break; case 3: case 4: $data = array('state_order_id' => $obj->getState(), 'report' => $obj->getReport()); break; case 5: //cerrada $chequesMapper = new Gyuser_Model_ChequesDataMapper(); $informesCompletos = $chequesMapper->checkInformesCompletos($opId); if ($informesCompletos) { $data = array('state_order_id' => $newStateId); } break; case 6: //op. en camino $opAmount = 0; $opTodayVal = 0; $adminMapper = new Gyuser_Model_AdminDataMapper(); $admin = $adminMapper->getAdminSettings(); $prov = new Gyuser_Model_Providers(); $prov->setAcreditacion_capital($admin->getTiempo_ac_capital()); $prov->setAcreditacion_interior($admin->getTiempo_ac_interior()); $prov->setGastos_general($admin->getGastos_general()); $prov->setGastos_interior($admin->getGastos_interior()); $prov->setImpuesto_al_cheque($admin->getImpuesto_al_cheque()); $prov->setTasa_anual($tasaAnual); $chequesMapper = new Gyuser_Model_ChequesDataMapper(); $cheque = new Gyuser_Model_Cheques(); $cheques = $chequesMapper->GetChequesByOpId($opId); //gets only cheques with status 7 (aprobados) foreach ($cheques as $cheque) { $cDetails = $chequesMapper->saveDetails($cheque->getId(), $prov); $opAmount += $cDetails['amount']; $opTodayVal += $cDetails['terceros_today_value']; } $data = array('amount' => $opAmount, 'amount_today' => $opTodayVal, 'ac_date' => date('Y-m-d'), 'tasa_porcentual' => $tasaAnual, 'state_order_id' => $newStateId); break; case 9: //consolidated / cheques en cartera $chequesList = json_decode($chequesListJson); $chequesMapper = new Gyuser_Model_ChequesDataMapper(); $chequesTotals = $chequesMapper->consolidateCheques($chequesList); $data = array('amount' => $chequesTotals['amount'], 'amount_today' => $chequesTotals['todayValue'], 'state_order_id' => $newStateId); break; case 99: $chequesMapper = new Gyuser_Model_ChequesDataMapper(); $cheques = new Gyuser_Model_Cheques(); $cheques->setOperation_id($obj->getId()); $result = $chequesMapper->deleteByOperationId($cheques); $data = array('state_order_id' => $obj->getState()); break; default: $data = array('state_order_id' => $obj->getState()); break; } if ($data) { $id = (int) $obj->getId(); $id = $this->getDbTable()->update($data, array('id = ?' => $id)); } $success = 1; } elseif ($currentStateId >= $newStateId) { //new state is smaller or equal to current state $success = 2; } //2 = the state has already been changed. return $success; }