///// <summary>
        ///// Metodo para actualizar asignación de puntos de venta a operativos
        /////  Modificación : 29/07/2010 se cambia el tipo de dato de id_planning de int a string.
        /////                Ing. Mauricio Ortiz
        /////                29/01/2011 se crean dos paraemtros para las fechas inicial y final
        /////                tPOSPlanningOpe_Fechainicio y tPOSPlanningOpe_Fechafin. Ing. Mauricio Ortiz
        ///// </summary>
        /// <param name="iid_MPOSPlanning"></param>
        /// <param name="tPOSPlanningOpe_Fechainicio"></param>
        /// <param name="tPOSPlanningOpe_Fechafin"></param>
        /// <param name="sPOSPlanningOpe_ModiBy"></param>
        /// <param name="tPOSPlanningOpe_DateModiBy"></param>
        /// <returns></returns>
        public EPointOfSale_PlanningOper ActualizarAsignPDVaOperativo(
            int iid_POSPlanningOpe,
            DateTime tPOSPlanningOpe_Fechainicio,
            DateTime tPOSPlanningOpe_Fechafin,
            string sPOSPlanningOpe_ModiBy,
            DateTime tPOSPlanningOpe_DateModiBy)
        {
            try{
                dt = oConn.ejecutarDataTable("UP_WEBSIGE_SUPERVISOR_UPDATEASIGNARPDVAOPERATIVO",
                                             iid_POSPlanningOpe,
                                             tPOSPlanningOpe_Fechainicio,
                                             tPOSPlanningOpe_Fechafin,
                                             sPOSPlanningOpe_ModiBy,
                                             tPOSPlanningOpe_DateModiBy);
            }catch (Exception ex) {
                message = "Ocurrio un Error: " + ex.ToString();
            }

            // Si no Hubo Errores que Devuelva el mismo Objeto, caso contrario devolverá un Objeto vacio
            if (message.Equals(""))
            {
                oerPointOfSale_PlanningOper = new EPointOfSale_PlanningOper();

                oerPointOfSale_PlanningOper.id_POSPlanningOpe          = iid_POSPlanningOpe;
                oerPointOfSale_PlanningOper.POSPlanningOpe_Fechainicio = tPOSPlanningOpe_Fechainicio;
                oerPointOfSale_PlanningOper.POSPlanningOpe_Fechafin    = tPOSPlanningOpe_Fechafin;
                oerPointOfSale_PlanningOper.POSPlanningOpe_ModiBy      = sPOSPlanningOpe_ModiBy;
                oerPointOfSale_PlanningOper.POSPlanningOpe_DateModiBy  = tPOSPlanningOpe_DateModiBy;
            }

            return(oerPointOfSale_PlanningOper);
        }
        /// <summary>
        /// Metodo para registrar asignación de puntos de venta a operativos
        /// Modificación : 29/07/2010 se cambia el tipo de dato de id_planning de int a string.
        ///                Ing. Mauricio Ortiz
        ///                     06/09/2010 se crean dos paraemtros para las fechas inicial y final
        ///                     tPOSPlanningOpe_Fechainicio y tPOSPlanningOpe_Fechafin. Ing. Mauricio Ortiz
        /// </summary>
        /// <param name="iid_MPOSPlanning"></param>
        /// <param name="iid_Planning"></param>
        /// <param name="iPerson_id"></param>
        /// <param name="tPOSPlanningOpe_Fechainicio"></param>
        /// <param name="tPOSPlanningOpe_Fechafin"></param>
        /// <param name="bPOSPlanningOpe_Status"></param>
        /// <param name="sPOSPlanningOpe_CreateBy"></param>
        /// <param name="tPOSPlanningOpe_DateBy"></param>
        /// <param name="sPOSPlanningOpe_ModiBy"></param>
        /// <param name="tPOSPlanningOpe_DateModiBy"></param>
        /// <returns>oerPointOfSale_PlanningOper</returns>
        public EPointOfSale_PlanningOper RegistrarAsignPDVaOperativo(
            int iid_MPOSPlanning,
            string sid_Planning,
            int iPerson_id,
            DateTime tPOSPlanningOpe_Fechainicio,
            DateTime tPOSPlanningOpe_Fechafin,
            int ifrecuencia,
            bool bPOSPlanningOpe_Status,
            string sPOSPlanningOpe_CreateBy,
            DateTime tPOSPlanningOpe_DateBy,
            string sPOSPlanningOpe_ModiBy,
            DateTime tPOSPlanningOpe_DateModiBy)
        {
            // Ejecuta Procedimiento
            try{
                dt = oConn.ejecutarDataTable(
                    "UP_WEBSIGE_SUPERVISOR_ASIGNARPDVAOPERATIVO_tmp",
                    iid_MPOSPlanning,
                    sid_Planning,
                    iPerson_id,
                    tPOSPlanningOpe_Fechainicio,
                    tPOSPlanningOpe_Fechafin,
                    ifrecuencia,
                    bPOSPlanningOpe_Status,
                    sPOSPlanningOpe_CreateBy,
                    tPOSPlanningOpe_DateBy,
                    sPOSPlanningOpe_ModiBy,
                    tPOSPlanningOpe_DateModiBy);
            }catch (Exception ex) {
                message = "Ocurrió un Error: " + ex.ToString();
            }

            // Valida si el resultado devuelve registros
            if (dt.Rows.Count > 0)
            {
                oerPointOfSale_PlanningOper = new EPointOfSale_PlanningOper();
                oerPointOfSale_PlanningOper.id_MPOSPlanning            = iid_MPOSPlanning;
                oerPointOfSale_PlanningOper.id_Planning                = sid_Planning;
                oerPointOfSale_PlanningOper.Person_id                  = iPerson_id;
                oerPointOfSale_PlanningOper.POSPlanningOpe_Fechainicio = tPOSPlanningOpe_Fechainicio;
                oerPointOfSale_PlanningOper.POSPlanningOpe_Fechafin    = tPOSPlanningOpe_Fechafin;
                oerPointOfSale_PlanningOper.Frecuencia                 = ifrecuencia;
                oerPointOfSale_PlanningOper.POSPlanningOpe_Status      = bPOSPlanningOpe_Status;
                oerPointOfSale_PlanningOper.POSPlanningOpe_CreateBy    = sPOSPlanningOpe_CreateBy;
                oerPointOfSale_PlanningOper.POSPlanningOpe_DateBy      = tPOSPlanningOpe_DateBy;
                oerPointOfSale_PlanningOper.POSPlanningOpe_ModiBy      = sPOSPlanningOpe_ModiBy;
                oerPointOfSale_PlanningOper.POSPlanningOpe_DateModiBy  = tPOSPlanningOpe_DateModiBy;
            }
            else
            {
                message = "No se Encontraron Puntos de Venta Asignados a Mercaderistas, ¡Por favor verifique!";
            }

            return(oerPointOfSale_PlanningOper);
        }
