//agreagdo para llevar la contabiliada inmediatamente (Online) public void contabilizarOnline(String prefijo, int numero, DateTime fecha, String Almacen) { if (ConfigurationManager.AppSettings["ContabilidadAutomatica"] == null) { return; } if (Convert.ToBoolean(ConfigurationManager.AppSettings["ContabilidadAutomatica"]) == false) { return; } // debe contabilizar SIEMPRE TODOS los documentos que envian a este proceso if (DBFunctions.RecordExist("select mnit_nit from CEMPRESA WHERE MNIT_NIT = '891409088' ")) // AYCO SI PREGUNTA POR LA PARAMETRIZACION DEL PREFIJO PARA CONTABILIZAR { if (!DBFunctions.RecordExist("select pdoc_codigo from PPUCHECHOSCABECERA where pdoc_codigo = '" + prefijo + "'")) { return; } } string errC, tipoProceso = ""; ArrayList prefijos = new ArrayList(); miInterface = new InterfaceContable(); // miInterface.Almacen = sede; miInterface.Anio = (int)fecha.Year; miInterface.DiaInicial = (int)fecha.Day; miInterface.DiaFinal = (int)fecha.Day; miInterface.Mes = (int)fecha.Month; //DateTime.Now.Month; //miInterface.Mes = fecha.Month; miInterface.Usuario = HttpContext.Current.User.Identity.Name.ToLower(); miInterface.Procesado = DateTime.Now.Date; prefijos.Add(prefijo); miInterface.Prefijos = prefijos; try { tipoProceso = DBFunctions.SingleData("SELECT COALESCE(TPRO_PROCESO,'') FROM PPUCHECHOSCABECERA where PDOC_CODIGO='" + prefijo + "';"); } catch { tipoProceso = ""; // SE toma este proceso por defecto Utils.MostrarAlerta(Response, "El tipo de proceso aun no se ha creado."); } try { miInterface.Armar_Cabecera(prefijo, numero); } catch (Exception ex) { errC = lbInfoCab.Text = ex.Source + " " + ex.StackTrace + " " + ex.Message; //goto Errores; } try { // miInterface.Armar_Detalles(prefijo, numero, numero, tipoProceso); } catch (Exception ex) { errC = lbInfoCab.Text = ex.Source + " " + ex.StackTrace + " " + ex.Message; //goto Errores; } try { if (tipoProceso == "CJ") { string temP = DBFunctions.SingleData("SELECT PDOC_CODIGO FROM MANULACIONCAJA WHERE PDOC_CODIANUL = '" + prefijo + "' AND MANU_NUMEANUL = " + numero + " "); string temN = DBFunctions.SingleData("SELECT coalesce(MCAJ_NUMERO,0) FROM MANULACIONCAJA WHERE PDOC_CODIANUL = '" + prefijo + "' AND MANU_NUMEANUL = " + numero + " "); miInterface.Armar_Detalles_Anulaciones(temP, Convert.ToInt32(temN), prefijo, Convert.ToInt32(numero), "CJ"); miInterface.Armar_Cabecera(prefijo, numero); } } catch { } try { if (tipoProceso == "TS") { string temP = DBFunctions.SingleData("SELECT MTES_CODIGO FROM DTESORERIAANULACION WHERE PDOC_CODIGO = '" + prefijo + "' AND MTES_NUMERO = " + numero + " "); string temN = DBFunctions.SingleData("SELECT coalesce(MTES_NUMEANUL,0) FROM DTESORERIAANULACION WHERE PDOC_CODIGO = '" + prefijo + "' AND MTES_NUMERO = " + numero + " "); miInterface.Armar_Detalles_Anulaciones(temP, Convert.ToInt32(temN), prefijo, Convert.ToInt32(numero), "TS"); miInterface.Armar_Cabecera(prefijo, numero); } } catch { } if (!miInterface.GuardarInterface()) { if (lbInfo != null) { lbInfo.Text = miInterface.Mensajes; } Tools.Mail envMail = new Mail(); // envMail.EnviarMail() } }
/// <summary> /// Seleccion1_ECargarG : función delegada del evento DCargarG /// </summary> /// <param name="Inicio">ListBox origen</param> /// <param name="Final">ListBox destino</param> private void Seleccion1_ECargarG(ListBox Inicio, ListBox Final) { //Cambio hecho porque no se validan las fechas de ingreso, y cuando estan fuera de rango generan error bool fechaValida = true; try{ DateTime fecha1 = Convert.ToDateTime(this.año.SelectedValue + "-" + this.Mes.SelectedValue + "-" + this.DiaInicial.SelectedValue); }catch { fechaValida = false; } try{ DateTime fecha1 = Convert.ToDateTime(this.año.SelectedValue + "-" + this.Mes.SelectedValue + "-" + this.DiaFinal.SelectedValue); }catch { fechaValida = false; } if (!fechaValida) { Utils.MostrarAlerta(Response, "El rango de fechas ingresado no es valido. Revise por favor!"); return; } int ini = Int32.Parse(DiaInicial.SelectedValue.ToString()); int fin = Int32.Parse(DiaFinal.SelectedValue.ToString()); DateTime fechaCont = new DateTime(Convert.ToInt32(DBFunctions.SingleData("SELECT PANO_ANO FROM CCONTABILIDAD")), Convert.ToInt32(DBFunctions.SingleData("SELECT PMES_MES FROM CCONTABILIDAD")), 1); DateTime fechaContI = new DateTime(Convert.ToInt32(año.SelectedValue), Convert.ToInt32(Mes.SelectedValue), 1); string prefE = "", errC = "", numE = "", errS = "", errE = ""; if (ini > fin) { lbInfo.Text = "El dia Inicial no puede ser mayor al dia Final"; return; } if (ConfigurationManager.AppSettings["AMSDebug"] == null && DateTime.Compare(fechaContI, fechaCont) == -1) { if (!DBFunctions.RecordExist("SELECT TTIPE_CODIGO FROM SUSUARIO WHERE TTIPE_CODIGO = 'AS' AND SUSU_LOGIN = '******' ")) // Utils.MostrarAlerta(Response, "Atención, este mes ya está cerrado, su perfil SI permite realizar este proceso"); // else { lbInfo.Text = errE = "El usuario " + HttpContext.Current.User.Identity.Name + " ha utilizado una fecha no válida."; goto Errores; } } // else { // if (Final.Items.Count > 0) { ArrayList prefijos = new ArrayList(); for (int i = 0; i < Final.Items.Count; i++) { prefijos.Add(Final.Items[i].Value); } miInterface = new InterfaceContable(); miInterface.Almacen = this.sede.SelectedValue; if (Todas.Checked) { miInterface.TodosAlmacenes = true; } else { miInterface.TodosAlmacenes = false; } miInterface.Anio = Convert.ToInt32(this.año.SelectedValue); miInterface.DiaInicial = Convert.ToInt32(this.DiaInicial.SelectedValue); miInterface.DiaFinal = Convert.ToInt32(this.DiaFinal.SelectedValue); miInterface.Mes = Convert.ToInt32(this.Mes.SelectedValue); miInterface.Usuario = HttpContext.Current.User.Identity.Name.ToLower(); miInterface.Procesado = DateTime.Now.Date; miInterface.Prefijos = prefijos; //Hago un for para recorrer los distintos prefijos escogidos for (int i = 0; i < miInterface.Prefijos.Count; i++) { //Ahora por cada prefijo armo las distintas cabeceras de //los comprobantes prefE = prefijos[i].ToString(); try { miInterface.Armar_Cabecera(prefijos[i].ToString()); } catch (Exception ex) { errC = lbInfoCab.Text = ex.Source + " " + ex.StackTrace + " " + ex.Message; goto Errores; } //Si se produjo algún error al crear la cabecera lo muestro //en el label y rompo ese ciclo para no seguir generando //cabeceras if (miInterface.MensajesCabecera != string.Empty) { errC = lbInfoCab.Text = miInterface.MensajesCabecera; goto Errores; } //Si no se produjo error al generar cabeceras, empiezo a recorrer dichas cabeceras //para sacar los distintos detalles que existan para cada cabecera int numeroInicial = 999999999; int numeroFinal = 0; string tipoProceso = ""; for (int j = 0; j < miInterface.TablaCabecera.Rows.Count; j++) { if (miInterface.TablaCabecera.Rows[j][0].ToString() == prefE) { if (Convert.ToInt32(miInterface.TablaCabecera.Rows[j][1]) > numeroFinal) { numeroFinal = Convert.ToInt32(miInterface.TablaCabecera.Rows[j][1]); } if (Convert.ToInt32(miInterface.TablaCabecera.Rows[j][1]) < numeroInicial) { numeroInicial = Convert.ToInt32(miInterface.TablaCabecera.Rows[j][1]); } tipoProceso = miInterface.TablaCabecera.Rows[j][9].ToString(); numE = miInterface.TablaCabecera.Rows[j][1].ToString(); } } // un solo ciclo por todo el prefijo if (numeroInicial != 999999999 && numeroFinal != 0) { try { // miInterface.Armar_Detalles(miInterface.TablaCabecera.Rows[j][0].ToString(), Convert.ToInt32(miInterface.TablaCabecera.Rows[j][1]), miInterface.TablaCabecera.Rows[j][9].ToString()); miInterface.Armar_Detalles(prefijos[i].ToString(), numeroInicial, numeroFinal, tipoProceso); } catch (Exception ex) { errS = this.lbInfo.Text = ex.Source + " " + ex.StackTrace + " " + ex.Message; goto Errores; } } if (miInterface.erroresSql.Length > 0) { errS = this.lbInfo.Text = miInterface.erroresSql; goto Errores; } // } aqui estaba el fin del ciclo for // UN SOLO CICLO POR TODO EL PREFIJO string pref, nume; //Anulaciones Caja if (miInterface.AnulacionesCaja) { int desdeC = miInterface.TablaCabecera.Rows.Count; Hashtable prefijosA = miInterface.Armar_Cabecera_AnulacionesCaja(prefijos[i].ToString()); int hastaC = miInterface.TablaCabecera.Rows.Count; for (int j = desdeC; j < hastaC; j++) { pref = miInterface.TablaCabecera.Rows[j][0].ToString(); nume = miInterface.TablaCabecera.Rows[j][1].ToString(); string[] tem = prefijosA[pref + "," + nume].ToString().Split(','); miInterface.Armar_Detalles_Anulaciones(tem[0], Convert.ToInt32(tem[1]), pref, Convert.ToInt32(nume), "CJ"); } } //Anulaciones Tesoreria if (miInterface.AnulacionesTesoreria) { int desdeC = miInterface.TablaCabecera.Rows.Count; Hashtable prefijosA = miInterface.Armar_Cabecera_AnulacionesTesoreria(prefijos[i].ToString()); int hastaC = miInterface.TablaCabecera.Rows.Count; for (int j = desdeC; j < hastaC; j++) { pref = miInterface.TablaCabecera.Rows[j][0].ToString(); nume = miInterface.TablaCabecera.Rows[j][1].ToString(); string[] tem = prefijosA[pref + "," + nume].ToString().Split(','); miInterface.Armar_Detalles_Anulaciones(tem[0], Convert.ToInt32(tem[1]), pref, Convert.ToInt32(nume), "TS"); } } } // aqui termina el ciclo del for ? dtCabeceras = miInterface.TablaCabecera; dtDetalles = miInterface.TablaDetalles; Session["dtCabeceras"] = dtCabeceras; Session["dtDetalles"] = dtDetalles; ConstruirGrilla(); Session["Rep"] = RenderHtml(); RenderHtml(); DeshabilitarControles(); } else { Utils.MostrarAlerta(Response, "No se seleccionaron hechos que procesar, no se inicio el proceso"); } } return; Errores: //MailMessage MyMail = new MailMessage(); //string msgMail = ""; //MyMail.From = ConfigurationManager.AppSettings["EmailFrom"]; //MyMail.To = ConfigurationManager.AppSettings["EmailContabilidad"]; //MyMail.Subject = "AMS - Error Contabilizacion Hechos Economicos (" + this.año.SelectedValue + ", " + this.Mes.SelectedValue + ", " + this.DiaInicial.SelectedValue + " a " + DiaFinal.SelectedValue + ")"; //msgMail += "Se ha presentado un error en la contabilización de los hechos economicos:<br>"; //msgMail += "Fecha: " + this.año.SelectedValue + ", " + this.Mes.SelectedValue + ", " + this.DiaInicial.SelectedValue + " a " + DiaFinal.SelectedValue + "<br>"; //if (errE.Length > 0) msgMail += errE + "<br>"; //if (prefE.Length > 0) msgMail += "Prefijo: " + prefE + "<br>"; //if (numE.Length > 0) msgMail += "Número: " + numE + "<br>"; //if (errC.Length > 0) msgMail += miInterface.MensajesCabecera + "<br>"; //if (errS.Length > 0) msgMail += "Error al generar el detalle: " + errS + "<br>"; //MyMail.Body = (msgMail); //MyMail.BodyFormat = MailFormat.Html; try { //SmtpMail.Send(MyMail); } catch (Exception e) { //lbInfo.Text = "No se pudo enviar el correo informando el siguiente error:<br>" + msgMail; } }