public void GenerarMovimientoAlmacen(string lote, string fkalmacen, string fkzona)
        {
            var service            = new MovimientosstockService(_context, _db);
            var stockactualService = new StockactualService(_context, _db);

            service.GenerarMovimiento(stockactualService.GetArticuloPorLoteOCodigo(lote, fkalmacen, _context.Empresa), TipoOperacionService.MovimientoAlmacen, fkzona);
        }
        public ActionResult MovimientosAlmacen(StArticulosLotes model)
        {
            var almacen        = model.Fkalmacen;
            var referencialote = model.Referencialote;
            var service        = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list           = service.GetArticuloPorLoteOCodigo(referencialote, almacen, ContextService.Empresa);

            return(Json(list));
        }
        // GET: api/Supercuentas/5
        public HttpResponseMessage Get()
        {
            var nvc            = HttpUtility.ParseQueryString(Request.RequestUri.Query);
            var almacen        = nvc["Fkalmacen"];
            var referencialote = nvc["Referencialote"];
            var service        = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list           = service.GetArticuloPorLoteOCodigo(referencialote, almacen, ContextService.Empresa);
            var response       = Request.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(list), Encoding.UTF8,
                                                 "application/json");
            return(response);
        }
Example #4
0
        private List <InventariosLinModel> EditarLineasInventarios(List <InventariosLinModel> lineas, string referencialote, bool agregar)
        {
            string lote;
            string loteid;

            StockactualService.CalcularPartesLote(referencialote, out lote, out loteid);
            var linea = lineas.Single(f => f.Lote == lote && f.Loteid == loteid);

            linea.Estado = agregar ? EstadoLineaInventario.Punteado :EstadoLineaInventario.Pendiente;


            return(lineas);
        }
        // GET: api/Supercuentas/5
        public HttpResponseMessage Get(string id)
        {
            
            var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query);
            var almacen = nvc["Fkalmacen"];
            var solotablas = Funciones.Qbool(nvc["Solotablas"]);

            var service = new StockactualService(ContextService,MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list= service.GetArticuloLote(almacen, ContextService.Empresa, "", "", "", "", "", "", solotablas,id);

            var response = Request.CreateResponse(list == null ? HttpStatusCode.InternalServerError : HttpStatusCode.OK);
            response.Content = new StringContent(JsonConvert.SerializeObject(list), Encoding.UTF8,
                "application/json");
            return response;


        }
        private ReservasstockLinVistaModel GenerarModeloLin(ReservasstockModel albaranObj, string lote)
        {
            var serviceStock     = new StockactualService(_context, _db);
            var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService;
            var familiasService  = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService;
            var unidadesService  = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService;
            var obj = serviceStock.GetArticuloPorLoteOCodigo(lote, albaranObj.Fkalmacen, albaranObj.Empresa) as MovimientosstockModel;

            if (obj != null)
            {
                var fkarticulos  = obj.Fkarticulos;
                var articulosObj = articulosService.GetArticulo(fkarticulos, albaranObj.Fkclientes,
                                                                albaranObj.Fkmonedas.ToString(), albaranObj.Fkregimeniva, TipoFlujo.Venta);
                var familiaObj  = familiasService.get(ArticulosService.GetCodigoFamilia(fkarticulos)) as FamiliasproductosModel;
                var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel;
                var metros      = UnidadesService.CalculaResultado(unidadesObj, obj.Cantidad, obj.Largo, obj.Ancho, obj.Grueso, obj.Metros);
                obj.Metros = metros;
                return(new ReservasstockLinVistaModel()
                {
                    Modificarmedidas = false,
                    Lote = lote,
                    Decimalesmonedas = albaranObj.Decimalesmonedas,
                    Descuentocomercial = albaranObj.Porcentajedescuentocomercialcadena,
                    Descuentoprontopago = albaranObj.Porcentajedescuentoprontopagocadena,
                    Fkcuenta = albaranObj.Fkclientes,
                    Fkmonedas = albaranObj.Fkmonedas.ToString(),
                    Flujo = TipoFlujo.Venta,
                    Fkregimeniva = albaranObj.Fkregimeniva,
                    Portes = albaranObj.Costeportes.ToString(),
                    Fkalmacen = albaranObj.Fkalmacen,
                    Descuento = 0,
                    Precio = articulosObj.Precio ?? 0,
                    Fkarticulos = fkarticulos,
                    Lineas = new List <MovimientosstockModel>(new[] { obj })
                });
            }

            return(new ReservasstockLinVistaModel()
            {
                Fkmonedas = albaranObj.Fkmonedas.ToString()
            });
        }
