private void Update()
    {
        try
        {
            var BL = new tb_cxc_pedidocabBL();
            var BE = new tb_cxc_pedidocab();

            var Detalle = new tb_cxc_pedidocab.Item();
            var ListaItems = new List<tb_cxc_pedidocab.Item>();

            var Detalle2 = new tb_cxc_pedidocab.Crono();
            var ListaCrono = new List<tb_cxc_pedidocab.Crono>();

            #region Datos Cabecera
            BE.tipdoc = txt_tipdoc.Text;
            BE.serdoc = txt_serdoc.Text;
            BE.numdoc = txt_numdoc.Text;

            BE.canalventaid = Session["ssCanalVentaId"].ToString();
            BE.tipventaid = cmb_tipventa.SelectedValue.ToString();
            BE.fechdoc = Convert.ToDateTime(fechdoc.Text);
            BE.fechentrega = Convert.ToDateTime(fechentrega.Text);
            BE.vendorid = txt_vendorid.Text;
            BE.ctacte = txt_ctacte.Text;
            BE.replegal_dni = replegal_dni.Text;
            BE.replegal_name = replegal_name.Text;
            BE.direc_entrega = direc_entrega.Text;
            BE.condventaid = cmb_condventaid.SelectedValue.ToString();
            BE.plazoday = Convert.ToInt32(cmb_plazoday.SelectedValue.ToString());
            BE.impobruto = Convert.ToDecimal(txt_impobruto.Text);
            BE.rangoid = "05";// *****************************************************************
            BE.tasadescto = Convert.ToDecimal(txt_tasadescto.Text);
            BE.imponeto = Convert.ToDecimal(txt_imponeto.Text);
            BE.moneda = cmb_moneda.SelectedValue.ToString();
            if (cmb_igv.Value.ToString() == "S")
            {
                BE.incluye_igv = true;
            }
            else
            {
                BE.incluye_igv = false;
            }
            BE.observacion = txt_obs.Text;
            BE.mediopagoid = cmb_mediopagoid.Value.ToString();
            BE.numdocs = Convert.ToInt32(spe_numdocs.Text);
            BE.aprob_status = "11";
            //BE.aprob_obser = aprob_obs.Text;
            //if (aprob_fech.Text.Length > 0)
            //{ BE.aprob_fech = Convert.ToDateTime(aprob_fech.Text); }
            BE.usuar = Session["ssUsuar"].ToString();
            #endregion

            #region Datos Detalle
            TablaDetalle = (DataTable)Session["TablaDetalle"];
            foreach (DataRow fila in TablaDetalle.Rows)
            {
                Detalle = new tb_cxc_pedidocab.Item();
                Detalle.tipdoc = txt_tipdoc.Text;
                Detalle.serdoc = txt_serdoc.Text;
                Detalle.numdoc = txt_numdoc.Text;
                Detalle.articid = fila["articid"].ToString();
                Detalle.articidold = fila["articidold"].ToString();
                Detalle.colorid = fila["colorid"].ToString();
                Detalle.tallaid = fila["tallaid"].ToString();
                Detalle.coltall = fila["talla"].ToString();
                Detalle.cantidad = Convert.ToDecimal(fila["cantidad"].ToString());
                Detalle.precbruto = Convert.ToDecimal(fila["precbruto"].ToString());
                Detalle.impobruto = Convert.ToDecimal(fila["impobruto"].ToString());
                Detalle.precneto = Convert.ToDecimal(fila["precneto"].ToString());
                Detalle.imponeto = Convert.ToDecimal(fila["imponeto"].ToString());
                Detalle.usuar = Session["ssUsuar"].ToString().Trim();
                Detalle.canalventaid = Session["ssCanalVentaId"].ToString();
                Detalle.local = Session["ssLocal"].ToString();

                if (Convert.ToDecimal(fila["imponeto"].ToString()) > 0)
                {
                    ListaItems.Add(Detalle);
                }
                else
                {
                    ClientMessage("DOCUMENTO DETALLE PROFORMA EN FORMATO INCORRECTO ...!!!");
                    return;
                }
            }
            BE.ListaItems = ListaItems;
            #endregion

            #region Datos Detalle CronoGramaPagos
            TablaCronoPagos = (DataTable)Session["TablaCronoPagos"];
            foreach (DataRow fila in TablaCronoPagos.Rows)
            {
                Detalle2 = new tb_cxc_pedidocab.Crono();
                Detalle2.tipdoc = txt_tipdoc.Text;
                Detalle2.serdoc = txt_serdoc.Text;
                Detalle2.numdoc = txt_numdoc.Text;
                Detalle2.mediopagoid = cmb_mediopagoid.Value.ToString();
                Detalle2.item = fila["item"].ToString();
                Detalle2.num_interno = fila["num_interno"].ToString();
                Detalle2.num_unico = fila["num_unico"].ToString();
                Detalle2.monto = Convert.ToDecimal(fila["monto"].ToString());
                String xfecha = Equivalencias.Left(fila["fechven"].ToString(), 10);
                Detalle2.fechven = Convert.ToDateTime(xfecha);
                Detalle2.usuar = Session["ssUsuar"].ToString().Trim();

                if (Convert.ToDecimal(fila["monto"].ToString()) > 0)
                {
                    ListaCrono.Add(Detalle2);
                }
                else
                {
                    ClientMessage("DOCUMENTO DETALLE CRONOGRAMA PAGOS EN FORMATO INCORRECTO ...!!!");
                    return;
                }
            }
            BE.ListaCrono = ListaCrono;
            #endregion

            // PASAR A LLAMAR AL METODO DE INSERCION DE PROFORMA
            if (BL.Update(Session["ssEmpresaID"].ToString(), BE))
            {
                //ClientMessage("Registros Modificados Correctamente !!!");
                MensajeQuery2("Registros Modificados Correctamente !!!");

                LimpiarDocumento();
                CargarCorrelativoDoc();
                Lock_or_Unlock_Boton("N", true, "");
                Lock_or_Unlock_Boton("C", false, "_disabled");
                Lock_or_Unlock_Boton("G", false, "_disabled");
                Lock_or_UnLock_Paneles("01", false, "fondo_bloqueo", "_disabled");
                Lock_or_UnLock_Paneles("02", false, "fondo_bloqueo", "_disabled");
                Lock_or_UnLock_Paneles("03", false, "fondo_bloqueo", "_disabled");

                btn_Imprimir.Enabled = true;
                btn_Imprimir.CssClass = "btn btn-primary";
                //btn_grabar.Enabled = false;
                //btn_grabar.CssClass = "btn btn-default";
            }
        }
        catch (Exception ex)
        {
            //ClientMessage(ex.Message);
            Response.Redirect("ErrorPage/Frm_PaginaError_405.aspx");
        }
    }
    private void Insert()
    {
        try
        {
            var BL = new tb_cxc_pedidocabBL();
            var BE = new tb_cxc_pedidocab();

            var Detalle = new tb_cxc_pedidocab.Item();
            var ListaItems = new List<tb_cxc_pedidocab.Item>();

            var Detalle2 = new tb_cxc_pedidocab.Crono();
            var ListaCrono = new List<tb_cxc_pedidocab.Crono>();

            #region Datos Cabecera
            BE.tipdoc = txt_tipdoc.Text;
            BE.serdoc = txt_serdoc.Text;
            BE.numdoc = txt_numdoc.Text;
            BE.canalventaid = Session["ssCanalVentaId"].ToString();
            BE.tipventaid = cmb_tipventa.SelectedValue.ToString();
            BE.fechdoc = Convert.ToDateTime(fechdoc.Text);
            BE.fechentrega = Convert.ToDateTime(fechentrega.Text);
            BE.vendorid = txt_vendorid.Text;
            BE.ctacte = txt_ctacte.Text;
            BE.direcnume = "";
            BE.replegal_dni = replegal_dni.Text;
            BE.replegal_name = replegal_name.Text;
            BE.direc_entrega = direc_entrega.Text;
            BE.condventaid = cmb_condventaid.SelectedValue.ToString();
            BE.plazoday = Convert.ToInt32(cmb_plazoday.SelectedValue.ToString());
            BE.impobruto = Convert.ToDecimal(txt_impobruto.Text);
            BE.rangoid = "05";// *****************************************************************
            BE.tasadescto = Convert.ToDecimal(txt_tasadescto.Text);
            BE.imponeto = Convert.ToDecimal(txt_imponeto.Text);
            BE.moneda = cmb_moneda.SelectedValue.ToString();
            if (cmb_igv.Value.ToString() == "S")
            {
                BE.incluye_igv = true;
            }
            else
            {
                BE.incluye_igv = false;
            }
            BE.observacion = txt_obs.Text;
            BE.mediopagoid = cmb_mediopagoid.Value.ToString();
            BE.numdocs = Convert.ToInt32(spe_numdocs.Text);
            BE.aprob_status = AproStatus.ToString() ;//"11";
            //BE.aprob_obser = aprob_obs.Text;
            //if (aprob_fech.Text.Length > 0)
            //{ BE.aprob_fech = Convert.ToDateTime(aprob_fech.Text); }
            BE.usuar = Session["ssUsuar"].ToString().Trim();
            BE.local = Session["ssLocal"].ToString().Trim();
            BE.moduloid = Session["ssModuloId"].ToString().Trim();

            String xmod = Session["ssModo"].ToString();

            switch (Session["ssModo"].ToString())
            {
                case "NEW": BE.accion = "INS"; break;
                case "EDI": BE.accion = "ALT"; break;
                case "DEL": BE.accion = "DEL"; break;
            }
            #endregion

            #region Datos Detalle
            TablaDetalle = (DataTable)Session["TablaDetalle"];
            foreach (DataRow fila in TablaDetalle.Rows)
            {
                Detalle = new tb_cxc_pedidocab.Item();
                Detalle.tipdoc = txt_tipdoc.Text;
                Detalle.serdoc = txt_serdoc.Text;
                Detalle.numdoc = txt_numdoc.Text;

                Detalle.articid = fila["articid"].ToString();
                Detalle.articidold = fila["articidold"].ToString();
                Detalle.colorid = fila["colorid"].ToString();
                Detalle.tallaid = fila["tallaid"].ToString();
                Detalle.coltall = Equivalencias.Right(fila["coltall"].ToString(), 2);
                Detalle.cantidad = Convert.ToDecimal(fila["cantidad"].ToString());
                Detalle.precbruto = Convert.ToDecimal(fila["precbruto"].ToString());
                Detalle.impobruto = Convert.ToDecimal(fila["impobruto"].ToString());
                Detalle.precneto = Convert.ToDecimal(fila["precneto"].ToString());
                Detalle.imponeto = Convert.ToDecimal(fila["imponeto"].ToString());
                Detalle.usuar = Session["ssUsuar"].ToString().Trim();
                Detalle.canalventaid = Session["ssCanalVentaId"].ToString();
                Detalle.local = Session["ssLocal"].ToString();

                if (Convert.ToDecimal(fila["imponeto"].ToString()) > 0)
                {
                    ListaItems.Add(Detalle);
                }
                else
                {
                    ClientMessage("DOCUMENTO DETALLE PROFORMA EN FORMATO INCORRECTO ...!!!");
                    return;
                }
            }
            BE.ListaItems = ListaItems;
            #endregion

            #region Datos Detalle CronoGramaPagos
            TablaCronoPagos = (DataTable)Session["TablaCronoPagos"];
            foreach (DataRow fila in TablaCronoPagos.Rows)
            {
                Detalle2 = new tb_cxc_pedidocab.Crono();
                Detalle2.tipdoc = txt_tipdoc.Text;
                Detalle2.serdoc = txt_serdoc.Text;
                Detalle2.numdoc = txt_numdoc.Text;
                Detalle2.mediopagoid = cmb_mediopagoid.Value.ToString();
                Detalle2.item = fila["item"].ToString();
                Detalle2.num_interno = fila["num_interno"].ToString();
                Detalle2.num_unico = fila["num_unico"].ToString();
                Detalle2.monto = Convert.ToDecimal(fila["monto"].ToString());
                String xfecha = Equivalencias.Left(fila["fechven"].ToString(), 10);
                Detalle2.fechven = Convert.ToDateTime(xfecha);
                Detalle2.usuar = Session["ssUsuar"].ToString().Trim();

                if (Convert.ToDecimal(fila["monto"].ToString()) > 0)
                {
                    ListaCrono.Add(Detalle2);
                }
                else
                {
                    ClientMessage("DOCUMENTO DETALLE CRONOGRAMA PAGOS EN FORMATO INCORRECTO ...!!!");
                    return;
                }
            }
            BE.ListaCrono = ListaCrono;
            #endregion

            #region Inserción de Datos en Tabla Stock diario
            var BLStk = new tb_me_stockdiariocabBL();
            var BEStk = new tb_me_stockdiariocab();
            //var BLStk = new tb_cxc_pedidocabBL();
            //var BEStk = new tb_cxc_pedidocab();

            //switch (Session["ssModo"].ToString())
            //{
            //    case "NEW": BE.accion = "INS"; break;
            //    case "EDIT": BE.accion = "ALT"; break;
            //    case "DEL": BE.accion = "DEL"; break;
            //}

            //BEStk.almacaccionid = "21";
            #endregion

            #region Inserción de Datos en Tabla Stock Diario Detalle
            decimal canti = 0;
            var DetalleStk = new tb_cxc_pedidocab.ItemsStkDeta();
            var ListaStkItems = new List<tb_cxc_pedidocab.ItemsStkDeta>();
            TablaDetalleStk = (DataTable)Session["TablaDetalle"];
            foreach (DataRow fila in TablaDetalleStk.Rows)
            {
                DetalleStk = new tb_cxc_pedidocab.ItemsStkDeta();
                DetalleStk.fecha = Convert.ToDateTime(DateTime.Today.ToString()); //Convert.ToDateTime(Session["bd_fecha"].ToString());
                DetalleStk.articid = fila["articid"].ToString();
                DetalleStk.colorid = fila["colorid"].ToString();
                DetalleStk.coltall = Equivalencias.Right(fila["coltall"].ToString(), 2);
                DetalleStk.almacaccionid = "21";
                DetalleStk.tipodoc = txt_tipdoc.Text;
                DetalleStk.serdoc = txt_serdoc.Text;
                DetalleStk.numdoc = txt_numdoc.Text;
                canti = Convert.ToDecimal(fila["cantidad"].ToString());
                DetalleStk.cantidad = canti;
                DetalleStk.ctacte = txt_ctacte.Text;
                DetalleStk.direcnume = Session["direcnume"].ToString();//direc_entrega.Text;
                DetalleStk.tipoperacionid = "10";
                DetalleStk.tiporef = txt_tipdoc.Text;
                DetalleStk.serref = txt_serdoc.Text;
                DetalleStk.numref = txt_numdoc.Text;
                DetalleStk.estado = 1;
                DetalleStk.atendido = 0;
                DetalleStk.vendorid = txt_vendorid.Text;
                DetalleStk.usuar = Session["ssUsuar"].ToString().Trim();
                DetalleStk.canalventaid = Session["ssCanalVentaId"].ToString();
                DetalleStk.local = Session["ssLocal"].ToString();
                DetalleStk.dominioid = Session["ssDominioid"].ToString();
                DetalleStk.moduloid = Session["ssModuloid"].ToString();

                if (TablaDetalle.Rows.Count > 0)
                {
                    ListaStkItems.Add(DetalleStk);
                }
                else
                {
                    ClientMessage("DOCUMENTO DETALLE INCORRECTO ...!!!");
                    return;
                }
            }
            BE.listaItemsStkDeta = ListaStkItems;
            #endregion

            //BLStk.InsertStk(Session["ssEmpresaID"].ToString(), BEStk);

            // PASAR A LLAMAR AL METODO DE INSERCION DE PEDIDO
            if (BL.Insert(Session["ssEmpresaID"].ToString(), BE))
            {
                ClientMessage("Registros Grabados Correctamente !!!");
                LimpiarDocumento();
                CargarCorrelativoDoc();

                //Lock_or_Unlock_Boton("N", true, "");
                //Lock_or_Unlock_Boton("C", false, "_disabled");
                //Lock_or_Unlock_Boton("G", false, "_disabled");
                //Lock_or_UnLock_Paneles("01", false, "fondo_bloqueo", "_disabled");
                //Lock_or_UnLock_Paneles("02", false, "fondo_bloqueo", "_disabled");
                //Lock_or_UnLock_Paneles("03", false, "fondo_bloqueo", "_disabled");

                btn_Imprimir.Enabled = true;
                btn_Imprimir.CssClass = "btn btn-primary";
                //btn_grabar.Enabled = false;
                //btn_grabar.CssClass = "btn btn-default";
            }
        }
        catch (Exception ex)
        {
            //ClientMessage(ex.Message);
            Response.Redirect("ErrorPage/Frm_PaginaError_405.aspx");
        }
    }