Beispiel #3
0
        /// <summary>
        /// Metodo para registrar asignación de puntos de venta a operativos
        /// Modificación : 29/07/2010 se cambia el tipo de dato de id_planning de int a string
        ///                Ing. Mauricio Ortiz
        ///                     06/09/2010 se crean dos parametros para las fechas inicial y final
        ///                     tPOSPlanningOpe_Fechainicio y tPOSPlanningOpe_Fechafin. Ing. Mauricio Ortiz
        /// </summary>
        /// <param name="iid_MPOSPlanning"></param>
        /// <param name="sid_Planning"></param>
        /// <param name="iPerson_id"></param>
        /// <param name="tPOSPlanningOpe_Fechainicio"></param>
        /// <param name="tPOSPlanningOpe_Fechafin"></param>
        /// <param name="bPOSPlanningOpe_Status"></param>
        /// <param name="sPOSPlanningOpe_CreateBy"></param>
        /// <param name="tPOSPlanningOpe_DateBy"></param>
        /// <param name="sPOSPlanningOpe_ModiBy"></param>
        /// <param name="tPOSPlanningOpe_DateModiBy"></param>
        /// <returns oerPointOfSale_PlanningOper></returns>
        public EPointOfSale_PlanningOper RegistrarAsignPDVaOperativo(
            int iid_MPOSPlanning,
            string sid_Planning,
            int iPerson_id,
            DateTime tPOSPlanningOpe_Fechainicio,
            DateTime tPOSPlanningOpe_Fechafin,
            int ifrecuencia,
            bool bPOSPlanningOpe_Status,
            string sPOSPlanningOpe_CreateBy,
            DateTime tPOSPlanningOpe_DateBy,
            string sPOSPlanningOpe_ModiBy,
            DateTime tPOSPlanningOpe_DateModiBy)
        {
            try{
                // Instanciar al Objeto Acceso a Datos
                oerPointOfSale_PlanningOper =
                    odrPointOfSale_PlanningOper.RegistrarAsignPDVaOperativo(
                        iid_MPOSPlanning,
                        sid_Planning,
                        iPerson_id,
                        tPOSPlanningOpe_Fechainicio,
                        tPOSPlanningOpe_Fechafin,
                        ifrecuencia,
                        bPOSPlanningOpe_Status,
                        sPOSPlanningOpe_CreateBy,
                        tPOSPlanningOpe_DateBy,
                        sPOSPlanningOpe_ModiBy,
                        tPOSPlanningOpe_DateModiBy);
            }catch (Exception ex) {
                message = "Error: " + ex.ToString().Substring(0, 50) + " ...";
            }

            // Validar que el mensaje de respuesta de Data Access sea "" (Cuando es "" es Correcto)
            if (odrPointOfSale_PlanningOper.getMessage() != "")
            {
                message = odrPointOfSale_PlanningOper.getMessage();
            }

            return(oerPointOfSale_PlanningOper);
        }
