Ejemplo n.º 1
0
        public async Task <IActionResult> ApiPostInvConteos_Item([FromBody] zt_inventarios_conteos conteo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var buscarConteo = (from cont in LoDBContext.zt_inventarios_conteos
                                where cont.IdInventario == conteo.IdInventario && cont.IdSKU == conteo.IdSKU && cont.IdAlmacen == conteo.IdAlmacen &&
                                cont.IdUbicacion == conteo.IdUbicacion && cont.IdUnidadMedida == conteo.IdUnidadMedida
                                select cont.NumConteo).ToList();
            var nc = buscarConteo.Count;

            conteo.NumConteo = nc + 1;
            LoDBContext.zt_inventarios_conteos.Add(conteo);
            await LoDBContext.SaveChangesAsync();

            double totalPZA        = 0;
            var    resultadoConteo = (from cont in LoDBContext.zt_inventarios_conteos
                                      where cont.IdInventario == conteo.IdInventario && cont.IdSKU == conteo.IdSKU
                                      select cont).GroupBy(p => new { p.IdInventario, p.IdSKU, p.IdAlmacen, p.IdUbicacion, p.IdUnidadMedida })
                                     .Select(g => g.LastOrDefault());

            foreach (var element in resultadoConteo)
            {
                totalPZA = totalPZA + (double)element.CantidadPZA;
            }
            var objAcumulado = await LoDBContext.zt_inventarios_acumulados.FirstOrDefaultAsync(c => c.IdInventario == conteo.IdInventario && c.IdSKU == conteo.IdSKU);

            if (objAcumulado == null)
            {
                return(NotFound());
            }

            objAcumulado.CantidadFisica = totalPZA;
            objAcumulado.Diferencia     = objAcumulado.CantidadTeorica - objAcumulado.CantidadFisica;

            LoDBContext.zt_inventarios_acumulados.Update(objAcumulado);
            await LoDBContext.SaveChangesAsync();

            return(CreatedAtAction("Reg acumulado:", new { objAcumulado }));
        }
