public string getDatosEconomicos(string sSegMesProy, string sMonedaImportes2) { StringBuilder sb = new StringBuilder(); try { SqlDataReader dr = DATOECO.CatalogoProduccionTransferencia(int.Parse(sSegMesProy), sMonedaImportes2); sb.Append("<table id=tblDatos style='width: 960px;' mantenimiento=1>"); sb.Append("<colgroup>"); sb.Append("<col style='width:425px;' />"); sb.Append("<col style='width:430px;' />"); sb.Append("<col style='width:100px;' />"); sb.Append("</colgroup>"); sb.Append("<tbody>"); while (dr.Read()) { sb.Append("<tr onmouseover=TTip(event) style='height:20px;'>"); sb.Append("<td style='padding-left:5px;'><nobr class='NBR W380'>" + dr["t329_denominacion"].ToString() + "</nobr></td>"); sb.Append("<td><nobr class='NBR W410'>" + dr["t376_motivo"].ToString() + "</nobr></td>"); sb.Append("<td style='text-align:right; padding-right:2px;'>" + double.Parse(dr["importe"].ToString()).ToString("N") + "</td>"); sb.Append("</tr>"); } dr.Close(); dr.Dispose(); sb.Append("</tbody>"); sb.Append("</table>"); return("OK@#@" + sb.ToString() + "@#@" + MONEDA.getDenominacionImportes(sMonedaImportes2)); } catch (Exception ex) { return("Error@#@" + Errores.mostrarError("Error al obtener los datos económicos", ex)); } }
private string Procesar(string sAnno, string strNodos) { string sResul = ""; string sEstadoMes = ""; int nSMPSN = 0; try { #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion PROYECTOSUBNODO.EliminarObraEnCurso(tr, int.Parse(sAnno), strNodos); DataSet ds = PROYECTOSUBNODO.ObtenerProyectosObraEnCurso(tr, int.Parse(sAnno), strNodos); foreach (DataRow oPSN in ds.Tables[0].Rows) { nSMPSN = (int)oPSN["t325_idsegmesproy_dic"]; if (nSMPSN == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)oPSN["t305_idproyectosubnodo"], int.Parse(sAnno) * 100 + 12); nSMPSN = SEGMESPROYECTOSUBNODO.Insert(tr, (int)oPSN["t305_idproyectosubnodo"], int.Parse(sAnno) * 100 + 12, sEstadoMes, 0, 0, false, 0, 0); } //Insertamos en diciembre el importe del 20% en negativo. DATOECO.Insert(tr, nSMPSN, Constantes.nIdClaseObraEnCurso, "20% Obra en Curso Fin de Año", decimal.Parse(oPSN["20_Obra_Curso_Anno"].ToString()) * -1, null, null, null); nSMPSN = (int)oPSN["t325_idsegmesproy_ene"]; if (nSMPSN == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)oPSN["t305_idproyectosubnodo"], (int.Parse(sAnno) + 1) * 100 + 1); nSMPSN = SEGMESPROYECTOSUBNODO.Insert(tr, (int)oPSN["t305_idproyectosubnodo"], (int.Parse(sAnno) + 1) * 100 + 1, sEstadoMes, 0, 0, false, 0, 0); } //Insertamos en diciembre el importe del 20% en positivo. DATOECO.Insert(tr, nSMPSN, Constantes.nIdClaseObraEnCurso, "20% Obra en Curso Fin de Año", decimal.Parse(oPSN["20_Obra_Curso_Anno"].ToString()), null, null, null); } ds.Dispose(); Conexion.CommitTransaccion(tr); sResul = "OK"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al realizar el paso del 20% de la obra en curso.", ex, false); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string Grabar(string sSegMesProy, string strDatos) { string sResul = "", sElementosInsertados = ""; int nAux = 0; #region apertura de conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { string[] aConsumo = Regex.Split(strDatos, "///"); foreach (string oConsumo in aConsumo) { if (oConsumo == "") { continue; } string[] aValores = Regex.Split(oConsumo, "##"); //0. Opcion BD. "I", "D" //1. ID nota gasvi //2. Profesional (para el motivo) //3. idDatoEco switch (aValores[0]) { case "I": nAux = DATOECO.InsertConsumoGasvi(tr, int.Parse(sSegMesProy), int.Parse(aValores[1]), Utilidades.unescape(aValores[2])); if (sElementosInsertados == "") { sElementosInsertados = nAux.ToString(); } else { sElementosInsertados += "//" + nAux.ToString(); } break; case "D": DATOECO.Delete(tr, int.Parse(aValores[3])); break; } } Conexion.CommitTransaccion(tr); sResul = "OK@#@" + sElementosInsertados; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al importar las imputaciones de GASVI", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
private string procesarCierre(string sOrigen, string sAnomesADM, string sPSN, string sCualidad, string sSegMesProy, string sIDProyecto, string sAnomes, string sIdSegMesProy) { string sResul = ""; string sEstadoMes = ""; bool bReintentar = true, bHayQueAjustar = false; decimal nImporteAjuste = 0; #region apertura de conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { //comprobar que no se hayan abierto meses anteriores. if (sOrigen == "ADM" || int.Parse(sAnomes) == PROYECTOSUBNODO.ObtenerPrimerMesAbierto(tr, int.Parse(sPSN))) { if (sCualidad == "C") { SEGMESPROYECTOSUBNODO.GenerarMesEnTransaccion(tr, int.Parse(sIDProyecto)); SqlDataReader dr = SEGMESPROYECTOSUBNODO.ObtenerAjuste(tr, int.Parse(sSegMesProy)); if (dr.Read()) { bHayQueAjustar = ((int)dr["ajuste"] == 1) ? true : false; nImporteAjuste = decimal.Parse(dr["Importe_Ajuste"].ToString()); } dr.Close(); dr.Dispose(); if (bHayQueAjustar) { //buscar el mes máximo para ese PSN y crear uno posterior para el ajuste int nUltAnomes = PROYECTOSUBNODO.ObtenerUltimoMes(tr, int.Parse(sPSN)); sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, int.Parse(sPSN), Fechas.AddAnnomes(nUltAnomes, 1)); int nNuevoSegMes = SEGMESPROYECTOSUBNODO.Insert(tr, int.Parse(sPSN), Fechas.AddAnnomes(nUltAnomes, 1), sEstadoMes, 0, 0, false, 0, 0); DATOECO.Insert(tr, nNuevoSegMes, Constantes.AjusteProdCont, "Ajuste de producción y contratación", nImporteAjuste, null, null, null); } } if (sOrigen == "ADM") { SEGMESPROYECTOSUBNODO.CerrarMesADM(tr, int.Parse(sPSN), int.Parse(sAnomesADM)); } else { SEGMESPROYECTOSUBNODO.Cerrar(tr, int.Parse(sSegMesProy)); } sResul = "OK@#@"; } else { sResul = "OK@#@NO"; } Conexion.CommitTransaccion(tr); if ((bool)Session["ALERTASPROY_ACTIVAS"] && sIdSegMesProy != "") { try { sIdSegMesProyGenerarDialogos = sIdSegMesProy; ThreadStart ts = new ThreadStart(GenerarDialogos); Thread workerThread = new Thread(ts); workerThread.Start(); //SEGMESPROYECTOSUBNODO.GenerarDialogosDeAlertas(sIdSegMesProy); } catch (Exception) { } } } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al procesar el cierre.", ex, bReintentar); } finally { Conexion.Cerrar(oConn); } return(sResul); }
public string getDatos(string sSegMesProy, string sEstadoMes, string sEstadoProy, string sModeloImputacionGasvi, string sMonedaImportes2) { StringBuilder sb = new StringBuilder(); StringBuilder sb2 = new StringBuilder(); try { sLectura = "false"; if (sModeloImputacionGasvi == "1") { sLectura = "true"; } else { if (sEstadoProy == "H" || sEstadoProy == "C" || (bool)Session["MODOLECTURA_PROYECTOSUBNODO"] || sEstadoMes == "C") { sLectura = "true"; } if ((sEstadoProy == "A" || sEstadoProy == "P") && Session["ADMINISTRADOR_PC_ACTUAL"].ToString() == "SA") { sLectura = "false"; } } if (sEstadoProy == "H" || sEstadoProy == "C" || (bool)Session["MODOLECTURA_PROYECTOSUBNODO"]) { sLecturaInsMes = "true"; } string sMano = " MAM"; if (sLectura == "true") { sMano = " MA"; } sb.Append("<table class='texto" + sMano + "' id='tblDatos' style='width: 450px;'>"); sb.Append("<colgroup>"); sb.Append("<col style='width:195px;' />"); sb.Append("<col style='width:195px;' />"); sb.Append("<col style='width:60px;' />"); sb.Append("</colgroup>"); sb.Append("<tbody>"); sb2.Append("<table class='texto" + sMano + "' id='tblDatos2' style='width: 450px;'>"); sb2.Append("<colgroup>"); sb2.Append("<col style='width:10px;' />"); sb2.Append("<col style='width:185px;' />"); sb2.Append("<col style='width:195px;' />"); sb2.Append("<col style='width:60px;' />"); sb2.Append("</colgroup>"); sb2.Append("<tbody>"); DataSet ds = DATOECO.ObtenerConsumosGASVI(int.Parse(sSegMesProy), sMonedaImportes2); foreach (DataRow oFila in ds.Tables[0].Rows) { sb.Append("<tr id='" + oFila["t420_idreferencia"].ToString() + "' bd='' style='height:20px;' "); sb.Append("profesional=\"" + Utilidades.escape(oFila["Interesado"].ToString()) + "\" "); sb.Append("ondblclick=\"mdng(" + oFila["t420_idreferencia"].ToString() + ",'" + oFila["TipoNota"].ToString() + "')\" "); // if (sLectura == "false") sb.Append(" onclick=mm(event) onmousedown=DD(event) "); //sb.Append("><td><nobr class='NBR W180' ondblclick=\"mdng(" + oFila["t420_idreferencia"].ToString() + ",'" + oFila["TipoNota"].ToString() + "')\" style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:70px;'>Profesional:</label>" + oFila["Interesado"].ToString() + "<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + oFila["t303_denominacion"].ToString() + "<br><label style='width:70px;'>Empresa:</label>" + oFila["EMPRESA"].ToString() + "<br><label style='width:70px;'>Responsable:</label>" + oFila["Responsable_proyecto"].ToString() + "<br><label style='width:70px;'>Aprobación:</label>" + ((DateTime)oFila["t420_fAprobada"]).ToShortDateString() + "] hideselects=[off]\">(Ref: " + int.Parse(oFila["t420_idreferencia"].ToString()).ToString("#,###") + ") " + oFila["Interesado"].ToString() + "</nobr></td>"); sb.Append("><td style='padding-left:5px;'><nobr class='NBR W180' ondblclick=\"mdng(" + oFila["t420_idreferencia"].ToString() + ",'" + oFila["TipoNota"].ToString() + "')\" style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:70px;'>Profesional:</label>" + oFila["Interesado"].ToString() + "<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + oFila["t303_denominacion"].ToString() + "<br><label style='width:70px;'>Responsable:</label>" + oFila["Responsable_proyecto"].ToString() + "<br><label style='width:70px;'>Aprobación:</label>" + ((DateTime)oFila["t420_fAprobada"]).ToShortDateString() + "] hideselects=[off]\">(Ref: " + int.Parse(oFila["t420_idreferencia"].ToString()).ToString("#,###") + ") " + oFila["Interesado"].ToString() + "</nobr></td>"); sb.Append("<td><nobr class='NBR W180'>" + oFila["t420_concepto"].ToString() + "</nobr></td>"); sb.Append("<td style='text-align:right; padding-right:2px;'>" + decimal.Parse(oFila["IMPORTE"].ToString()).ToString("N") + "</td>"); sb.Append("</tr>"); } sb.Append("</tbody>"); sb.Append("</table>"); foreach (DataRow oFila in ds.Tables[1].Rows) { sb2.Append("<tr id='" + oFila["t420_idreferencia"].ToString() + "' idDatoEco='" + oFila["t376_iddatoeco"].ToString() + "' bd='' style='height:20px;' "); sb2.Append("profesional=\"" + Utilidades.escape(oFila["Interesado"].ToString()) + "\" "); sb2.Append("ondblclick=\"mdng(" + oFila["t420_idreferencia"].ToString() + ",'" + oFila["TipoNota"].ToString() + "')\" "); // if (sLectura == "false") sb2.Append(" onclick='mm(event)' onmousedown='DD(event);' "); sb2.Append("><td><img src='../../../images/imgFN.gif'></td>"); //sb2.Append("<td><nobr class='NBR W170' ondblclick=\"mdng(" + oFila["t420_idreferencia"].ToString() + ",'" + oFila["TipoNota"].ToString() + "')\" style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:70px;'>Profesional:</label>" + oFila["Interesado"].ToString() + "<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + oFila["t303_denominacion"].ToString() + "<br><label style='width:70px;'>Empresa:</label>" + oFila["EMPRESA"].ToString() + "<br><label style='width:70px;'>Responsable:</label>" + oFila["Responsable_proyecto"].ToString() + "<br><label style='width:70px;'>Aprobación:</label>" + ((DateTime)oFila["t420_fAprobada"]).ToShortDateString() + "] hideselects=[off]\">(Ref: " + int.Parse(oFila["t420_idreferencia"].ToString()).ToString("#,###") + ") " + oFila["Interesado"].ToString() + "</nobr></td>"); sb2.Append("<td col><nobr class='NBR W170' ondblclick=\"mdng(" + oFila["t420_idreferencia"].ToString() + ",'" + oFila["TipoNota"].ToString() + "')\" style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:70px;'>Profesional:</label>" + oFila["Interesado"].ToString() + "<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + oFila["t303_denominacion"].ToString() + "<br><label style='width:70px;'>Responsable:</label>" + oFila["Responsable_proyecto"].ToString() + "<br><label style='width:70px;'>Aprobación:</label>" + ((DateTime)oFila["t420_fAprobada"]).ToShortDateString() + "] hideselects=[off]\">(Ref: " + int.Parse(oFila["t420_idreferencia"].ToString()).ToString("#,###") + ") " + oFila["Interesado"].ToString() + "</nobr></td>"); sb2.Append("<td><nobr class='NBR W180'>" + oFila["t420_concepto"].ToString() + "</nobr></td>"); sb2.Append("<td style='text-align:right; padding-right:2px;'>" + decimal.Parse(oFila["IMPORTE"].ToString()).ToString("N") + "</td>"); sb2.Append("</tr>"); } ds.Dispose(); sb2.Append("</tbody>"); sb2.Append("</table>"); return("OK@#@" + sb.ToString() + "@#@" + sb2.ToString() + "@#@" + sLectura + "@#@" + MONEDA.getDenominacionImportes(sMonedaImportes2)); } catch (Exception ex) { return("Error@#@" + Errores.mostrarError("Error al obtener los consumos de GASVI", ex)); } }
private string obtenerOF(string sAnomes, string sNodos) { StringBuilder sb = new StringBuilder(); try { string sChkBorrado = "", sChkDecalaje = ""; sb.Append("<table id='tblDatos' style='width:1230px;'>"); sb.Append("<colgroup>"); sb.Append("<col style='width:380px;' />"); sb.Append("<col style='width:320px;' />"); sb.Append("<col style='width:320px;' />"); sb.Append("<col style='width:90px;' />"); sb.Append("<col style='width:60px;' />"); sb.Append("<col style='width:60px;' />"); sb.Append("</colgroup>"); sb.Append("<tbody>"); SqlDataReader dr = DATOECO.ObtenerOrdenesFacturacionBorradoDecalaje(int.Parse(sAnomes), sNodos); while (dr.Read()) { sChkBorrado = ""; sChkDecalaje = ""; sb.Append("<tr idDE='" + dr["t376_iddatoeco"].ToString() + "' "); //id Dato Económico sb.Append("idSM='" + dr["t325_idsegmesproy"].ToString() + "' "); //id SegMes sb.Append("idPSN='" + dr["t305_idproyectosubnodo"].ToString() + "' "); // sb.Append("linea=\"" + Utilidades.escape(dr["linea"].ToString()) + "\" "); sb.Append("cr=\"" + Utilidades.escape(dr["t303_denominacion"].ToString()) + "\" "); sb.Append("responsable=\"" + Utilidades.escape(dr["responsable"].ToString()) + "\" "); sb.Append("cliente=\"" + Utilidades.escape(dr["t302_denominacion"].ToString()) + "\" "); sb.Append("moneda=\"" + Utilidades.escape(dr["t610_moneda"].ToString()) + "\" "); sb.Append("desfactura=\"" + Utilidades.escape(dr["DestFactura"].ToString()) + "\" "); sb.Append("tramitador=\"" + Utilidades.escape(dr["Tramitador"].ToString()) + "\" "); sb.Append("style='height:20px;'>"); sb.Append("<td><nobr class='NBR W375' style='noWrap:true;' title=\"cssbody=[dvbdy] cssheader=[dvhdr] header=[<img src='../../../images/info.gif' style='vertical-align:middle' /> Información] body=[<label style='width:70px;'>Proyecto:</label>" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " " + dr["t301_denominacion"].ToString().Replace((char)34, (char)39) + "<br><label style='width:70px;'>Responsable:</label>" + dr["responsable"].ToString() + "<br><label style='width:70px;'>" + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + ":</label>" + dr["t303_denominacion"].ToString() + "<br><label style='width:70px;'>Cliente:</label>" + dr["t302_denominacion"].ToString() + "] hideselects=[off]\" ondblclick='mdpsn(this)'>" + int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###") + " " + dr["t301_denominacion"].ToString() + "</nobr></td>"); sb.Append("<td>" + dr["t329_denominacion"].ToString() + "</td>"); sb.Append("<td>" + dr["t376_motivo"].ToString() + "</td>"); sb.Append("<td style='text-align:right;'>" + decimal.Parse(dr["t376_importe"].ToString()).ToString("N") + "</td>"); if ((int)dr["t376_iddatoeco_facturacion"] > 0) { sChkBorrado = "checked"; sChkDecalaje = ""; } else { sChkBorrado = ""; sChkDecalaje = "checked"; } sb.Append("<td style='text-align:center;'><input type='checkbox' class='check' style='cursor:pointer' onclick='this.parentNode.nextSibling.children[0].checked=false;countBorDec();' " + sChkBorrado + "></td>"); sb.Append("<td style=\"border-right:'';text-align:center;\"><input type='checkbox' class='check' style='cursor:pointer' onclick='this.parentNode.previousSibling.children[0].checked=false;countBorDec();' " + sChkDecalaje + "></td>"); sb.Append("</tr>"); } dr.Close(); dr.Dispose(); sb.Append("</tbody>"); sb.Append("</table>"); return("OK@#@" + sb.ToString() + "@#@" + DATOECO.ObtenerOrdenesFacturacionMes(int.Parse(sAnomes)).ToString("#,###")); } catch (Exception ex) { return("Error@#@" + Errores.mostrarError("Error al obtener las órdenes de facturación.", ex)); } }
private string procesarOF(string sAnomes, string strDatos) { string sResul = ""; string sEstadoMes = ""; int nSMP = 0; #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } return("Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex)); } #endregion try { string[] aOrdenes = Regex.Split(strDatos, "///"); foreach (string oOrden in aOrdenes) { if (oOrden == "") { continue; } //0. t376_iddatoeco //1. t325_idsegmesproy //2. t305_idproyectosubnodo //3. Opcion: B -> Borrado, D -> Decalaje string[] aValores = Regex.Split(oOrden, "##"); if (aValores[3] == "B") { DATOECO.Delete(tr, int.Parse(aValores[0])); } else { //1º Obtener el siguiente idsegmesproy al actual. nSMP = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, int.Parse(aValores[2]), Fechas.AddAnnomes(int.Parse(sAnomes), 1)); if (nSMP == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, int.Parse(aValores[2]), Fechas.AddAnnomes(int.Parse(sAnomes), 1)); nSMP = SEGMESPROYECTOSUBNODO.Insert(tr, int.Parse(aValores[2]), Fechas.AddAnnomes(int.Parse(sAnomes), 1), sEstadoMes, 0, 0, false, 0, 0); } DATOECO.UpdateDecalaje(tr, int.Parse(aValores[0]), nSMP); } } Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos de avance", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
private string Procesar() { string sResul = ""; int iNumLin = 1; try { oProyectoSubNodo = null; DataSet ds = AddDATAECO.ValidarTabla(); htProyectoSubNodo = new Hashtable(); foreach (DataRow dsProyectoSubNodo in ds.Tables[0].Rows) //Recorro tabla de proyectos-subnodos { htProyectoSubNodo.Add(dsProyectoSubNodo["t301_idproyecto"].ToString() + @"/" + dsProyectoSubNodo["t303_idnodo"].ToString(), new ProyectoSubNodo((int)dsProyectoSubNodo["t301_idproyecto"], (int)dsProyectoSubNodo["t305_idproyectosubnodo"], (int)dsProyectoSubNodo["t303_idnodo"], dsProyectoSubNodo["t305_cualidad"].ToString() ) ); } #region Abro transaccion try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion string sEstadoMes = ""; int nSegMesProy = 0; SqlDataReader dr = AddDATAECO.Catalogo(); while (dr.Read()) { oProyectoSubNodo = (ProyectoSubNodo)htProyectoSubNodo[dr["t301_idproyecto"].ToString() + "/" + dr["t303_idnodo"].ToString()]; if (oProyectoSubNodo != null) { nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"]); if (nSegMesProy == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"]); nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, oProyectoSubNodo.t305_idproyectosubnodo, (int)dr["t325_anomes"], sEstadoMes, 0, 0, false, 0, 0); } int?iNodoDestino = null; if (dr["t303_idnodo_destino"] != DBNull.Value) { iNodoDestino = (int)dr["t303_idnodo_destino"]; } int?iProvedor = null; if (dr["t315_idproveedor"] != DBNull.Value) { iProvedor = (int)dr["t315_idproveedor"]; } DATOECO.Insert(tr, nSegMesProy, (int)dr["t329_idclaseeco"], dr["t376_motivo"].ToString(), (decimal)dr["t376_importe"], iNodoDestino, iProvedor, Constantes.FicheroDatos); } else { string sMsg = "No existe un proyectosubnodo correspondiente al proyecto " + dr["t301_idproyecto"].ToString() + " y al " + Estructura.getDefCorta(Estructura.sTipoElem.NODO) + " " + dr["t303_idnodo"].ToString() + "."; dr.Close(); dr.Dispose(); throw new Exception(sMsg); } iNumLin++; } dr.Close(); dr.Dispose(); sResul = "OK@#@"; Conexion.CommitTransaccion(tr); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al procesar el fichero en la línea " + iNumLin.ToString(), ex); Conexion.CerrarTransaccion(tr); } finally { Conexion.Cerrar(oConn); } return(sResul); }
private string Procesar(string sAnoMes, string sMeses, string strNodos) { string sResul = ""; ArrayList aListCorreo = new ArrayList(); try { #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion PROYECTOSUBNODO.EliminarObraEnCursoDotacion(tr, int.Parse(sAnoMes), strNodos); DataSet ds = PROYECTOSUBNODO.ObtenerProyectosObraEnCursoDotacion(tr, int.Parse(sAnoMes), int.Parse(sMeses), strNodos); int idT325 = 0; foreach (DataRow oPSN in ds.Tables[0].Rows) { idT325 = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, (int)oPSN["t305_idproyectosubnodo"], int.Parse(sAnoMes)); if (idT325 == 0) { idT325 = SEGMESPROYECTOSUBNODO.InsertSiNoExiste(tr, (int)oPSN["t305_idproyectosubnodo"], int.Parse(sAnoMes)); } //Insertamos en el año-mes indicado el importe del saldo obra en curso en negativo. DATOECO.Insert(tr, idT325, Constantes.nIdClaseDotacionObraEnCurso, "Dotación-Ajuste Obra en Curso", decimal.Parse(oPSN["Obra_Curso_Acum"].ToString()) * -1, null, null, null); //Registramos en la cola de correo EncolarCorreo(aListCorreo, oPSN["codred_gestorprod"].ToString(), oPSN["codred_comercialhermes"].ToString(), decimal.Parse(oPSN["Obra_Curso_Acum"].ToString()).ToString("N"), int.Parse(oPSN["t306_idcontrato"].ToString()).ToString("#,###"), oPSN["t377_denominacion"].ToString(), int.Parse(oPSN["t301_idproyecto"].ToString()).ToString("#,###"), oPSN["t301_denominacion"].ToString(), sMeses.ToString() ); } ds.Dispose(); // Conexion.CommitTransaccion(tr); Conexion.CerrarTransaccion(tr); EnviarCorreos(aListCorreo); sResul = "OK"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al realizar el ajuste de la dotación de la obra en curso.", ex, false); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string Grabar(string sSerie, string sNumero, string sImpTot, string sAnoMes, string sClaseEco, string strLineas) { string sResul = "", sDesc = "", t376_motivo = "";//, sElementosInsertados = ""; int idDatoEcoFact, idDatoEcoCob, nAnoMesFact, nAnoMesCobro, idT305, idT325, t329_idclaseeco = -1; int? t313_idempresa = null; int? t302_idcliente = null; DateTime?dtFecha = System.DateTime.Today; decimal dTotalFact = decimal.Parse(sImpTot), dImpLinea, dAux, dCobro; bool bProrratear = false; string sRefCliente = ""; #region abrir conexión y transacción serializable try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { nAnoMesFact = int.Parse(sAnoMes); #region Obtener datos de la primera línea de la factura SqlDataReader drLineas = Factura.Lineas(tr, sSerie, int.Parse(sNumero)); if (drLineas.Read()) { t329_idclaseeco = int.Parse(drLineas["t329_idclaseeco"].ToString()); t376_motivo = drLineas["t376_motivo"].ToString(); if (drLineas["t376_fecha"].ToString() != "") { dtFecha = DateTime.Parse(drLineas["t376_fecha"].ToString()); } else { dtFecha = null; } if (drLineas["t313_idempresa"].ToString() != "") { t313_idempresa = int.Parse(drLineas["t313_idempresa"].ToString()); } else { t313_idempresa = null; } if (drLineas["t302_idcliente"].ToString() != "") { t302_idcliente = int.Parse(drLineas["t302_idcliente"].ToString()); } else { t302_idcliente = null; } if (drLineas["t376_refcliente"].ToString() != "") { sRefCliente = drLineas["t376_refcliente"].ToString(); } } drLineas.Close(); drLineas.Dispose(); #endregion #region Cargar Cobros agrupados por mes en el array slCobros ArrayList slCobros = new ArrayList(); SqlDataReader drCobros = Factura.CobrosMes(tr, sSerie, int.Parse(sNumero)); while (drCobros.Read()) { string[] aDatosAux = new string[] { drCobros["t325_anomes"].ToString(), drCobros["cobro"].ToString(), drCobros["fecha"].ToString() }; slCobros.Add(aDatosAux); } drCobros.Close(); drCobros.Dispose(); #endregion #region Actualizar lineas de factura string[] aLinea = Regex.Split(strLineas, "///"); //Para cada linea de factura foreach (string oLinea in aLinea) { if (oLinea == "") { continue; } string[] aValores = Regex.Split(oLinea, "##"); //0. Opcion BD. "I", "U", "D" //1. ID datoEco //2. idT305 //3. Importe linea factura switch (aValores[0]) { case "I": bProrratear = true; //if (sElementosInsertados == "") sElementosInsertados = nAux.ToString(); //else sElementosInsertados += "//" + nAux.ToString(); idT305 = int.Parse(aValores[2]); dImpLinea = decimal.Parse(aValores[3]); idT325 = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, idT305, nAnoMesFact); if (idT325 == 0) { idT325 = SEGMESPROYECTOSUBNODO.InsertSiNoExiste(tr, idT305, nAnoMesFact); } idDatoEcoFact = DATOECO.InsertFactura(tr, idT325, int.Parse(sClaseEco), t376_motivo, dImpLinea, null, null, dtFecha, sSerie, int.Parse(sNumero), t313_idempresa, t302_idcliente, null, sRefCliente); break; case "U": bProrratear = true; idDatoEcoFact = int.Parse(aValores[1]); dImpLinea = decimal.Parse(aValores[3]); DATOECO.UpdateImporte(tr, idDatoEcoFact, dImpLinea); break; case "D": bProrratear = true; DATOECO.Delete(tr, int.Parse(aValores[1])); break; } } #endregion #region cobros //Reparto lo cobrado entre las lineas de factura resultantes if (bProrratear) { #region Obtener datos de las líneas de la factura ArrayList slLineas = new ArrayList(); SqlDataReader drLineas2 = Factura.Lineas(tr, sSerie, int.Parse(sNumero)); while (drLineas2.Read()) { string[] aDatosAux = new string[] { drLineas2["t305_idproyectosubnodo"].ToString(), drLineas2["t376_iddatoeco"].ToString(), drLineas2["t376_importe"].ToString() }; slLineas.Add(aDatosAux); } drLineas2.Close(); drLineas2.Dispose(); #endregion //Para cada mes con cobro for (int iFilaCob = 0; iFilaCob < slCobros.Count; iFilaCob++) { nAnoMesCobro = int.Parse(((string[])slCobros[iFilaCob])[0]); dCobro = decimal.Parse(((string[])slCobros[iFilaCob])[1]); if (((string[])slCobros[iFilaCob])[2] != "") { dtFecha = DateTime.Parse(((string[])slCobros[iFilaCob])[2]); } else { dtFecha = null; } //Para cada linea de factura for (int iFilaFac = 0; iFilaFac < slLineas.Count; iFilaFac++) { idT305 = int.Parse(((string[])slLineas[iFilaFac])[0]); idDatoEcoFact = int.Parse(((string[])slLineas[iFilaFac])[1]); dImpLinea = decimal.Parse(((string[])slLineas[iFilaFac])[2]); dAux = (dImpLinea / dTotalFact) * dCobro; //Miro si hay cobro para esa linea de factura idDatoEcoCob = DATOECO.ExisteCobro(tr, nAnoMesCobro, idDatoEcoFact); if (idDatoEcoCob == 0) { idT325 = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, idT305, nAnoMesCobro); if (idT325 == 0) { idT325 = SEGMESPROYECTOSUBNODO.InsertSiNoExiste(tr, idT305, nAnoMesCobro); } DATOECO.InsertCobro(tr, idT325, dAux, dtFecha, idDatoEcoFact, sSerie, int.Parse(sNumero)); } else { DATOECO.UpdateImporte(tr, idDatoEcoCob, dAux); } } } } #endregion Conexion.CommitTransaccion(tr); sResul = "OK@#@";// +sElementosInsertados; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar la factura.", ex, false) + "@#@" + sDesc; } finally { Conexion.Cerrar(oConn); } return(sResul); }
private string Procesar() { string sResul = "", lin = "", sLin = ""; int iNumLin = 1; try { CargarArrayHT(); #region Apertura de conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion //Leo el fichero de base de datos FICHEROSMANIOBRA oFic = FICHEROSMANIOBRA.Select(tr, Constantes.FicheroDatos); if (oFic.t447_fichero.Length > 0) { #region Leer fichero de BBDD MemoryStream mstr = new MemoryStream(oFic.t447_fichero); mstr.Seek(0, SeekOrigin.Begin); int count = 0; byte[] byteArray = new byte[mstr.Length]; while (count < mstr.Length) { byteArray[count++] = System.Convert.ToByte(mstr.ReadByte()); } lin = FromASCIIByteArray(byteArray); //lin = FromUnicodeByteArray(byteArray); #endregion string[] aArgs = Regex.Split(lin, "\r\n"); DesdeFichero oDesdeFichero = null; string sEstadoMes = ""; int nSegMesProy = 0; for (int iLinea = 0; iLinea < aArgs.Length - 1; iLinea++) { if (aArgs[iLinea] != "") { sLin = aArgs[iLinea]; iNumLin = iLinea + 1; oDesdeFichero = validarLinea(DesdeFichero.getFila(sLin)); int?iProveedor = null; if (oDesdeFichero.t315_idproveedor != 0) { iProveedor = oDesdeFichero.t315_idproveedor; } int?iNodoDestino = null; if (oDesdeFichero.t303_idnododestino != 0) { iNodoDestino = oDesdeFichero.t303_idnododestino; } nSegMesProy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, oDesdeFichero.t305_idproyectosubnodo, (int)oDesdeFichero.t325_annomes); if (nSegMesProy == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, oDesdeFichero.t305_idproyectosubnodo, (int)oDesdeFichero.t325_annomes); nSegMesProy = SEGMESPROYECTOSUBNODO.Insert(tr, oDesdeFichero.t305_idproyectosubnodo, (int)oDesdeFichero.t325_annomes, sEstadoMes, 0, 0, false, 0, 0); } DATOECO.Insert(tr, nSegMesProy, oDesdeFichero.t329_idclaseeco, oDesdeFichero.t376_motivo, (decimal)oDesdeFichero.t376_importe, (oDesdeFichero.t329_necesidad == "N") ? iNodoDestino : null, (oDesdeFichero.t329_necesidad == "P") ? iProveedor : null, Constantes.FicheroDatos, oDesdeFichero.t422_idmoneda); } } } sResul = "OK@#@"; Conexion.CommitTransaccion(tr); } catch (Exception ex) { //Errores.mostrarError("Error al tramitar el fichero", ex); sResul = "Error@#@" + Errores.mostrarError("Error al procesar el fichero en la línea " + iNumLin.ToString() + " : " + sLin, ex); Conexion.CerrarTransaccion(tr); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string procesar(string sAnomesProceso, string sCadena) { string sResul = "OK@#@"; string sEstadoMes = ""; int iNumLin = 1, iAnomes; int it325_idsegmesproy, iClaseEco; #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } return("Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex)); } #endregion try { SqlDataReader dr = INTERFACTSAP.Catalogo(); iAnomes = int.Parse(sAnomesProceso); ArrayList slProyPP = new ArrayList(); while (dr.Read()) { if (sCadena.IndexOf("##" + iNumLin.ToString() + "##") == -1) { it325_idsegmesproy = SEGMESPROYECTOSUBNODO.ExisteSegMesProy(tr, (int)dr["t305_idproyectosubnodo"], iAnomes); if (it325_idsegmesproy == 0) { sEstadoMes = SEGMESPROYECTOSUBNODO.EstadoMesACrear(tr, (int)dr["t305_idproyectosubnodo"], iAnomes); it325_idsegmesproy = SEGMESPROYECTOSUBNODO.Insert(tr, (int)dr["t305_idproyectosubnodo"], iAnomes, sEstadoMes, 0, 0, false, 0, 0); } if ((bool)dr["t445_grupo"]) { //if ((bool)dr["t445_ute"]) iClaseEco = Constantes.IngExtServProf; //else iClaseEco = Constantes.IngExtServProfGrupo; iClaseEco = Constantes.IngExtServProfGrupo; } else { iClaseEco = Constantes.IngExtServProf; } DATOECO.InsertFactura(tr, it325_idsegmesproy, iClaseEco, dr["t445_descri"].ToString(), decimal.Parse(dr["t445_imp_fact"].ToString()), null, null, DateTime.Parse(dr["t445_fec_fact"].ToString()), dr["t445_serie"].ToString(), int.Parse(dr["t445_numero"].ToString()), int.Parse(dr["t313_idempresa"].ToString()), int.Parse(dr["t302_idcliente"].ToString()), Constantes.FicheroFacturasSAP, dr["t445_refcliente"].ToString()); INTERFACTSAP.Delete(tr, (int)dr["t445_id"]); if (dr["t301_estado"].ToString() == "P") { ponerProyPP(int.Parse(dr["t301_idproyecto"].ToString()).ToString("#,###"), slProyPP); } } iNumLin++; } dr.Close(); dr.Dispose(); Conexion.CommitTransaccion(tr); //sResul = "OK@#@"; //sResul = ObtenerTiposAsunto("3", "0"); //genero cadena con los proyectos en estado Presupuestado foreach (string sProy in slProyPP) { sResul += sProy + "##"; } sResul += "@#@" + cabErrores() + "</table>@#@" + INTERFACTSAP.numFacturas(null).ToString("#,##0"); } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al procesar", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }