コード例 #1
0
        /// <summary>
        /// Inserta un FIGURAPROYECTOSUBNODO
        /// </summary>
        internal int Insert(Models.FIGURAPROYECTOSUBNODO oFIGURAPROYECTOSUBNODO)
        {
            try
            {
                SqlParameter[] dbparams = new SqlParameter[3] {
                    Param(enumDBFields.t305_idproyectosubnodo, oFIGURAPROYECTOSUBNODO.t305_idproyectosubnodo),
                    Param(enumDBFields.t314_idusuario, oFIGURAPROYECTOSUBNODO.t314_idusuario),
                    Param(enumDBFields.t310_figura, oFIGURAPROYECTOSUBNODO.t310_figura)
                };

                return((int)cDblib.Execute("SUP_FIGURAPROYECTOSUBNODO_I", dbparams));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        internal int Insert(Models.FIGURAPROYECTOSUBNODO oFIGURAPROYECTOSUBNODO)
        {
            Guid methodOwnerID = new Guid("67f93f85-b3be-49ca-acee-fecb37d251f6");

            OpenDbConn();

            if (cDblib.Transaction.ownerID.Equals(new Guid()))
            {
                cDblib.beginTransaction(methodOwnerID);
            }

            try
            {
                DAL.FIGURAPROYECTOSUBNODO cFIGURAPROYECTOSUBNODO = new DAL.FIGURAPROYECTOSUBNODO(cDblib);

                int idFIGURAPROYECTOSUBNODO = cFIGURAPROYECTOSUBNODO.Insert(oFIGURAPROYECTOSUBNODO);

                //Finalizar transacción
                if (cDblib.Transaction.ownerID.Equals(methodOwnerID))
                {
                    cDblib.commitTransaction(methodOwnerID);
                }

                return(idFIGURAPROYECTOSUBNODO);
            }
            catch (Exception ex)
            {
                //rollback
                //if (cDblib.Transaction.ownerID.Equals(new Guid())) cDblib.rollbackTransaction(methodOwnerID);
                if (cDblib.Transaction.ownerID.Equals(methodOwnerID))
                {
                    cDblib.rollbackTransaction(methodOwnerID);
                }

                throw ex;
            }
        }
コード例 #3
0
        public List <Models.ProyectoEconomico> generarContratos(List <IB.SUPER.APP.Models.OportunidadNegocio> Oportunidades)
        {
            int  iNumProys = 0, idPE = -1, idPSN = -1;
            bool bConTransaccion = false;
            Guid methodOwnerID   = new Guid("2558CB99-C43F-4930-A56C-D6F5CDE51980");
            //IB.SUPER.APP.BLL.ProyectoEconomico ProyBLL = new IB.SUPER.APP.BLL.ProyectoEconomico();
            List <Models.ProyectoEconomico> lstGenerados = new List <Models.ProyectoEconomico>();

            OpenDbConn();
            if (cDblib.Transaction.ownerID.Equals(new Guid()))
            {
                bConTransaccion = true;
            }
            if (bConTransaccion)
            {
                cDblib.beginTransaction(methodOwnerID);
            }

            BLL.Contrato oContrato            = new Contrato(cDblib);
            BLL.FIGURAPROYECTOSUBNODO oFigura = new FIGURAPROYECTOSUBNODO(cDblib);
            IB.SUPER.IAP30.BLL.Nodo   oNodo   = new IAP30.BLL.Nodo();

            try
            {
                foreach (IB.SUPER.APP.Models.OportunidadNegocio oport in Oportunidades)
                {
                    DAL.OportunidadNegocio oON = new DAL.OportunidadNegocio(cDblib);
                    #region Contrato y Extensión
                    //Si la extension==0 -> grabarcontrato
                    if (oport.t377_idextension == 0)
                    {
                        oON.GenerarContrato(oport);
                    }
                    else
                    {
                        //Compruebo que existe contrato. Si no existe, hay que darlo de alta
                        //oContrato = new Contrato(cDblib);
                        if (!oContrato.Existe(oport.t306_icontrato))
                        {
                            oON.GenerarContrato(oport.t306_icontrato, oport.t314_idusuario_responsable);
                        }
                    }
                    //La extensión se graba siempre
                    oON.GenerarExtension(oport);
                    //Si no existe proyecto asociado al contrato-> Generarlo (según parametrización puede crear 1 o 2 proyectos)
                    iNumProys = oON.GetNumProyectos(oport.t306_icontrato);


                    //PARA PRUEBAS
                    //if (bConTransaccion) cDblib.commitTransaction(methodOwnerID);

                    #endregion

                    #region Proyecto Económico
                    if (iNumProys == 0)
                    {
                        //PARA PRUEBAS
                        //if (cDblib.Transaction.ownerID.Equals(new Guid())) cDblib.beginTransaction(methodOwnerID);

                        //Obtengo el subnodo al que asociar el proyecto
                        int t304_idsubnodo = SUBNODO.GetSubNodoDefecto(oport.t303_idnodo);

                        //Obtengo datos del nodo para la creación del proyecto
                        //oNodo = new IAP30.BLL.Nodo();
                        IB.SUPER.IAP30.Models.Nodo mNodo = oNodo.Select(oport.t303_idnodo);

                        #region Cargo los datos para la generación del proyecto
                        Models.ProyectoEconomico mPE = new IB.SUPER.APP.Models.ProyectoEconomico();
                        mPE.automatico = true;
                        if (oport.t377_importeser >= oport.t377_importepro)
                        {
                            mPE.categoria = "S";
                        }
                        else
                        {
                            mPE.categoria = "P";
                        }
                        mPE.cod_cliente    = oport.t302_idcliente_contrato;
                        mPE.cod_contrato   = oport.t306_icontrato;
                        mPE.cod_naturaleza = 1;
                        mPE.fecha_sap      = DateTime.Now;

                        mPE.fini_prevista = Fechas.getSigDiaUltMesCerrado(mNodo.t303_ultcierreECO);
                        mPE.ffin_prevista = GetFechaFin(mPE.fini_prevista, oport.duracion);
                        mPE.modalidad     = GetModalidad(oport.tipocontrato.ToUpper());

                        if (mNodo.t303_modelocostes == "X")
                        {
                            mPE.modelo_coste = "J";
                        }
                        else
                        {
                            mPE.modelo_coste = mNodo.t303_modelocostes;
                        }
                        if (mNodo.t303_modelotarifas == "X")
                        {
                            mPE.modelo_tarifa = "J";
                        }
                        else
                        {
                            mPE.modelo_tarifa = mNodo.t303_modelotarifas;
                        }
                        mPE.nom_proyecto = oport.t377_denominacion;
                        #endregion
                        #region genero proyecto
                        if (mNodo.t303_desglose)
                        {
                            #region  Crea 2 proyectos
                            if (oport.t377_importepro != 0)
                            {
                                if (oport.t377_importeser != 0)
                                {
                                    mPE.nom_proyecto = "P/" + oport.t377_denominacion;
                                }
                                #region Crea un proyecto de categoria PRODUCTO
                                //idPE = ProyBLL.Insert(mPE);
                                //DAL.ProyectoEconomico cPE = new DAL.ProyectoEconomico(cDblib);
                                //idPE = cPE.GenerarProyecto(mPE);
                                idPE = oON.GenerarProyecto(mPE);

                                //Creo el proyecto subnodo
                                mPE.cod_proyecto            = idPE;
                                mPE.cod_subnodo             = t304_idsubnodo;
                                mPE.cualidad                = "P";
                                mPE.cod_usuario_responsable = mNodo.t314_idusuario_responsable;
                                mPE.seudonimo               = mPE.nom_proyecto;

                                //idPSN = cPE.GenerarProyectoSubnodo(mPE);
                                idPSN = oON.GenerarProyectoSubnodo(mPE);

                                //Asigno la figura de RTPE
                                Models.FIGURAPROYECTOSUBNODO mFigura = new Models.FIGURAPROYECTOSUBNODO();
                                mFigura.t305_idproyectosubnodo = idPSN;
                                mFigura.t310_figura            = "M";
                                mFigura.t314_idusuario         = oport.t314_idusuario_gestorprod;

                                //oFigura = new FIGURAPROYECTOSUBNODO(cDblib);
                                oFigura.Insert(mFigura);
                                #region Cargo la lista de vuelta para mostrar al usuario los proyectos generados
                                Models.ProyectoEconomico oProyectoEconomico = new Models.ProyectoEconomico();
                                oProyectoEconomico.cod_proyecto           = idPE;
                                oProyectoEconomico.nom_proyecto           = mPE.nom_proyecto;
                                oProyectoEconomico.cod_contrato           = oport.t306_icontrato;
                                oProyectoEconomico.cod_extension          = oport.t377_idextension;
                                oProyectoEconomico.t305_idproyectosubnodo = idPSN;
                                oProyectoEconomico.t301_estado            = "A";
                                oProyectoEconomico.t302_denominacion      = oport.cliente;
                                oProyectoEconomico.t301_categoria         = mPE.categoria;
                                oProyectoEconomico.t305_cualidad          = "C";
                                oProyectoEconomico.proy_responsable       = oport.responsable;

                                lstGenerados.Add(oProyectoEconomico);
                                #endregion
                                #endregion
                            }
                            if (oport.t377_importeser != 0)
                            {
                                if (oport.t377_importepro != 0)
                                {
                                    mPE.nom_proyecto = "S/" + oport.t377_denominacion;
                                }
                                #region Crea un proyecto de categoria SERVICIO
                                //DAL.ProyectoEconomico cPE = new DAL.ProyectoEconomico(cDblib);
                                //idPE = cPE.GenerarProyecto(mPE);
                                idPE = oON.GenerarProyecto(mPE);

                                //Creo el proyecto subnodo
                                mPE.cod_proyecto            = idPE;
                                mPE.cod_subnodo             = t304_idsubnodo;
                                mPE.cualidad                = "C";
                                mPE.cod_usuario_responsable = mNodo.t314_idusuario_responsable;
                                mPE.seudonimo               = mPE.nom_proyecto;

                                //idPSN = cPE.GenerarProyectoSubnodo(mPE);
                                idPSN = oON.GenerarProyectoSubnodo(mPE);

                                //Asigno la figura de RTPE
                                Models.FIGURAPROYECTOSUBNODO mFigura = new Models.FIGURAPROYECTOSUBNODO();
                                mFigura.t305_idproyectosubnodo = idPSN;
                                mFigura.t310_figura            = "M";
                                mFigura.t314_idusuario         = oport.t314_idusuario_gestorprod;

                                oFigura = new FIGURAPROYECTOSUBNODO(cDblib);
                                oFigura.Insert(mFigura);

                                #region Cargo la lista de vuelta para mostrar al usuario los proyectos generados
                                Models.ProyectoEconomico oProyectoEconomico = new Models.ProyectoEconomico();
                                oProyectoEconomico.cod_proyecto           = idPE;
                                oProyectoEconomico.nom_proyecto           = mPE.nom_proyecto;
                                oProyectoEconomico.cod_contrato           = oport.t306_icontrato;
                                oProyectoEconomico.cod_extension          = oport.t377_idextension;
                                oProyectoEconomico.t305_idproyectosubnodo = idPSN;
                                oProyectoEconomico.t301_estado            = "A";
                                oProyectoEconomico.t302_denominacion      = oport.cliente;
                                oProyectoEconomico.t301_categoria         = mPE.categoria;
                                oProyectoEconomico.t305_cualidad          = "C";
                                oProyectoEconomico.proy_responsable       = oport.responsable;
                                #endregion
                                #endregion
                            }

                            #endregion
                        }
                        else
                        {
                            #region Crea un proyecto
                            //DAL.ProyectoEconomico cPE = new DAL.ProyectoEconomico(cDblib);
                            //idPE = cPE.GenerarProyecto(mPE);
                            idPE = oON.GenerarProyecto(mPE);
                            //Creo el proyecto subnodo
                            mPE.cod_proyecto            = idPE;
                            mPE.cod_subnodo             = t304_idsubnodo;
                            mPE.cualidad                = "C";
                            mPE.cod_usuario_responsable = mNodo.t314_idusuario_responsable;
                            mPE.seudonimo               = mPE.nom_proyecto;

                            //idPSN = cPE.GenerarProyectoSubnodo(mPE);
                            idPSN = oON.GenerarProyectoSubnodo(mPE);

                            //Asigno la figura de RTPE
                            Models.FIGURAPROYECTOSUBNODO mFigura = new Models.FIGURAPROYECTOSUBNODO();
                            mFigura.t305_idproyectosubnodo = idPSN;
                            mFigura.t310_figura            = "M";
                            mFigura.t314_idusuario         = oport.t314_idusuario_gestorprod;

                            oFigura = new FIGURAPROYECTOSUBNODO(cDblib);
                            oFigura.Insert(mFigura);

                            #region Cargo la lista de vuelta para mostrar al usuario los proyectos generados
                            Models.ProyectoEconomico oProyectoEconomico = new Models.ProyectoEconomico();
                            oProyectoEconomico.cod_proyecto             = idPE;
                            oProyectoEconomico.nom_proyecto             = mPE.nom_proyecto;
                            oProyectoEconomico.cod_contrato             = oport.t306_icontrato;
                            oProyectoEconomico.cod_extension            = oport.t377_idextension;
                            oProyectoEconomico.t305_idproyectosubnodo   = idPSN;
                            oProyectoEconomico.t301_estado              = "A";
                            oProyectoEconomico.t302_denominacion        = oport.cliente;
                            oProyectoEconomico.t301_categoria           = mPE.categoria;
                            oProyectoEconomico.t305_cualidad            = "C";
                            oProyectoEconomico.proy_responsable         = oport.responsable;
                            oProyectoEconomico.codred_gestor_produccion = oport.codred_gestor_produccion;

                            lstGenerados.Add(oProyectoEconomico);
                            #endregion
                            #endregion
                        }
                        #endregion
                        //PARA PRUEBAS
                        //cDblib.commitTransaction(methodOwnerID);
                    }
                    #endregion
                }
                //PARA PRUEBAS
                if (bConTransaccion)
                {
                    cDblib.commitTransaction(methodOwnerID);
                }

                #region Correo
                //Con la lista de proyectos generados agrupo para cada gestor de producción concernido la lista de sus nuevos proyectos
                StringBuilder      sb          = new StringBuilder();
                List <Models.Mail> lstGestores = new List <Models.Mail>();
                try
                {
                    foreach (Models.ProyectoEconomico oPE in lstGenerados)
                    {
                        sb.Length = 0;
                        Models.Mail oProf = BuscarCodRed(lstGestores, oPE.codred_gestor_produccion);
                        if (oProf == null)
                        {
                            oProf        = new Models.Mail();
                            oProf.codred = oPE.codred_gestor_produccion;
                            sb.Append(ponerCabecera());
                            sb.Append(@"<tr style='height:16px'><td style='width:80px;padding-left:3px;'>" + oPE.cod_proyecto.ToString("#,###") + "</td>");
                            sb.Append(@"<td style='width:460px;text-overflow:ellipsis;overflow:hidden;'>" + oPE.nom_proyecto + "</td>");
                            sb.Append(@"<td style='width:80px;'>" + oPE.cod_contrato.ToString("#,###") + "</td>");
                            sb.Append(@"<td style='width:80px;'>" + oPE.cod_extension.ToString("#,###") + "</td></tr>");

                            oProf.mensaje = sb.ToString();

                            lstGestores.Add(oProf);
                        }
                        else
                        {
                            sb.Append(@"<tr style='height:16px'><td style='width:80px;padding-left:3px;'>" + oPE.cod_proyecto.ToString("#,###") + "</td>");
                            sb.Append(@"<td style='width:460px;text-overflow:ellipsis;overflow:hidden;'>" + oPE.nom_proyecto + "</td>");
                            sb.Append(@"<td style='width:80px;'>" + oPE.cod_contrato.ToString("#,###") + "</td>");
                            sb.Append(@"<td style='width:80px;'>" + oPE.cod_extension.ToString("#,###") + "</td></tr>");

                            oProf.mensaje += sb.ToString();
                        }
                    }
                    //Con la lista de proyectos agrupada envío a cada gestor de producción concernido la lista de sus nuevos proyectos
                    string    sAsunto     = "SUPER: Proyectos generados";
                    ArrayList aListCorreo = new ArrayList();
                    string    sMensaje    = "";
                    foreach (Models.Mail oGestor in lstGestores)
                    {
                        sMensaje = oGestor.mensaje + ponerPie();
                        string[] aMail = { sAsunto, sMensaje, oGestor.codred };
                        aListCorreo.Add(aMail);
                    }
                    Correo.EnviarCorreos(aListCorreo);
                }
                catch (Exception e1) {
                    SUPDAL.Log.Insertar("App_Code/Negocio/APP/OportunidadNegocio.generarContratos. Error al enviar correos. " + e1.Message);
                }
                #endregion
                return(lstGenerados);
            }
            catch (Exception ex)
            {
                //rollback
                if (cDblib.Transaction.ownerID.Equals(new Guid()))
                {
                    cDblib.rollbackTransaction(methodOwnerID);
                }
                throw new Exception(ex.Message);
            }
            finally
            {
                //nota.Dispose();
                //ProyBLL.Dispose();
                oContrato.Dispose();
                oNodo.Dispose();
                oFigura.Dispose();
            }
        }