public JsonResult JsonGetListarDocumentosRecepcionDetalle(long iddocumentorecepcion)
        {
            var listadoTotal = new RecepcionData().GetListarDocumentoRecepcionDetalle(iddocumentorecepcion).ToList();
            var resjson1     = (new JqGridExtension <DocumentoRecepcionDetalleModel>()).DataBind(listadoTotal, listadoTotal.Count);

            return(resjson1);
        }
        public JsonResult JsonGetListarOrdenServicio(int idguiaremision)
        {
            List <OrdenServicioModel> listadoTotal;

            if (Session["GuiaDetalle"] != null)
            {
                listadoTotal = (List <OrdenServicioModel>)Session["GuiaDetalle"];
            }
            else
            {
                listadoTotal = new RecepcionData().GetListarOrdenServicio(idguiaremision).ToList();
            }


            Session["GuiaDetalle"] = listadoTotal;

            var draw          = Request.Form.GetValues("draw").FirstOrDefault();
            var start         = Request.Form.GetValues("start").FirstOrDefault();
            var length        = Request.Form.GetValues("length").FirstOrDefault();
            var sortColumn    = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
            var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();
            var searchValue   = Request.Form.GetValues("search[value]").FirstOrDefault();

            if (sortColumn != "" && sortColumnDir != "")
            {
                if (sortColumnDir.ToUpper() == "DESC")
                {
                    var parametro    = sortColumn;
                    var propertyInfo = typeof(OrdenServicioModel).GetProperty(parametro);
                    listadoTotal = listadoTotal.OrderByDescending(x => propertyInfo.GetValue(x, null)).ToList();
                }
                else
                {
                    var parametro    = sortColumn;
                    var propertyInfo = typeof(OrdenServicioModel).GetProperty(parametro);
                    listadoTotal = listadoTotal.OrderBy(x => propertyInfo.GetValue(x, null)).ToList();
                }
            }
            var displayedDocumentos = listadoTotal;
            int pageSize            = length != null?Convert.ToInt32(length) : 0;

            int skip = start != null?Convert.ToInt32(start) : 0;

            int recordsTotal = 0;

            recordsTotal = displayedDocumentos.Count();
            var data = displayedDocumentos.Skip(skip).Take(pageSize).ToList();

            return(Json(new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = data }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult JsonGetListarDocumentosRecepcion(String fechahorainicio
                                                           , String fechahorafin, string numerorecepcion)
        {
            if (fechahorainicio == "")
            {
                fechahorainicio = null;
            }
            if (fechahorafin == "")
            {
                fechahorafin = null;
            }

            var listadoTotal = new RecepcionData().GetListarDocumentoRecepcion(fechahorainicio, fechahorafin, numerorecepcion).ToList();
            var resjson1     = (new JqGridExtension <DocumentoRecepcionModel>()).DataBind(listadoTotal, listadoTotal.Count);

            return(resjson1);
        }
        public JsonResult JsonGenerarDespacho(string ids, DateTime?fecharecojo, int?idtransporte)
        {
            string[] guias      = ids.Split(',');
            var      modGuiaAct = new GuiaRemisionModel();

            //var modGuiaAct = new GuiaRemisionModel();
            //modGuiaAct.


            foreach (var item in guias)
            {
                var guia = new DespachoData().obtenerGuiaRemision(Convert.ToInt64(item));
                var osts = new RecepcionData().GetListarOrdenServicio(Convert.ToInt32(item));

                foreach (var item1 in osts)
                {
                    var modOrdenServicio = new OrdenServicioModel();
                    modOrdenServicio.idordenserviciotecnico = item1.idordenserviciotecnico;
                    modOrdenServicio.__tipooperacion        = 2; // actualizar estado
                    modOrdenServicio.idestado = (Int32)Constantes.EstadoOrdenServicio.PendienteRecojoDelivery;

                    new OrdenServicioData().InsertarActualizarOrdenServicio(modOrdenServicio);
                }
            }


            var modGuiaRemision = new DespachoData().obtenerGuiaRemision(Convert.ToInt64(guias[0]));


            var modProgramacion = new ProgramacionModel();

            modProgramacion.idestado          = (Int32)(Constantes.EstadoDespacho.programada);
            modProgramacion.fechahoraregistro = DateTime.Now;
            modProgramacion.fecharecojo       = fecharecojo;
            modProgramacion.idtransportista   = idtransporte.Value;
            modProgramacion.idsucursalorigen  = modGuiaRemision.idsucursalorigen;
            modProgramacion.idsucursaldestino = modGuiaRemision.idsucursaldestino;
            modProgramacion.idusuarioregistro = Usuario.Idusuario;
            modProgramacion.numero            = "100-000001";
            modProgramacion.__tipooperacion   = 1;

            var res = new DespachoData().InsertarActualizarProgramacion(modProgramacion);


            var modProgramacionDetalle = new ProgramacionDetalleModel();

            foreach (var item in guias)
            {
                modGuiaAct                 = new DespachoData().obtenerGuiaRemision(Convert.ToInt64(item));
                modGuiaAct.idestado        = (Int32)Constantes.EstadoGuiaRemision.Programada;
                modGuiaAct.__tipooperacion = 2;
                new DespachoData().InsertarActualizarGuiaRemision(modGuiaAct);

                modProgramacionDetalle                = new ProgramacionDetalleModel();
                modProgramacionDetalle.idguia         = Convert.ToInt32(item);
                modProgramacionDetalle.idprogramacion = res;

                var resdetalle = new DespachoData().InsertarActualizarProgramacionDetalle(modProgramacionDetalle);
            }



            return(Json(new { res = true }));
        }
        public JsonResult guardarIngreso(DocumentoRecepcionModel model)
        {
            var detalle = (List <DocumentoRecepcionDetalleModel>)Session["DocumentoRecepcion"];

            if (detalle == null)
            {
                return(Json(new { res = false, msj = "Debe cargar un excel." }));
            }


            DocumentoRecepcionDetalleModel modelDetalle = null;

            modelDetalle = new DocumentoRecepcionDetalleModel();


            List <DocumentoRecepcionDetalleModel> detalles = new List <DocumentoRecepcionDetalleModel>();


            model.fechahoraregistro  = DateTime.Now;
            model.activo             = true;
            model.idtiporecibo       = (Int16)Constantes.TipoRecibo.NuevaRecepcion;
            model.idusuarioregistro  = Usuario.Idusuario;
            model.fechahorarecepcion = DateTime.Now;

            model.iddocumentorecepcion = new RecepcionData().insertarActualizarDocumentoRecepcion(model);

            List <InventarioModel> inventarios     = new List <InventarioModel>();
            InventarioModel        inventarioModel = null; // new InventarioModel();

            foreach (var item in detalle)
            {
                inventarioModel                   = new InventarioModel();
                inventarioModel.cantidad          = item.cantidad;
                inventarioModel.codigoproducto    = item.codigo;
                inventarioModel.fechahoraregistro = DateTime.Now;
                inventarioModel.idalmacen         = model.idalmacen;
                inventarioModel.idestado          = (Int16)Constantes.Producto.Disponible;
                inventarioModel.serie             = item.serie;
                inventarioModel.imei              = item.imei;
                inventarioModel.mac               = item.mac;
                inventarioModel.pallet            = item.pallet;
                inventarioModel.caja              = item.caja;
                inventarioModel.ubicacion         = item.ubicacion;
                //inventarioModel.

                inventarioModel.idusuarioregistro = Usuario.Idusuario;

                //int? idproducto = new ProductoData().obtenerProducto(null, item.codigo).idproducto;
                //if(idproducto!=null)
                inventarioModel.idproducto    = item.idproducto;
                inventarioModel.__idoperacion = 1;
                new InventarioData().InsertarActualizarInventario(inventarioModel);



                modelDetalle = new DocumentoRecepcionDetalleModel();

                modelDetalle.caja       = item.caja;
                modelDetalle.cantidad   = item.cantidad;
                modelDetalle.codigo     = item.codigo;
                modelDetalle.fabricante = "";
                modelDetalle.fechahorapersonalizacion = DateTime.Now;
                modelDetalle.fila = item.fila;
                modelDetalle.iddocumentorecepcion = model.iddocumentorecepcion.Value;
                modelDetalle.idfila     = item.idfila;
                modelDetalle.idmodelo   = item.idmodelo;
                modelDetalle.idproducto = inventarioModel.idproducto;
                modelDetalle.idusuariopersonalizacion = Usuario.Idusuario;

                modelDetalle.numeropallet = item.pallet;
                //modelDetalle.repuesto = false;
                modelDetalle.serie          = item.serie;
                modelDetalle.mac            = item.mac;
                modelDetalle.pallet         = item.pallet;
                modelDetalle.ubicacion      = item.ubicacion;
                modelDetalle.imei           = item.imei;
                modelDetalle.idtipoproducto = item.idtipoproducto;
                modelDetalle.idalmacen      = model.idalmacen;
                modelDetalle.repuesto       = item.repuesto;


                detalles.Add(modelDetalle);

                //new RecepcionData().insertarActualizarDocumentoRecepcionDetalle(modelDetalle);
            }
            RecepcionData.InsertarDocumentoRecepcionDetalleLote(detalles);



            return(Json(new { res = true }));
        }
        public JsonResult guardarIngreso(DocumentoRecepcionModel model)
        {
            var detalle = (List <DocumentoRecepcionDetalleModel>)Session["DocumentoRecepcion"];

            if (detalle == null)
            {
                return(Json(new { res = false, msj = "Debe de cargar un excel al sistema" }));
            }

            #region comprobar requisitos de la carga
            var modProducto = new ProductoData().obtenerProducto(model.idproducto);
            foreach (var item in detalle)
            {
                switch (modProducto.idrequisitoascanear)
                {
                case (Int32)Constantes.Scanear.Imei:
                    if (string.IsNullOrEmpty(item.imei))
                    {
                        return(Json(new { res = false, msj = "La carga requiere del número de IMEI" }));
                    }
                    break;

                case (Int32)Constantes.Scanear.Mac:
                    if (string.IsNullOrEmpty(item.mac))
                    {
                        return(Json(new { res = false, msj = "La carga requiere del número de MAC" }));
                    }
                    break;

                case (Int32)Constantes.Scanear.Serie:
                    if (string.IsNullOrEmpty(item.serie))
                    {
                        return(Json(new { res = false, msj = "La carga requiere del número de Serie" }));
                    }
                    break;

                case (Int32)Constantes.Scanear.SerieImei:
                    if (string.IsNullOrEmpty(item.imei))
                    {
                        return(Json(new { res = false, msj = "La carga requiere del número de IMEI" }));
                    }
                    if (string.IsNullOrEmpty(item.serie))
                    {
                        return(Json(new { res = false, msj = "La carga requiere del número de Serie" }));
                    }
                    break;

                case (Int32)Constantes.Scanear.SerieImeiMac:
                    if (string.IsNullOrEmpty(item.imei))
                    {
                        return(Json(new { res = false, msj = "La carga requiere del número de IMEI" }));
                    }
                    if (string.IsNullOrEmpty(item.serie))
                    {
                        return(Json(new { res = false, msj = "La carga requiere del número de Serie" }));
                    }
                    if (string.IsNullOrEmpty(item.mac))
                    {
                        return(Json(new { res = false, msj = "La carga requiere del número de MAC" }));
                    }
                    break;

                default:
                    break;
                }
            }



            #endregion

            List <InventarioModel>                inventarios     = new List <InventarioModel>();
            InventarioModel                       inventarioModel = null; // new InventarioModel();
            DocumentoRecepcionDetalleModel        modelDetalle    = null;
            OrdenServicioModel                    ordenModel      = new OrdenServicioModel();
            List <DocumentoRecepcionDetalleModel> detalles        = new List <DocumentoRecepcionDetalleModel>();



            ordenModel.activo              = true;
            ordenModel.anioincindecia      = DateTime.Now.Year;
            ordenModel.bounce              = "0";
            ordenModel.idproducto          = model.idproducto;
            ordenModel.codigoproducto      = "Varios";
            ordenModel.idusuario           = Usuario.Idusuario;
            ordenModel.cotizado            = false;
            ordenModel.documento_coincide  = false;
            ordenModel.engarantia          = true;
            ordenModel.fechahoraregistro   = DateTime.Now;
            ordenModel.idestado            = (Int16)Constantes.EstadoOrdenServicio.PendienteAsignacionTecnico;
            ordenModel.idtipoordenservicio = (Int16)Constantes.tipoordenservicio.osp;
            ordenModel.idsucursalorigen    = Usuario.idsucursal;
            ordenModel.__tipooperacion     = 1;
            ordenModel.delivery            = true;
            ordenModel = new OrdenServicioData().InsertarActualizarOrdenServicio(ordenModel);
            model.fechahoraregistro = DateTime.Now;
            model.activo            = true;
            model.idtiporecibo      = (Int16)Constantes.TipoRecibo.Personalizacion;
            model.idusuarioregistro = Usuario.Idusuario;
            model.idordenservicio   = ordenModel.idordenserviciotecnico.Value;
            model.idproducto        = model.idproducto;

            model.iddocumentorecepcion = new RecepcionData().insertarActualizarDocumentoRecepcion(model);

            foreach (var item in detalle)
            {
                inventarioModel = new InventarioModel();
                modelDetalle    = new DocumentoRecepcionDetalleModel();

                inventarioModel.idproducto            = model.idproducto;
                modelDetalle.caja                     = "";
                modelDetalle.cantidad                 = 1;
                modelDetalle.codigo                   = item.codigo;
                modelDetalle.fabricante               = "";
                modelDetalle.fechahorapersonalizacion = DateTime.Now;
                modelDetalle.fila                     = item.fila;
                modelDetalle.iddocumentorecepcion     = model.iddocumentorecepcion.Value;
                modelDetalle.idfila                   = item.idfila;
                modelDetalle.idmodelo                 = item.idmodelo;
                modelDetalle.idproducto               = inventarioModel.idproducto;
                modelDetalle.idusuariopersonalizacion = Usuario.Idusuario;
                modelDetalle.numeropallet             = item.pallet;
                modelDetalle.repuesto                 = false;
                modelDetalle.serie                    = item.serie;
                detalles.Add(modelDetalle);



                inventarioModel.cantidad          = item.cantidad;
                inventarioModel.codigoproducto    = item.codigo;
                inventarioModel.fechahoraregistro = DateTime.Now;
                inventarioModel.idalmacen         = model.idalmacen;
                inventarioModel.idestado          = (Int16)Constantes.Producto.PendientePersonalizar;
                inventarioModel.serie             = item.serie;
                inventarioModel.imei                 = item.imei;
                inventarioModel.pallet               = item.pallet;
                inventarioModel.idusuarioregistro    = Usuario.Idusuario;
                inventarioModel.__idoperacion        = 1;
                inventarioModel.iddocumentorecepcion = model.iddocumentorecepcion.Value;
                new InventarioData().InsertarActualizarInventario(inventarioModel);
            }

            RecepcionData.InsertarDocumentoRecepcionDetalleLote(detalles);

            return(Json(new { res = true }));
        }