/// <summary> /// Este metodo es para generar las solicitudes de cheques dependiendo de los filtros colocados /// </summary> private void ProcesarInformacionSOlicitudChqeue() { if (cbGenerarSolicitudPorLote.Checked == true) { //VALIDAMOS LA VARIABLE DE SESION if (Session["IdUsuario"] != null) { if (string.IsNullOrEmpty(txtMontoMinimo.Text.Trim())) { txtMontoMinimo.Text = "500"; } //ELIMINAMOS LOS REGISTROS DE LA TABLA DE COMISIONES UtilidadesAmigos.Logica.Comunes.Reportes.ProcesarInformacionReporteComisionIntermediario EliminarRegistros = new Logica.Comunes.Reportes.ProcesarInformacionReporteComisionIntermediario( Convert.ToDecimal(Session["IdUsuario"]), "", 0, "", "", "", "", "", "", "", "", "", "", "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, DateTime.Now, DateTime.Now, "DELETE"); EliminarRegistros.ProcesarInformacion(); //ELIMINAMOS LOS DATOS DE LA TABLA DE PROCESO EN LOTE UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionRegistrosSolicitudChequeLote EliminarDatosLote = new Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionRegistrosSolicitudChequeLote( 0, Convert.ToDecimal(Session["IdUsuario"]), 0, 0, DateTime.Now, DateTime.Now, DateTime.Now, 0, false, "DELETE"); EliminarDatosLote.ProcesarInformacion(); //BUSCAMOS LAS COMISIONES int?_CodigoOficinaFiltro = ddlSeleccionaroficina.SelectedValue != "-1" ? Convert.ToInt32(ddlSeleccionaroficina.SelectedValue) : new Nullable <int>(); int?_CodigoRamoFiltro = ddlSeleccionarRamo.SelectedValue != "-1" ? Convert.ToInt32(ddlSeleccionarRamo.SelectedValue) : new Nullable <int>(); var GenerarComisiones = ObjDataGeneral.Value.GenerarComisionIntermediario( Convert.ToDateTime(txtFechaDesde.Text), Convert.ToDateTime(txtFechaHasta.Text), null, _CodigoOficinaFiltro, _CodigoRamoFiltro, Convert.ToDecimal(txtMontoMinimo.Text), null, null, null, null, null); foreach (var n in GenerarComisiones) { //GUARDAMOS LOS DATOS EN LA TABLA DE COMISIONES UtilidadesAmigos.Logica.Comunes.Reportes.ProcesarInformacionReporteComisionIntermediario GuardarComisiones = new Logica.Comunes.Reportes.ProcesarInformacionReporteComisionIntermediario( (decimal)Session["IdUsuario"], n.Supervisor, Convert.ToInt32(n.Codigo), n.Intermediario, n.Oficina, n.NumeroIdentificacion, n.CuentaBanco, n.TipoCuenta, n.Banco, n.Cliente, n.Recibo, n.Fecha, n.Factura, n.FechaFactura, n.Moneda, n.Poliza, n.Producto, Convert.ToDecimal(n.Bruto), Convert.ToDecimal(n.Neto), Convert.ToDecimal(n.PorcientoComision), Convert.ToDecimal(n.Comision), Convert.ToDecimal(n.Retencion), Convert.ToDecimal(n.AvanceComision), Convert.ToDecimal(n.ALiquidar), Convert.ToDecimal(n.CantidadRegistros), Convert.ToDateTime(txtFechaDesde.Text), Convert.ToDateTime(txtFechaHasta.Text), "INSERT"); GuardarComisiones.ProcesarInformacion(); } //CONSULTAMOS LOS DATOS DE MANERA RESUMIDA var ConsultarComisionResumida = ObjDataGeneral.Value.ComisionIntermediarioResumido(Convert.ToDecimal(Session["IdUsuario"])); int CodigoIntermediarioResumido = 0; decimal ALiquidar = 0; decimal MontoMinimo = Convert.ToDecimal(txtMontoMinimo.Text); foreach (var n2 in ConsultarComisionResumida) { CodigoIntermediarioResumido = Convert.ToInt32(n2.CodigoIntermediario); ALiquidar = Convert.ToDecimal(n2.ALiquidar); if (ALiquidar < MontoMinimo) { //GUARDAMOS LOS DATOS DE LOS REGISTROS QUE NO SE PROCESAROS UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionRegistrosSolicitudChequeLote GuardarInformacionlote = new Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionRegistrosSolicitudChequeLote( 0, Convert.ToDecimal(Session["IdUsuario"]), CodigoIntermediarioResumido, 0, DateTime.Now, Convert.ToDateTime(txtFechaDesde.Text), Convert.ToDateTime(txtFechaHasta.Text), ALiquidar, false, "INSERT"); GuardarInformacionlote.ProcesarInformacion(); } else { //GENERAMOS LAS COLICITUDES DE CHEQUES GenerarSolicitudChequeIntermediario("", CodigoIntermediarioResumido.ToString(), Convert.ToInt32(ddlSeleccionarBanco.SelectedValue), Convert.ToDateTime(txtFechaDesde.Text), Convert.ToDateTime(txtFechaHasta.Text), Convert.ToDecimal(txtMontoMinimo.Text)); } } //btnProcesarSolicitud.Enabled = false; //btnVolverAtras.Visible = true; ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('Hola');", true); //EXPORTAMOS LOS REGISTROS GENERADOS A EXEL var GenerarRegistrosExel = (from n in ObjDataMantenimientos.Value.BuscaRegistrosSolicitudChequeLote((decimal)Session["IdUsuario"], null) select new { Registro_No = n.IdRegistro, GeneradoPor = n.CreadoPor, Codigo_Intermediario = n.CodigoIntermediario, Nombre_Intermediario = n.Intermediario, Numero_Solicitud_Cheque = n.NumeroSolicitud, Fecha_Proceso = n.FechaProceso, Validado_Desde = n.ValidadoDesde, Validado_Hasta = n.ValidadoHasta, Valor_Solicitud = n.MontoSolicitud, Estatus = n.Estatus }).ToList(); UtilidadesAmigos.Logica.Comunes.ExportarDataExel.exporttoexcel("Proceso Solicitud Cheque Lote", GenerarRegistrosExel); } else { FormsAuthentication.SignOut(); FormsAuthentication.RedirectToLoginPage(); } } //GENERAMOS LA SOLICITUD DE CHEQUE DE MANERA INDIVIDUAL else if (cbGenerarSolicitudPorLote.Checked == false) { GenerarSolicitudChequeIntermediario("", txtCodigoIntermediario.Text, Convert.ToInt32(ddlSeleccionarBanco.SelectedValue), Convert.ToDateTime(txtFechaDesde.Text), Convert.ToDateTime(txtFechaHasta.Text), 0); } }
private void GenerarSolicitudChequeIntermediario(string TipoChequeParametro, string CodigoIntermediarioParametro, int CodigoBancoParametro, DateTime FechaDesdeParametro, DateTime FechaHastaParametro, decimal MontoMinimoParametro) { try { //VALIDAMOS QUE EL CODIGO DE INTERMEDIARIO INGRESADO ES VALIDO var Validar = ObjDataMantenimientos.Value.BuscaListadoIntermediario( CodigoIntermediarioParametro); if (Validar.Count() < 1) { string Mensaje = "El codigo " + txtCodigoIntermediario.Text + " no existe, favor de verificar e intentar nuevamente"; ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('" + Mensaje + "');", true); } else { if (Session["IdUsuario"] != null) { //SACAMOS EL NOMBRE DEL USUARURIO QUE VA A HACER EL PROCESO string UsuarioProcesa = ""; var SacarNombreusuario = ObjDataGeneral.Value.BuscaUsuarios(Convert.ToDecimal(Session["IdUsuario"])); foreach (var nUsuario in SacarNombreusuario) { UsuarioProcesa = nUsuario.Persona; } //SACAMOS LOS DATOS DEL INTERMEDIARIOS NECESARIOS PARA CREAR EL PROVEEDOR EN CASO DE QUE NO EXISTE //DECLARAMOS LAS VARIABLES NECESARIAS int Compania = 0; int Codigo = 0; int TipoCliente = 0; int TipoRnc = 0; string RNC = ""; string NombreCliente = ""; string Direccion = ""; int Ubicacion = 0; decimal LimiteCredito = 0; decimal Descuento = 0; int CondicionPago = 0; int Estatus = 0; DateTime FechaUltPago = DateTime.Now; decimal MontoUltPago = 0; decimal Balance = 0; string UsuarioAdiciona = ""; DateTime FechaAdiciona = DateTime.Now; string UsuarioModifica = ""; DateTime FechaModifica = DateTime.Now; int CodigoRnc = 0; decimal PorcComision = 0; int CodMoneda = 0; string TelefonoCasa = ""; string TelefonoOficina = ""; string Celular = ""; string Fax = ""; string Beeper = ""; string Email = ""; int TipoPago = 0; int Banco = 0; string CuentaBanco = ""; string Contacto = ""; string TipoCuentaBanco = ""; string ClaseProveedor = ""; foreach (var n in Validar) { Compania = Convert.ToInt32(n.Compania); Codigo = Convert.ToInt32(n.Codigo); TipoCliente = 16; TipoRnc = Convert.ToInt32(n.TipoRnc); RNC = n.Rnc; NombreCliente = n.NombreVendedor; Direccion = n.Direccion; Ubicacion = Convert.ToInt32(n.Ubicacion); LimiteCredito = 0; Descuento = 0; CondicionPago = 0; Estatus = Convert.ToInt32(n.Estatus0); FechaUltPago = DateTime.Now; MontoUltPago = 0; Balance = 0; UsuarioAdiciona = ""; FechaAdiciona = DateTime.Now; UsuarioModifica = ""; FechaModifica = DateTime.Now; CodigoRnc = 0; PorcComision = Convert.ToDecimal(n.PorcientoComision); CodMoneda = 1; TelefonoCasa = n.Telefono; TelefonoOficina = n.TelefonoOficina; Celular = n.Celular; Fax = n.Fax; Beeper = n.Beeper; Email = n.Email; TipoPago = 0; Banco = Convert.ToInt32(n.Banco); CuentaBanco = n.CtaBanco; Contacto = n.Agencia; TipoCuentaBanco = n.TipoCuentaBco; ClaseProveedor = "01 - Agente"; } //BUSCAMOS EL REGISTRO int CodigoProveedorSacardo = 0; var BuscarProveedor = ObjDataMantenimientos.Value.BuscaProveedores(null, RNC, NombreCliente); if (BuscarProveedor.Count() < 1) { //GUARDAMOS EL REGISTRO Y SACAMOS EL CODIGO DEL REGISTRO CREADO UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionProveedoresSolicitud Procesar = new Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionProveedoresSolicitud( Compania, 0, TipoCliente, TipoRnc, RNC, NombreCliente, Direccion, Ubicacion, LimiteCredito, Descuento, CondicionPago, Estatus, FechaUltPago, MontoUltPago, Balance, UsuarioAdiciona, FechaAdiciona, UsuarioModifica, FechaModifica, CodigoRnc, PorcComision, CodMoneda, TelefonoCasa, TelefonoOficina, Celular, Fax, Beeper, Email, TipoPago, Banco, CuentaBanco, Contacto, TipoCuentaBanco, ClaseProveedor, "INSERT"); Procesar.ProcesarInformacion(); var SacarCodigoProveedor = ObjDataMantenimientos.Value.BuscaProveedores( new Nullable <int>(), RNC, NombreCliente); foreach (var n in SacarCodigoProveedor) { CodigoProveedorSacardo = Convert.ToInt32(n.Codigo); } } else { var SacarCodigoProveedor = ObjDataMantenimientos.Value.BuscaProveedores( new Nullable <int>(), RNC, NombreCliente); foreach (var n in SacarCodigoProveedor) { CodigoProveedorSacardo = Convert.ToInt32(n.Codigo); } } //ELIMINAMOS LOS REGISTROS DE LA TABLA DE MONTOS UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarMontosSolicitudCheques Eliminar = new Logica.Comunes.ProcesarMantenimientos.ProcesarMontosSolicitudCheques( Convert.ToDecimal(Session["IdUsuario"]), Codigo, 0, 0, 0, 0, 0, 0, "DELETE"); Eliminar.ProcesarInformacion(); //PROCESAMOS LA INFORMACION PARA SACAR LOS DATOS DE LOS MONTOS PARA GUARDAR LA SOLICITUD int? _OficinaFiltro = ddlSeleccionaroficina.SelectedValue != "-1" ? Convert.ToInt32(ddlSeleccionaroficina.SelectedValue) : new Nullable <int>(); int? _RamoFiltro = ddlSeleccionarRamo.SelectedValue != "-1" ? Convert.ToInt32(ddlSeleccionarRamo.SelectedValue) : new Nullable <int>(); string _CodigoIntermediario = string.IsNullOrEmpty(txtCodigoIntermediario.Text.Trim()) ? null : txtCodigoIntermediario.Text.Trim(); var SacarLosMontosProcesados = ObjDataGeneral.Value.GenerarComisionIntermediario( FechaDesdeParametro, FechaHastaParametro, _CodigoIntermediario, _OficinaFiltro, _RamoFiltro, Convert.ToDecimal(txtMontoMinimo.Text), null, null, null, Convert.ToDecimal(txttasa.Text), null); foreach (var nMontos in SacarLosMontosProcesados) { decimal BrutoSacado = 0, NetoSacado = 0, Comisionsacada = 0, Retencionsacada = 0, Avancesacado = 0, ALiquidarSacada = 0; BrutoSacado = Convert.ToDecimal(nMontos.Bruto); NetoSacado = Convert.ToDecimal(nMontos.Neto); Comisionsacada = Convert.ToDecimal(nMontos.Comision); Retencionsacada = Convert.ToDecimal(nMontos.Retencion); Avancesacado = Convert.ToDecimal(nMontos.AvanceComision); ALiquidarSacada = Convert.ToDecimal(nMontos.ALiquidar); //GUARDAMOS LOS REGISTROS UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarMontosSolicitudCheques Procesar = new Logica.Comunes.ProcesarMantenimientos.ProcesarMontosSolicitudCheques( Convert.ToDecimal(Session["IdUsuario"]), Codigo, BrutoSacado, NetoSacado, Comisionsacada, Retencionsacada, Avancesacado, ALiquidarSacada, "INSERT"); Procesar.ProcesarInformacion(); } //SACAMOS LA SUMA DE LOS MONTOS GUARDADOS ANTERIORMENTE decimal SumaBruto = 0, SumaNeto = 0, SumaComision = 0, SumaRetencion = 0, SumaAvance = 0, SumaALiquidar = 0, Acumulado = 0, Total = 0; var SacarSumaMontos = ObjDataMantenimientos.Value.BuscaMontos( Convert.ToDecimal(Session["IdUsuario"]), Codigo); foreach (var nSumaMontos in SacarSumaMontos) { SumaBruto = (decimal)nSumaMontos.Bruto; SumaNeto = (decimal)nSumaMontos.Neto; SumaComision = (decimal)nSumaMontos.Comision; SumaRetencion = (decimal)nSumaMontos.Retencion; SumaAvance = (decimal)nSumaMontos.Avance; SumaALiquidar = (decimal)nSumaMontos.ALiquidar; Acumulado = (decimal)nSumaMontos.Acumulado; Total = (decimal)nSumaMontos.Total; } //GUARDAMOS LOS DATOS DE LA SOLICITUD DE CHEQUE if (rbEndosable.Checked == true) { TipoChequeParametro = "Si"; } else if (rbNoEndosable.Checked == true) { TipoChequeParametro = "No"; } UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionSolicitudCheques ProcesarSolicitud = new Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionSolicitudCheques( 0, "" , 0, 0, 0, "", DateTime.Now, 0, "", 0, "", 0, "", TipoRnc, RNC, CodigoProveedorSacardo, "", "", TipoChequeParametro, CodigoBancoParametro, CuentaBanco, Total, "", "", 0, DateTime.Now, 0, DateTime.Now, UsuarioProcesa, UsuarioProcesa, DateTime.Now, DateTime.Now, 0, DateTime.Now, UsuarioProcesa, "", "", UsuarioProcesa, 0, "N", 0, FechaDesdeParametro, FechaHastaParametro, SumaBruto, SumaComision, SumaRetencion, "INSERT"); ProcesarSolicitud.ProcesarInformacion(); //SACAMOS EL NUMERO DE SOLICITUD GENERADO int NumeroSolicitudGenerado = UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.SacarUltimoNumeroSolicitudGenerada.SacarNumeroSolicitud(CodigoProveedorSacardo); string NumeroSolicitudConvertida = NumeroSolicitudGenerado.ToString(); //GUARDAMOS LOS DATOS DE LAS CUENTAS CONTABLES //CUENTA 1203 UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionSolicitudCuentas Cuenta1 = new Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionSolicitudCuentas( 30, "N", 13, NumeroSolicitudGenerado, 0, "1203", 1, "", "2", Total, 0, 0, FechaDesdeParametro, FechaHastaParametro, "INSERT"); Cuenta1.ProcesarInformacion(); //CUENTA 2503 UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionSolicitudCuentas Cuenta2 = new Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionSolicitudCuentas( 30, "N", 13, NumeroSolicitudGenerado, 0, "2503", 0, "", "1", SumaComision, 0, 0, FechaDesdeParametro, FechaHastaParametro, "INSERT"); Cuenta2.ProcesarInformacion(); //CUENTA 2706 if (TipoRnc != 0) { UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionSolicitudCuentas Cuenta3 = new Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionSolicitudCuentas( 30, "N", 13, NumeroSolicitudGenerado, 0, "2706", 0, "", "2", SumaRetencion, 0, 0, FechaDesdeParametro, FechaHastaParametro, "INSERT"); Cuenta3.ProcesarInformacion(); } int CodigoIntermediarioActualizar = string.IsNullOrEmpty(txtCodigoIntermediario.Text.Trim()) ? 0 : Convert.ToInt32(txtCodigoIntermediario.Text); CambioStatusMontoAcumulado(CodigoIntermediarioActualizar); if (cbGenerarSolicitudPorLote.Checked == true) { //GUARDAMOS EL REGISTRO UtilidadesAmigos.Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionRegistrosSolicitudChequeLote GuardarLote = new Logica.Comunes.ProcesarMantenimientos.ProcesarInformacionRegistrosSolicitudChequeLote( 0, (decimal)Session["IdUsuario"], Convert.ToInt32(CodigoIntermediarioParametro), Convert.ToDecimal(NumeroSolicitudGenerado), DateTime.Now, FechaDesdeParametro, FechaHastaParametro, SumaALiquidar, true, "INSERT"); GuardarLote.ProcesarInformacion(); } else { ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('Numero de Solicitud Generada " + NumeroSolicitudConvertida + "');", true); } } else { FormsAuthentication.SignOut(); FormsAuthentication.RedirectToLoginPage(); } } } catch (Exception) { } }