Exemplo n.º 1
0
        protected void btnSaveRefresh_Click(object sender, EventArgs e)
        {
            string          Mode = Request.QueryString["Mode"].ToString();
            OperationResult objOperationResult = new OperationResult();

            _protocolcomponentListDTO = new List <protocolcomponentDto>();

            _protocolDTO = new protocolDto();
            var id  = cbOrganization.SelectedValue.ToString().Split('|');
            var id1 = cbOrganizationInvoice.SelectedValue.ToString().Split('|');
            var id2 = cbIntermediaryOrganization.SelectedValue.ToString().Split('|');

            _protocolDTO.v_Name = txtProtocolName.Text;
            _protocolDTO.v_EmployerOrganizationId = id[0];
            _protocolDTO.v_EmployerLocationId     = id[1];
            _protocolDTO.i_EsoTypeId              = int.Parse(cbEsoType.SelectedValue.ToString());
            _protocolDTO.v_GroupOccupationId      = cbGeso.SelectedValue.ToString();
            _protocolDTO.v_CustomerOrganizationId = id1[0];
            _protocolDTO.v_CustomerLocationId     = id1[1];
            _protocolDTO.v_WorkingOrganizationId  = id2[0];
            _protocolDTO.v_WorkingLocationId      = cbIntermediaryOrganization.SelectedValue.ToString() != "-1" ? id2[1] : "-1";
            _protocolDTO.i_MasterServiceId        = int.Parse(cbService.SelectedValue.ToString());
            _protocolDTO.v_CostCenter             = txtCostCenter.Text;
            _protocolDTO.i_MasterServiceTypeId    = int.Parse(cbServiceType.SelectedValue.ToString());
            _protocolDTO.i_HasVigency             = 0;
            _protocolDTO.i_ValidInDays            = 0;
            _protocolDTO.i_IsActive       = 1;
            _protocolDTO.v_NombreVendedor = "";

            if (Mode == "New")
            {
                if (IsExistsProtocolName())
                {
                    Alert.Show("Este protocolo ya existe");
                    return;
                }

                CheckBoxField field1 = (CheckBoxField)grdData.FindColumn("CheckBoxField2");

                for (int i = 0; i < grdData.Rows.Count; i++)
                {
                    if (field1.GetCheckedState(i) == true)
                    {
                        _protocolDTO.v_ProtocolId = null;
                        GridRow row = grdData.Rows[i];
                        System.Web.UI.WebControls.TextBox txtPrice = (System.Web.UI.WebControls.TextBox)row.FindControl("r_Price");


                        protocolcomponentDto protocolComponent = new protocolcomponentDto();

                        protocolComponent.v_ComponentId = grdData.Rows[i].Values[5];
                        protocolComponent.r_Price       = float.Parse(txtPrice.Text.ToString());// float.Parse(grdData.Rows[i].Values[4].ToString());
                        //protocolComponent.i_OperatorId = -1;
                        //protocolComponent.i_Age = 0;
                        //protocolComponent.i_GenderId = 3;
                        //protocolComponent.i_IsAdditional = 0;
                        //protocolComponent.i_IsConditionalId =0;
                        System.Web.UI.WebControls.TextBox txtEdad = (System.Web.UI.WebControls.TextBox)row.FindControl("i_Age");
                        CheckBoxField fieldAdicional   = (CheckBoxField)grdData.FindColumn("CheckBoxField3");
                        bool          ChecAdicional    = fieldAdicional.GetCheckedState(i);
                        CheckBoxField fieldCondicional = (CheckBoxField)grdData.FindColumn("CheckBoxField4");
                        bool          ChecCondicional  = fieldCondicional.GetCheckedState(i);

                        protocolComponent.i_Age             = int.Parse(txtEdad.Text.ToString());
                        protocolComponent.i_IsAdditional    = ChecAdicional == true ? 1 : 0;
                        protocolComponent.i_IsConditionalId = ChecCondicional == true ? 1 : 0;

                        System.Web.UI.WebControls.DropDownList ddlOperador = (System.Web.UI.WebControls.DropDownList)grdData.Rows[i].FindControl("ddlOperador");
                        System.Web.UI.WebControls.DropDownList ddlGender   = (System.Web.UI.WebControls.DropDownList)grdData.Rows[i].FindControl("ddlGender");



                        protocolComponent.i_GenderId   = int.Parse(ddlGender.SelectedValue.ToString());
                        protocolComponent.i_OperatorId = int.Parse(ddlOperador.SelectedValue.ToString());

                        protocolComponent.i_IsConditionalIMC = 0;
                        protocolComponent.r_Imc = 0;

                        _protocolcomponentListDTO.Add(protocolComponent);
                    }
                }

                _protocolBL.AddProtocol(ref objOperationResult, _protocolDTO, _protocolcomponentListDTO, ((ClientSession)Session["objClientSession"]).GetAsList());
            }
            else if (Mode == "Edit")
            {
                _protocolDTO.v_ProtocolId = Session["ProtocolId"].ToString();
                //Eliminar Fisicamente registros de protocolcomponent
                _protocolBL.EliminarProtocolComponentByProtocolId(ref objOperationResult, Session["ProtocolId"].ToString());

                //Grabar de nuevo la entidad
                CheckBoxField field1 = (CheckBoxField)grdData.FindColumn("CheckBoxField2");

                for (int i = 0; i < grdData.Rows.Count; i++)
                {
                    if (field1.GetCheckedState(i) == true)
                    {
                        protocolcomponentDto protocolComponent = new protocolcomponentDto();
                        GridRow row = grdData.Rows[i];

                        System.Web.UI.WebControls.TextBox txtPrice = (System.Web.UI.WebControls.TextBox)row.FindControl("r_Price");
                        System.Web.UI.WebControls.TextBox txtEdad  = (System.Web.UI.WebControls.TextBox)row.FindControl("i_Age");
                        CheckBoxField fieldAdicional   = (CheckBoxField)grdData.FindColumn("CheckBoxField3");
                        bool          ChecAdicional    = fieldAdicional.GetCheckedState(i);
                        CheckBoxField fieldCondicional = (CheckBoxField)grdData.FindColumn("CheckBoxField4");
                        bool          ChecCondicional  = fieldCondicional.GetCheckedState(i);

                        System.Web.UI.WebControls.DropDownList ddlOperador = (System.Web.UI.WebControls.DropDownList)grdData.Rows[i].FindControl("ddlOperador");
                        System.Web.UI.WebControls.DropDownList ddlGender   = (System.Web.UI.WebControls.DropDownList)grdData.Rows[i].FindControl("ddlGender");



                        protocolComponent.v_ComponentId     = grdData.Rows[i].Values[5];
                        protocolComponent.r_Price           = float.Parse(txtPrice.Text.ToString());
                        protocolComponent.i_Age             = int.Parse(txtEdad.Text.ToString());
                        protocolComponent.i_IsAdditional    = ChecAdicional == true ? 1:0;
                        protocolComponent.i_IsConditionalId = ChecCondicional == true ? 1 : 0;



                        protocolComponent.i_GenderId   = int.Parse(ddlGender.SelectedValue.ToString());
                        protocolComponent.i_OperatorId = int.Parse(ddlOperador.SelectedValue.ToString());


                        protocolComponent.i_IsConditionalIMC = 0;
                        protocolComponent.r_Imc = 0;

                        _protocolcomponentListDTO.Add(protocolComponent);
                    }
                }

                _protocolBL.AddProtocol(ref objOperationResult, _protocolDTO, _protocolcomponentListDTO, ((ClientSession)Session["objClientSession"]).GetAsList());
            }
            //Analizar el resultado de la operación
            if (objOperationResult.Success == 1)  // Operación sin error
            {
                // Cerrar página actual y hacer postback en el padre para actualizar
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
            }
            else  // Operación con error
            {
                Alert.ShowInTop("Error en operación:" + System.Environment.NewLine + objOperationResult.ExceptionMessage);
                // Se queda en el formulario.
            }
        }