public JsonResult SaveCierreProVta(Cierre_ProVta info)
        {
            //validaciones
            var val = _repCierre.Get(Cierre => Cierre.id_GFX == info.id_GFX && Cierre.id_ProgramaVta == info.id_ProgramaVta && Cierre.id_tipoperiodo == info.id_tipoperiodo && Cierre.id_Periodo == info.id_Periodo);

            if (val.id_Status_ProVta == 3)//suponiendo que es el tipo Cerrado
            {
                return
                   this.Json("{success:false,error:'Este Periodo ya esta cerrado para este Distribuidor.'}", JsonRequestBehavior.AllowGet);
            }
            //1.- Validar
            if (info.id_GFX ==null)
            {
                return
                    this.Json("{success:false,error:'Incluir GFX'}", JsonRequestBehavior.AllowGet);
            }

            if (info.id_ProgramaVta == null)
            {
                return
                   this.Json("{success:false,error:'Debe seleccionar un Programa de Venta'}", JsonRequestBehavior.AllowGet);
            }

            if (info.id_tipoperiodo == null)
            {
                return
                   this.Json("{success:false,error:'Debe seleccionar un Tipo de Periodo'}", JsonRequestBehavior.AllowGet);
            }

            if (info.id_Periodo== null)
            {
                return
                   this.Json("{success:false,error:'Debe seleccionar un Periodo'}", JsonRequestBehavior.AllowGet);
            }

            int status = 3; //realizar la funcionalidad para sacar el status, dependiendo si va a estar pendiente o cerrado
            //en este caso para esta funcion de cierre deberia de ser el id del estatus de cerrado

            try//SOLO PARA PRUEBAS en caso de que exista un usuario en tabla principal
            {
                string usuarioActual = this.CurrentUser;
            }
            catch
            {
                string usuarioActual = "yyyy368";
            }
            bool EsNuevo = false;
            if (info.id_CierrexProVta == 0)
            {
                //insert
                info.id_Status_ProVta = status; //rEVISAR QUE ESTATUS SERIA AL GRABAR UN CIERRE
                //info.USERmODIF = usuarioActual;//REVISAR SI SE VA A AGREGAR UN USUARIO DE MODIFICACION A LA TABLA PRINCIPAL
                info.fch_Modif = DateTime.Now;
                if (status==3)//se esta suponiendo que el estatus de cerrado es el 3
                    info.fch_Cierre = DateTime.Now;
                this._repCierre.Add(info);
                EsNuevo = true;
            }
            else
            {
                //update
                //info.cd_usuariomodif = usuarioActual;
                info.id_Status_ProVta = status;
                info.fch_Modif = DateTime.Now;
                if (status == 3)
                    info.fch_Cierre = DateTime.Now;
                this._repCierre.Update(info);
                EsNuevo = false;
            }
            try//revisar desde donde empieza el try
            {
                this._repCierre.SaveAllChanges();
                if (SaveCierreProVtaDetalle(EsNuevo,info.id_CierrexProVta,info.id_GFX, info.id_ProgramaVta, info.id_tipoperiodo, info.id_Periodo) == true)
                {
                    return this.Json("{success:true,id:" + info.id_CierrexProVta.ToString() + "}", JsonRequestBehavior.AllowGet);
                }
                else
                {
                    return
                  this.Json("{success:false,error:'Error al guardar la información de Detalle'}", JsonRequestBehavior.AllowGet);
                }
            }
            catch
            {
                return
                  this.Json("{success:false,error:'Error al guardar la información'}", JsonRequestBehavior.AllowGet);
            }
        }
 public void Guardar_CierreVta()
 {
     CierreProVtaController target = new CierreProVtaController();
     Cierre_ProVta cpv = new Cierre_ProVta();
     cpv.id_CierrexProVta = 4;
     cpv.id_GFX = 936153;
     cpv.id_ProgramaVta= 1;
     cpv.id_tipoperiodo= 1;
     cpv.id_Periodo= 1;
     var actual = target.SaveCierreProVta(cpv);
     string rawResult = serializer.Serialize(actual.Data);
     var expected = "true";
     Assert.AreEqual(expected, rawResult, "Debe guardar");
 }