public Boolean GuardarDB(prd_Ensamblado_CusCider_Info Info, List <prd_Ensamblado_Det_CusCider_Info> Det, ref decimal idEnsamblado, ref string msg)
        {
            try
            {
                List <prd_Ensamblado_CusCider_Info> Lst     = new List <prd_Ensamblado_CusCider_Info>();
                prd_Ensamblado_Det_CusCider_Data    DetData = new prd_Ensamblado_Det_CusCider_Data();
                using (EntitiesProduccion_Cidersus Context = new EntitiesProduccion_Cidersus())
                {
                    var Address = new prd_Ensamblado_CusCider();
                    idEnsamblado           = getId(Info.IdEmpresa, Info.IdSucursal);
                    Address.IdEmpresa      = Info.IdEmpresa;
                    Address.IdSucursal     = Info.IdSucursal;
                    Address.IdEnsamblado   = idEnsamblado;
                    Address.IdBodega       = Info.IdBodega;
                    Address.IdGrupoTrabajo = Info.IdGrupoTrabajo;
                    Address.IdProducto     = Info.IdProducto;

                    Address.CodigoBarra   = "A" + DateTime.Now.Year + "M" + DateTime.Now.Month + "D" + DateTime.Now.Day + "E" + Info.IdEmpresa + "N" + idEnsamblado + "O" + Info.CodObra + "T" + Info.IdOrdenTaller + "P" + Info.IdProducto + "G" + Info.IdGrupoTrabajo;
                    Address.CodObra       = Info.CodObra;
                    Address.IdOrdenTaller = Info.IdOrdenTaller;
                    Address.IdUsuario     = Info.IdUsuario;
                    Address.FechaTransac  = Info.FechaTransac;

                    Address.IdDespacho = Info.IdDespacho;

                    Address.Estado = "A";
                    if (Info.Observacion.Length > 1000)
                    {
                        Address.Observacion = Info.Observacion.Substring(0, 1000);
                    }
                    else
                    {
                        Address.Observacion = Info.Observacion;
                    }
                    Context.prd_Ensamblado_CusCider.Add(Address);
                    Context.SaveChanges();

                    Det.ForEach(var =>
                    {
                        var.IdEnsamblado = Address.IdEnsamblado;
                        var.IdEmpresa    = Info.IdEmpresa;
                        var.IdSucursal   = Info.IdSucursal;
                    });
                    return(DetData.GuardarDB(Det, ref msg));
                }
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                msg = ex.ToString() + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref msg);
                throw new Exception(ex.ToString());
            }
        }
        //modificado por pedro salinas, se le cambio el First por el FirstOrDefault y se agrego una pregunta para identificar si el query esta en null
        public Boolean AnularDB(prd_Ensamblado_CusCider_Info ensamblado, ref string msg)
        {
            try
            {
                using (EntitiesProduccion_Cidersus context = new EntitiesProduccion_Cidersus())
                {
                    var contact = context.prd_Ensamblado_CusCider.FirstOrDefault(obj => obj.IdEnsamblado == ensamblado.IdEnsamblado && obj.IdSucursal == ensamblado.IdSucursal && obj.IdEmpresa == ensamblado.IdEmpresa);
                    if (contact != null)
                    {
                        contact.Estado       = "I";
                        contact.FechaAnu     = ensamblado.FechaAnu;
                        contact.IdUsuarioAnu = ensamblado.IdUsuarioAnu;
                        contact.MotivoAnu    = ensamblado.MotivoAnu;

                        context.SaveChanges();

                        prd_Ensamblado_Det_CusCider_Data        datadet = new prd_Ensamblado_Det_CusCider_Data();
                        List <prd_Ensamblado_Det_CusCider_Info> det     = new List <prd_Ensamblado_Det_CusCider_Info>();
                        det = datadet.ConsultaEnsamblado(ensamblado.IdEmpresa, ensamblado.IdSucursal, ensamblado.IdEnsamblado, ref msg);
                        if (datadet.eliminaregistrotabla(det, ref msg))
                        {
                            det.ForEach(var => { var.en_cantidad = 0; var.Observacion = "**ANULADO***" + var.Observacion; });
                            if (datadet.GuardarDB(det, ref msg))
                            {
                                msg = "Se ha procedido a anular el Ensamblado No: " + ensamblado.IdEnsamblado.ToString() + " exitosamente";
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                msg = ex.ToString() + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref msg);
                throw new Exception(ex.ToString());
            }
        }