Пример #1
0
 public function refrescar()
 {
     $this->deleteAll();
     $cuentas = CuentaCorriente::model()->getVigentes();
     foreach ($cuentas as $cuenta) {
         $saldo = $cuenta->saldoAFecha(date("Y-m-d"));
         if ($saldo < 0) {
             $moroso = new TempMorosos();
             $moroso->apellido = $cuenta->contrato->cliente->usuario->apellido;
             $moroso->departamento = $cuenta->contrato->departamento->numero;
             $moroso->fecha = $cuenta->fechaUltimaMora();
             $diff = date_diff(date_create(date("Y-m-d")), date_create($moroso->fecha), true);
             $moroso->dias = $diff->format("%a");
             $moroso->monto = -$saldo;
             $moroso->nombre = $cuenta->contrato->cliente->usuario->nombre;
             $moroso->propiedad = $cuenta->contrato->departamento->propiedad->nombre;
             $moroso->cuenta_corriente_id = $cuenta->id;
             $moroso->contrato_id = $cuenta->contrato->id;
             $moroso->save();
         }
     }
 }
Пример #2
0
 public function isOwnerProp($user_id, $cta_id)
 {
     $prop_id = Propietario::model()->getId($user_id);
     $cuenta = CuentaCorriente::model()->findByPk($cta_id);
     return $cuenta->contrato->departamento->propiedad->propietario_id == $prop_id;
 }
Пример #3
0
 public function getCuentas($owner_id)
 {
     $accounts = CuentaCorriente::model()->findAll(array('join' => 'JOIN contrato c ON t.contrato_id = c.id ' . '      JOIN departamento d ON c.departamento_id = d.id ' . '      JOIN propiedad p ON d.propiedad_id = p.id', 'condition' => 'p.propietario_id = :propietarioID', 'params' => array(':propietarioID' => $owner_id)));
     return $accounts;
 }
Пример #4
0
 /**
  * Deletes a particular model.
  * If deletion is successful, the browser will be redirected to the 'admin' page.
  * @param integer $id the ID of the model to be deleted
  */
 public function actionDelete($id)
 {
     // @todo: Borrar en cascada
     $contrato = $this->loadModel($id);
     $cuenta = CuentaCorriente::model()->findByAttributes(array('contrato_id' => $id));
     if ($cuenta != null) {
         $cuenta->delete();
     }
     //borrar el docx y la imagen de este contrato
     if (file_exists(Yii::app()->basePath . '/documentos/contratos/Contrato_' . $contrato->folio . '.docx')) {
         unlink(Yii::app()->basePath . '/documentos/contratos/Contrato_' . $contrato->folio . '.docx');
     }
     if (file_exists(Yii::app()->basePath . '/documentos/contratos/Contrato_' . $contrato->folio . '.jpg')) {
         unlink(Yii::app()->basePath . '/documentos/contratos/Contrato_' . $contrato->folio . '.jpg');
     }
     if (file_exists(Yii::app()->basePath . '/documentos/contratos/CartaAviso_' . $contrato->folio . '.docx')) {
         unlink(Yii::app()->basePath . '/documentos/contratos/CartaAviso_' . $contrato->folio . '.docx');
     }
     $contrato->delete();
     // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
     if (!isset($_GET['ajax'])) {
         $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
     }
 }
Пример #5
0
 public function searchCartola($cuenta_id)
 {
     $cuenta = CuentaCorriente::model()->findByPk($cuenta_id);
     if ($cuenta == null) {
         throw new CHttpException(403, 'Usted no se encuentra autorizado para realizar esta acción.');
     }
     //revisar que puede ver estos movimientos
     if (Yii::app()->user->rol == 'propietario') {
         if (!$cuenta->estaAsociadoPropietario(Yii::app()->user->id)) {
             throw new CHttpException(403, 'Usted no se encuentra autorizado para realizar esta acción.');
         }
     }
     if (Yii::app()->user->rol == 'cliente') {
         die;
     }
     // @todo Please modify the following code to remove attributes that should not be searched.
     $criteria = new CDbCriteria();
     $criteria->compare('cuenta_corriente_id', $cuenta_id);
     return new CActiveDataProvider($this, array('criteria' => $criteria, 'sort' => array('defaultOrder' => 'fecha DESC,id DESC', 'attributes' => array('fecha' => array('asc' => 'fecha', 'desc' => 'fecha DESC'), '*'))));
 }