Ejemplo n.º 2
0
        private bool MakeStringFilter(zt_inventarios_conteos o, string option, string condition)
        {
            var value      = o.GetType().GetProperty(option);
            var exactValue = value.GetValue(o, null);

            exactValue = exactValue.ToString().ToLower();
            string text    = FilterText.ToLower();
            var    methods = typeof(string).GetMethods();

            if (methods.Count() != 0)
            {
                if (condition == "Contains")
                {
                    var  methodInfo = methods.FirstOrDefault(method => method.Name == condition);
                    bool result1    = (bool)methodInfo.Invoke(exactValue, new object[] { text });
                    return(result1);
                }
                else if (exactValue.ToString() == text.ToString())
                {
                    bool result1 = String.Equals(exactValue.ToString(), text.ToString());
                    if (condition == "Equals")
                    {
                        return(result1);
                    }
                    else if (condition == "NotEquals")
                    {
                        return(false);
                    }
                }
                else if (condition == "NotEquals")
                {
                    return(true);
                }
                return(false);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 3
0
        private async Task <int> FicExitConteo(zt_inventarios_conteos zt_inventarios_conteos)
        {
            var bus = await(from conteo in FicLoBDContext.zt_inventarios_conteos
                            join inv in FicLoBDContext.zt_inventarios on conteo.IdInventario equals inv.IdInventario
                            join pro in FicLoBDContext.zt_cat_productos on conteo.IdSKU equals pro.IdSKU
                            join alm in FicLoBDContext.zt_cat_almacenes on conteo.IdAlmacen equals alm.IdAlmacen
                            join unm in FicLoBDContext.zt_cat_unidad_medidas on conteo.IdUnidadMedida equals unm.IdUnidadMedida
                            where pro.IdSKU == zt_inventarios_conteos.IdSKU && alm.IdAlmacen == zt_inventarios_conteos.IdAlmacen && unm.IdUnidadMedida == zt_inventarios_conteos.IdUnidadMedida && conteo.IdUbicacion == zt_inventarios_conteos.IdUbicacion && inv.IdInventario == zt_inventarios_conteos.IdInventario  //&& conteo.NumConteo == zt_inventarios_conteos.NumConteo
                            select conteo).AsNoTracking().ToListAsync();

            if (bus != null && bus.Count != 0)
            {
                List <int> temp = new List <int>();
                foreach (zt_inventarios_conteos a in bus)
                {
                    temp.Add(a.NumConteo);
                }
                return(temp.Max() + 1);
            }

            return(1);
        }//BUSCA SI EXISTE UN REGISTRO
Ejemplo n.º 4
0
        public async Task <string> Insert_zt_inventarios_conteos(zt_inventarios_conteos zt_inventarios_conteos, bool modo)
        {
            try
            {
                zt_inventarios_conteos.CantidadPZA = await FicMetCantPza(zt_inventarios_conteos.IdSKU, zt_inventarios_conteos.IdUnidadMedida, zt_inventarios_conteos.CantidadFisica);

                if (modo)
                {
                    zt_inventarios_conteos.NumConteo = await FicExitConteo(zt_inventarios_conteos);

                    await FicLoBDContext.AddAsync(zt_inventarios_conteos);

                    return(await FicLoBDContext.SaveChangesAsync() > 0 ? "OK" : "ERROR AL REGISTRAR");
                }
                else
                {
                    var FicSourceInvExits = await(
                        from con in FicLoBDContext.zt_inventarios_conteos
                        join inv in FicLoBDContext.zt_inventarios on con.IdInventario equals inv.IdInventario
                        where con.IdSKU == zt_inventarios_conteos.IdSKU && con.IdAlmacen == zt_inventarios_conteos.IdAlmacen && con.IdUnidadMedida == zt_inventarios_conteos.IdUnidadMedida && con.NumConteo == zt_inventarios_conteos.NumConteo && con.IdUbicacion == zt_inventarios_conteos.IdUbicacion
                        select con
                        ).SingleOrDefaultAsync();

                    FicSourceInvExits.Lote           = zt_inventarios_conteos.Lote;
                    FicSourceInvExits.CantidadFisica = zt_inventarios_conteos.CantidadFisica;
                    FicSourceInvExits.CantidadPZA    = zt_inventarios_conteos.CantidadPZA;

                    FicLoBDContext.Update(FicSourceInvExits);
                    return(await FicLoBDContext.SaveChangesAsync() > 0 ? "OK" : "ERROR AL ACTUALIZAR");
                }
            }
            catch (Exception ex)
            {
                return(ex.Message.ToString());
            }
        }//INSERTAR NUEVO CONTEO
Ejemplo n.º 5
0
        }//LIST ALL

        private async Task <bool> FicExitInventariosConteo(zt_inventarios_conteos zt_inventarios_conteos)
        {
            return(await(from conteo in FicLoBDContext.zt_inventarios_conteos
                         where conteo.IdInventario == zt_inventarios_conteos.IdInventario && conteo.IdSKU == zt_inventarios_conteos.IdSKU && conteo.IdAlmacen == zt_inventarios_conteos.IdAlmacen && conteo.IdUnidadMedida == zt_inventarios_conteos.IdUnidadMedida && conteo.IdUbicacion == zt_inventarios_conteos.IdUbicacion
                         select conteo).AsNoTracking().SingleOrDefaultAsync() == null ? true : false);
        }//BUSCA SI EXISTE UN REGISTRO
Ejemplo n.º 6
0
 public async Task FicMetRemoveInventarioCont(zt_inventarios_conteos FicPaZt_inventarios_det_Remove)
 {
     await ficSQLiteConnection.DeleteAsync(FicPaZt_inventarios_det_Remove);
 }
Ejemplo n.º 7
0
        public async Task <IActionResult> ApiPostInv_Conteos_post_lunes([FromQuery] int IdInventario, [FromQuery] string IdSKU, [FromQuery] string IdUnidadMedida, [FromQuery] string IdAlmacen, [FromQuery] string IdUbicacion, [FromBody] zt_inventarios_conteos con)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var resultado = (
                from conteos in LoDBContext.zt_inventarios_conteos
                where conteos.IdInventario == IdInventario &&
                conteos.IdSKU == IdSKU       //&&
                //conteos.IdUnidadMedida == IdUnidadMedida &&
                //conteos.IdAlmacen == IdAlmacen &&
                //conteos.IdUbicacion == IdUbicacion
                select conteos
                ).ToList();

            if (!resultado.Any())
            {
                con.NumConteo = 1;
                LoDBContext.zt_inventarios_conteos.Add(con);
                await LoDBContext.SaveChangesAsync();

                //cambiar var temp por un select
                //var temp = LoDBContext.zt_inventarios_acumulados.Find(IdInventario, IdSKU);
                var temp = await LoDBContext.zt_inventarios_acumulados.FirstOrDefaultAsync(a => a.IdInventario == con.IdInventario && a.IdSKU == con.IdSKU);

                temp.CantidadFisica += con.CantidadPZA;
                temp.Diferencia      = temp.CantidadTeorica - temp.CantidadFisica;
                LoDBContext.zt_inventarios_acumulados.Update(temp);
                await LoDBContext.SaveChangesAsync();
            }
            else
            {
                var ultimo = resultado.Last();
                con.NumConteo = ultimo.NumConteo + 1;
                LoDBContext.zt_inventarios_conteos.Add(con);
                await LoDBContext.SaveChangesAsync();

                var temp = await LoDBContext.zt_inventarios_acumulados.FirstOrDefaultAsync(a => a.IdInventario == con.IdInventario && a.IdSKU == con.IdSKU);

                //var temp = LoDBContext.zt_inventarios_acumulados.Find(IdInventario, IdSKU, IdUnidadMedida);
                temp.CantidadFisica = temp.CantidadFisica + con.CantidadPZA;
                temp.Diferencia     = temp.CantidadTeorica - temp.CantidadFisica;
                LoDBContext.zt_inventarios_acumulados.Update(temp);
                await LoDBContext.SaveChangesAsync();
            }
            return(CreatedAtAction("ApiGetAcumuladosConteosList", new { id = con.IdSKU }));
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> ApiPutAcumulados([FromQuery] int IdInventarioR, [FromQuery] string IdSKUR, [FromQuery] string IdUnidadMedidaR, [FromQuery] string IdAlmacen, [FromQuery] string IdUbicacion, [FromQuery] int NumConteo, [FromBody] zt_inventarios_conteos cont)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var temp = LoDBContext.zt_inventarios_conteos.Find(IdInventarioR, IdSKUR, IdUnidadMedidaR, IdAlmacen, IdUbicacion, NumConteo);

            LoDBContext.zt_inventarios_conteos.Update(cont);
            //LoDBContext.zt_inventarios_acumulados[IdInventarioR] = acu;
            //LoDBContext.zt_inventarios_acumulados.Add(acu);
            await LoDBContext.SaveChangesAsync();

            return(CreatedAtAction("ApiGetAcumuladosConteosList", new { id = cont.IdSKU }));
        }
Ejemplo n.º 9
0
        }//Fin insert

        public async Task Remove_zt_inventarios_conteos(zt_inventarios_conteos zt_inventarios_conteos)
        {
            await ficSQLiteConnection.DeleteAsync(zt_inventarios_conteos);
        }//Fin remove