/** * 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)); }
/** * 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)); } }
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(); }