/**
 * 
 * Función encargada de regenerar las cuentas corrientes de empresas en base a los aportes existentes.
 * Fecha de Creación: 05/09/2011
 * @author Pablo López M.
 * @return boolean - True si la regeneracion es correcta, en caso contrario false.
 */
function regenerarCtasCtes()
{
    $anio = $_POST["anio"];
    $ctaCte = new CuentaCorriente();
    $a[1] = $anio;
    $a[2] = 'D';
    $r = $ctaCte->eliminarTodoByAnio($a);
    $aporteEmpresa = new AporteEmpresa();
    $aportes = $aporteEmpresa->getAportesEmpresaByAnio($a[1]);
    $saldos[0] = 0;
    $saldos[1] = 0;
    $saldos[2] = 0;
    while ($fila = mysql_fetch_object($aportes)) {
        $a[1] = $fila->rut_empresa;
        //rut_empresa
        $a[2] = "D";
        //tipo movimiento
        $a[4] = $anio;
        //año
        $a[5] = $fila->fecha;
        //fecha
        $a[6] = $fila->recibo;
        //recibo
        //Cta Capacitiacion
        $a[0] = "01";
        //tipo cta
        $a[3] = $fila->monto_capacitacion;
        //monto
        $saldos[0] += $a[3];
        $r &= $ctaCte->addCuentaCorriente($a);
        //Cta Reparto
        $a[0] = "02";
        //tipo cta
        $a[3] = $fila->monto_reparto;
        //monto
        $saldos[1] += $a[3];
        $r &= $ctaCte->addCuentaCorriente($a);
        //Cta Certificacion
        $a[0] = "03";
        //tipo cta
        $a[3] = $fila->monto_certificacion;
        //monto
        $saldos[2] += $a[3];
        $r &= $ctaCte->addCuentaCorriente($a);
    }
    return $r;
}
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the ID of the model to be loaded
  */
 public function loadModel($id)
 {
     $model = CuentaCorriente::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
Пример #8
0
 public function actionCreate()
 {
     $cuenta_id = $_POST['cuenta'];
     $fecha = $_POST['fecha'];
     $monto = $_POST['monto'];
     $detalle = $_POST['detalle'];
     $tipo = $_POST['tipo'];
     $forma_pago_id = -1;
     if (isset($_POST['formaPago'])) {
         $forma_pago_id = $_POST['formaPago'];
     }
     $model = new Movimiento();
     $model->fecha = $fecha;
     $model->monto = $monto;
     $model->detalle = $detalle;
     $model->tipo = $tipo;
     if ($model->tipo == Tools::MOVIMIENTO_TIPO_CARGO) {
         $model->validado = 1;
     } else {
         $model->validado = 0;
         $model->forma_pago_id = $forma_pago_id;
     }
     $model->cuenta_corriente_id = $cuenta_id;
     $cuenta = CuentaCorriente::model()->findByPk($cuenta_id);
     if ($cuenta == null) {
         echo -1;
         die;
     } else {
         if ($cuenta->estaAsociadoPropietario(Yii::app()->user->id)) {
             $anterior = $model->findAllByAttributes(array('fecha' => $model->fecha, 'tipo' => $model->tipo, 'monto' => $model->monto, 'detalle' => $model->detalle, 'cuenta_corriente_id' => $model->cuenta_corriente_id));
             if (count($anterior) == 0) {
                 $model->saldo_cuenta = $model->cuentaCorriente->saldoAFecha($model->fecha);
                 if ($model->save()) {
                     if ($model->validado) {
                         if ($model->tipo == Tools::MOVIMIENTO_TIPO_ABONO) {
                             $model->actualizaSaldosPosteriores($model->monto);
                         } else {
                             $model->actualizaSaldosPosteriores(-$model->monto);
                         }
                     } else {
                         $model->actualizaSaldosPosteriores(0);
                     }
                     echo $model->id;
                 } else {
                     echo CHtml::errorSummary($model);
                 }
             } else {
                 echo -1;
             }
             die;
         } else {
             echo -1;
             die;
         }
     }
 }