public OrdenServicioModel  InsertarActualizarOrdenServicio(OrdenServicioModel modOrdenServicio)
        {
            Mapper.CreateMap <OrdenServicioModel, InsertarActualizarOrdenServicioCommand>();
            var command = Mapper.Map <OrdenServicioModel, InsertarActualizarOrdenServicioCommand>(modOrdenServicio);
            var result  = (InsertarActualizarOrdenServicioOutput)command.Execute();

            modOrdenServicio.idordenserviciotecnico = result.idordenservicio;
            modOrdenServicio.numeroordenservicio    = result.numeroordenservicio;
            return(modOrdenServicio);
        }
Exemple #2
0
        public OrdenServicioModel GenerarOrdenServicio(long idincidencia, int idestado, IncidenciaModel ModIncidencia)
        {
            var modOrdenServicio = new OrdenServicioModel();
            var producto         = new InventarioData().obtenerProductoInventario(ModIncidencia.idproducto
                                                                                  , ModIncidencia.serie
                                                                                  , ModIncidencia.imei
                                                                                  );

            modOrdenServicio.idinventario        = producto.idinventario;
            modOrdenServicio.cambioproducto      = false;
            modOrdenServicio.fechahoraregistro   = DateTime.Now;
            modOrdenServicio.idestado            = idestado;
            modOrdenServicio.idusuario           = Usuario.Idusuario;
            modOrdenServicio.idcliente           = ModIncidencia.idcliente;
            modOrdenServicio.idincidencia        = idincidencia;
            modOrdenServicio.idtipoordenservicio = (Int32)Constantes.tipoordenservicio.ost;
            modOrdenServicio.activo              = true;
            modOrdenServicio.cotizado            = false;
            modOrdenServicio.idproducto          = ModIncidencia.idproducto;
            modOrdenServicio.engarantia          = ModIncidencia.engarantia;
            modOrdenServicio.serie               = ModIncidencia.serie;
            modOrdenServicio.imei                = ModIncidencia.imei;
            modOrdenServicio.idsucursaldestino   = ModIncidencia.idsucursaldestino.Value;
            modOrdenServicio.idsucursalorigen    = ModIncidencia.idsucursal;
            modOrdenServicio.iddirecciondelivery = ModIncidencia.iddirecciondelivery;
            if (modOrdenServicio.iddirecciondelivery != null)
            {
                modOrdenServicio.delivery = true;
            }
            else
            {
                modOrdenServicio.delivery = false;
            }

            return(new OrdenServicioData().InsertarActualizarOrdenServicio(modOrdenServicio));
        }
        public JsonResult RegistrarDespacho(OrdenSalidaModel model)
        {
            var detalle = (List <OrdenSalidaDetalleModel>)Session["DespachoMasivo"];

            #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;
                }
                var inventario = new InventarioData().obtenerProductoInventario(modProducto.idproducto.Value
                                                                                , item.serie, item.imei);

                if (inventario == null)
                {
                    return(Json(new { res = false, msj = "El item con serie: " + item.serie + " no existe." }));
                }

                item.idinventario = inventario.idinventario;


                var ordenservicio = new InventarioData().obtenerOrdenServicioxInventario(inventario.idinventario);

                if (ordenservicio == null)
                {
                    return(Json(new { res = false, msj = "El item con serie: " + item.serie + " tiene un error con la orden de servicio." }));
                }

                item.idordenservicio = ordenservicio.idordenserviciotecnico.Value;

                if (inventario.idestado == (Int32)Constantes.EstadoProducto.PendienteReparar)
                {
                    return(Json(new { res = false, msj = "El item con serie: " + item.serie + " está pendiente de reparación." }));
                }
                if (inventario.idestado != (Int32)Constantes.EstadoProducto.Reparado)
                {
                    if (inventario.idestado != (Int32)Constantes.EstadoProducto.Inoperativo)
                    {
                        return(Json(new { res = false, msj = "El item con serie: " + item.serie + " no está disponible para despacho." }));
                    }
                }
            }

            #endregion


            if (detalle == null)
            {
                return(Json(new { res = false, msj = "No existen datos cargados en el sistema." }));
            }

            model.fechahoraregistro = DateTime.Now;
            model.activo            = true;
            model.idusuarioregistro = Usuario.Idusuario;
            model.iddocumentosalida = new DespachoData().InsertarOrdenSalida(model);

            foreach (var item in detalle)
            {
                item.fechahoraatencion = DateTime.Now;
                item.idordensalida     = model.iddocumentosalida.Value;
                item.cantidad          = 1;
                item.idusuarioatencion = Usuario.Idusuario;
                item.idproducto        = model.idproducto;

                new DespachoData().InsertarOrdenSalidaDetalle(item);



                var inventarioModel = new InventarioModel();

                inventarioModel.idestado      = (Int16)Constantes.Producto.NoDisponible;
                inventarioModel.idinventario  = item.idinventario;
                inventarioModel.cantidad      = 0;
                inventarioModel.__idoperacion = 2;


                new InventarioData().InsertarActualizarInventario(inventarioModel);


                var ordenServicioModel = new OrdenServicioModel();
                ordenServicioModel.idordenserviciotecnico = item.idordenservicio;
                ordenServicioModel.idestado        = (Int16)Constantes.EstadoOrdenServicio.Cerrada;
                ordenServicioModel.__tipooperacion = 2;


                new OrdenServicioData().InsertarActualizarOrdenServicio(ordenServicioModel);
            }
            return(Json(new { res = true }));
        }
        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 guardarIngresoosr(DocumentoRecepcionModel model)
        {
            var detalle = (List <DocumentoRecepcionDetalleModel>)Session["DocumentoRecepcion"];

            #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
            var dataIncidencia = new IncidenciaData();
            List <InventarioModel>         inventarios     = new List <InventarioModel>();
            InventarioModel                inventarioModel = null; // new InventarioModel();
            DocumentoRecepcionDetalleModel modelDetalle    = null;
            OrdenServicioModel             ordenModel      = new OrdenServicioModel();

            if (detalle == null)
            {
                return(Json(new { res = false, msj = "No existen datos cargados en el sistema." }));
            }

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

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

            foreach (var item in detalle)
            {
                //traer documento de compra

                var  detfact    = FacturacionData.GetListarDetalleComprobante(null, item.serie).ToList();
                bool cliente    = false;
                bool reparacion = false;

                var garantias = dataIncidencia.ListarEvaluarGarantia(modProducto.idtipoproducto.Value
                                                                     , modProducto.idfabricante.Value
                                                                     , model.idpartner
                                                                     ).ToList();

                if (detfact.Count > 0)
                {
                    cliente = AgendamientoData.EvaluarGarantia(DateTime.Now.Date
                                                               , detfact[0].fechaemision
                                                               , garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.Cliente)).SingleOrDefault());


                    reparacion = AgendamientoData.EvaluarGarantia(DateTime.Now.Date
                                                                  , detfact[0].fechaemision
                                                                  , garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.Reparacion)).SingleOrDefault());
                }


                inventarioModel = new InventarioModel();

                inventarioModel.cantidad          = item.cantidad;
                inventarioModel.codigoproducto    = item.codigo;
                inventarioModel.fechahoraregistro = DateTime.Now;
                inventarioModel.idalmacen         = model.idalmacen;
                inventarioModel.idestado          = (Int16)Constantes.Producto.PendienteReparar;
                inventarioModel.serie             = item.serie;
                inventarioModel.imei                 = item.imei;
                inventarioModel.mac                  = item.mac;
                inventarioModel.pallet               = item.pallet;
                inventarioModel.idusuarioregistro    = Usuario.Idusuario;
                inventarioModel.__idoperacion        = 1;
                inventarioModel.idproducto           = model.idproducto;
                inventarioModel.iddocumentorecepcion = model.iddocumentorecepcion.Value;


                inventarioModel.idinventario = new InventarioData().InsertarActualizarInventario(inventarioModel);



                ordenModel = new OrdenServicioModel();

                ordenModel.activo             = true;
                ordenModel.anioincindecia     = DateTime.Now.Year;
                ordenModel.bounce             = "0";
                ordenModel.idproducto         = model.idproducto;
                ordenModel.codigoproducto     = modProducto.codigoproducto;
                ordenModel.idusuario          = Usuario.Idusuario;
                ordenModel.cotizado           = false;
                ordenModel.documento_coincide = false;
                ordenModel.engarantia         = cliente;
                ordenModel.idtipogarantia     = (Int16)Constantes.TipoGarantia.Cliente;
                ordenModel.fechahoraregistro  = DateTime.Now;
                if (detfact.Count != 0)
                {
                    ordenModel.fechadocumento = detfact[0].fechaemision;
                }
                ordenModel.fecharecepcion      = model.fechahorarecepcion;
                ordenModel.idestado            = (Int16)Constantes.EstadoOrdenServicio.PendienteAsignacionTecnico;
                ordenModel.idtipoordenservicio = (Int16)Constantes.tipoordenservicio.osr;
                ordenModel.__tipooperacion     = 1;
                ordenModel.idcliente           = model.idcliente;
                ordenModel.idpartner           = model.idpartner;
                ordenModel.serie = item.serie;
                ordenModel.imei  = item.imei;
                ordenModel.mac   = item.mac;
                ordenModel.iddocumentorecepcion = model.iddocumentorecepcion.Value;
                ordenModel.idinventario         = inventarioModel.idinventario.Value;



                ordenModel = new OrdenServicioData().InsertarActualizarOrdenServicio(ordenModel);



                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;
                modelDetalle.mac          = item.mac;
                new RecepcionData().insertarActualizarDocumentoRecepcionDetalle(modelDetalle);
            }
            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 }));
        }