function pprov($id_sprv) { $id_sprv = intval($id_sprv); $row = $this->datasis->damerow('SELECT proveed,nombre,rif FROM sprv WHERE id=' . $id_sprv); if (empty($row)) { echo 'El usuario debe tener registrado un cajero para poder usar este modulo'; return ''; } $proveed = $row['proveed']; $sprv_nombre = $row['nombre']; $sprv_rif = $row['rif']; if (date('d') <= 15) { $pdia = '01'; $dia = '15'; } else { $pdia = '16'; $dia = date('d', mktime(0, 0, 0, date('n'), 0)); } $rivafechai = date('Ym' . $pdia); $rivafechac = date('Ym' . $dia); $this->rapyd->load('dataobject', 'datadetails'); $do = new DataObject('sprm'); $do->rel_one_to_many('itppro', 'itppro', array('tipo_doc' => 'tipoppro', 'numero' => 'numppro', 'cod_prv' => 'cod_prv', 'transac' => 'transac')); $do->order_by('itppro', 'itppro.fecha'); $edit = new DataDetails('Pago a proveedor', $do); $edit->on_save_redirect = false; $edit->set_rel_title('itppro', 'Efecto <#o#>'); //$edit->set_rel_title('sfpa' , 'Forma de pago <#o#>'); $edit->pre_process('insert', '_pre_pprv_insert'); $edit->pre_process('update', '_pre_pprv_update'); $edit->pre_process('delete', '_pre_pprv_delete'); $edit->post_process('insert', '_post_pprv_insert'); //$edit->post_process('delete', '_post_pprv_delete'); $edit->cod_prv = new hiddenField('Proveedor', 'cod_prv'); $edit->cod_prv->rule = 'existesprv'; $edit->cod_prv->size = 7; $edit->cod_prv->insertValue = $proveed; $edit->cod_prv->maxlength = 5; $edit->nombre = new inputField('Nombre', 'nombre'); $edit->nombre->rule = 'max_length[40]'; $edit->nombre->size = 42; $edit->nombre->maxlength = 40; $edit->tipo_doc = new dropdownField('Tipo doc.', 'tipo_doc'); $edit->tipo_doc->option('AB', 'Abono'); $edit->tipo_doc->option('NC', 'Nota de credito'); $edit->tipo_doc->option('AN', 'Anticipo'); $edit->tipo_doc->onchange = 'chtipodoc()'; $edit->tipo_doc->style = 'width:140px;'; $edit->tipo_doc->rule = 'enum[AB,NC,AN]|required'; $edit->codigo = new dropdownField('Motivo', 'codigo'); $edit->codigo->option('', 'Seleccionar'); $edit->codigo->options('SELECT TRIM(codigo) AS cod, nombre FROM botr WHERE tipo=\'P\' ORDER BY nombre'); $edit->codigo->style = 'width:200px;'; $edit->codigo->rule = 'condi_required|callback_chobligatipo[NC]'; $edit->numero = new inputField('Número', 'numero'); $edit->numero->rule = 'max_length[8]'; $edit->numero->size = 10; $edit->numero->maxlength = 8; $edit->fecha = new dateonlyField('Fecha', 'fecha'); $edit->fecha->size = 12; $edit->fecha->maxlength = 8; $edit->fecha->insertValue = date('Y-m-d'); $edit->fecha->calendar = false; $edit->fecha->rule = 'chfecha|required'; $edit->monto = new inputField('Total a pagar', 'monto'); $edit->monto->rule = 'required|max_length[17]|numeric'; $edit->monto->css_class = 'inputnum'; $edit->monto->size = 19; $edit->monto->maxlength = 17; $edit->monto->type = 'inputhidden'; $edit->observa1 = new textareaField('Concepto:', 'observa1'); $edit->observa1->cols = 70; $edit->observa1->rows = 2; $edit->observa1->style = 'width:100%;'; $edit->observa2 = new textareaField('', 'observa2'); $edit->observa2->cols = 70; $edit->observa2->rows = 2; $edit->observa2->style = 'width:100%;'; $edit->observa2->when = array('show'); $edit->depto = new dropdownField('Asignar a departamento', 'depto'); $edit->depto->option('', 'Seleccionar'); $edit->depto->options('SELECT depto,CONCAT_WS(\'-\',depto,TRIM(descrip)) AS descrip FROM dpto WHERE tipo IN (\'G\',\'A\') ORDER BY descrip'); $edit->depto->style = 'width:180px;'; $edit->depto->rule = 'condi_required|callback_chdepto'; $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario()); $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd')); $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s')); //Campos propios de las NC //Campos comodines $arr_ptasa = array(); $edit->apltasa = new dropdownField('', 'apltasa'); $mSQL = 'SELECT fecha,tasa,redutasa,sobretasa FROM civa ORDER BY fecha DESC LIMIT 3'; $query = $this->db->query($mSQL); foreach ($query->result() as $row) { $arr_ptasa[] = array(floatval($row->tasa), floatval($row->redutasa), floatval($row->sobretasa)); $edit->apltasa->option($row->fecha, dbdate_to_human($row->fecha)); } $edit->apltasa->onchange = 'chapltasa()'; $edit->apltasa->style = 'width:100px;'; $edit->apltasa->rule = 'condi_required|callback_chobligatipo[NC]'; $ivas = $this->datasis->ivaplica(); $edit->ptasa = new inputField('', 'ptasa'); $edit->ptasa->rule = 'numeric'; $edit->ptasa->type = 'inputhidden'; $edit->ptasa->insertValue = $ivas['tasa']; $edit->ptasa->showformat = 'decimal'; $edit->preducida = new inputField('', 'preducida'); $edit->preducida->rule = 'numeric'; $edit->preducida->type = 'inputhidden'; $edit->preducida->insertValue = $ivas['redutasa']; $edit->preducida->showformat = 'decimal'; $edit->padicional = new inputField('', 'padicional'); $edit->padicional->rule = 'numeric'; $edit->padicional->type = 'inputhidden'; $edit->padicional->insertValue = $ivas['sobretasa']; $edit->padicional->showformat = 'decimal'; //Fin de los comodines $edit->serie = new inputField('Número', 'serie'); $edit->serie->rule = 'condi_required|callback_chobligatipo[NC]'; $edit->serie->size = 15; $edit->serie->maxlength = 17; $edit->nfiscal = new inputField('Control Físcal', 'nfiscal'); $edit->nfiscal->rule = 'condi_required|callback_chobligatipo[NC]'; $edit->nfiscal->size = 15; $edit->nfiscal->maxlength = 17; $edit->montasa = new inputField('Montasa', 'montasa'); $edit->montasa->rule = 'max_length[17]|numeric|positive'; $edit->montasa->css_class = 'inputnum'; $edit->montasa->size = 19; $edit->montasa->maxlength = 17; $edit->montasa->rule = 'condi_required|callback_chobligatipo[NC]'; $edit->monredu = new inputField('Monredu', 'monredu'); $edit->monredu->rule = 'max_length[17]|numeric|positive'; $edit->monredu->css_class = 'inputnum'; $edit->monredu->size = 19; $edit->monredu->maxlength = 17; $edit->monredu->rule = 'condi_required|callback_chobligatipo[NC]'; $edit->monadic = new inputField('Monadic', 'monadic'); $edit->monadic->rule = 'max_length[17]|numeric|positive'; $edit->monadic->css_class = 'inputnum'; $edit->monadic->size = 19; $edit->monadic->maxlength = 17; $edit->monadic->rule = 'condi_required|callback_chobligatipo[NC]'; $edit->tasa = new inputField('general', 'tasa'); $edit->tasa->rule = 'max_length[17]|numeric'; $edit->tasa->css_class = 'inputnum'; $edit->tasa->size = 12; $edit->tasa->maxlength = 17; $edit->tasa->rule = 'condi_required|callback_chobligatipo[NC]|callback_chmontasa[G]'; $edit->reducida = new inputField('reducida', 'reducida'); $edit->reducida->rule = 'max_length[17]|numeric|positive'; $edit->reducida->css_class = 'inputnum'; $edit->reducida->size = 12; $edit->reducida->maxlength = 17; $edit->reducida->rule = 'condi_required|callback_chobligatipo[NC]|callback_chmontasa[R]'; $edit->sobretasa = new inputField('adicional', 'sobretasa'); $edit->sobretasa->rule = 'max_length[17]|numeric|positive'; $edit->sobretasa->css_class = 'inputnum'; $edit->sobretasa->size = 12; $edit->sobretasa->maxlength = 17; $edit->sobretasa->rule = 'condi_required|callback_chobligatipo[NC]|callback_chmontasa[A]|positive'; $edit->exento = new inputField('exento', 'exento'); $edit->exento->rule = 'max_length[17]|numeric'; $edit->exento->css_class = 'inputnum'; $edit->exento->size = 19; $edit->exento->maxlength = 17; $edit->exento->rule = 'condi_required|callback_chobligatipo[NC]|positive'; $edit->reteiva = new inputField('Ret. IVA', 'reteiva'); $edit->reteiva->rule = 'max_length[17]|numeric'; $edit->reteiva->css_class = 'inputnum'; $edit->reteiva->size = 19; $edit->reteiva->maxlength = 17; $edit->reteiva->insertValue = '0'; $edit->reteiva->rule = 'condi_required|callback_chobligatipo[NC]|positive'; $edit->afecta = new inputField('Factura Afectada', 'afecta'); $edit->afecta->rule = 'callback_chafectanc'; $edit->afecta->size = 15; $edit->afecta->maxlength = 12; //Para la retencion de iva si aplica $contribu = trim($this->datasis->traevalor('CONTRIBUYENTE')); $rif = trim($this->datasis->traevalor('RIF')); if ($contribu == 'ESPECIAL' && strtoupper($rif[0]) != 'V') { $por_rete = $this->datasis->dameval('SELECT reteiva FROM sprv WHERE proveed=' . $this->db->escape($proveed)); if ($por_rete != 100) { $por_rete = 0.75; } else { $por_rete = $por_rete / 100; } } else { $por_rete = -1; } //fin de la retencion //Fin de los campos para la nc //Detalle del pago $edit->banco = new dropdownField('Banco', 'banco'); $edit->banco->option('', 'Seleccionar'); $edit->banco->options('SELECT TRIM(codbanc) AS codbanc,CONCAT_WS(\' \',TRIM(codbanc),TRIM(banco),numcuent) FROM banc ORDER BY banco'); $edit->banco->style = 'width:200px;'; $edit->banco->rule = 'condi_required|callback_chbanc'; $edit->tipo_op = new dropdownField('Tipo', 'tipo_op'); $edit->tipo_op->option('CH', 'Cheque'); $edit->tipo_op->option('ND', 'Nota de debito'); $edit->tipo_op->style = 'width:150px;'; $edit->tipo_op->rule = 'condi_required|enum[CH,ND]|callback_chtipoop'; $edit->numche = new inputField('Número', 'numche'); $edit->numche->size = 12; $edit->numche->rule = 'condi_required|callback_chbmovrep'; $edit->benefi = new inputField('Beneficiario', 'benefi'); $edit->benefi->size = 12; $edit->benefi->rule = 'condi_required|callback_chtipo'; $edit->benefi->style = 'width:90%;'; $edit->benefi->insertValue = $sprv_nombre; $edit->posdata = new dateonlyField('Fecha', 'posdata'); $edit->posdata->size = 12; $edit->posdata->maxlength = 8; $edit->posdata->insertValue = date('Y-m-d'); $edit->posdata->calendar = false; $edit->posdata->rule = 'condi_required|chfecha'; //Fin del detalle del pago //************************************************ //inicio detalle itppro //************************************************ $i = 0; $arr_ivas = array(); $edit->detail_expand_except('itppro'); $sel = array('a.tipo_doc', 'a.numero', 'a.fecha', 'a.vence', 'a.monto', 'a.abonos', 'a.monto - a.abonos AS saldo', 'impuesto', 'reteiva', 'montasa', 'monredu', 'monadic', 'tasa', 'reducida', 'sobretasa', 'exento'); $this->db->select($sel); $this->db->from('sprm AS a'); $this->db->where('a.cod_prv', $proveed); $transac = $edit->get_from_dataobjetct('transac'); if ($transac !== false) { $tipo_doc = $edit->get_from_dataobjetct('tipo_doc'); $dbtransac = $this->db->escape($transac); $this->db->join('itppro AS b', 'a.tipo_doc = b.tipoccli AND a.numero=b.numccli AND a.transac=' . $dbtransac); $this->db->where('a.tipo_doc', $tipo_doc); } else { $this->db->where('a.monto > a.abonos'); $this->db->where_in('a.tipo_doc', array('FC', 'ND', 'GI')); } $this->db->order_by('a.fecha'); $query = $this->db->get(); //echo $this->db->last_query(); foreach ($query->result() as $row) { $row->montasa = floatval($row->montasa); $row->monredu = floatval($row->monredu); $row->monadic = floatval($row->monadic); $row->tasa = floatval($row->tasa); $row->reducida = floatval($row->reducida); $row->sobretasa = floatval($row->sobretasa); $row->exento = floatval($row->exento); if ($row->montasa + $row->monredu + $row->monadic + $row->tasa + $row->reducida + $row->sobretasa + $row->exento > 0) { $arr_ivas[$i] = array('montasa' => $row->montasa, 'monredu' => $row->monredu, 'monadic' => $row->monadic, 'tasa' => $row->tasa, 'reducida' => $row->reducida, 'sobretasa' => $row->sobretasa, 'exento' => $row->exento); } else { $arr_ivas[$i] = array('montasa' => $row->monto - $row->impuesto, 'monredu' => 0, 'monadic' => 0, 'tasa' => floatval($row->impuesto), 'reducida' => 0, 'sobretasa' => 0, 'exento' => $row->exento); } $obj = 'cod_prv_' . $i; $edit->{$obj} = new autoUpdateField('cod_prv', $proveed, $proveed); $edit->{$obj}->rel_id = 'itppro'; $edit->{$obj}->ind = $i; $obj = 'tipo_doc_' . $i; $edit->{$obj} = new inputField('Tipo_doc', $obj); $edit->{$obj}->db_name = 'tipo_doc'; $edit->{$obj}->rel_id = 'itppro'; $edit->{$obj}->rule = 'max_length[2]'; $edit->{$obj}->insertValue = $row->tipo_doc; $edit->{$obj}->size = 4; $edit->{$obj}->maxlength = 2; $edit->{$obj}->ind = $i; $edit->{$obj}->type = 'inputhidden'; $obj = 'numero_' . $i; $edit->{$obj} = new inputField('Numero', $obj); $edit->{$obj}->db_name = 'numero'; $edit->{$obj}->rel_id = 'itppro'; $edit->{$obj}->rule = 'max_length[8]'; $edit->{$obj}->insertValue = $row->numero; $edit->{$obj}->size = 10; $edit->{$obj}->maxlength = 8; $edit->{$obj}->ind = $i; $edit->{$obj}->type = 'inputhidden'; $obj = 'fecha_' . $i; $edit->{$obj} = new dateonlyField('Fecha', $obj); $edit->{$obj}->db_name = 'fecha'; $edit->{$obj}->rel_id = 'itppro'; $edit->{$obj}->rule = 'chfecha'; $edit->{$obj}->insertValue = $row->fecha; $edit->{$obj}->size = 10; $edit->{$obj}->maxlength = 8; $edit->{$obj}->ind = $i; $edit->{$obj}->type = 'inputhidden'; $obj = 'monto_' . $i; $edit->{$obj} = new inputField('Monto', $obj); $edit->{$obj}->db_name = 'monto'; $edit->{$obj}->rel_id = 'itppro'; $edit->{$obj}->rule = 'max_length[18]|numeric'; $edit->{$obj}->css_class = 'inputnum'; $edit->{$obj}->size = 20; $edit->{$obj}->insertValue = $row->monto; $edit->{$obj}->maxlength = 18; $edit->{$obj}->ind = $i; $edit->{$obj}->showformat = 'decimal'; $edit->{$obj}->type = 'inputhidden'; $obj = 'riva_' . $i; $edit->{$obj} = new hiddenField('riva', $obj); $edit->{$obj}->db_name = 'riva'; $edit->{$obj}->rel_id = 'itppro'; $fecha = str_replace('-', '', $row->fecha); if (floatval($row->reteiva) > 0) { if ($fecha >= $rivafechai && $fecha <= $rivafechac) { $aplrete = 'S'; } else { $aplrete = 'V'; } } else { $aplrete = 'N'; } $edit->{$obj}->insertValue = $aplrete; $edit->{$obj}->ind = $i; $edit->{$obj}->showformat = 'decimal'; $obj = 'saldo_' . $i; $edit->{$obj} = new freeField($obj, $obj, nformat($row->saldo)); $edit->{$obj}->ind = $i; $obj = 'vence_' . $i; $edit->{$obj} = new freeField($obj, $obj, dbdate_to_human($row->vence)); $edit->{$obj}->ind = $i; $obj = 'abono_' . $i; $edit->{$obj} = new inputField('Abono', $obj); $edit->{$obj}->db_name = 'abono'; $edit->{$obj}->rel_id = 'itppro'; $edit->{$obj}->rule = "max_length[18]|numeric|positive|callback_chabono[{$i}]"; $edit->{$obj}->css_class = 'inputnum'; $edit->{$obj}->showformat = 'decimal'; $edit->{$obj}->autocomplete = false; $edit->{$obj}->disable_paste = true; $edit->{$obj}->size = 15; $edit->{$obj}->maxlength = 18; $edit->{$obj}->ind = $i; $edit->{$obj}->onfocus = 'itsaldo(this,' . round($row->saldo, 2) . ');'; $i++; } //************************************************ //fin de campos para detalle //************************************************ $edit->tipo_doc = new dropdownField('Tipo doc.', 'tipo_doc'); if ($i > 0) { $edit->tipo_doc->option('AB', 'Abono'); $edit->tipo_doc->option('NC', 'Nota de credito'); } else { $edit->tipo_doc->insertValue = 'AN'; } $edit->tipo_doc->option('AN', 'Anticipo'); $edit->tipo_doc->onchange = 'chtipodoc()'; $edit->tipo_doc->style = 'width:140px;'; $edit->tipo_doc->rule = 'enum[AB,NC,AN]|required'; $edit->buttons('add_rel'); $edit->build(); if ($edit->on_success()) { $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk); echo json_encode($rt); } else { $conten['json_ptasa'] = json_encode($arr_ptasa); $conten['json_ivas'] = json_encode($arr_ivas); $conten['cana'] = $i; $conten['form'] =& $edit; $conten['title'] = heading("Pago a proveedor: ({$proveed}) {$sprv_nombre} {$sprv_rif}"); $conten['por_rete'] = $por_rete; $this->load->view('view_pprv', $conten); } }
function ccli($id_scli) { $id_scli = intval($id_scli); $row = $this->datasis->damerow("SELECT cliente,nombre,rifci FROM scli WHERE id={$id_scli}"); if (empty($row)) { echo 'Cliente inexistente'; return ''; } $cliente = $row['cliente']; $dbcliente = $this->db->escape($cliente); $scli_nombre = $row['nombre']; $scli_rif = $row['rifci']; $cajero = $this->secu->getcajero(); if (empty($cajero)) { echo 'El usuario debe tener registrado un cajero para poder usar este modulo'; exit; } $this->rapyd->load('dataobject', 'datadetails'); $this->rapyd->uri->keep_persistence(); $do = new DataObject('smov'); $do->rel_one_to_many('itccli', 'itccli', array('tipo_doc' => 'tipoccli', 'numero' => 'numccli', 'cod_cli' => 'cod_cli', 'transac' => 'transac')); $do->rel_one_to_many('sfpa', 'sfpa', array('transac' => 'transac', 'numero' => 'numero', 'tipo_doc' => 'tipo_doc')); $do->order_by('itccli', 'itccli.fecha'); $edit = new DataDetails('Cobro a cliente', $do); $edit->on_save_redirect = false; $edit->back_url = site_url('finanzas/ccli/filteredgrid'); $edit->set_rel_title('itccli', 'Efecto <#o#>'); $edit->set_rel_title('sfpa', 'Forma de pago <#o#>'); $edit->pre_process('insert', '_pre_ccli_insert'); $edit->pre_process('update', '_pre_ccli_update'); $edit->pre_process('delete', '_pre_ccli_delete'); $edit->post_process('insert', '_post_ccli_insert'); //$edit->post_process('delete', '_post_delete'); $edit->cod_cli = new hiddenField('Cliente', 'cod_cli'); $edit->cod_cli->rule = 'max_length[5]'; $edit->cod_cli->size = 7; $edit->cod_cli->insertValue = $cliente; $edit->cod_cli->maxlength = 5; $edit->nombre = new inputField('Nombre', 'nombre'); $edit->nombre->rule = 'max_length[40]'; $edit->nombre->size = 42; $edit->nombre->maxlength = 40; $edit->codigo = new dropdownField('Motivo', 'codigo'); $edit->codigo->option('', 'Seleccionar'); $edit->codigo->options('SELECT TRIM(codigo) AS cod, nombre FROM botr WHERE tipo=\'C\' ORDER BY nombre'); $edit->codigo->style = 'width:200px;'; $edit->codigo->rule = ''; $edit->vendedor = new dropdownField('Cobrador', 'vd'); $edit->vendedor->option('', 'Seleccione cobrador'); $edit->vendedor->options('SELECT TRIM(vendedor) AS vendedor, CONCAT(vendedor,\' \',nombre) nombre FROM vend WHERE tipo <> "V" ORDER BY vendedor'); $edit->vendedor->style = 'width:200px;'; $edit->vendedor->insertValue = trim($this->secu->getvendedor()); $edit->vendedor->db_name = 'vendedor'; $edit->numero = new inputField('Número', 'numero'); $edit->numero->rule = 'max_length[8]'; $edit->numero->size = 10; $edit->numero->maxlength = 8; $edit->fecdoc = new dateonlyField('Fecha', 'fecdoc'); $edit->fecdoc->db_name = 'fecha'; $edit->fecdoc->size = 12; $edit->fecdoc->maxlength = 8; $edit->fecdoc->insertValue = date('Y-m-d'); $edit->fecdoc->calendar = false; $edit->fecdoc->rule = 'chfecha|chfechafut|required|callback_chcierre'; $edit->monto = new inputField('Total', 'monto'); $edit->monto->rule = 'max_length[17]|numeric'; $edit->monto->css_class = 'inputnum'; $edit->monto->size = 19; $edit->monto->maxlength = 17; $edit->monto->type = 'inputhidden'; $edit->observa1 = new textareaField('Concepto:', 'observa1'); $edit->observa1->cols = 70; $edit->observa1->rows = 2; $edit->observa1->style = 'width:100%;'; $edit->observa2 = new textareaField('', 'observa2'); $edit->observa2->cols = 70; $edit->observa2->rows = 2; $edit->observa2->style = 'width:100%;'; $edit->observa2->when = array('show'); $edit->codigo = new dropdownField('Motivo', 'codigo'); $edit->codigo->option('', 'Ninguno'); $edit->codigo->options('SELECT TRIM(codigo) AS cod, nombre FROM botr WHERE tipo=\'C\' ORDER BY nombre'); $edit->codigo->style = 'width:200px;'; $edit->codigo->rule = 'condi_required|callback_chobligatipo[NC]'; $edit->nroex = new inputField('Referencia Externa', 'nroex'); $edit->nroex->rule = 'max_length[15]'; $edit->nroex->size = 15; $edit->nroex->maxlength = 15; $edit->usuario = new autoUpdateField('usuario', $this->secu->usuario(), $this->secu->usuario()); $edit->estampa = new autoUpdateField('estampa', date('Ymd'), date('Ymd')); $edit->hora = new autoUpdateField('hora', date('H:i:s'), date('H:i:s')); //$edit->fecha = new autoUpdateField('fecha' ,date('Ymd'), date('Ymd')); //************************************************************** //inicio detalle itccli // $i = 0; $arr_ivas = array(); $edit->detail_expand_except('itccli'); $sel = array('a.tipo_doc', 'a.numero', 'a.fecha', 'a.monto', 'a.abonos', 'a.monto - a.abonos AS saldo'); $this->db->select($sel); $this->db->from('smov AS a'); $this->db->where('a.cod_cli', $cliente); $transac = $edit->get_from_dataobjetct('transac'); if ($transac !== false) { $tipo_doc = $edit->get_from_dataobjetct('tipo_doc'); $dbtransac = $this->db->escape($transac); $this->db->join('itccli AS b', 'a.tipo_doc = b.tipoccli AND a.numero=b.numccli AND a.transac=' . $dbtransac); $this->db->where('a.tipo_doc', $tipo_doc); } else { $this->db->where('a.monto > a.abonos'); $this->db->where_in('a.tipo_doc', array('FC', 'ND', 'GI')); } $this->db->order_by('a.fecha'); $query = $this->db->get(); //echo $this->db->last_query(); foreach ($query->result() as $row) { //$arr_ivas[$i]=array(''); $obj = 'cod_cli_' . $i; $edit->{$obj} = new autoUpdateField('cod_cli', $cliente, $cliente); $edit->{$obj}->rel_id = 'itccli'; $edit->{$obj}->ind = $i; $obj = 'tipo_doc_' . $i; $edit->{$obj} = new inputField('Tipo_doc', $obj); $edit->{$obj}->db_name = 'tipo_doc'; $edit->{$obj}->rel_id = 'itccli'; $edit->{$obj}->rule = 'max_length[2]'; $edit->{$obj}->insertValue = $row->tipo_doc; $edit->{$obj}->size = 4; $edit->{$obj}->maxlength = 2; $edit->{$obj}->ind = $i; $edit->{$obj}->type = 'inputhidden'; $obj = 'numero_' . $i; $edit->{$obj} = new inputField('Numero', $obj); $edit->{$obj}->db_name = 'numero'; $edit->{$obj}->rel_id = 'itccli'; $edit->{$obj}->rule = 'max_length[8]'; $edit->{$obj}->insertValue = $row->numero; $edit->{$obj}->size = 10; $edit->{$obj}->maxlength = 8; $edit->{$obj}->ind = $i; $edit->{$obj}->type = 'inputhidden'; $obj = 'fecha_' . $i; $edit->{$obj} = new dateonlyField('Fecha', $obj); $edit->{$obj}->db_name = 'fecha'; $edit->{$obj}->rel_id = 'itccli'; $edit->{$obj}->rule = 'chfecha'; $edit->{$obj}->insertValue = $row->fecha; $edit->{$obj}->size = 10; $edit->{$obj}->maxlength = 8; $edit->{$obj}->ind = $i; $edit->{$obj}->type = 'inputhidden'; $obj = 'monto_' . $i; $edit->{$obj} = new inputField('Monto', $obj); $edit->{$obj}->db_name = 'monto'; $edit->{$obj}->rel_id = 'itccli'; $edit->{$obj}->rule = 'max_length[18]|numeric'; $edit->{$obj}->css_class = 'inputnum'; $edit->{$obj}->size = 20; $edit->{$obj}->insertValue = $row->monto; $edit->{$obj}->maxlength = 18; $edit->{$obj}->ind = $i; $edit->{$obj}->showformat = 'decimal'; $edit->{$obj}->type = 'inputhidden'; $obj = 'saldo_' . $i; $edit->{$obj} = new freeField($obj, $obj, nformat($row->saldo)); $edit->{$obj}->ind = $i; $obj = 'abono_' . $i; $edit->{$obj} = new inputField('Abono', $obj); $edit->{$obj}->db_name = 'abono'; $edit->{$obj}->rel_id = 'itccli'; $edit->{$obj}->rule = "max_length[18]|numeric|positive|callback_chabono[{$i}]"; $edit->{$obj}->css_class = 'inputnum'; $edit->{$obj}->showformat = 'decimal'; $edit->{$obj}->autocomplete = false; $edit->{$obj}->disable_paste = true; $edit->{$obj}->size = 15; $edit->{$obj}->maxlength = 18; $edit->{$obj}->ind = $i; $edit->{$obj}->onfocus = 'itsaldo(this,' . round($row->saldo, 2) . ');'; $obj = 'ppago_' . $i; $edit->{$obj} = new inputField('Pronto Pago', $obj); $edit->{$obj}->db_name = 'ppago'; $edit->{$obj}->rel_id = 'itccli'; $edit->{$obj}->rule = "max_length[18]|numeric|positive|callback_chppago[{$i}]"; $edit->{$obj}->css_class = 'inputnum'; $edit->{$obj}->showformat = 'decimal'; $edit->{$obj}->autocomplete = false; $edit->{$obj}->disable_paste = true; $edit->{$obj}->size = 15; $edit->{$obj}->maxlength = 18; $edit->{$obj}->ind = $i; $edit->{$obj}->onchange = "itppago(this,'{$i}');"; $i++; } $edit->tipo_doc = new dropdownField('Tipo doc.', 'tipo_doc'); if ($i > 0) { $edit->tipo_doc->option('AB', 'Abono'); $edit->tipo_doc->option('NC', 'Nota de credito'); } else { $edit->tipo_doc->insertValue = 'AN'; } $edit->tipo_doc->option('AN', 'Anticipo'); $edit->tipo_doc->style = 'width:140px;'; $edit->tipo_doc->onchange = 'chtipodoc()'; $edit->tipo_doc->rule = 'enum[AB,NC,AN]|required'; //************************************************************** //fin de campos para detalle,inicio detalle2 sfpa // $edit->tipo = new dropdownField('Tipo <#o#>', 'tipo_<#i#>'); $edit->tipo->option('', 'Ninguno'); $edit->tipo->options('SELECT tipo, nombre FROM tarjeta WHERE activo=\'S\' ORDER BY nombre'); $edit->tipo->db_name = 'tipo'; $edit->tipo->rel_id = 'sfpa'; $edit->tipo->style = 'width:160px;'; $edit->tipo->rule = 'condi_required|callback_chsfpatipo[<#i#>]'; $edit->tipo->insertValue = 'EF'; $edit->tipo->onchange = 'sfpatipo(<#i#>)'; $edit->tipo->rule = 'callback_chbmovrep[<#i#>]'; $edit->sfpafecha = new dateonlyField('Fecha', 'sfpafecha_<#i#>'); $edit->sfpafecha->rel_id = 'sfpa'; $edit->sfpafecha->db_name = 'fecha'; $edit->sfpafecha->size = 12; $edit->sfpafecha->maxlength = 8; $edit->sfpafecha->calendar = false; $edit->sfpafecha->rule = 'condi_required|chitfecha|callback_chtipo[<#i#>]'; $edit->numref = new inputField('Numero <#o#>', 'num_ref_<#i#>'); $edit->numref->size = 15; $edit->numref->db_name = 'num_ref'; $edit->numref->rel_id = 'sfpa'; $edit->numref->rule = 'trim|condi_required|callback_chtipo[<#i#>]|callback_chnumrep[<#i#>]'; $edit->banco = new dropdownField('Banco <#o#>', 'banco_<#i#>'); $edit->banco->option('', 'Ninguno'); $edit->banco->options('SELECT cod_banc,nomb_banc FROM tban WHERE cod_banc<>\'CAJ\' UNION ALL SELECT codbanc,CONCAT_WS(\' \',TRIM(banco),numcuent) FROM banc WHERE tbanco <> \'CAJ\' ORDER BY nomb_banc'); $edit->banco->db_name = 'banco'; $edit->banco->rel_id = 'sfpa'; $edit->banco->style = 'width:200px;'; $edit->banco->rule = 'condi_required|callback_chtipo[<#i#>]'; $edit->itmonto = new inputField('Monto <#o#>', 'itmonto_<#i#>'); $edit->itmonto->db_name = 'monto'; $edit->itmonto->css_class = 'inputnum'; $edit->itmonto->rel_id = 'sfpa'; $edit->itmonto->size = 14; $edit->itmonto->rule = 'condi_required|positive|callback_chmontosfpa[<#i#>]'; $edit->itmonto->showformat = 'decimal'; $edit->itmonto->autocomplete = false; //************************************************************** // Fin detalle 2 (sfpa) // $edit->buttons('add_rel'); $edit->build(); if ($edit->on_success()) { $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => $edit->_dataobject->pk); echo json_encode($rt); } else { if ($this->genesal) { $conten['cana'] = $i; $conten['form'] =& $edit; $conten['title'] = heading("Cobro a cliente: ({$cliente}) {$scli_nombre} {$scli_rif}"); $data['content'] = $this->load->view('view_ccli.php', $conten); } else { if ($edit->on_error()) { $rt = array('status' => 'B', 'mensaje' => preg_replace('/<[^>]*>/', '', $edit->error_string), 'pk' => null); echo json_encode($rt); } if ($edit->on_success()) { $rt = array('status' => 'A', 'mensaje' => 'Registro guardado', 'pk' => null); echo json_encode($rt); } } } }