Example #1
0
 function anular($numero)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $do = new DataObject("bi_trasla");
     $do->rel_one_to_many('bi_ittrasla', 'bi_ittrasla', array('numero' => 'numero'));
     $do->load($numero);
     $tipo = $do->get('tipo');
     $alma = $do->get('alma');
     if ($tipo == 'I') {
         $recibe = '0000';
     } elseif ($tipo == 'D') {
         $recibe = $alma;
     }
     $recibe = $this->db->escape($recibe);
     $sta = $do->get('status');
     if ($sta == 'C') {
         for ($i = 0; $i < $do->count_rel('bi_ittrasla'); $i++) {
             $bien = $do->get_rel('bi_ittrasla', 'bien', $i);
             $tabla = substr($bien, 0, 1);
             $bien = $this->db->escape($bien);
             $this->db->query("UPDATE " . $this->tablas[$tabla] . " SET alma={$recibe} WHERE id={$bien}");
         }
     } else {
         $error .= "<div class='alert'><p>No se puede realizar la operacion para la transferencia {$numero} </p></div>";
     }
     if (empty($error)) {
         $do->set('status', 'A');
         $do->save();
         logusu('bi_trasla', "Anulo bi_traslado {$numero}");
         redirect($this->url . "/dataedit/show/{$numero}");
     } else {
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$numero}", 'Regresar');
         $data['title'] = $this->t**s;
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #2
0
 function actualizar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("ocompra");
     $do->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     $do->load($id);
     $error = '';
     $factura = $do->get('factura');
     $numero = $do->get('numero');
     $cod_prov = $do->get('cod_prov');
     $controlfac = $do->get('controlfac');
     $fechafac = $do->get('fechafac');
     $imptimbre = $do->get('imprtimbre');
     $reten = $do->get('reten');
     $ivag = $do->get('ivag');
     $ivar = $do->get('ivar');
     $ivaa = $do->get('ivaa');
     $iva = $ivar + $ivaa + $ivag;
     $ide = $this->db->escape($id);
     if ($iva > 0 || $reten > 0 || $imptimbre > 0) {
         if (empty($factura) || empty($controlfac)) {
             $cant = $this->db->simple_query("SELECT COUNT(*) FROM itfac WHERE numero={$ide}");
             if ($cant == 0) {
                 $error .= "<div class='alert'><p>Los Campos Factura, Control Fiscal y Fecha de Factura, no pueden estar en blanco</p></div>";
             }
         } else {
             $this->chexiste_factura($numero, $factura, $controlfac, $cod_prov, 'F', $e);
             $error .= $e;
         }
     }
     if (empty($error)) {
         $sta = $do->get('status');
         if ($sta == 'C') {
             $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
             $ivan = 0;
             $importes = array();
             $ivas = array();
             $admfondo = array();
             for ($i = 0; $i < $do->count_rel('itocompra'); $i++) {
                 $codigoadm = $do->get_rel('itocompra', 'codigoadm', $i);
                 $fondo = $do->get_rel('itocompra', 'fondo', $i);
                 $codigopres = $do->get_rel('itocompra', 'partida', $i);
                 $importe = $do->get_rel('itocompra', 'importe', $i);
                 $iva = $do->get_rel('itocompra', 'iva', $i);
                 $ordinal = $do->get_rel('itocompra', 'ordinal', $i);
                 $ivan = $importe * $iva / 100;
                 $error .= $this->itpartida($codigoadm, $fondo, $codigopres, $ordinal);
                 $cadena = $codigoadm . '_._' . $fondo . '_._' . $codigopres;
                 //.'_._'.$ordinal.'_._'.$iva;
                 if (array_key_exists($cadena, $importes)) {
                     $importes[$cadena] += $importe;
                     //$ivas[$cadena]     =$iva;
                 } else {
                     $importes[$cadena] = $importe;
                     //$ivas[$cadena]      =$iva;
                 }
                 $cadena2 = $codigoadm . '_._' . $fondo;
                 $admfondo[$cadena2] = array_key_exists($cadena2, $admfondo) ? $admfondo[$cadena2] += $ivan : ($admfondo[$cadena2] = $ivan);
             }
             if (empty($error)) {
                 //foreach($admfondo AS $cadena=>$monto){
                 //	$temp  = explode('_._',$cadena);
                 //	$error.=$this->chequeapresup($temp[0],$temp[1],'PARTIDAIVA','',$monto,0,'round($monto,2) > $disponible=round(($comprometido-$causado),2)','El Monto ($monto) es mayor al disponible (round(($disponible),2)) para causar para la partida de IVA, ('.$temp[0].')('.$temp[1].') ');
                 //}
                 foreach ($importes as $cadena => $monto) {
                     $temp = explode('_._', $cadena);
                     $iva = $ivas[$cadena];
                     $error .= $this->chequeapresup($temp[0], $temp[1], $temp[2], '', $monto, 0, 'round($monto,2) > $disponible=round(($comprometido-$causado),2)', 'El Monto ($monto) es mayor al disponible ($disponible) para la partida (' . $temp[0] . ' (' . $temp[1] . ') (' . $temp[2] . ')');
                 }
             }
             if (empty($error)) {
                 //$ivan=0;
                 //for($i=0;$i < $do->count_rel('itocompra');$i++){
                 //	$codigopres  = $do->get_rel('itocompra','partida',$i);
                 //	$importe     = $do->get_rel('itocompra','importe',$i);
                 //	$iva         = $do->get_rel('itocompra','iva'    ,$i);
                 //	$ordinal     = $do->get_rel('itocompra','ordinal',$i);
                 //	$ivan       += $importe*$iva/100;
                 //
                 //	$error.=$this->afectapresup($codigoadm,$fondo,$codigopres,$ordinal,$importe,$iva, 1 ,array("causado"));
                 //}
                 foreach ($importes as $cadena => $monto) {
                     $temp = explode('_._', $cadena);
                     //$iva   = $ivas[$cadena];
                     $error .= $this->afectapresup($temp[0], $temp[1], $temp[2], '', $monto, 0, 1, array("causado"));
                 }
                 //if(empty($error)){
                 //	foreach($admfondo AS $cadena=>$monto){
                 //		$temp  = explode('_._',$cadena);
                 //		$error.=$this->afectapresup($temp[0],$temp[1],'PARTIDAIVA','',$monto,0, 1 ,array("causado"));
                 //	}
                 //}
                 if (empty($error)) {
                     $do->set('status', 'T');
                     $do->set('fcausado', date('Ymd'));
                     $do->save();
                 }
             }
         } else {
             $error .= "<div class='alert'><p>No se puede Causar esta orden de pago</p></div>";
         }
     }
     if (empty($error)) {
         redirect("presupuesto/causacion/dataedit/show/{$id}");
         logusu('causacion', "Causo Orden de Compra Nro {$id}");
     } else {
         logusu('causacion', "Causo Orden de Compra Nro {$id}. con ERROR:{$error} ");
         $data['content'] = $error . anchor("presupuesto/causacion/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " Causar Orden de Compra ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
 function actualizar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("odirect");
     $do->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
     $do->load($id);
     $error = "";
     $multiple = $do->get('multiple');
     $factura = $do->get('factura');
     $controlfac = $do->get('controlfac');
     $fechafac = $do->get('fechafac');
     $reteiva = $do->get('reteiva');
     //if($multiple == 'N'){
     //	if($reteiva > 0 && (empty($factura) || empty($controlfac) || empty($fechafac)))
     //		$error.="<div class='alert'><p> Los campos Nro. Factura, Nro Control y Fecha factura no pueden estar en blanco</p></div>";
     //}else{
     //	$facs = $this->datasis->dameval("SELECT COUNT(*) FROM itfac WHERE numero=$id ");
     //	if($facs <= 0)
     //		$error.="<div class='alert'><p> Debe ingresar las factura por el modulo de factura multiple primero</p></div>";
     //}
     if (empty($error)) {
         $sta = $do->get('status');
         if ($sta == "C1") {
             $importes = array();
             $ivas = array();
             $admfondo = array();
             $ordenes = array();
             for ($i = 0; $i < $do->count_rel('itodirect'); $i++) {
                 $codigoadm = $do->get_rel('itodirect', 'codigoadm', $i);
                 $fondo = $do->get_rel('itodirect', 'fondo', $i);
                 $codigopres = $do->get_rel('itodirect', 'partida', $i);
                 $iva = $do->get_rel('itodirect', 'iva', $i);
                 $importe = $do->get_rel('itodirect', 'importe', $i);
                 $ordinal = $do->get_rel('itodirect', 'ordinal', $i);
                 $ocompra = $do->get_rel('itodirect', 'ocompra', $i);
                 $ivan = $importe * $iva / 100;
                 $error .= $this->itpartida($codigoadm, $fondo, $codigopres, $ordinal);
                 $cadena = $codigoadm . '_._' . $fondo . '_._' . $codigopres;
                 if (array_key_exists($cadena, $importes)) {
                     $importes[$cadena] += $importe;
                 } else {
                     $importes[$cadena] = $importe;
                 }
                 $cadena2 = $codigoadm . '_._' . $fondo;
                 $admfondo[$cadena2] = array_key_exists($cadena2, $admfondo) ? $admfondo[$cadena2] += $ivan : ($admfondo[$cadena2] = $ivan);
                 $cadena3 = $ocompra . '_._' . $codigoadm . '_._' . $fondo . '_._' . $codigopres;
                 if (array_key_exists($cadena3, $ordenes)) {
                     $ordenes[$cadena3] += $importe;
                 } else {
                     $ordenes[$cadena3] = $importe;
                 }
             }
             if (empty($error)) {
                 //foreach($admfondo AS $cadena=>$monto){
                 //	$temp  = explode('_._',$cadena);
                 //	$error.=$this->chequeapresup($temp[0],$temp[1],'PARTIDAIVA','',$monto,0,'round($monto,2) > $disponible=round(($presupuesto-$comprometido),2)','El Monto ($monto) es mayor al disponible (round(($disponible),2)) para la partida de IVA, ('.$temp[0].')('.$temp[1].') ');
                 //}
                 foreach ($importes as $cadena => $monto) {
                     $temp = explode('_._', $cadena);
                     //$iva   = $ivas[$cadena];
                     $error .= $this->chequeapresup($temp[0], $temp[1], $temp[2], '', $monto, 0, 'round($monto,2) > $disponible=round(($comprometido-$causado),2)', 'El Monto ($monto) es mayor al disponible ($disponible) para la partida (' . $temp[0] . ') (' . $temp[1] . ') (' . $temp[2] . ') ');
                 }
             }
             if (empty($error)) {
                 foreach ($ordenes as $k => $v) {
                     $temp = explode('_._', $v);
                     $query = "SELECT SUM(a.importe) \n\t\t\t\t\t\tFROM itodirect a\n\t\t\t\t\t\tJOIN odirect b ON a.numero=b.numero\n\t\t\t\t\t\tWHERE a.ocompra='" . $temp[0] . "' AND a.codigoadm='" . $temp[1] . "' AND a.fondo='" . $temp[2] . "' AND a.partida='" . $temp[3] . "' \n\t\t\t\t\t\tAND b.status IN ('C2','C3')\n\t\t\t\t\t\t";
                     $totcau = $this->datasis->dameval($query);
                 }
             }
             if (empty($error)) {
                 foreach ($importes as $cadena => $monto) {
                     $temp = explode('_._', $cadena);
                     //$iva   = $ivas[$cadena];
                     $error .= $this->afectapresup($temp[0], $temp[1], $temp[2], '', $monto, 0, 1, array("causado", "opago"));
                 }
                 if (empty($error)) {
                     $do->set('fopago', date('Ymd'));
                     $do->set('status', 'C2');
                     $do->save();
                 }
             }
         }
     }
     if (empty($error)) {
         logusu('odirect', "Actualizo Orden de Pago Directo Nro {$id}");
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         logusu('odirect', "Actualizo Orden de Pago Directo Nro {$id}. con ERROR:{$error} ");
         $data['content'] = $error . anchor($this->url . "dataedit/show/{$id}", 'Regresar');
         $data['title'] = " {$this->t**s} ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #4
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("pmov");
     $do->rel_one_to_many('itpmov', 'itpmov', array('numero' => 'numero'));
     $do->load($id);
     $codigoadm = $do->get('estadmin');
     $fondo = $do->get('fondo');
     $presup = new DataObject("presupuesto");
     $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo);
     $error = '';
     $tot = 0;
     $sta = $do->get('status');
     if ($sta == "T") {
         for ($i = 0; $i < $do->count_rel('itpmov'); $i++) {
             $codigopres = $do->get_rel('itpmov', 'partida', $i);
             $monto = $do->get_rel('itpmov', 'monto', $i);
             $tot += $monto;
             $pk['codigopres'] = $codigopres;
             $presup->load($pk);
             $recibido = $presup->get("recibido");
             if ($recibido < 0) {
                 $error .= "<div class='alert'><p>partida ({$codigopre}):El monto debe ser positivo</p></div>";
             }
         }
         if (empty($error)) {
             $tot = 0;
             for ($i = 0; $i < $do->count_rel('itpmov'); $i++) {
                 $codigopres = $do->get_rel('itpmov', 'partida', $i);
                 $monto = $do->get_rel('itpmov', 'monto', $i);
                 $tot += $monto;
                 $pk['codigopres'] = $codigopres;
                 $presup->load($pk);
                 $recibido = $presup->get("recibido");
                 $recibido -= $monto;
                 $presup->set("recibido", $recibido);
                 $presup->save();
             }
             $do->set('status', 'C');
             $do->save();
         }
     }
     if (empty($error)) {
         redirect($this->url . "/dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " {$this->t**s} ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #5
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("opago");
     $do->rel_one_to_many('itopago', 'itopago', array('numero' => 'numero'));
     $do->load($id);
     $sta = $do->get('status');
     if ($sta == 'C') {
         $codigoadm = $do->get('estadmin');
         $fondo = $do->get('fondo');
         $ordc = new DataObject("ocompra");
         $ordc->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
         $error = '';
         for ($i = 0; $i < $do->count_rel('itopago'); $i++) {
             $orden = $do->get_rel('itopago', 'orden', $i);
             $pago = $do->get_rel('itopago', 'pago', $i);
             $pk2 = array('numero' => $orden);
             $ordc->load($pk2);
             $debe = $ordc->get('total');
             $status = $ordc->get('status');
             if ($status != 'R') {
                 $error .= "<div class='alert'><p>Orden Compra ({$orden}): No ha sido Procesada</p></div>";
             }
         }
     }
     if (empty($error)) {
         $presup = new DataObject("presupuesto");
         for ($i = 0; $i < $do->count_rel('itopago'); $i++) {
             $orden = $do->get_rel('itopago', 'orden', $i);
             $pago = $do->get_rel('itopago', 'pago', $i);
             $pk2 = array('numero' => $orden);
             $ordc->load($pk2);
             $debe = $ordc->get('total');
             $codigoadm = $ordc->get('estadmin');
             $fondo = $ordc->get('fondo');
             $abono = $ordc->get('abono');
             $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo);
             for ($i = 0; $i < $ordc->count_rel('itocompra'); $i++) {
                 $codigopres = $ordc->get_rel('itocompra', 'partida', $i);
                 $importe = $ordc->get_rel('itocompra', 'importe', $i);
                 $iva = $ordc->get_rel('itocompra', 'iva', $i);
                 $mont = $importe * (($iva + 100) / 100);
                 $pk['codigopres'] = $codigopres;
                 $presup->load($pk);
                 $causado = $presup->get("causado");
                 $causado -= $mont;
                 $presup->set("opago", $causado);
                 $presup->save();
             }
             $ordc->set('status', 'T');
             $ordc->save();
             $do->set('status', 'P');
             $do->save();
         }
         redirect("presupuesto/opago2/dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor("presupuesto/opago2/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " Orden de Pago ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #6
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $do = new DataObject("odirect");
     $do->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
     $do->load($id);
     $codigoadm = $do->get('estadmin');
     $fondo = $do->get('fondo');
     $id_mbanc = $do->get('mbanc');
     $monto = $do->get('monto');
     $abonado = $do->get('abonado');
     //$observa     = $do->get('observa');
     //$fecha       = $do->get('fecha');
     //$benefi      = $do->get('benefi');
     $row = $this->datasis->damerow("SELECT monto,abonado,codbanc FROM mbanc WHERE id={$id_mbanc}");
     $m_abonado = $row['abonado'];
     $m_monto = $row['monto'];
     //$a=$m_monto-$m_abonado;
     //if(($monto)>($a))
     //	$error.="<div class='alert'><p>El monto del $this->t**s ($monto) es mayor que el monto adeudado ($a) del Anticipo ($devo)</p></div>";
     $presup = new DataObject("presupuesto");
     $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo);
     $tiva = 0;
     $tmont = 0;
     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
     $sta = $do->get('status');
     if ($sta == "C") {
         $tiva = $tsub = $ttot = 0;
         /*for($i=0;$i < $do->count_rel('itodirect');$i++){
         				$codigopres  = $do->get_rel('itodirect','partida',$i);
         				$subtotal    = $do->get_rel('itodirect','subt'   ,$i);
         				$total       = $do->get_rel('itodirect','total'  ,$i);
         				$numfac      = $do->get_rel('itodirect','numfac' ,$i);
         
         				$tiva   += $total-$subtotal;
         				$tsub   += $subtotal;
         				$ttot   += $total;
         
         				$pk['codigopres'] = $codigopres;
         
         
         				$presup->load($pk);
         				$asignacion   = $presup->get("asignacion");
         				$aumento      = $presup->get("aumento");
         				$disminucion  = $presup->get("disminucion");
         				$traslados    = $presup->get("traslados");
         				$comprometido = $presup->get("comprometido");
         
         				$disponible=(($asignacion+$aumento-$disminucion)+($traslados))-$comprometido;
         
         				if($subtotal > $disponible)
         					$error.="<div class='alert'><p>No se Puede Completar la Transaccion debido a que el monto del $this->t**s ($subtotal) es mayor al monto disponible ($disponible) para la partida: $codigopres y factura ($numfac)</p></div>";
         			}
         
         			$pk['codigopres'] = $partidaiva;
         			$presup->load($pk);
         			$asignacion   = $presup->get("asignacion");
         			$aumento      = $presup->get("aumento");
         			$disminucion  = $presup->get("disminucion");
         			$traslados    = $presup->get("traslados");
         			$comprometido = $presup->get("comprometido");
         
         			$disponible=(($asignacion+$aumento-$disminucion)+($traslados))-$comprometido;
         
         			if($tiva > $disponible)
         					$error.="<div class='alert'><p>El monto de iva ($tiva) de la orden de compra, es mayor al monto disponible ($disponible) para la partida de iva ($partidaiva)</p></div>";
         
         			$c=$m_monto-$m_abonado;
         			if($ttot > $m_monto-$m_abonado)
         				$error.="<div class='alert'><p>El monto ($ttot) de la orden de pago directa, es mayor al monto disponible ($c) para el anticipo ($id_mbanc)</p></div>";
         			*/
         if (empty($error)) {
             $tiva = $tsub = $ttot = 0;
             for ($i = 0; $i < $do->count_rel('itodirect'); $i++) {
                 $codigopres = $do->get_rel('itodirect', 'partida', $i);
                 $subtotal = $do->get_rel('itodirect', 'subt', $i);
                 $total = $do->get_rel('itodirect', 'total', $i);
                 $numfac = $do->get_rel('itodirect', 'numfac', $i);
                 $tiva += $total - $subtotal;
                 $tsub += $subtotal;
                 $ttot += $total;
                 $pk['codigopres'] = $codigopres;
                 $presup->load($pk);
                 $comprometido = $presup->get("comprometido");
                 $causado = $presup->get("causado");
                 $opago = $presup->get("opago");
                 $pagado = $presup->get("pagado");
                 $comprometido -= $subtotal;
                 $causado -= $subtotal;
                 $opago -= $subtotal;
                 $pagado -= $subtotal;
                 $presup->set("comprometido", $comprometido);
                 $presup->set("causado", $causado);
                 $presup->set("opago", $opago);
                 $presup->set("pagado", $pagado);
                 $presup->save();
             }
             $pk['codigopres'] = $partidaiva;
             $presup->load($pk);
             $comprometido = $presup->get("comprometido");
             $causado = $presup->get("causado");
             $opago = $presup->get("opago");
             $pagado = $presup->get("pagado");
             $comprometido -= $tiva;
             $causado -= $tiva;
             $opago -= $tiva;
             $pagado -= $tiva;
             $presup->set("comprometido", $comprometido);
             $presup->set("causado", $causado);
             $presup->set("opago", $opago);
             $presup->set("pagado", $pagado);
             $presup->save();
             $m_abonado -= $ttot;
             $this->db->simple_query("UPDATE mbanc SET abonado={$m_abonado} WHERE id={$id_mbanc}");
             $mbanc = new DataObject("mbanc");
             $mbanc->set('monto', $ttot);
             $mbanc->set('tipo', 'B');
             $mbanc->set('status', 'B2');
             $mbanc->set('numero', $id);
             //$mbanc->set('observa',$observa);
             //$mbanc->set('fecha'  ,$fecha);
             //$mbanc->set('benefi' ,$benefi);
             $mbanc->save();
             //$id_mbanc=$mbanc->get('id');
             //$do->set('mbanc'  ,$id_mbanc);
             $do->set('status', 'P');
             $do->save();
         }
     }
     if (empty($error)) {
         redirect($this->url . "/dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " {$this->t**s} ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #7
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $odirect = new DataObject("odirect");
     $odirect->load($id);
     $status = $odirect->get('status');
     $compra = $odirect->get('compra');
     $pago = $odirect->get('pago');
     //print_r($odirect->get_all());
     //
     //echo "-".$status;
     //exit;
     if ($status == 'O') {
         $ocompra = new DataObject("ocompra");
         $ocompra->rel_one_to_many('odirect', 'odirect', array('numero' => 'compra'));
         $ocompra->load($compra);
         $o_subtotal = $ocompra->get('subtotal');
         $o_ivag = $ocompra->get('ivag');
         $o_ivar = $ocompra->get('ivar');
         $o_ivaa = $ocompra->get('ivaa');
         $o_reten = $ocompra->get('reten');
         $o_reteiva = $ocompra->get('reteiva');
         $o_abonado = $ocompra->get('abonado');
         $o_iva = $o_ivaa + $o_ivag + $o_ivar;
         $o_debe = $o_subtotal + ($o_iva - ($o_reten + $o_reteiva));
         $tot = 0;
         for ($i = 0; $i < $ocompra->count_rel('odirect'); $i++) {
             $r_pago = $ocompra->get_rel('odirect', 'pago', $i);
             $tot += $r_pago;
         }
         //$a = $o_debe-($tot-$pago);
         //if($pago > $a)
         //	$error.="<div class='alert'><p>El monto de la orden de pago($pago) es mayor al monto adeudado ($a)</p></div>";
     } else {
         $error .= "<div class='alert'><p>No se Puede Completar la operacion</p></div>";
     }
     if (empty($error)) {
         $ocompra->set('abonado', $tot - $pago);
         $odirect->set('status', 'T');
         if ($tot = $o_debe) {
             $odirect->set('ivag', 0);
             $odirect->set('ivar', 0);
             $odirect->set('ivaa', 0);
             $odirect->set('reten', 0);
             $odirect->set('creten', 0);
             $odirect->set('reteiva', 0);
             $odirect->set('exento', 0);
         }
         $ocompra->save();
         $odirect->save();
     } else {
         //$odirect -> delete();
     }
     if (empty($error)) {
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " " . $this->t**s . " ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #8
0
 function convertir($numero)
 {
     $this->rapyd->load('dataobject');
     $requi = new DataObject("requi");
     $requi->rel_one_to_many('itrequi', 'itrequi', array('numero' => 'numero'));
     $requi->load($numero);
     $ocompra = $requi->get('ocompra');
     $do = new DataObject("ocompra");
     $do->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     if (!empty($ocompra)) {
         redirect("presupuesto/ocompra/dataedit/show/{$ocompra}");
     }
     $do->set('uejecutora', $requi->get('uejecuta'));
     $do->set('observa', $requi->get('objetivo'));
     //$do->set('responsable'     ,$requi->get('responsable'   ));
     $iva = $this->datasis->dameval("SELECT tasa FROM civa ORDER BY fecha DESC LIMIT 1");
     for ($i = 0; $i < $requi->count_rel('itrequi'); $i++) {
         $do->set_rel('itocompra', 'cantidad', $requi->get_rel('itrequi', 'cantidad', $i), $i);
         $do->set_rel('itocompra', 'unidad', $requi->get_rel('itrequi', 'unidad', $i), $i);
         $do->set_rel('itocompra', 'descripcion', $requi->get_rel('itrequi', 'descrip', $i), $i);
         $do->set_rel('itocompra', 'precio', $requi->get_rel('itrequi', 'precio', $i), $i);
         $do->set_rel('itocompra', 'importe', $requi->get_rel('itrequi', 'importe', $i), $i);
         $do->set_rel('itocompra', 'partida', $requi->get_rel('itrequi', 'partida', $i), $i);
         $do->set_rel('itocompra', 'iva', $iva, $i);
     }
     $do->set('estadmin', $requi->get('estadmin'));
     $do->set('fondo', $requi->get('fondo'));
     $do->set('fecha', date('Ymd'));
     $do->save();
     $numero = $do->get('numero');
     $requi->set('ocompra', $numero);
     $requi->set('status', 'X');
     $requi->save();
     redirect("presupuesto/ocompra/dataedit/modify/{$numero}");
 }
Example #9
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $ord = new DataObject("ordinal");
     $mbanc = new DataObject("mbanc");
     $mbanc->rel_one_to_many('itppro', 'itppro', array('id' => 'mbanc'));
     $mbanc->load($id);
     $m_codbanc = $mbanc->get('codbanc');
     $m_monto = $mbanc->get('monto');
     $banc = new DataObject("banc");
     $banc->load($m_codbanc);
     $saldo = $banc->get('saldo');
     $activo = $banc->get('activo');
     $odirect = new DataObject("odirect");
     $odirect->rel_one_to_many('pacom', 'pacom', array('numero' => 'pago'));
     $odirect->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
     $odirect->rel_one_to_many('islr', 'islr', array('numero' => 'odirect'));
     $ocompra = new DataObject("ocompra");
     $ocompra->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     $riva = new DataObject("riva");
     $presup = new DataObject("presupuesto");
     $presupante = new DataObject("presupuestoante");
     $ordinalante = new DataObject("ordinalante");
     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
     if ($activo != 'S') {
         $error .= "<div class='alert'><p>El banco ({$banco}) esta inactivo</p></div>";
     }
     $sta = $mbanc->get('status');
     if ($sta == "E2") {
         $t = 0;
         if (empty($error)) {
             for ($j = 0; $j < $mbanc->count_rel('itppro'); $j++) {
                 $orden = $mbanc->get_rel('itppro', 'orden', $j);
                 $it_monto = $mbanc->get_rel('itppro', 'monto', $j);
                 $odirect->load($orden);
                 $status = $odirect->get('status');
                 $od_numero = $odirect->get('numero');
                 $od_estadmin = $odirect->get('estadmin');
                 $od_fondo = $odirect->get('fondo');
                 $od_ivag = $odirect->get('ivag');
                 $od_ivaa = $odirect->get('ivaa');
                 $od_ivar = $odirect->get('ivar');
                 $od_reten = $odirect->get('reten');
                 $od_reteiva = $odirect->get('reteiva');
                 $od_subtotal = $odirect->get('subtotal');
                 $od_pr = $od_reten * 100 / $od_subtotal;
                 if ($status == "F3") {
                     for ($g = 0; $g < $odirect->count_rel('pacom'); $g++) {
                         $p_t = $odirect->get_rel('pacom', 'total', $g);
                         $p_compra = $odirect->get_rel('pacom', 'compra', $g);
                         $ocompra->load($p_compra);
                         $oc_codigoadm = $ocompra->get('estadmin');
                         $oc_fondo = $ocompra->get('fondo');
                         $oc_status = $ocompra->get('status');
                         //$pagado=$this->datasis->dameval("SELECT SUM(a.monto) FROM itppro a JOIN mbanc d ON d.id=a.mbanc JOIN odirect b ON a.orden=b.numero JOIN pacom c ON b.numero=c.pago WHERE c.compra=$p_compra AND d.status='E2'");
                         //$pagado+=$it_monto;
                         //
                         $ivaa = $ocompra->get('ivaa');
                         $ivag = $ocompra->get('ivag');
                         $ivar = $ocompra->get('ivar');
                         //$subtotal  =  $ocompra->get('subtotal');
                         $reteiva = $ocompra->get('reteiva');
                         $reteiva_prov = $ocompra->get('reteiva_prov');
                         $reten = $ocompra->get('reten');
                         $ivan = $ivag + $ivar + $ivaa;
                         //$total     =  $subtotal+($ivan-($reteiva+$reten));
                         //if($total==$pagado){
                         $pk = array('codigoadm' => $oc_codigoadm, 'tipo' => $oc_fondo);
                         $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
                         $pk['codigopres'] = $partidaiva;
                         $presup->load($pk);
                         $pasignacion = $presup->get("asignacion");
                         $odirect->count_rel('pacom');
                         for ($h = 0; $h < $odirect->count_rel('pacom'); $h++) {
                             $p_compra = $odirect->get_rel('pacom', 'compra', $h);
                             for ($k = 0; $k < $ocompra->count_rel('itocompra'); $k++) {
                                 $codigopres = $ocompra->get_rel('itocompra', 'partida', $k);
                                 $importe = $ocompra->get_rel('itocompra', 'importe', $k);
                                 $islrid = $ocompra->get_rel('itocompra', 'islrid', $k);
                                 $ordinal = $ocompra->get_rel('itocompra', 'ordinal', $k);
                                 $iva = $ocompra->get_rel('itocompra', 'iva', $k);
                                 if ($pasignacion > 0) {
                                     $mont = $importe;
                                 } else {
                                     $mont = $importe + ($importe * $iva / 100 - $importe * $iva / 100 * $reteiva_prov / 100);
                                 }
                                 $pk = array('codigoadm' => $oc_codigoadm, 'tipo' => $oc_fondo, 'codigopres' => $codigopres);
                                 $presup->load($pk);
                                 $pagado = $presup->get("pagado");
                                 $pagado = $pagado - $mont;
                                 $presup->set("pagado", $pagado);
                                 $presup->save();
                                 if (!empty($ordinal)) {
                                     $ord->load(array("codigoadm" => $oc_codigoadm, "fondo" => $oc_fondo, "codigopres" => $codigopres, "ordinal" => $ordinal));
                                     $opa = $ord->get("pagado");
                                     $opa -= $mont;
                                     $ord->set("pagado", $opa);
                                     $ord->save();
                                 }
                             }
                             if ($pasignacion > 0) {
                                 $pk['codigopres'] = $partidaiva;
                                 $presup->load($pk);
                                 $pagado = $presup->get("pagado");
                                 $pagado -= $ivan - $reteiva;
                                 $presup->set("pagado", $pagado);
                                 $presup->save();
                             }
                             $this->sp_presucalc($oc_codigoadm);
                             if ($reteiva > 0) {
                                 $riva->load_where('ocompra', $p_compra);
                                 $riva->set('status', 'AN');
                                 $riva->save();
                             }
                         }
                         $ocompra->set('status', 'O');
                         $ocompra->save();
                         $odirect->set('status', 'F2');
                         $odirect->save();
                     }
                     if ($this->anular) {
                         $this->op_anular($orden, false);
                     }
                     //echo $this->anular.'*';
                     //exit('helloword');
                 } elseif ($status == "B3" || $status == "I3") {
                     $pk = array('codigoadm' => $od_estadmin, 'tipo' => $od_fondo);
                     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
                     $pk['codigopres'] = $partidaiva;
                     $presup->load($pk);
                     $pasignacion = $presup->get("asignacion");
                     $reteiva_prov = $odirect->get('reteiva_prov');
                     for ($g = 0; $g < $odirect->count_rel('itodirect'); $g++) {
                         $codigopres = $odirect->get_rel('itodirect', 'partida', $g);
                         $importe = $odirect->get_rel('itodirect', 'importe', $g);
                         $piva = $odirect->get_rel('itodirect', 'iva', $g);
                         $islrid = $odirect->get_rel('itodirect', 'islrid', $g);
                         $ordinal = $odirect->get_rel('itodirect', 'ordinal', $g);
                         $i_islr = $importe * $od_pr / 100;
                         //exit('12');
                         if ($pasignacion > 0) {
                             $mont = $importe;
                         } else {
                             $mont = $importe + ($importe * $piva / 100 - $importe * $piva / 100 * $reteiva_prov / 100);
                         }
                         $pk['codigopres'] = $codigopres;
                         $presup->load($pk);
                         $pagado = $presup->get("pagado");
                         $pagado = $pagado - ($mont - $i_islr);
                         $presup->set("pagado", $pagado);
                         $presup->save();
                         if (!empty($ordinal)) {
                             $ord->load(array("codigoadm" => $od_estadmin, "fondo" => $od_fondo, "codigopres" => $codigopres, "ordinal" => $ordinal));
                             $opa = $ord->get("pagado");
                             $opa -= $mont - $i_islr;
                             $ord->set("pagado", $opa);
                             $ord->save();
                         }
                     }
                     if ($status == "B3") {
                         if ($odirect->get('reteiva') > 0) {
                             if ($odirect->get('multiple') == 'N') {
                                 $reteiva = $odirect->get('reteiva');
                                 if ($reteiva > 0) {
                                     $riva->load_where('odirect', $od_numero);
                                     $riva->set('status', 'AN');
                                     $riva->save();
                                 }
                             } elseif ($odirect->get('multiple') == 'S') {
                                 for ($l = 0; $l < $odirect->count_rel('itfac'); $l++) {
                                     $iditfac = $odirect->get_rel('itfac', 'id', $l);
                                     $reteiva = $odirect->get_rel('itfac', 'reteiva');
                                     if ($reteiva > 0) {
                                         $riva = new DataObject('riva');
                                         $riva->load_where('itfac', $iditfac);
                                         $riva->set('status', 'AN');
                                         $riva->save();
                                     }
                                 }
                             }
                         }
                         $ii = $od_ivaa + $od_ivag + $od_ivar - $od_reteiva;
                         if ($pasignacion > 0) {
                             $pk['codigopres'] = $partidaiva;
                             $presup->load($pk);
                             $pagado = $presup->get("pagado");
                             $pagado -= $ii;
                             $presup->set("pagado", $pagado);
                             $presup->save();
                         }
                         $odirect->set('status', 'B2');
                         $odirect->save();
                         $this->sp_presucalc($od_estadmin);
                         //exit('holamundo');
                     }
                     $this->pd_anular($orden, false);
                 } elseif ($status == 'N3') {
                     $pk = array('codigoadm' => $od_estadmin, 'tipo' => $od_fondo);
                     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
                     $pk['codigopres'] = $partidaiva;
                     $presupante->load($pk);
                     $pasignacion = $presupante->get("asignacion");
                     $reteiva_prov = $odirect->get('reteiva_prov');
                     for ($g = 0; $g < $odirect->count_rel('itodirect'); $g++) {
                         $codigopres = $odirect->get_rel('itodirect', 'partida', $g);
                         $importe = $odirect->get_rel('itodirect', 'importe', $g);
                         $piva = $odirect->get_rel('itodirect', 'iva', $g);
                         $islrid = $odirect->get_rel('itodirect', 'islrid', $g);
                         echo $ordinal = $odirect->get_rel('itodirect', 'ordinal', $g);
                         $i_islr = $importe * $od_pr / 100;
                         //exit('12');
                         if ($pasignacion > 0) {
                             $mont = $importe;
                         } else {
                             $mont = $importe + ($importe * $iva / 100 - $importe * $iva / 100 * $reteiva_prov / 100);
                         }
                         $pk['codigopres'] = $codigopres;
                         $presupante->load($pk);
                         $pagado = $presupante->get("pagado");
                         $pagado = $pagado - ($mont - $i_islr);
                         $presupante->set("pagado", $pagado);
                         $presupante->save();
                         if (!empty($ordinal)) {
                             $ordinalante->load(array("codigoadm" => $od_estadmin, "fondo" => $od_fondo, "codigopres" => $codigopres, "ordinal" => $ordinal));
                             $opa = $ordinalante->get("pagado");
                             $opa -= $mont - $i_islr;
                             $ordinalante->set("pagado", $opa);
                             $ordinalante->save();
                         }
                     }
                     if ($odirect->get('reteiva') > 0) {
                         if ($odirect->get('multiple') == 'N') {
                             $riva->load_where('odirect', $od_numero);
                             $riva->set('status', 'AN');
                             $riva->save();
                         } elseif ($odirect->get('multiple') == 'S') {
                             for ($l = 0; $l < $odirect->count_rel('itfac'); $l++) {
                                 $iditfac = $odirect->get_rel('itfac', 'id', $l);
                                 $riva = new DataObject('riva');
                                 $riva->load_where('itfac', $iditfac);
                                 $riva->set('status', 'AN');
                                 $riva->save();
                             }
                         }
                     }
                     $ii = $od_ivaa + $od_ivag + $od_ivar - $od_reteiva;
                     if ($pasignacion > 0) {
                         $pk['codigopres'] = $partidaiva;
                         $presupante->load($pk);
                         $pagado = $presupante->get("pagado");
                         $pagado -= $ii;
                         $presupante->set("pagado", $pagado);
                         $presupante->save();
                     }
                     $odirect->set('status', 'N2');
                     $odirect->save();
                     $this->sp_presucalc($od_estadmin);
                 } elseif ($status == 'S3') {
                     $pk = array('codigoadm' => $od_estadmin, 'tipo' => $od_fondo);
                     for ($g = 0; $g < $odirect->count_rel('islr'); $g++) {
                         $islrid = '';
                         $codigopres = $odirect->get_rel('islr', 'partida', $g);
                         $i_islr = $odirect->get_rel('islr', 'islr', $g);
                         $pk['codigopres'] = $codigopres;
                         $presup->load($pk);
                         $pagado = $presup->get("pagado");
                         $pagado -= $i_islr;
                         $presup->set("pagado", $pagado);
                         $presup->save();
                         $codigopres = $odirect->set_rel('islr', 'status', 'B', $g);
                     }
                     $odirect->set('status', 'S2');
                     $odirect->save();
                     $this->sp_presucalc($codigoadm);
                 } elseif ($status == "M3") {
                     if ($status == 'M3') {
                         $odirect->set('status', 'M2');
                     }
                     $odirect->save();
                 } elseif ($status == 'R3') {
                     $odirect->set('status', 'R2');
                 } elseif ($status == 'H3') {
                     $odirect->set('status', 'H2');
                 } elseif ($status == 'G3') {
                     $odirect->set('status', 'G2');
                 } elseif ($status == 'O3') {
                     $obr = $odirect->get('obr');
                     $iva = $odirect->get('iva');
                     $total2 = $odirect->get('total2');
                     $amortiza = $odirect->get('amortiza');
                     $obra = new DataObject("obra");
                     $obra->load($obr);
                     $codigoadm = $obra->get('codigoadm');
                     $fondo = $obra->get('fondo');
                     $codigopres = $obra->get('codigopres');
                     $ordinal = $obra->get('ordinal');
                     $mont = $total2 - $amortiza;
                     if (empty($error)) {
                         if (!empty($ordinal)) {
                             $pk = array("codigoadm" => $codigoadm, "fondo" => $fondo, "codigopres" => $codigopres, "ordinal" => $ordinal);
                             $ord->load($pk);
                             $pag = $ord->get("pagado");
                             $pag -= $mont;
                             $ord->set("pagado", $pag);
                             $ord->save();
                         } else {
                             $pk = array("codigoadm" => $codigoadm, "tipo" => $fondo, "codigopres" => $codigopres);
                             $presup->load($pk);
                             $pag = $presup->get("pagado");
                             $pag -= $mont;
                             $presup->set("pagado", $pag);
                             $presup->save();
                         }
                         if ($odirect->get('reteiva') > 0) {
                             $riva->load_where('odirect', $od_numero);
                             $riva->set('status', 'AN');
                             $riva->save();
                         }
                     }
                     $odirect->set('status', 'O2');
                     $odirect->save();
                     $this->po_anular($orden, false);
                 } else {
                     $error .= "<div class='alert'><p>No se puede realizar la operacion para la orden de pago ({$od_numero})</p></div>";
                 }
             }
             $odirect->save();
         } else {
             $error .= "<div class='alert'><p>Error aun no determinado</p></div>";
         }
     } else {
         $error .= "<div class='alert'><p>No se Puede Coersar({$id});mpletar la operacion s</p></div>";
     }
     if (empty($error)) {
         $mbanc->set('status', 'E1');
         $mbanc->save();
         $saldo += $m_monto;
         $banc->set('saldo', $saldo);
         $banc->save();
         logusu('ppro', "Reverso movimiento Nro {$id}");
         if ($this->redirect) {
             redirect($this->url . "dataedit/show/{$id}");
         }
     } else {
         logusu('ppro', "Reverso movimiento Nro {$id} con ERROR:{$error}");
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " " . $this->t**s . " ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #10
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("audis");
     $do->rel_one_to_many('itaudis', 'itaudis', array('numero' => 'numero'));
     $do->load($id);
     $sta = $do->get('status');
     if ($sta == 'C') {
         $tipo = $do->get('tipo');
         $campo = $tipo == 'AUMENTO' ? 'aumento' : 'disminucion';
         $factor = 1;
         $error = '';
         if ($tipo == 'AUMENTO') {
             for ($i = 0; $i < $do->count_rel('itaudis'); $i++) {
                 $codigopres = $do->get_rel('itaudis', 'codigopres', $i);
                 $monto = $do->get_rel('itaudis', 'monto', $i);
                 $ordinal = $do->get_rel('itaudis', 'ordinal', $i);
                 $codigoadm = $do->get_rel('itaudis', 'codigoadm', $i);
                 $fondo = $do->get_rel('itaudis', 'fondo', $i);
                 $error .= $this->chequeapresup($codigoadm, $fondo, $codigopres, $ordinal, $monto, 0, '$monto > ($presupuesto-$comprometido)', "El Monto ({$monto}) es mayor al disponible para la partida ({$codigoadm}) ({$fondo}) ({$codigopres})");
             }
             if (empty($error)) {
                 $factor = -1;
             }
         }
         if (empty($error)) {
             for ($i = 0; $i < $do->count_rel('itaudis'); $i++) {
                 $codigopres = $do->get_rel('itaudis', 'codigopres', $i);
                 $monto = $do->get_rel('itaudis', 'monto', $i);
                 $ordinal = $do->get_rel('itaudis', 'ordinal', $i);
                 $codigoadm = $do->get_rel('itaudis', 'codigoadm', $i);
                 $fondo = $do->get_rel('itaudis', 'fondo', $i);
                 $error .= $this->afectapresup($codigoadm, $fondo, $codigopres, $ordinal, $monto, 0, 1 * $factor, array($campo));
             }
             if (empty($error)) {
                 $do->set('status', 'A');
                 $do->save();
                 $this->sp_presucalc($codigoadm);
             }
         }
     } else {
         $error .= "<div class='alert'><p>No se puede realizar la operacion para este aumento � disminucion</p></div>";
     }
     if (empty($error)) {
         logusu('audis', "reverso {$campo} numero {$id}");
         redirect("presupuesto/audis/dataedit/show/{$id}");
     } else {
         logusu('audis', "reverso {$campo} numero {$id} con error {$error}");
         $data['content'] = $error . anchor("presupuesto/audis/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " Aumentos y Disminuciones ";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #11
0
 function actualizar($numero)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("casi");
     $do->rel_one_to_many('itcasi', 'itcasi', array('comprob' => 'comprob'));
     $do->load($numero);
     $error = '';
     $fecha = $do->get('fecha');
     $error .= $this->chcasise($fecha);
     $tdebe = $thaber = 0;
     for ($i = 0; $i < $do->count_rel('itcasi'); $i++) {
         $cuenta = $do->get_rel('itcasi', 'cuenta', $i);
         $debe = $do->get_rel('itcasi', 'debe', $i);
         $haber = $do->get_rel('itcasi', 'haber', $i);
         $tdebe += $debe;
         $thaber += $haber;
         if ($debe != 0 && $haber != 0) {
             $error .= "<div class='alert'><p>Error en la cuenta {$cuenta}: Uno de los campos debe o haber debe contener un valor positivo y el otro cero(0)</p></div>";
         }
     }
     if ($this->datasis->traevalor('CASIDESCUDRADO', 'N', 'PERMITE ACTURALIZAR UN ASIENTO DESCUADRADO') != 'S') {
         if (round($tdebe, 2) != round($thaber, 2)) {
             $error .= "<div class='alert'><p>Asiento Descuadrado</p></div>";
         }
     }
     if (empty($error)) {
         $do->set('debe', $tdebe);
         $do->set('haber', $thaber);
         $do->set('total', $tdebe - $thaber);
         $do->set('status', 'C2');
         $do->save();
     }
     if (empty($error)) {
         $fecha = $do->get('fecha');
         $mes = str_pad(date('m', strtotime($fecha)), 2, '0', STR_PAD_LEFT);
         $this->cal_nrocomp($mes);
         logusu('CASI', 'Actualizo Asiento Contable ' . $numero);
         redirect($this->url . "dataedit/show/{$numero}");
     } else {
         $data['content'] = "<div class='alert'>" . $error . "</div>" . anchor($this->url . "dataedit/show/{$numero}", 'Regresar');
         $data['title'] = "{$this->t**s}";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
         return false;
     }
 }
Example #12
0
 function cd_reversar($numero, $anular = false, $redirect = true)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $do = new DataObject("cdisp");
     $do->rel_one_to_many('itcdisp', 'itcdisp', array('numero' => 'numero'));
     $do->load($numero);
     $status = $do->get('status');
     if ($status == 'C') {
         $importes = array();
         for ($i = 0; $i < $do->count_rel('itcdisp'); $i++) {
             $codigoadm = $do->get_rel('itcdisp', 'codigoadm', $i);
             $fondo = $do->get_rel('itcdisp', 'fondo', $i);
             $codigopres = $do->get_rel('itcdisp', 'codigopres', $i);
             $importe = $do->get_rel('itcdisp', 'importe', $i);
             $soli = $do->get_rel('itcdisp', 'soli', $i);
             $cadena = $codigoadm . '_._' . $fondo . '_._' . $codigopres;
             if (array_key_exists($cadena, $importes)) {
                 $importes[$cadena] += $soli;
             } else {
                 $importes[$cadena] = $soli;
             }
         }
         if (empty($error) && $status == 'C') {
             foreach ($importes as $cadena => $monto) {
                 $temp = explode('_._', $cadena);
                 $error .= $this->chequeapresup($temp[0], $temp[1], $temp[2], '', $monto, 0, 'round($monto,2) > $disponible=round(($apartado),2)', 'El Monto ($monto) es mayor al apartado ($disponible) para la partida (' . $temp[0] . ') (' . $temp[1] . ') (' . $temp[2] . ') ');
             }
         }
         //print_r($importes);
         //exit('Hello World'.$error);
         if (empty($error)) {
             foreach ($importes as $cadena => $monto) {
                 $temp = explode('_._', $cadena);
                 $error .= $this->afectapresup($temp[0], $temp[1], $temp[2], '', $monto, 0, -1, array("apartado"));
             }
         }
     } else {
         $error .= "<div class='alert'>No se puede realizar la operacion para el certificado</div>";
     }
     if (empty($error)) {
         if ($anular) {
             $do->set('fanulado', date('Ymd'));
             $do->set('status', 'A');
             logusu('cdisp', "Marco como anulado certificado nro {$numero}");
         } else {
             $do->set('ffinal', date('Ymd'));
             if ($status == 'F') {
                 $do->set('status', 'C');
             } else {
                 $do->set('status', 'F');
             }
             logusu('cdisp', "Marco como finalizado certificado nro {$numero}");
         }
         $do->save();
         if ($redirect) {
             redirect($this->url . "dataedit/show/{$numero}");
         }
     } else {
         logusu('cdisp', "Marco como anulado certificado nro {$numero} con ERROR {$error}");
         $data['content'] = $error . anchor($this->url . "dataedit/show/{$numero}", 'Regresar');
         $data['title'] = " {$this->t**s}";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #13
0
 function actpresup2($id, $apartar = null)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("trasla");
     $do->rel_one_to_many('ittrasla', 'ittrasla', array('numero' => 'numero'));
     $do->load($id);
     $sta = $do->get('status');
     if ($sta == 'P' || $sta == 'H') {
         $tdisminucion = $do->get('tdisminucion');
         $taumento = $do->get('taumento');
         $error = '';
         if ($tdisminucion == $taumento) {
             $montos = array();
             for ($i = 0; $i < $do->count_rel('ittrasla'); $i++) {
                 $ordinal = $do->get_rel('ittrasla', 'ordinal', $i);
                 $codigopres = $do->get_rel('ittrasla', 'codigopres', $i);
                 $codigoadm = $do->get_rel('ittrasla', 'codigoadm', $i);
                 $fondo = $do->get_rel('ittrasla', 'fondo', $i);
                 $disminucion = $do->get_rel('ittrasla', 'disminucion', $i);
                 $aumento = $do->get_rel('ittrasla', 'aumento', $i);
                 $monto = $aumento - $disminucion;
                 if ($sta == 'H') {
                     $monto = -1 * $monto;
                 }
                 $error .= $this->itpartida($codigoadm, $fondo, $codigopres, $ordinal);
                 $cadena = $codigoadm . '_._' . $fondo . '_._' . $codigopres . '_._' . $ordinal;
                 if (array_key_exists($cadena, $montos)) {
                     $montos[$cadena] += $monto;
                 } else {
                     $montos[$cadena] = $monto;
                 }
             }
             if (empty($error)) {
                 foreach ($montos as $cadena => $monto) {
                     $temp = explode('_._', $cadena);
                     if ($monto < 0) {
                         $error .= $this->chequeapresup($temp[0], $temp[1], $temp[2], $temp[3], abs($monto), 0, 'round($monto,2) > $disponible=round(($presupuesto-($comprometido+$apartado)),2)', 'El Monto ($monto) es mayor al disponible ($disponible) para la partida (' . $temp[0] . ') (' . $temp[1] . ') (' . $temp[2] . ') (' . $temp[3] . ')');
                     }
                 }
             }
             if (empty($error)) {
                 foreach ($montos as $cadena => $monto) {
                     $temp = explode('_._', $cadena);
                     if ($sta == 'P') {
                         if ($monto < 0) {
                             $error .= $this->afectapresup($temp[0], $temp[1], $temp[2], $temp[3], abs($monto), 0, 1, array("apartado"));
                         }
                     } elseif ($sta == 'H') {
                         if ($monto > 0) {
                             $error .= $this->afectapresup($temp[0], $temp[1], $temp[2], $temp[3], abs($monto), 0, -1, array("apartado"));
                         }
                     }
                 }
             }
         } else {
             $error .= "<div class='alert'><p>No se puede realizar la Transferencia si El total de Disminuci&oacute;nes ({$tdisminucion}) es Diferente al total de Aumentos ({$taumento}) </p></div>";
         }
         if (empty($error)) {
             if ($sta == 'P') {
                 $do->set('status', 'H');
                 logusu('trasla', "Aparto traslado {$id}");
             }
             if ($sta == 'H') {
                 $do->set('status', 'P');
                 logusu('trasla', "desaparto traslado {$id}");
             }
             $do->save();
         }
     } else {
         $error .= "<div class='alert'><p>No se puede realizar la operacion para la transferencia {$id} </p></div>";
     }
     if (empty($error)) {
         redirect("presupuesto/trasla/dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor("presupuesto/trasla/dataedit/show/{$id}", 'Regresar');
         $data['title'] = "Traslados";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #14
0
 function creariva($id)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $do = new DataObject("rendi");
     $do->pointer('sprv', 'sprv.proveed=rendi.cod_prov', 'sprv.reteiva as reteivap');
     $do->rel_one_to_many('itrendi', 'itrendi', array('numero' => 'numero'));
     $do->load($id);
     $sta = $do->get('status');
     $cod_prov = $do->get('cod_prov');
     $reteiva_prov = $do->get_pointer('reteivap');
     $qq = $this->db->query("SELECT tasa, redutasa, sobretasa FROM civa  ORDER BY fecha DESC LIMIT 1");
     $ivaplica = $qq->row_array();
     $ivaplica['redutasa'];
     $ivaplica['tasa'];
     $ivaplica['sobretasa'];
     if ($sta == "C") {
         for ($i = 0; $i < $do->count_rel('itrendi'); $i++) {
             $codigoadm = $do->get_rel('itrendi', 'codigoadm', $i);
             $fondo = $do->get_rel('itrendi', 'fondo', $i);
             $subtotal = $do->get_rel('itrendi', 'subtotal', $i);
             $iva = $do->get_rel('itrendi', 'iva', $i);
             $factura = $do->get_rel('itrendi', 'factura', $i);
             $controlfac = $do->get_rel('itrendi', 'controlfac', $i);
             $fechafac = $do->get_rel('itrendi', 'fechafac', $i);
             $tivag = $mivag = $tivaa = $ivaa = $tivar = $mivar = 0;
             $tasaiva = $iva * 100 / $subtotal;
             if (round($tasaiva, 2) == round($ivaplica['redutasa'], 2)) {
                 $tivar = $ivaplica['redutasa'];
                 $mivar = $iva;
             } elseif (round($tasaiva, 2) == round($ivaplica['sobretasa'], 2)) {
                 $tivaa = $ivaplica['sobretasa'];
                 $mivaa = $iva;
             } elseif (round($tasaiva, 2) == round($ivaplica['tasa'], 2)) {
                 $tivag = $ivaplica['tasa'];
                 $mivag = $iva;
             } else {
                 $error = "El Monto de IVA no corresponde con alguno de las tasas actuales";
             }
         }
         $ide = $this->db->query($id);
         $r = $this->datasis->dameval("SELECT SUM(iva*(SELECT reteiva_prov FROM sprv WHERE proveed=(SELECT cod_prov FROM rendi WHERE numero={$ide}))/100) FROM itrendi WHERE numero={$ide}");
         if ($r > 0) {
             $nriva = $this->datasis->fprox_numero('nriva');
         }
         if (empty($error)) {
             for ($i = 0; $i < $do->count_rel('itrendi'); $i++) {
                 $codigoadm = $do->get_rel('itrendi', 'codigoadm', $i);
                 $fondo = $do->get_rel('itrendi', 'fondo', $i);
                 $subtotal = $do->get_rel('itrendi', 'subtotal', $i);
                 $iva = $do->get_rel('itrendi', 'iva', $i);
                 $factura = $do->get_rel('itrendi', 'factura', $i);
                 $controlfac = $do->get_rel('itrendi', 'controlfac', $i);
                 $fechafac = $do->get_rel('itrendi', 'fechafac', $i);
                 $tivag = $mivag = $tivaa = $ivaa = $tivar = $mivar = 0;
                 $tasaiva = $iva * 100 / $subtotal;
                 if (round($tasaiva, 2) == round($ivaplica['redutasa'], 2)) {
                     $tivar = $ivaplica['redutasa'];
                     $mivar = $iva;
                 } elseif (round($tasaiva, 2) == round($ivaplica['sobretasa'], 2)) {
                     $tivaa = $ivaplica['sobretasa'];
                     $mivaa = $iva;
                 } elseif (round($tasaiva, 2) == round($ivaplica['tasa'], 2)) {
                     $tivag = $ivaplica['tasa'];
                     $mivag = $iva;
                 }
                 $reteiva = $iva * $reteiva_prov / 100;
                 if ($reteiva > 0) {
                     $error = $this->riva($nriva, $codigoadm, $fondo, '', '', '', $factura, $controlfac, $fechafac, $cod_prov, 0, $tivag, $mivag, $tivaa, $ivaa, $tivar, $mivar, $reteiva, '', '', $reteiva_prov, $id);
                 }
             }
         }
     }
     if (1 * $error > 0) {
         $salida = "Se creo retencion de IVA numero {$error}";
     } else {
         $salida = $error;
     }
     $data['content'] = $salida . "</br>" . anchor($this->url . "dataedit/show/{$id}", 'Regresar');
     $data['title'] = ' Crear Retencion de IVA ';
     $data["head"] = $this->rapyd->get_head();
     $this->load->view('view_ventanas', $data);
 }
Example #15
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("opago");
     $do->rel_one_to_many('itopago', 'itopago', array('numero' => 'numero'));
     $do->load($id);
     $sta = $do->get('status');
     if ($sta == 'C') {
         $codigoadm = $do->get('estadmin');
         $fondo = $do->get('fondo');
         $presup = new DataObject("presupuesto");
         $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo);
         for ($i = 0; $i < $do->count_rel('itopago'); $i++) {
             $codigopres = $do->get_rel('itopago', 'partida', $i);
             $pago = $do->get_rel('itopago', 'pago', $i);
             $pk['codigopres'] = $codigopres;
             $presup->load($pk);
             $pagado = $presup->get("pagado");
             if ($sta == "C") {
                 $pagado = $pagado - $pago;
             }
             $presup->set("pagado", $pago);
             $presup->save();
         }
         if ($sta == "P") {
             $do->set('status', 'C');
         }
         if ($sta == "C") {
             $do->set('status', 'P');
         }
         $do->save();
     }
     if (empty($error)) {
         redirect("presupuesto/opago/dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor("presupuesto/opago/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " Orden de Pago ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #16
0
 function _actsumi($id, $oper, $status)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $do = new DataObject("sumine");
     $do->rel_one_to_many('itsumine', 'itsumine', array('numero' => 'numero'));
     $do->load($id);
     $caub = $do->get('caub');
     $caube = $this->db->escape($caub);
     $sta = $do->get('sta');
     $sumi = new DataObject("sumi");
     if ($sta != $status) {
         for ($i = 0; $i < $do->count_rel('itsumine'); $i++) {
             $codigo = $do->get_rel('itsumine', 'codigo', $i);
             $cantidad = $do->get_rel('itsumine', 'cantidad', $i);
             $cantidad = 1 * $cantidad;
             $codigoe = $this->db->escape($codigo);
             if ($oper == '-') {
                 $sumi->load($codigo);
                 $existen = $sumi->get('existen');
                 //exit("SELECT cantidad FROM su_itsumi WHERE codigo=$codigoe AND alma=$caube");
                 $existen2 = $this->datasis->dameval("SELECT cantidad FROM view_sumi_saldo WHERE codigo={$codigoe} AND caub={$caube}");
                 if ($existen2 < $cantidad || $existen2 < $cantidad) {
                     $existen = number_format($existen2, 2, ",", ".");
                     $error .= "<div class='alert'><p>No se puede entregar la cantidad de {$cantidad} suministros de codigo {$codigo}, porque solo hay {$existen} disponibles </p></div>";
                 }
             }
         }
         if (empty($error)) {
             for ($i = 0; $i < $do->count_rel('itsumine'); $i++) {
                 $codigo = $do->get_rel('itsumine', 'codigo', $i);
                 $cantidad = $do->get_rel('itsumine', 'cantidad', $i);
                 $cantidad = 1 * $cantidad;
                 $sumi->load($codigo);
                 $existen = $sumi->get('existen');
                 $codigo = $this->db->escape($codigo);
                 $costo = $this->datasis->dameval("SELECT (pond/existen) FROM sumi WHERE codigo={$codigo}");
                 $do->set_rel('itsumine', 'costo', $costo, $i);
                 if (is_numeric($cantidad)) {
                     $this->db->simple_query("UPDATE sumi SET pond=pond {$oper} ((pond/existen)*{$cantidad}),existen=existen {$oper} {$cantidad} WHERE codigo={$codigo}");
                     $this->db->simple_query("UPDATE su_itsumi SET cantidad=cantidad {$oper} {$cantidad} WHERE codigo={$codigo} AND alma={$caube}");
                 }
             }
         }
     } else {
         $error .= "No se puede realizar la operacion para la nota de entrega";
     }
     if (empty($error)) {
         $do->set('status', $status);
         $do->save();
         logusu('sumine', "Marco nota de entrega Nro {$id} como {$status}");
         redirect($this->url . "/dataedit/show/{$id}");
     } else {
         logusu('sumine', "Marco nota de entrega Nro {$id} como {$status} . con ERROR:{$error}");
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = $this->t**s;
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #17
0
 function reversar($numero)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("nomi");
     $do->rel_one_to_many('asignomi', 'asignomi', array('numero' => 'numero'));
     $do->rel_one_to_many('retenomi', 'retenomi', array('numero' => 'numero'));
     $do->load($numero);
     $status = $do->get('status');
     $tasig = 0;
     $b = array();
     $error = '';
     if ($status == "C") {
         for ($i = 0; $i < $do->count_rel('asignomi'); $i++) {
             $ordinal = $do->get_rel('asignomi', 'ordinal', $i);
             $codigopres = $do->get_rel('asignomi', 'codigopres', $i);
             $codigoadm = $do->get_rel('asignomi', 'codigoadm', $i);
             $fondo = $do->get_rel('asignomi', 'fondo', $i);
             $monto = $do->get_rel('asignomi', 'monto', $i);
             $error .= $this->chequeapresup($codigoadm, $fondo, $codigopres, $ordinal, $monto, 0, 'round($monto,2) > round(($comprometido-$causado),2)', "El Monto ({$monto}) es mayor al disponible para descomprometer para la partida ({$codigopres})");
         }
         if (empty($error)) {
             for ($i = 0; $i < $do->count_rel('asignomi'); $i++) {
                 $ordinal = $do->get_rel('asignomi', 'ordinal', $i);
                 $codigopres = $do->get_rel('asignomi', 'codigopres', $i);
                 $codigoadm = $do->get_rel('asignomi', 'codigoadm', $i);
                 $fondo = $do->get_rel('asignomi', 'fondo', $i);
                 $monto = $do->get_rel('asignomi', 'monto', $i);
                 $error .= $this->afectapresup($codigoadm, $fondo, $codigopres, $ordinal, $monto, 0, -1, array("comprometido"));
             }
             if (empty($error)) {
                 $do->set('status', 'P');
                 //$do->set('fcomprome',date('Ymd'));
                 $do->save();
                 for ($i = 0; $i < $do->count_rel('retenomi'); $i++) {
                     $do->set_rel('retenomi', 'status', 'P', $i);
                 }
                 $do->save();
             }
         }
     } else {
         $error .= "No se puede realizar la operacion para la nomina {$numero}";
     }
     //$this->sp_presucalc($codigoadm);
     if (empty($error)) {
         logusu('nomi', "Descomprometio nomina Nro {$numero}");
         redirect($this->url . "dataedit/show/{$numero}");
     } else {
         logusu('nomi', "Descomprometio nomina Nro {$numero} ERROR:{$error} ");
         $data['content'] = $error . anchor($this->url . "dataedit/show/{$numero}", 'Regresar');
         $data['title'] = " {$this->t**s} ";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #18
0
 function duplicar($numero)
 {
     $this->rapyd->load('dataobject', 'datadetails');
     $do = new DataObject("ocompra");
     $do->order_by('itocompra', 'itocompra.id', 'desc');
     $do->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     $do->load($numero);
     $donew = new DataObject("ocompra");
     $donew->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     $campos = $do->get_all();
     unset($campos['itocompra']);
     foreach ($campos as $k => $v) {
         $donew->set($k, $v);
     }
     $ntransac = $this->datasis->fprox_numero('ntransac');
     $donew->set('numero', '_' . $ntransac);
     $donew->set('status', 'M');
     //$donew->pk    =array('numero'=>'_'.$ntransac);
     for ($i = 0; $i < $do->count_rel('itocompra'); $i++) {
         $donew->set_rel('itocompra', 'numero', '_' . $ntransac, $i);
         $donew->set_rel('itocompra', 'id', '', $i);
         $donew->set_rel('itocompra', 'descripcion', $do->get_rel('itocompra', 'descripcion', $i), $i);
         $donew->set_rel('itocompra', 'unidad', $do->get_rel('itocompra', 'unidad', $i), $i);
         $donew->set_rel('itocompra', 'cantidad', $do->get_rel('itocompra', 'cantidad', $i), $i);
         $donew->set_rel('itocompra', 'precio', $do->get_rel('itocompra', 'precio', $i), $i);
         $donew->set_rel('itocompra', 'importe', $do->get_rel('itocompra', 'importe', $i), $i);
         $donew->set_rel('itocompra', 'iva', $do->get_rel('itocompra', 'iva', $i), $i);
         $donew->set_rel('itocompra', 'usaislr', $do->get_rel('itocompra', 'usaislr', $i), $i);
         $donew->set_rel('itocompra', 'islr', $do->get_rel('itocompra', 'islr', $i), $i);
         $donew->set_rel('itocompra', 'partida', $do->get_rel('itocompra', 'partida', $i), $i);
         $donew->set_rel('itocompra', 'preten', $do->get_rel('itocompra', 'preten', $i), $i);
         $donew->set_rel('itocompra', 'codigoadm', $do->get_rel('itocompra', 'codigoadm', $i), $i);
         $donew->set_rel('itocompra', 'fondo', $do->get_rel('itocompra', 'fondo', $i), $i);
         $donew->set_rel('itocompra', 'esiva', $do->get_rel('itocompra', 'esiva', $i), $i);
     }
     $donew->save();
     redirect($this->url . 'dataedit/modify/_' . $ntransac);
 }
Example #19
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $ord = new DataObject("ordinal");
     $mbanc = new DataObject("mbanc");
     $mbanc->rel_one_to_many('itppro', 'itppro', array('id' => 'mbanc'));
     $mbanc->load($id);
     $m_codbanc = $mbanc->get('codbanc');
     $m_monto = $mbanc->get('monto');
     $banc = new DataObject("banc");
     $banc->load($m_codbanc);
     $saldo = $banc->get('saldo');
     $activo = $banc->get('activo');
     $odirect = new DataObject("odirect");
     $odirect->rel_one_to_many('pacom', 'pacom', array('numero' => 'pago'));
     $odirect->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
     $odirect->rel_one_to_many('islr', 'islr', array('numero' => 'odirect'));
     $ocompra = new DataObject("ocompra");
     $ocompra->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     //$ocompra->pointer('sprv' ,'sprv.proveed=ocompra.cod_prov','sprv.nombre as nom_prov, sprv.rif as rif_prov');
     $riva = new DataObject("riva");
     $presup = new DataObject("presupuesto");
     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
     if ($activo != 'S') {
         $error .= "<div class='alert'><p>El banco ({$banco}) esta inactivo</p></div>";
     }
     //if($m_monto > $saldo )$error.="<div class='alert'><p>El Monto ($tot) del cheque es mayor al disponible ($saldo) en el banco ($banco)</p></div>";
     $sta = $mbanc->get('status');
     if ($sta == "E2") {
         $t = 0;
         if (empty($error)) {
             for ($j = 0; $j < $mbanc->count_rel('itppro'); $j++) {
                 $orden = $mbanc->get_rel('itppro', 'orden', $j);
                 $it_monto = $mbanc->get_rel('itppro', 'monto', $j);
                 $odirect->load($orden);
                 $status = $odirect->get('status');
                 $od_numero = $odirect->get('numero');
                 $od_estadmin = $odirect->get('estadmin');
                 $od_fondo = $odirect->get('fondo');
                 $od_ivag = $odirect->get('ivag');
                 $od_ivaa = $odirect->get('ivaa');
                 $od_ivar = $odirect->get('ivar');
                 $od_reten = $odirect->get('reten');
                 $od_reteiva = $odirect->get('reteiva');
                 $od_subtotal = $odirect->get('subtotal');
                 $od_pr = $od_reten * 100 / $od_subtotal;
                 if ($status == "F3") {
                     for ($g = 0; $g < $odirect->count_rel('pacom'); $g++) {
                         $p_t = $odirect->get_rel('pacom', 'total', $g);
                         $p_compra = $odirect->get_rel('pacom', 'compra', $g);
                         $ocompra->load($p_compra);
                         $oc_codigoadm = $ocompra->get('estadmin');
                         $oc_fondo = $ocompra->get('fondo');
                         $oc_status = $ocompra->get('status');
                         //$pagado=$this->datasis->dameval("SELECT SUM(a.monto) FROM itppro a JOIN mbanc d ON d.id=a.mbanc JOIN odirect b ON a.orden=b.numero JOIN pacom c ON b.numero=c.pago WHERE c.compra=$p_compra AND d.status='E2'");
                         //$pagado+=$it_monto;
                         //
                         $ivaa = $ocompra->get('ivaa');
                         $ivag = $ocompra->get('ivag');
                         $ivar = $ocompra->get('ivar');
                         //$subtotal  =  $ocompra->get('subtotal');
                         $reteiva = $ocompra->get('reteiva');
                         $reten = $ocompra->get('reten');
                         $ivan = $ivag + $ivar + $ivaa;
                         //$total     =  $subtotal+($ivan-($reteiva+$reten));
                         //if($total==$pagado){
                         $pk = array('codigoadm' => $oc_codigoadm, 'tipo' => $oc_fondo);
                         $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
                         $pk['codigopres'] = $partidaiva;
                         $presup->load($pk);
                         $pasignacion = $presup->get("asignacion");
                         $odirect->count_rel('pacom');
                         for ($h = 0; $h < $odirect->count_rel('pacom'); $h++) {
                             for ($k = 0; $k < $ocompra->count_rel('itocompra'); $k++) {
                                 $codigopres = $ocompra->get_rel('itocompra', 'partida', $k);
                                 $importe = $ocompra->get_rel('itocompra', 'importe', $k);
                                 $islrid = $ocompra->get_rel('itocompra', 'islrid', $k);
                                 //$mont        = $importe*(($iva+100)/100);
                                 //$i_islr      = $importe*$od_pr/100;
                                 //$mont        = $importe-$i_islr;
                                 $ordinal = $ocompra->get_rel('itocompra', 'ordinal', $k);
                                 $iva = $ocompra->get_rel('itocompra', 'iva', $k);
                                 if ($pasignacion > 0) {
                                     $mont = $importe;
                                 } else {
                                     $mont = $importe + $importe * $iva / 100;
                                 }
                                 $pk['codigopres'] = $codigopres;
                                 $presup->load($pk);
                                 $pagado = $presup->get("pagado");
                                 $pagado = $pagado - $mont;
                                 $presup->set("pagado", $pagado);
                                 $presup->save();
                                 if (!empty($ordinal)) {
                                     $ord->load(array("codigoadm" => $oc_codigoadm, "fondo" => $oc_fondo, "codigopres" => $codigopres, "ordinal" => $ordinal));
                                     $opa = $ord->get("pagado");
                                     $opa -= $mont;
                                     $ord->set("pagado", $opa);
                                     $ord->save();
                                 }
                                 //$islr   = new DataObject("islr");
                                 //if(!empty($islrid))
                                 //	$islr->load($islrid);
                                 //
                                 //$islr->set('status' , 'A' );
                                 //$islr->save();
                             }
                             if ($pasignacion > 0) {
                                 $pk['codigopres'] = $partidaiva;
                                 $presup->load($pk);
                                 $pagado = $presup->get("pagado");
                                 $pagado -= $ivan - $reteiva;
                                 $presup->set("pagado", $pagado);
                                 $presup->save();
                             }
                             $this->sp_presucalc($oc_codigoadm);
                             $riva->load_where('ocompra', $p_compra);
                             $riva->set('status', 'A');
                             //print_r($riva->get_all());
                             $riva->save();
                         }
                         $ocompra->set('status', 'O');
                         $ocompra->save();
                         //}
                         $odirect->set('status', 'F2');
                         $odirect->save();
                     }
                     //exit('assaas');
                 } elseif ($status == "B3" || $status == "I3") {
                     $pk = array('codigoadm' => $od_estadmin, 'tipo' => $od_fondo);
                     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
                     $pk['codigopres'] = $partidaiva;
                     $presup->load($pk);
                     $pasignacion = $presup->get("asignacion");
                     for ($g = 0; $g < $odirect->count_rel('itodirect'); $g++) {
                         $codigopres = $odirect->get_rel('itodirect', 'partida', $g);
                         $importe = $odirect->get_rel('itodirect', 'importe', $g);
                         $piva = $odirect->get_rel('itodirect', 'iva', $g);
                         $islrid = $odirect->get_rel('itodirect', 'islrid', $g);
                         echo $ordinal = $odirect->get_rel('itodirect', 'ordinal', $g);
                         $i_islr = $importe * $od_pr / 100;
                         //exit('12');
                         if ($pasignacion > 0) {
                             $mont = $importe;
                         } else {
                             $mont = $importe + $importe * $piva / 100;
                         }
                         $pk['codigopres'] = $codigopres;
                         $presup->load($pk);
                         $pagado = $presup->get("pagado");
                         $pagado = $pagado - ($mont - $i_islr);
                         $presup->set("pagado", $pagado);
                         $presup->save();
                         if (!empty($ordinal)) {
                             $ord->load(array("codigoadm" => $od_estadmin, "fondo" => $od_fondo, "codigopres" => $codigopres, "ordinal" => $ordinal));
                             print_r($ord->get_all());
                             $opa = $ord->get("pagado");
                             $opa -= $mont - $i_islr;
                             $ord->set("pagado", $opa);
                             $ord->save();
                         }
                         //exit('ww');
                     }
                     if ($status == "B3") {
                         $riva->load_where('odirect', $od_numero);
                         $riva->set('status', 'A');
                         $riva->save();
                         $ii = $od_ivaa + $od_ivag + $od_ivar - $od_reteiva;
                         if ($pasignacion > 0) {
                             $pk['codigopres'] = $partidaiva;
                             $presup->load($pk);
                             $pagado = $presup->get("pagado");
                             $pagado -= $ii;
                             $presup->set("pagado", $pagado);
                             $presup->save();
                         }
                         $odirect->set('status', 'B2');
                         $odirect->save();
                         $this->sp_presucalc($od_estadmin);
                     }
                 } elseif ($status == 'S3') {
                     $pk = array('codigoadm' => $od_estadmin, 'tipo' => $od_fondo);
                     for ($g = 0; $g < $odirect->count_rel('islr'); $g++) {
                         $islrid = '';
                         $codigopres = $odirect->get_rel('islr', 'partida', $g);
                         $i_islr = $odirect->get_rel('islr', 'islr', $g);
                         $pk['codigopres'] = $codigopres;
                         $presup->load($pk);
                         $pagado = $presup->get("pagado");
                         $pagado -= $i_islr;
                         $presup->set("pagado", $pagado);
                         $presup->save();
                         $codigopres = $odirect->set_rel('islr', 'status', 'B', $g);
                     }
                     $odirect->set('status', 'S2');
                     $odirect->save();
                     $this->sp_presucalc($codigoadm);
                 } elseif ($status == 'R3') {
                     $odirect->set('status', 'R2');
                 } elseif ($status == 'G3') {
                     $odirect->set('status', 'G2');
                 } else {
                     $error .= "<div class='alert'><p>No se puede realizar la operacion para la orden de pago ({$od_numero})</p></div>";
                 }
             }
             $odirect->save();
             //exit('hgghhgg');
             if ($status == "B2") {
                 $islr = new DataObject("islr");
                 $islrid = $do->get->islr('islrid');
                 if (!empty($islrid)) {
                     $islr->load($islrid);
                     $islr->set('status', 'A');
                     $islr->save();
                 }
             }
         } else {
             $error .= "<div class='alert'><p>Error aun no determinado</p></div>";
         }
     } else {
         $error .= "<div class='alert'><p>No se Puede Completar la operacion s</p></div>";
     }
     if (empty($error)) {
         $mbanc->set('status', 'E1');
         $mbanc->save();
         $saldo += $m_monto;
         $banc->set('saldo', $saldo);
         $banc->save();
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " " . $this->t**s . " ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #20
0
 function reversar($numero, $anular = 'N')
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $odirect = new DataObject("odirect");
     $odirect->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
     $odirect->load($numero);
     $nnumero = $odirect->get('numero');
     if ($nnumero != $numero) {
         $error .= "<div class='alert'>No se pudo cargar la orden de pago</div>";
     }
     $ostatus = $odirect->get('status');
     if ($ostatus != 'K2') {
         $error .= "<div class='alert'>No es Posible Realizar la operaci&oacute;n para la orden de pago </div>";
     }
     $nomina = $odirect->get('nomina');
     if (empty($nomina)) {
         $error .= "<div class='alert'>La orden de pago no tiene asignada alguna nomina asignada</div>";
     }
     $do = new DataObject("nomi");
     $do->rel_one_to_many('asignomi', 'asignomi', array('numero' => 'numero'));
     $do->rel_one_to_many('retenomi', 'retenomi', array('numero' => 'numero'));
     $do->load($nomina);
     echo "--" . ($status = $do->get('status'));
     if ($status != 'O') {
         $error .= "<div class='alert'>No es Posible Realizar la operaci&oacute;n para la n&oacute;mina </div>";
     }
     $status = $do->get('status');
     if (empty($error)) {
         $tasig = 0;
         $b = array();
         $error = '';
         if ($status == "O") {
             for ($i = 0; $i < $do->count_rel('asignomi'); $i++) {
                 $codigopres = $do->get_rel('asignomi', 'codigopres', $i);
                 $codigoadm = $do->get_rel('asignomi', 'codigoadm', $i);
                 $fondo = $do->get_rel('asignomi', 'fondo', $i);
                 $monto = $do->get_rel('asignomi', 'monto', $i);
                 $error .= $this->chequeapresup($codigoadm, $fondo, $codigopres, $ordinal, $monto, 0, 'round($monto,2) > round(($opago-$pagado),2)', "El Monto ({$monto}) es mayor al disponible para la partida ({$codigoadm}) ({$fondo}) ({$codigopres})");
                 //
             }
             if (empty($error)) {
                 for ($i = 0; $i < $do->count_rel('asignomi'); $i++) {
                     $codigopres = $do->get_rel('asignomi', 'codigopres', $i);
                     $codigoadm = $do->get_rel('asignomi', 'codigoadm', $i);
                     $fondo = $do->get_rel('asignomi', 'fondo', $i);
                     $monto = $do->get_rel('asignomi', 'monto', $i);
                     $error .= $this->afectapresup($codigoadm, $fondo, $codigopres, $ordinal, $monto, 0, -1, array("causado", "opago"));
                 }
                 if (empty($error)) {
                     if ($anular == 'S') {
                         $odirect->set('status', 'KA');
                         $odirect->set('fanulado', date('Ymd'));
                         $do->set('opago', '');
                         $do->set('status', 'C');
                     } else {
                         $odirect->set('status', 'K1');
                         $do->set('status', 'D');
                     }
                     $odirect->save();
                     for ($i = 0; $i < $do->count_rel('retenomi'); $i++) {
                         $do->set_rel('retenomi', 'status', 'C', $i);
                     }
                     $do->save();
                 }
             }
         } else {
             $error .= "No se puede realizar la operacion para la nomina {$numero}";
         }
     }
     if (empty($error)) {
         logusu('nomi', "Reverso Orden de Pago de nomina Nro {$numero}");
         redirect($this->url . "dataedit/show/{$numero}");
     } else {
         logusu('nomi', "Reverso Orden de Pago de nomina Nro {$numero} ERROR:{$error} ");
         $data['content'] = $error . anchor($this->url . "dataedit/show/{$numero}", 'Regresar');
         $data['title'] = " {$this->t**s} ";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #21
0
 function _actsumi($id, $oper, $status)
 {
     $this->rapyd->load('dataobject');
     $error = "";
     $do = new DataObject("suminr");
     $do->rel_one_to_many('itsuminr', 'itsuminr', array('numero' => 'numero'));
     $do->load($id);
     $caub = $do->get('caub');
     $caube = $this->db->escape($caub);
     $sta = $do->get('sta');
     if ($sta != $status) {
         for ($i = 0; $i < $do->count_rel('itsuminr'); $i++) {
             $codigo = $do->get_rel('itsuminr', 'codigo', $i);
             $cantidad = $do->get_rel('itsuminr', 'cantidad', $i);
             $precio = $do->get_rel('itsuminr', 'precio', $i);
             $cantidad = 1 * $cantidad;
             $codigo = $this->db->escape($codigo);
             $this->db->query("INSERT IGNORE INTO su_itsumi (`codigo`,`alma`) value ({$codigo},{$caube})");
             if (is_numeric($cantidad)) {
                 $this->db->query("UPDATE sumi SET existen=existen {$oper} {$cantidad},pond=pond {$oper} ({$precio}*{$cantidad}) WHERE codigo={$codigo}");
                 $this->db->simple_query("UPDATE su_itsumi SET cantidad=cantidad {$oper} {$cantidad} WHERE codigo={$codigo} AND alma={$caube}");
             } else {
                 $error .= 'La cantidad no es numerica';
             }
             //echo "UPDATE sumi SET existen=existen $oper $cantidad,pond=pond $oper $precio WHERE codigo=$codigo";
             //exit($precio);
         }
         logusu('suminr', "Marco nota de recepcion Nro {$id} como {$status}");
     } else {
         $error .= "No se puede realizar la operacion para la nota de recepcion";
     }
     if (empty($error)) {
         $do->set('status', $status);
         $do->save();
         logusu('suminr', "Marco nota de recepcion Nro {$id} como {$status}");
         redirect($this->url . "/dataedit/show/{$id}");
     } else {
         logusu('sumine', "Marco nota de recepcion Nro {$id} como {$status} . con ERROR:{$error}");
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = $this->t**s;
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #22
0
 function actualizar($id)
 {
     $this->rapyd->load('dataobject');
     $odirect = new DataObject("odirect");
     $odirect->rel_one_to_many('pacom', 'pacom', array('numero' => 'pago'));
     $odirect->load($id);
     $ocompra = new DataObject("ocompra");
     $ocompra->rel_one_to_many('pacom', 'pacom', array('numero' => 'compra'));
     $ocompra->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     $error = "";
     $sta = $odirect->get('status');
     if ($sta == "F1") {
         $ivan = 0;
         $importes = array();
         $ivas = array();
         $ordenes = array();
         $p_ivaa = $p_ivag = $p_ivar = $p_reteiva = $p_reten = $p_total = $p_exento = 0;
         for ($i = 0; $i < $odirect->count_rel('pacom'); $i++) {
             $compra = $odirect->get_rel('pacom', 'compra', $i);
             $ordenes[] = $compra;
             $ocompra->load($compra);
             $status = $ocompra->get('status');
             if ($status != 'T') {
                 $error .= "<div class='alert'><p>No se puede ordenar el pago de la orden de compra (" . str_pad($compra, 8, '0', STR_PAD_LEFT) . ") debido a que no esta causada</p></div>";
             }
             if (empty($error)) {
                 $p_ivaa += $ivaa = $ocompra->get('ivaa');
                 $p_ivag += $ivag = $ocompra->get('ivag');
                 $p_ivar += $ivar = $ocompra->get('ivar');
                 $p_reteiva += $reteiva = $ocompra->get('reteiva');
                 $p_reten += $reten = $ocompra->get('reten');
                 $p_exento += $exento = $ocompra->get('exento');
                 $reteiva_prov = $ocompra->get('reteiva_prov');
                 $creten = $ocompra->get('creten');
                 $status = $ocompra->get('status');
                 $total = $ocompra->get('total');
                 $subtotal = $ocompra->get('subtotal');
                 //$ivan           =  $ivag+$ivar+$ivaa;
                 $ivan = 0;
                 $admfondo = array();
                 for ($j = 0; $j < $ocompra->count_rel('itocompra'); $j++) {
                     $codigoadm = $ocompra->get_rel('itocompra', 'codigoadm', $j);
                     $fondo = $ocompra->get_rel('itocompra', 'fondo', $j);
                     $codigopres = $ocompra->get_rel('itocompra', 'partida', $j);
                     $importe = $ocompra->get_rel('itocompra', 'importe', $j);
                     $iva = $ocompra->get_rel('itocompra', 'iva', $j);
                     $ordinal = $ocompra->get_rel('itocompra', 'ordinal', $j);
                     $ivan = $importe * $iva / 100;
                     $error .= $this->itpartida($codigoadm, $fondo, $codigopres, $ordinal);
                     $cadena = $codigoadm . '_._' . $fondo . '_._' . $codigopres;
                     if (array_key_exists($cadena, $importes)) {
                         $importes[$cadena] += $importe;
                         //$ivas[$cadena]     =$iva;
                     } else {
                         $importes[$cadena] = $importe;
                         //$ivas[$cadena]      =$iva;
                     }
                     $cadena2 = $codigoadm . '_._' . $fondo;
                     $admfondo[$cadena2] = array_key_exists($cadena2, $admfondo) ? $admfondo[$cadena2] += $ivan : ($admfondo[$cadena2] = $ivan);
                 }
             }
         }
         //print_r($importes);
         //print_r($ivas);
         if (empty($error)) {
             //foreach($admfondo AS $cadena=>$monto){
             //	$temp  = explode('_._',$cadena);
             //	$error.=$this->chequeapresup($temp[0],$temp[1],'PARTIDAIVA','',$monto,0,'round($monto,2) > $disponible=round(($causado-$opago),2)','El Monto ($monto) es mayor al disponible (round(($disponible),2)) para ordenar pago para la partida de IVA, ('.$temp[0].')('.$temp[1].') ');
             //}
             foreach ($importes as $cadena => $monto) {
                 $temp = explode('_._', $cadena);
                 $iva = $ivas[$cadena];
                 $error .= $this->chequeapresup($temp[0], $temp[1], $temp[2], '', $monto, '', 'round($monto,2) > $disponible=round(($causado-$opago),2)', 'El Monto ($monto) es mayor al posible a ordenar pago ($disponible) para la partida (' . $temp[0] . ' (' . $temp[1] . ') (' . $temp[2] . ')');
             }
         }
         if (empty($error)) {
             foreach ($importes as $cadena => $monto) {
                 $temp = explode('_._', $cadena);
                 //$iva   = $ivas[$cadena];
                 $error .= $this->afectapresup($temp[0], $temp[1], $temp[2], '', $monto, 0, 1, array("opago"));
             }
             //if(empty($error)){
             //	foreach($admfondo AS $cadena=>$monto){
             //		$temp  = explode('_._',$cadena);
             //		$error.=$this->afectapresup($temp[0],$temp[1],'PARTIDAIVA','',$monto,0, 1 ,array("opago"));
             //	}
             //}
         }
         if (empty($error)) {
             $odirect->set('ivag', $p_ivag);
             $odirect->set('ivar', $p_ivar);
             $odirect->set('ivaa', $p_ivaa);
             $odirect->set('reten', $p_reten);
             $odirect->set('creten', $creten);
             $odirect->set('reteiva', $p_reteiva);
             $odirect->set('exento', $p_exento);
             $odirect->set('status', 'F2');
             $odirect->set('fopago', date('Ymd'));
             $odirect->save();
             $ordenes = implode("','", $ordenes);
             $this->db->simple_query("UPDATE ocompra SET status='O' WHERE numero IN ('{$ordenes}')");
         }
     } elseif ($sta == "H1") {
         for ($i = 0; $i < $odirect->count_rel('pacom'); $i++) {
             $compra = $odirect->get_rel('pacom', 'compra', $i);
             $monto = $odirect->get_rel('pacom', 'monto', $i);
             $ocompra->load($compra);
             $status = $ocompra->get('status');
             $total = $ocompra->get('total');
             $abonado = $ocompra->get('abonado');
             if ($monto > $total - $abonado) {
                 $error .= "<div class='alert'><p>El monto adeudado para la orden de Compra (" . str_pad($compra, 8, '0', STR_PAD_LEFT) . ") es menor al monto a abonar en la orden de pago</p></div>";
             }
             if ($status != 'C') {
                 $error .= "<div class='alert'><p>No se pueder ordenar el pago de la orden de compra (" . str_pad($compra, 8, '0', STR_PAD_LEFT) . ") debido a que no esta comprometida</p></div>";
             }
         }
         if (empty($error)) {
             for ($i = 0; $i < $odirect->count_rel('pacom'); $i++) {
                 $compra = $odirect->get_rel('pacom', 'compra', $i);
                 $monto = $odirect->get_rel('pacom', 'monto', $i);
                 $ocompra->load($compra);
                 $status = $ocompra->get('status');
                 $abonado = $ocompra->get('abonado');
                 $this->db->simple_query("UPDATE ocompra SET abonado=abonado+{$monto} WHERE numero={$compra}");
                 //$ocompra->save();
             }
         }
         $odirect->set('status', 'H2');
         $odirect->set('fopago', date('Ymd'));
         $odirect->save();
     } else {
         $error .= "<div class='alert'><p>No se Puede Completar la operacion s</p></div>";
     }
     if (empty($error)) {
         logusu('opago', "Actualizo Orden de Pago (de Compra) Nro {$id}");
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         logusu('opago', "Actualizo Orden de Pago (de Compra) Nro {$id}. con ERROR:{$error} ");
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " " . $this->t**s . " ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #23
0
 function anular($id)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     //exit('as');
     $do = new DataObject("desem");
     $do->rel_one_to_many('mbanc', 'mbanc', array('numero' => 'desem'));
     $do->load($id);
     $status = $do->get('status');
     if ($status == 'D1') {
         $do->set('status', 'DA');
         $do->save();
         logusu('desem', "Anulo desembolso Nro {$id}");
         redirect($this->url . "dataedit/show/{$id}");
     }
     $cod_prov = $do->get('cod_prov');
     $banc = new DataObject("banc");
     $existecaja = $this->datasis->traevalor('EXISTECAJA');
     for ($i = 0; $i < $do->count_rel('mbanc'); $i++) {
         $mstatus = $do->get_rel('mbanc', 'status', $i);
         $codbanc = $do->get_rel('mbanc', 'codbanc', $i);
         $tipo_doc = $do->get_rel('mbanc', 'tipo_doc', $i);
         $fecha = $do->get_rel('mbanc', 'fecha', $i);
         $monto = $do->get_rel('mbanc', 'monto', $i);
         $cheque = $do->get_rel('mbanc', 'cheque', $i);
         $mid = $do->get_rel('mbanc', 'id', $i);
         $concilia = $do->get_rel('mbanc', 'concilia', $i);
         //if($concilia=='S')$error.=''.($tipo_doc=='CH'?"Cheque:$cheque ya conciliado":($tipo_doc=='ND'?"Nota de Debito:$cheque ya conciliada":'')).". Por favor informe de la accion a realizar a la persona encargada de conciliaciones bancarias";
         if ($existecaja == "S") {
             $fcajrecibe = $do->get_rel('mbanc', 'fcajrecibe', $i);
             $fcajdevo = $do->get_rel('mbanc', 'fcajdevo', $i);
             if (!empty($fcajrecibe) && empty($fcajdevo)) {
                 $error .= "ERROR: el cheque ({$cheque}) del banco ({$codbanc}) se encuentra en caja";
             }
         }
         if (empty($error) && $mstatus == 'E2') {
             $banc->load($codbanc);
             $saldo = $banc->get('saldo');
             $activo = $banc->get('activo');
             $banco = $banc->get('banco');
             if ($activo != 'S') {
                 $error .= "<div class='alert'><p>El banco ({$banco}) esta inactivo</p></div>";
             }
         }
     }
     if (empty($error)) {
         $error .= $this->reverpresup($id);
     }
     if (empty($error)) {
         for ($i = 0; $i < $do->count_rel('mbanc'); $i++) {
             $mstatus = $do->get_rel('mbanc', 'status', $i);
             $codbanc = $do->get_rel('mbanc', 'codbanc', $i);
             $tipo_doc = $do->get_rel('mbanc', 'tipo_doc', $i);
             $fecha = $do->get_rel('mbanc', 'fecha', $i);
             $monto = $do->get_rel('mbanc', 'monto', $i);
             $cheque = $do->get_rel('mbanc', 'cheque', $i);
             $mid = $do->get_rel('mbanc', 'id', $i);
             $benefi = $do->get_rel('mbanc', 'benefi', $i);
             $relch = $do->get_rel('mbanc', 'relch', $i);
             if (($tipo_doc == 'CH' || $tipo_doc == 'ND') && $mstatus == 'E2') {
                 if ($this->datasis->traevalor('CREANCDIA') == 'S') {
                     if (1 * date('Ymd') != 1 * date('Ymd', strtotime($fecha))) {
                         $this->creambanc($codbanc, $monto, $cheque, 'NC', "Anulacion de cheque {$cheque}", date('Ymd'), $cod_prov, 'NC', $mid, '', $id, $benefi, 'N');
                     }
                     $this->db->query("UPDATE mbanc SET status='A2',anulado='" . date('Ymd') . "',fliable='" . date('Ymd') . "' WHERE id={$mid}");
                 } elseif ($this->datasis->traevalor('CREANCRELCH') == 'S' and strlen($relch) > 0) {
                     $this->creambanc($codbanc, $monto, $cheque, 'NC', "Anulacion de cheque {$cheque}", date('Ymd'), $cod_prov, 'NC', $mid, '', $id, $benefi, 'N');
                     $this->db->query("UPDATE mbanc SET status='A2',anulado='" . date('Ymd') . "',fliable='" . date('Ymd') . "' WHERE id={$mid}");
                 } elseif (1 * date('m') != 1 * date('m', strtotime($fecha))) {
                     $this->creambanc($codbanc, $monto, $cheque, 'NC', "Anulacion de cheque {$cheque}", date('Ymd'), $cod_prov, 'NC', $mid, '', $id, $benefi, 'N');
                     $this->db->query("UPDATE mbanc SET status='A2',anulado='" . date('Ymd') . "',fliable='" . date('Ymd') . "' WHERE id={$mid}");
                 } else {
                     $this->db->query("UPDATE mbanc SET status='AN',anulado='" . date('Ymd') . "' WHERE id={$mid}");
                 }
                 //$do->set_rel('mbanc','status' ,'AN'          ,$i  );
                 //$do->set_rel('mbanc','anulado',date('Ymd')   ,$i  );
                 $banc->load($codbanc);
                 $saldo = $banc->get('saldo');
                 $saldo += $monto;
                 $banc->set('saldo', $saldo);
                 $banc->save();
             }
         }
         //exit('hello world');
     }
     if (empty($error)) {
         //$do->set('status','DA');
         //$do->save();
         $this->db->simple_query("UPDATE desem SET status='DA' WHERE numero={$id}");
         logusu('desem', "Anulo desembolso Nro {$id}");
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         logusu('desem', "anulo desembolso Nro {$id} con error {$error}");
         $data['content'] = "<div class='alert'>" . $error . "</div>" . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = "{$this->t**s}";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #24
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("ocompra");
     $do->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     $do->load($id);
     $odirect = $do->get("odirect");
     $do2 = new DataObject("odirect");
     $do2->load($odirect);
     $status = $do2->get('status');
     $error = "";
     $codigoadm = $do->get('estadmin');
     $fondo = $do->get('fondo');
     $numero = $do->get('numero');
     $presup = new DataObject("presupuesto");
     $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo);
     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
     $pk['codigopres'] = $partidaiva;
     $presup->load($pk);
     if (empty($error)) {
         $sta = $do->get('status');
         if ($sta == "O" and $status == "O") {
             //for($i=0;$i < $do->count_rel('itocompra');$i++){
             //	$codigopres  = $do->get_rel('itocompra','partida',$i);
             //	$importe     = $do->get_rel('itocompra','importe',$i);
             //
             //	$pk['codigopres'] = $codigopres;
             //	$presup->load($pk);
             //
             //	$causado =$presup->get("causado");
             //
             //	//if($importe > $causado)
             //	//	$error.="<div class='alert'><p>No se Puede Completar la Transaccion debido a que el monto de la orden de pago ($importe) es mayor al monto causado($causado) para la partida: $codigopres</p></div>";
             //}
             if (empty($error)) {
                 for ($i = 0; $i < $do->count_rel('itocompra'); $i++) {
                     $codigopres = $do->get_rel('itocompra', 'partida', $i);
                     $importe = $do->get_rel('itocompra', 'importe', $i);
                     $iva = $do->get_rel('itocompra', 'iva', $i);
                     //$mont        = $importe*(($iva+100)/100);
                     $mont = $importe;
                     $pk['codigopres'] = $codigopres;
                     $presup->load($pk);
                     $opago = $presup->get("opago");
                     $opago = $opago - $mont;
                     $presup->set("opago", $opago);
                     $presup->save();
                 }
                 $ivaa = $do->get('ivaa');
                 $ivag = $do->get('ivag');
                 $ivar = $do->get('ivar');
                 $ivan = $ivag + $ivar + $ivaa;
                 $pk['codigopres'] = $partidaiva;
                 $presup->load($pk);
                 $opago = $presup->get("opago");
                 $opago -= $ivan;
                 $presup->set("opago", $opago);
                 $presup->save();
                 $do->set('status', 'T');
                 $do->save();
                 $do2->set('status', 'T');
                 $do2->save();
             }
         } else {
             $error .= "<div class='alert'><p>No se Puede Completar la operacion</p></div>";
         }
     }
     if (empty($error)) {
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " " . $this->t**s . " ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #25
0
 function actualizar($id)
 {
     $this->rapyd->load('dataobject');
     $ord = new DataObject("ordinal");
     $do = new DataObject("odirect");
     $do->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
     $do->load($id);
     $error = "";
     $codigoadm = $do->get('estadmin');
     $fondo = $do->get('fondo');
     $multiple = $do->get('multiple');
     $factura = $do->get('factura');
     $controlfac = $do->get('controlfac');
     $fechafac = $do->get('fechafac');
     $reteiva = $do->get('reteiva');
     if ($multiple == 'N') {
         if ($reteiva > 0 && (empty($factura) || empty($controlfac) || empty($fechafac))) {
             $error .= "<div class='alert'><p> Los campos Nro. Factura, Nro Control y Fecha factura no pueden estar en blanco</p></div>";
         }
     } else {
         $facs = $this->datasis->dameval("SELECT COUNT(*) FROM itfac WHERE numero={$id} ");
         if ($facs <= 0) {
             $error .= "<div class='alert'><p> Debe ingresar las factura por el modulo de factura multiple primero</p></div>";
         }
     }
     $presup = new DataObject("presupuesto");
     $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo);
     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
     $pk['codigopres'] = $partidaiva;
     $presup->load($pk);
     $asignacion = $presup->get("asignacion");
     $pasignacion = $presup->get("asignacion");
     $aumento = $presup->get("aumento");
     $disminucion = $presup->get("disminucion");
     $traslados = $presup->get("traslados");
     $comprometido = $presup->get("comprometido");
     //print_r($presup->get_all());
     //
     //echo $pasignacion;
     //exit('assasa');
     if ($pasignacion > 0) {
         $disp = $asignacion + $aumento - $disminucion + $traslados - $comprometido;
         $ivaa = $do->get('ivaa');
         $ivag = $do->get('ivag');
         $ivar = $do->get('ivar');
         $iva = $do->get('iva');
         $reteiva = $do->get('reteiva');
         $ivan = $ivag + $ivar + $ivaa + $iva;
         if ($ivan > $disp) {
             $error .= "<div class='alert'><p>El monto de iva ({$ivan}) de la orden de pago directa, es mayor al monto disponible ({$disp}) para la partida de iva ({$partidaiva})</p></div>";
         }
     }
     if (empty($error)) {
         $sta = $do->get('status');
         if ($sta == "B1") {
             for ($i = 0; $i < $do->count_rel('itodirect'); $i++) {
                 $codigopres = $do->get_rel('itodirect', 'partida', $i);
                 $piva = $do->get_rel('itodirect', 'iva', $i);
                 $importe = $do->get_rel('itodirect', 'importe', $i);
                 $ordinal = $do->get_rel('itodirect', 'ordinal', $i);
                 if ($pasignacion > 0) {
                     $mont = $importe;
                 } else {
                     $mont = $importe + $importe * $piva / 100;
                 }
                 //echo $mont;
                 //exit();
                 $pk['codigopres'] = $codigopres;
                 $presup->load($pk);
                 $asignacion = $presup->get("asignacion");
                 $aumento = $presup->get("aumento");
                 $disminucion = $presup->get("disminucion");
                 $traslados = $presup->get("traslados");
                 $comprometido = $presup->get("comprometido");
                 $disponible = $asignacion + $aumento - $disminucion + $traslados - $comprometido;
                 //if($mont > $disponible){
                 //	$error.="<div class='alert'><p>No se Puede Completar la Transaccion debido a que el monto de la $this->t**s ($mont) es mayor al monto disponible($disponible) para la partida: $codigopres</p></div>";
                 //}
                 if (!empty($ordinal)) {
                     //echo "codigoadm:".$codigoadm." fondo:".$fondo." codigopres:".$codigopres." ordinal:".$ordinal."</br>";
                     $ord->load(array("codigoadm" => $codigoadm, "fondo" => $fondo, "codigopres" => $codigopres, "ordinal" => $ordinal));
                     //print_r($ord->get_all());
                     $asignacion = $ord->get("asignacion");
                     $aumento = $ord->get("aumento");
                     $disminucion = $ord->get("disminucion");
                     $traslados = $ord->get("traslados");
                     $comprometido = $ord->get("comprometido");
                     $disponible = $asignacion + $aumento - $disminucion + $traslados - $comprometido;
                     if ($mont > $disponible) {
                         $error .= "<div class='alert'><p>No se Puede Completar la Transaccion debido a que el monto ({$mont}) de la orden de pago directo ({$id})   es mayor al monto disponible({$disponible}) para la partida: {$codigopres} y el ordinal ({$ordinal})</p></div>";
                     }
                 }
             }
             if (empty($error)) {
                 for ($i = 0; $i < $do->count_rel('itodirect'); $i++) {
                     $codigopres = $do->get_rel('itodirect', 'partida', $i);
                     $piva = $do->get_rel('itodirect', 'iva', $i);
                     $importe = $do->get_rel('itodirect', 'importe', $i);
                     $ordinal = $do->get_rel('itodirect', 'ordinal', $i);
                     if ($pasignacion > 0) {
                         $mont = $importe;
                     } else {
                         $mont = $importe + $importe * $piva / 100;
                     }
                     //exit($mont);
                     $pk['codigopres'] = $codigopres;
                     $presup->load($pk);
                     $comprometido = $presup->get("comprometido");
                     $causado = $presup->get("causado");
                     $opago = $presup->get("opago");
                     $comprometido += $mont;
                     $causado += $mont;
                     $opago += $mont;
                     $presup->set("comprometido", $comprometido);
                     $presup->set("causado", $causado);
                     $presup->set("opago", $opago);
                     $presup->save();
                     if (!empty($ordinal)) {
                         $ord->load(array("codigoadm" => $codigoadm, "fondo" => $fondo, "codigopres" => $codigopres, "ordinal" => $ordinal));
                         $compr = $ord->get("comprometido");
                         $cau = $ord->get("causado");
                         $opa = $ord->get("opago");
                         $compr += $mont;
                         $cau += $mont;
                         $opa += $mont;
                         $ord->set("comprometido", $compr);
                         $ord->set("causado", $cau);
                         $ord->set("opago", $opa);
                         $ord->save();
                     }
                 }
                 if ($pasignacion > 0) {
                     $pk['codigopres'] = $partidaiva;
                     $presup->load($pk);
                     $comprometido = $presup->get("comprometido");
                     $causado = $presup->get("causado");
                     $opago = $presup->get("opago");
                     $comprometido += $ivan - $reteiva;
                     $causado += $ivan - $reteiva;
                     $opago += $ivan - $reteiva;
                     $presup->set("comprometido", $comprometido);
                     $presup->set("causado", $causado);
                     $presup->set("opago", $opago);
                     //echo "aca";
                     $presup->save();
                 }
                 $do->set('status', 'B2');
                 $do->save();
             }
         }
     }
     $this->sp_presucalc($codigoadm);
     if (empty($error)) {
         logusu('odirect', "Actualizo Orden de Pago Directo Nro {$id}");
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         logusu('odirect', "Actualizo Orden de Pago Directo Nro {$id}. con ERROR:{$error} ");
         $data['content'] = $error . anchor($this->url . "dataedit/show/{$id}", 'Regresar');
         $data['title'] = " {$this->t**s} ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #26
0
 function presup($id, $accion)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("reinte");
     $do->rel_one_to_many('itreinte', 'itreinte', array('numero' => 'numero'));
     $do->load($id);
     $status = $do->get('status');
     $error = '';
     $factor = 1;
     $formula = 'round($monto,2) > $disponible = ';
     switch ($accion) {
         case 'F2':
             $factor = -1;
             $campo = array('pagado', 'opago', 'causado', 'comprometido');
             $formula .= 'round($pagado,2)';
             if ($status != 'P') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'E2':
             $factor = -1;
             $campo = array('pagado');
             $formula .= 'round($pagado,2)';
             if ($status != 'P') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'O2':
             $factor = -1;
             $campo = array('opago');
             $formula .= 'round($opago-$pagado,2)';
             if ($status != 'E2' && $status != 'O1') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'T2':
             $factor = -1;
             $campo = array('causado');
             $formula .= 'round($causado-$opago,2)';
             if ($status != 'O2' && $status != 'T1') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'C2':
             $factor = -1;
             $campo = array('comprometido');
             $formula .= 'round($comprometido-$causado,2)';
             if ($status != 'T2' && $status != 'C1') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'E1':
             $factor = 1;
             $campo = array('pagado');
             $formula .= 'round($opago-$pagado)';
             if ($status != 'E2' && $status != 'O1') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'O1':
             $factor = 1;
             $campo = array('opago');
             $formula .= 'round($causado-$opago,2)';
             if ($status != 'O2' && $status != 'T1') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'T1':
             $factor = 1;
             $campo = array('causado');
             $formula .= 'round($comprometido-$causado,2)';
             if ($status != 'T2' && $status != 'C1') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'C1':
             $factor = 1;
             $campo = array('comprometido');
             $formula .= 'round($presupuesto-$comprometido,2)';
             if ($status != 'C2') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
         case 'F1':
             $factor = 1;
             $campo = array('pagado', 'opago', 'causado', 'comprometido');
             $formula .= 'round($presupuesto-$comprometido,2)';
             if ($status != 'C2') {
                 $error .= 'ERROR. No puede realizar la operacion para el documento en este momento.';
             }
             break;
     }
     if (empty($error)) {
         for ($i = 0; $i < $do->count_rel('itreinte'); $i++) {
             $codigopres = $do->get_rel('itreinte', 'codigopres', $i);
             $monto = $do->get_rel('itreinte', 'monto', $i);
             $ordinal = $do->get_rel('itreinte', 'ordinal', $i);
             $codigoadm = $do->get_rel('itreinte', 'codigoadm', $i);
             $fondo = $do->get_rel('itreinte', 'fondo', $i);
             $error .= $this->chequeapresup($codigoadm, $fondo, $codigopres, $ordinal, $monto, 0, $formula, $formula . " {$fondo} {$codigoadm} {$codigopres}");
         }
         if (empty($error)) {
             if ($accion == 'E2' || $accion == 'F2') {
                 if (strpos($id, '_') === 0) {
                     $contador = $this->datasis->fprox_numero('nreinte');
                     $do->set('numero', $contador);
                     $id = $contador;
                 }
             }
             for ($i = 0; $i < $do->count_rel('itreinte'); $i++) {
                 if ($accion == 'E2' || $accion == 'F2') {
                     $do->set_rel('itreinte', 'id', '', $i);
                     $do->set_rel('itreinte', 'numero', $contador, $i);
                 }
                 $codigopres = $do->get_rel('itreinte', 'codigopres', $i);
                 $monto = $do->get_rel('itreinte', 'monto', $i);
                 $ordinal = $do->get_rel('itreinte', 'ordinal', $i);
                 $codigoadm = $do->get_rel('itreinte', 'codigoadm', $i);
                 $fondo = $do->get_rel('itreinte', 'fondo', $i);
                 $error .= $this->afectapresup($codigoadm, $fondo, $codigopres, $ordinal, $monto, 0, $factor, $campo);
             }
             if (empty($error)) {
                 if ($accion == 'F2') {
                     $accion = 'C2';
                 } elseif ($accion == 'F1') {
                     $accion = 'C1';
                 }
                 $do->set('status', $accion);
                 $do->save();
             }
         }
     } else {
         $error = "<div class='alert'><p>{$error}</p></div>";
     }
     if (empty($error)) {
         logusu('audis', "actualizo {$campo} numero {$id}");
         redirect($this->url . "/dataedit/show/{$id}");
     } else {
         logusu('audis', "actualizo {$campo} numero {$id} con error {$error}");
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " Aumentos y Disminuciones ";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #27
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("odirect");
     $do->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
     $do->load($id);
     $error = "";
     $codigoadm = $do->get('estadmin');
     $fondo = $do->get('fondo');
     $presup = new DataObject("presupuesto");
     $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo);
     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
     //$pk['codigopres'] = $partidaiva;
     //$presup->load($pk);
     //
     //$asignacion   =$presup->get("asignacion");
     //$aumento      =$presup->get("aumento");
     //$disminucion  =$presup->get("disminucion");
     //$traslados    =$presup->get("traslados");
     //$comprometido =$presup->get("comprometido");
     //$disp=(($asignacion+$aumento-$disminucion)+($traslados))-$comprometido;
     //
     $ivaa = $do->get('ivaa');
     $ivag = $do->get('ivag');
     $ivar = $do->get('ivar');
     $iva = $do->get('iva');
     $ivan = $ivag + $ivar + $ivaa + $iva;
     //if($ivan > $disp)
     //	$error.="<div class='alert'><p>El monto de iva ($ivan) de la orden de pago directa, es mayor al monto disponible ($disp) para la partida de iva ($partidaiva)</p></div>";
     if (empty($error)) {
         $sta = $do->get('status');
         if ($sta == "B2") {
             //for($i=0;$i  < $do->count_rel('itodirect');$i++){
             //
             //	$codigopres  = $do->get_rel('itodirect','partida',$i);
             //	$piva        = $do->get_rel('itodirect','iva'    ,$i);
             //
             //	if($piva=2222){
             //		$subt        = $do->get_rel('itodirect','subt'   ,$i);
             //		$mont        = $subt;
             //	}else{
             //		$importe     = $do->get_rel('itodirect','importe',$i);
             //		$mont        = $importe;
             //	}
             //
             //	$pk['codigopres'] = $codigopres;
             //
             //	$presup->load($pk);
             //	$asignacion   =$presup->get("asignacion");
             //	$aumento      =$presup->get("aumento");
             //	$disminucion  =$presup->get("disminucion");
             //	$traslados    =$presup->get("traslados");
             //	$comprometido =$presup->get("comprometido");
             //
             //	$disponible=(($asignacion+$aumento-$disminucion)+($traslados))-$comprometido;
             //	if($mont > $disponible){
             //		$error.="<div class='alert'><p>No se Puede Completar la Transaccion debido a que el monto de la $this->t**s ($mont) es mayor al monto disponible($disponible) para la partida: $codigopres</p></div>";
             //	}
             //}
             if (empty($error)) {
                 for ($i = 0; $i < $do->count_rel('itodirect'); $i++) {
                     $codigopres = $do->get_rel('itodirect', 'partida', $i);
                     $piva = $do->get_rel('itodirect', 'iva', $i);
                     if ($piva == 2222) {
                         $subt = $do->get_rel('itodirect', 'subt', $i);
                         $mont = $subt;
                     } else {
                         $importe = $do->get_rel('itodirect', 'importe', $i);
                         $mont = $importe;
                     }
                     $pk['codigopres'] = $codigopres;
                     $presup->load($pk);
                     $comprometido = $presup->get("comprometido");
                     $causado = $presup->get("causado");
                     $opago = $presup->get("opago");
                     $comprometido -= $mont;
                     $causado -= $mont;
                     $opago -= $mont;
                     $presup->set("comprometido", $comprometido);
                     $presup->set("causado", $causado);
                     $presup->set("opago", $opago);
                     $presup->save();
                 }
                 $pk['codigopres'] = $partidaiva;
                 $presup->load($pk);
                 $comprometido = $presup->get("comprometido");
                 $causado = $presup->get("causado");
                 $opago = $presup->get("opago");
                 $comprometido -= $ivan;
                 $causado -= $ivan;
                 $opago -= $ivan;
                 $presup->set("comprometido", $comprometido);
                 $presup->set("causado", $causado);
                 $presup->set("opago", $opago);
                 $presup->save();
                 $do->set('status', 'B1');
                 $do->save();
             }
         }
     }
     if (empty($error)) {
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         $data['content'] = $error . anchor($this->url . "dataedit/show/{$id}", 'Regresar');
         $data['title'] = " {$this->t**s} ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #28
0
 function reverpresup($pago)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $ord = new DataObject("ordinal");
     //$mbanc     =  new DataObject("mbanc");
     //$mbanc     -> rel_one_to_many('pambanc', 'pambanc', array('id'=>'mbanc'));
     //$mbanc     -> load($id);
     //$pago      =  $mbanc->get_rel('pambanc','pago'   );
     //$codbanc   =  $mbanc->get_rel('pambanc','codbanc');
     $odirect = new DataObject("odirect");
     //$odirect -> rel_one_to_many('pacom'    , 'pacom'    , array('numero'=>'pago'));
     //$odirect -> rel_one_to_many('itodirect', 'itodirect', array('numero'=>'numero'));
     //$odirect -> rel_one_to_many('itfac'    , 'itfac'    , array('numero'=>'numero'));
     $odirect->load($pago);
     $status = $odirect->get('status');
     $fechafac = $odirect->get('fechafac');
     $controlfac = $odirect->get('controlfac');
     $cod_prov = $odirect->get('cod_prov');
     $exento = $odirect->get('exento');
     $tivag = $odirect->get('tivag');
     $mivag = $odirect->get('mivag');
     $ivag = $odirect->get('ivag');
     $tivaa = $odirect->get('tivaa');
     $mivag = $odirect->get('mivag');
     $ivaa = $odirect->get('ivaa');
     $tivar = $odirect->get('tivar');
     $mivar = $odirect->get('mivar');
     $ivar = $odirect->get('ivar');
     $subtotal = $odirect->get('subtotal');
     $reteiva = $odirect->get('reteiva');
     $reteiva_prov = $odirect->get('reteiva_prov');
     $codigoadm = $odirect->get('estadmin');
     $fondo = $odirect->get('fondo');
     $ocompra = new DataObject("ocompra");
     $ocompra->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     $presup = new DataObject("presupuesto");
     $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
     if ($status == "F3") {
         $odirect = new DataObject("odirect");
         $odirect->rel_one_to_many('pacom', 'pacom', array('numero' => 'pago'));
         $odirect->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
         $odirect->rel_one_to_many('itfac', 'itfac', array('numero' => 'numero'));
         $odirect->load($pago);
         for ($g = 0; $g < $odirect->count_rel('pacom'); $g++) {
             $p_t = $odirect->get_rel('pacom', 'total', $g);
             $p_compra = $odirect->get_rel('pacom', 'compra', $g);
             $ocompra->load($p_compra);
             $codigoadm = $ocompra->get('estadmin');
             $fondo = $ocompra->get('fondo');
             $status = $ocompra->get('status');
             $creten = $ocompra->get('creten');
             $fechafac = $ocompra->get('fechafac');
             $factura = $ocompra->get('factura');
             $controlfac = $ocompra->get('contofac');
             $exento = $ocompra->get('exento');
             $tivaa = $ocompra->get('tivaa');
             $tivag = $ocompra->get('tivag');
             $tivar = $ocompra->get('tivar');
             $ivaa = $ocompra->get('ivaa');
             $ivag = $ocompra->get('ivag');
             $ivar = $ocompra->get('ivar');
             $mivaa = $ocompra->get('mivaa');
             $mivag = $ocompra->get('mivag');
             $mivar = $ocompra->get('mivar');
             $subtotal = $ocompra->get('subtotal');
             $reteiva = $ocompra->get('reteiva');
             $tislr = $reten = $ocompra->get('reten');
             $total = $ocompra->get('total');
             $reteiva_prov = $ocompra->get('reteiva_prov');
             $ivan = $ivag + $ivar + $ivaa;
             if (true) {
                 //$total==$pagado
                 $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo, 'codigopres' => $partidaiva);
                 $presup->load($pk);
                 $pasignacion = $presup->get("asignacion");
                 $totiva = 0;
                 for ($k = 0; $k < $ocompra->count_rel('itocompra'); $k++) {
                     $islrid = '';
                     $codigopres = $ocompra->get_rel('itocompra', 'partida', $k);
                     $importe = $ocompra->get_rel('itocompra', 'importe', $k);
                     $iva = $ocompra->get_rel('itocompra', 'iva', $k);
                     $ordinal = $ocompra->get_rel('itocompra', 'ordinal', $k);
                     if ($pasignacion > 0) {
                         $mont = $importe;
                         $totiva += $importe * $iva / 100;
                     } else {
                         $mont = $importe + $importe * $iva / 100;
                     }
                     $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo, 'codigopres' => $codigopres);
                     $presup->load($pk);
                     $pagado = $presup->get("pagado");
                     $pagado = $pagado - $mont;
                     $presup->set("pagado", $pagado);
                     $presup->save();
                     if (!empty($ordinal)) {
                         $apk = array("codigoadm" => $codigoadm, "fondo" => $fondo, "codigopres" => $codigopres, "ordinal" => $ordinal);
                         $ord->load($pk);
                         $pagago = $ord->get("pagado");
                         $pagago -= $mont;
                         $ord->set("pagado", $pagado);
                         $ord->save();
                     }
                 }
                 if ($pasignacion > 0) {
                     $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo, 'codigopres' => $partidaiva);
                     $presup->load($pk);
                     $pagado = $presup->get("pagado");
                     $pagado -= $totiva;
                     $presup->set("pagado", $pagado);
                     $presup->save();
                 }
                 if ($reteiva > 0) {
                     $this->riva_an($p_compra, $pago, $itfact = '');
                 }
                 $ocompra->set('status', 'O');
                 $ocompra->save();
                 $this->sp_presucalc($codigoadm);
             }
         }
         $odirect->set('status', 'F2');
         $odirect->save();
         //$this->po_anular($pago,false);
     } elseif ($status == "B3") {
         //$odirect = new DataObject("odirect");
         ////$odirect -> rel_one_to_many('pacom'    , 'pacom'    , array('numero'=>'pago'));
         //$odirect -> rel_one_to_many('itodirect', 'itodirect', array('numero'=>'numero'));
         ////$odirect -> rel_one_to_many('itfac'    , 'itfac'    , array('numero'=>'numero'));
         //
         //$odirect ->load($pago);
         $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo, 'codigopres' => $partidaiva);
         $presup->load($pk);
         $pasignacion = $presup->get("asignacion");
         $totiva = 0;
         for ($g = 0; $g < $odirect->count_rel('itodirect'); $g++) {
             $codigopres = $odirect->get_rel('itodirect', 'partida', $g);
             $importe = $odirect->get_rel('itodirect', 'importe', $g);
             $iva = $odirect->get_rel('itodirect', 'iva', $g);
             $ordinal = $odirect->get_rel('itodirect', 'ordinal', $g);
             if ($pasignacion > 0) {
                 $mont = $importe;
                 $totiva += $importe * $iva / 100;
             } else {
                 $mont = $importe + $importe * $iva / 100;
             }
             $pk = array("codigoadm" => $codigoadm, "tipo" => $fondo, "codigopres" => $codigopres);
             $presup->load($pk);
             $pagado = $presup->get("pagado");
             $pagado = $pagado - $mont;
             $presup->set("pagado", $pagado);
             $presup->save();
             if (!empty($ordinal)) {
                 $ord->load(array("codigoadm" => $codigoadm, "fondo" => $fondo, "codigopres" => $codigopres, "ordinal" => $ordinal));
                 $pagado = $ord->get("pagado");
                 $pagado -= $mont;
                 $ord->set("pagado", $pagado);
                 $ord->save();
             }
         }
         if ($reteiva > 0) {
             if ($odirect->get('multiple') == 'N') {
                 $this->riva_an('', $pago, $itfact = '');
             } elseif ($odirect->get('multiple') == 'S') {
                 //$odirect = new DataObject("odirect");
                 ////$odirect -> rel_one_to_many('pacom'    , 'pacom'    , array('numero'=>'pago'));
                 ////$odirect -> rel_one_to_many('itodirect', 'itodirect', array('numero'=>'numero'));
                 //$odirect -> rel_one_to_many('itfac'    , 'itfac'    , array('numero'=>'numero'));
                 //
                 //$odirect ->load($pago);
                 for ($l = 0; $l < $odirect->count_rel('itfac'); $l++) {
                     $iditfac = $odirect->get_rel('itfac', 'id', $l);
                     $factura = $odirect->get_rel('itfac', 'factura', $l);
                     $fechafac = $odirect->get_rel('itfac', 'fechafac', $l);
                     $controlfac = $odirect->get_rel('itfac', 'controlfac', $l);
                     $exento = $odirect->get_rel('itfac', 'exento', $l);
                     $ivag = $odirect->get_rel('itfac', 'ivag', $l);
                     $ivaa = $odirect->get_rel('itfac', 'ivaa', $l);
                     $ivar = $odirect->get_rel('itfac', 'ivar', $l);
                     $reteiva = $odirect->get_rel('itfac', 'reteiva', $l);
                     $mivag = $ivag * 100 / $tivag;
                     $mivar = $ivar * 100 / $tivar;
                     $mivaa = $ivaa * 100 / $tivaa;
                     if ($reteiva > 0) {
                         $this->riva_an('', $pago, $iditfac);
                     }
                 }
             }
         }
         if ($pasignacion > 0) {
             $pk['codigopres'] = $partidaiva;
             $presup->load($pk);
             $pagado = $presup->get("pagado");
             $pagado -= $totiva;
             $presup->set("pagado", $pagado);
             $presup->save();
         }
         $odirect->set('status', 'B2');
         $odirect->save();
         //$this->op_anular($pago,false);
         $this->sp_presucalc($codigoadm);
     } elseif ($status == "I3") {
         $odirect->set('status', 'I2');
         $odirect->save();
     } elseif ($status == "M3") {
         $odirect->set('status', 'M2');
         $odirect->save();
     } elseif ($status == 'S3') {
         $odirect->set('status', 'S2');
         $odirect->save();
     } elseif ($status == 'R3') {
         $odirect->set('status', 'R2');
         $odirect->save();
     } elseif ($status == 'G3') {
         $odirect->set('status', 'G2');
         $odirect->save();
     } elseif ($status == 'H3') {
         $odirect->set('status', 'H2');
         $odirect->save();
     } elseif ($status == 'O3') {
         $obr = $odirect->get('obr');
         $iva = $odirect->get('iva');
         $total2 = $odirect->get('total2');
         $amortiza = $odirect->get('amortiza');
         $mont = $total2 - $amortiza;
         $obra = new DataObject("obra");
         $obra->load($obr);
         $codigoadm = $obra->get('codigoadm');
         $fondo = $obra->get('fondo');
         $codigopres = $obra->get('codigopres');
         $ordinal = $obra->get('ordinal');
         $pk = array("codigoadm" => $codigoadm, "tipo" => $fondo, "codigopres" => $codigopres);
         $presup->load($pk);
         $pag = $presup->get("pagado");
         $pag -= $mont;
         $presup->set("pagado", $pag);
         $presup->save();
         if (!empty($ordinal)) {
             $pk = array("codigoadm" => $codigoadm, "fondo" => $fondo, "codigopres" => $codigopres, "ordinal" => $ordinal);
             $ord->load($pk);
             $pagado = $ord->get("pagado");
             $pagado -= $mont;
             $ord->set("pagado", $pagado);
             $ord->save();
         }
         if ($reteiva > 0) {
             $this->riva_an('', $pago, $itfact = '');
         }
         $odirect->set('status', 'O2');
         $odirect->save();
         //$this->po_anular($pago,false);
     } else {
     }
     //$this->sp_presucalc($codigoadm);
 }
Example #29
0
 function reversar($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("odirect");
     $do->rel_one_to_many('itodirect', 'itodirect', array('numero' => 'numero'));
     $do->load($id);
     $sta = $do->get('status');
     if ($sta == 'C') {
         $codigoadm = $do->get('estadmin');
         $fondo = $do->get('fondo');
         $presup = new DataObject("presupuesto");
         $pk = array('codigoadm' => $codigoadm, 'tipo' => $fondo);
         $error = '';
         $tiva = 0;
         for ($i = 0; $i < $do->count_rel('itodirect'); $i++) {
             $codigopres = $do->get_rel('itodirect', 'partida', $i);
             $importe = $do->get_rel('itodirect', 'importe', $i);
             $iva = $do->get_rel('itodirect', 'iva', $i);
             $m = $importe * (($iva + 100) / 100) - $importe;
             $tiva += $m;
             $mont = $importe;
             $pk['codigopres'] = $codigopres;
             $presup->load($pk);
             $comprometido = $presup->get("comprometido");
             $causado = $presup->get("causado");
             $opago = $presup->get("opago");
             $pagado = $presup->get("pagado");
             $comprometido -= $mont;
             $causado -= $mont;
             $opago -= $mont;
             $pagado -= $mont;
             $presup->set("comprometido", $comprometido);
             $presup->set("causado", $causado);
             $presup->set("opago", $opago);
             $presup->set("pagado", $pagado);
             $presup->save();
         }
         $partidaiva = $this->datasis->traevalor("PARTIDAIVA");
         $pk['codigopres'] = $partidaiva;
         $presup->load($pk);
         $comprometido = $presup->get("comprometido");
         $causado = $presup->get("causado");
         $opago = $presup->get("opago");
         $pagado = $presup->get("pagado");
         $comprometido -= $tiva;
         $causado -= $tiva;
         $opago -= $tiva;
         $pagado -= $tiva;
         $presup->set("comprometido", $comprometido);
         $presup->set("causado", $causado);
         $presup->set("opago", $opago);
         $presup->set("pagado", $pagado);
         $presup->save();
         $do->set('status', 'P');
         $do->save();
     }
     redirect($this->url . "/dataedit/show/{$id}");
 }
Example #30
0
 function reversar($numero)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("econo");
     $do->rel_one_to_many('itecono', 'itecono', array('numero' => 'numero'));
     $do->load($numero);
     $sta = $do->get('status');
     $error = '';
     if ($sta == 'C') {
         for ($i = 0; $i < $do->count_rel('itecono'); $i++) {
             $codigopres = $do->get_rel('itecono', 'codigopres', $i);
             $monto = $do->get_rel('itecono', 'monto', $i);
             $codigoadm = $do->get_rel('itecono', 'codigoadm', $i);
             $fondo = $do->get_rel('itecono', 'fondo', $i);
             $error .= $this->chequeapresup($codigoadm, $fondo, $codigopres, null, $monto, 0, 'round($monto,2) > round(($presupuesto-$comprometido),2)', "El Monto ({$monto}) es mayor al MONTO DISPONIBLE para la partida ({$codigoadm}) ({$fondo}) ({$codigopres})");
         }
         if (empty($error)) {
             for ($i = 0; $i < $do->count_rel('itecono'); $i++) {
                 $codigopres = $do->get_rel('itecono', 'codigopres', $i);
                 $monto = $do->get_rel('itecono', 'monto', $i);
                 $codigoadm = $do->get_rel('itecono', 'codigoadm', $i);
                 $fondo = $do->get_rel('itecono', 'fondo', $i);
                 $error .= $this->afectapresup($codigoadm, $fondo, $codigopres, null, $monto, 0, 1, array('comprometido'));
             }
             if (empty($error)) {
                 $do->set('status', 'P');
                 $do->save();
             }
         }
     } else {
         $error .= "<div class='alert'><p>No se puede realizar la operacion para esta economia</p></div>";
     }
     if (empty($error)) {
         logusu('econo', "reverso economia numero {$numero}");
         redirect($this->url . "/dataedit/show/{$numero}");
     } else {
         logusu('econo', "reverso economia numero {$numero} con error {$error}");
         $data['content'] = $error . anchor($this->url . "/dataedit/show/{$numero}", 'Regresar');
         $data['title'] = " Economias ";
         $data["head"] = $this->rapyd->get_head();
         $this->load->view('view_ventanas', $data);
     }
 }