Example #1
0
 function terminada($id)
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("otrabajo");
     $do->rel_one_to_many('itotrabajo', 'itotrabajo', array('numero' => 'numero'));
     $do->load($id);
     $numero = $do->get('numero');
     if (strpos($numero, '_') === 0) {
         $contador = $this->datasis->fprox_numero('notrabajo');
         $do->set('numero', $contador);
         for ($i = 0; $i < $do->count_rel('itotrabajo'); $i++) {
             $do->set_rel('itotrabajo', 'id', '', $i);
             $do->set_rel('itotrabajo', 'numero', $contador, $i);
         }
         $this->db->query("DELETE FROM itotrabajo WHERE numero='{$numero}'");
     } else {
         $contador = $id;
     }
     if (empty($error)) {
         $do->set('status', 'C');
         $do->save();
     }
     if (empty($error)) {
         logusu('otrabajo', "Marco como terminada orden de trabajo Nro {$id}");
         redirect("presupuesto/otrabajo/dataedit/show/{$contador}");
     } else {
         logusu('otrabajo', "Marco como terminada orden de trabajo Nro {$id}. con ERROR:{$error} ");
         $data['content'] = $error . anchor("presupuesto/otrabajo/dataedit/show/{$id}", 'Regresar');
         $data['title'] = " Orden de Trabajo ";
         $data["head"] = $this->rapyd->get_head() . script('jquery.js') . script("plugins/jquery.numeric.pack.js");
         $this->load->view('view_ventanas', $data);
     }
 }
Example #2
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 #3
0
 function actualizar($id)
 {
     $this->rapyd->load('dataobject');
     $this->db->query("UPDATE mbanc x\n                JOIN (\n                SELECT a.id,GROUP_CONCAT(1*c.pago) opago\n                FROM mbanc a\n                JOIN desem b ON a.desem=b.numero\n                JOIN pades c ON b.numero=c.desem\n                JOIN odirect d ON c.pago=d.numero\n                WHERE  a.desem={$id}\n                GROUP BY a.id\n                )y ON x.id=y.id\n                SET x.observa2 =y.opago");
     $error = '';
     $do = new DataObject("desem");
     $do->rel_one_to_many('mbanc', 'mbanc', array('numero' => 'desem'));
     $do->load($id);
     $banc = new DataObject("banc");
     $b = array();
     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);
         $this->chexiste_cheque($codbanc, $cheque, $tipo_doc, $mid, $e);
         $error .= $e;
         $error .= $this->chbanse($codbanc, $fecha);
         //print_r($b);
         if (in_array($codbanc, $b)) {
             $b[$codbanc] += $monto;
         } else {
             $b[$codbanc] = $monto;
         }
     }
     if (empty($error) && $mstatus == 'E1') {
         foreach ($b as $codbanc => $monto) {
             $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 ($monto > $saldo) {
                 $error .= "<div class='alert'><p>La suma de los Montos de los cheques ({$monto}) es mayor al disponible ({$saldo}) en el banco ({$banco})</p></div>";
             }
         }
     }
     if (empty($error)) {
         $error .= $this->actpresup($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', 'mid', $i);
             $do->set_rel('mbanc', 'status', 'E2', $i);
             $banc->load($codbanc);
             $saldo = $banc->get('saldo');
             $saldo -= $monto;
             $banc->set('saldo', $saldo);
             $banc->save();
         }
     }
     if (empty($error)) {
         $do->set('status', 'D2');
         $do->save();
         logusu('desem', "Actualizo desembolso Nro {$id}");
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         logusu('desem', "Actualizo desembolso 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();
         $this->load->view('view_ventanas', $data);
     }
 }
