function actualizar($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')); $odirect->pointer('sprv', 'sprv.proveed = odirect.cod_prov', 'sprv.nomfis as nom_prov, sprv.rif as rif_prov', 'LEFT'); $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"); //$islr = new DataObject("islr"); $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 == "E1") { $mbanc->set('status', 'E2'); $m_benefi = $mbanc->get('benefi'); $t = 0; if (empty($error)) { $tislr = 0; 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); //print_r($odirect->get_all()); $status = $odirect->get('status'); $od_numero = $odirect->get('numero'); $od_estadmin = $odirect->get('estadmin'); $od_fondo = $odirect->get('fondo'); $od_subtotal = $odirect->get('subtotal'); $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_fechafac = $odirect->get('fechafac'); $od_cod_prov = $odirect->get('cod_prov'); $od_creten = $odirect->get('creten'); $od_pr = $od_reten * 100 / $od_subtotal; if ($status == "F2") { 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'); $oc_cod_prov = $ocompra->get('cod_prov'); $oc_creten = $ocompra->get('creten'); $oc_fechafac = $ocompra->get('fechafac'); $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'); $impmunicipal = $ocompra->get('imptimbre'); $imptimbre = $ocompra->get('impmunicipal'); $tislr = $reten = $ocompra->get('reten'); $ivan = $ivag + $ivar + $ivaa; //$total = ($subtotal - $reten)+($ivan-($reteiva))-$impmunicipal -$imptimbre; $total = $ocompra->get('total'); //$pr = $reten*100/$subtotal; //echo $total; if ($total == $pagado) { // echo "entro"; $pk = array('codigoadm' => $oc_codigoadm, 'tipo' => $oc_fondo); $partidaiva = $this->datasis->traevalor("PARTIDAIVA"); $pk['codigopres'] = $partidaiva; $presup->load($pk); $pasignacion = $presup->get("asignacion"); for ($h = 0; $h < $odirect->count_rel('pacom'); $h++) { 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); //$islr = $ocompra->get_rel('itocompra','islr' ,$k); //$imptimbre = $ocompra->get_rel('itocompra','imptimbre',$k); //$impmunicipal= $ocompra->get_rel('itocompra','impmunicipal',$k); if ($pasignacion > 0) { $mont = $importe; } else { $mont = $importe + $importe * $iva / 100; } //-$islr-$imptimbre-$impmunicipal; $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)); $pagado = $ord->get("pagado"); $pag += $mont; $ord->set("pagado", $pag); $ord->save(); } } $ii = $ivan - $reteiva; if ($pasignacion > 0) { $pk['codigopres'] = $partidaiva; $presup->load($pk); $pagado = $presup->get("pagado"); $pagado += $ii; $presup->set("pagado", $pagado); $presup->save(); } $this->sp_presucalc($oc_codigoadm); $riva->load_where('ocompra', $p_compra); $riva->set('ocompra', $p_compra); $riva->set('emision', date('Ymd')); $riva->set('periodo', date('Ym')); $riva->set('tipo_doc', ''); $riva->set('fecha', date('Ymd')); $riva->set('numero', $ocompra->get('factura')); $riva->set('ffactura', $ocompra->get('fechafac')); $riva->set('nfiscal', $ocompra->get('controlfac')); $riva->set('clipro', $ocompra->get('cod_prov')); $riva->set('nombre', $ocompra->get_pointer('nom_prov')); $riva->set('rif', $ocompra->get_pointer('rif_prov')); $riva->set('exento', $ocompra->get('exento')); $riva->set('tasa', $ocompra->get('tivag')); $riva->set('general', $ocompra->get('mivag')); $riva->set('geneimpu', $ocompra->get('ivag')); $riva->set('tasaadic', $ocompra->get('tivaa')); $riva->set('adicional', $ocompra->get('mivag')); $riva->set('adicimpu', $ocompra->get('ivaa')); $riva->set('tasaredu', $ocompra->get('tivar')); $riva->set('reducida', $ocompra->get('mivar')); $riva->set('reduimpu', $ocompra->get('ivar')); $riva->set('stotal', $ocompra->get('subtotal')); $riva->set('impuesto', $ocompra->get('ivag') + $ocompra->get('ivar') + $ocompra->get('ivaa')); $riva->set('gtotal', $ocompra->get('ivag') + $ocompra->get('ivar') + $ocompra->get('ivaa') + $ocompra->get('subtotal')); $riva->set('reiva', $ocompra->get('reteiva')); $riva->set('status', 'B'); $riva->set('mbanc', $id); $riva->save(); } $ocompra->set('status', 'E'); $ocompra->save(); } //exit('aaaa'); $odirect->set('status', 'F3'); $odirect->save(); } $odirect->save(); } elseif ($status == "B2" || $status == "I2") { $ivaa = $od_ivaa; $ivag = $od_ivag; $ivar = $od_ivar; $subtotal = $od_subtotal; $reteiva = $od_reteiva; $tislr = $reten = $od_reten; $ivan = $ivag + $ivar + $ivaa; $total = $subtotal - $reten + ($ivan - $reteiva); $pr = $reten * 100 / $subtotal; $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++) { $islrid = ''; $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; 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($ordinal); $opa = $ord->get("pagado"); $opa += $mont - $i_islr; $ord->set("pagado", $opa); $ord->save(); } //exit('cafe'); //if($status == "B2"){ // // $islr = new DataObject("islr"); // if(!empty($islrid)) // $islr->load($islrid); // // $islr->set('estadmin' , $od_estadmin ); // $islr->set('fondo' , $od_fondo ); // $islr->set('partida' , $codigopres ); // $islr->set('codprov' , $od_cod_prov ); // $islr->set('fechafac' , $od_fechafac ); // $islr->set('benefi' , $m_benefi ); // $islr->set('porcen' , $pr ); // //$islr->set('sustraendo' , ); // $islr->set('islr' , $i_islr ); // $islr->set('fecha' , date('Ymd') ); // $islr->set('creten' , $od_creten ); // $islr->set('odirect' , $islrid ); // $islr->set('status' , 'B' ); // $islr->save(); // $islrid = $islr->get('id'); // // $odirect->set_rel('itodirect','islrid',$islrid ,$g); // //} } if ($status == 'I2') { $odirect->set('status', 'I3'); } if ($status == "B2") { $riva->load_where('odirect', $od_numero); $riva->set('odirect', $od_numero); $riva->set('emision', date('Ymd')); $riva->set('periodo', date('Ym')); $riva->set('tipo_doc', ''); $riva->set('fecha', date('Ymd')); $riva->set('numero', $odirect->get('factura')); $riva->set('ffactura', $odirect->get('fechafac')); $riva->set('nfiscal', $odirect->get('controlfac')); $riva->set('clipro', $odirect->get('cod_prov')); $riva->set('nombre', $odirect->get_pointer('nom_prov')); $riva->set('rif', $odirect->get_pointer('rif_prov')); $riva->set('exento', $odirect->get('exento')); $riva->set('tasa', $odirect->get('tivag')); $riva->set('general', $odirect->get('mivag')); $riva->set('geneimpu', $odirect->get('ivag')); $riva->set('tasaadic', $odirect->get('tivaa')); $riva->set('adicional', $odirect->get('mivag')); $riva->set('adicimpu', $odirect->get('ivaa')); $riva->set('tasaredu', $odirect->get('tivar')); $riva->set('reducida', $odirect->get('mivar')); $riva->set('reduimpu', $odirect->get('ivar')); $riva->set('stotal', $odirect->get('subtotal')); $riva->set('impuesto', $odirect->get('ivag') + $ocompra->get('ivar') + $ocompra->get('ivaa')); $riva->set('gtotal', $ocompra->get('ivag') + $ocompra->get('ivar') + $ocompra->get('ivaa') + $odirect->get('subtotal')); $riva->set('reiva', $odirect->get('reteiva')); $riva->set('status', 'B'); $riva->set('mbanc', $id); $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', 'B3'); $this->sp_presucalc($od_estadmin); } $odirect->save(); } elseif ($status == 'S2') { $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(); $this->sp_presucalc($od_estadmin); $codigopres = $odirect->set_rel('islr', 'status', 'C', $g); } $odirect->set('status', 'S3'); $odirect->save(); } elseif ($status == 'R2') { $odirect->set('status', 'R3'); $odirect->save(); } elseif ($status == 'G2') { $odirect->set('status', 'G3'); $odirect->save(); } else { $error .= "<div class='alert'><p>N se puede realizar la operacion para la orden de pago ({$od_numero})</p></div>"; } } $islrid = $mbanc->get('islrid'); $islr = new DataObject("islr"); if (!empty($islrid)) { $islr->load($islrid); } if (date('d') > 15) { $q = '02'; } else { $q = '01'; } $islr->set('emision', date('Ymd')); $islr->set('periodo', $q . date('m')); $islr->set('clipro', $od_cod_prov); $islr->set('total', $tislr); $islr->set('status', 'B'); $islr->save(); $islrid = $islr->get('nrocomp'); $mbanc->set('islrid', $islrid); } 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', 'E2'); $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); } }
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); }