/// <summary>
 /// Evento que Guarda el detalle de Volumetrias
 /// </summary>
 /// <param name="lRevisionD"></param>
 /// <param name="oRevisionForma"></param>
 private void GuardarDetalleVolumetria(List <VolumetriaD> lVolumetriaD, Volumetria oVolumetriaForma)
 {
     //1. Insertar los datos del detalle
     foreach (VolumetriaD sd in lVolumetriaD)
     {
         //2. Validar que el objeto no venga en blanco
         if (sd.ConceptoID.Equals(string.Empty) || sd.Cantidad.Equals(string.Empty) || sd.Utilizada == 0)
         {
             continue;
         }
         else
         {
             sd.Volumetria = oVolumetriaForma.ID;
             VolumetriaDBusiness.Insertar(sd);
             PreciarioConceptoBusiness.Actualizar(sd.ConceptoID, sd.Utilizada, sd.Volumetria);
         }
     }
 }
        /// <summary>
        /// Evento de clic del botón Afectar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void imgbtnAfectar_Click(object sender, DirectEventArgs e)
        {
            //1. Obtener datos de la Forma y saber si es edición o nuevo
            string strVolumetriaForma        = e.ExtraParams["VolumetriaForma"];
            string strVolumetria             = e.ExtraParams["Volumetria"];
            string strSucursal               = e.ExtraParams["sucursal"];
            string strVolumetriaD            = e.ExtraParams["VolumetriaD"];
            string strcookieEditarVolumetria = Cookies.GetCookie("cookieEditarVolumetria").Value;

            //2. Serializar el encabezado y el detalle
            Dictionary <string, string> dRegistro = JSON.Deserialize <Dictionary <string, string> >(strVolumetriaForma);
            Volumetria         oVolumetriaForma   = ObtenerObjetoDesdeForma(dRegistro, strSucursal);
            Volumetria         oVolumetria        = JSON.Deserialize <List <Volumetria> >(strVolumetria).FirstOrDefault();
            List <VolumetriaD> lVolumetriaD       = JSON.Deserialize <List <VolumetriaD> >(strVolumetriaD);

            //3. Guardar o Actuaizar el Movimiento
            string strAccion = GuardarMovimiento(ref oVolumetriaForma, oVolumetria, lVolumetriaD);

            //4. Validar que efecto realizará para Guardar o Afectar
            switch (strAccion)
            {
            case "insertar":
                e.ExtraParamsResponse.Add(new Ext.Net.Parameter("accion", "insertar", ParameterMode.Value));
                break;

            case "modificar":
                e.ExtraParamsResponse.Add(new Ext.Net.Parameter("accion", "modificar", ParameterMode.Value));
                break;
            }

            //4. Lanzar la afectación del Movimiento
            VolumetriaBusiness.AfectarVolumetriaPorID(oVolumetriaForma);

            //Actualiza las cantidades despues de afectar
            foreach (VolumetriaD sd in lVolumetriaD)
            {
                PreciarioConceptoBusiness.Actualizar(sd.ConceptoID, sd.Utilizada, sd.Volumetria);
            }

            oVolumetria = VolumetriaBusiness.ObtenerVolumetriaPorID(oVolumetriaForma.ID);
            //7. Actualizar store de Revision
            sVolumetria.GetAt(0).Set("MovID", oVolumetria.MovID);
            sVolumetria.GetAt(0).Set("Estatus", oVolumetria.Estatus);
        }