Example #4
0
 function termina($numero)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $do = new DataObject("anoprox");
     $do->rel_one_to_many('itanoprox', 'itanoprox', array('numero' => 'numero'));
     $do->load($numero);
     $status = $do->get('status');
     if ($status == 'H1') {
     } else {
         $error .= "<div class='alert'>No se puede realizar la operacion para el certificado</div>";
     }
     if (empty($error)) {
         $numero = $ncdisp = $this->datasis->fprox_numero('nanoprox');
         $do->set('numero', $ncdisp);
         //$do->pk    =array('numero'=>$ncdisp);
         for ($i = 0; $i < $do->count_rel('itanoprox'); $i++) {
             $do->set_rel('itanoprox', 'id', '', $i);
             $do->set_rel('itanoprox', 'numero', $ncdisp, $i);
         }
     }
     //print_r($do->get_all());
     if (empty($error)) {
         $do->set('status', 'H2');
         $do->save();
         logusu('canoprox', "Marco como terminado documento nro {$numero}");
         redirect($this->url . "dataedit/show/{$numero}");
     } else {
         logusu('anoprox', "Marco como terminado dosumento 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 #5
0
 function itfac2($data, $numero, $retorna)
 {
     //print_r($data);
     //		exit();
     $this->rapyd->load("dataobject");
     $do = new DataObject("ocompra");
     $do->rel_one_to_many('itfac', 'itfac', array('numero' => 'nocompra'));
     $do->load($numero);
     $reteiva_prov = $do->get('reteiva_prov');
     $creten = $do->get('creten');
     $total2 = $do->get('total2');
     $ivag = $do->get('ivag');
     $ivar = $do->get('ivar');
     $ivaa = $do->get('ivaa');
     $i = $ttotal2 = $ttemp = 0;
     $error = '';
     $ivaplica = $this->datasis->ivaplica();
     foreach ($data as $row) {
         $temp = array();
         foreach ($row as $cols) {
             $temp[] = $cols;
         }
         if (strlen($temp[3]) > 0) {
             $do->set_rel('itfac', 'nocompra', $numero, $i);
             $do->set_rel('itfac', 'factura', $temp[3], $i);
             $do->set_rel('itfac', 'controlfac', $temp[4], $i);
             $do->set_rel('itfac', 'fechafac', human_to_dbdate($temp[2]), $i);
             $temp[11] = 1 * $temp[11];
             $do->set_rel('itfac', 'exento', 0, $i);
             $do->set_rel('itfac', 'ivar', 0, $i);
             $do->set_rel('itfac', 'ivaa', 0, $i);
             $do->set_rel('itfac', 'ivag', 0, $i);
             $do->set_rel('itfac', 'uivar', 'N', $i);
             $do->set_rel('itfac', 'uivaa', 'N', $i);
             $do->set_rel('itfac', 'uivag', 'N', $i);
             $do->set_rel('itfac', 'ureten', 'N', $i);
             $do->set_rel('itfac', 'uimptimbre', 'N', $i);
             $ttemp = $temp[11] + round($ttemp, 2);
             $temp[9] = str_replace(',', '', $temp[9]);
             $temp[11] = str_replace(',', '', $temp[11]);
             switch (1 * $temp[10] * 100) {
                 case $ivaplica['redutasa']:
                     $do->set_rel('itfac', 'ivar', 1 * $temp[11], $i);
                     $do->set_rel('itfac', 'uivar', 'S', $i);
                     break;
                 case $ivaplica['tasa']:
                     $do->set_rel('itfac', 'ivag', 1 * $temp[11], $i);
                     $do->set_rel('itfac', 'uivag', 'S', $i);
                     break;
                 case $ivaplica['sobretasa']:
                     $do->set_rel('itfac', 'ivaa', 1 * $temp[11], $i);
                     $do->set_rel('itfac', 'uivag', 'S', $i);
                     break;
             }
             $reteiva = 1 * $temp[11] * $reteiva_prov / 100;
             $total2_t = 1 * $temp[9] + 1 * $temp[11];
             $ttotal2 = $total2_t + round($ttotal2, 2);
             $do->set_rel('itfac', 'reteiva', $reteiva, $i);
             $do->set_rel('itfac', 'subtotal', 1 * $temp[9], $i);
             $do->set_rel('itfac', 'total2', $total2_t, $i);
             $rete = $this->datasis->damerow("SELECT base1,tari1,pama1 FROM rete WHERE codigo='{$creten}'");
             if (substr($creten, 0, 1) == '1') {
                 $reten = round($temp[9] * $rete['base1'] * $rete['tari1'] / 10000, 2);
             } else {
                 $reten = round(($temp[9] - $rete['pama1']) * $rete['base1'] * $rete['tari1'] / 10000, 2);
             }
             if ($reten < 0) {
                 $reten = 0;
             }
             $do->set_rel('itfac', 'reten', $reten, $i);
             $do->set_rel('itfac', 'ureten', 'S', $i);
             $do->set_rel('itfac', 'total', $total2_t - $reten - $reteiva, $i);
             $i++;
         }
     }
     //exit("ttotal2:".$ttemp);
     //if(abs($ttotal2-$total2)>=0.4)
     //$error.="El monto total cargado ($ttotal2) es diferente al Comprometido ($total2) ";
     //if(((round((round($s,2) -round($subtotal,2)),2) > 0.02))|| (round(round($subtotal,2)-(round($s ,2)),2) > 0.02) )$error.="<div class='alert'><p>La Suma de los Subtotales ($subtotal) de las facturas es diferente al subtotal ($s) de la orden de pago</p></div>";
     if (empty($error)) {
         $do->save();
         redirect("presupuesto/{$retorna}/dataedit/modify/{$numero}");
     } else {
         //logusu('ocompra',"Comprometio Orden de Compra Nro $id. con ERROR:$error ");
         $data['content'] = "<div class='alert'>" . $error . "</div>" . anchor("presupuesto/{$retorna}/load/{$numero}", 'Regresar');
         $data['title'] = " Error al cargar archivo de facturas ";
         $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 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 #7
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 #8
0
 function terminada($numero, $retorna = 'ocompra')
 {
     $this->rapyd->load('dataobject');
     $do = new DataObject("ocompra");
     $do->rel_one_to_many('itocompra', 'itocompra', array('numero' => 'numero'));
     $do->load($numero);
     $numeroa = $numero;
     //echo ">>>>>".$numero.strpos($numero,'_')."<<<<<";
     //exit();
     if (strpos($numero, '_') === 0) {
         //exit('Por aqui paso');
         $tipo = $do->get('tipo');
         switch ($tipo) {
             case 'Compra':
                 $tabla = 'nocompra';
                 $prefijo = 'OC';
                 break;
             case 'Servicio':
                 $tabla = 'nocompraservi';
                 $prefijo = 'OS';
                 break;
             case 'Compromiso':
                 $tabla = 'nocompracom';
                 $prefijo = 'CO';
                 break;
             case 'Contrato':
                 $tabla = 'nocompracom';
                 $prefijo = 'CO';
                 break;
             case 'Trabajo':
                 $tabla = 'nocompratra';
                 $prefijo = 'OT';
                 break;
             case 'Ejec.Obra':
                 $tabla = 'nocompraobra';
                 $prefijo = 'EO';
                 break;
             case 'Cont.Marco':
                 $tabla = 'nocompramarco';
                 $prefijo = 'CM';
                 break;
         }
         $contador = $this->datasis->fprox_numero($tabla);
         $do->set('numero', $prefijo . $contador);
         //$do->pk=array('numero'=>$prefijo.$contador);
         for ($i = 0; $i < $do->count_rel('itocompra'); $i++) {
             $do->set_rel('itocompra', 'id', '', $i);
             $do->set_rel('itocompra', 'numero', $prefijo . $contador, $i);
         }
         $this->db->query("DELETE FROM itocompra WHERE numero='{$numero}'");
         $numero = $prefijo . $contador;
         $this->db->query("UPDATE itfac SET nocompra='" . $prefijo . $contador . "' WHERE nocompra='{$numeroa}'");
     }
     $status = $do->get('status');
     if ($status == 'M') {
         $do->set('status', 'P');
         $do->save();
     }
     logusu('ocompra', "Marco Orden de Compra como Terminada Nro {$numero}");
     redirect("presupuesto/{$retorna}/dataedit/show/{$numero}");
 }
Example #9
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 #10
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 #11
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 #12
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 #13
0
 function cd_precomprometer($numero, $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 == 'P' || $status == 'F') {
         $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);
             $disponible = $this->datasis->dameval("SELECT saldo FROM v_presaldo WHERE codigoadm='{$codigoadm}' AND fondo='{$fondo}' AND codigo='{$codigopres}'");
             $do->set_rel('itcdisp', 'disp', $disponible, $i);
             $cadena = $codigoadm . '_._' . $fondo . '_._' . $codigopres;
             if (array_key_exists($cadena, $importes)) {
                 $importes[$cadena] += $soli;
             } else {
                 $importes[$cadena] = $soli;
             }
         }
         if (empty($error)) {
             foreach ($importes as $cadena => $monto) {
                 $temp = explode('_._', $cadena);
                 $error .= $this->chequeapresup($temp[0], $temp[1], $temp[2], '', $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] . ') ');
             }
         }
         //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 ($status == 'P') {
             $numero = $ncdisp = $this->datasis->fprox_numero('ncdisp');
             $do->set('numero', $ncdisp);
             //$do->pk    =array('numero'=>$ncdisp);
             for ($i = 0; $i < $do->count_rel('itcdisp'); $i++) {
                 $do->set_rel('itcdisp', 'id', '', $i);
                 $do->set_rel('itcdisp', 'numero', $ncdisp, $i);
             }
         }
     }
     //print_r($do->get_all());
     if (empty($error)) {
         $do->set('status', 'C');
         $do->save();
         logusu('cdisp', "Marco como terminado certificado nro {$numero}");
         if ($redirect) {
             redirect("presupuesto/cdisp/dataedit/show/{$numero}");
         }
     } else {
         logusu('cdisp', "Marco como terminado 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 #14
0
 function actualizar($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 == 'P') {
         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(($comprometido-$causado),2)', "El Monto ({$monto}) es mayor al MONTO DE COMPROMETIDO POR CAUSAR 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'));
             }
         }
     } else {
         $error .= "<div class='alert'><p>No se puede realizar la operacion para esta economia</p></div>";
     }
     if (empty($error)) {
         if (strpos($numero, '_') === 0) {
             $contador = $this->datasis->fprox_numero('necono');
             $do->set('numero', $contador);
             for ($i = 0; $i < $do->count_rel('itecono'); $i++) {
                 $do->set_rel('itecono', 'id', '', $i);
                 $do->set_rel('itecono', 'numero', $contador, $i);
             }
             $this->db->query("DELETE FROM itecono WHERE numero='{$numero}'");
             $numero = $contador;
         }
         if (empty($error)) {
             $do->set('status', 'C');
             $do->save();
         }
         logusu('econo', "actualizo economia numero {$numero}");
         redirect($this->url . "/dataedit/show/{$numero}");
     } else {
         logusu('econo', "actualizo 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);
     }
 }
