当前位置: 首页>>代码示例>>PHP>>正文


PHP cFecha::anno方法代码示例

本文整理汇总了PHP中cFecha::anno方法的典型用法代码示例。如果您正苦于以下问题:PHP cFecha::anno方法的具体用法?PHP cFecha::anno怎么用?PHP cFecha::anno使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cFecha的用法示例。


在下文中一共展示了cFecha::anno方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: parametro

$frecuencia = parametro("periocidad", SYS_TODAS);
$producto = parametro("convenio", SYS_TODAS);
$producto = parametro("producto", $producto);
$empresa = parametro("empresa", SYS_TODAS);
$out = parametro("out", SYS_DEFAULT);
$FechaInicial = parametro("on", false);
$FechaInicial = parametro("fecha-0", $FechaInicial);
$FechaInicial = $FechaInicial == false ? FECHA_INICIO_OPERACIONES_SISTEMA : $xF->getFechaISO($FechaInicial);
$FechaFinal = parametro("off", false);
$FechaFinal = parametro("fecha-1", $FechaFinal);
$FechaFinal = $FechaFinal == false ? fechasys() : $xF->getFechaISO($FechaFinal);
$jsEvent = $out != OUT_EXCEL ? "initComponents()" : "";
$senders = getEmails($_REQUEST);
$sucursal = parametro("s", SYS_TODAS);
$si_es_por_fecha = "";
$graficos = parametro("graficos", false, MQL_BOOL);
$BySuc = $sucursal == SYS_TODAS ? "" : " AND `creditos_solicitud`.`sucursal`= '{$sucursal}'";
$si_es_por_fecha = " AND fecha_ministracion>='{$FechaInicial}' AND fecha_ministracion<='{$FechaFinal}' ";
$xF->set($FechaFinal);
$ejercicio = $xF->anno();
my_query("SET @ejercicio:={$ejercicio};");
$sql = "\nSELECT\n\t`creditos_tipoconvenio`.`descripcion_tipoconvenio`   AS `convenio`,\n\tCOUNT(`creditos_saldo_mensuales`.`numero_solicitud`) AS `creditos`,\n\tSUM(`creditos_saldo_mensuales`.`enero`)      AS `enero`,\n\tSUM(`creditos_saldo_mensuales`.`febrero`)    AS `febrero`,\n\tSUM(`creditos_saldo_mensuales`.`marzo`)      AS `marzo`,\n\tSUM(`creditos_saldo_mensuales`.`abril`)      AS `abril`,\n\tSUM(`creditos_saldo_mensuales`.`mayo`)       AS `mayo`,\n\tSUM(`creditos_saldo_mensuales`.`junio`)      AS `junio`,\n\tSUM(`creditos_saldo_mensuales`.`julio`)      AS `julio`,\n\tSUM(`creditos_saldo_mensuales`.`agosto`)     AS `agosto`,\n\tSUM(`creditos_saldo_mensuales`.`septiembre`) AS `septiembre`,\n\tSUM(`creditos_saldo_mensuales`.`octubre`)    AS `octubre`,\n\tSUM(`creditos_saldo_mensuales`.`noviembre`)  AS `noviembre`,\n\tSUM(`creditos_saldo_mensuales`.`diciembre`)  AS `diciembre` \n\t\t\nFROM\n\t`creditos_saldo_mensuales` `creditos_saldo_mensuales` \n\t\tINNER JOIN `creditos_tipoconvenio` `creditos_tipoconvenio` \n\t\tON `creditos_saldo_mensuales`.`tipo_convenio` = `creditos_tipoconvenio`.\n\t\t`idcreditos_tipoconvenio`\n\tGROUP BY\n\t\t\n\t\t`creditos_saldo_mensuales`.`tipo_convenio`\n\t\t ";
$xT = new cTabla($sql);
$xT->setFootSum(array(1 => "creditos", 2 => "enero", 3 => "febrero", 4 => "marzo", 5 => "abril", 6 => "mayo", 7 => "junio", 8 => "julio", 9 => "agosto", 10 => "septiembre", 11 => "octubre", 12 => "noviembre", 13 => "diciembre"));
$xRPT->setOut($out);
$xRPT->addContent($xRPT->getEncabezado($xHP->getTitle(), $FechaInicial, $FechaFinal));
$xRPT->setSQL($sql);
$xT->setTipoSalida($out);
$xRPT->addContent($xT->Show());
//$xRPT->addContent("<script>setTimeout('mychart',1500);  function mychart() { $('#sqltable').visualize({type: 'bar', width: '450px'}).appendTo('body'); }</script>");
echo $xRPT->render(true);
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:31,代码来源:rpt_saldos_creditos_mensuales.rpt.php

