";
print "location.href='../sigesp_inicio_sesion.php'";
print "";
}
$dat=$_SESSION["la_empresa"];
$ls_logusr=$_SESSION["la_logusr"];
require_once("class_funciones_banco.php");
$io_fun_banco= new class_funciones_banco();
$io_fun_banco->uf_load_seguridad("SCB","sigesp_scb_p_carta_orden.php",$ls_permisos,$la_seguridad,$la_permisos);
$ls_ruta = "txt/disco_banco/";
?>
Carta Orden Única Nota de Débito
uf_conectar();
$msg = new class_mensajes();
$obj_con = new ddlb_conceptos($con);
$io_grid = new grid_param();
$in_class_carta = new sigesp_scb_c_carta_orden();
$io_sql = new class_sql($con);
$arre=$_SESSION["la_empresa"];
$ls_empresa=$arre["codemp"];
require_once("sigesp_scb_c_movbanco.php");
$in_classmovbanco=new sigesp_scb_c_movbanco($la_seguridad);
require_once("sigesp_scb_c_config.php");
$in_classconfig=new sigesp_scb_c_config($la_seguridad);
if (array_key_exists("chktipvia",$_POST))
{
$li_tipvia = $_POST["chktipvia"];
}
else
{
$li_tipvia = 0;
}
$ls_checked = "";
if ($li_tipvia=='1')
{
$ls_checked = 'checked';
$ls_style = 'style="visibility:visible"';
}
else
{
$ls_style = 'style="visibility:hidden"';
}
if( array_key_exists("operacion",$_POST))
{
$ls_operacion= $_POST["operacion"];
$ls_mov_operacion="ND";
$ls_documento=$_POST["txtdocumento"];
$ls_codban=$_POST["txtcodban"];
$ls_denban=$_POST["txtdenban"];
$ls_cuenta_banco=$_POST["txtcuenta"];
$ls_dencuenta_banco=$_POST["txtdenominacion"];
$ls_provbene="";
$ls_desproben="";
$ls_selnin = '-';
$ls_tipo=$_POST["cmbtipdes"];
$ls_disabled = 'disabled="disabled"';
if ($ls_tipo=='P')
{
$ls_style = 'style="visibility:hidden"';
$ls_selpro = 'selected';
$ls_selben = '';
}
elseif($ls_tipo=='B')
{
$ls_disabled = '';
if ($li_tipvia=='1')
{
$ls_style = 'style="visibility:visible"';
}
else
{
$ls_style = 'style="visibility:hidden"';
}
$ls_selben = 'selected';
$ls_selpro = '';
}
else
{
$ls_selpro = "";
$ls_selben = "";
}
$ls_chevau="";
$ldec_montomov= $_POST["totalchq"];
$ldec_monobjret=$_POST["txtmonobjret"];
$ldec_montoret= $_POST["txtretenido"];
$ldec_montomov= str_replace(".","",$ldec_montomov);
$ldec_montomov= str_replace(",",".",$ldec_montomov);
$ldec_monobjret=str_replace(".","",$ldec_monobjret);
$ldec_monobjret=str_replace(",",".",$ldec_monobjret);
$ldec_montoret= str_replace(".","",$ldec_montoret);
$ldec_montoret= str_replace(",",".",$ldec_montoret);
$ls_estmov = $_POST["estmov"];
$ls_codconmov = $_POST["codconmov"];
$ls_desmov = $_POST["txtconcepto"];
$ls_cuenta_scg= $_POST["txtcuenta_scg"];
$ldec_disponible=$_POST["txtdisponible"];
$ld_fecha = $_POST["txtfecha"];
$ls_metban = $_POST["txtmetban"];
$ls_nommetban = $_POST["txtnommetban"];
$ls_codbene = $_POST["txtcodbene"];
$ls_nombene = $_POST["txtnombene"];
}
else
{
$ls_operacion= "NUEVO" ;
$ls_estmov="N";
$ls_metban = "";
$ls_nommetban = "";
$ls_tipo = "-";
}
$li_row=0;
$li_rows_spg=0;
$li_rows_ret=0;
$li_rows_spi=0;
function uf_load_datos_recepcion($as_codemp,$as_numsol,&$ab_valido)
{
global $io_sql,$msg,$io_function;
$ab_valido = true;
$ls_procede = "";
$ls_sql = " SELECT a.procede as procedencia ".
" FROM cxp_rd a,cxp_dt_solicitudes b ".
" WHERE b.codemp='".$as_codemp."' ".
" AND b.numsol='".$as_numsol."' ".
" AND a.numrecdoc=b.numrecdoc ".
" AND a.codtipdoc=b.codtipdoc ".
" AND a.ced_bene=b.ced_bene ".
" AND a.cod_pro=b.cod_pro ";
$rs_data = $io_sql->select($ls_sql);
if ($rs_data===false)
{
$ab_valido = false;
$msg->message("PROCESO->sigesp_scb_p_carta_orden.php;Metodo:uf_load_datos_recepcion;Error en consulta, ".$io_function->uf_convertirmsg($io_sql->message));
}
else
{
if ($row=$io_sql->fetch_row($rs_data))
{
$ls_procede = $row["procedencia"];
}
}
return $ls_procede;
}
function uf_load_datos_beneficiario($as_codemp,$as_cedbene,$as_nombene,$as_apebene,&$ab_valido,$ls_procede)
{
global $io_sql,$msg,$io_function;
$lb_valido = true;
if ($ls_procede=='SCVSOV')
{
$ls_sql = " SELECT distinct a.codcueban ,b.nomper as nombene,b.apeper as apebene,b.nacper as nacben
FROM sno_personalnomina a , sno_personal b
WHERE a.codemp='".$as_codemp."' AND b.cedper='$as_cedbene' AND a.codemp=b.codemp AND a.codper=b.codper ";
}
else
{
$ls_sql = " SELECT ctaban as codcueban,nombene,apebene,nacben ".
" FROM rpc_beneficiario ".
" WHERE codemp='".$as_codemp."' ".
" AND ced_bene='".$as_cedbene."' ";
}
$rs_data = $io_sql->select($ls_sql);
if ($rs_data===false)
{
$lb_valido = false;
$msg->message("PROCESO->sigesp_scb_p_carta_orden.php;Metodo:uf_load_datos_recepcion;Error en consulta, ".$io_function->uf_convertirmsg($io_sql->message));
}
else
{
if ($row=$io_sql->fetch_row($rs_data))
{
$rs_datos["nombene"] = $row["nombene"];
$rs_datos["ctabene"] = $row["codcueban"];
$rs_datos["apebene"] = $row["apebene"];
$rs_datos["nacper"] = $row["nacben"];
}
}
return $rs_datos;
}
if($ls_operacion=="CARGAR_DT")
{
$in_class_carta->uf_cargar_programaciones($ls_tipo,$ls_provbene,$ls_codban,$ls_cuenta_banco,$object,$li_rows,$li_tipvia);
}
function uf_nuevo()
{
global $ls_mov_operacion;
global $la_seguridad;
$ls_mov_operacion="ND";
global $ls_opepre;
$ls_opepre="";
global $ls_documento;
$ls_documento="";
global $ls_codban;
$ls_codban="";
global $ls_denban;
$ls_denban="";
global $ls_estmov;
$ls_estmov="N";
global $ls_cuenta_banco;
$ls_cuenta_banco="";
global $ls_dencuenta_banco;
$ls_dencuenta_banco="";
global $ls_provbene;
$ls_provbene="----------";
global $ls_desproben;
$ls_desproben="Ninguno";
global $ls_tipo;
$ls_tipo="-";
global $ls_chevau;
require_once("sigesp_scb_c_movbanco.php");
$in_classmovbanco=new sigesp_scb_c_movbanco($la_seguridad);
global $ls_empresa;
global $ldec_disponible;
$ldec_disponible="";
$ls_chevau = $in_classmovbanco->uf_generar_voucher($ls_empresa);
global $ld_fecha;
global $ldec_montomov;
$ldec_montomov="";
global $ldec_monobjret;
$ldec_monobjret="";
global $ldec_montoret;
$ldec_montoret="";
global $ls_codconmov;
$ls_codconmov='---';
global $ls_desmov;
$ls_desmov="";
global $ls_cuenta_scg;
$ls_cuenta_scg="";
global $li_rows;
global $li_temp;
global $object;
global $ld_fecha;
global $ls_metban;
global $ls_nommetban;
$ls_metban = "";
$ls_nommetban = "";
global $ls_style,$ls_disabled;
$ls_style = 'style="visibility:hidden"';
$ls_disabled = 'disabled="disabled"';
global $ls_selnin,$ls_selpro,$ls_selben;
$ls_selnin = '-';
$ls_selpro = "";
$ls_selben = "";
global $ls_codbene;
global $ls_nombene;
$ls_codbene=$_SESSION["la_empresa"]["cedben"];
$ls_nombene=$_SESSION["la_empresa"]["nomben"];
if(array_key_exists("la_deducciones",$_SESSION))
{
unset($_SESSION["la_deducciones"]);
}
$li_temp=1;
$li_rows=$li_temp;
$ld_fecha=date("d/m/Y");
$object[$li_temp][1] = "";
$object[$li_temp][2] = "";
$object[$li_temp][3] = "";
$object[$li_temp][4] = "";
$object[$li_temp][5] = "";
$object[$li_temp][6] = "";
$object[$li_temp][7] = "";
$object[$li_temp][8] = "";
$object[$li_temp][9] = "";
$object[$li_temp][10] = "";
}
$title[1]=""; $title[2]="Solicitud"; $title[3]="Concepto"; $title[4]="Proveedor/Beneficiario"; $title[5]="Monto"; $title[6]="Monto Pendiente"; $title[7]="Monto a Pagar"; $title[8]="Retenido"; $title[9]="Banco"; $title[10]="Cuenta";
$grid="grid";
if($ls_operacion == "NUEVO")
{
$ls_operacion= "" ;
uf_nuevo();
}
if ($ls_operacion=="GUARDAR")
{
require_once("../shared/class_folder/class_datastore.php");
$ds_sol_cancel=new class_datastore();
$ds_banco_nomina=new class_datastore();
require_once("../sno/sigesp_sno_c_metodo_banco.php");
$_SESSION["la_nomina"]["codnom"]='00000';
$_SESSION["la_nomina"]["peractnom"]='';
$io_metodobanco=new sigesp_sno_c_metodo_banco();
$ls_codemp=$dat["codemp"];
if($ls_tipo=='P')
{
$ls_codpro=$ls_provbene;
$ls_cedbene="----------";
}
else
{
$ls_codpro="----------";
$ls_cedbene=$ls_provbene;
}
$li_totalRows = $_POST["totalrows"];
$arr_movbco["codban"] = $ls_codban;
$arr_movbco["ctaban"] = $ls_cuenta_banco;
$ld_fecdb=$io_function->uf_convertirdatetobd($ld_fecha);
$arr_movbco["codope"] = 'ND';
$arr_movbco["fecha"] = $ld_fecha;
$arr_movbco["estmov"] = $ls_estmov;
$ls_numcarord = $ls_documento;
$ls_probentemp = "";
$li_aux=0;
$li_cont = 0;
$in_classmovbanco->io_sql->begin_transaction();
for($li_i=1;$li_i<=$li_totalRows;$li_i++)
{
if(array_key_exists("chk".$li_i,$_POST))
{
$li_aux++;
$ls_numsol = $_POST["txtnumsol".$li_i];
$ldec_monsol = $_POST["txtmonsol".$li_i];
$ls_codproben= $_POST["txtcodproben".$li_i];
$ls_ctaban = $_POST["txtctaban".$li_i];
$ldec_monsol = str_replace(".","",$ldec_monsol);
$ldec_monsol = str_replace(",",".",$ldec_monsol);
$ldec_montopendiente=$_POST["txtmontopendiente".$li_i];
$ldec_montopendiente=str_replace(".","",$ldec_montopendiente);
$ldec_montopendiente=str_replace(",",".",$ldec_montopendiente);
$ldec_monto = $_POST["txtmonto".$li_i];
$ldec_monto = str_replace(".","",$ldec_monto);
$ldec_monto = str_replace(",",".",$ldec_monto);
$ldec_monobjret = $_POST["txtmonobjret".$li_i];
$ldec_monobjret = str_replace(".","",$ldec_monobjret);
$ldec_monobjret = str_replace(",",".",$ldec_monobjret);
$ls_desproben=$_POST["txtnomproben".$li_i];
$ls_consol=$_POST["txtconsol".$li_i];
$ls_tipocta=$_POST["txtcodtipcta".$li_i];
$ls_codbanbene=$_POST["txtcodban".$li_i];
$ls_codfuefin=$_POST["txtcodfuefin".$li_i];
if($ls_tipo=='P')
{
$ls_codpro = $ls_codproben;
$ls_cedbene = "----------";
}
else
{
$ls_codpro = "----------";
$ls_cedbene = $ls_codproben;
}
$ls_procede = uf_load_datos_recepcion($ls_codemp,$ls_numsol,$lb_valido);//Encontrar la procedencia de la Recepcion de Documentos asociadas a la Solicitud de Pago.
$rs_datosbene=uf_load_datos_beneficiario($ls_codemp,$ls_cedbene,$ls_nombene,$ls_apebene,$lb_valido,$ls_procede);
$ls_ctaban=$rs_datosbene["ctabene"];
if($ls_codban==$ls_codbanbene)
{
if($ls_ctaban!="")
{
if ($lb_valido)
{
if ($ls_procede=='SCVSOV')
{
$li_cont++;
$aa_seguridad["empresa"]=$ls_codemp;
$aa_seguridad["sistema"]="SNO";
$aa_seguridad["logusr"]=$_SESSION["la_logusr"];
$aa_seguridad["ventanas"]="sigesp_sno_r_listadobanco.php";
$ds_banco["codper"][$li_cont]= $io_function->uf_cerosizquierda($ls_cedbene,10);
$ds_banco["cedper"][$li_cont]= $ls_cedbene;
$ds_banco["nomper"][$li_cont]= $rs_datosbene["nombene"];
$ds_banco["apeper"][$li_cont]= $rs_datosbene["apebene"];
$ds_banco["nacper"][$li_cont]= $rs_datosbene["nacper"];
$ds_banco["codcueban"][$li_cont]=$rs_datosbene["ctabene"];
$ds_banco["tipcuebanper"][$li_cont]=$ls_tipocta;
$ds_banco["monnetres"][$li_cont]=$ldec_monto;
}
}
if($li_aux==1)
{
$arr_movbco["mov_document"] = $ls_numcarord;
$arr_movbco["objret"] = $ldec_monobjret;
$lb_valido=$in_class_carta->uf_procesar_movbanco($ls_codban,$ls_cuenta_banco,$ls_numcarord,$ls_mov_operacion,$ld_fecha,$ls_desmov,$ls_codconmov,$ls_codpro,$ls_codbene,$ls_nombene,$ldec_montomov,$ldec_monobjret,$ldec_montoret,$ls_chevau,$ls_estmov,0,0,'T','SCBCOR','',$ls_tipo,$ls_numcarord);
}
$lb_valido=$in_class_carta->uf_insert_fuentefinancimiento($ls_codemp,$ls_codban,$ls_cuenta_banco,$ls_numcarord,'ND',$ls_estmov,$ls_codfuefin);
///////////////// Guardo el detalle de las solicitudes de pago cancelades en esta carta orden ///////////////////
$lb_valido=$in_class_carta->uf_procesar_dtmov($ls_codemp, $ls_codban, $ls_cuenta_banco, $ls_numcarord, $ls_mov_operacion,'N', $ls_codpro, $ls_cedbene, $ls_numsol, $ldec_monto,$rs_datosbene["ctabene"]);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if($ldec_montopendiente==$ldec_monto)
{
$ls_estsol='C'; //Cancelado
}
else
{
$ls_estsol='P';//Programado
}
$lb_valido=$in_class_carta->uf_procesar_carta_orden($ls_codban,$ls_cuenta_banco,$ls_numcarord,$ls_mov_operacion,$ls_numsol,$ls_estmov,$ldec_monto,$ls_estsol);
if($lb_valido)//Segundo
{
$ldec_montotot=$ldec_montomov-$ldec_montoret;
$lb_valido=$in_classmovbanco->uf_procesar_dt_contable($arr_movbco,$ls_cuenta_scg,'SCBCOR',$ls_desmov,$ls_numcarord,'H',$ldec_monto,$ldec_monobjret,false,'00000');
if($lb_valido)//Tercer if
{
$ls_ctaprovbene=$in_class_carta->uf_select_ctaprovbene($ls_tipo,$ls_codproben,$as_codban,$as_ctaban);
//Reemplazo los valores de banco y cuenta banco por los del proveedor.
$lb_valido=$in_classmovbanco->uf_procesar_dt_contable($arr_movbco,$ls_ctaprovbene,'CXPSOP',$ls_desmov,$ls_numsol,'D',$ldec_monto,$ldec_monobjret,false,'00000');
if($lb_valido)//Cuarto if
{
$ldec_monto_spg=0;
$in_class_carta->uf_buscar_dt_cxpspg($ls_numsol);
if(array_key_exists("codestpro1",$in_class_carta->ds_sol->data))
{
$li_total_rows=$in_class_carta->ds_sol->getRowCount("codestpro1");
for($li_x=1;$li_x<=$li_total_rows;$li_x++)
{
$ldec_monto_aux=$in_class_carta->ds_sol->getValue("monto",$li_x);
$ldec_monto_spg=$ldec_monto_spg + $ldec_monto_aux;
}
$ldec_montospg2=0;
for($li_y=1;$li_y<=$li_total_rows;$li_y++)
{
$ldec_monto_aux=$in_class_carta->ds_sol->getValue("monto",$li_y);
if($lb_valido)
{
if($ls_estsol!="C")
{
$ldec_MontoSpgDet = round(round($ldec_monto_aux , 2 ) *($ldec_monto / $ldec_monto_spg),2);
$ldec_montospg2= $ldec_montospg2 + $ldec_MontoSpgDet;
}
else
{
$ldec_MontoSpgDet =round($ldec_monto_aux,2);
$ldec_montospg2 = $ldec_montospg2 + $ldec_MontoSpgDet;
}
if( ($ldec_MontoSpgDet > $ldec_monto)&&($ls_estsol!="C"))
{
$ldec_MontoSpgDet = $ldec_monto;
$ldec_montospg2 = $ldec_MontoSpgDet;
}
if( ($ldec_montospg2 > $ldec_monto)&&($ls_estsol!="C"))
{
$ldec_MontoSpgDet = $ldec_MontoSpgDet - ($ldec_montospg2 - $ldec_monto);
}
if(($ldec_montospg2 < $ldec_monto)&&($li_y==$li_total_rows)&&($ldec_montospg2!=$ldec_monto_spg))
{
$ldec_MontoSpgDet = $ldec_MontoSpgDet + ($ldec_monto - $ldec_montospg2);
}
$ls_estcla = $in_class_carta->ds_sol->getValue("estcla",$li_y);
$ls_codestpro1 = $in_class_carta->ds_sol->getValue("codestpro1",$li_y);
$ls_codestpro2 = $in_class_carta->ds_sol->getValue("codestpro2",$li_y);
$ls_codestpro3 = $in_class_carta->ds_sol->getValue("codestpro3",$li_y);
$ls_codestpro4 = $in_class_carta->ds_sol->getValue("codestpro4",$li_y);
$ls_codestpro5 = $in_class_carta->ds_sol->getValue("codestpro5",$li_y);
$ls_programa = $ls_codestpro1.$ls_codestpro2.$ls_codestpro3.$ls_codestpro4.$ls_codestpro5;
$ls_cuentaspg = $in_class_carta->ds_sol->getValue("spg_cuenta",$li_y);
$lb_valido = $in_classmovbanco->uf_procesar_dt_gasto($ls_codban,$ls_cuenta_banco,$ls_numcarord,'ND',$ls_estmov,$ls_programa,$ls_cuentaspg,$ls_numsol,$ls_desmov,'CXPSOP',$ldec_MontoSpgDet,'PG',$ls_estcla);
}//End if
}//End for
}
}//End cuarto if
}//End tercer if
}//End segundo if
$ls_probentemp=$ls_codproben;
}
else
{
$msg->message("El proveedor o Beneficiario ".$ls_desproben." no tiene cuenta bancaria asociada");
}
}
else
{
$msg->message("El proveedor o Beneficiario ".$ls_desproben." tiene asociado un banco distinto al del movimiento");
}
}
}//End for
$ds_banco_nomina->data=$ds_banco;
$ls_ruta = "txt/disco_banco/".$ls_numcarord;
@mkdir($ls_ruta,0755);
$lb_valido = $io_metodobanco->uf_metodo_banco($ls_ruta,$ls_nommetban,'','','',$ld_fecha,$ldec_montotot,$ls_ctaban,$ds_banco_nomina,$ls_metban,$ls_consol,$la_seguridad);
if($lb_valido)
{
$in_classmovbanco->io_sql->commit();
$msg->message("Movimiento registrado");
$ls_procede = "";
$ls_codigo=$in_classconfig->uf_buscar_seleccionado();
if($ls_codigo!="000")//distinto de chequevoucher
$ls_pagina="reportes/sigesp_scb_rpp_cartaorden_pdf.php?codigo=$ls_codigo&codban=$ls_codban&ctaban=$ls_cuenta_banco&numdoc=$ls_numcarord&chevau=&codope=ND&tipproben=$ls_tipo";
else
$ls_pagina="reportes/sigesp_scb_rpp_voucher_pdf.php?codban=$ls_codban&ctaban=$ls_cuenta_banco&numdoc=$ls_numcarord&chevau=&codope=ND";
?>
io_sql->rollback();
$msg->message("No pudo registrarse el movimiento".$in_class_carta->is_msg_error." ".$in_classmovbanco->is_msg_error);
}
uf_nuevo();
}
if($ls_tipo=='-')
{
$rb_n="checked";
$rb_p="";
$rb_b="";
}
if($ls_tipo=='P')
{
$rb_n="";
$rb_p="checked";
$rb_b="";
}
if($ls_tipo=='B')
{
$rb_n="";
$rb_p="";
$rb_b="checked";
}
?>