function addMvtoContableByTipoDePago($monto = false, $afectacion = false)
 {
     if ($afectacion == false) {
         $afectacion = TM_CARGO;
     }
     $tipo_pago = $this->mTipoDePago;
     $socio_de_recibo = $this->mSocio;
     $codigo_de_recibo = $this->mCodigoDeRecibo;
     $docto_de_recibo = $this->mDocto;
     if ($tipo_pago == TESORERIA_COBRO_NINGUNO) {
     } else {
         $monto = $monto == false ? $this->mSumaDeRecibo : $monto;
         if ($this->mSetGenerarPoliza == true && $this->mCodigoDeRecibo != false) {
             $xTn = new cCatalogoOperacionesDeCaja();
             setPolizaProforma($codigo_de_recibo, $xTn->getTipoOperacionByTipoPago($tipo_pago), $monto, $socio_de_recibo, $docto_de_recibo, $afectacion);
             $this->mMessages .= "WARN\tTPAGO\tMovimiento Contable por {$tipo_pago} por un Monto de {$monto}\r\n";
         } else {
             $this->mMessages .= "ERROR\tNo se genero el Movimiento Contable por Tipo de Pago({$tipo_pago}) por un Monto de {$monto}\r\n";
         }
     }
 }
 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 vencer_intereses_de_inversion($recibo = false, $fecha = false)
 {
     //DATE_ADD(CURDATE(), INTERVAL 1 DAY)
     //Vencer los Intereses de las Inversiones de Ma�ana
     $fecha_programada = sumardias($fecha, 1);
     $sucursal = getSucursal();
     $msg = "================= VENCIMIENTO_DE_INTERESES_SOBRE_INVERSION DEL DIA {$fecha_programada} =========\r\n";
     $SQL500 = "SELECT\n\t\t\t\t\t  `operaciones_mvtos`.*\n\t\t\t\t\tFROM\n\t\t\t\t\t  `operaciones_mvtos` `operaciones_mvtos`\n\t\t\t\t\tWHERE\n\t\t\t\t\t  (`operaciones_mvtos`.`fecha_afectacion` = '{$fecha_programada}')\n\t\t\t\t\t  AND\n\t\t\t\t\t  (`operaciones_mvtos`.`tipo_operacion` = 500)\n\t\t\t\t\t  AND\n\t\t\t\t\t  (`operaciones_mvtos`.`sucursal`='{$sucursal}')";
     $rs = mysql_query($SQL500, cnnGeneral());
     if (!$rs) {
         $msg .= "LA CONSULTA NO SE EJECUTO (CODE: " . mysql_errno() . ")";
     }
     while ($rw = mysql_fetch_array($rs)) {
         $iddocto = $rw["docto_afectado"];
         $idsocio = $rw["socio_afectado"];
         $interes = $rw["afectacion_real"];
         //Informacion de la Cuenta
         $xCta = new cCuentaInversionPlazoFijo($iddocto, $idsocio);
         $xCta->init();
         $infoCapt = $xCta->getDatosInArray();
         $saldo = $infoCapt["saldo_cuenta"];
         $periodo = $infoCapt["inversion_periodo"];
         $dias = $infoCapt["dias_invertidos"];
         $destinoInteres = $infoCapt["destino_del_interes"];
         $cuenta_de_int = $infoCapt["cuenta_de_intereses"];
         $isr_a_retener = 0;
         //CUENTA_INTERESES
         //Suma el Interes mas el Capital
         switch ($destinoInteres) {
             case "":
                 $montofinal = $saldo;
                 $xIC = cCuentaALaVista($idsocio, $cuenta_de_int);
                 $xIC->init();
                 $xIC->setDeposito($interes, "NA", "ninguno", "NA", "DEPOSITO_AUTOMATICO_INVERSION_CTA_{$iddocto}", 99, $fecha, $recibo);
                 setPolizaProforma($recibo, 222, $interes, $idsocio, $cuenta_de_int, TM_ABONO);
                 $msg .= $xIC->getMessages();
                 break;
             default:
                 $montofinal = $saldo + $interes;
                 //Agregar el Movimiento, 222 == depositos de Interes
                 setNuevoMvto($idsocio, $iddocto, $recibo, $fecha_programada, $interes, 222, $periodo, "DEPOSITO_AUTOMATICO");
                 $msg .= date("H:i:s") . "\t{$idsocio}\t{$iddocto}\tAgregando el INTERES POR DEPOSITAR por {$interes}\r\n";
                 setPolizaProforma($recibo, 222, $interes, $idsocio, $iddocto, TM_ABONO);
                 break;
         }
         setPolizaProforma($recibo, 500, $interes, $idsocio, $iddocto, TM_CARGO);
         /**
          * Generar el ISR por Inversiones
          */
         $isr_a_retener = getISRByInversion($saldo, $dias);
         //
         if ($isr_a_retener > 0) {
             setNuevoMvto($idsocio, $iddocto, $recibo, $fecha_programada, $isr_a_retener, 234, $periodo, "ISR_AUTOMATICO", -1);
             $msg .= date("H:i:s") . "\t{$idsocio}\t{$iddocto}\tAgregando el ISR por RETENER por {$isr_a_retener}\r\n";
             //Agregar la Prepoliza
             setPolizaProforma($recibo, 222, $isr_a_retener, $idsocio, $iddocto, TM_CARGO);
             setPolizaProforma($recibo, 234, $isr_a_retener, $idsocio, $iddocto, TM_ABONO);
             //Disminuir el ISR del Monto a Pagar
             $montofinal -= $isr_a_retener;
         }
         //Actualizar la Cuenta de Captacion
         $sqlUCta = "UPDATE captacion_cuentas\n\t                SET\n\t                  fecha_afectacion='{$fecha_programada}',\n\t                  saldo_cuenta={$montofinal}\n\t                WHERE numero_cuenta={$iddocto}\n\t                  AND\n\t                  numero_socio={$idsocio}";
         $x = my_query($sqlUCta);
         if ($x["stat"] == false) {
             $msg .= $x[SYS_MSG] . "\r\n";
         } else {
             $msg .= date("H:i:s") . "\t{$idsocio}\t{$iddocto}\tActualizando la Cuenta a Saldo {$montofinal} y Fecha Afectacion {$fecha_programada} \r\n";
         }
     }
     //fin de busqueda
     $SQL_U_500 = "UPDATE operaciones_mvtos SET\n\t\t\t        estatus_mvto=30,\n\t\t\t        docto_neutralizador = {$recibo}\n\t\t\t        WHERE\n\t\t\t          (`operaciones_mvtos`.`fecha_afectacion` = '{$fecha_programada}')\n\t\t\t          AND\n\t\t\t          (`operaciones_mvtos`.`tipo_operacion` = 500)\n\t\t\t        AND\n\t\t\t        (`operaciones_mvtos`.`sucursal`='{$sucursal}')";
     $x = my_query($SQL_U_500);
     if ($x["stat"] == false) {
         $msg .= $x[SYS_MSG] . "\r\n";
     } else {
         $msg .= date("H:i:s") . "\t\t\tActualizando el INTERES POR DEPOSITAR a 'PAGADO' (" . $x["info"] . ")\r\n";
     }
     return $msg;
 }
            } else {
                setEliminarMvto360($id, $socio, $solicitud, $recibo_pago);
                $msg .= "WARN\tPARCS\tEliminar 360 {$id}, {$socio}, {$solicitud}, {$parcialidad}, {$recibo_pago}\r\n";
            }
        }
        /**
         * Condiciona si es Ahorro
         * 412 = 0.00;
         **/
        if ($id != OPERACION_CLAVE_PLAN_AHORRO) {
            $documento = $solicitud;
        } else {
            $documento = $contrato_captacion;
        }
        $tds .= "<tr>\n\t\t\t                <th class=\"{$id}\"> {$id} </th><td>" . $rw["descripcion_de_la_relacion"] . "</td>\n\t\t\t                <td class='mny'>" . getFMoney($m[$id]) . "</td>\n\t\t\t            </tr>";
        setPolizaProforma($recibo_pago, $id, $m[$id], $socio, $documento, $MContable);
    }
}
//<!--	INSERTAR MOVIMIENTOS DE PENDIENTES -->
if ($periocidad == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
    if ($p_interescorriente > 0) {
        $p[420] += $p_interescorriente;
    }
    if ($p_interesmoroso > 0) {
    }
    if ($p_interesremanente > 0) {
        $p[431] += $p_interesremanente;
    }
    if ($p_interesvencido > 0) {
        $p[432] += $p_interesvencido;
    }