示例2: setPolizaPorCajero

 function setPolizaPorCajero($cajero, $FechaDeCorte, $NumeroDePoliza = false, $TipoDePoliza = 1, $TipoDePago = "efectivo", $generador = false)
 {
     $sucess = true;
     $msg = "=======\tGENERAR POLIZA POR USUARIO NUM {$cajero}\r\n";
     //if (GENERAR_CONTABILIDAD == true){
     //($generador == GENERAR_POLIZAS_AL_CIERRE) AND
     if (isset($cajero)) {
         $xUsr = new cOficial($cajero);
         $DUsr = $xUsr->getDatos();
         $UsrName = $DUsr["nombres"] . " " . $DUsr["apellidopaterno"];
         $tipo_de_poliza = $TipoDePoliza;
         $xD = new cFecha(0, $FechaDeCorte);
         $fecha_de_poliza = $FechaDeCorte;
         $ejercicio_de_poliza = $xD->anno();
         $periodo_de_poliza = $xD->mes();
         $numero_de_poliza = $NumeroDePoliza == false ? false : $NumeroDePoliza;
         $concepto_poliza = "{$UsrName}.-Movimientos del Corte de Fecha {$FechaDeCorte}";
         //Obten datos de la Poliza
         $sqlRec = "SELECT\r\n\t\t\t\t\t\t\t\t\t`operaciones_recibos`.*,\r\n\t\t\t\t\t\t\t\t\t`operaciones_recibostipo`.`tipo_poliza_generada`,\r\n\t\t\t\t\t\t\t\t\t`operaciones_recibostipo`.`afectacion_en_flujo_efvo`\r\n\t\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\t\t\t`operaciones_recibos` `operaciones_recibos`\r\n\t\t\t\t\t\t\t\t\t\tINNER JOIN `operaciones_recibostipo`\r\n\t\t\t\t\t\t\t\t\t\t`operaciones_recibostipo`\r\n\t\t\t\t\t\t\t\t\t\tON `operaciones_recibos`.`tipo_docto` =\r\n\t\t\t\t\t\t\t\t\t\t`operaciones_recibostipo`.\r\n\t\t\t\t\t\t\t\t\t\t`idoperaciones_recibostipo`\r\n\t\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\t\t(`operaciones_recibos`.`idusuario` = {$cajero} )\r\n\t\t\t\t\t\t\t\t\tAND\r\n\t\t\t\t\t\t\t\t\t(`operaciones_recibos`.`fecha_operacion` = '{$FechaDeCorte}' )\r\n\t\t\t\t\t\t\t\t\tAND\r\n\t\t\t\t\t\t\t\t\t(`operaciones_recibostipo`.`tipo_poliza_generada` = {$TipoDePoliza} )\r\n\t\t\t\t\t\t\t\t\tAND\r\n\t\t\t\t\t\t\t\t\t(`operaciones_recibos`.`tipo_pago` = '{$TipoDePago}' )\r\n\t\t\t\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t\t\t\t`operaciones_recibos`.`tipo_pago`,\r\n\t\t\t\t\t\t\t\t\t`operaciones_recibos`.`idusuario`,\r\n\t\t\t\t\t\t\t\t\t`operaciones_recibos`.`idoperaciones_recibos`\r\n\t\t\t\t\t\t\t\t\t";
         //$msg		.= "$sqlRec\r\n";
         $rsP = getRecordset($sqlRec);
         //Obtener el la Ultima Poliza Registrada
         //------------------ Agregar Poliza
         $xPol = new cPoliza($tipo_de_poliza, $numero_de_poliza, $ejercicio_de_poliza, $periodo_de_poliza);
         if ($numero_de_poliza != false and $xPol->getCountPolizaByNumero($numero_de_poliza) > 1) {
             $xPol->setDeletePoliza();
         }
         $msg .= $xPol->add($concepto_poliza, $fecha_de_poliza, $numero_de_poliza, 0, 0, $cajero);
         $numero_de_poliza = $xPol->get();
         $msg .= "=====\tPOLIZA NUM: {$numero_de_poliza} | TIPO: {$tipo_de_poliza} | EJERCICIO: {$ejercicio_de_poliza} | PERIODO: {$periodo_de_poliza}\r\n";
         $sucess = $xPol->mRaiseError == true ? false : true;
         //seleccionar todos los recibos
         while ($rwP = mysql_fetch_array($rsP)) {
             $dRec = $rwP;
             $numero_de_recibo = $dRec["idoperaciones_recibos"];
             $recibo_fiscal = strlen($dRec["recibo_fiscal"]) > 2 ? ";RF:" . trim($dRec["recibo_fiscal"]) : "";
             $observacion_recibo = $dRec["observacion_recibo"];
             $flujo_efectivo = $dRec["afectacion_en_flujo_efvo"];
             $cheque = strlen($dRec["cheque_afectador"]) > 2 ? ";Ch:" . $dRec["cheque_afectador"] : "";
             $socio = $dRec["numero_socio"];
             $concepto_mvto = substr("R:" . $numero_de_recibo . $recibo_fiscal . $cheque . ";" . $dRec["observacion_recibo"], 0, 80);
             $msg .= "{$numero_de_recibo}\tRECIBO TIPO: " . $dRec["tipo_docto"] . " SUMA: " . $dRec["total_operacion"] . " \r\n";
             //regenera el perfil contable
             //if ( $Regenerar == true ){
             $xUCont = new cUtileriasParaContabilidad();
             $msg .= $xUCont->setRegenerarPrepolizaContable($dRec["fecha_operacion"], $numero_de_recibo);
             //}
             //------------------ Leer la PROFORMA
             $sqlMvtosToPoliza = "SELECT\r\n\t\t\t\t\t`contable_polizas_proforma`.*,\r\n\t\t\t\t\t`operaciones_tipos`.*\r\n\t\t\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t`operaciones_tipos` `operaciones_tipos`\r\n\t\t\t\t\t\tINNER JOIN `contable_polizas_proforma`\r\n\t\t\t\t\t\t`contable_polizas_proforma`\r\n\t\t\t\t\t\tON `operaciones_tipos`.`idoperaciones_tipos` =\r\n\t\t\t\t\t\t`contable_polizas_proforma`.`tipo_de_mvto`\r\n\t\t\t\t\t\tAND `contable_polizas_proforma`.`numero_de_recibo` = {$numero_de_recibo}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t`contable_polizas_proforma`.`contable_operacion` DESC,\r\n\t\t\t\t\t\t`contable_polizas_proforma`.`socio`,\r\n\t\t\t\t\t\t`contable_polizas_proforma`.`documento`,\r\n\t\t\t\t\t\t`contable_polizas_proforma`.`tipo_de_mvto`\t\t\t\r\n\t\t\t\t\t";
             if ($sucess == true) {
                 //$msg		.= "$sqlMvtosToPoliza\r\n";
                 $rs = mysql_query($sqlMvtosToPoliza, cnnGeneral());
                 if (!$rs) {
                     //error en MYSQL
                     $sucess = false;
                     saveError(2, $_SESSION["SN_b80bb7740288fda1f201890375a60c8f"], "Depurar :" . mysql_error() . "|Numero: " . mysql_errno() . "|Instruccion SQL:" . $sqlMvtosToPoliza . "|EN:" . $_SESSION["current_file"]);
                 }
                 while ($rw = mysql_fetch_array($rs)) {
                     $cuenta = CUENTA_DE_CUADRE;
                     $nombre = "";
                     $socio = $rw["socio"];
                     if (CONTABLE_CUENTAS_POR_SOCIO == true) {
                         $xSoc = new cSocio($socio, true);
                         $nombre = $xSoc->getNombreCompleto();
                     }
                     //si la cuenta es de efectivo o similar
                     $documento = $rw["documento"];
                     $monto_movimiento = $rw["monto"];
                     $tipoOp = $rw["tipo_de_mvto"];
                     $tipo_movimiento = $rw["contable_operacion"];
                     $cargo_movimiento = 0;
                     $abono_movimiento = 0;
                     if ($tipo_movimiento == TM_CARGO) {
                         $cargo_movimiento = $monto_movimiento;
                         $abono_movimiento = 0;
                     } else {
                         $cargo_movimiento = 0;
                         $abono_movimiento = $monto_movimiento;
                     }
                     $formula = $rw["cuenta_contable"];
                     //Corregir de urgencia: OK: 06Oct2011
                     $sForms = new cValorarFormulas();
                     $cuenta = $sForms->getCuentaContable($socio, $documento, $formula, $cajero);
                     $msg .= $sForms->getMessages();
                     if ($cuenta != "NO_CONTABILIZAR") {
                         $xCuenta = new cCuentaContable($cuenta);
                         $cuenta = $xCuenta->get();
                         //Carga los datos del Oficial
                         if ($xCuenta->getEsCuentaDeCirculante() == true) {
                             $nombre = "EFVO:{$UsrName}";
                             $msg .= "CUENTA_ADD\tLa Cuenta {$cuenta} de Carga por Cajero [ {$nombre} ]\r\n";
                         } else {
                             $msg .= "CUENTA\tLa Cuenta de Trabajo es {$cuenta} Originado del Socio {$socio}\r\n";
                         }
                         //verifica para dar de alta a la cuenta
                         $Existentes = $xCuenta->getCountCuenta();
                         if ($Existentes == false) {
                             $msg .= "{$numero_de_recibo}\tCUENTA_ADD\tLa Cuenta de Trabajo {$cuenta} NO EXISTE, Se AGREGA\r\n";
                             $cuenta = $xCuenta->add($nombre);
                             if ($xCuenta->mRaiseError == true) {
//.........这里部分代码省略.........
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:101,代码来源:core.contable.utils.inc.php

示例3: setRegenerarSDPM

 function setRegenerarSDPM($PFechaInicial, $PFechaFinal, $GenerarInteres = true, $incluirSinSaldo = false, $NumeroCuenta = false)
 {
     //		$PFechaFinal		= "";
     $mBase = 3100;
     $xT = new cTipos();
     $ql = new MQL();
     $BySaldo = $incluirSinSaldo == false ? " AND captacion_cuentas.saldo_cuenta >=" . TOLERANCIA_SALDOS : "";
     $ByCuentaSDPM = $NumeroCuenta == false ? "" : " AND `captacion_sdpm_historico`.`cuenta` = {$NumeroCuenta} ";
     $ByCuentaMvto = $NumeroCuenta == false ? "" : " AND `operaciones_mvtos`.`docto_afectado` = {$NumeroCuenta} ";
     $ByCuentaCta = $NumeroCuenta == false ? "" : " AND captacion_cuentas.numero_cuenta = {$NumeroCuenta} ";
     $msg = "";
     $msg .= "==========================================================================================\r\n";
     $msg .= "==================\tGenerando SDPM desde el {$PFechaInicial} al {$PFechaFinal}\r\n";
     $msg .= "==========================================================================================\r\n";
     $msg .= "Socio\tCuenta\tOPER\tEjercicio\tPeriodo\tFecha\tDias\tMonto\tSaldo\tSDPM\r\n";
     $sqlM = "SELECT \n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`fecha_operacion`  AS 'fecha_operacion',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado` AS 'recibo_afectado',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`docto_afectado` AS 'docto_afectado',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`afectacion_real` AS 'afectacion_real',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`valor_afectacion`,\n\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`afectacion` AS 'afectacion'\n\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos` \n\t\t\t\t\t\t\t\t\t\tINNER JOIN `eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = \n\t\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro` \n\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` ={$mBase})\n\t\t\t\t\t\t\t\t\t{$ByCuentaMvto}\n\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`fecha_operacion` ASC";
     $rsM = getRecordset($sqlM);
     $arrOps = array();
     //Array de montos de operacion
     $arrRecs = array();
     //Array de Recibos de Operacion
     while ($rwM = mysql_fetch_array($rsM)) {
         //clave cuenta fecha
         $cuenta = $rwM["docto_afectado"];
         $fecha = $rwM["fecha_operacion"];
         if (isset($arrOps[$cuenta . "-" . $fecha])) {
             $arrOps[$cuenta . "-" . $fecha] += $rwM["afectacion_real"] * $rwM["afectacion"];
         } else {
             $arrOps[$cuenta . "-" . $fecha] = $rwM["afectacion_real"] * $rwM["afectacion"];
         }
         $arrRecs[$cuenta . "-" . $fecha] = $rwM["recibo_afectado"];
         //$msg					.= "WARN\t$cuenta\tAgregar " . ($rwM["afectacion_real"] * $rwM["afectacion"] ) . "\r\n";
     }
     //Eliminar periodos anteriores
     $sqlDF = "DELETE FROM captacion_sdpm_historico WHERE (fecha>='{$PFechaInicial}' AND fecha<='{$PFechaFinal}') {$ByCuentaSDPM} ";
     my_query($sqlDF);
     //FECHAS
     $xF = new cFecha(0);
     //
     $xTbl = new cSAFETabla(TCAPTACION_CUENTAS);
     $sqlCX = $xTbl->getQueryInicial() . " WHERE captacion_cuentas.tipo_cuenta = " . CAPTACION_TIPO_VISTA . " {$BySaldo} {$ByCuentaCta} ";
     $rs1 = getRecordset($sqlCX);
     while ($rw1 = mysql_fetch_array($rs1)) {
         $socio = $rw1["numero_socio"];
         $cuenta = $rw1["numero_cuenta"];
         $xCta = new cCuentaALaVista($cuenta, $socio);
         $xCta->init($rw1);
         $DCta = $xCta->getDatosInArray();
         $FApertura = $DCta["fecha_apertura"];
         $dias = $xF->setRestarFechas($PFechaFinal, $FApertura);
         $dias += 1;
         $sucursal = $DCta["sucursal"];
         $FechaAnterior = $FApertura;
         $saldoAnterior = 0;
         $xF2 = new cFecha(1);
         for ($i = 0; $i <= $dias; $i++) {
             $OpFecha = $xF->setSumarDias($i, $FApertura);
             $xF->set($OpFecha);
             $OpFechaFin = $xF->getDiaFinal();
             $OpMonto = isset($arrOps[$cuenta . "-" . $OpFecha]) ? $arrOps[$cuenta . "-" . $OpFecha] : 0;
             $idrecibo = isset($arrRecs[$cuenta . "-" . $OpFecha]) ? $arrRecs[$cuenta . "-" . $OpFecha] : DEFAULT_RECIBO;
             //si la operacion es mayor a cero o es FIN DE MES
             if ($OpMonto != 0 or $OpFecha == $OpFechaFin) {
                 $diasTrans = $xF2->setRestarFechas($OpFecha, $FechaAnterior);
                 $xF2->set($OpFecha);
                 $ejercicio = $xF2->anno();
                 $periodo = $xF2->mes();
                 $sdpd = $saldoAnterior * $diasTrans;
                 $nuevatasa = $xCta->getTasaAplicable(0, 0, $saldoAnterior);
                 //corregir fecha
                 $sqlUSPM = "INSERT INTO captacion_sdpm_historico\n\t\t\t\t\t\t\t\t\t\t(ejercicio, periodo, cuenta, fecha, dias, tasa, monto, recibo, numero_de_socio, sucursal)\n\t    \t\t\t\t\t\t\t\tVALUES( {$ejercicio}, {$periodo}, {$cuenta}, '{$OpFecha}', {$diasTrans}, {$nuevatasa}, {$sdpd}, {$idrecibo}, {$socio}, '{$sucursal}') ";
                 //si es valida la operacion, se actualizan
                 if ($OpFecha >= $PFechaInicial and $OpFecha <= $PFechaFinal) {
                     my_query($sqlUSPM);
                     $msg .= "{$socio}\t{$cuenta}\t+SDPM\t{$ejercicio}\t{$periodo}\t{$OpFecha}\t{$diasTrans}\t{$OpMonto}\t{$saldoAnterior}\t{$sdpd}\r\n";
                 } else {
                     $msg .= "{$socio}\t{$cuenta}\t=SDPM\t{$ejercicio}\t{$periodo}\t{$OpFecha}\t{$diasTrans}\t{$OpMonto}\t{$saldoAnterior}\t{$sdpd}\r\n";
                 }
                 $FechaAnterior = $OpFecha;
                 $saldoAnterior += $OpMonto;
             }
         }
     }
     //Agregar Movimientos Finales del MES.
     //FIXME: Corregir incidencias
     //opcional: agregar Interes
     if ($GenerarInteres == true) {
         $xRec = new cReciboDeOperacion(12, false);
         $recibo = $xRec->setNuevoRecibo(DEFAULT_SOCIO, 1, $PFechaFinal, 1, 12, "REGENERAR_INTERES_SDPM_{$PFechaFinal}", "NA", "ninguno", "NA", DEFAULT_GRUPO);
         $msg .= "==========================================================================================\r\n";
         $msg .= "==================\tAGREGADO INTERES :: RECIBO {$recibo}\r\n";
         $msg .= "==========================================================================================\r\n";
         $_SESSION["recibo_en_proceso"] = $recibo;
         //sumar sdpm del mes por cuenta
         $sqlSDPM = "SELECT\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`numero_de_socio`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`cuenta`,\n\t\t\t\t\t\t\t\tSUM(`captacion_sdpm_historico`.`dias`)  AS `dias_transcurridos`,\n\t\t\t\t\t\t\t\tSUM(`captacion_sdpm_historico`.`monto`) AS `sdpm`,\n\t\t\t\t\t\t\t\tROUND( (`captacion_sdpm_historico`.`monto` / `captacion_sdpm_historico`.`dias`), 2) AS `ultimo_saldo`,\n\t\t\t\t\t\t\t\tMAX(`captacion_sdpm_historico`.`fecha`) AS 'UltimaFecha'\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico` `captacion_sdpm_historico` \n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t(`captacion_sdpm_historico`.`fecha` >= '{$PFechaInicial}')\n\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t(`captacion_sdpm_historico`.`fecha` <= '{$PFechaFinal}')\n\t\t\t\t\t\t\t\t{$ByCuentaSDPM}\n\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`cuenta`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`ejercicio`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`periodo`\n\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`fecha` DESC ";
         $rsCAP = $ql->getDataRecord($sqlSDPM);
         //setLog($sqlSDPM);
         foreach ($rsCAP as $rwC) {
             $socio = $rwC["numero_de_socio"];
             $cuenta = $rwC["cuenta"];
//.........这里部分代码省略.........
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:101,代码来源:core.captacion.utils.inc.php

示例4: cHSelect

$xSel = new cHSelect();
$pais = EACP_CLAVE_DE_PAIS;
?>
<fieldset>
<legend>Actualizacion / correccion de Datos</legend>

<?php 
$elsocio = isset($_GET["elsocio"]) ? $_GET["elsocio"] : false;
$action = isset($_GET["a"]) ? $_GET["a"] : false;
if ($action == false) {
    if ($elsocio != false) {
        $xSoc = new cSocio($elsocio);
        $xSoc->init();
        $DSoc = $xSoc->getDatosInArray();
        $xF = new cFecha(0, $DSoc["fecha_de_nacimiento"]);
        $anac = $xF->anno();
        $mnac = $xF->mes();
        $dnac = $xF->dia();
        /*
        		codigo, nombrecompleto, apellidopaterno, 
        		apellidomaterno, rfc, curp, fechaentrevista, fechaalta, estatusactual, 
        		region, cajalocal, fechanacimiento, lugarnacimiento, tipoingreso, estadocivil, 
        		genero, eacp, observaciones, idusuario, grupo_solidario, personalidad_juridica, dependencia, 
        		regimen_conyugal, sucursal, fecha_de_revision, tipo_de_identificacion, documento_de_identificacion 
        */
        $pais = $xSoc->getPaisDeOrigen();
    }
    ?>
<form name ='frmsolingreso' METHOD='POST' ACTION='frmupdatesocios.php?a=ok'>
		<input type='hidden' name='uidsocio' value='<?php 
    echo $DSoc["codigo_de_socio"];
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:31,代码来源:frmupdatesocios.php

示例5: jsa_getDatosDeCredito

function jsa_getDatosDeCredito($solicitud)
{
    $xCred = new cCredito($solicitud);
    $xCred->initCredito();
    $xF = new cFecha();
    $xT = new cTipos();
    $dCreds = $xCred->getDatosDeCredito();
    $periocidad = $xCred->getPeriocidadDePago();
    $FMinistracion = $xCred->getFechaDeMinistracion();
    $contrato_corriente = $xCred->getContratoCorriente();
    $xPlanGen = new cPlanDePagosGenerador();
    $xPlanGen->initPorCredito($solicitud);
    $FPrimerAb = $xPlanGen->getFechaDePrimerPago();
    $xF = new cFecha(0, $FMinistracion);
    $FM_d = $xF->dia();
    $FM_a = $xF->anno();
    $FM_m = $xF->mes();
    $xF2 = new cFecha(1, $FPrimerAb);
    $xF2->set($FPrimerAb);
    $PA_d = $xF2->dia();
    $PA_a = $xF2->anno();
    $PA_m = $xF2->mes();
    $tab = new TinyAjaxBehavior();
    //setLog("$PA_d --- $PA_m ---- $PA_a  - - - - - $FPrimerAb");
    $tab->add(TabSetvalue::getBehavior('ideldia1', $FM_d));
    $tab->add(TabSetvalue::getBehavior('idelmes1', $FM_m));
    $tab->add(TabSetvalue::getBehavior('idelanno1', $FM_a));
    $tab->add(TabSetvalue::getBehavior('ideldia0', $PA_d));
    $tab->add(TabSetvalue::getBehavior('idelmes0', $PA_m));
    $tab->add(TabSetvalue::getBehavior('idelanno0', $PA_a));
    $tab->add(TabSetvalue::getBehavior('idDescripcionSolicitud', $xCred->getShortDescription()));
    $tab->add(TabSetvalue::getBehavior('idcuenta', $contrato_corriente));
    //$xCred->getPeriocidadDePago() != CREDITO_TIPO_PERIOCIDAD_CATORCENAL
    if ($xCred->getTipoEnSistema() == CREDITO_PRODUCTO_NOMINA) {
        $tab->add(TabSetvalue::getBehavior('idFormaDePago', $xCred->getTipoDePago()));
        //setLog("El pago es " . $xCred->getPeriocidadDePago() );
        if ($xCred->getPeriocidadDePago() != CREDITO_TIPO_PERIOCIDAD_CATORCENAL) {
            $tab->add(TabSetvalue::getBehavior('idtipo_plan_pagos', CREDITO_TIPO_DIAS_DE_PAGO_PERSONALIZADOS));
        }
    }
    return $tab->getString();
}
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:42,代码来源:frmcreditosplandepagos.php

示例6: add

 function add($nombre, $tipo = false, $centro_de_costo = false, $es_mayor = false, $digito_agrupador = false, $fecha_de_alta = false, $equivalencia = false, $superior = false)
 {
     $xLog = new cCoreLog();
     $cuenta = $this->mCuenta;
     $xEsq = new cCuentaContableEsquema($cuenta);
     $xF = new cFecha();
     $ready = true;
     $heredar = false;
     $afectable = 1;
     $xLog->add("WARN\tAlta a la Cuenta {$cuenta} \r\n");
     //si equivalencia es igual a null
     $equivalencia = $equivalencia == false ? ZERO_EXO : $equivalencia;
     //si la Fecha no Existe, llevarla a Default.
     $fecha_de_alta = $xF->getFechaISO($fecha_de_alta);
     //Si el Digito Agrupador No Existe, Buscarlo
     $digito_agrupador = setNoMenorQueCero($digito_agrupador);
     $digito_agrupador = $digito_agrupador <= 0 ? $xEsq->NIVEL_ACTUAL : $digito_agrupador;
     $superior = $xEsq->CUENTA_SUPERIOR;
     //busca la cuenta superior, si esta no existe, obtener una nueva
     if ($digito_agrupador > CONTABLE_CUENTA_NIVEL_TITULO) {
         $this->setSuperior($superior);
         $this->getParent(true);
         $InfoSuperior = $this->mArraySuperior;
         $ready = $this->mSuperiorIniciada;
         //false
         if ($ready == false) {
             $xLog->add("WARN\tError al Iniciar la Cuenta Superior {$superior}\r\n");
         } else {
             $xLog->add("OK\tCuenta Superior {$superior} INICIADA\r\n", $xLog->DEVELOPER);
             //contar cuantos relaciones tiene
             //si las relaciones on mas de uno, entonces no es afectable
             if ($InfoSuperior["afectable"] == SYS_UNO) {
                 $xLog->add("OK\tLa Cuenta Superior {$superior} Es afectable\r\n", $xLog->DEVELOPER);
                 $heredar = true;
             }
             $tipo = $tipo == false ? $InfoSuperior["tipo"] : $tipo;
         }
     }
     $es_mayor = setNoMenorQueCero($es_mayor);
     $centro_de_costo = setNoMenorQueCero($centro_de_costo);
     if ($digito_agrupador == CONTABLE_CUENTA_NIVEL_TITULO) {
         if ($tipo == false) {
             $ready = false;
             $xLog->add("WARN\tEl Tipo de la cuenta {$cuenta} no puede quedar vacio\r\n");
         }
         $digito_agrupador = 1;
         $afectable = 1;
         $es_mayor = CONTABLE_CUENTA_NIVEL_TITULO;
     } else {
         if ($digito_agrupador > 3) {
             $es_mayor = 4;
         } else {
             $es_mayor = $digito_agrupador;
         }
     }
     /**
      * Si la Cuenta Superior no Existe, y no es Nivel 1.- Titulo
      */
     if ($ready == true) {
         $ql = new MQL();
         $sql = "INSERT INTO contable_catalogo(numero, equivalencia, nombre, tipo, ctamayor,\tafectable, centro_de_costo, fecha_de_alta,\tdigitoagrupador)\n\t\t\tVALUES({$cuenta},\t'{$equivalencia}', '{$nombre}', '{$tipo}', {$es_mayor},\t{$afectable},\n\t\t\t{$centro_de_costo}, '{$fecha_de_alta}',\t{$digito_agrupador})";
         $ql->setRawQuery($sql);
         $xLog->add("OK\tSe Guardo la Cuenta {$cuenta} de forma Satisfactoria \r\n");
         $this->mCuentaSuperior = $superior;
         $this->mDigitoAgrupador = $digito_agrupador;
         $this->mCuenta = $cuenta;
         //Iniciar
         $this->init();
         $this->setRelation();
         if ($heredar == true) {
             $msg = $this->setHeredarSaldos($superior);
             $xLog->add($msg, $xLog->DEVELOPER);
         } else {
             //Solo generar saldos
             $msg = $this->setSaldos($xF->anno(), false, true);
             $xLog->add($msg, $xLog->DEVELOPER);
         }
     } else {
         $xLog->add("ERROR\tError al Agregar la cuenta {$cuenta} - {$superior}\r\n");
         $cuenta = CUENTA_DE_CUADRE;
     }
     $this->mMessages = $xLog->getMessages();
     return $cuenta;
 }
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:84,代码来源:core.contable.inc.php

示例7: cFecha

 function __construct($fecha = false)
 {
     $xF = new cFecha();
     $xF->set($xF->getFechaISO($fecha));
     $mes = $xF->mes();
     $annio = $xF->anno();
     if ($mes <= 3) {
         $this->mID = 1;
         $this->mFechaInicial = "{$annio}-01-01";
         $this->mFechaFinal = "{$annio}-03-31";
     } elseif ($mes >= 4 and $mes <= 6) {
         $this->mID = 2;
         $this->mFechaInicial = "{$annio}-04-01";
         $this->mFechaFinal = "{$annio}-06-30";
     } elseif ($mes >= 7 and $mes <= 9) {
         $this->mID = 3;
         $this->mFechaInicial = "{$annio}-07-01";
         $this->mFechaFinal = "{$annio}-09-30";
     } else {
         $this->mID = 4;
         $this->mFechaInicial = "{$annio}-10-01";
         $this->mFechaFinal = "{$annio}-12-31";
     }
 }
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:24,代码来源:core.fechas.inc.php

示例8: cCaja

$xCaja = new cCaja();
if ($xCaja->getEstatus() == TESORERIA_CAJA_CERRADA) {
    header("location:../404.php?i=200");
}
echo $xHP->getHeader();
$jscallback = parametro("callback");
$tiny = parametro("tiny");
$form = parametro("form");
$action = parametro("action", SYS_NINGUNO);
$monto = parametro("monto", 0, MQL_FLOAT);
$tipo_de_recibo = parametro("tiporecibo", 0, MQL_INT);
$xJS = new jsBasicForm("frmgtosefvo");
$lowdate = $xF->setSumarDias(DIAS_PAGO_UNICOS);
$ndia = $xF->dia();
$nmes = $xF->mes();
$nano = $xF->anno();
$xFRM = new cHForm("frm", "./");
$xBtn = new cHButton();
$xTxt = new cHText();
$xDate = new cHDate();
$xSel = new cHSelect();
?>
<script>
	function fechaminima() {
			document.frmgtosefvo.eldia0.value = <?php 
echo $ndia;
?>
;
			document.frmgtosefvo.elmes0.value = <?php 
echo $nmes;
?>
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:31,代码来源:frmgastoefvo.php

示例9: getFechaDeAviso

 function getFechaDeAviso($periocidad = false, $fecha = false, $periodoInit = false, $periodoEnd = false)
 {
     $xF = new cFecha();
     $dias = explode(",", strtoupper($this->mDiasDeAviso));
     $diasSem = $xF->getDiasDeSemanaInArray();
     $periocidad = $periocidad == false ? $this->getPeriocidadPref() : $periocidad;
     $fecha = $fecha == false ? fechasys() : $fecha;
     $result = null;
     $items = 1;
     foreach ($diasSem as $numero => $nombre) {
         /*if(isset($dias[$nombre]) ){
         			unset($dias[$nombre]);
         			$dias[$numero]
         		}*/
     }
     foreach ($dias as $id => $dia) {
     }
     foreach ($dias as $id => $dia) {
         //limpiar
         if ($periocidad != CREDITO_TIPO_PERIOCIDAD_SEMANAL) {
             foreach ($diasSem as $numero => $nombre) {
                 if ($dia == $nombre) {
                     unset($dias[$id]);
                 }
             }
             if (setNoMenorQueCero($dia) > $xF->getDiasDelMes() or setNoMenorQueCero($dia) == 0) {
                 unset($dias[$id]);
             }
             switch ($periocidad) {
                 case CREDITO_TIPO_PERIOCIDAD_DECENAL:
                     if ($id > 3) {
                         unset($dias[$id]);
                     }
                     break;
                 case CREDITO_TIPO_PERIOCIDAD_CATORCENAL:
                     if ($id > 2) {
                         unset($dias[$id]);
                     }
                     break;
                 case CREDITO_TIPO_PERIOCIDAD_QUINCENAL:
                     if ($id > 2) {
                         unset($dias[$id]);
                     }
                     break;
                 case CREDITO_TIPO_PERIOCIDAD_MENSUAL:
                     if ($id > 1) {
                         unset($dias[$id]);
                     }
                     break;
             }
         } else {
             //convertir dias
             foreach ($diasSem as $numero => $nombre) {
                 if ($dia == $nombre) {
                     $dias[$id] = $numero;
                 }
             }
             if (setNoMenorQueCero($dia) > 7 or setNoMenorQueCero($dia) == 0) {
                 unset($dias[$id]);
             }
             if ($id > 1) {
                 unset($dias[$id]);
             }
         }
     }
     //$items		= count($dias);
     //encontrar el periodo cero
     switch ($periocidad) {
         case CREDITO_TIPO_PERIOCIDAD_DECENAL:
             break;
         case CREDITO_TIPO_PERIOCIDAD_CATORCENAL:
             break;
         case CREDITO_TIPO_PERIOCIDAD_QUINCENAL:
             break;
         case CREDITO_TIPO_PERIOCIDAD_MENSUAL:
             $xF1 = new cFecha(0, $fecha);
             $result = $xF1->anno() . "-" . $xF1->mes() . "-" . $dias[0];
             break;
         case CREDITO_TIPO_PERIOCIDAD_SEMANAL:
             //$fechaInicial	= $xF->setFechaPorSemana();
             $xF1 = new cFecha(0, $fecha);
             $buscar = 1;
             foreach ($dias as $id => $cnt) {
                 $buscar = $cnt;
             }
             $semana = date("W", $xF1->getInt());
             $result = $xF1->setFechaPorSemana($semana, $buscar);
             /*
              $first_day_of_week = date('m-d-Y', strtotime('Last Monday', time()));
             $last_day_of_week = date('m-d-Y', strtotime('Next Sunday', time()));
             */
             break;
     }
     return $result;
 }
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:95,代码来源:core.common.inc.php

示例10: get

 function get($label = "", $Fecha = false, $indice = false)
 {
     $xTr = new cLang();
     $label = $xTr->getT($label);
     $maxSize = $this->mLabelSize == 0 ? HP_LABEL_SIZE : $this->mLabelSize;
     if ($indice !== false) {
         $this->mIndex = $indice;
     }
     if (strlen($label) < $maxSize) {
         $rll = $maxSize - strlen(html_entity_decode($label));
     }
     $extraDate = "";
     $label = $label == "" ? "" : "<label for='idfecha-" . $this->mIndex . "'>{$label}</label>";
     $this->set($Fecha);
     $xF = new cFecha($this->mIndex, $this->mFecha);
     $events = $this->mEvents;
     $xF->init(FECHA_FORMATO_MX);
     $id = $this->mId == "" ? "idfecha-" . $this->mIndex . "" : $this->mId;
     if ($this->mTipoFecha == FECHA_TIPO_NACIMIENTO) {
         $anno = $xF->anno() - 18;
         $xF->set("{$anno}-" . $xF->mes() . "-" . $xF->dia());
         $this->set($xF->get());
         $extraDate = ",selectYears: true ";
     }
     $txt = "<input type=\"text\" id=\"{$id}\" value=\"" . $xF->get() . "\" name=\"{$id}\" {$events}><script>\$(\"#{$id}\").pickadate({format: 'dd-mm-yyyy',formatSubmit:'yyyy-mm-dd', editable : true {$extraDate}});</script> ";
     $initDiv = $this->mClassDiv == "" ? "" : "<div class=\"" . $this->mClassDiv . "\">";
     $endDiv = $this->mClassDiv == "" ? "" : "</div>";
     return $this->mSelects == false ? $initDiv . $label . $txt . $endDiv : $initDiv . $label . $xF->show(true, $this->mTipoFecha) . $endDiv;
 }
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:29,代码来源:core.html.inc.php

示例11: getListadoDeSaldosPorMes

 function getListadoDeSaldosPorMes($cuenta, $fecha = false, $tipo = 1)
 {
     $fecha = $fecha == false ? fechasys() : $fecha;
     $xF = new cFecha(0, $fecha);
     $mes = (int) $xF->mes();
     $anno = $xF->anno();
     $xEsq = new cCuentaContableEsquema($cuenta);
     $rawC = $xEsq->CUENTARAW;
     $siz = strlen($rawC);
     $sql = "SELECT\n\t\t\t`contable_catalogo`.`numero`,\n\t\t\t`contable_catalogo`.`nombre`,\n\t\t\t`contable_catalogo`.`digitoagrupador` AS 'nivel',\n\t\t\t`contable_saldos`.`imp{$mes}` AS 'monto'\n\t\t\t\n\n\t\tFROM\n\t`contable_catalogo` `contable_catalogo` \n\t\tINNER JOIN `contable_saldos` `contable_saldos` \n\t\tON `contable_catalogo`.`numero` = `contable_saldos`.`cuenta`\n\t\t\n\t\tWHERE\n\t\t\t(`contable_saldos`.`ejercicio` = {$anno}) AND\n\t\t\t(`contable_saldos`.`tipo` = {$tipo}) \n\t\t\tAND \n\t\t\t(`contable_catalogo`.`digitoagrupador` <=3)\n\t\t\tAND \n\t\t\tSUBSTR(`contable_catalogo`.`numero`, 1, {$siz}) = '{$rawC}'\n\t\tORDER BY numero ";
     return $sql;
 }
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:12,代码来源:core.db.inc.php

示例12: setProcesarProgramacion

 function setProcesarProgramacion($id, $arrVars = false, $data = false, $fecha = false)
 {
     $xF = new cFecha();
     $xT = new cTipos();
     $xLog = new cCoreLog();
     $arrVars = $arrVars == false ? $this->mArrVars : $arrVars;
     //idprograma, nombre_del_aviso, forma_de_creacion, programacion, destinatarios, microformato, tipo_de_medios, intent_check, intent_command
     $sql = "SELECT *\tFROM sistema_programacion_de_avisos WHERE idprograma={$id} LIMIT 0,1";
     $d = $data == false ? obten_filas($sql) : $data;
     $mOb = new cSistema_programacion_de_avisos();
     $mOb->setData($d);
     $emails = array();
     $tels = array();
     $enviar = false;
     $fecha = $fecha == false ? fechasys() : $fecha;
     $nombredia = $xF->getDayName();
     $diadelmes = date("j", $xF->getInt());
     $EnviarNota = true;
     $EnviarMail = true;
     $EnviarSMS = false;
     $xLoc = new cLocal();
     //procesar cuerpo del contenido
     $arrVars["fecha"] = !isset($arrVars["fecha"]) ? $fecha : $arrVars["fecha"];
     $arrVars["fecha_dia_siguiente"] = $xF->setSumarDias(1, $fecha);
     $arrVars["fecha_inicio_de_semana"] = $xF->getFechaDeInicioDeSemana($fecha);
     $arrVars["fecha_inicio_de_mes"] = $xF->getDiaInicial($fecha);
     //Dia de la semana inicial
     $arrVars["hora"] = date("H");
     $arrVars["usuario"] = $xLoc->getNombreUsuario();
     $arrVars["clave_de_usuario"] = !isset($arrVars["clave_de_usuario"]) ? getUsuarioActual() : $arrVars["clave_de_usuario"];
     //interpretar DIA
     if (strtoupper($mOb->forma_de_creacion()->v()) == SYS_ALERTA_POR_EVENTO) {
         $enviar = true;
     } else {
         //if($mOb->programacion())
         $programacion = strtoupper($mOb->programacion()->v());
         $periodo = explode(":", $programacion);
         //INTERPRETAR DIA
         if ($periodo[0] == "PROGRAMACION_SEMANAL") {
             if (strpos($nombredia, $programacion) !== false) {
                 $enviar = true;
             }
         } else {
             if ($periodo[0] == "PROGRAMACION_DIARIA") {
                 $enviar = true;
             } else {
                 if (isset($periodo[1])) {
                     $dias = explode(",", $periodo[1]);
                     foreach ($dias as $dias => $iddia) {
                         $mes = $xF->mes();
                         $anno = $xF->anno();
                         if (date("Y-m-d", strtotime("{$anno}-{$mes}-{$iddia}")) == $fecha) {
                             $enviar = true;
                         }
                     }
                 }
             }
         }
     }
     //1.- extraer emails
     $destinatarios = explode("|", $mOb->destinatarios()->v());
     foreach ($destinatarios as $key => $cnt) {
         if (trim($cnt) != "") {
             //1.1 Desfragmentar destinos
             $DS = explode(":", $cnt);
             $mdestino = isset($DS[0]) ? strtoupper($DS[0]) : "";
             switch ($mdestino) {
                 case "OFICIALES":
                     if (isset($DS[1])) {
                         $oficiales = explode(",", $DS[1]);
                         foreach ($oficiales as $ofc => $ofkey) {
                             $xOf = new cOficial($ofkey);
                             $xOf->init();
                             $mail = $xOf->getEmail();
                             $emails[] = $mail;
                             $xLog->add("OK\tOFICIAL\tAgregar mail {$mail}  \r\n", $xLog->DEVELOPER);
                         }
                     }
                     break;
                 case "EMPRESAS":
                     if (isset($DS[1])) {
                         $empresas = explode(",", $DS[1]);
                         foreach ($empresas as $emp => $empkey) {
                             $xEmp = new cEmpresas($empkey);
                             $xEmp->init();
                             //$mail		= $xEmp->getEmailsDeEnvio();
                             //$emails[]	= $mail;
                             $emails = array_merge($emails, $xEmp->getEmailsDeEnvio());
                             $xLog->add("OK\tEMPRESAS\tAgregar mail de la empresa {$empkey}  \r\n", $xLog->DEVELOPER);
                         }
                     }
                     break;
                 case "PERSONAS":
                     if (isset($DS[1])) {
                         $personas = explode(",", $DS[1]);
                         foreach ($personas as $ofc => $ofkey) {
                             $xSoc = new cSocio($ofkey);
                             $xSoc->init();
                             $mail = $xSoc->getCorreoElectronico();
                             $emails[] = $mail;
//.........这里部分代码省略.........
开发者ID:Cywaithaka,项目名称:S.A.F.E.-Open-Source-Microfinance-Suite,代码行数:101,代码来源:core.seguimiento.inc.php


注:本文中的cFecha::anno方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。