Esempio n. 1
0
        private SumIV GetLotIV00300(string product, string warehouse)
        {
            SumIV   sumiv = new SumIV();
            decimal tot   = 0;

            CultureInfo culture;

            culture = CultureInfo.CreateSpecificCulture("es-PA");
            Thread.CurrentThread.CurrentCulture = culture;

            try
            {
                using (TSGVLEntities db = new TSGVLEntities())
                {
                    db.Database.CommandTimeout = 0;

                    var qry = "SELECT sum(QTYRECVD - QTYSOLD - ATYALLOC) as qtyrecvd, lotnumbr, DATERECD";
                    qry += " FROM IV00300";
                    qry += " WHERE itemnmbr='" + product + "' and locncode='" + warehouse + "' and qtytype='1' and ((QTYRECVD - QTYSOLD - ATYALLOC) > 0)";
                    qry += " GROUP BY itemnmbr, lotnumbr, DATERECD";

                    var result = db.Database.SqlQuery <SumIV>(qry).ToList();

                    sumiv = result.Count > 1 ? result.LastOrDefault() : result.FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
                sumiv = null;
                Debug.Write(@"Error " + ex.Message);
            }


            return(sumiv);
        }
        public List <OrderReqDetailExtend> GetAllDetail()
        {
            List <OrderReqDetailExtend> list = new List <OrderReqDetailExtend>();

            try
            {
                using (TSGVLEntities db = new TSGVLEntities())
                {
                    //var detail = (from or in context.OrderReqDetails
                    //    where or.ProductCodeChanged != null
                    //    select or).ToList();


                    var detail = (from or in context.OrderReqDetails
                                  join orp in context.OrderReqDetailProducts on or.OrderReqCode equals orp.OrderReqCode
                                  select new OrderReqDetailExtend
                    {
                        Id = or.Id,
                        OrderReqCode = or.OrderReqCode.Trim(),
                        Observation = or.Observation,
                        ProductCode = or.ProductCode,
                        ProductCodeChanged = orp.ProductCodeChanged,
                        Quantity = or.Quantity,
                        DateProductChanged = orp.DateProductChanged,
                        UserUpdated = orp.UserUpdated,
                        //ProductName = db.IV00101.FirstOrDefault(a => a.ITEMNMBR.Trim() == item.ProductCode).ITEMDESC.Trim(),
                        //ProductNameChanged = (item.ProductCodeChanged != null) ? db.IV00101.FirstOrDefault(a => a.ITEMNMBR.Trim() == item.ProductCodeChanged.ToString()).ITEMDESC.Trim() : string.Empty,
                        QuantityChanged = orp.Quantity == null ? 0 : orp.Quantity
                    }).ToList();

                    list.AddRange(detail.Select(item =>
                    {
                        var productName        = db.IV00101.FirstOrDefault(a => a.ITEMNMBR.Trim() == item.ProductCode);
                        var productNameChanged = db.IV00101.FirstOrDefault(a => a.ITEMNMBR.Trim() == item.ProductCodeChanged);
                        return(new OrderReqDetailExtend
                        {
                            Id = item.Id,
                            OrderReqCode = item.OrderReqCode.Trim(),
                            Observation = item.Observation,
                            ProductCode = item.ProductCode,
                            ProductCodeChanged = item.ProductCodeChanged,
                            Quantity = item.Quantity,
                            DateProductChanged = item.DateProductChanged,
                            UserUpdated = item.UserUpdated,
                            ProductName = (productName != null)? productName.ITEMDESC.Trim(): string.Empty,
                            ProductNameChanged = (productNameChanged != null)? productNameChanged.ITEMDESC.Trim() : string.Empty
                        });
                    }));
                }
            }
            catch (Exception ex)
            {
                list = null;
                Debug.Write("Error " + ex.InnerException.Message);
            }
            return(list);
        }
Esempio n. 3
0
 public List <Product> Search(string code)
 {
     //return context.Products.Where(a => a.Code.ToLower().Contains(code.ToLower()) || a.Description.ToLower().Contains(code.ToLower())).ToList();
     using (TSGVLEntities db = new TSGVLEntities())
     {
         return(db.IV00101.Where(a => a.ITEMNMBR.Trim().ToLower().Contains(code.ToLower()) || a.ITEMDESC.Trim().ToLower().Contains(code.ToLower())).Select(a => new Product()
         {
             Id = 0,
             Code = a.ITEMNMBR.Trim(),
             Description = a.ITEMDESC.Trim(),
         }).ToList());
     }
 }
Esempio n. 4
0
        public Product GetByCode(string code)
        {
            //return context.Products.FirstOrDefault(a => a.Code == code);
            Product prod = new Product();

            using (TSGVLEntities db = new TSGVLEntities())
            {
                var p = db.IV00101.FirstOrDefault(a => a.ITEMNMBR.Trim() == code);
                if (p != null)
                {
                    prod.Id          = 0;
                    prod.Code        = p.ITEMNMBR.Trim();
                    prod.Description = p.ITEMDESC.Trim();
                }
            }
            return(prod);
        }
        public List <OrderReqDetailExtend> GetOrderRedDetailExtendProduct(string code)
        {
            List <OrderReqDetailExtend> list = new List <OrderReqDetailExtend>();

            try
            {
                var details = context.OrderReqDetailProducts.Where(a => a.OrderReqCode == code).ToList();

                using (TSGVLEntities db = new TSGVLEntities())
                {
                    foreach (var rows in details)
                    {
                        list.Add(new OrderReqDetailExtend
                        {
                            Id                 = rows.Id,
                            OrderReqCode       = rows.OrderReqCode,
                            Observation        = string.Empty,
                            ProductCode        = rows.ProductCode,
                            ProductCodeChanged = rows.ProductCodeChanged,
                            Quantity           = rows.Quantity,
                            DateProductChanged = rows.DateProductChanged,
                            UserUpdated        = rows.UserUpdated,
                            ProductName        = db.IV00101.FirstOrDefault(a => a.ITEMNMBR.Trim() == rows.ProductCode)
                                                 ?.ITEMDESC
                                                 .Trim(),
                            ProductNameChanged = db.IV00101
                                                 .FirstOrDefault(a => a.ITEMNMBR.Trim() == rows.ProductCodeChanged)
                                                 ?.ITEMDESC.Trim(),
                            QuantityChanged = rows.Quantity,
                            Warehouse       = rows.Warehouse
                        });
                    }
                }
                return(list);
            }
            catch (Exception)
            {
                return(null);

                throw;
            }
        }
        private bool syncIV10300()
        {
            CultureInfo culture;

            culture = CultureInfo.CreateSpecificCulture("es-PA");
            Thread.CurrentThread.CurrentCulture = culture;
            string        query          = string.Empty;
            List <string> arrayNotDelete = new List <string>();

            try
            {
                using (TSGVLEntities db = new TSGVLEntities())
                {
                    db.Database.CommandTimeout = 0;

                    using (var conn = new SQLiteConnection(
                               @"Data Source=" + Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                                              ConfigurationManager.AppSettings["filePath"])))
                    {
                        conn.Open();

                        DatabaseHelper context = new DatabaseHelper();

                        using (var cmd = new SQLiteCommand(conn))
                        {
                            //IV10300: Conteo de Stock "Master"
                            var _idStt = new[] { 1, 2 };

                            //List<IV10300> _IV10300 = db.IV10300.Where(a => a.STCKCNTSTTS == 1 && a.STCKCNTSTTS == 2).ToList();
                            List <IV10300>          _IV10300 = db.IV10300.Where(a => _idStt.Contains(a.STCKCNTSTTS)).ToList();
                            List <Models.CountPlan> _list    = (from cp in context.CountPlans
                                                                select cp).ToList();

                            if (_IV10300 != null)
                            {
                                List <IV10300> iv10300 = new List <IV10300>();


                                #region "Elimina conteo que estan inactivos en GP (estatus 1) y se encuentran en la bd intermedia"

                                foreach (var item in _list)
                                {
                                    if (_IV10300.Where(r => r.STCKCNTSTTS == 1).Any(a => a.STCKCNTID.Trim() == item.Name.Trim()))
                                    {
                                        query  = "DELETE FROM countplandetailitem ";
                                        query += " WHERE  countPlanId = '" + item.Id + "'";
                                        removeData(conn, cmd, query);

                                        query = "";

                                        //remove status 0 CountPlandetail
                                        query  = "DELETE FROM countplandetail ";
                                        query += " WHERE  countPlanId = '" + item.Id + "'";
                                        removeData(conn, cmd, query);

                                        query = "";

                                        //remove status 0 CountPlan
                                        query = "DELETE FROM countplan WHERE Id = '" + item.Id + "'";
                                        removeData(conn, cmd, query);
                                    }
                                }

                                #endregion


                                #region "Eliminia de la bd los conteos que fueron procesados"

                                //remove status 0 CountPlandetailItem
                                query  = "DELETE FROM countplandetailitem ";
                                query += " WHERE  countPlanId IN (SELECT ID FROM countplan WHERE status = '0')";
                                removeData(conn, cmd, query);

                                query = "";

                                //remove status 0 CountPlandetail
                                query  = "DELETE FROM countplandetail ";
                                query += " WHERE  countPlanId IN (SELECT ID FROM countplan WHERE status = '0')";
                                removeData(conn, cmd, query);

                                query = "";

                                //remove status 0 CountPlan
                                query = "DELETE FROM countplan WHERE status = '0'";
                                removeData(conn, cmd, query);

                                #endregion


                                arrayNotDelete = getLisNotDeleteCountPlan(); //Get countPlan no deleted

                                var myListInsert = string.Empty;

                                if (arrayNotDelete.Count > 0)
                                {
                                    iv10300 = (from cp in _IV10300
                                               where cp.STCKCNTSTTS == 2 && !arrayNotDelete.Contains(cp.STCKCNTID.Trim())
                                               select cp).ToList();
                                }
                                else
                                {
                                    iv10300 = _IV10300.Where(a => a.STCKCNTSTTS == 2).ToList();
                                }


                                //Get CountPlan from GP and filter to no delete ID in arrayNotDelete
                                using (var transaction = conn.BeginTransaction())
                                {
                                    arrayNotDelete.Clear(); //limpia los conteos
                                    foreach (var item in iv10300)
                                    {
                                        cmd.CommandText =
                                            "INSERT INTO CountPlan (Name, Description, Status, DateCreated, Warehouse) VALUES ('" +
                                            item.STCKCNTID.Trim() + "','" +
                                            item.STCKCNTDSCRPTN.Trim().Replace("'", "''") +
                                            "','" + item.STCKCNTSTTS + "','" + item.LSTCNTDT.ToShortDateString().Trim() +
                                            "','" + item.LOCNCODE + "')";
                                        cmd.ExecuteNonQuery();

                                        arrayNotDelete.Add(item.STCKCNTID.Trim()); //agrega el nombre del conteo para luego agregar los detalles
                                    }

                                    transaction.Commit();
                                }
                            }
                            else
                            {
                                return(false);

                                Debug.Write("Fail load IV10300");
                            }



                            if (_list != null)
                            {
                                _list = (from cp in context.CountPlans
                                         where arrayNotDelete.Contains(cp.Name)
                                         select cp).ToList();

                                foreach (Models.CountPlan countPlan in _list)
                                {
                                    var _IV10301 = (from _iv10300 in db.IV10301
                                                    join _iv00102 in db.IV00102
                                                    on new { _iv10300.ITEMNMBR, _iv10300.LOCNCODE } equals new
                                                    { _iv00102.ITEMNMBR, _iv00102.LOCNCODE }
                                                    where _iv10300.STCKCNTID.Trim().Equals(countPlan.Name)
                                                    select new
                                    {
                                        _ITEMNMBR = _iv10300.ITEMNMBR,
                                        _CAPTUREDQTY = (_iv10300.CAPTUREDQTY - _iv00102.ATYALLOC),
                                        _COUNTDATE = _iv10300.COUNTDATE,
                                        _LOCNCODE = _iv10300.LOCNCODE
                                    }).ToList();


                                    //List <IV10301> _IV10301 = db.IV10301
                                    //    .Where(stl => stl.STCKCNTID.Trim().Equals(countPlan.Name))
                                    //    .ToList();

                                    if (_IV10301 != null)
                                    {
                                        using (var transaction = conn.BeginTransaction())
                                        {
                                            foreach (var item in _IV10301)
                                            {
                                                cmd.CommandText =
                                                    "INSERT INTO CountPlanDetail (CountPlanId, ProductCode, Quantity, DateCreated, Warehouse) VALUES (" +
                                                    countPlan.Id + ",'" + item._ITEMNMBR.Trim() + "'," + item._CAPTUREDQTY +
                                                    ",'" + item._COUNTDATE.ToShortDateString().Trim() + "','" +
                                                    item._LOCNCODE.Trim() + "')";
                                                cmd.ExecuteNonQuery();
                                            }

                                            transaction.Commit();
                                        }
                                    }
                                    else
                                    {
                                        Debug.Write(string.Format("Fail load IV10301 with STCKCNTID: {0}",
                                                                  countPlan.Name));
                                    }
                                }
                            }
                            else
                            {
                                return(false);

                                Debug.Write("Fail load CountPlan");
                            }
                        } //Cmd Sqlite

                        conn.Close();
                    } //Conn Sqlite
                }
            }
            catch (Exception ex)
            {
                return(false);

                Debug.Write(@"Error " + ex.Message);
            }

            return(true);
        }
        private bool syncPOP10100()
        {
            CultureInfo culture;

            culture = CultureInfo.CreateSpecificCulture("es-PA");
            Thread.CurrentThread.CurrentCulture = culture;
            string        query          = string.Empty;
            List <string> arrayNotDelete = new List <string>();

            try
            {
                using (TSGVLEntities db = new TSGVLEntities())
                {
                    db.Database.CommandTimeout = 0;

                    using (var conn = new SQLiteConnection(
                               @"Data Source=" + Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                                              ConfigurationManager.AppSettings["filePath"])))
                    {
                        conn.Open();

                        DatabaseHelper context = new DatabaseHelper();

                        using (var cmd = new SQLiteCommand(conn))
                        {
                            List <POP10100> _POP10100 = db.POP10100.Where(p => p.POSTATUS == 2 && p.STATGRP == 1).ToList();

                            if (_POP10100 != null)
                            {
                                query = "DELETE FROM OrderTShirt";
                                removeData(conn, cmd, query);


                                using (var transaction = conn.BeginTransaction())
                                {
                                    foreach (var item in _POP10100)
                                    {
                                        cmd.CommandText =
                                            "INSERT INTO OrderTShirt (Code, ProviderCode, DateCreated) VALUES ('" +
                                            item.PONUMBER.Trim() + "','" + item.VENDORID.Trim() + "','" +
                                            item.DOCDATE.ToShortDateString().Trim() + "')";
                                        cmd.ExecuteNonQuery();
                                    }

                                    transaction.Commit();
                                }
                            }
                            else
                            {
                                return(false);

                                Debug.Write("Fail load POP10100");
                            }


                            List <Models.OrderTShirt> _OrderTShirt = context.Orders.ToList();

                            if (_OrderTShirt != null)
                            {
                                query = "DELETE FROM OrderDetail";
                                removeData(conn, cmd, query);


                                foreach (Models.OrderTShirt orderTShirt in _OrderTShirt)
                                {
                                    List <POP10110> _POP10110 = db.POP10110.Where(p => p.PONUMBER.Trim().Equals(orderTShirt.Code)).ToList();
                                    if (_POP10110 != null)
                                    {
                                        using (var transaction = conn.BeginTransaction())
                                        {
                                            foreach (var item in _POP10110)
                                            {
                                                cmd.CommandText =
                                                    "INSERT INTO OrderDetail (OrderCode, ProductCode, Quantity, Value2, Value3, DateCreated, OrderTShirt_id, InitQuantity) VALUES ('" +
                                                    item.PONUMBER.Trim() + "','" +
                                                    item.ITEMNMBR.Trim().Replace("'", "''") + "'," +
                                                    item.QTYORDER.ToString().Replace(",", ".") + ",'" +
                                                    item.LOCNCODE.Trim() + "','" +
                                                    item.VNDITNUM.Trim() + "','" +
                                                    item.REQDATE.ToShortDateString().Trim() + "'," +
                                                    orderTShirt.Id + "," +
                                                    item.QTYORDER.ToString().Replace(",", ".") + ")";
                                                cmd.ExecuteNonQuery();
                                            }

                                            transaction.Commit();
                                        }
                                    }
                                    else
                                    {
                                        Debug.Write(string.Format("Fail load POP10110 with PONUMBER: {0}", orderTShirt.Code));
                                    }
                                }



                                //var _data = (from ord in context.Orders
                                //    join orddet in context.OrderDetails on ord.Code equals orddet.OrderCode
                                //    where ord.Value1 == "0"
                                //    select orddet.ProductCode).Distinct().ToArray();

                                //var _data = context.Products.ToList().Distinct().Select(a=> a.Code).ToArray();

                                ////List<IV00101> _IV00101 = db.IV00101.Where(a => _data.Contains(a.ITEMNMBR.Trim())).ToList();
                                //var _IV00101 = (from c in db.IV00101
                                //                where  !_data.Contains(c.ITEMNMBR.Trim())
                                //    select c).Distinct().ToList();

                                //if (_IV00101 != null)
                                //{

                                //    //removeData(conn, cmd, "DELETE FROM Product");

                                //    using (var transaction = conn.BeginTransaction())
                                //    {
                                //        foreach (var item in _IV00101)
                                //        {
                                //            cmd.CommandText =
                                //                "INSERT INTO Product (Code, BarCode, Description) VALUES ('" +
                                //                item.ITEMNMBR.Trim() + "','" + item.ITEMNMBR.Trim() + "','" +
                                //                item.ITEMDESC.Trim().Replace("'", "''") + "')";
                                //            cmd.ExecuteNonQuery();
                                //        }

                                //        transaction.Commit();

                                //    }
                                //}
                            }
                        } //Cmd Sqlite

                        conn.Close();
                    } //Conn Sqlite
                }
            }
            catch (Exception ex)
            {
                // conn.Close();
                return(false);

                Debug.Write(@"Error " + ex.Message);
            }

            return(true);
        }
        public OrderReqExtend GetOrderByCode(string code)
        {
            var order = new OrderReqExtend();

            try
            {
                order = (from or in context.OrderReqs
                         where or.Code == code
                         select new OrderReqExtend()
                {
                    Id = or.Id,
                    Code = or.Code,
                    Description = or.Description,
                    Status = or.Status,
                    ClientCode = or.ClientCode,
                    DateCreated = or.DateCreated,
                    Value1 = or.Value1,
                    Value2 = or.Value2,
                    Value3 = or.Value3,
                    Value4 = or.Value4,
                    Value5 = or.Value5,
                    Observation = or.Observation,
                    ClientName = or.ClientCode
                }).FirstOrDefault();

                if (order == null) //si no se encuentra en la bd intermedia busca en GP
                {
                    using (TSGVLEntities db = new TSGVLEntities())
                    {
                        var _sop10100 = db.SOP10100.FirstOrDefault(a => a.SOPNUMBE.Trim().Equals(code));

                        if (_sop10100 == null)
                        {
                            var _sop30200 = db.SOP30200.FirstOrDefault(a => a.SOPNUMBE.Trim() == code);
                            order = new OrderReqExtend
                            {
                                Id          = 1,
                                ClientCode  = _sop30200.CUSTNAME.Trim().Replace("'", "''"),
                                Code        = _sop30200.SOPNUMBE.Trim(),
                                ClientName  = _sop30200.CUSTNAME.Trim().Replace("'", "''"),
                                DateCreated = _sop30200.DOCDATE.ToString("dd/MM/yyyy"),
                                Status      = _sop30200.SOPSTATUS.ToString()
                            };
                        }
                        else
                        {
                            order = new OrderReqExtend
                            {
                                Id          = 1,
                                ClientCode  = _sop10100.CUSTNAME.Trim().Replace("'", "''"),
                                Code        = _sop10100.SOPNUMBE.Trim(),
                                ClientName  = _sop10100.CUSTNAME.Trim().Replace("'", "''"),
                                DateCreated = _sop10100.DOCDATE.ToString("dd/MM/yyyy"),
                                Status      = _sop10100.SOPSTATUS.ToString()
                            };
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.Write("Error " + ex.InnerException.Message);
                return(null);
            }
            return(order);
        }
        public OrderReqExtend GetDetailByCode(string code)
        {
            try
            {
                var order = new OrderReqExtend();

                List <OrderReqDetailExtend> list         = new List <OrderReqDetailExtend>();
                List <OrderReqDetail>       detailInsert = new List <OrderReqDetail>();
                using (TSGVLEntities db = new TSGVLEntities())
                {
                    var anyOrder = context.OrderReqs.Any(a => a.Code == code);
                    if (!anyOrder)
                    {
                        var master = db.SOP10100.FirstOrDefault(p => p.SOPNUMBE.Trim().Equals(code));

                        if (master != null)
                        {
                            var _master = new OrderReq()
                            {
                                Code        = master.SOPNUMBE.Trim(),
                                ClientCode  = master.CUSTNAME.Trim().Replace("'", "''"),
                                DateCreated = master.DOCDATE.ToString("dd/MM/yyyy"),
                                Status      = master.SOPSTATUS.ToString(),
                            };

                            context.OrderReqs.Add(_master);
                            context.SaveChanges();

                            order.Id          = _master.Id;
                            order.Code        = _master.Code;
                            order.DateCreated = _master.DateCreated;
                            order.Status      = _master.Status;
                            order.ClientCode  = _master.ClientCode;
                            order.ClientName  = _master.ClientCode;

                            var detail = db.SOP10200.Where(p => p.SOPNUMBE.Trim().Equals(code)).ToList();
                            if (detail.Any())
                            {
                                foreach (var row in detail)
                                {
                                    var _detail = new OrderReqDetail()
                                    {
                                        OrderReqCode = row.SOPNUMBE.Trim(),
                                        Observation  = row.ITEMDESC.Trim(),
                                        ProductCode  = row.ITEMNMBR.Trim().Replace("'", "''"),
                                        Quantity     = Convert.ToInt32(row.QUANTITY),
                                        Warehouse    = row.LOCNCODE.Trim()
                                    };
                                    detailInsert.Add(_detail);

                                    context.OrderReqDetails.Add(_detail);
                                    context.SaveChanges();
                                }

                                list.AddRange(detailInsert.Select(items => new OrderReqDetailExtend()
                                {
                                    OrderReqCode       = items.OrderReqCode,
                                    Observation        = string.Empty,
                                    ProductCode        = items.ProductCode,
                                    ProductCodeChanged = string.Empty,
                                    Quantity           = items.Quantity,
                                    DateProductChanged = string.Empty,
                                    UserUpdated        = string.Empty,
                                    ProductName        = items.Observation,
                                    ProductNameChanged = string.Empty,
                                    QuantityChanged    = 0,
                                    Warehouse          = items.Warehouse
                                }));
                                order.Detail = list;
                            }
                        }
                        else
                        {
                            var master30200 = db.SOP30200.FirstOrDefault(p => p.SOPNUMBE.Trim().Equals(code));
                            var _master2    = new OrderReq()
                            {
                                Code        = master30200.SOPNUMBE.Trim(),
                                ClientCode  = master30200.CUSTNAME.Trim().Replace("'", "''"),
                                DateCreated = master30200.DOCDATE.ToString("dd/MM/yyyy"),
                                Status      = master30200.SOPSTATUS.ToString(),
                            };

                            context.OrderReqs.Add(_master2);
                            context.SaveChanges();

                            order.Id          = _master2.Id;
                            order.Code        = _master2.Code;
                            order.DateCreated = _master2.DateCreated;
                            order.Status      = _master2.Status;
                            order.ClientCode  = _master2.ClientCode;
                            order.ClientName  = _master2.ClientCode;

                            var detail = db.SOP30300.Where(p => p.SOPNUMBE.Trim().Equals(code)).ToList();
                            if (detail.Any())
                            {
                                foreach (var row in detail)
                                {
                                    var _detail = new OrderReqDetail()
                                    {
                                        OrderReqCode = row.SOPNUMBE.Trim(),
                                        Observation  = row.ITEMDESC.Trim(),
                                        ProductCode  = row.ITEMNMBR.Trim().Replace("'", "''"),
                                        Quantity     = Convert.ToInt32(row.QUANTITY),
                                        Warehouse    = row.LOCNCODE.Trim()
                                    };
                                    detailInsert.Add(_detail);

                                    context.OrderReqDetails.Add(_detail);
                                    context.SaveChanges();
                                }

                                list.AddRange(detailInsert.Select(items => new OrderReqDetailExtend()
                                {
                                    OrderReqCode       = items.OrderReqCode,
                                    Observation        = string.Empty,
                                    ProductCode        = items.ProductCode,
                                    ProductCodeChanged = string.Empty,
                                    Quantity           = items.Quantity,
                                    DateProductChanged = string.Empty,
                                    UserUpdated        = string.Empty,
                                    ProductName        = items.Observation,
                                    ProductNameChanged = string.Empty,
                                    QuantityChanged    = 0,
                                    Warehouse          = items.Warehouse
                                }));
                                order.Detail = list;
                            }
                        }
                    }
                    else
                    {
                        order = GetOrderByCode(code);

                        var qyDetail = (from or in context.OrderReqDetails
                                        join orp in context.OrderReqDetailProducts on new { or.OrderReqCode, or.ProductCode } equals new { orp.OrderReqCode, orp.ProductCode }
                                        into rel
                                        from relleft in rel.DefaultIfEmpty()
                                        where or.OrderReqCode.Trim() == code
                                        select new OrderReqDetailExtend
                        {
                            Id = or.Id,
                            OrderReqCode = or.OrderReqCode.Trim(),
                            Observation = or.Observation,
                            ProductCode = or.ProductCode,
                            ProductName = or.Observation,
                            ProductCodeChanged = relleft.ProductCodeChanged,
                            Quantity = or.Quantity,
                            DateProductChanged = relleft.DateProductChanged,
                            UserUpdated = relleft.UserUpdated,
                            QuantityChanged = relleft.Quantity == null ? 0 : relleft.Quantity,
                            Warehouse = or.Warehouse
                        }).ToList();

                        list.AddRange(qyDetail.Select(item => new OrderReqDetailExtend
                        {
                            Id                 = item.Id,
                            OrderReqCode       = item.OrderReqCode.Trim(),
                            Observation        = item.Observation,
                            ProductCode        = item.ProductCode,
                            ProductCodeChanged = item.ProductCodeChanged,
                            Quantity           = item.Quantity,
                            DateProductChanged = item.DateProductChanged,
                            UserUpdated        = item.UserUpdated,
                            ProductName        = item.ProductName, //db.IV00101.FirstOrDefault(a => a.ITEMNMBR.Trim() == item.ProductCode).ITEMDESC.Trim(),
                            ProductNameChanged = (item.ProductCodeChanged != null) ? db.IV00101.FirstOrDefault(a => a.ITEMNMBR.Trim() == item.ProductCodeChanged.ToString()).ITEMDESC.Trim() : string.Empty,
                            QuantityChanged    = item.QuantityChanged,
                            Warehouse          = item.Warehouse
                        }));

                        order.Detail = list;
                    }
                }

                return(order);
            }
            catch (Exception ex)
            {
                return(null);

                Debug.Write("Error " + ex.InnerException.Message);
            }
        }
Esempio n. 10
0
        public IEnumerable <WarehouseProduct> GetListByString(string warehouseCode, string str)
        {
            List <WarehouseProduct> result = new List <WarehouseProduct>();

            try
            {
                str = str.ToUpper();
                using (TSGVLEntities db = new TSGVLEntities())
                {
                    //context.Database.CommandTimeout = 0;

                    //var _result = context.WarehouseProduct.Where(wp => wp.WarehouseCode.Equals(warehouseCode) && wp.Quantity > 0)
                    //              .ToList()
                    //              .Join(context.Products, wp => wp.ProductCode, p => p.Code, (wp, p) => new { wp, p })
                    //              .ToList()
                    //              .Where(f => f.p.Code.ToUpper().Contains(str) || f.p.Description.ToUpper().Contains(str))
                    //              .ToList();

                    //if (_result != null)
                    //{
                    //  result = _result.Select(r => new WarehouseProduct()
                    //  {
                    //    Id = r.wp.Id,
                    //    WarehouseCode = r.wp.WarehouseCode,
                    //    ProductCode = r.wp.ProductCode,
                    //    Quantity = r.wp.Quantity,
                    //    Product = r.p
                    //  })
                    //  .ToList();
                    //}

                    result = (from wp in db.IV00102
                              join w in db.IV40700 on wp.LOCNCODE.Trim() equals w.LOCNCODE.Trim()
                              join p in db.IV00101 on wp.ITEMNMBR.Trim() equals p.ITEMNMBR.Trim()
                              where
                              (p.ITEMNMBR.Trim().ToUpper().Contains(str) || p.ITEMDESC.Trim().ToUpper().Contains(str)) &&
                              wp.LOCNCODE.Trim() == warehouseCode
                              select new WarehouseProduct
                    {
                        Id = 0,
                        WarehouseCode = wp.LOCNCODE.Trim(),
                        ProductCode = wp.ITEMNMBR.Trim(),
                        Quantity = wp.QTYONHND - wp.ATYALLOC,
                        Warehouse = new Warehouse
                        {
                            Id = 0,
                            Code = w.LOCNCODE.Trim(),
                            Name = w.LOCNDSCR.Trim()
                        },
                        Product = new Product
                        {
                            Id = 0,
                            Code = p.ITEMNMBR.Trim(),
                            BarCode = p.ITEMNMBR.Trim(),
                            Description = p.ITEMDESC.Trim()
                        }
                    }).ToList();
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("e " + e.Message);
                return(null);
            }

            return(result);
        }
Esempio n. 11
0
        public WarehouseProduct GetByCodes(string warehouseCode, string productCode)
        {
            try
            {
                WarehouseProduct _warehouseProduct = null;
                using (TSGVLEntities db = new TSGVLEntities())
                {
                    //var _result = context.WarehouseProduct.Join(context.Warehouses, wp => wp.WarehouseCode, w => w.Code,
                    //    (wp, w) => new {wp, w})
                    //    .Join(context.Products, x => x.wp.ProductCode, p => p.Code, (x, p) => new {x, p})
                    //    .Where(cond => cond.x.wp.Quantity > 0)
                    //    .FirstOrDefault(
                    //        result => result.x.wp.WarehouseCode == warehouseCode && result.p.Code.Equals(productCode));



                    //if (_result != null)
                    //{
                    //    _warehouseProduct = new WarehouseProduct()
                    //    {
                    //        Id = _result.x.wp.Id,
                    //        WarehouseCode = _result.x.wp.WarehouseCode,
                    //        ProductCode = _result.x.wp.ProductCode,
                    //        Quantity = _result.x.wp.Quantity,
                    //        Warehouse = _result.x.w,
                    //        Product = _result.p
                    //    };
                    //}



                    _warehouseProduct = (from wp in db.IV00102
                                         join w in db.IV40700 on wp.LOCNCODE.Trim() equals w.LOCNCODE.Trim()
                                         join p in db.IV00101 on wp.ITEMNMBR.Trim() equals p.ITEMNMBR.Trim()
                                         where
                                         wp.ITEMNMBR.Trim() == productCode && wp.LOCNCODE.Trim() == warehouseCode &&
                                         (wp.QTYONHND - wp.ATYALLOC) > 0
                                         select new WarehouseProduct
                    {
                        Id = 0,
                        WarehouseCode = wp.LOCNCODE.Trim(),
                        ProductCode = wp.ITEMNMBR.Trim(),
                        Quantity = wp.QTYONHND - wp.ATYALLOC,
                        Warehouse = new Warehouse
                        {
                            Id = 0,
                            Code = w.LOCNCODE.Trim(),
                            Name = w.LOCNDSCR.Trim()
                        },
                        Product = new Product
                        {
                            Id = 0,
                            Code = p.ITEMNMBR.Trim(),
                            BarCode = p.ITEMNMBR.Trim(),
                            Description = p.ITEMDESC.Trim()
                        }
                    }).FirstOrDefault();
                }

                return(_warehouseProduct);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("e " + e.Message);
                return(null);
            }
        }
        private List <SumIV> GetLotIV00300(string product, string warehouse, decimal qty)
        {
            List <SumIV> sumiv = new List <SumIV>();
            decimal      tot   = 0;

            CultureInfo culture;

            culture = CultureInfo.CreateSpecificCulture("es-PA");
            Thread.CurrentThread.CurrentCulture = culture;

            try
            {
                using (TSGVLEntities db = new TSGVLEntities())
                {
                    db.Database.CommandTimeout = 0;

                    var qry = "SELECT sum(QTYRECVD - QTYSOLD - ATYALLOC) as qtyrecvd, lotnumbr, DATERECD";
                    qry += " FROM IV00300";
                    qry += " WHERE itemnmbr='" + product + "' and locncode='" + warehouse + "' and qtytype='1' and ((QTYRECVD - QTYSOLD - ATYALLOC) > 0)";
                    qry += " GROUP BY itemnmbr, lotnumbr, DATERECD";

                    var result = db.Database.SqlQuery <SumIV>(qry).ToList();

                    decimal sumProduct = result.Sum(x => x.qtyrecvd); // determina si hay cantidad suficiente en los lotes de los productos

                    if (result != null)
                    {
                        //Si la cantidad es igual a la del inventario no se genera linea e documento
                        if (sumProduct == qty)
                        {
                            sumiv.Add(new SumIV()
                            {
                                lotnumbr     = null,
                                qtyrecvd     = 0,
                                DATERECD     = DateTime.Now,
                                IsPositive   = false,
                                EqualQuantiy = true,
                            });
                        }
                        else if (qty > sumProduct) //Si la cantidad es mayor a la existente en inventario genera un ajusta positivo con la diferencia
                        {
                            sumiv.Add(new SumIV()
                            {
                                lotnumbr     = null,
                                qtyrecvd     = qty - sumProduct,
                                DATERECD     = DateTime.Now,
                                IsPositive   = true,
                                EqualQuantiy = false,
                            });
                        }
                        else
                        {
                            foreach (var items in result)
                            {
                                sumiv.Add(new SumIV()
                                {
                                    lotnumbr     = items.lotnumbr.Trim(),
                                    qtyrecvd     = (items.qtyrecvd <= qty) ? items.qtyrecvd : qty,
                                    DATERECD     = items.DATERECD,
                                    IsPositive   = false,
                                    EqualQuantiy = false
                                });


                                if (items.qtyrecvd < qty)
                                {
                                    qty = qty - items.qtyrecvd;
                                }
                                else
                                {
                                    break;
                                }
                            }
                            var firstOrDefault = sumiv.FirstOrDefault();
                            if (firstOrDefault != null && string.IsNullOrEmpty(firstOrDefault.lotnumbr.Trim()))
                            {
                                sumiv = null;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                sumiv = null;
                Debug.Write(@"Error " + ex.Message);
            }


            return(sumiv);
        }