public function actionGenerarRecibos() { // Verifico que no estén ya generados los recibos del periodo $criteria0 = new CDbCriteria(); $criteria0->condition = "ciclo = :ciclo AND mes = :mes"; $criteria0->params = array(':mes' => 8, ':ciclo' => 2015); $rec = Recibo::model()->findAll($criteria0); $recibos = new Recibo(); $transaction = $recibos->dbConnection->beginTransaction(); try { if (count($rec) == 0) { // Por cada cuenta creo un recibo para el mes $cuentas = Cuenta::model()->findAll(); foreach ($cuentas as $cuenta) { $cta = $cuenta->idCuenta; $recibos = new Recibo(); $recibos->idCuenta = $cta; $recibos->concepto = 'CUOTA'; $recibos->fechaEmision = date('Y-m-d H:i:s'); $recibos->mes = date('m'); $recibos->ciclo = date('Y'); if (!$recibos->save()) { throw new Exception('Error al generar recibo' . CVarDumper::dumpAsString($recibos->getErrors())); Yii::log(CVarDumper::dumpAsString($recibos->getErrors()), 'error'); } // Por cada recibo creo los item de cada alumno matriculado de ese cliente $criteria = new CDbCriteria(); $criteria->condition = "idCuenta = :idCuenta"; $criteria->params = array(':idCuenta' => $cta); $matriculas = Matricula::model()->findAll($criteria); $sumaImportes = 0; foreach ($matriculas as $matricula) { $items = new ItemRecibo(); $items->idRecibo = $recibos->idRecibo; $items->idMatricula = $matricula->idMatricula; $cuota = $matricula->idCurso0->idNivel0->cuota; $desc = $matricula->idDescuento0->porcentaje; // Aplico descuentos si los tiene if ($matricula->idDescuento !== 5) { $items->importe = $cuota - $cuota * $desc / 100; } else { $items->importe = $cuota; } $items->pago = 0; $items->save(); // Calculo importe total $sumaImportes = $sumaImportes + $items->importe; } $recibos->importePendiente = $sumaImportes; $recibos->save(); } // Envio mensajes a la vista Yii::app()->user->setFlash('success', "El proceso fue realizado correctamente."); } else { Yii::app()->user->setFlash('success', "Ya existen los recibos del periodo."); } $transaction->commit(); } catch (Exception $e) { $transaction->rollback(); Yii::app()->user->setFlash('error', $e->getMessage()); } $dataProvider = new CActiveDataProvider('Recibo'); $this->render('index', array('dataProvider' => $dataProvider)); }
$fechaMes = strtoupper($_POST["f_mes_recibo"]); $fechaAnio = $_POST["f_anio_recibo"]; $AreaSolicitante = strtoupper($_POST["area_recibo"]); $noEcoUT = $_POST["noeco_recibo"]; $noOficioComision = $_POST["ofcom_recibo"]; $noVale = $_POST["novale"]; $recorridoAprox = $_POST["recorridoaprox_recibo"]; $montoNumero = $_POST["monto_recibo"]; $montoLetra = strtoupper($_POST["montoletra_recibo"]); $litros = $_POST["litros_recibo"]; $nombreRecibi = strtoupper($_POST["firma1_recibo"]); $nombreVoBo = strtoupper($_POST["firma2_recibo"]); $nombreAutorizo = strtoupper($_POST["firma3_recibo"]); $destino = strtoupper($_POST["destinoa_recibo"]); sleep(2); $objetoRecibo = new Recibo(); /*se crea un objeto de la clase recibo*/ $respuesta = new stdClass(); /*para guardar la respuesta con json se declara la variable*/ if ($objetoRecibo->crear($folioRecibo, $fechaDia, $fechaMes, $fechaAnio, $AreaSolicitante, $noEcoUT, $noOficioComision, $noVale, $recorridoAprox, $montoNumero, $montoLetra, $litros, $nombreRecibi, $nombreVoBo, $nombreAutorizo, $destino) == true) { /*se llama la funcion crear*/ $respuesta->informe = "Recibo Insertado Correctamente"; } else { $respuesta->informe = "Error de Insercion<br>Revisa los Datos e Intentalo de Nuevo."; } function getContent($archivo) { /*funcion para obtener la respuesta de un archivo php*/ ob_start(); include $archivo; $out = ob_get_clean();
<?php include_once 'recibo.php'; /*recibimos las variables post*/ $folio_receliminar = $_POST["folio_receliminar"]; $objetoRecibo = new Recibo(); /*se crea un objeto de la clase recibo*/ $respuestaelimrec = new stdClass(); /*para guardar la respuesta con json se declara la variable*/ $elim_rec = $objetoRecibo->eliminar($folio_receliminar); /*se llama la funcion crear*/ if ($elim_rec == true) { $respuestaelimrec->si_no = 1; $respuestaelimrec->informe = "Recibo Eliminado"; function getContent($archivo) { /*funcion para obtener la respuesta de un archivo php*/ ob_start(); include $archivo; $out = ob_get_clean(); return $out; } $respuestaelimrec->tabla = getContent('reciboMuestra.php'); } else { $respuestaelimrec->informe = "Recibo NO Eliminado<br>Intente de Nuevo"; $respuestaelimrec->si_no = 0; } $rejsonelimrec = json_encode($respuestaelimrec); /*se convierte a json*/ echo $rejsonelimrec; /*se imprime la variable json que contiene la consulta de la tabla y el informe separados en variablaes*/
<?php include_once 'recibo.php'; $objRecibos = new Recibo(); $listaRecibos = $objRecibos->consultar(); ?> <div class="tabla_consulta"> <table class="consulta" border> <tr> <th>Folio</th> <th>Fecha</th> <th>Vehiculo</th> <th>Monto</th> </tr> <?php while ($row = mysql_fetch_array($listaRecibos)) { echo "<tr>"; echo "<td>" . $row['Folio_recibo'] . "</td>"; echo "<td>" . $row['F_dia'] . " " . $row['F_mes'] . " " . $row['F_anio'] . "</td>"; echo "<td>" . $row['No_eco_U_T'] . "</td>"; echo "<td> \$" . $row['Monto_numero'] . "</td>"; echo "</tr>"; } ?> </table> </div>
public function getEstadisticosdia() { setlocale(LC_ALL, 'spanish'); $dia = strftime("%A"); /*********diario **********/ $monto_recibos_cobranza = Recibo::where(DB::raw('YEAR(fecha_limite)'), '=', date('Y'))->where(DB::raw('MONTH(fecha_limite)'), '=', date('m'))->where(DB::raw('DAY(fecha_limite)'), '=', date('d'))->where('cancelado', 0)->sum('monto'); $monto_recibos_pagados = Recibo::where(DB::raw('YEAR(fecha_limite)'), '=', date('Y'))->where(DB::raw('MONTH(fecha_limite)'), '=', date('m'))->where(DB::raw('DAY(fecha_limite)'), '=', date('d'))->where('cancelado', 0)->where('pagado', 1)->sum('monto'); $monto_recibos_pendientes_cobrar = $monto_recibos_cobranza - $monto_recibos_pagados; if ($monto_recibos_cobranza > 0) { $porcentaje = $monto_recibos_pagados * 100 / $monto_recibos_cobranza; } else { $porcentaje = 0; } return Response::json(array("esperado" => number_format($monto_recibos_cobranza, 2, ".", ","), "cobrado" => number_format($monto_recibos_pagados, 2, ".", ","), "pendiente" => number_format($monto_recibos_pendientes_cobrar, 2, ".", ","), "porcentaje" => number_format($porcentaje, 2), "nombre" => Str::title($dia))); }
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 loadModelRecibo($id) { $model = Recibo::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
<?php include_once 'recibo.php'; /*recibimos las variables post*/ $anio_recibo = $_POST["anio_recibo"]; $folio_recibo = $_POST["folio_recibo"]; $objetoRecibo = new Recibo(); /*se crea un objeto de la clase recibo*/ $respuestacrec = new stdClass(); /*para guardar la respuesta con json se declara la variable*/ $datos_recibo = $objetoRecibo->consultar_aniofolio($anio_recibo, $folio_recibo); /*se llama la funcion crear*/ if ($row = mysql_fetch_array($datos_recibo)) { $respuestacrec->folioRecibo = $row['Folio_recibo']; $respuestacrec->fechaDia = $row['F_dia']; $respuestacrec->fechaMes = $row['F_mes']; $respuestacrec->fechaAnio = $row['F_anio']; $respuestacrec->AreaSolicitante = $row['Area_solicitante']; $respuestacrec->noEcoUT = $row['No_eco_U_T']; $respuestacrec->noOficioComision = $row['No_oficio_comision']; $respuestacrec->noVale = $row['No_vale']; $respuestacrec->recorridoAprox = $row['Recorrido_aprox']; $respuestacrec->montoNumero = $row['Monto_numero']; $respuestacrec->montoLetra = $row['Monto_letra']; $respuestacrec->litros = $row['Litros']; $respuestacrec->nombreRecibi = $row['Nombre_recibi']; $respuestacrec->nombreVoBo = $row['Nombre_vo.bo']; $respuestacrec->nombreAutorizo = $row['Nombre_autorizo']; $respuestacrec->destino = $row['Destino']; $respuestacrec->si_no = 1; $respuestacrec->informe = "Recibo Encontrado";