Beispiel #4
0
        /// <summary>
        /// Metodo para actualizar asignación de puntos de venta a operativos
        /// Modificación : 29/07/2010 se cambia el tipo de dato de id_planning de int a string
        ///                Ing. Mauricio Ortiz
        ///               29/01/2011 se crean dos paraemtros para las fechas inicial y final
        ///               tPOSPlanningOpe_Fechainicio y tPOSPlanningOpe_Fechafin. Ing. Mauricio Ortiz
        /// </summary>
        /// <param name="iid_POSPlanningOpe"></param>
        /// <param name="tPOSPlanningOpe_Fechainicio"></param>
        /// <param name="tPOSPlanningOpe_Fechafin"></param>
        /// <param name="sPOSPlanningOpe_ModiBy"></param>
        /// <param name="tPOSPlanningOpe_DateModiBy"></param>
        /// <returns></returns>
        public EPointOfSale_PlanningOper ActualizarAsignPDVaOperativo(
            int iid_POSPlanningOpe,
            DateTime tPOSPlanningOpe_Fechainicio,
            DateTime tPOSPlanningOpe_Fechafin,
            string sPOSPlanningOpe_ModiBy,
            DateTime tPOSPlanningOpe_DateModiBy)
        {
            oerPointOfSale_PlanningOper =
                odrPointOfSale_PlanningOper.ActualizarAsignPDVaOperativo(
                    iid_POSPlanningOpe,
                    tPOSPlanningOpe_Fechainicio,
                    tPOSPlanningOpe_Fechafin,
                    sPOSPlanningOpe_ModiBy,
                    tPOSPlanningOpe_DateModiBy);

            // Si el message es vacío ("") significa que no se han presentado errores
            if (!odrPointOfSale_PlanningOper.getMessage().Equals(""))
            {
                message = odrPointOfSale_PlanningOper.getMessage();
            }

            return(oerPointOfSale_PlanningOper);
        }
        /// <summary>
        /// Obtener puntos de venta asignados a un operativo
        /// Ing. Mauricio Ortiz
        /// 27/10/2010
        /// </summary>
        /// DataTable[0] Retornar listado de Puntos de Venta asignados a un Mercaderista por idPlanning
        /// - No            .- Número de Orden del Punto de Venta
        /// - Código        .- Identificador del Punto de Venta Asignado al Mercaderista.
        /// - Nombre        .- Nombre del Punto de Venta Asignado al Mercadersita.
        /// - Región        .- Nombre de la Región del Punto de Venta Asignado al Mercaderista.
        /// - Zona          .- Nombre de la Zona del Punto de Venta asignado al Mercaderista.
        /// - Fecha inicio  .- Fecha de Inicio para recolectar información del Punto de Venta asignado al Mercaderista.
        /// - Fecha fin     .- Fecha de Fin para recolectar información del Punto de Venta asignado al Mercaderista.
        /// <param name="sid_planning"></param>
        /// <param name="iidperson"></param>
        /// <returns></returns>
        public DataTable ObtenerPuntosVentaXoperativo(
            string sid_planning, int iidperson)
        {
            DataTable dt =
                oConn.ejecutarDataTable(
                    "UP_WEBXPLORA_PLA_OBTENERPDVXOPERATIVO",
                    sid_planning, iidperson);

            EPointOfSale_PlanningOper oeEPointOfSale_PlanningOper =
                new EPointOfSale_PlanningOper();
            EPuntosDV oeEPuntosDV = new EPuntosDV();
            EMalla    oeEMalla    = new EMalla();
            ESector   oeESector   = new ESector();

            //if (dt != null)
            //{
            //if (dt.Rows.Count > 0)
            //{
            for (int i = 0; i <= dt.Rows.Count - 1; i++)
            {
                oeEPointOfSale_PlanningOper.id_POSPlanningOpe = Convert.ToInt32(dt.Rows[i]["No"].ToString().Trim());
                oeEPuntosDV.ClientPDV_Code = dt.Rows[i]["Código"].ToString().Trim();
                oeEPuntosDV.pdvName        = dt.Rows[i]["Nombre"].ToString().Trim();
                oeEMalla.malla             = dt.Rows[i]["Región"].ToString().Trim();
                oeESector.Sector           = dt.Rows[i]["Zona"].ToString().Trim();
                oeEPointOfSale_PlanningOper.POSPlanningOpe_Fechainicio = Convert.ToDateTime(dt.Rows[i]["Fecha inicio"].ToString().Trim());
                oeEPointOfSale_PlanningOper.POSPlanningOpe_Fechafin    = Convert.ToDateTime(dt.Rows[i]["Fecha fin"].ToString().Trim());
            }
            //}
            return(dt);
            //}
            //else
            //{
            //    return null;
            //}
        }
        protected void BtnCargaArchivo_Click(object sender, EventArgs e)
        {
            if ((FileUpPDV.PostedFile != null) && (FileUpPDV.PostedFile.ContentLength > 0))
            {
                string fn           = System.IO.Path.GetFileName(FileUpPDV.PostedFile.FileName);
                string SaveLocation = Server.MapPath("PDV_Planning") + "\\" + fn;

                if (SaveLocation != string.Empty)
                {
                    if (FileUpPDV.FileName.ToLower().EndsWith(".xls"))
                    {
                        OleDbConnection  oConn1 = new OleDbConnection();
                        OleDbCommand     oCmd   = new OleDbCommand();
                        OleDbDataAdapter oDa    = new OleDbDataAdapter();
                        DataSet          oDs    = new DataSet();

                        DataTable dt = new DataTable();


                        FileUpPDV.PostedFile.SaveAs(SaveLocation);

                        // oConn1.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + SaveLocation + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";
                        oConn1.ConnectionString =
                            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                            + SaveLocation
                            + ";Extended Properties=\"Excel 8.0; HDR=YES;\"";

                        oConn1.Open();
                        oCmd.CommandText  = "SELECT * FROM [Hoja1$]";
                        oCmd.Connection   = oConn1;
                        oDa.SelectCommand = oCmd;

                        try{
                            if (this.Session["scountry"].ToString() != null)
                            {
                                oDa.Fill(oDs);
                                dt = oDs.Tables[0];

                                if (dt.Columns.Count == 4)
                                {
                                    dt.Columns[0].ColumnName = "Cod_PDV";
                                    dt.Columns[1].ColumnName = "Cod_Mercaderista";
                                    dt.Columns[2].ColumnName = "Fecha inicio";
                                    dt.Columns[3].ColumnName = "Fecha fin";

                                    Gvlog.DataSource = dt;
                                    Gvlog.DataBind();

                                    for (int i = 0; i <= Gvlog.Rows.Count - 1; i++)
                                    {
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&nbsp;", "");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#160;", "");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#193;", "Á");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#201;", "É");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#205;", "Í");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#211;", "Ó");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#218;", "Ú");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#225;", "á");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#233;", "é");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#237;", "í");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#243;", "ó");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#250;", "ú");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#209;", "Ñ");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#241;", "ñ");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&amp;", "&");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#176;", "o");
                                        Gvlog.Rows[i].Cells[0].Text = Gvlog.Rows[i].Cells[0].Text.Replace("&#186;", "o");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&nbsp;", "");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("  ", " ");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#160;", "");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#193;", "Á");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#201;", "É");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#205;", "Í");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#211;", "Ó");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#218;", "Ú");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#225;", "á");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#233;", "é");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#237;", "í");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#243;", "ó");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#250;", "ú");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#209;", "Ñ");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#241;", "ñ");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&amp;", "&");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#176;", "o");
                                        Gvlog.Rows[i].Cells[1].Text = Gvlog.Rows[i].Cells[1].Text.Replace("&#186;", "o");
                                    }

                                    string nombre_pdv;
                                    bool   sigue = true;
                                    for (int i = 0; i <= dt.Rows.Count - 1; i++)
                                    {
                                        llenaOperativosAsignaPDVOPE();

                                        nombre_pdv = dt.Rows[i][0].ToString().Trim();

                                        DataTable dtValidaNombre =
                                            oCoon.ejecutarDataTable("UP_WEBXPLORA_PLA_VALIDACIONES_CARGAMASIVAPDVOPE",
                                                                    "Nombre",
                                                                    LblPlanning.Text,
                                                                    dt.Rows[i][0].ToString().Trim());

                                        if (dtValidaNombre.Rows.Count > 0)
                                        {
                                            CbmPDV.DataSource     = dtValidaNombre;
                                            CbmPDV.DataTextField  = "pdv_Name";
                                            CbmPDV.DataValueField = "id_MPOSPlanning";
                                            CbmPDV.DataBind();

                                            sigue = true;
                                            Gvlog.Rows[i].Cells[0].Text = dtValidaNombre.Rows[0][0].ToString().Trim();
                                        }
                                        else
                                        {
                                            Pmensaje.CssClass      = "MensajesSupervisor";
                                            lblencabezado.Text     = "Sr. Usuario";
                                            lblmensajegeneral.Text = "El punto de venta " + Gvlog.Rows[i].Cells[0].Text + ". No es válido o no ha sido asignado a la campaña";
                                            Mensajes_Usuario();
                                            sigue = false;
                                            i     = dt.Rows.Count - 1;
                                        }

                                        if (sigue)
                                        {
                                            try{
                                                CmbOpePlanning.Items.FindByText(Gvlog.Rows[i].Cells[1].Text.ToUpper()).Selected = true;
                                                Gvlog.Rows[i].Cells[1].Text = CmbOpePlanning.SelectedItem.Value;
                                            }catch {
                                                Pmensaje.CssClass      = "MensajesSupervisor";
                                                lblencabezado.Text     = "Sr. Usuario";
                                                lblmensajegeneral.Text = "El mercaderista "
                                                                         + Gvlog.Rows[i].Cells[1].Text
                                                                         + ". No es válido o no ha sido asignado a la campaña";
                                                Mensajes_Usuario();
                                                sigue = false;
                                                i     = dt.Rows.Count - 1;
                                            }
                                        }

                                        if (sigue)
                                        {
                                            try{
                                                DateTime FechainicialPlanning = DateTime.Parse(this.Session["Fechainicial"].ToString().Trim());
                                                DateTime FechafinalPlanning   = DateTime.Parse(this.Session["Fechafinal"].ToString().Trim());
                                                DateTime FechaInicial         = DateTime.Parse(Gvlog.Rows[i].Cells[2].Text);
                                                DateTime Fechafinal           = DateTime.Parse(Gvlog.Rows[i].Cells[3].Text);
                                                if (FechaInicial > Fechafinal)
                                                {
                                                    Pmensaje.CssClass      = "MensajesSupervisor";
                                                    lblencabezado.Text     = "Sr. Usuario";
                                                    lblmensajegeneral.Text = "La fecha inicial no puede ser mayor a la fecha final";
                                                    Mensajes_Usuario();
                                                    sigue = false;
                                                    i     = dt.Rows.Count - 1;
                                                }

                                                if (FechaInicial < FechainicialPlanning || Fechafinal > FechafinalPlanning)
                                                {
                                                    Pmensaje.CssClass      = "MensajesSupervisor";
                                                    lblencabezado.Text     = "Sr. Usuario";
                                                    lblmensajegeneral.Text = "Las fechas deben estar dentro del rango : " + FechainicialPlanning.ToShortDateString() + " y " + FechafinalPlanning.ToShortDateString() + " que corresponden a las fechas de ejecución de la Campaña";
                                                    Mensajes_Usuario();
                                                    sigue = false;
                                                    i     = dt.Rows.Count - 1;
                                                }

                                                if (FechaInicial < DateTime.Today)
                                                {
                                                    Pmensaje.CssClass      = "MensajesSupervisor";
                                                    lblencabezado.Text     = "Sr. Usuario";
                                                    lblmensajegeneral.Text = "La fecha inicial debe ser igual o superior a la fecha actual";
                                                    Mensajes_Usuario();
                                                    sigue = false;
                                                    i     = dt.Rows.Count - 1;
                                                }

                                                Gvlog.Rows[i].Cells[2].Text = Gvlog.Rows[i].Cells[2].Text + " 01:00:00.000";
                                                Gvlog.Rows[i].Cells[3].Text = Gvlog.Rows[i].Cells[3].Text + " 23:59:00.000";
                                            } catch {
                                                Pmensaje.CssClass      = "MensajesSupervisor";
                                                lblencabezado.Text     = "Sr. Usuario";
                                                lblmensajegeneral.Text = "Formato de fecha no valido. Por favor verifique (dd/mm/aaaa)";
                                                Mensajes_Usuario();
                                                sigue = false;
                                                i     = dt.Rows.Count - 1;
                                            }
                                        }
                                    }

                                    if (sigue)
                                    {
                                        for (int i = 0; i <= Gvlog.Rows.Count - 1; i++)
                                        {
                                            DataTable dtconsulta =
                                                wsPlanning.Get_AsignacionDuplicadaPDV(
                                                    Convert.ToInt32(Gvlog.Rows[i].Cells[0].Text),
                                                    Convert.ToInt32(Gvlog.Rows[i].Cells[1].Text),
                                                    LblPlanning.Text);

                                            if (dtconsulta != null)
                                            {
                                                if (dtconsulta.Rows.Count == 0)   // 1 > 0

                                                {
                                                    PointOfSale_PlanningOper obj = new PointOfSale_PlanningOper();

                                                    EPointOfSale_PlanningOper RegistrarPointOfSale_PlanningOper =
                                                        obj.RegistrarAsignPDVaOperativo(
                                                            Convert.ToInt32(Gvlog.Rows[i].Cells[0].Text),
                                                            LblPlanning.Text,
                                                            Convert.ToInt32(Gvlog.Rows[i].Cells[1].Text),
                                                            Convert.ToDateTime(Gvlog.Rows[i].Cells[2].Text),
                                                            Convert.ToDateTime(Gvlog.Rows[i].Cells[3].Text), 0,
                                                            true,
                                                            Convert.ToString(this.Session["sUser"]),
                                                            DateTime.Now,
                                                            Convert.ToString(this.Session["sUser"]),
                                                            DateTime.Now);

                                                    obj.RegistrarTBL_EQUIPO_PTO_VENTA(
                                                        Convert.ToInt32(Gvlog.Rows[i].Cells[0].Text),
                                                        LblPlanning.Text,
                                                        Convert.ToInt32(Gvlog.Rows[i].Cells[1].Text),
                                                        Convert.ToDateTime(Gvlog.Rows[i].Cells[2].Text),
                                                        Convert.ToDateTime(Gvlog.Rows[i].Cells[3].Text));
                                                }
                                                else
                                                {
                                                    // metodo de actualizacion
                                                    PointOfSale_PlanningOper  obj = new PointOfSale_PlanningOper();
                                                    EPointOfSale_PlanningOper ActualizarPointOfSale_PlanningOper =
                                                        obj.ActualizarAsignPDVaOperativo(
                                                            Convert.ToInt32(dtconsulta.Rows[0][6].ToString().Trim()),
                                                            Convert.ToDateTime(Gvlog.Rows[i].Cells[2].Text),
                                                            Convert.ToDateTime(Gvlog.Rows[i].Cells[3].Text),
                                                            Convert.ToString(this.Session["sUser"]),
                                                            DateTime.Now);
                                                    try{
                                                        PointOfSale_PlanningOper ActualizarTBL_EQUIPO_PTO_VENTA = new PointOfSale_PlanningOper();
                                                        ActualizarTBL_EQUIPO_PTO_VENTA.ActualizarTBL_EQUIPO_PTO_VENTA(dtconsulta.Rows[0][5].ToString().Trim(), LblPlanning.Text,
                                                                                                                      Convert.ToInt32(Gvlog.Rows[i].Cells[1].Text), Convert.ToDateTime(Gvlog.Rows[i].Cells[2].Text), Convert.ToDateTime(Gvlog.Rows[i].Cells[3].Text));
                                                    }catch (Exception ex) {
                                                        Pmensaje.CssClass      = "MensajesSupervisor";
                                                        lblencabezado.Text     = "Sr. Usuario";
                                                        lblmensajegeneral.Text = "La campaña no existe en la base de datos de Nextel "
                                                                                 + ". Consulte con el Administrador Xplora";
                                                        Mensajes_Usuario();
                                                    }
                                                }
                                            }
                                        }

                                        Pmensaje.CssClass      = "MensajesSupConfirm";
                                        lblencabezado.Text     = "Sr. Usuario";
                                        lblmensajegeneral.Text = "Se ha asignado con éxito los puntos de venta para la campaña : " + LblPresupuestoPDV.Text;
                                        Mensajes_Usuario();
                                    }
                                }
                                else
                                {
                                    Gvlog.DataBind();
                                    Pmensaje.CssClass      = "MensajesSupervisor";
                                    lblencabezado.Text     = "Sr. Usuario";
                                    lblmensajegeneral.Text = "El archivo seleccionado no corresponde a un archivo de asignación "
                                                             + "de puntos de venta válido. Por favor verifique la estructura que fue enviada a su correo.";
                                    Mensajes_Usuario();

                                    System.Net.Mail.MailMessage correo = new System.Net.Mail.MailMessage();
                                    correo.From = new System.Net.Mail.MailAddress("*****@*****.**");
                                    correo.To.Add(this.Session["smail"].ToString());
                                    correo.Subject    = "Errores en archivo de asignación de puntos de venta";
                                    correo.IsBodyHtml = true;
                                    correo.Priority   = System.Net.Mail.MailPriority.Normal;
                                    string[] txtbody = new string[] { "Señor(a):" + "<br/>" +
                                                                      this.Session["nameuser"].ToString()
                                                                      + "<br/>"
                                                                      + "<br/>"
                                                                      + "El archivo que usted seleccionó para la carga de asignación de puntos de venta no cumple con una estructura válida."
                                                                      + "<br/>"
                                                                      + "Por favor verifique que tenga 4 columnas"
                                                                      + "<br/>"
                                                                      + "<br/>"
                                                                      + "Sugerencia : identifique las columnas de la siguiente manera para su mayor comprensión"
                                                                      + "<br/>"
                                                                      + "<br/>"
                                                                      + "Columna 1  : Nombre de Punto de Venta"
                                                                      + "<br/>"
                                                                      + "Columna 2  : Mercaderista"
                                                                      + "<br/>"
                                                                      + "Columna 3  : Fecha inicio"
                                                                      + "<br/>"
                                                                      + "Columna 4  : Fecha fin"
                                                                      + "<br/>"
                                                                      + "<br/>"
                                                                      + "<br/>"
                                                                      + "Nota:  No es indispensable que las columnas se identifiquen de la misma manera como se describió anteriormente "
                                                                      + ", usted puede personalizar los nombres de las columnas del archivo ."
                                                                      + "Pero tenga en cuenta que debe ingresar la información de los puntos de venta en ese orden."
                                                                      + "<br/>"
                                                                      + "<br/>"
                                                                      + "<br/>"
                                                                      + "Cordial Saludo" + "<br/>" + "Administrador Xplora" };

                                    correo.Body = string.Concat(txtbody);

                                    System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();
                                    cliente.Host = "mail.lucky.com.pe";

                                    try {
                                        cliente.Send(correo);
                                    }catch (System.Net.Mail.SmtpException) {
                                    }
                                }
                            }
                            else
                            {
                                Pmensaje.CssClass      = "MensajesSupervisor";
                                lblencabezado.Text     = "Sr. Usuario";
                                lblmensajegeneral.Text = "Es indispensable que cierre sesión he inicie nuevamente. su sesión expiró.";
                                Mensajes_Usuario();
                            }
                        }
                        catch (Exception ex) {
                            Pmensaje.CssClass      = "MensajesSupervisor";
                            lblencabezado.Text     = "Sr. Usuario";
                            lblmensajegeneral.Text = "El archivo seleccionado no corresponde a un archivo de puntos de venta válido. "
                                                     + "Por favor verifique que el nombre de la hoja donde estan los datos sea Hoja1";
                            Mensajes_Usuario();
                        }
                        oConn1.Close();
                    }
                    else
                    {
                        Pmensaje.CssClass      = "MensajesSupervisor";
                        lblencabezado.Text     = "Sr. Usuario";
                        lblmensajegeneral.Text = "Solo se permite cargar archivos en formato Excel 2003. Por favor verifique.";
                        Mensajes_Usuario();
                    }
                }
            }
            else
            {
                Pmensaje.CssClass      = "MensajesSupervisor";
                lblencabezado.Text     = "Sr. Usuario";
                lblmensajegeneral.Text = "Es indispensable seleccionar un archivo.";
                Mensajes_Usuario();
            }
        }