private void btnGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor = Cursors.WaitCursor;
                if (!ValidarIngreso())
                {
                    InspectionCertificateBL objBL_InspectionCertificate = new InspectionCertificateBL();
                    InspectionCertificateBE objInspectionCertificate    = new InspectionCertificateBE();

                    objInspectionCertificate.NumberCertificate  = txtNumberCertificate.Text;
                    objInspectionCertificate.IdClient           = Convert.ToInt32(cboClient.EditValue);
                    objInspectionCertificate.IdClientDepartment = Convert.ToInt32(cboDivision.EditValue);
                    objInspectionCertificate.IdClientBrand      = Convert.ToInt32(cboClientBrand.EditValue);
                    objInspectionCertificate.IdVendor           = Convert.ToInt32(cboVendor.EditValue);
                    objInspectionCertificate.PaymentTerm        = cboPaymentTerm.Text;
                    objInspectionCertificate.Cartons            = Convert.ToInt32(txtCartons.EditValue);
                    objInspectionCertificate.IssueDate          = Convert.ToDateTime(deIssueDate.DateTime.ToShortDateString());
                    objInspectionCertificate.IdRepresentative   = Convert.ToInt32(cboRepresentative.EditValue);
                    objInspectionCertificate.DescriptionStyle   = txtDescriptionStyle.Text;
                    objInspectionCertificate.NumberInvoice      = txtNumberInvoice.Text;
                    objInspectionCertificate.IssueDateInvoice   = Convert.ToDateTime(deIssueDateInvoice.DateTime.ToShortDateString());
                    objInspectionCertificate.IdCurrency         = Convert.ToInt32(cboCurrency.EditValue);
                    objInspectionCertificate.Amount             = Convert.ToDecimal(txtAmount.EditValue);
                    objInspectionCertificate.EtdDate            = Convert.ToDateTime(deEtdDate.DateTime.ToShortDateString());
                    objInspectionCertificate.IdTypeShipping     = Convert.ToInt32(cboTypeShipping.EditValue);
                    objInspectionCertificate.BoardingWay        = txtBoardingWay.Text;
                    objInspectionCertificate.IdStatus           = intIdStatus;
                    objInspectionCertificate.FlagState          = true;
                    objInspectionCertificate.Login     = Parametros.strUsuarioLogin;
                    objInspectionCertificate.Machine   = WindowsIdentity.GetCurrent().Name.ToString();
                    objInspectionCertificate.IdCompany = Parametros.intEmpresaId;

                    //DETAIL
                    List <InspectionCertificateDetailBE> lstInspectionCertificateDetail = new List <InspectionCertificateDetailBE>();

                    foreach (var item in mListaInspectionCertificateDetailOrigen)
                    {
                        InspectionCertificateDetailBE objE_InspectionCertificateDetail = new InspectionCertificateDetailBE();
                        objE_InspectionCertificateDetail.IdCompany = Parametros.intEmpresaId;
                        objE_InspectionCertificateDetail.IdInspectionCertificate       = IdInspectionCertificate;
                        objE_InspectionCertificateDetail.IdInspectionCertificateDetail = item.IdInspectionCertificateDetail;
                        objE_InspectionCertificateDetail.IdProgramProductionDetail     = item.IdProgramProductionDetail;
                        objE_InspectionCertificateDetail.NumberPO          = item.NumberPO;
                        objE_InspectionCertificateDetail.NumberOI          = item.NumberOI;
                        objE_InspectionCertificateDetail.NameStyle         = item.NameStyle;
                        objE_InspectionCertificateDetail.Description       = item.Description;
                        objE_InspectionCertificateDetail.Dyelot            = item.Dyelot;
                        objE_InspectionCertificateDetail.Item              = item.Item;
                        objE_InspectionCertificateDetail.Color             = item.Color;
                        objE_InspectionCertificateDetail.POOrder           = item.POOrder;
                        objE_InspectionCertificateDetail.Pieces            = item.Pieces;
                        objE_InspectionCertificateDetail.Fob               = item.Fob;
                        objE_InspectionCertificateDetail.AmountCertificate = item.AmountCertificate;
                        objE_InspectionCertificateDetail.Percents          = item.Percents;
                        objE_InspectionCertificateDetail.TipoOper          = item.TipoOper;
                        objE_InspectionCertificateDetail.FlagState         = true;
                        objE_InspectionCertificateDetail.Login             = Parametros.strUsuarioLogin;
                        objE_InspectionCertificateDetail.Machine           = WindowsIdentity.GetCurrent().Name.ToString();
                        objE_InspectionCertificateDetail.TipoOper          = item.TipoOper;
                        lstInspectionCertificateDetail.Add(objE_InspectionCertificateDetail);

                        //NUMBER PO
                        if (lstNumberPO.Count == 0)
                        {
                            lstNumberPO.Add(item.NumberPO);
                        }
                        else
                        {
                            int intIndex = 0;
                            intIndex = lstNumberPO.LastIndexOf(item.NumberPO);
                            if (intIndex < 0)
                            {
                                lstNumberPO.Add(item.NumberPO);
                            }
                        }

                        //NUMBER O/I
                        if (lstNumberOI.Count == 0)
                        {
                            lstNumberOI.Add(item.NumberOI);
                        }
                        else
                        {
                            int intIndex = 0;
                            intIndex = lstNumberOI.LastIndexOf(item.NumberOI);
                            if (intIndex < 0)
                            {
                                lstNumberOI.Add(item.NumberOI);
                            }
                        }
                    }

                    string strNumberPO = string.Join(",", lstNumberPO);
                    string strNumberOI = string.Join(",", lstNumberOI);

                    if (pOperacion == Operacion.Nuevo)
                    {
                        objInspectionCertificate.NumberPO = strNumberPO;
                        objInspectionCertificate.NumberOI = strNumberOI;
                        objBL_InspectionCertificate.Inserta(objInspectionCertificate, lstInspectionCertificateDetail);
                        Application.DoEvents();
                    }
                    else
                    {
                        objInspectionCertificate.NumberPO = strNumberPO;
                        objInspectionCertificate.NumberOI = strNumberOI;
                        objInspectionCertificate.IdInspectionCertificate = IdInspectionCertificate;
                        objBL_InspectionCertificate.Actualiza(objInspectionCertificate, lstInspectionCertificateDetail);
                    }


                    this.Close();
                }
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Default;
                XtraMessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }