Example #1
0
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Pago();
     $transaction = $model->dbConnection->beginTransaction();
     try {
         //Cargo datos en Pagos
         $recibo = $this->loadModelRecibo($_GET['id']);
         $importe = $recibo->importePendiente;
         if (isset($_GET['id'])) {
             $model->attributes = $_GET['id'];
             $model->idRecibo = $recibo->idRecibo;
             $model->fecha = date('Y-m-d H:i:s');
             $model->importe = $recibo->importePendiente;
             $model->idUsuario = Yii::app()->user->id;
             $model->idMedioPago = 1;
             if ($model->save()) {
                 // Modifico Recibos actualizando datos
                 $recibo->importePendiente = 0;
                 $recibo->fechaCobroCompleto = $model->fecha;
                 // Modifico la Cuenta con los saldos
                 $recibo->idCuenta0->saldo = $recibo->idCuenta0->saldo - $importe;
                 $recibo->save();
                 $transaction->commit();
                 Yii::app()->user->setFlash('success', "El pago fue registrado.");
                 $this->redirect(array('view', 'id' => $model->idPago));
             }
             $transaction->rollback();
         }
         $this->render('update', array('model' => $model));
     } catch (Exception $e) {
         $transaction->rollback();
         throw $e;
     }
 }
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Pago();
     $modelListin = new Listin();
     $modelMensualidadPago = new MensualidadPago();
     $modelMP = array();
     // Uncomment the following line if AJAX validation is needed
     $this->performAjaxValidation(array('model' => $model, 'modelListin' => $modelListin, 'modelMensualidadPago' => $modelMensualidadPago));
     if (isset($_POST['Pago'])) {
         $model->attributes = $_POST['Pago'];
         // Identificamos el pago con un código.
         $model->getCodigo();
         // Colocamos el pago activo
         $model->pag_anu = 0;
         // Fecha de hoy
         $model->pag_fec_ing = date('Y-m-d');
         // GuardarMensualidades
         if (isset($_POST['MensualidadPago']) && $model->pag_con == "M") {
             $modelMensualidadPago->attributes = $_POST['MensualidadPago'];
             foreach ($modelMensualidadPago->men_pag_mes_can as $key => $value) {
                 $modelMP[] = new MensualidadPago();
                 $fechaExtraida = substr($value, 2, 4) . "-" . substr($value, 0, 2) . "-01";
                 $modelMP[$key]->getCodigo();
                 $modelMP[$key]->id_pago = $model->id;
                 $modelMP[$key]->men_pag_mes_can = $fechaExtraida;
                 $modelMP[$key]->men_pag_mon = $model->pag_mon / count($modelMensualidadPago->men_pag_mes_can);
             }
         } elseif (!isset($_POST['MensualidadPago']) && $model->pag_con == "M") {
             $model->addError($model->pag_men_pagos, 'Seleccione al Menos un Mes Deudor');
         }
         // Guardar Listín
         if (isset($_POST['Listin']) && $model->pag_con == "L") {
             $modelListin->attributes = $_POST['Listin'];
             $modelListin->id_pago = $model->id;
             if (!$modelListin->validate()) {
                 $model->addError($model->pag_listin, 'Error al ingresar Listines');
             }
         } elseif (!isset($_POST['Listin']) && $model->pag_con == "L") {
             $model->addError($model->pag_listin, 'Error al ingresar Listines');
         }
         if (!$model->hasErrors()) {
             $model->save();
             if ($modelListin) {
                 $modelListin->save();
             }
             if ($modelMP) {
                 foreach ($modelMP as $key => $value) {
                     $value->save();
                 }
             }
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     //$prueba = Pago::getListaMesesPagados('0000-00-00', date('Y-m-d'), 'CON0000003');
     $this->render('create', array('model' => $model, 'modelListin' => $modelListin, 'modelMensualidadPago' => $modelMensualidadPago));
 }
Example #3
0
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Pago();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Pago'])) {
         $model->attributes = $_POST['Pago'];
         if ($model->save()) {
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('create', array('model' => $model));
 }
 public function postRenovacion()
 {
     $precio = Precio::where('producto_id', Input::get('producto_id'))->where('activo', 1)->firstorfail();
     $mtto_detalle = VistaDetalleMantenimiento::find(Input::get('id'));
     $mtto_catalogo = Mantenimiento::where('producto_id', Input::get('producto_id'))->firstorfail();
     //para obtener los meses a sumar en el mantenimiento renovado
     $vencimiento_actual = $mtto_detalle->fecha_fin;
     $vencimiento_actual_carbon = Carbon::parse($vencimiento_actual);
     //validar formulario
     $rules = array('forma_pago' => 'required');
     if (Input::get('valor_efectivo') == 1 and Input::has('efectivo')) {
         $rules['efectivo'] = 'required|numeric|integer';
     }
     if (Input::get('valor_credito') == 1 and Input::has('credito')) {
         $rules['credito'] = 'required|numeric|integer';
     }
     if (Input::get('valor_debito') == 1 and Input::has('debito')) {
         $rules['debito'] = 'required|numeric|integer';
     }
     $messages = array('required' => 'Capture :attribute', 'numeric' => 'solo números', 'integer' => 'solo se aceptan valores enteros');
     $validator = Validator::make(Input::all(), $rules, $messages);
     if ($validator->fails()) {
         return Redirect::back()->withInput()->withErrors($validator);
     }
     //mantenimiento vencido toma la fecha de hoy
     if ($mtto_detalle->vencido == 1 and $mtto_detalle->venta_mantenimiento_activo == 1) {
         $inicio_renovacion_carbon = Carbon::now()->toDateString();
         $vencimiento_renovacion_carbon = Carbon::parse($inicio_renovacion_carbon)->addMonths($mtto_catalogo->meses)->toDateString();
     } elseif ($mtto_detalle->vencido == 0 and $mtto_detalle->venta_mantenimiento_activo == 1) {
         $inicio_renovacion_carbon = $vencimiento_actual_carbon->addDays(1)->toDateString();
         $vencimiento_renovacion_carbon = Carbon::parse($inicio_renovacion_carbon)->addMonths($mtto_catalogo->meses)->toDateString();
     }
     /*"precio"." ".$precio->monto*1.16." "."vencimiento actual "." ".$vencimiento_actual." ". "vencimiento contratado "." ". $vencimiento_renovacion_carbon ." "."meses"." ".$mtto_catalogo->meses." "."inicio del nuevo mantenimiento "." ". $inicio_renovacion_carbon;*/
     //registrar venta
     $venta = new Venta();
     $venta->cliente_id = Input::get('cliente_id');
     $venta->folio_solicitud = Input::get('folio_solicitud');
     $venta->total = $precio->monto * Input::get('iva');
     if (Input::get('comentarios')) {
         $venta->comentarios = Input::get('comentarios');
     }
     $venta->save();
     //registrar detalle de venta
     $venta_producto = new VentaProducto();
     $venta_producto->venta_id = $venta->id;
     $venta_producto->producto_id = Input::get('producto_id');
     $venta_producto->cantidad = 1;
     $venta_producto->total = $precio->monto * Input::get('iva');
     $venta_producto->precio_unitario = $precio->monto;
     $venta_producto->iva = (Input::get('iva') - 1) * 100;
     $venta_producto->save();
     //registra venta de mantenimiento
     $venta_mantenimiento = new VentaMantenimiento();
     $venta_mantenimiento->venta_producto_id = $venta_producto->id;
     $venta_mantenimiento->empleado_id = 4;
     $venta_mantenimiento->lote_id = Input::get('lote_id');
     $venta_mantenimiento->fecha_inicio = $inicio_renovacion_carbon;
     $venta_mantenimiento->fecha_fin = $vencimiento_renovacion_carbon;
     $venta_mantenimiento->nuevo = 0;
     $venta_mantenimiento->activo = 1;
     $venta_mantenimiento->save();
     //genera recibo
     $recibo = new Recibo();
     $recibo->venta_id = $venta->id;
     $recibo->fecha_limite = $inicio_renovacion_carbon;
     $recibo->monto = $venta_producto->total;
     $recibo->cancelado = 0;
     $recibo->pagado = 1;
     $recibo->mensajero = 0;
     $recibo->save();
     //registra pago(s)
     if (Input::has('efectivo')) {
         $efectivo = Input::get('efectivo');
         $pago_efectivo = new Pago();
         $pago_efectivo->recibo_id = $recibo->id;
         $pago_efectivo->forma_pago_id = 1;
         $pago_efectivo->monto = $efectivo;
         $pago_efectivo->usuario_id = Auth::user()->id;
         $pago_efectivo->save();
     }
     if (Input::has('credito')) {
         $efectivo = Input::get('credito');
         $pago_efectivo = new Pago();
         $pago_efectivo->recibo_id = $recibo->id;
         $pago_efectivo->forma_pago_id = 2;
         $pago_efectivo->monto = $efectivo;
         $pago_efectivo->usuario_id = Auth::user()->id;
         $pago_efectivo->save();
     }
     if (Input::has('debito')) {
         $efectivo = Input::get('debito');
         $pago_efectivo = new Pago();
         $pago_efectivo->recibo_id = $recibo->id;
         $pago_efectivo->forma_pago_id = 5;
         $pago_efectivo->monto = $efectivo;
         $pago_efectivo->usuario_id = Auth::user()->id;
         $pago_efectivo->save();
     }
     //actualiza registro anterior de venta de mantenimiento ya que dejará de ser "nuevo"
     $venta_mantenimiento_actualiza = VentaMantenimiento::find($mtto_detalle->id);
     $venta_mantenimiento_actualiza->nuevo = 0;
     $venta_mantenimiento_actualiza->activo = 0;
     $venta_mantenimiento_actualiza->save();
     //actualiza el ultimo consecutivo de folios de mantenimiento en tabla de configuracion general
     $config_gral = ConfiguracionGeneral::find(Input::get('config_gral_id'));
     $config_gral->folio_mtto = Input::get('folio_solicitud');
     $config_gral->save();
     return Redirect::to('mantenimiento');
 }
 public function actionCrearPago()
 {
     $fu = new FichaUsuario();
     $ac = new Actividad();
     $pa = new Pago();
     if (isset($_POST['id_usuario']) && isset($_POST['actividad']) && isset($_POST['anio']) && isset($_POST['meses'])) {
         $pa->anio = $_POST['anio'];
         $pa->cusuario = 'sysadmin';
         $pa->id_usuario = $_POST['id_usuario'];
         $pa->id_actividad = $_POST['actividad'];
         $pa->fhcreacion = new CDbExpression('NOW()');
         $pa->fhultmod = new CDbExpression('NOW()');
         $pa->mes = $_POST['meses'];
         $pa->monto = $_POST['monto'];
         $suma = 0;
         $criteria = new CDbCriteria();
         $criteria->condition = 'id_usuario = :id_usuario and id_actividad = :id_actividad and anio = :anio and mes = :meses';
         $criteria->params = array(':id_usuario' => $_POST['id_usuario'], ':id_actividad' => $_POST['actividad'], ':anio' => $_POST['anio'], ':meses' => $_POST['meses']);
         $Actividad = Pago::model()->findAll($criteria);
         $valoractividad = Actividad::model()->findByAttributes(array('id_actividad' => $_POST['actividad']));
         if ($Actividad != null) {
             echo "duplicado";
         } else {
             if ($_POST['monto'] != $valoractividad->valor_actividad) {
                 echo "valor_incorrecto";
             } else {
                 if ($pa->save()) {
                     echo "ok";
                 } else {
                     echo "error";
                 }
             }
         }
     } else {
         $this->render('CrearPago', array('ficha_usuario' => $fu, 'actividad' => $ac, 'pago' => $pa));
     }
 }
Example #6
0
 public function autorizatransaccion()
 {
     $hash = $_GET['id'];
     $decrypted = $this->decrypt($hash);
     $datos = explode('|', $decrypted);
     $numTarjeta = $datos[0];
     $keyTransaccion = $datos[1];
     $token_usuario = $datos[2];
     $token_movil = $datos[3];
     $idDispositivo = $datos[4];
     $user = Usuario::find_by_access_token_movil($token_usuario);
     if (empty($user)) {
         $this->logg->error("1035: Usuario no Autorizado en autorizatransaccion " . $token_usuario . "con dispositivo " . $idDispositivo);
         $result = array("estado" => "NOK", "codResp" => "1035", "mensaje" => "Usuario No Autorizado.");
         $this->response($this->json($result), 200);
     } else {
         $dispositivo = Dispositivo::find_by_id_dispositivo_and_usuario_id_and_token($idDispositivo, $user->id, $token_movil);
         if (empty($dispositivo)) {
             $this->logg->error("1036: Dispositivo No Autorizado al Usuario en autorizatransaccion " . $user->id . "con dispositivo " . $idDispositivo);
             $result = array("estado" => "NOK", "codResp" => "1036", "mensaje" => "Dispositivo No Autorizado.");
             $this->response($this->json($result), 200);
         } else {
             $transaccion = Transaccion::find_by_keyTransaccion($keyTransaccion);
             if (empty($transaccion)) {
                 $this->logg->error("1037: Transaccion No Existe en autorizatransaccion " . $user->id . "con dispositivo " . $idDispositivo);
                 $result = array("estado" => "NOK", "codResp" => "1037", "mensaje" => "Transaccion No Existe.");
                 $this->response($this->json($result), 200);
             } else {
                 if ($transaccion->estado == "PENDIENTE") {
                     $tarjeta = Elemento::find_by_id($numTarjeta);
                     if (empty($tarjeta)) {
                         $this->logg->error("1038: Elemento de Pago No Existe en autorizatransaccion " . $user->id . "con dispositivo " . $idDispositivo);
                         $result = array("estado" => "NOK", "codResp" => "1038", "mensaje" => "Elemento de Pago No Existe.");
                         $this->response($this->json($result), 200);
                     } else {
                         $transaccion->estado = "APROBADO";
                         $transaccion->elemento_id = $tarjeta->id;
                         $transaccion->pagador = $user->id;
                         $transaccion->dispositivo_pagador = $dispositivo->id;
                         $transaccion->save();
                         if (count($transaccion->errors->full_messages()) != 0) {
                             $this->logg->error("1039: Transaccion No Actualizada en autorizatransaccion " . $user->id . "con dispositivo " . $idDispositivo);
                             $result = array("estado" => "NOK", "codResp" => "1039", "mensaje" => "Transaccion No Actualizada.");
                             $this->response($this->json($result), 200);
                         } else {
                             $cobro = Cobro::find_by_transaccion_id($transaccion->id);
                             if (empty($cobro)) {
                                 $result = array("estado" => "NOK", "codResp" => "10391", "mensaje" => "Cobro No Encontrado.");
                                 $this->response($this->json($result), 200);
                             } else {
                                 $cobro->estado = "APROBADO";
                                 $cobro->save();
                                 if (count($cobro->errors->full_messages()) != 0) {
                                     $result = array("estado" => "NOK", "codResp" => "1040", "mensaje" => "Cobro No Actualizado.");
                                     $this->response($this->json($result), 200);
                                 } else {
                                     $pago = new Pago();
                                     $pago->transaccion_id = $transaccion->id;
                                     $pago->dispositivo_id = $transaccion->dispositivo_pagador;
                                     $pago->usuario_id = $transaccion->pagador;
                                     $pago->elemento_id = $transaccion->elemento_id;
                                     $pago->cobro_id = $cobro->id;
                                     $pago->save();
                                     if (count($pago->errors->full_messages()) != 0) {
                                         $result = array("estado" => "NOK", "codResp" => "1041", "mensaje" => "Pago No Ingresado.");
                                         $this->response($this->json($result), 200);
                                     } else {
                                         $result = array("estado" => "OK", "codResp" => "1042", "mensaje" => "Pago Realizado.");
                                         $this->response($this->json($result), 200);
                                     }
                                 }
                             }
                             //Fin else cobro
                         }
                         //fin else transaccion
                     }
                     //Fin else tarjeta
                 } else {
                     $result = array("estado" => "NOK", "codResp" => "1043", "mensaje" => "Transaccion ya se Encuentra Cancelada.");
                     $this->response($this->json($result), 200);
                 }
             }
         }
     }
 }
 public function abonar()
 {
     if (Input::has('_token')) {
         $cliente = Cliente::find(Input::get('cliente_id'));
         if ($cliente->saldo - Input::get('monto') < 0) {
             return 'No se puede ingresar mas que la deuda....';
         }
         $saldo = $cliente->saldo;
         $pago = new Pago();
         $pago->user_id = Auth::user()->id;
         $pago->cliente_id = Input::get('cliente_id');
         $pago->saldo_anterior = $saldo;
         $pago->monto = Input::get('monto');
         $pago->saldo_actual = $saldo - Input::get('monto');
         if ($pago->save()) {
             if ($cliente->saldo - Input::get('monto') <= 0) {
                 $cliente->bloqueado = 0;
             }
             $cliente->saldo = $cliente->saldo - Input::get('monto');
             if ($cliente->save()) {
                 return Response::json(array('success' => true));
             }
         }
         return Response::json(array('success' => true));
     }
     $cliente = Cliente::find(Input::get('id'));
     $dias = DB::table('pagos')->select(DB::raw("DATEDIFF(current_date,max(created_at)) as dias"))->where('cliente_id', '=', Input::get('id'))->first();
     $dias_v = DB::table('ventas')->select(DB::raw("monto ,DATEDIFF(current_date,max(created_at)) as dias"))->where('cliente_id', '=', Input::get('id'))->first();
     $dia = $dias->dias;
     $dias_v = $dias->dias;
     if ($cliente->saldo <= 0) {
         $dia = 0;
     }
     return View::make('cliente.abonar', compact('cliente', 'dia', 'dias_v'));
 }
 private function agregar_pago($user_id, $valor, $seguro, $fecha_pago, $forma_pago)
 {
     $pago = new Pago();
     $pago->user_id = $user_id;
     $pago->valor = $valor;
     $pago->seguro = $seguro;
     $pago->fecha_pago = $fecha_pago;
     $pago->forma_pago = $forma_pago;
     $pago->save();
 }