Example #7
0
        // GET: api/Supercuentas/5
        public HttpResponseMessage Get(string id)
        {
            var nvc            = HttpUtility.ParseQueryString(Request.RequestUri.Query);
            var almacen        = nvc["Fkalmacen"];
            var articulosdesde = nvc["FkarticulosDesde"];
            var articuloshasta = nvc["FkarticulosHasta"];
            var familiadesde   = nvc["FkfamiliaDesde"];
            var familiahasta   = nvc["FkfamiliaHasta"];
            var lotedesde      = nvc["LoteDesde"];
            var lotehasta      = nvc["LoteHasta"];
            var solotablas     = Funciones.Qbool(nvc["Solotablas"]);

            var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list    = service.GetArticuloPorLoteOCodigo(id, almacen, ContextService.Empresa);

            var response = Request.CreateResponse(list == null ? HttpStatusCode.InternalServerError : HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(list), Encoding.UTF8,
                                                 "application/json");
            return(response);
        }
Example #8
0
        public ActionResult ListLotes(StListadoStock model)
        {
            var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list    = service.GetArticulosLotesAgrupados(model.Fkalmacen, ContextService.Empresa, model.IdArticulo);
            var result  = new ResultBusquedasPaginados <StockActualMobileModel>()
            {
                values  = list,
                columns = new[]
                {
                    new ColumnDefinition()
                    {
                        field = "Fkarticulos", displayName = "Artículo", visible = true
                    },
                    new ColumnDefinition()
                    {
                        field = "Articulo", displayName = "Descripción", visible = true
                    },
                    new ColumnDefinition()
                    {
                        field = "Lote", displayName = "Lote", visible = true
                    },
                    new ColumnDefinition()
                    {
                        field = "Cantidaddisponible", displayName = "Cantidad", visible = true
                    },
                    new ColumnDefinition()
                    {
                        field = "SMetros", displayName = "Metros", visible = true
                    },
                    new ColumnDefinition()
                    {
                        field = "UM", displayName = "UM", visible = true
                    },
                },
                RegistrosTotales = list.Count(),
                PaginaActual     = 1
            };

            return(Json(result));
        }
        // GET: api/Supercuentas/5
        public HttpResponseMessage Get()
        {

            
            var nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query);
            var almacen = nvc["Fkalmacen"];
            
        
           
          
            
            
            var service = new StockactualService(ContextService,MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list = service.GetBundleArticulosLotes(almacen, ContextService.Empresa);

            var result = new ResultBusquedas<StockActualVistaModel>()
            {
                values = list,
                columns = new[]
                    {
                        new ColumnDefinition() { field = "Lote", displayName = "Lote", visible = true,width=150},
                        new ColumnDefinition() { field = "Fkalmacenes", displayName = "Almacén", visible = false,width=70 },
                        new ColumnDefinition() { field = "Fkarticulos", displayName = "Artículo", visible = true ,filter = new  Filter() { condition = ColumnDefinition.STARTS_WITH }},
                        new ColumnDefinition() { field = "Descripcion", displayName = "Descripción", visible = true, filter = new  Filter() { condition = ColumnDefinition.STARTS_WITH }},
                       
                    }
            };

            var response = Request.CreateResponse(HttpStatusCode.OK);
            response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8,
                "application/json");
            return response;



        }
