Пример #1
0
        public JsonResult JsonGetDetalleComprobante(long?iddocumentocompra)
        {
            bool resultado = false;

            try
            {
                if (iddocumentocompra == null)
                {
                    if (Session["DetalleComprobanteModel"] != null)
                    {
                        var detalle = (DetalleComprobanteModel)Session["DetalleComprobanteModel"];
                        var listado = new List <DetalleComprobanteModel>();
                        listado.Add(detalle);
                        return((new JqGridExtension <DetalleComprobanteModel>()).DataBind(listado, listado.Count));
                    }
                }
                var listadoTotal = FacturacionData.GetListarDetalleComprobante(iddocumentocompra).ToList();
                Session["DetalleComprobanteModel"] = listadoTotal.FirstOrDefault();
                //var producto = new ProductoData().obtenerProducto(listadoTotal[0].idproducto);
                //aca es por cada producto , actualmente solo funciona para uno. //OJO
                return((new JqGridExtension <DetalleComprobanteModel>()).DataBind(listadoTotal, listadoTotal.Count));
            }
            catch (Exception ex)
            {
                return(Json(new { res = resultado }, JsonRequestBehavior.AllowGet));
            }
        }
Пример #2
0
        public JsonResult ValidarProductoInventario(long iddocumentocompra)
        {
            var detallecomprobante = FacturacionData.GetListarDetalleComprobante(iddocumentocompra).FirstOrDefault();

            if (detallecomprobante == null)
            {
                return(Json(new { res = true }));
            }
            var inventario = new InventarioData().obtenerProductoInventario(detallecomprobante.idproducto, detallecomprobante.serie, detallecomprobante.imei);

            if (inventario != null)
            {
                if ((Int32)Constantes.EstadoProducto.NoDisponible != inventario.idestado)
                {
                    return(Json(new
                    {
                        res = false,
                        msj = "El producto que intenta ingresar, está actualmente " +
                              "está dentro de un proceso de reparación."
                    }));
                }
            }
            {
                return(Json(new { res = true }));
            }
        }
Пример #3
0
        public JsonResult JsonGetListarDocumentos(int?idTipoDocumento, string numeroDocumento, int?idTipoComprobante, string numeroComprobante, string sord, int page, int rows)
        {
            var listadoTotal = FacturacionData.GetListarComprobante(null, numeroComprobante, idTipoComprobante).ToList();



            return((new JqGridExtension <ComprobanteModel>()).DataBind(listadoTotal, listadoTotal.Count));
        }
