function jsaGuardarDatos($idcuenta, $nombre, $tipo, $centro, $equivalencia, $operacion) { //no se puede cambiar naturaleza, superior $xLog = new cCoreLog(); if ($operacion == SYS_CERO) { $xEsq = new cCuentaContableEsquema($idcuenta); $superior = $xEsq->CUENTA_SUPERIOR; $idcuenta = $xEsq->CUENTA; $nivel = $xEsq->NIVEL_ACTUAL; $xCta = new cCuentaContable($idcuenta); $xCta->add($nombre, $tipo, $centro, false, $nivel, false, $equivalencia, $superior); $xLog->add($xCta->getMessages(), $xLog->DEVELOPER); $xLog->add("OK\tAgregar Nueva cuenta {$idcuenta}\r\n"); } else { $xCta = new cCuentaContable($idcuenta); if ($xCta->init() == true) { $xCta->setActualizar($nombre, $equivalencia, $centro); } $xLog->add($xCta->getMessages(), $xLog->DEVELOPER); $xLog->add("OK\tActualizar {$idcuenta} {$nombre} {$equivalencia} {$centro}\r\n"); } return $xLog->getMessages(OUT_HTML); }
function setActualizarNivelDeRiesgo($actualizar = false) { $xQL = new MQL(); $xLi = new cSQLListas(); $xLog = new cCoreLog(); //$xLi->getInicialDeCuentas() $rs = $xQL->getDataRecord($xLi->getInicialDePersonas()); foreach ($rs as $rows) { $persona = $rows["codigo"]; $xAml = new cAMLPersonas($persona); $xAml->init($persona, $rows); $riesgo = $xAml->setAnalizarNivelDeRiesgo(); $NivelActual = $xAml->getOPersona()->getNivelDeRiesgo(); if ($riesgo != $NivelActual) { if ($riesgo >= SYS_RIESGO_MEDIO) { $xLog->add($xAml->getMessages(), $xLog->DEVELOPER); } if ($actualizar == true) { $xAml->getOPersona()->setActualizarNivelDeRiesgo($riesgo, $xAml->getMessages()); } $xLog->add($xAml->getOPersona()->getMessages(), $xLog->DEVELOPER); } } return $xLog->getMessages(); }
/** * Funcion que determina es Estatus de un Credito segun su Tipo de Pago * @param date $fecha_de_corte Fecha de Estimación * @param boolean $explain Explicar Estatus */ function setDetermineDatosDeEstatus($fecha_de_corte = false, $explain = false, $actualizar = false, $DPagos = false) { $xF = new cFecha(); $xLog = new cCoreLog(); $fecha_de_corte = $fecha_de_corte == false ? fechasys() : $fecha_de_corte; $fecha_de_corte_int = $xF->getInt($fecha_de_corte); $exoExplain = ""; $aviso = ""; if ($this->mCreditoInicializado == false) { $this->init(); } if ($this->getEsAfectable() == true) { $credito = $this->mNumeroCredito; $socio = $this->mNumeroSocio; $fecha_ministracion = $this->mFechaMinistracion; $fecha_vencimiento = $this->mFechaVencimiento; $pagos_autorizados = $this->mPagosAutorizados; $periocidad_pago = $this->mPeriocidadDePago; $dias_autorizados = $this->mDiasAutorizados; $tipo_de_pago = $this->mTipoDePago; $fecha_ultimo_mvto = $this->mFechaUltimoMvtoCapital; $saldo_insoluto = $this->mSdoCapitalInsoluto; $monto_ministrado = $this->mMontoMinistrado; $dias_tolerados_para_vencer = $this->mToleranciaEnDiasParaVcto; $estatus_actual = $this->mEstatusActual; $interes_diario = $this->mInteresDiario; $pagos_pendientes = $this->mPagosAutorizados; $xPer = $this->getOPeriocidad(); $OProd = $this->getOProductoDeCredito(); $dias_para_mora = $OProd->getDiasTolerados(); $dias_tolerados_para_vencer = $xPer->getDiasToleradosEnVencer(); $stat = array(); $ql = new MQL(); $stat[SYS_ESTADO] = $this->getEstadoActual(); $stat[SYS_CREDITO_DIAS_NORMALES] = 0; $stat[SYS_CREDITO_DIAS_MOROSOS] = 0; $stat[SYS_CREDITO_DIAS_VENCIDOS] = 0; $stat["fecha_de_inicio_de_pagos"] = $fecha_vencimiento; $xLog->add("----------CREDITO\t{$credito} --- Ministrado {$fecha_ministracion}\r\n", $xLog->DEVELOPER); if ($periocidad_pago == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) { //Tomado para los tipos 1: Pago unico a Final de Plazo --- 360 --- $mFechaDeInicio = $fecha_vencimiento; $mFechaDeMora = $xF->setSumarDias($dias_para_mora, $mFechaDeInicio); $mFechaDeVencimiento = $xF->setSumarDias($dias_tolerados_para_vencer, $mFechaDeMora); $letra_actualmente_pagada = $this->getPeriodoActual(); } else { //obtener la letra que debe pagar. $DFechas = is_array($DPagos) ? $DPagos : $ql->getDataRecord("SELECT * FROM historial_de_pagos WHERE credito={$credito} "); //============================================================== $DataFechas = array(); $Historico = array(); $letra_que_debe_estar_pagada = $this->getPeriodoActual(); $letra_actualmente_pagada = $this->getPeriodoActual(); //lo que se ha pagado $capital_pagado = 0; $capital_pendiente = 0; $interes_pagado = 0; $interes_pendiente = 0; $interes_nosaldado = 0; $terminado = false; //determina si ya termino la busqueda foreach ($DFechas as $rows) { $idxc = $rows["periodo"]; $DataFechas[$idxc][SYS_FECHA] = $rows["fecha"]; $DataFechas[$idxc][SYS_CAPITAL] = setNoMenorQueCero($rows["capital"]); $DataFechas[$idxc][SYS_MONTO] = setNoMenorQueCero($rows["pagos"]); $DataFechas[$idxc][SYS_INTERES_NORMAL] = setNoMenorQueCero($rows["interes"]); $DataFechas[$idxc]["SYS_INTERES_PAGADO"] = setNoMenorQueCero($rows["interes_pagado"]); $DataFechas[$idxc]["SYS_INTERES_SALDO"] = setNoMenorQueCero($rows["interes"] - $rows["interes_pagado"]); $capital_pendiente += $DataFechas[$idxc][SYS_CAPITAL]; $capital_pagado += $DataFechas[$idxc][SYS_MONTO]; $interes_pagado += $DataFechas[$idxc]["SYS_INTERES_PAGADO"]; $interes_pendiente += $DataFechas[$idxc][SYS_INTERES_NORMAL]; //$xLog->add("WARN\t$idxc\tAgregando pagos $capital_pendiente|$capital_pagado . $interes_pendiente|$interes_pagado \r\n", $xLog->DEVELOPER); //corregir if ($rows["fecha"] == "0000-00-00") { $idxAnterior = setNoMenorQueCero($idxc - 1); if (isset($DataFechas[$idxAnterior])) { $DataFechas[$idxc][SYS_FECHA] = $xF->setSumarDias($periocidad_pago, $DataFechas[$idxAnterior][SYS_FECHA]); $ql->setRawQuery("UPDATE operaciones_mvtos SET fecha_afectacion='" . $DataFechas[$idxc][SYS_FECHA] . "' WHERE docto_afectado={$credito} AND periodo_socio='{$idxc}' AND fecha_afectacion='0000-00-00' "); $xLog->add("ERROR\t{$idxc}\tFecha Invalida, corregida\r\n", $xLog->DEVELOPER); } } } //lo que debe pagarse for ($i = 1; $i <= $this->getPagosAutorizados(); $i++) { if ($terminado == false) { $idpagoanterior = setNoMenorQueCero($i - 1); $idpagoproximo = setNoMenorQueCero($i + 1); if (!isset($DataFechas[$i])) { //========================== $xLog->add("ERROR\t{$i}\tNumero de Pago con error\r\n", $xLog->DEVELOPER); $xPlan = new cPlanDePagosGenerador(); $xPlan->initPorCredito($this->mNumeroCredito, $this->getDatosInArray()); $fecha_de_referencia = $xF->setSumarDias($this->getPeriocidadDePago() * $i, $this->getFechaDeMinistracion()); $FechaDePago = $xPlan->getFechaDePago($fecha_de_referencia, $i); } else { $Datos = $DataFechas[$i]; $fecha = $Datos[SYS_FECHA]; if ($xF->getInt($fecha) <= $fecha_de_corte_int) { //creditos con solo interes if ($this->getPagosSinCapital() == true) { if ($Datos["SYS_INTERES_SALDO"] > 0) { $fecha = $xF->setSumarDias(1, $fecha); $xLog->add("WARN\t{$i}\tInicia la fecha de Mora en {$fecha} porque el interes es " . $Datos["SYS_INTERES_SALDO"] . " \r\n", $xLog->DEVELOPER); $FechaDePago = $fecha; $terminado = true; } } else { $saldoLetra = setNoMenorQueCero($Datos[SYS_CAPITAL] - $Datos[SYS_MONTO]); if ($saldoLetra > 0) { $fecha = $xF->setSumarDias(1, $fecha); $xLog->add("ERROR\t{$i}\tInicia la fecha de Mora en {$fecha} porque el Saldo de la Letra es {$saldoLetra} \r\n", $xLog->DEVELOPER); $FechaDePago = $fecha; $terminado = true; } } } else { $xLog->add("WARN\t{$i}\tFecha de Pago({$fecha}) Superior a la Fecha de corte ({$fecha_de_corte})\r\n", $xLog->DEVELOPER); $FechaDePago = $fecha; $terminado = true; } } } } //============================================================== if (!isset($FechaDePago)) { $xPlan = new cPlanDePagosGenerador(); $xPlan->initPorCredito($this->mNumeroCredito, $this->getDatosInArray()); $fecha_de_referencia = $xF->setSumarDias($this->getPeriocidadDePago() * $this->getPeriodoActual(), $this->getFechaDeMinistracion()); $FechaDePago = $xPlan->getFechaDePago($fecha_de_referencia, $this->getPeriodoActual()); $xLog->add("ERROR\tError en la Fecha. Se carga por estimacion {$FechaDePago} del periodo " . $this->getPeriodoActual() . " \r\n", $xLog->DEVELOPER); //corregir y actualizar } //$letra_que_debe_estar_pagada = ($letra_que_debe_estar_pagada ==0) ? 1 : $letra_que_debe_estar_pagada; //$FechaDePago = $Historico[$letra_que_debe_estar_pagada][SYS_FECHA]; $mFechaDeInicio = $FechaDePago; $mFechaDeMora = $xF->setSumarDias($dias_para_mora, $mFechaDeInicio); $mFechaDeVencimiento = $xF->setSumarDias($dias_tolerados_para_vencer, $mFechaDeMora); //$xLog->add("OK\t$idxc\t=" . $letra_que_debe_estar_pagada . "|" . $letra_actualmente_pagada . "|" . $FechaDePago . "|$mFechaDeInicio|$mFechaDeMora|$mFechaDeVencimiento\r\n", $xLog->DEVELOPER); // $xLog->add("Letra pagara $letra_actualmente_pagada , que debe pagar $letra_que_debe_estar_pagada\r\n", $xLog->DEVELOPER); //$pagos_pendientes = setNoMenorQueCero( $this->mPagosAutorizados - $letra_actualmente_pagada ); } $stat[SYS_CREDITO_DIAS_NORMALES] = setNoMenorQueCero($xF->setRestarFechas($mFechaDeMora, $fecha_ministracion)); $stat[SYS_CREDITO_DIAS_MOROSOS] = setNoMenorQueCero($xF->setRestarFechas($mFechaDeVencimiento, $mFechaDeMora)); $stat[SYS_CREDITO_DIAS_VENCIDOS] = setNoMenorQueCero($xF->setRestarFechas($fecha_de_corte, $mFechaDeVencimiento)); $stat["fecha_de_inicio"] = $mFechaDeInicio; $stat["fecha_de_mora"] = $mFechaDeMora; $stat["fecha_de_vencimiento"] = $mFechaDeVencimiento; /** * Calcular el Estatus por metodo reversivo */ if ($xF->getInt($fecha_de_corte) >= $xF->getInt($mFechaDeVencimiento)) { $xLog->add("ERROR\tA.VENC\tLa fecha de corte (" . $xF->getFechaCorta($fecha_de_corte) . ") es mayor a la de vencimiento(" . $xF->getFechaCorta($mFechaDeVencimiento) . ") por o que se da como ***VENCIDO***\r\n"); $stat[SYS_ESTADO] = CREDITO_ESTADO_VENCIDO; } else { if ($xF->getInt($fecha_de_corte) >= $xF->getInt($mFechaDeMora) and $xF->getInt($fecha_de_corte) < $xF->getInt($mFechaDeVencimiento)) { $xLog->add("WARN\tA.MOR\tLa fecha de corte (" . $xF->getFechaCorta($fecha_de_corte) . ") es mayor a la de Mora(" . $xF->getFechaCorta($mFechaDeMora) . ") y Menor a la Fecha de Vencimiento (" . $xF->getFechaCorta($mFechaDeVencimiento) . ") por lo que se da como ***MOROSO***\r\n"); $stat[SYS_ESTADO] = CREDITO_ESTADO_MOROSO; $stat[SYS_CREDITO_DIAS_VENCIDOS] = 0; } else { if ($xF->getInt($fecha_de_corte) < $xF->getInt($mFechaDeMora)) { $xLog->add("OK\tA.VIG\tLa fecha de corte (" . $xF->getFechaCorta($fecha_de_corte) . ") es mayor a la de Mora(" . $xF->getFechaCorta($mFechaDeMora) . ") por o que se da como ***VIGENTE***\r\n"); $stat[SYS_ESTADO] = CREDITO_ESTADO_VIGENTE; $stat[SYS_CREDITO_DIAS_VENCIDOS] = 0; $stat[SYS_CREDITO_DIAS_MOROSOS] = 0; } else { } } } $this->mFechaVencimientoLegal = $mFechaDeVencimiento; $this->mFechaMora = $mFechaDeMora; //if($actualizar == true){ $xLog->add("Se actualizaran saldos12\r\n", $xLog->DEVELOPER);} if ($explain == true) { $stat["notas"] = $xLog->getMessages(); } else { $stat["notas"] = ""; } if ($actualizar == true) { $arrUpdate = array("fecha_mora" => $mFechaDeMora, "fecha_vencimiento_dinamico" => $mFechaDeVencimiento, "estatus_actual" => $stat[SYS_ESTADO]); $this->setUpdate($arrUpdate); $xLog->add("WARN\tActualizar Fecha de Mora a {$mFechaDeMora} y Fecha de Vencimiento a {$mFechaDeVencimiento}\r\n", $xLog->DEVELOPER); } $this->mMessages .= $xLog->getMessages(); if ($explain == true) { $aviso .= $this->getMessages(OUT_HTML); $exoExplain = "<fieldset>\n <legend>Explicacion de estatus al " . $xF->getFechaCorta($fecha_de_corte) . "</legend>\n <table>\n <tbody>\n <tr>\n <th class='izq'>Fecha de Ministracion</th>\n <td>" . $xF->getFechaCorta($fecha_ministracion) . "</td>\n <th class='izq'>Fecha de Inicio de Pagos</th>\n <td>" . $xF->getFechaCorta($stat["fecha_de_inicio_de_pagos"]) . "</td>\n </tr>\n <tr>\n <th class='izq'>Pagos Autorizados</th>\n <td>{$pagos_autorizados}</td>\n <th class='izq'>Periocidad de Pagos</th>\n <td>{$periocidad_pago}</td>\n\n </tr>\n <tr>\n <th class='izq'>Monto Ministrado</th>\n <td>{$monto_ministrado}</td>\n <th class='izq' >Saldo Insoluto</th>\n <td>{$saldo_insoluto}</td>\n </tr>\n <tr>\n <th class='izq'>Pagos Efectuados</th>\n <td>{$letra_actualmente_pagada}</td>\n <th class='izq'>Pagos Pendientes</th>\n <td>{$pagos_pendientes}</td>\n </tr>\n <tr>\n <th class='izq'>Fecha de Inicio de Calculo</th>\n <td>" . $xF->getFechaCorta($mFechaDeInicio) . "</td>\n <th class='izq'>Fecha de Mora</th>\n <td>" . $xF->getFechaCorta($mFechaDeMora) . "</td>\n </tr>\n <tr>\n <th class='izq'>Fecha de Vencimiento</th>\n <td>" . $xF->getFechaCorta($mFechaDeVencimiento) . "</td>\n <th class='izq'>Estatus Determinado</th>\n <td>" . $stat["estatus"] . "</td>\n </tr>\n\n <tr>\n <th class='izq'>Dias Vigentes</th>\n <td>" . $stat[SYS_CREDITO_DIAS_NORMALES] . "</td>\n <th class='izq'>Dias Morosos</th>\n <td>" . $stat[SYS_CREDITO_DIAS_MOROSOS] . "</td>\n </tr>\n <tr>\n <th class='izq'>Dias Vencidos</th>\n <td>" . $stat[SYS_CREDITO_DIAS_VENCIDOS] . "</td>\n <th class='izq'>Tipo de Pago</th>\n <td >{$tipo_de_pago}</td>\n </tr>\n <tr>\n <th colspan='4'>{$aviso}</th>\n </tr>\n </tbody>\n </table>\n\t\t\t\t\t</fieldset>"; return $exoExplain; } else { return $stat; } } }
function getFactura($enviar = false, $out = OUT_PDF) { $ready = null; $xml = ""; $unidad = "NO APLICA"; $cantidad = 1; $mql = new MQL(); $xLis = new cSQLListas(); $xLoc = new cLocal(); $xPais = new cDomiciliosPaises(EACP_CLAVE_DE_PAIS); $xLog = new cCoreLog(); $sql = "SELECT * FROM `operaciones_archivo_de_facturas` WHERE `clave_de_recibo` = " . $this->mCodigoDeRecibo . " LIMIT 0,1"; $xArch = new cOperaciones_archivo_de_facturas(); $DFact = $mql->getDataRow($sql); if (isset($DFact["clave_de_recibo"])) { $xArch->setData($DFact); $this->mMessages .= "OK\tEl UUID existe " . $xArch->uuid()->v(OUT_TXT) . "\r\n"; if ($enviar == true) { if ($this->getOPersona() == null) { } else { $xSoc = $this->getOPersona(); $email = $xSoc->getCorreoElectronico(); $comprobante = PATH_FACTURAS . $xArch->uuid()->v(OUT_TXT); file_put_contents($comprobante . ".xml", base64_decode($xArch->contenido()->v(OUT_TXT))); file_put_contents($comprobante . ".pdf", base64_decode($xArch->impreso()->v(OUT_TXT))); $ready = $out == OUT_PDF ? base64_decode($xArch->impreso()->v(OUT_TXT)) : base64_decode($xArch->contenido()->v(OUT_TXT)); $xNotif = new cNotificaciones(); //PDF y XML $arrFil = array(); $arrFil["archivo1"]["path"] = $comprobante . ".pdf"; $arrFil["archivo2"]["path"] = $comprobante . ".xml"; $xNotif->sendMail("Factura del Recibo " . $this->mCodigoDeRecibo, "Factura del Recibo " . $this->mCodigoDeRecibo, $email, $arrFil); //Enviar al Archivo mail $xNotif->sendMail("Factura del Recibo " . $this->mCodigoDeRecibo, "Factura del Recibo " . $this->mCodigoDeRecibo, FACTURACION_MAIL_ARCHIVO, $arrFil); $this->mMessages .= $xNotif->getMessages(); } } else { $ready = $out == OUT_PDF ? $xArch->impreso()->v(OUT_TXT) : $xArch->contenido()->v(OUT_TXT); } } else { $xLog->add("WARN\tGenerando Nueva Factura\r\n", $xLog->DEVELOPER); //cargar Archivo $xPais->init(); if ($this->mReciboIniciado == false) { $this->init(); } if ($this->getOPersona() == null) { $xLog->add("ERROR\tAl cargar la Persona\r\n"); } else { $xFact = new cFacturaElectronica(); //datos de la emisora //persona iniciada $xSoc = $this->getOPersona(); $email = $xSoc->getCorreoElectronico(); $xFact->setEmisor(EACP_NAME, EACP_RFC, EACP_DOMICILIO_CALLE, EACP_DOMICILIO_NUM_EXT, EACP_DOMICILIO_NUM_INT, EACP_CODIGO_POSTAL, EACP_COLONIA, EACP_MUNICIPIO, EACP_ESTADO, $xPais->getNombre()); $xFact->setRegimenFiscal(EACP_REGIMEN_FISCAL); $calle = $xLoc->DomicilioCalle(); $numeroInt = $xLoc->DomicilioNumeroInterior(); $numeroExt = $xLoc->DomicilioNumeroExterior(); $codigoPostal = $xLoc->DomicilioCodigoPostal(); $colonia = $xLoc->DomicilioColonia(); $xSocDom = $xSoc->getODomicilio(); $pais = $xLoc->getNombreDePais(); $estado = $xLoc->DomicilioEstado(); $municipio = $xLoc->DomicilioMunicipio(); $tasa_iva = TASA_IVA; $xFact->setLugarDeExpedicion($xLoc->DomicilioCalle(), $xLoc->DomicilioNumeroExterior(), $xLoc->DomicilioNumeroInterior(), $xLoc->DomicilioCodigoPostal(), $xLoc->DomicilioColonia(), $xLoc->DomicilioMunicipio(), $xLoc->DomicilioEstado(), $xLoc->getNombreDePais()); if ($xSocDom == null) { $xLog->add("WARN\tNo hay domicilio Valido\r\n", $xLog->DEVELOPER); } else { $calle = $xSocDom->getCalle(); $numeroExt = $xSocDom->getNumeroExterior(); $numeroInt = $xSocDom->getNumeroInterior(); $codigoPostal = $xSocDom->getCodigoPostal(); $colonia = $xSocDom->getColonia(); $municipio = $xSocDom->getMunicipio(); $estado = $xSocDom->getEstado(); $pais = $xSocDom->getNombreDePais(); } //Cargar datos del Docto //$this->getOrigen(); $OTipoRec = $this->getOTipoRecibo(); if ($OTipoRec->getOrigen() == RECIBOS_ORIGEN_MIXTO or $OTipoRec->getOrigen() == RECIBOS_ORIGEN_COLOCACION) { $xCred = new cCredito($this->getCodigoDeDocumento()); $xCred->init(); $tasa_iva = $xCred->getTasaIVA(); $xLog->add("WARN\tLa tasa de IVA es {$tasa_iva}\r\n", $xLog->DEVELOPER); } $xFact->setReceptor($xSoc->getNombreCompleto(), $xSoc->getRFC(true, true), $calle, $numeroExt, $numeroInt, $codigoPostal, $colonia, $municipio, $estado, $pais); //Datos del pagos $formaDePago = "Pago en una sola exhibición"; $cuentaDePago = "No Identificado"; $arrEquiv = array(TESORERIA_COBRO_DOCTO => "Documentos", TESORERIA_COBRO_EFECTIVO => "Efectivo", TESORERIA_COBRO_INTERNO => "Documentos", TESORERIA_COBRO_MULTIPLE => "Documentos", TESORERIA_COBRO_NINGUNO => "Documentos", TESORERIA_COBRO_TRANSFERENCIA => "Transferencia", TESORERIA_COBRO_CHEQUE => "Cheque"); $metodoDePago = $arrEquiv[$this->getTipoDePago()]; //cargar equivalencias //TODO: Considerar cambios en otro de tipo de tributacion if ($this->getTipoDePago() == TESORERIA_COBRO_TRANSFERENCIA or $this->getTipoDePago() == TESORERIA_COBRO_CHEQUE) { $OCaja = $this->getOCaja(); $cuentaDePago = $OCaja->getCuentaBancoActivo(); } //Cheque, Transferencia, Depósito $xFact->setDatosDePago($formaDePago, $metodoDePago, $cuentaDePago); $sql = "SELECT\n\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado`,\n\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro`,\n\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`subclasificacion`,\n\t\t\t\t\t`operaciones_tipos`.`descripcion_operacion` AS `operacion`,\n\t\t\t\t\t`operaciones_mvtos`.`fecha_operacion`,\n\t\t\t\t\t`operaciones_mvtos`.`afectacion_real` AS 'monto' \n\t\t\t\tFROM\n\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos` \n\t\t\t\t\t\tINNER JOIN `eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = \n\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro` \n\t\t\t\t\t\t\tINNER JOIN `operaciones_tipos` `operaciones_tipos` \n\t\t\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = `operaciones_tipos`.\n\t\t\t\t\t\t\t`idoperaciones_tipos` \n\t\t\t\tWHERE\n\t\t\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` =11000) AND\n\t\t\t\t\t(`operaciones_mvtos`.`recibo_afectado` =" . $this->mCodigoDeRecibo . " )"; $iva = 0; $total = 0; $rs = $mql->getDataRecord($sql); foreach ($rs as $rows) { $descripcion = $rows["operacion"]; $valor = $rows["monto"]; $tipo = $rows["subclasificacion"]; $total += $valor; if ($tipo == 1000) { $iva += $rows["monto"]; } else { $xFact->addConcepto($cantidad, $unidad, $valor, $descripcion); } } //agregar IVA if ($iva > 0) { $xFact->addTrasladado("IVA", $tasa_iva, $iva); } $xml = $xFact->get(); $this->mOFactura = $xFact; if ($total <= 0) { $enviar = false; } } if ($enviar == true) { if ($this->mOFactura != null) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($this->mOFactura->timbrar() == 1) { //ready = true $xNotif = new cNotificaciones(); //PDF y XML $arrFil = array(); $arrFil["archivo1"]["path"] = $this->mOFactura->getComprobante() . ".pdf"; $arrFil["archivo2"]["path"] = $this->mOFactura->getComprobante() . ".xml"; $xNotif->sendMail("Factura del Recibo " . $this->mCodigoDeRecibo, "Factura del Recibo " . $this->mCodigoDeRecibo, $email, $arrFil); //Enviar al Archivo mail $xNotif->sendMail("Factura del Recibo " . $this->mCodigoDeRecibo, "Factura del Recibo " . $this->mCodigoDeRecibo, FACTURACION_MAIL_ARCHIVO, $arrFil); //Guardar en DB $this->mOFactura->setArchivar($this->mCodigoDeRecibo); $xLog->add($xNotif->getMessages(), $xLog->DEVELOPER); $ready = $out == OUT_PDF ? $this->mOFactura->getPDF() : $this->mOFactura->getXML(); } } else { $xLog->add("WARN\tNo hay email valido para la Factura ({$email})\r\n", $xLog->DEVELOPER); } $xLog->add($this->mOFactura->getMessages(), $xLog->DEVELOPER); } } } $this->mMessages .= $xLog->getMessages(); return $ready; }
$clave = parametro("id", false, MQL_RAW); $rs = array(); //AND MODO_DEBUG == true if ($tabla != false and $clave != false) { $xObj = new cSAFETabla($tabla); if ($xObj->obj() == null) { $rs["message"] = "ERROR\tAl eliminar el Registro con ID {$clave} en la Tabla {$tabla}\r\n"; $rs["error"] = true; } else { $obj = $xObj->obj(); $key = $obj->getKey(); $obj = new cSocios_aeconomica(); $obj->setData($obj->query()->initByID($clave)); $data = base64_encode(json_encode($obj->query()->getCampos())); $ql->setRawQuery("DELETE FROM {$tabla} WHERE {$key}='{$clave}'"); $rs["message"] = "OK\tSe elimina el Registro con ID {$clave} en la Tabla {$tabla}\r\n"; if (MODO_DEBUG == true) { $rs["message"] .= $ql->getMessages(); } $rs["error"] = false; //guardar error $xLog = new cCoreLog(); $xLog->add($rs["message"] . " {$data}", $xLog->COMMON); $xLog->guardar($xLog->OCat()->ELIMINAR_RAW); //agregar memo } } header('Content-type: application/json'); echo json_encode($rs); //setLog(json_encode($rs)); //setLog($sql);
include_once "../core/core.init.inc.php"; $theFile = __FILE__; $permiso = getSIPAKALPermissions($theFile); if ($permiso === false) { header("location:../404.php?i=999"); } $_SESSION["current_file"] = addslashes($theFile); //<===== FIN_H //===================================================================================================== ini_set("max_execution_time", 600); $xHP = new cHPage("", HP_REPORT); $mql = new cSQLListas(); $xF = new cFecha(); $query = new MQL(); $xLoc = new cLocal(); $xLog = new cCoreLog(); $xCR = new cReporteCirculoDeCredito_tipo(); $ClaveOtorgante = $xCR->getClaveDeOtorgante(); $NombreOtorgante = $xCR->getNombreOtorgante(); $ByPersona1 = ""; $ByPersona2 = ""; $ByPersona3 = ""; $FechaInicial = isset($_GET["on"]) ? $_GET["on"] : FECHA_INICIO_OPERACIONES_SISTEMA; $FechaFinal = isset($_GET["off"]) ? $_GET["off"] : fechasys(); $toJson = false; //parametro("beauty", false, MQL_BOOL); $lineaJson = array(); $itemJson = array(); $FechaExtraccion = date("Ymd", strtotime($FechaFinal)); $estatus_actual = parametro("f2", false, MQL_INT); $persona = parametro("persona", DEFAULT_SOCIO, MQL_INT);
//Mejorar ?> <script > function cierrame() { if( window.console ) window.console.log( '' ) ; window.close(); } </script> <body onLoad="setTimeout('cierrame()',60*5)"> <p class="frmTitle"><script> document.write(document.title); </script></p> <?php $filter = isset($_GET["f"]) ? $_GET["f"] : false; $table = isset($_GET["t"]) ? $_GET["t"] : false; $msg = ""; if ($filter == false or $table == false) { $msg .= "ERROR\tNO SE TIENE UN DATO\r\n"; } else { $insql = "DELETE FROM {$table} WHERE {$filter}"; $sqlor = "SELECT * FROM {$table} WHERE {$filter}"; $filas = obten_filas($sqlor); $cadena = json_encode($filas); $xErr = new cCoreLog(); $xErr->add("{$oficial} Elimino {$filter} de {$table}.\n ORIGINAL:\n{$cadena}"); $xErr->guardar($xErr->OCat()->ELIMINAR_RAW); $rs = my_query($insql); if ($rs["stat"] == true) { $msg .= "OK\tSE HA ELIMINADO EL REGISTRO\r\n"; } } echo JS_CLOSE; ?> </body> </html>
function setPolizaPorRecibo($recibo, $generador = false) { $sucess = false; $QL = new MQL(); $xLogg = new cCoreLog(); //$arrEquivEfvo = //if (GENERAR_CONTABILIDAD == true){ $xLogg->add("=======\tGENERAR POLIZA POR RECIBO NUM {$recibo}\r\n", $xLogg->DEVELOPER); $xT = new cCatalogoOperacionesDeCaja(); $centro_de_costo = DEFAULT_CENTRO_DE_COSTO; //($generador == GENERAR_POLIZAS_AL_CIERRE) AND if (setNoMenorQueCero($recibo) > 0) { $xRec = new cReciboDeOperacion(false, false, $recibo); if ($xRec->init() == true) { $sucess = true; //Obten datos del recibo para la Poliza $sqlRec = "SELECT\r\n\t\t\t\t\t\t\t`operaciones_recibos`.*,\r\n\t\t\t\t\t\t\t`operaciones_recibostipo`.`tipo_poliza_generada`,\r\n\t\t\t\t\t\t`operaciones_recibostipo`.`afectacion_en_flujo_efvo`\r\n\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\t`operaciones_recibos` `operaciones_recibos`\r\n\t\t\t\t\t\t\t\tINNER JOIN `operaciones_recibostipo`\r\n\t\t\t\t\t\t\t\t`operaciones_recibostipo`\r\n\t\t\t\t\t\t\t\tON `operaciones_recibos`.`tipo_docto` =\r\n\t\t\t\t\t\t\t\t`operaciones_recibostipo`.\r\n\t\t\t\t\t\t\t\t`idoperaciones_recibostipo`\r\n\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t(`operaciones_recibos`.`idoperaciones_recibos` = {$recibo})\r\n\t\t\t\t\t\tLIMIT 0,1 "; $dRec = obten_filas($sqlRec); $tipo_de_pago = $xRec->getTipoDePago(); //Corrige los cargos de la PolizaS $total_poliza = 0; $SQLSumCargos = "SELECT SUM(monto) AS 'total' FROM contable_polizas_proforma\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE contable_operacion = '" . TM_CARGO . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tAND numero_de_recibo={$recibo} "; $TMPCargos = mifila($SQLSumCargos, "total"); $SQLSumAbonos = "SELECT SUM(monto) AS 'total' FROM contable_polizas_proforma\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE contable_operacion = '" . TM_ABONO . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tAND numero_de_recibo={$recibo} "; $TMPAbonos = mifila($SQLSumAbonos, "total"); if ($TMPCargos > $TMPAbonos) { $diferencia = $TMPAbonos - $TMPCargos; $diferencia = $diferencia < 0 ? $diferencia * -1 : $diferencia; $total_poliza = $TMPCargos; setPolizaProforma($recibo, $xT->getTipoOperacionByTipoPago($tipo_de_pago), $diferencia, 1, 1, TM_ABONO); $xLogg->add("OK\tCUADRAR\tABONO\tOperacion Agregada por DESCUADRE en {$tipo_de_pago} por {$diferencia}\r\n", $xLogg->DEVELOPER); //$xLogg->add( , $xLogg->DEVELOPER); } elseif ($TMPCargos < $TMPAbonos) { $diferencia = $TMPCargos - $TMPAbonos; $diferencia = $diferencia < 0 ? $diferencia * -1 : $diferencia; $total_poliza = $TMPAbonos; setPolizaProforma($recibo, $xT->getTipoOperacionByTipoPago($tipo_de_pago), $diferencia, 1, 1, TM_CARGO); $xLogg->add("OK\tCUADRAR\tCARGOS\tOperacion Agregada por DESCUADRE en {$tipo_de_pago} por {$diferencia}\r\n", $xLogg->DEVELOPER); } else { $total_poliza = $TMPCargos; } //tipos de Poliza 1=ingreso, 2=egreso, 3 Diario, 4=orden 5 $xD = new cFecha(0, $xRec->getFechaDeRecibo()); $numero_de_recibo = $recibo; $tipo_de_poliza = $xRec->getOTipoRecibo()->getTipoPolizaContable(); $fecha_de_poliza = $xRec->getFechaDeRecibo(); $ejercicio_de_poliza = $xD->anno(); $periodo_de_poliza = $xD->mes(); $recibo_fiscal = strlen($xRec->getReciboFiscal()) > 2 ? ";RF:" . $xRec->getReciboFiscal() : ""; $observacion_recibo = $xRec->getObservaciones(); $cheque = strlen($xRec->getNumeroDeCheque()) > 2 ? ";Ch:" . $xRec->getNumeroDeCheque() : ""; $concepto_poliza = substr("R:" . $numero_de_recibo . $recibo_fiscal . $cheque . ";" . $xRec->getObservaciones(), 0, 80); $flujo_efectivo = $xRec->getOTipoRecibo()->getAfectacionEnEfvo(); $socio = $xRec->getCodigoDeSocio(); $propietario = $xRec->getCodigoDeUsuario(); $xLogg->add("=====\tRECIBO TIPO: " . $xRec->getTipoDeRecibo() . " SUMA: " . $xRec->getTotal() . " \r\n", $xLogg->DEVELOPER); //------------------ Agregar Poliza $xPol = new cPoliza($tipo_de_poliza, false, $ejercicio_de_poliza, $periodo_de_poliza); $xPol->add($concepto_poliza, $fecha_de_poliza, false, 0, 0, $propietario, $centro_de_costo, $recibo); $numero_de_poliza = $xPol->get(); $xLogg->add("=====\tPOLIZA NUM: {$numero_de_poliza} | TIPO: {$tipo_de_poliza} | EJERCICIO: {$ejercicio_de_poliza} | PERIODO: {$periodo_de_poliza}\r\n", $xLogg->DEVELOPER); $sucess = $xPol->mRaiseError == true ? false : true; //------------------ 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`.`tipo_de_mvto`\t\t\t\t\r\n\t\t\t\t\t"; if ($sucess == true) { $rs = $QL->getDataRecord($sqlMvtosToPoliza); foreach ($rs as $rw) { $cuenta = CUENTA_DE_CUADRE; $nombre = ""; $socio = $rw["socio"]; if (CONTABLE_CUENTAS_POR_SOCIO == true) { $xSoc = new cSocio($socio, true); $nombre = $xSoc->getNombreCompleto(); } $documento = $rw["documento"]; $monto_movimiento = $rw["monto"]; $tipoOp = $rw["tipo_de_mvto"]; $tipo_movimiento = $rw["contable_operacion"]; $RecUsr = $rw["idusuario"]; $cuenta_bancaria = $rw["banco"]; $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, $RecUsr, $xRec->getNumeroDeCheque(), $cuenta_bancaria); $xLogg->add($sForms->getMessages(), $xLogg->DEVELOPER); //tipo de cuenta es Abonos a efectivo if ($cuenta != "NO_CONTABILIZAR") { $xCuenta = new cCuentaContable($cuenta); $xCuenta->init(); $cuenta = $xCuenta->get(); //Carga los datos del Oficial if ($xCuenta->getEsCuentaDeCirculante() == true) { $xOf = new cSystemUser($RecUsr); $xOf->init(); $nombre = $xOf->getNombreCompleto(); $xLogg->add("OK\tCUENTA_ADD\tLa Cuenta {$cuenta} de Carga por Usuario [ {$nombre} ]\r\n", $xLogg->DEVELOPER); } else { $xLogg->add("OK\tCUENTA\tLa Cuenta de Trabajo es {$cuenta} Originado del Socio {$socio}\r\n", $xLogg->DEVELOPER); } //verifica para dar de alta a la cuenta $Existentes = $xCuenta->getCountCuenta(); if ($Existentes == false) { $xLogg->add("WARN\tCUENTA_ADD\tLa Cuenta de Trabajo {$cuenta} NO EXISTE, se AGREGA\r\n", $xLogg->DEVELOPER); $cuenta = $xCuenta->add($nombre); if ($xCuenta->mRaiseError == true) { //$msg .= "ERROR\tLa Cuenta de Trabajo $cuenta NO EXISTE\r\n"; //$msg = $xCuenta->getMessages(); } } $xCuenta->init(); $xPol->addMovimiento($cuenta, $cargo_movimiento, $abono_movimiento, "{$socio}", "{$documento}:{$tipoOp}", false, $fecha_de_poliza); //$xLogg->add("WARN\tNO_CONT\tAGREGAR $cuenta, $cargo_movimiento, $abono_movimiento\r\n" , $xLogg->DEVELOPER); $xLogg->add($xCuenta->getMessages(), $xLogg->DEVELOPER); } else { $xLogg->add("WARN\tNO_CONT\tEl Movimiento de {$socio} | {$documento} | {$tipoOp} de Monto {$monto_movimiento} se OMITE\r\n", $xLogg->DEVELOPER); } } $xPol->setFinalizar(); } //sucess $xLogg->add($xPol->getMessages(), $xLogg->DEVELOPER); $this->mIDDePoliza = $xPol->getCodigo(); } } //END VALUE.- GENERAR AL FINAL //} //END VALUE.- GENERAR CONTABILIDAD $this->mMessages .= $xLogg->getMessages(); return $xLogg->getMessages(); }
function getValidacion($out = OUT_TXT, $corregir = false) { $txt = ""; $cTipo = new cTipos(); $ready = true; $xLog = new cCoreLog(); $EsOperable = true; $xLoc = new cLocal(); if ($this->mSocioIniciado == false) { $this->init(); } //Validar GrupoSolidario if ($this->getClaveDeGrupo() > DEFAULT_GRUPO) { $xGrupo = new cGrupo($this->getClaveDeGrupo()); if ($xGrupo->init() == false) { $ready = false; $xLog->add("ERROR\t" . $this->mCodigo . "\tGRUPO\tEl Grupo " . $this->mGrupoAsociado . " No Existe \r\n"); if ($corregir == true) { $xGrupo->add("_GRUPO_NO_EXISTENTE_", "_GRUPO_EN_ALTA_POR_CORRECION_SOCIO_" . $this->mCodigo, $this->mCodigo, DEFAULT_SOCIO, 10, 1, $this->mGrupoAsociado); $xLog->add("WARN\t" . $this->mCodigo . "\tGRUPO\tEl Grupo " . $this->mGrupoAsociado . " Ha sido AGREGADO \r\n"); $xLog->add($xGrupo->getMessages(), $xLog->DEVELOPER); } } } //Validar Caja Local if (SISTEMA_CAJASLOCALES_ACTIVA == true) { $xCL = new cCajaLocal(); if ($xCL->init() == false) { $xLog->add("ERROR\t" . $this->mCodigo . "\tCAJALOCAL\tLa Caja Local " . $this->mCajaLocal . " No Existe \r\n"); $ready = false; } } //Validar Dependencias if ($this->getClaveDeEmpresa() != DEFAULT_EMPRESA) { $xEmp = new cEmpresas($this->getClaveDeEmpresa()); if ($xEmp->init() == false) { $xLog->add("ERROR\t" . $this->mCodigo . "\tDEPENDENCIA_E\tLa Dependencia " . $this->mDependencia . " No Existe \r\n"); $xLog->add($xEmp->getMessages(), $xLog->DEVELOPER); $ready = false; } } //Validar propietario if ($this->getClaveDeUsuario() != DEFAULT_USER) { $xUsr = new cSystemUser($this->getClaveDeUsuario()); if ($xUsr->init() == false) { $xLog->add("ERROR\t" . $this->mCodigo . "\tPROPIETARIO\tEl Propietario # " . $this->mPropietario . " NO EXISTE \r\n"); if ($corregir == true) { $xUsr->add("usr" . $this->mPropietario, "", 2, "USUARIO", "AGREGADO", "EN_VERIFICACION", "", false, "baja", "", false, $this->mPropietario); } $xLog->add($xUsr->getMessages(), $xLog->DEVELOPER); } } //Validar persona Moral if ($this->getEsPersonaFisica() == false) { if ($this->getORepresentanteLegal() == null) { $xLog->add("ERROR\t" . $this->mCodigo . "\tREP_LEGAL\tEl representante legal NO EXISTE \r\n"); $ready = false; $EsOperable = false; } } //Validar Tipo de Ingreso $xT = new cPersonasTipoDeIngreso($this->mTipoDeIngreso); if ($xT->init() == false) { $txt .= "ERROR\t" . $this->mCodigo . "\tTIPO_INGRESO\tLa Dependencia " . $this->mTipoDeIngreso . " No Existe \r\n"; $ready = false; } //Validar Actividad Economica if ($this->getOActividadEconomica() == null) { $ready = false; $EsOperable = false; $xLog->add("ERROR\t" . $this->mCodigo . "\tACTIVIDAD\tEL Socio NO tiene Registrado alguna ACTIVIDAD ECONOMICA \r\n"); } //Validar Vivienda if ($this->getODomicilio() == null) { $ready = false; $EsOperable = false; $xLog->add("ERROR\t" . $this->mCodigo . "\tVIVIENDA\tEL Socio NO tiene Registrado algun DOMICILIO Valido \r\n"); if ($corregir == true) { $codigo_postal = $xLoc->DomicilioCodigoPostal(); $this->addVivienda("DESCONOCIDO", "POR_REGISTRAR", $codigo_postal); } } else { //TODO: 2014/01/12 Terminar Validacion de codigo postal y busqueda por domicilio aternativo } //Valida el codigo postal /*$sqlDV = "SELECT idsocios_vivienda, socio_numero, tipo_regimen, calle, numero_exterior, numero_interior, colonia, localidad, estado, municipio, telefono_residencial, telefono_movil, tiempo_residencia, referencia, idusuario, principal, tipo_domicilio, codigo_postal, fecha_alta, codigo, sucursal, eacp, coordenadas_gps FROM socios_vivienda WHERE socio_numero = " . $this->mCodigo . " "; $rsV = mysql_query($sqlDV, cnnGeneral() ); if($corregir == true){ while($rwV = mysql_fetch_array($rsV) ){ $cpostal = $cTipo->cInt($rwV["codigo_postal"]); $clave = $rwV["idsocios_vivienda"]; if ( strlen($cpostal) < DIGITOS_DE_CODIGO_POSTAL ){ $xCl = new cCajaLocal( $this->mCajaLocal ); $xCl->init(); $DCL = $xCl->getDatosInArray(); $codigo_postal = $DCL["codigo_postal"]; $sqlUV = "UPDATE socios_vivienda SET codigo_postal='$codigo_postal' WHERE idsocios_vivienda=$clave"; my_query($sqlUV); $txt .= "WARN\tCORREC_VIVIENDA\tSe Actualiza el Codigo postal de [$cpostal] a [$codigo_postal] \r\n"; } } }*/ //validar fecha de Ingreso /*$mDA = date("Y", strtotime($this->mFechaDeIngreso) ); $mMA = date("m", strtotime($this->mFechaDeIngreso) ); $mAA = date("d", strtotime($this->mFechaDeIngreso) ); $mFValida = checkdate($mMA, $mAA, $mDA ); if ( $mFValida == false ){ $mFSustituta = EACP_FECHA_DE_CONSTITUCION; $sqlNFI = "UPDATE socios_general SET fechaalta=(SELECT fecha_operacion FROM operaciones_recibos WHERE numero_socio = " . $this->mCodigo . " LIMIT 0,1) WHERE codigo= " . $this->mCodigo . " "; my_query($sqlNFI); $txt .= "ERROR\t" . $this->mCodigo . "\tFINGRESO\tLa fecha de Alta no es valida, se Actualiza a la Primera Operacion\r\n"; }*/ //Validar modulo de AML if (MODULO_AML_ACTIVADO == true) { $xAml = new cAMLPersonas($this->getCodigo()); $xAml->init($this->getCodigo(), $this->getDatosInArray()); $NRiesgo = $xAml->setAnalizarNivelDeRiesgo(); if ($this->getNivelDeRiesgo() != $NRiesgo) { $ready = false; $EsOperable = false; $xLog->add("ERROR\t" . $this->mCodigo . "\tRiesgo\tEl riesgo({$NRiesgo}) es diferente al actual(" . $this->getNivelDeRiesgo() . ") \r\n"); if ($corregir == true) { $this->setActualizarNivelDeRiesgo($NRiesgo, $xAml->getMessages()); } } $xLog->add($xAml->getMessages(), $xLog->DEVELOPER); //Perfil Transaccional $xTrans = new cAMLPersonas_PerfilTransaccional($this->getCodigo()); if ($xTrans->getNumeroEntradas() <= 0) { $ready = false; $EsOperable = false; $xLog->add("ERROR\t" . $this->mCodigo . "\tPerfilT\tNo existe perfil transaccional \r\n"); } } return $xLog->getMessages($out); }
function setEditar($cuenta, $cargo = false, $abono = false, $referencia = false, $concepto = false, $diario = DEFAULT_CONTABLE_DIARIO_MVTOS) { $xLog = new cCoreLog(); //,$NumMvto = false, $Fecha = false $xCta = new cCuentaContableEsquema($cuenta); $cuenta = $xCta->CUENTA; $rebuild = false; if ($cargo !== false) { $cargo = setNoMenorQueCero($cargo); if ($cargo != $this->mCargo) { $rebuild = true; $this->mCargo = $cargo; $this->mAbono = 0; } } $referencia = $referencia == false ? $this->mObj->referencia()->v(OUT_TXT) : $referencia; $concepto = $concepto == false ? $this->mObj->concepto()->v(OUT_TXT) : $concepto; if ($abono !== false) { $abono = setNoMenorQueCero($abono); if ($abono != $this->mAbono) { $rebuild = true; $this->mAbono = $abono; $this->mCargo = 0; } } if ($this->mNumeroCuenta != $cuenta) { $rebuild = true; $this->mNumeroCuenta = $cuenta; } //======================== if ($rebuild == true) { //eliminar $this->setEliminar(); //agregar $xPol = new cPoliza($this->mTipoDePoliza); $xPol->setPorCodigo($this->getCodigoDePoliza()); $xPol->addMovimiento($this->mNumeroCuenta, $this->mCargo, $this->mAbono, $referencia, $concepto, $this->mNumeroDeMvto); $xLog->add($xPol->getMessages(), $xLog->DEVELOPER); } else { $sql = "UPDATE contable_movimientos\n\t\t\tSET referencia='{$referencia}', concepto='{$concepto}' \n\t\t\tWHERE clave_unica= " . $this->mCodigoUnico; $ql = new MQL(); $ql->setRawQuery($sql); } $this->mMessages .= $xLog->getMessages(); return $xLog->getMessages(); }
private function aceptado($valor, $aceptados) { $aceptado = true; $operandos = array("=", ">", "<", "!="); $xLog = new cCoreLog(); $xLog->add("WARN\tValores Aceptados {$aceptados}. " . $this->mNombre, $xLog->DEVELOPER); if (trim($aceptados) == "" or trim($aceptados) == "*") { $xLog->add("WARN\tTodos los valores Aceptados {$aceptados}. " . $this->mNombre, $xLog->DEVELOPER); } else { //buscar separador if (strpos($aceptados, "&") !== false) { //separar $arr = explode("&", $aceptados); foreach ($arr as $idx => $vals) { $xLog->add("WARN\tSeparar {$aceptados} y comparar {$valor} con {$vals}. " . $this->mNombre, $xLog->DEVELOPER); $aceptado = $this->testVal($vals, $valor) == false ? false : $aceptado; } } else { if (strpos($aceptados, "AND") !== false) { //separar $arr = explode("AND", $aceptados); foreach ($arr as $idx => $vals) { $xLog->add("WARN\tSeparar con AND {$aceptados} y comparar {$valor} con {$vals}. " . $this->mNombre, $xLog->DEVELOPER); $aceptado = $this->testVal($vals, $valor) == false ? false : $aceptado; } } else { //buscar operandos $aceptado = $this->testVal($aceptados, $valor); $xLog->add("WARN\tComparar {$aceptado} con {$valor}. " . $this->mNombre, $xLog->DEVELOPER); } } } //$this->mMessages .= $xLog->getMessages(); return $aceptado; }
$xF = new cFecha(); if ($tabla != "" and $filtro != "") { $rs = false; $vars = $_REQUEST; //var_dump($vars); //$DFiltro = explode("=", $filtro); $xData = new cSAFETabla($tabla); $q = $xData->obj()->query(); $datos = $q->getRow($filtro); $q->setData($datos); $campos = $q->getCampos(); $actualizar = false; $sqlor = "SELECT * FROM {$tabla} WHERE {$filtro}"; $filas = obten_filas($sqlor); $cadena = json_encode($filas); $xErr = new cCoreLog(); $xErr->add("{$oficial} Editar {$tabla} como {$filtro}.\n ORIGINAL:\n {$cadena}"); $xErr->guardar($xErr->OCat()->EDICION_RAW); foreach ($vars as $k => $v) { $campo = substr($k, 1); if (isset($campos[$campo])) { if ($campos[$campo]["V"] == $v) { $msg .= "OMITIR_ACTUALIZAR: {$campo}, "; } else { if ($campos[$campo]["T"] == "DATE") { $v = $xF->getFechaISO($v); } $msg .= "ACTUALIZAR : {$campo} DE " . $campos[$campo]["V"] . " A {$v},"; $campos[$campo]["V"] = $v; //echo "" . $campos[$campo]["V"] . " === " . $v . "\n"; $actualizar = true;
function setReestructurarSDPM_Planes($SoloConSaldos = false, $creditoFiltrado = false, $forzarTodos = false, $fechaCorte = false, $fechaInicial = false, $EliminarTodo = true) { $msg = ""; $xLog = new cCoreLog(); $xF = new cFecha(); $ql = new MQL(); $creditoFiltrado = setNoMenorQueCero($creditoFiltrado); if ($creditoFiltrado > DEFAULT_CREDITO) { $xLog->add("Socio\tCredito\tFecha\tMonto\tSaldo\tDias\tOperacion\tEstatus\tInteres\tMoratorios\r\n"); } $fechaCorte = $xF->getFechaISO($fechaCorte); $fechaInicial = $fechaInicial == false ? EACP_FECHA_DE_CONSTITUCION : $fechaInicial; $wCredito1 = $creditoFiltrado > DEFAULT_CREDITO ? " `creditos_mvtos_asdpm_planes`.`documento` = {$creditoFiltrado} " : " `documento` > 0"; $wCredito2 = $creditoFiltrado > DEFAULT_CREDITO ? " numero_de_credito = {$creditoFiltrado} " : " numero_de_credito > 0 "; $ByRTM = $creditoFiltrado > DEFAULT_CREDITO ? " " : " SQL_CACHE "; $wFecha1 = " AND (fecha >='{$fechaInicial}' AND fecha <='{$fechaCorte}' ) "; $wFecha2 = " AND (`fecha_actual` >= '{$fechaInicial}' AND `fecha_actual`<='{$fechaCorte}' ) "; $sql = "SELECT {$ByRTM} `creditos_mvtos_asdpm_planes`.* FROM `creditos_mvtos_asdpm_planes` WHERE {$wCredito1} {$wFecha1} "; $rs = $ql->getDataRecord($sql); if ($EliminarTodo == true) { $DAction = my_query("DELETE FROM creditos_sdpm_historico WHERE {$wCredito2} {$wFecha2}"); } $saldo = 0; $creditoA = 0; $xT = new cTipos(); $xF = new cFecha(); $FECHA_DE_ULTIMO_PAGO = EACP_FECHA_DE_CONSTITUCION; $CREDITO_SALDO_ANTERIOR = 0; $MvtoAnterior = OPERACION_CLAVE_MINISTRACION; $ESTADO_ACTUAL = CREDITO_ESTADO_VIGENTE; $DIVISOR_DE_INTERESES = EACP_DIAS_INTERES; $DCred = array(); $IsCredNew = true; $xCred = null; foreach ($rs as $rw) { $socio = $xT->cInt($rw["socio"]); $credito = $xT->cInt($rw["documento"]); $operacion = $xT->cInt($rw["operacion"]); $periodo = $xT->cInt($rw["periodo"]); $afectacion = $rw["afectacion"]; $monto = $xT->cFloat($rw["monto"], 2); $fecha = $rw["fecha"]; $nota = ""; $dias_tolerados = DIAS_PAGO_VARIOS; $IsCredNew = true; if ($creditoA != $credito) { $saldo = 0; $FECHA_DE_ULTIMO_PAGO = $fecha; $ESTADO_ACTUAL = CREDITO_ESTADO_VIGENTE; $xCred = new cCredito($credito, $socio); $xCred->init(); $DCred = $xCred->getDatosDeCredito(); $CREDITO_SALDO_ANTERIOR = 0; $dias_tolerados = $xCred->getOPeriocidad()->getDiasToleradosEnVencer(); //si es Ministracion if ($MvtoAnterior == OPERACION_CLAVE_MINISTRACION) { $FECHA_DE_ULTIMO_PAGO = $xCred->getFechaDeMinistracion(); } $xLog->add("======\t\tINIT-CREDITO : {$credito}\r\n"); $letras_en_mora = array(); if ($EliminarTodo == false) { my_query("DELETE FROM creditos_sdpm_historico WHERE numero_de_credito = {$credito} {$wFecha2}"); } } else { $IsCredNew = false; } $interes = 0; $moratorio = 0; if ($operacion == OPERACION_CLAVE_PLAN_CAPITAL and $monto > 0) { if ($xF->getInt($fecha) <= $xF->getInt($fechaCorte)) { $letras_en_mora[$periodo][SYS_MONTO] = $monto; $letras_en_mora[$periodo][SYS_FECHA] = $fecha; $letras_en_mora[$periodo][SYS_DEFAULT] = $fecha; $letras_en_mora[$periodo][SYS_INTERES_MORATORIO] = $monto * $xCred->getTasaDeMora() / EACP_DIAS_INTERES; //TODO: Formular en SQL.- tasa mora para planes $xLog->add("WARN\tAgregando letra en mora por {$monto} del periodo {$periodo} de {$fecha}\r\n", $xLog->DEVELOPER); } } if ($operacion == OPERACION_CLAVE_PLAN_CAPITAL and $monto > 0) { if (!isset($FECHA_DE_COMPROMISO)) { $FECHA_DE_COMPROMISO = $fecha; $xLog->add("WARN\tAgregando fecha de primer atraso a {$fecha} del pago {$periodo}\r\n", $xLog->DEVELOPER); //$xLog->add( , $xLog->DEVELOPER); } } if ($operacion == OPERACION_CLAVE_PLAN_INTERES or $operacion == OPERACION_CLAVE_PAGO_INTERES) { $interes = $monto; } else { $interes = 0; } //XXX: Checar $saldo_calculado = 0; if ($operacion == OPERACION_CLAVE_PAGO_CAPITAL or $operacion == OPERACION_CLAVE_MINISTRACION) { $dias_transcurridos = $xF->setRestarFechas($fecha, $FECHA_DE_ULTIMO_PAGO); $saldo_calculado = $saldo * $dias_transcurridos; $saldo += $monto * $afectacion; $FECHA_DE_ULTIMO_PAGO = $fecha; //disminuye de la letra if ($operacion == OPERACION_CLAVE_PAGO_CAPITAL) { if (isset($letras_en_mora[$periodo])) { $letras_en_mora[$periodo][SYS_MONTO] -= $monto; $xLog->add("WARN\t{$periodo}\tDisminuir base de mora por {$monto}\r\n", $xLog->DEVELOPER); if (setNoMenorQueCero($letras_en_mora[$periodo][SYS_MONTO]) <= 0) { unset($letras_en_mora[$periodo]); } } } } else { $monto = 0; } if ($operacion == OPERACION_CLAVE_FIN_DE_MES) { $moratorio = 0; //if(MODO_DEBUG == true){ $msg .= "WARN\tFIN DE MES $operacion\r\n"; } //Calcular moratorios //setLog($letras_en_mora); foreach ($letras_en_mora as $id => $atrasos) { $fecha_letra = $atrasos[SYS_DEFAULT]; $xLog->add("WARN\t{$periodo}\t{$id} {$fecha_letra}\r\n", $xLog->DEVELOPER); if ($xF->getInt($fecha) >= $xF->getInt($fecha_letra)) { $dias_mora = $xF->setRestarFechas($fecha, $fecha_letra); $xLog->add("WARN\t{$periodo}\tDias de Mora del periodo {$id} por dias {$dias_mora}\r\n", $xLog->DEVELOPER); $moratorio += $atrasos[SYS_INTERES_MORATORIO] * $dias_mora; $letras_en_mora[$id][SYS_DEFAULT] = $fecha; } } } if (isset($FECHA_DE_COMPROMISO)) { $dias_de_atraso = $xF->setRestarFechas($fecha, $FECHA_DE_COMPROMISO); if ($dias_de_atraso > 1) { $ESTADO_ACTUAL = CREDITO_ESTADO_MOROSO; } if ($dias_de_atraso > $dias_tolerados) { $ESTADO_ACTUAL = CREDITO_ESTADO_VENCIDO; $xLog->add("WARN\t{$periodo}\tPeriodo a Vencido por {$dias_de_atraso}|{$dias_tolerados}\r\n", $xLog->DEVELOPER); } } if ($creditoFiltrado > DEFAULT_CREDITO) { $xLog->add("{$socio}\t{$credito}\t{$fecha}\t{$monto}\t{$saldo}\t{$dias_transcurridos}\t{$operacion}\t{$ESTADO_ACTUAL}\t{$interes}\t{$moratorio}\t{$nota}\r\n"); } if ($xF->getInt($fecha) <= $xF->getInt(SYS_FECHA_DE_MIGRACION)) { $interes = 0; $moratorio = 0; $xLog->add("WARN\tOMITIR Interes {$interes} y MORA por {$moratorio} por estar antes de la migracion {$fecha}\r\n", $xLog->DEVELOPER); } //agregando letras en Intereses en mora $mm = $monto + $interes + $moratorio; if ($xF->getInt($fecha) <= $xF->getInt($fechaCorte) and $mm > 0) { $xCred->addSDPM($interes, $moratorio, $FECHA_DE_ULTIMO_PAGO, $saldo, $ESTADO_ACTUAL, $fecha, $operacion, $saldo_calculado, $periodo); } if ($saldo <= TOLERANCIA_SALDOS) { $xLog->add("======\t\tEND-CREDITO : {$credito}\r\n"); } $creditoA = $credito; $CREDITO_SALDO_ANTERIOR = $saldo; $MvtoAnterior = $operacion; } return $xLog->getMessages(); }
$_SESSION["current_file"] = addslashes($theFile); //<===== FIN_H $iduser = $_SESSION["log_id"]; //===================================================================================================== $xHP = new cHPage("TR.PROCESAMIENTO DE PAGO. PART 01", HP_FORM); $xLng = new cLang(); $params = isset($_GET["p"]) ? $_GET["p"] : false; $jxc = new TinyAjax(); $xT = new cTipos(); $xSQL = new cSQLListas(); $xF = new cFecha(); $ql = new MQL(); $capital_original_de_letra = 0; //Monto original de capital de la letra $msg = ""; $xLog = new cCoreLog(); function jsaActualizarLetra($persona, $credito, $letra, $monto) { $NLetra = $letra + 1; $xCred = new cCredito($credito, $persona); $xCred->init(); if ($xCred->isAFinalDePlazo() == false) { if ($NLetra < $xCred->getPagosAutorizados()) { $xPlan = new cPlanDePagos(); $xPlan->initByCredito($credito); $xPlan->setOperarCapital($NLetra, "+{$monto}"); } } } function jsaAmortizarLetras($persona, $credito, $letra, $amortizable) {
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; }