Example #10
0
        // GET: api/Supercuentas/5
        public HttpResponseMessage Get()
        {
            var nvc                 = HttpUtility.ParseQueryString(Request.RequestUri.Query);
            var fkalmacen           = nvc["Fkalmacen"];
            var fkproveedores       = nvc["Fkproveedores"];
            var desderecepcionstock = nvc["Desderecepcionstock"];
            var hastarecepcionstock = nvc["Hastarecepcionstock"];
            var fechadesde          = nvc["Fechadesde"];
            var fechahasta          = nvc["Fechahasta"];
            var lotedesde           = nvc["Desdelote"];
            var lotehasta           = nvc["Hastalote"];

            var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list    = service.GetArticulosLotesRemedir(fkalmacen, ContextService.Empresa, fkproveedores, desderecepcionstock, hastarecepcionstock, fechadesde, fechahasta, lotedesde, lotehasta);

            var result = new ResultBusquedas <StockActualRemedirModel>()
            {
                values  = list,
                columns = new[]
                {
                    new ColumnDefinition()
                    {
                        field = "Fkalmacenes", displayName = "Almacén", visible = false, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Fkarticulos", displayName = "Artículo", visible = true, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Descripcion", displayName = "Descripción", visible = true, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }, width = 200
                    },
                    new ColumnDefinition()
                    {
                        field = "Lote", displayName = "Lote", visible = true, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Loteid", displayName = "Lote Id", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Bundle", displayName = "Bundle", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Cantidaddisponible", displayName = "Cantidad", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SLargo", displayName = "Largo", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SAncho", displayName = "Ancho", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SGrueso", displayName = "Grueso", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SMetros", displayName = "Metros", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "UM", displayName = "UM", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Cc", displayName = "C. comercial", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Tono", displayName = "Tono", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Grano", displayName = "Grano", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Zona", displayName = "Zona", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Loteproveedor", displayName = "Lote proveedor", visible = true, width = 120
                    },
                }
            };

            var response = Request.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8,
                                                 "application/json");
            return(response);
        }
        public List <ReservasstockLinModel> CrearNuevasLineas(List <ReservasstockLinModel> listado, ReservasstockLinVistaModel model)
        {
            var stockactualService = new StockactualService(_context, _db);
            var articulosService   = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService;
            var familiasService    = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService;
            var unidadesService    = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService;
            var tiposivaService    = FService.Instance.GetService(typeof(TiposIvaModel), _context, _db) as TiposivaService;
            var monedasService     = FService.Instance.GetService(typeof(MonedasModel), _context, _db) as MonedasService;
            var monedasObj         = monedasService.get(model.Fkmonedas) as MonedasModel;

            var maxId = listado.Any() ? listado.Max(f => f.Id) + 1 : 1;

            foreach (var linea in model.Lineas)
            {
                if (!listado.Any(f => f.Lote == linea.Lote && f.Tabla == Funciones.Qint(linea.Loteid)))
                {
                    var articuloObj = articulosService.GetArticulo(linea.Fkarticulos, model.Fkcuenta, model.Fkmonedas, model.Fkregimeniva, model.Flujo);

                    var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(linea.Fkarticulos)) as FamiliasproductosModel;

                    var ancho  = linea.Ancho;
                    var largo  = linea.Largo;
                    var grueso = linea.Grueso;
                    if (model.Modificarmedidas)
                    {
                        ancho  = model.Ancho;
                        largo  = model.Largo;
                        grueso = model.Grueso;
                    }
                    else
                    {
                        var item = familiaObj.Gestionstock
                        ? stockactualService.GetArticuloPorLoteOCodigo(
                            string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)), model.Fkalmacen,
                            Empresa) as MovimientosstockModel : null;
                        ancho  = item?.Ancho ?? linea.Ancho;
                        largo  = item?.Largo ?? linea.Largo;
                        grueso = item?.Grueso ?? linea.Grueso;
                    }

                    var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel;
                    var tiposivaObj = tiposivaService.get(articuloObj.Fktiposiva) as TiposIvaModel;
                    var metros      = UnidadesService.CalculaResultado(unidadesObj, linea.Cantidad, largo, ancho, grueso, model.Metros);
                    linea.Metros = metros;
                    var bruto            = linea.Metros * model.Precio;
                    var importedescuento = Math.Round(((bruto) * model.Descuento / 100.0), model.Decimalesmonedas);
                    var total            = bruto - importedescuento;

                    listado.Add(new ReservasstockLinModel()
                    {
                        Id                            = maxId++,
                        Fkarticulos                   = linea.Fkarticulos,
                        Descripcion                   = articuloObj.Descripcion,
                        Lote                          = linea.Lote,
                        Tabla                         = Funciones.Qint(linea.Loteid),
                        Tblnum                        = Funciones.Qint(linea.Loteid),
                        Cantidad                      = linea.Cantidad,
                        Largo                         = largo,
                        Ancho                         = ancho,
                        Grueso                        = grueso,
                        Fkunidades                    = articuloObj.Fkunidades,
                        Metros                        = metros,
                        Precio                        = model.Precio,
                        Porcentajedescuento           = model.Descuento,
                        Importedescuento              = importedescuento,
                        Importe                       = total,
                        Decimalesmedidas              = unidadesObj.Decimalestotales,
                        Decimalesmonedas              = monedasObj.Decimales,
                        Fktiposiva                    = tiposivaObj.Id,
                        Porcentajeiva                 = tiposivaObj.PorcentajeIva,
                        Porcentajerecargoequivalencia = tiposivaObj.PorcentajeRecargoEquivalencia,
                        Bundle                        = model.Tipopieza == TipoPieza.Bundle ? model.Lote.Replace(linea.Lote, string.Empty) : string.Empty,
                        Caja                          = model.Caja,
                        Canal                         = model.Canal
                    }
                                );
                }
            }

            ValidarKit(listado, model);

            return(listado);
        }