Пример #4
0
        public JsonResult RegistrarNuevaIncidencia(IncidenciaModel modelo)
        {
            var respuesta = string.Empty;

            modelo.idusuarioregistro   = Usuario.Idusuario;
            modelo.fechahoraregistro   = DateTime.Now;
            modelo.atendidaxcallcenter = false;
            modelo.idestado            = (Int32)Constantes.EstadoIncidencia.EnProceso;
            modelo.idsucursal          = Usuario.idsucursal;
            modelo.idproducto          = Convert.ToInt32(modelo.ItemIncidencia);

            ///////Registrado previamente
            if (modelo.iddocumentocompra != null)
            {
                var detallecomprobante = FacturacionData.GetListarDetalleComprobante(modelo.iddocumentocompra).ToList();
                var hoy             = DateTime.Now.Date;
                var fechareparacion = detallecomprobante[0].fechaemision;
                modelo.fechaemision    = fechareparacion;
                modelo.idsucursalventa = detallecomprobante[0].idsucursalventa;
                var periodo = Convert.ToInt16(ConfigurationManager.AppSettings["PeriodoGarantiaReparacion"]);
                modelo.idtipogarantia  = (int)Constantes.TipoGarantia.Reparacion;
                modelo.periodogarantia = periodo;
                if ((hoy - fechareparacion).TotalDays > periodo)
                {
                    modelo.engarantia = false;
                }
                else
                {
                    modelo.engarantia = true;
                }
            }
            else
            {
                var detalle_aux            = (DetalleComprobanteModel)Session["DetalleComprobanteModel"];
                var detalledocumentocompra = new DetalleComprobanteModel();
                var documentocompra        = (ComprobanteModel)Session["ComprobanteCliente"];

                documentocompra.idconceptofacturacion = (Int16)(Constantes.ConceptoFacturacion.Venta);
                documentocompra.ventapartner          = true;
                documentocompra.idusuarioregistro     = Usuario.Idusuario;
                documentocompra.idcliente             = modelo.idcliente;
                documentocompra.ventaenlinea          = false;
                documentocompra.total             = 0;
                documentocompra.subtotal          = 0;
                documentocompra.igv               = 0;
                documentocompra.idestado          = (Int16)(Constantes.EstadoFacturacion.Facturado);
                documentocompra.idpartner         = modelo.idpartner;
                documentocompra.idsucursalventa   = modelo.idsucursalventa;
                documentocompra.fechahoraregistro = DateTime.Now;

                modelo.iddocumentocompra = new FacturacionData().insertarActualizarComprobanteCliente(documentocompra);
                modelo.fechaemision      = documentocompra.fechaemision;

                detalledocumentocompra.cantidad          = 1;
                detalledocumentocompra.idproducto        = modelo.idproducto;
                detalledocumentocompra.iddocumentocompra = modelo.iddocumentocompra;
                detalledocumentocompra.total             = detalle_aux.total;
                detalledocumentocompra.igv   = detalle_aux.igv;
                detalledocumentocompra.imei  = detalle_aux.imei;
                detalledocumentocompra.serie = detalle_aux.serie;
                var iddetalledocumento = new FacturacionData().insertarActualizarDetalleComprobanteCliente(detalledocumentocompra);
            }

            // Evaluar si garantia DAP

            var producto  = new ProductoData().obtenerProducto(modelo.idproducto);
            var garantias = new IncidenciaData()
                            .ListarEvaluarGarantia(producto.idtipoproducto.Value
                                                   , producto.idfabricante.Value
                                                   , modelo.idpartner
                                                   ).ToList();

            if (garantias != null && garantias.ToList().Count != 0)
            {
                //Dar prioridad a la garantia DAP
                //
                var dap = AgendamientoData.EvaluarGarantia(DateTime.Now.Date
                                                           , modelo.fechaemision.Value
                                                           , garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.DAP)).SingleOrDefault());

                var garantia_cliente = AgendamientoData.EvaluarGarantia(DateTime.Now.Date
                                                                        , modelo.fechaemision.Value
                                                                        , garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.Cliente)).SingleOrDefault());

                if (dap)
                {
                    modelo.idtipogarantia     = (int)Constantes.TipoGarantia.DAP;
                    modelo.periodogarantia    = garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.DAP)).Single().periodo;
                    modelo.engarantia         = true;
                    modelo.requiereevaluacion = true;
                }
                else if (garantia_cliente)
                {
                    modelo.idtipogarantia     = (int)Constantes.TipoGarantia.Cliente;
                    modelo.periodogarantia    = garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.Cliente)).Single().periodo;
                    modelo.engarantia         = true;
                    modelo.requiereevaluacion = true;
                }
                else
                {
                    modelo.idtipogarantia     = (int)Constantes.TipoGarantia.Cliente;
                    modelo.periodogarantia    = garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.Cliente)).Single().periodo;
                    modelo.engarantia         = false;
                    modelo.requiereevaluacion = false;
                }
            }
            else
            {
                //modelo.idtipogarantia = (int)Constantes.TipoGarantia.Cliente;
                modelo.periodogarantia    = 0;
                modelo.engarantia         = false;
                modelo.requiereevaluacion = false;
            }


            try
            {
                var detalle_aux = (DetalleComprobanteModel)Session["DetalleComprobanteModel"];

                modelo.__tipooperacion = 1; // Actualizacion y Agregacion general
                modelo.idetapa         = (Int32)Constantes.Etapa.Registro;
                modelo.activo          = true;
                modelo.serie           = detalle_aux.serie;
                modelo.imei            = detalle_aux.imei;
                modelo.idproducto      = detalle_aux.idproducto;
                var result = new IncidenciaData().insertarActualizarIncidencia(modelo);

                return(Json(new
                {
                    engarantia = modelo.engarantia,
                    res = true,
                    incidencia = result.idincidencia,
                    num_incidencia = result.numeroincidencia,
                }));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.InnerException.ToString());
                return(Json(new { res = false, Errors = ModelState.Errors() }, JsonRequestBehavior.AllowGet));
            }
        }
