/// <summary>
        /// Insert datos en la tabla presupuesto matriz
        /// </summary>
        /// <param name="usuario"></param>
        /// <returns></returns>
        public bool InsertRegistro(TrasladoPresupuestoMatrizInfo item)
        {
            try
            {
                return(module.InsertRegistro(item));
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                return(false);
            }
        }
        /// <summary>
        /// lista toda la vista previa de los presupuestos de la matriz.
        /// </summary>
        /// <returns></returns>
        public List <TrasladoPresupuestoMatrizInfo> ListXCampanaYZona(TrasladoPresupuestoMatrizInfo item)
        {
            db.SetParameterValue(commandPresupuesto, "i_operation", 'S');
            db.SetParameterValue(commandPresupuesto, "i_option", 'B');
            db.SetParameterValue(commandPresupuesto, "i_campana", item.Campana);
            db.SetParameterValue(commandPresupuesto, "i_zona", item.Zona);

            List <TrasladoPresupuestoMatrizInfo> col = new List <TrasladoPresupuestoMatrizInfo>();

            IDataReader dr = null;

            TrasladoPresupuestoMatrizInfo m = null;

            try
            {
                dr = db.ExecuteReader(commandPresupuesto);

                while (dr.Read())
                {
                    m = Factory.GetTrasladosPrespuestoMatriz(dr);

                    col.Add(m);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }

            return(col);
        }
        /// <summary>
        /// Actualiza los valores de la tabla Presupuesto Matriz con la temporal de Matriz
        /// </summary>
        /// <returns></returns>
        public bool ActualizaTransferPresupuesto(string Usuario, TrasladoPresupuestoMatrizInfo item)
        {
            bool transOk = false;

            IDataReader dr = null;

            try
            {
                db.SetParameterValue(commandPresupuesto, "i_operation", 'U');
                db.SetParameterValue(commandPresupuesto, "i_option", 'A');

                db.SetParameterValue(commandPresupuesto, "i_campana", item.Campana);
                db.SetParameterValue(commandPresupuesto, "i_zona", item.Zona);

                db.SetParameterValue(commandPresupuesto, "i_activo", item.Activo);
                db.SetParameterValue(commandPresupuesto, "i_empresariaspedido", item.Empresarias);
                db.SetParameterValue(commandPresupuesto, "i_nuevas", item.Nuevas);
                db.SetParameterValue(commandPresupuesto, "i_posibles_egresos", item.PEgresos);
                db.SetParameterValue(commandPresupuesto, "i_retenidas", item.Retenidas);
                db.SetParameterValue(commandPresupuesto, "i_egresos", item.Egresos);
                db.SetParameterValue(commandPresupuesto, "i_inactivas", item.Inactivas);
                db.SetParameterValue(commandPresupuesto, "i_reingresos", item.Reingresos);
                db.SetParameterValue(commandPresupuesto, "i_facturacion", item.Facturacion);


                dr = db.ExecuteReader(commandPresupuesto);


                //-----------------------------------------------------------------------------------------------------------------------------
                //Guardar auditoria
                try
                {
                    Auditoria     objAuditoria     = new Auditoria("conexion");
                    AuditoriaInfo objAuditoriaInfo = new AuditoriaInfo();

                    objAuditoriaInfo.FechaSistema = DateTime.Now;
                    objAuditoriaInfo.Usuario      = Usuario;
                    objAuditoriaInfo.Proceso      = "Se realizó actualizacion de los Presupuesto de la matriz de la tabla SVDN_PRESUPUESTO_MATRIZ. Acción Realizada por el Usuario: " + Usuario;

                    objAuditoria.Insert(objAuditoriaInfo);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error Auditoria: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));
                }
                //-----------------------------------------------------------------------------------------------------------------------------

                transOk = true;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }

            return(transOk);
        }
        /// <summary>
        /// Inserta registros en tabla matriz presupuesto
        /// </summary>
        /// <param name="Usuario"></param>
        /// <returns></returns>
        public bool InsertRegistro(TrasladoPresupuestoMatrizInfo item)
        {
            bool okTrans = false;

            IDataReader dr = null;

            try
            {
                db.SetParameterValue(commandPresupuesto, "i_operation", 'I');
                db.SetParameterValue(commandPresupuesto, "i_option", 'C');

                db.SetParameterValue(commandPresupuesto, "i_campana", item.Campana);
                db.SetParameterValue(commandPresupuesto, "i_zona", item.Zona);
                db.SetParameterValue(commandPresupuesto, "i_Npedidos", item.NPedidos);
                db.SetParameterValue(commandPresupuesto, "i_Vlr_Presupuesto", item.Vlr_Presupuesto);
                db.SetParameterValue(commandPresupuesto, "i_Vlr_Presupuesto_Nivi", item.Vlr_Presupuesto_Nivi);
                db.SetParameterValue(commandPresupuesto, "i_Vlr_Presupuesto_Pisame", item.Vlr_Presupuesto_Pisame);
                db.SetParameterValue(commandPresupuesto, "i_Vlr_Presupuesto_Outlet", item.Vlr_Presupuesto_Outlet);

                dr = db.ExecuteReader(commandPresupuesto);



                //-----------------------------------------------------------------------------------------------------------------------------
                //Guardar auditoria
                try
                {
                    Auditoria     objAuditoria     = new Auditoria("conexion");
                    AuditoriaInfo objAuditoriaInfo = new AuditoriaInfo();

                    objAuditoriaInfo.FechaSistema = DateTime.Now;
                    objAuditoriaInfo.Usuario      = item.Usuario;
                    objAuditoriaInfo.Proceso      = "Se realizó registro en la tabla principal de  presupuesto Matriz: Campaña " + item.Campana + ",Zona " + item.Zona + ". Acción Realizada por el Usuario: " + item.Usuario;

                    objAuditoria.Insert(objAuditoriaInfo);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error Auditoria: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));
                }
                //-----------------------------------------------------------------------------------------------------------------------------

                okTrans = true;
            }
            catch (Exception ex)
            {
                okTrans = false;

                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }
            return(okTrans);
        }
        /// <summary>
        /// Guarda Traslado de fletes para la tabla temporal.
        /// </summary>
        /// <param name="item"></param>
        public bool InsertaTablasTemporales(string campos, string Tipocampo, string usuario)
        {
            try
            {
                TrasladoPresupuestoMatrizInfo item = new TrasladoPresupuestoMatrizInfo();
                item.Usuario = usuario;
                switch (Tipocampo)
                {
                case "C1":
                    item.Campana = campos;
                    break;

                case "C2":
                    item.Zona = campos;
                    break;

                case "C3":
                    item.Activo = Convert.ToInt32(campos);
                    break;

                case "C4":
                    item.NPedidos = Convert.ToInt32(campos);
                    break;

                case "C5":
                    item.Vlr_Presupuesto = Convert.ToDecimal(campos);
                    break;

                case "C6":
                    item.Vlr_Presupuesto_Nivi = Convert.ToDecimal(campos);
                    break;

                case "C7":
                    item.Vlr_Presupuesto_Pisame = Convert.ToDecimal(campos);
                    break;

                /* case "C8":
                 *   item.Vlr_Presupuesto_Outlet = Convert.ToDecimal(campos);
                 *   break;
                 * case "C9":
                 *   item.Inactivas = Convert.ToInt32(campos);
                 *   break;
                 * case "C10":
                 *   item.Reingresos = Convert.ToInt32(campos);
                 *   break;
                 * case "C11":
                 *   item.Facturacion = Convert.ToDecimal(campos);
                 *   break;*/
                default:
                    break;
                }

                return(module.InsertaTablasTemporales(item, Tipocampo));
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                return(false);
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 public List <TrasladoPresupuestoMatrizInfo> ListXCampanaYZona(TrasladoPresupuestoMatrizInfo item)
 {
     return(module.ListXCampanaYZona(item));
 }