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);
    }
示例#3
0
    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);
    }
示例#4
0
    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);
    }
示例#5
0
    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("#,###") + ")&nbsp;&nbsp;" + 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("#,###") + ")&nbsp;&nbsp;" + 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("#,###") + ")&nbsp;&nbsp;" + 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("#,###") + ")&nbsp;&nbsp;" + 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));
        }
    }
示例#6
0
    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("#,###") + "&nbsp;&nbsp;&nbsp;" + 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));
        }
    }
示例#7
0
    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);
    }
示例#12
0
    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);
    }