function setRegenerarPrepolizaContable($FechaDeRecibo = false, $NumeroDeRecibo = false) { $msg = ""; $wLim = " AND ( `operaciones_recibos`. `fecha_operacion` = '{$FechaDeRecibo}') "; $wLim = setNoMenorQueCero($NumeroDeRecibo) > 0 ? " AND ( `operaciones_recibos`. `idoperaciones_recibos` = '{$NumeroDeRecibo}') " : $wLim; $xCat = new cCatalogoOperacionesDeCaja(); $ql = new MQL(); $xLogg = new cCoreLog(); $xPol = new cPoliza(false); $msg .= "Recibo\tDocumento\tSocio\tOperacion\tMonto\tContable\r\n"; //$xLogg->add(, $xLogg->DEVELOPER); // $sql = "SELECT\r\n\t\t\t\t\t\t\t`operaciones_recibos`.*,\r\n\t\t\t\t\t\t\t`operaciones_recibostipo`.*\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` `operaciones_recibostipo`\r\n\t\t\t\t\t\t\t\tON `operaciones_recibos`.`tipo_docto` = `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( SELECT COUNT(tipo_de_recibo) FROM contable_polizas_perfil \r\n\t\t\t\t\t\t\tWHERE tipo_de_recibo = `operaciones_recibos`.`tipo_docto` ) > 0 \r\n\t\t\t\t\t\t\t {$wLim} "; $rs = $ql->getDataRecord($sql); foreach ($rs as $rw) { $Recibo = $rw["idoperaciones_recibos"]; $TipoDeRec = $rw["tipo_docto"]; $TipoDePago = $rw["tipo_pago"]; $TotalRecibo = $rw["total_operacion"]; $socio_de_rec = $rw["numero_socio"]; $docto_de_rec = $rw["docto_afectado"]; $usrRec = $rw["idusuario"]; $xRec = new cReciboDeOperacion(false, false, $Recibo); $xRec->init($rw); $xRec->getDatosDeCobro(); $OBanco = $xRec->getOBanco(); $banco = 0; if ($OBanco != null) { $banco = $OBanco->getNumeroDeCuenta(); } $TotalSuma = 0; $DatosAfect = array(); $sqlAfecta = "SELECT * FROM\t`contable_polizas_perfil`\t\tWHERE (`contable_polizas_perfil`.`tipo_de_recibo` = {$TipoDeRec})"; $rsAfecta = $ql->getDataRecord($sqlAfecta); foreach ($rsAfecta as $rwAfecta) { $DatosAfect[$rwAfecta["tipo_de_operacion"]] = $rwAfecta["operacion"]; //setLog($rwAfecta["tipo_de_operacion"] . " ----- " . $rwAfecta["operacion"]); } $xLogg->add("OK\tRecibo {$Recibo} Tipo {$TipoDeRec} con Pago {$TipoDePago} \r\n", $xLogg->DEVELOPER); //Eliminar Prepoliza de ese dia. $sqlDR = " DELETE FROM `contable_polizas_proforma` WHERE numero_de_recibo = {$Recibo} "; my_query($sqlDR); $sqlM = "SELECT\r\n\t\t\t\t\t\t\t`operaciones_mvtos`.*,\r\n\t\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado` \r\n\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos` \r\n\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t(`operaciones_mvtos`.`recibo_afectado` = {$Recibo}) "; //setLog($sqlM); //======================= $rsM = $ql->getDataRecord($sqlM); foreach ($rsM as $rwM) { // $TipoOperacion = $rwM["tipo_operacion"]; $Monto = $rwM["afectacion_real"]; $socio = $rwM["socio_afectado"]; $docto = $rwM["docto_afectado"]; $usr = $rwM["idusuario"]; //setLog($sqlAfecta); $xLogg->add("OK\tOperacion {$TipoOperacion} con Monto {$Monto} ({$usr})\r\n", $xLogg->DEVELOPER); $AfectaCont = isset($DatosAfect[$TipoOperacion]) ? $DatosAfect[$TipoOperacion] : 1; $TotalSuma += $Monto; //( ( $Monto * $AfectaCont) * -1); $xPol->addProforma($Recibo, $TipoOperacion, $Monto, $socio, $docto, $AfectaCont, $usr, $banco); $msg .= "{$Recibo}\t{$socio}\t{$docto}\t{$TipoOperacion}\t{$Monto}\t{$AfectaCont}\r\n"; } //por el pago $OperacionPago = $xCat->getTipoOperacionByTipoPago($TipoDePago); $AfectaCont = isset($DatosAfect[$OperacionPago]) ? $DatosAfect[$OperacionPago] : 1; //Agregar un movimiento por el Tipo de Pago.. Cambiado monto por Monto //setLog($DatosAfect[$OperacionPago]); $xPol->addProforma($Recibo, $OperacionPago, $TotalSuma, $socio_de_rec, $docto_de_rec, $AfectaCont, $usrRec, $banco); $msg .= "{$Recibo}\t{$socio_de_rec}\t{$docto_de_rec}\t{$OperacionPago}\t{$TotalSuma}\t{$AfectaCont}\r\n"; //TODO: Ampliar funcionalidad de poliza, agregar suma de cargos, suma de abonos y si debe se cargo o abono } $xLogg->add($msg, $xLogg->DEVELOPER); $this->mMessages .= $xLogg->getMessages(); return $xLogg->getMessages(); }