Пример #5
0
        public ActionResult AtencionEvaluacion(long idincidencia)
        {
            var model          = new EvaluacionModel();
            var dataIncidencia = new IncidenciaData();

            var incidenciaModel = dataIncidencia.ObtenerIncidencia(idincidencia);

            var productoModel      = new ProductoData().obtenerProducto(incidenciaModel.idproducto);
            var detallecomprobante = FacturacionData.GetListarDetalleComprobante(incidenciaModel.iddocumentocompra).ToList();
            var evaluacion         = AgendamientoData.ListarIncidenciaEvaluacion(idincidencia).ToList();

            #region asignacion de propiedades
            model.numeroincidencia       = incidenciaModel.numeroincidencia;
            model.anioincidencia         = incidenciaModel.anioincidencia;
            model.falla                  = incidenciaModel.falla;
            model.producto               = incidenciaModel.producto;
            model.requerimientocliente   = incidenciaModel.requerimientocliente;
            model.codigoproducto         = incidenciaModel.codigoproducto;
            model.idrequerimientocliente = incidenciaModel.idrequerimientocliente;
            model.incidenciagarantia     = incidenciaModel.incidenciagarantia;
            model.requiereevaluacion     = incidenciaModel.requiereevaluacion;
            model.idordenserviciotecnico = incidenciaModel.idordenserviciotecnico;
            #endregion

            if (!incidenciaModel.incidenciagarantia)                                                               // No fue vendido en smartway ni en partner ni reparado en smartway
            {
                return(View("SeguimientoIncidencia"));                                                             // no puede ingresar a esta página
            }
            if (detallecomprobante[0].idconceptofacturacion == (Int16)(Constantes.ConceptoFacturacion.Reparacion)) /// REPARADO EN SMARTWAY
            {
                ///Aca pensar en como se hará el tema del concepto de reparacion para la garantía
                ///
            }
            else
            {
                //vendido en smartway  o partner

                var garantias = dataIncidencia.ListarEvaluarGarantia(productoModel.idtipoproducto.Value
                                                                     , incidenciaModel.idfabricante
                                                                     , incidenciaModel.idpartner
                                                                     ).ToList();

                if (garantias != null && garantias.ToList().Count != 0)
                {
                    //Dar prioridad a la garantia DAP
                    //
                    var dap = AgendamientoData.EvaluarGarantia(DateTime.Now.Date
                                                               , detallecomprobante[0].fechaemision
                                                               , garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.DAP)).SingleOrDefault());

                    var garantia_cliente = AgendamientoData.EvaluarGarantia(DateTime.Now.Date
                                                                            , detallecomprobante[0].fechaemision
                                                                            , garantias.Where(x => x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.Cliente)).SingleOrDefault());

                    if (garantia_cliente)
                    {
                        garantias.ForEach(x =>
                        {
                            if (x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.Cliente))
                            {
                                x.resultado      = true;
                                model.garantia   = "Con garantía de Cliente";
                                model.engarantia = true;
                            }
                        }
                                          );
                        model.idtipogarantia = (Int16)Constantes.TipoGarantia.Cliente;
                    }
                    if (dap)
                    {
                        garantias.ForEach(x =>
                        {
                            if (x.idtipogarantia.Equals((Int16)Constantes.TipoGarantia.DAP))
                            {
                                x.resultado      = true;
                                model.garantia   = "Con garantía DAP";
                                model.engarantia = true;
                            }
                        }
                                          );
                        model.idtipogarantia = (Int16)Constantes.TipoGarantia.DAP;
                    }
                    if (garantia_cliente == false && dap == false)
                    {
                        model.garantia   = "Fuera de garantía";
                        model.engarantia = false;
                    }
                }
                else
                {
                    model.garantia   = "Fuera de garantía";
                    model.engarantia = false;
                    garantias.Add(new Mantenimiento.Models.GarantiaModel()
                    {
                        descripcion = "No existen garantias registradas para este producto"
                    });
                }
                model.idincidencia     = idincidencia;
                model.ListaGarantias   = garantias;
                model.ListaCondiciones =

                    dataIncidencia.ListarCondiciones
                        (incidenciaModel.idtipoproducto, incidenciaModel.idfabricante).ToList();



                model.idetapa = incidenciaModel.idetapa;

                if (incidenciaModel.idetapa >= 2)
                {
                    int i = 0;

                    evaluacion = evaluacion.OrderBy(x => x.idcondicion).ToList();

                    foreach (var item in model.ListaCondiciones.OrderBy(x => x.idcondicion).ToList())
                    {
                        if (item.idcondicion == evaluacion[i].idcondicion)
                        {
                            item.activo = evaluacion[i].valor;
                        }
                        i++;
                    }
                    model.Evaluacion       = true;
                    model.ListaCondiciones = model.ListaCondiciones.OrderByDescending(x => x.valor).ToList();
                }
                else
                {
                    model.ListaCondiciones = model.ListaCondiciones.OrderByDescending(x => x.valor).ToList();
                    foreach (var item in model.ListaCondiciones)
                    {
                        if (item.valor)
                        {
                            item.activo = true;
                        }
                        else
                        {
                            item.activo = false;
                        }
                    }
                }
            }

            if (model.ideva.HasValue)
            {
                model.evaluacionrealizada = true;
            }
            else
            {
                model.evaluacionrealizada = false;
            }

            //if (incidenciaModel.idcoti.HasValue)
            //    model.cotizacionrealizada = true;
            //else
            //    model.cotizacionrealizada = false;

            return(View(model));
        }
        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 }));
        }