Example #12
0
        public List <ImputacionCostesLinModel> CrearLineasLotes(List <ImputacionCostesLinModel> listado, ImputacionCostesLinVistaModel model)
        {
            var stockactualService = new StockactualService(_context, _db);
            var articulosService   = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService;
            var familiasService    = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService;
            var unidadesService    = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService;
            var tiposivaService    = FService.Instance.GetService(typeof(TiposIvaModel), _context, _db) as TiposivaService;

            var maxId = listado.Any() ? listado.Max(f => f.Id) + 1 : 1;

            foreach (var linea in model.Lineas)
            {
                if (!listado.Any(f => f.Lote == linea.Lote && f.Tabla == Funciones.Qint(linea.Loteid)))
                {
                    var articuloObj = articulosService.GetArticulo(linea.Fkarticulos, model.Fkcuenta, model.Fkmonedas, model.Fkregimeniva, model.Flujo);

                    var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(linea.Fkarticulos)) as FamiliasproductosModel;

                    var ancho  = linea.Anchoentrada;
                    var largo  = linea.Largoentrada;
                    var grueso = linea.Gruesoentrada;
                    //if (model.Modificarmedidas)
                    //{
                    //    ancho = model.Ancho;
                    //    largo = model.Largo;
                    //    grueso = model.Grueso;
                    //}
                    //else
                    //{
                    //    var item = familiaObj.Gestionstock
                    //    ? stockactualService.GetArticuloPorLoteOCodigoHistorico(
                    //        string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)), model.Fkalmacen,
                    //        Empresa) as MovimientosstockModel : null;
                    //    ancho = item?.Ancho ?? linea.Anchoentrada;
                    //    largo = item?.Largo ?? linea.Largoentrada;
                    //    grueso = item?.Grueso ?? linea.Gruesoentrada;
                    //}

                    var metros = linea.MetrosEntrada;

                    var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel;

                    ////lotes en stock historico
                    //if(linea.Cantidad==0 && linea.Metros>0)
                    //{
                    //    linea.Metros = linea.Metros;
                    //}

                    //else
                    //{
                    //    var metros = UnidadesService.CalculaResultado(unidadesObj, linea.Cantidad, largo, ancho, grueso, linea.MetrosEntrada);
                    //    linea.Metros = metros;
                    //}

                    listado.Add(new ImputacionCostesLinModel(_context)
                    {
                        Id               = maxId++,
                        Fkarticulos      = linea.Fkarticulos,
                        Descripcion      = articuloObj.Descripcion,
                        Lote             = linea.Lote,
                        Tabla            = Funciones.Qint(linea.Loteid),
                        Cantidad         = linea.Cantidadentrada,
                        Largo            = largo,
                        Ancho            = ancho,
                        Grueso           = grueso,
                        Fkunidades       = articuloObj.Fkunidades,
                        Metros           = metros,
                        Precio           = model.Precio,
                        Decimalesmedidas = unidadesObj.Decimalestotales,
                        Decimalesmonedas = 0,
                        Canal            = model.Canal
                    }
                                );
                }
            }

            ValidarKit(listado, model);

            return(listado);
        }
        // GET: api/Supercuentas/5
        public HttpResponseMessage Get()
        {
            var nvc            = HttpUtility.ParseQueryString(Request.RequestUri.Query);
            var almacen        = nvc["Fkalmacen"];
            var articulosdesde = nvc["FkarticulosDesde"];
            var articuloshasta = nvc["FkarticulosHasta"];
            var familiadesde   = nvc["FkfamiliaDesde"];
            var familiahasta   = nvc["FkfamiliaHasta"];
            var acabadodesde   = nvc["FkAcabadoDesde"];
            var acabadohasta   = nvc["FkAcabadoHasta"];
            var lotedesde      = nvc["LoteDesde"];
            var lotehasta      = nvc["LoteHasta"];
            var flujocadena    = nvc["Flujo"];
            var categoria      = TipoCategoria.Ambas;

            if (!string.IsNullOrEmpty(flujocadena))
            {
                if (flujocadena == "0")
                {
                    categoria = TipoCategoria.Ventas;
                }
                else if (flujocadena == "1")
                {
                    categoria = TipoCategoria.Compras;
                }
            }
            var solotablas = Funciones.Qbool(nvc["Solotablas"]);

            if (Funciones.Qbool(solotablas))
            {
                var lote = nvc["Lote"];
                if (!string.IsNullOrEmpty(lote))
                {
                    lotedesde = lote;
                    lotehasta = lote;
                }
            }


            var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list    = service.GetArticulosLotes(almacen, ContextService.Empresa, articulosdesde, articuloshasta, familiadesde, familiahasta, lotedesde, lotehasta, solotablas, categoria, acabadodesde, acabadohasta);

            var result = new ResultBusquedas <StockActualVistaModel>()
            {
                values  = list,
                columns = new[]
                {
                    new ColumnDefinition()
                    {
                        field = "Id", displayName = "Id", visible = false, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH,
                        }
                    },
                    new ColumnDefinition()
                    {
                        field = "Fkalmacenes", displayName = "Almacén", visible = false, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Fkarticulos", displayName = "Artículo", visible = true, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }
                    },
                    new ColumnDefinition()
                    {
                        field = "Descripcion", displayName = "Descripción", visible = true, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }
                    },
                    new ColumnDefinition()
                    {
                        field = "Fkfamilias", displayName = "Familia", visible = true, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Lote", displayName = "Lote", visible = true, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Loteid", displayName = "Lote Id", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Bundle", displayName = "Bundle", visible = true, width = 150
                    },
                    new ColumnDefinition()
                    {
                        field = "Cantidad", displayName = "Cantidad", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Largo", displayName = "Largo", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Ancho", displayName = "Ancho", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Grueso", displayName = "Grueso", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Metros", displayName = "Metros", visible = true, width = 70
                    },
                }
            };

            var response = Request.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8,
                                                 "application/json");
            return(response);
        }
        // GET: api/Supercuentas/5
        public HttpResponseMessage Get(string id)
        {
            var nvc            = HttpUtility.ParseQueryString(Request.RequestUri.Query);
            var almacen        = nvc["Fkalmacen"];
            var articulosdesde = nvc["FkarticulosDesde"];
            var articuloshasta = nvc["FkarticulosHasta"];
            var familiadesde   = nvc["FkfamiliaDesde"];
            var familiahasta   = nvc["FkfamiliaHasta"];
            var lotedesde      = nvc["LoteDesde"];
            var lotehasta      = nvc["LoteHasta"];
            var solotablas     = Funciones.Qbool(nvc["Solotablas"]);

            var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var list    = service.GetArticuloEntradaPorLoteOCodigo(id, almacen, ContextService.Empresa).Where(f => ((SalidabusquedaentregaslotesarticulosModel)f).Cantidad > 0).Select(f => (SalidabusquedaentregaslotesarticulosModel)f);
            var result  = new ResultBusquedas <SalidabusquedaentregaslotesarticulosModel>()
            {
                values  = list,
                columns = new[]
                {
                    new ColumnDefinition()
                    {
                        field = "Id", displayName = "Id", visible = false, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }
                    },
                    new ColumnDefinition()
                    {
                        field = "Fkalmacenes", displayName = "Almacén", visible = false, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Fkarticulos", displayName = "Artículo", visible = true, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }
                    },
                    new ColumnDefinition()
                    {
                        field = "Descripcion", displayName = "Descripción", visible = true, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }
                    },
                    new ColumnDefinition()
                    {
                        field = "Lote", displayName = "Lote", visible = true, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Loteid", displayName = "Lote Id", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "Bundle", displayName = "Bundle", visible = true, width = 150
                    },
                    new ColumnDefinition()
                    {
                        field = "Cantidad", displayName = "Cantidad", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SLargo", displayName = "Largo", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SAncho", displayName = "Ancho", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SGrueso", displayName = "Grueso", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SMetros", displayName = "Metros", visible = true, width = 70
                    },
                }
            };
            var response = Request.CreateResponse(list == null ? HttpStatusCode.InternalServerError : HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8,
                                                 "application/json");
            return(response);
        }
        private List <TransformacioneslotesLinModel> GenerarLineasConStock(List <TransformacioneslotesLinModel> listado, TransformacioneslotesLinVistaModel model, ArticulosDocumentosModel articuloObj, int maxId)
        {
            var stockactualService = new StockactualService(_context, _db);
            var articulosService   = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService;
            var familiasService    = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService;
            var unidadesService    = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService;

            var lotesService = new LotesService(_context);

            foreach (var linea in model.Lineas)
            {
                if (!listado.Any(f => f.Lote == linea.Lote && f.Tabla == Funciones.Qint(linea.Loteid)))
                {
                    var stockObj =
                        _db.Stockhistorico.Single(
                            f =>
                            f.fkalmacenes == _context.Fkalmacen && f.empresa == _context.Empresa &&
                            f.lote == linea.Lote && f.loteid == linea.Loteid);
                    var loteObj = lotesService.Get(stockObj.id.ToString());
                    articuloObj = articulosService.GetArticulo(linea.Fkarticulos, model.Fkcuenta, model.Fkmonedas, model.Fkregimeniva, model.Flujo);
                    var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(linea.Fkarticulos)) as FamiliasproductosModel;

                    var ancho  = linea.Ancho;
                    var largo  = linea.Largo;
                    var grueso = linea.Grueso;
                    var item   = familiaObj.Gestionstock
                        ? stockactualService.GetArticuloPorLoteOCodigo(
                        string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)), model.Fkalmacen,
                        Empresa) as MovimientosstockModel : null;
                    if (model.Modificarmedidas)
                    {
                        ancho  = model.Ancho;
                        largo  = model.Largo;
                        grueso = model.Grueso;
                    }
                    else
                    {
                        ancho  = item?.Ancho ?? linea.Ancho;
                        largo  = item?.Largo ?? linea.Largo;
                        grueso = item?.Grueso ?? linea.Grueso;
                    }
                    if (linea.Cantidad > item.Cantidad)
                    {
                        throw new ValidationException(string.Format("La cantidad indicada para el lote {0} es superior a la que hay en el stock actual", string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3))));
                    }
                    var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel;

                    var metros = UnidadesService.CalculaResultado(unidadesObj, articuloObj.Lotefraccionable ? model.Cantidad : linea.Cantidad, largo, ancho, grueso, model.Metros);
                    linea.Metros = metros;

                    listado.Add(new TransformacioneslotesLinModel()
                    {
                        Id                = maxId++,
                        Fkarticulos       = linea.Fkarticulos,
                        Descripcion       = articuloObj.Descripcion,
                        Lote              = linea.Lote,
                        Tabla             = Funciones.Qint(linea.Loteid),
                        Cantidad          = articuloObj.Lotefraccionable ? model.Cantidad : linea.Cantidad,
                        Largo             = largo,
                        Ancho             = ancho,
                        Grueso            = grueso,
                        Fkunidades        = articuloObj.Fkunidades,
                        Metros            = metros,
                        Decimalesmedidas  = unidadesObj.Decimalestotales,
                        Canal             = model.Canal,
                        Flagidentifier    = Guid.NewGuid(),
                        Precio            = loteObj.Costenetocompra,
                        Tipodealmacenlote = loteObj.Tipodealmacenlote
                    }
                                );
                }
            }

            ValidarKit(listado, model);

            return(listado);
        }