Example #15
0
 function actualizar($id)
 {
     $this->rapyd->load('dataobject');
     $error = '';
     $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->pointer('sprv', 'sprv.proveed=odirect.cod_prov', 'sprv.nombre as nom_prov, sprv.rif as rif_prov');
     $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)) {
             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_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 = $ocompra->get('cod_prov');
                 $od_creten = $ocompra->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');
                         $reten = $ocompra->get('reten');
                         $ivan = $ivag + $ivar + $ivaa;
                         $total = $subtotal - $reten + ($ivan - $reteiva);
                         if ($total == $pagado) {
                             $pr = $reten * 100 / $subtotal;
                             echo "pr" . $pr;
                             $pk = array('codigoadm' => $oc_codigoadm, 'tipo' => $oc_fondo);
                             for ($h = 0; $h < $odirect->count_rel('pacom'); $h++) {
                                 for ($g = 0; $g < $ocompra->count_rel('itocompra'); $g++) {
                                     $islrid = '';
                                     $codigopres = $ocompra->get_rel('itocompra', 'partida', $g);
                                     $importe = $ocompra->get_rel('itocompra', 'importe', $g);
                                     $iva = $ocompra->get_rel('itocompra', 'iva', $g);
                                     $islrid = $ocompra->get_rel('itocompra', 'islrid', $g);
                                     //$mont        = $importe*(($iva+100)/100);
                                     echo "i_islr" . ($i_islr = $importe * $pr / 100);
                                     echo "mont" . ($mont = $importe - $i_islr);
                                     $pk['codigopres'] = $codigopres;
                                     $presup->load($pk);
                                     $pagado = $presup->get("pagado");
                                     $pagado = $pagado + $mont;
                                     $presup->set("pagado", $pagado);
                                     $presup->save();
                                     if (!empty($islrid)) {
                                         $islr->load($islrid);
                                     }
                                     $islr->set('estadmin', $oc_codigoadm);
                                     $islr->set('fondo', $oc_fondo);
                                     $islr->set('partida', $codigopres);
                                     $islr->set('codprov', $oc_cod_prov);
                                     $islr->set('fechafac', $oc_fechafac);
                                     $islr->set('benefi', $m_benefi);
                                     $islr->set('porcen', $od_pr);
                                     //$islr->set('sustraendo'    ,                     );
                                     $islr->set('islr', $i_islr);
                                     $islr->set('fecha', date('Ymd'));
                                     $islr->set('creten', $oc_creten);
                                     $islr->set('ocompra', $islrid);
                                     $islr->save();
                                     $islrid = $islr->get('id');
                                     $ocompra->set_rel('itocompra', 'islrid', $islrid, $g);
                                 }
                                 $ii = $ivan - $reteiva;
                                 $pk['codigopres'] = $partidaiva;
                                 $presup->load($pk);
                                 $pagado = $presup->get("pagado");
                                 $pagado += $ii;
                                 $presup->set("pagado", $pagado);
                                 $presup->save();
                                 $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->save();
                             }
                             $ocompra->set('status', 'E');
                             $ocompra->save();
                         }
                         $odirect->set('status', 'F3');
                     }
                 } elseif ($status == "B2" || $status == "I2") {
                     $pk = array('codigoadm' => $od_estadmin, 'tipo' => $od_fondo);
                     for ($g = 0; $g < $odirect->count_rel('itodirect'); $g++) {
                         $islrid = '';
                         $codigopres = $odirect->get_rel('itodirect', 'partida', $g);
                         $importe = $odirect->get_rel('itodirect', 'importe', $g);
                         $islrid = $ocompra->get_rel('itocompra', 'islrid', $g);
                         $i_islr = $importe * $od_pr / 100;
                         $pk['codigopres'] = $codigopres;
                         $presup->load($pk);
                         $pagado = $presup->get("pagado");
                         $pagado = $pagado + ($importe - $i_islr);
                         $presup->set("pagado", $pagado);
                         $presup->save();
                         if ($status == "B2") {
                             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->save();
                             $islrid = $islr->get('id');
                             $odirect->set_rel('itoodirect', '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->save();
                         $ii = $od_ivaa + $od_ivag + $od_ivar - $od_reteiva;
                         $pk['codigopres'] = $partidaiva;
                         $presup->load($pk);
                         $pagado = $presup->get("pagado");
                         $pagado += $ii;
                         $presup->set("pagado", $pagado);
                         $presup->save();
                         $odirect->set('status', 'B3');
                     }
                 } elseif ($status == 'R2') {
                     $odirect->set('status', 'R3');
                 } elseif ($status == 'G2') {
                     $odirect->set('status', 'G3');
                 } else {
                     $error .= "<div class='alert'><p>N se puede realizar la operacion para la orden de pago ({$od_numero})</p></div>";
                 }
                 echo "actualizar" . $status . "--";
             }
             $odirect->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', 'E2');
         $mbanc->save();
         $saldo -= $m_monto;
         $banc->set('saldo', $saldo);
         $banc->save();
         redirect($this->url . "dataedit/show/{$id}");
     } else {
         exit;
         $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 #16
0
 function reserv($id)
 {
     $error = '';
     $PFACRESERVA = $this->datasis->traevalor('PFACRESERVA', 'indica si un pedido descuenta de inventario los producto');
     if ($PFACRESERVA == 'S') {
         $usr = $this->session->userdata('usuario');
         $vd['vendedor'] = $this->datasis->dameval("SELECT vendedor FROM usuario WHERE us_codigo='{$usr}'");
         $vd['almacen'] = $this->datasis->dameval("SELECT almacen FROM usuario WHERE us_codigo='{$usr}'");
         $this->rapyd->load('dataobject');
         $do = new DataObject('pfac');
         $do->rel_one_to_many('itpfac', 'itpfac', array('numero' => 'numa'));
         $do->load($id);
         $sinv = $this->db->query("SELECT * FROM sinv");
         $sinv = $sinv->result_array();
         $sinv2 = array();
         $sinviva = array();
         foreach ($sinv as $k => $v) {
             $sinv2[$v['codigo']] = $v;
         }
         $sinv = $sinv2;
         unset($sinv2);
         $iva = $totals = 0;
         for ($i = 0; $i < $do->count_rel('itpfac'); $i++) {
             $codigoa = $do->get_rel('itpfac', 'codigoa', $i);
             $cana = $do->get_rel('itpfac', 'cana', $i);
             $existen = $this->datasis->dameval("SELECT existen FROM itsinv WHERE alma='" . $vd['almacen'] . "' AND codigo='{$codigoa}'");
             if ($cana > $existen) {
                 $error .= "ERROR. La cantidad solicitada(" . nformat($cana) . ") es mayor a la existente (" . nformat($existen) . ") para ({$codigoa}).</br>";
             }
             $codigoae = $this->db->escape($codigoa);
             $sinv = $this->datasis->damerow("SELECT precio1,iva FROM sinv WHERE codigo={$codigoae}");
             $precio1 = $sinv['precio1'];
             $itiva = $sinv['iva'];
             $do->set_rel('itpfac', 'preca', $precio1, $i);
             $ittota = $precio1 * $cana;
             $do->set_rel('itpfac', 'tota', $ittota, $i);
             $iva += $ittota * ($itiva / 100);
             $totals += $ittota;
             $do->set_rel('itpfac', 'mostrado', $iva + $ittota, $i);
         }
         $totalg = $totals + $iva;
         $do->set('totals', round($totals, 2));
         $do->set('totalg', round($totalg, 2));
         $do->set('iva', round($iva, 2));
         if (empty($error)) {
             for ($i = 0; $i < $do->count_rel('itpfac'); $i++) {
                 $codigoa = $do->get_rel('itpfac', 'codigoa', $i);
                 $cana = $do->get_rel('itpfac', 'cana', $i);
                 $this->datasis->sinvcarga($codigoa, $vd['almacen'], -1 * $cana);
                 $this->datasis->sinvcarga($codigoa, 'PEDI', $cana);
             }
         }
         $fenvia = date('Ymd');
         $do->set('reserva', 'S');
         $do->set('fenvia', $fenvia);
         if (empty($error)) {
             $do->save();
         } else {
             return $error;
         }
     }
 }