$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);
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) { //$msg .= "ERROR\tLa Cuenta de Trabajo $cuenta NO EXISTE\r\n"; //$msg = $xCuenta->getMessages(); } } $xCuenta->init(); $msg .= $xCuenta->getMessages(); $msg .= $xPol->addMovimiento($cuenta, $cargo_movimiento, $abono_movimiento, "{$socio}:{$documento}:{$tipoOp}", $concepto_mvto); } else { $msg .= "{$numero_de_recibo}\tNO_CONT\tEl Movimiento de {$socio} | {$documento} | {$tipoOp} de Monto {$monto_movimiento} se OMITE\r\n"; } } //END MOVIMIENTOS } else { $msg .= "{$numero_de_recibo}\tEXISTE UN ERROR AL CARGAR EL RECIBO\r\n"; } // END SUCESS } // END RECIBOS $xPol->setReestructurarEfvo(); $msg .= $xPol->setFinalizar(); $msg .= $xPol->getMessages(); $this->mIDDePoliza = $xPol->getCodigo(); } // END VALUE.- GENERAR AL CIERRE DEL DIA //} // END VALUE.- GENERAR CONTABILIDAD return $msg; }
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"]; $dias_de_calc = $rwC["dias_transcurridos"]; $sumaSDPM = $rwC["sdpm"]; $FechaI = $rwC["UltimaFecha"]; $promedio = $xT->cFloat($sumaSDPM / $dias_de_calc, 2); //XXX: Solucionar Tasa de Interes y hacer las rapida la consulta $xCta = new cCuentaDeCaptacion($cuenta); $xCta->init(); $subtipo = $xCta->getTipoDeSubproducto(); $tasa_nueva = obtentasa($promedio, CAPTACION_TIPO_VISTA, 0, $subtipo); $interes = $sumaSDPM * $tasa_nueva / EACP_DIAS_INTERES; $interes = $xT->cFloat($interes, 2); //agregar movimiento if ($interes > 0) { setNuevoMvto($socio, $cuenta, $recibo, $FechaI, $interes, 222, 1, "CALCULO_AUTOMATICO_DESDE_{$PFechaInicial}"); $msg .= "{$socio}\t{$cuenta}\tAGREGAR\tInteres por {$interes}, tasa {$tasa_nueva}, Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n"; } else { $msg .= "{$socio}\t{$cuenta}\tIGNORAR\tInteres por {$interes}, tasa {$tasa_nueva}, Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n"; } } } return $msg; }
$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"];
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(); }
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; }
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"; } }
$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; ?>
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; }
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; }
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; }
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; $xLog->add("OK\tPERSONA\tAgregar mail {$mail} \r\n", $xLog->DEVELOPER); if ($xT->cNumeroTelefonico($xSoc->getTelefonoPrincipal()) != false) { $EnviarSMS = true; $tels[] = $xT->cNumeroTelefonico($xSoc->getTelefonoPrincipal()); } } } break; case "CORREO": if (isset($DS[1])) { $personas = explode(",", $DS[1]); foreach ($personas as $ofc => $ofkey) { if (filter_var($ofkey, FILTER_VALIDATE_EMAIL)) { $emails[] = $ofkey; } $xLog->add("OK\tCORREO\tAgregar mail {$ofkey} \r\n", $xLog->DEVELOPER); } } break; } //1.1.1 Validar oficiales, empresas, personas //if(strpos("OFICIALES:", $needle)) } } $this->mMessages .= $xLog->getMessages(); $texto = $mOb->microformato()->v(); foreach ($arrVars as $variable => $valor) { $texto = str_replace("{" . $variable . "}", $valor, $texto); } if ($enviar == true) { $url = $mOb->intent_command()->v(OUT_TXT); //2 procesado del comando if (trim($url) == "") { $titulo = strtoupper($mOb->nombre_del_aviso()->v()); $xNot = new cNotificaciones(); //enviar mail normal if ($EnviarSMS == true) { foreach ($tels as $pitm => $ptel) { $xNot->sendSMS($ptel, $texto); } } if ($EnviarMail == true) { foreach ($emails as $itm => $pmail) { $xNot->sendMail($titulo, $texto, $pmail); } } } else { //execute command //rpttesoreria/corte_de_caja.rpt.php?on=2014-5-3&off=2014-5-3&cajero=todas&dependencia=todas $smail = ""; $xHO = new cHObject(); foreach ($arrVars as $variable => $valor) { $url = str_replace("{" . $variable . "}", $valor, $url); } foreach ($emails as $id => $rmail) { //$smail .= ($smail == "") ? "email$id=$rmail" : "&email$id=$rmail"; $smail .= "&email{$id}={$rmail}"; } //Iniciar session en contexto &on=$fecha&off=$fecha $xSysUser = new cSystemUser(); $xSysUser->init(); $url = $url . $smail . "&ctx=" . $xSysUser->getCTX(); if (MODO_DEBUG == true) { setLog($url); } $xHO->navigate($url); } } else { $this->mMessages .= "OK\tNo e envia el reporte\r\n"; } setLog($this->mMessages); $this->mObProgAv = $mOb; //return $this->mObProgAv; }