Example #16
0
 public MovimientosstockService(IContextService context, MarfilEntities db)
 {
     _db                 = db;
     _context            = context;
     _stockactualService = new StockactualService(_context, _db);
 }
Example #17
0
        // GET: api/Supercuentas/5
        public HttpResponseMessage Get()
        {
            var nvc            = HttpUtility.ParseQueryString(Request.RequestUri.Query);
            var almacen        = nvc["Fkalmacen"];
            var articulosdesde = nvc["FkarticulosDesde"];
            var articuloshasta = nvc["FkarticulosHasta"];
            var familiadesde   = nvc["FkfamiliaDesde"];
            var familiahasta   = nvc["FkfamiliaHasta"];
            var lotedesde      = nvc["LoteDesde"];
            var lotehasta      = nvc["LoteHasta"];
            var solotablas     = Funciones.Qbool(nvc["Solotablas"]);

            if (Funciones.Qbool(solotablas))
            {
                var lote = nvc["Lote"];
                if (!string.IsNullOrEmpty(lote))
                {
                    lotedesde = lote;
                    lotehasta = lote;
                }
            }


            var service = new StockactualService(ContextService, MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            //Le pasamos la empresa, el almacen y el articulo del que queremos buscar
            var list = service.GetArticulosLotesAgrupadosHistorico(almacen, ContextService.Empresa, articulosdesde);

            var result = new ResultBusquedas <StockActualMobileModel>()
            {
                values  = list,
                columns = new[]
                {
                    new ColumnDefinition()
                    {
                        field = "Fkarticulos", displayName = "Artículo", visible = true, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }
                    },
                    new ColumnDefinition()
                    {
                        field = "Articulo", displayName = "Descripción", visible = true, filter = new  Filter()
                        {
                            condition = ColumnDefinition.STARTS_WITH
                        }
                    },
                    new ColumnDefinition()
                    {
                        field = "Lote", displayName = "Lote", visible = true, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Familia", displayName = "Familia", visible = true, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Familiamaterial", displayName = "Familia M.", visible = true, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Material", displayName = "Material", visible = true, width = 100
                    },
                    new ColumnDefinition()
                    {
                        field = "Cantidaddisponible", displayName = "Cantidaddisponible", visible = true, width = 70
                    },
                    new ColumnDefinition()
                    {
                        field = "SMetros", displayName = "SMetros", visible = true, width = 150
                    },
                    new ColumnDefinition()
                    {
                        field = "UM", displayName = "UM", visible = true, width = 70
                    },
                }
            };

            var response = Request.CreateResponse(HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8,
                                                 "application/json");
            return(response);
        }
