protected void registrarTransaccionesRecibo(Recibo recibo) { DataTable dtResultadoProceso = configurarDataTableResultado(); string scriptCliente = ""; try { int idComprobante; int idFormaIngreso; int idTipoPagoConsignacion; int idPago; int valorTotalRecibo; SqlConnection cn; int idTerceroUsuario = Convert.ToInt32(Session["idTerceroUsuario"].ToString()); DateTime hoy = DateTime.Today; string fechaActual = hoy.Year.ToString() + hoy.Month.ToString().PadLeft(2, '0') + hoy.Day.ToString().PadLeft(2, '0'); string connetionString = WebConfigurationManager.ConnectionStrings["ListB_Connection"].ToString(); int idCajaUsuario = rap.consultarCajaUsuarioTesoreriaAbierta(idTerceroUsuario); int idTipoPagoRap = Convert.ToInt32(inputFormaPago.Value); int idTipoPagoContabilidad = rap.castTipoPagoRapToContabilidad(idTipoPagoRap); try { valorTotalRecibo = recibo.valorTotalRecibo(); int idTercero = mPersistentecia.listarTerceroRelacionReferenciaRecibo(recibo.referencia, "ListB_Connection"); if (idTercero > 0 && valorTotalRecibo > 0 && recibo.estadoRecibo == true && recibo.idFactura == 0 && idCajaUsuario > 0 && (idTipoPagoContabilidad > 0 || soloFacturacion.Checked == true)) { cn = new SqlConnection(connetionString); cn.Open();//abrir conexion SqlTransaction tr; tr = cn.BeginTransaction(); try { //Crear factura para los servicios rap.facturarServicios(recibo, idTerceroUsuario, cn, tr); if (!soloFacturacion.Checked) { idComprobante = rap.insertarEncabezadoComprobante(recibo.idReferencia, idTerceroUsuario, idTipoPagoContabilidad, cn, tr); //Asignar Valor idComprobante a input para link a reporte txtIdComprobante.Value = idComprobante.ToString(); //Insetar TblForma ingreso para Efectivo y consignacion if (idTipoPagoContabilidad == 3 || idTipoPagoContabilidad == 4) { idFormaIngreso = rap.insertarFormaIngreso(idComprobante, idTipoPagoContabilidad, valorTotalRecibo, cn, tr); //Insetar tblConsignacion si es esta forma de ingreso if (idTipoPagoContabilidad == 3)//Consignacion { idTipoPagoConsignacion = rap.insertarTipoPagoConsignacion(idTercero, idFormaIngreso, 5, fechaActual, valorTotalRecibo, cn, tr); } } idPago = rap.insertarPago(recibo.idReferencia, idComprobante, valorTotalRecibo, idTipoPagoContabilidad, cn, tr); rap.integrarComprobanteConsignacion(idPago, Convert.ToInt32(Session["idUsuario"].ToString()), cn, tr); rap.aprobarRelacion(recibo, idComprobante); scriptCliente += " setLinkToReportComprob(\"" + rutaReporteComprobIngreso + "\",\"" + idComprobante + " \");"; }//if (!soloFacturacion.Checked) //Commit la transacción tr.Commit(); scriptCliente += "MostrarResultadoProcesoReferencia();"; } catch (Exception ex) { Console.WriteLine(ex.ToString()); tr.Rollback(); scriptCliente = "sweetAlert(\"Ha ocurrido un error en el proceso, por favor inténtalo de nuevo.\"); console.log(\" " + ex.Message.Replace("'", "").Replace("\"", "").Replace(Environment.NewLine, "") + " \"); mostrarWellInfo();"; } } else if (recibo.idFactura > 0) { scriptCliente = "sweetAlert(\"Esta referencia ya tiene una factura y un pago asociado\"); mostrarWellInfo(); mostrarWellInfoPago();"; } else if (recibo.estadoRecibo == false) { scriptCliente = "sweetAlert(\"Esta referencia no está vigente para este concepto de pago\");"; } else if (idCajaUsuario == 0) { scriptCliente = "sweetAlert(\"No hay una caja abierta para este usuario para la fecha " + DateTime.Today.ToLongDateString() + "\"); mostrarWellInfo();"; } else if (idTipoPagoContabilidad == 0) { scriptCliente = "sweetAlert(\"Seleccione la forma de pago para esta transacción \"); mostrarWellInfo(); $('.wellAcciones').fadeIn();"; } else if (valorTotalRecibo == 0) { scriptCliente = "sweetAlert(\"Este recibo no tiene conceptos de pago relacionados\"); mostrarWellInfo();"; } //Consultar Resultado del proceso DataTable rowResultadoProceso = rap.consultarResultadoRegistroTransacciones(recibo.idReferencia); if (rowResultadoProceso.Rows.Count > 0) { dtResultadoProceso.ImportRow(rowResultadoProceso.Rows[0]); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } catch (Exception e) { throw (e); } ScriptManager.RegisterStartupScript(Page, Page.GetType(), "script2", scriptCliente, true); gvResultadoProceso.DataSource = dtResultadoProceso; gvResultadoProceso.DataBind(); }