Example #18
0
        private List <AlbaranesLinModel> GenerarLineasConStock(List <AlbaranesLinModel> listado, AlbaranesLinVistaModel model, ArticulosDocumentosModel articuloObj, int maxId)
        {
            var stockactualService = new StockactualService(_context, _db);
            var articulosService   = FService.Instance.GetService(typeof(ArticulosModel), _context, _db) as ArticulosService;
            var familiasService    = FService.Instance.GetService(typeof(FamiliasproductosModel), _context, _db) as FamiliasproductosService;
            var unidadesService    = FService.Instance.GetService(typeof(UnidadesModel), _context, _db) as UnidadesService;
            var tiposivaService    = FService.Instance.GetService(typeof(TiposIvaModel), _context, _db) as TiposivaService;
            var monedasService     = FService.Instance.GetService(typeof(MonedasModel), _context, _db) as MonedasService;
            var monedasObj         = monedasService.get(model.Fkmonedas) as MonedasModel;

            foreach (var linea in model.Lineas)
            {
                if (!listado.Any(f => f.Lote == linea.Lote && f.Tabla == Funciones.Qint(linea.Loteid)))
                {
                    articuloObj = articulosService.GetArticulo(linea.Fkarticulos, model.Fkcuenta, model.Fkmonedas, model.Fkregimeniva, model.Flujo);
                    var familiaObj = familiasService.get(ArticulosService.GetCodigoFamilia(linea.Fkarticulos)) as FamiliasproductosModel;

                    var ancho  = linea.Ancho;
                    var largo  = linea.Largo;
                    var grueso = linea.Grueso;
                    var item   = familiaObj.Gestionstock
                        ? stockactualService.GetArticuloPorLoteOCodigo(
                        string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3)), model.Fkalmacen,
                        Empresa) as MovimientosstockModel : null;
                    if (model.Modificarmedidas)
                    {
                        ancho  = model.Ancho;
                        largo  = model.Largo;
                        grueso = model.Grueso;
                    }
                    else
                    {
                        ancho  = item?.Ancho ?? linea.Ancho;
                        largo  = item?.Largo ?? linea.Largo;
                        grueso = item?.Grueso ?? linea.Grueso;
                    }
                    if (linea.Cantidad > item.Cantidad)
                    {
                        throw new ValidationException(string.Format("La cantidad indicada para el lote {0} es superior a la que hay en el stock actual", string.Format("{0}{1}", linea.Lote, Funciones.RellenaCod(linea.Loteid, 3))));
                    }
                    var unidadesObj = unidadesService.get(familiaObj.Fkunidadesmedida) as UnidadesModel;
                    var tiposivaObj = tiposivaService.get(articuloObj.Fktiposiva) as TiposIvaModel;
                    var metros      = UnidadesService.CalculaResultado(unidadesObj, articuloObj.Lotefraccionable ? model.Cantidad :linea.Cantidad, largo, ancho, grueso, model.Metros);
                    linea.Metros = metros;
                    var bruto            = linea.Metros * model.Precio;
                    var importedescuento = Math.Round(((bruto) * model.Descuento / 100.0), model.Decimalesmonedas);
                    var total            = bruto - importedescuento;

                    listado.Add(new AlbaranesLinModel()
                    {
                        Nueva                         = true,
                        Id                            = maxId++,
                        Fkarticulos                   = linea.Fkarticulos,
                        Descripcion                   = articuloObj.Descripcion,
                        Lote                          = linea.Lote,
                        Tabla                         = Funciones.Qint(linea.Loteid),
                        Tblnum                        = Funciones.Qint(linea.Loteid),
                        Cantidad                      = articuloObj.Lotefraccionable ? model.Cantidad : linea.Cantidad,
                        Largo                         = largo,
                        Ancho                         = ancho,
                        Grueso                        = grueso,
                        Fkunidades                    = articuloObj.Fkunidades,
                        Metros                        = metros,
                        Precio                        = model.Precio,
                        Porcentajedescuento           = model.Descuento,
                        Importedescuento              = importedescuento,
                        Importe                       = total,
                        Decimalesmedidas              = unidadesObj.Decimalestotales,
                        Decimalesmonedas              = monedasObj.Decimales,
                        Fktiposiva                    = tiposivaObj.Id,
                        Porcentajeiva                 = tiposivaObj.PorcentajeIva,
                        Porcentajerecargoequivalencia = tiposivaObj.PorcentajeRecargoEquivalencia,
                        Bundle                        = model.Tipopieza == TipoPieza.Bundle ? model.Lote.Replace(linea.Lote, string.Empty) : string.Empty,
                        Caja                          = model.Caja,
                        Canal                         = model.Canal,
                        Flagidentifier                = Guid.NewGuid()
                    }
                                );
                }
            }

            ValidarKit(listado, model);

            return(listado);
        }