Пример #1
0
        public bool SendThings(User user, Dictionary <List <Thing>, int> chosenThings)
        {
            if (!CheckCanStartTransaction(user))
            {
                return(false);
            }

            List <KeyValuePair <RealmThing, int> > realmThings = new List <KeyValuePair <RealmThing, int> >();

            foreach (KeyValuePair <List <Thing>, int> entry in chosenThings)
            {
                RealmThing realmThing = realmData.ToRealmThing(entry.Key[0]);

                realmThings.Add(new KeyValuePair <RealmThing, int>(realmThing, entry.Value));
            }

            int             id          = ++this.currentUser.lastTransactionId;
            ItemTransaction transaction = new ItemTransaction(id, currentUser, user, chosenThings, realmThings);

            realmData.transactions.Add(transaction);

            this.SendPacket(new StartTransactionPacket {
                transaction = transaction
            });

            Messages.Message("Offer sent, waiting for confirmation", MessageSound.Silent);

            return(true);
        }
        private void HeaderEvents_OnNew(object Sender, ExtenderEventArgs e)
        {
            _transaction = (ItemTransaction)e.get_data();

            //Se cliente da última venda diferente de 0
            if (lastCustomerId != 0)
            {
                double customerPoints = GetCustomerPoints(lastCustomerId); //verifica os pontos que o cliente tem

                if (customerPoints >= 200) //se cliente com mais de 200 pontos
                {
                    //retira 200 pontos ao cliente
                    Discount200Points(lastCustomerId);

                    //criar um TDE no valor de 10€ para o cliente, referência POINTS (se não existir, é criada automaticamente)
                    var transactionTDE = CreateNewDocumentTDE(bsoItemTrans.Transaction.TransSerial, bsoItemTrans.Transaction.DefaultWarehouse, "TDE", 10, lastCustomerId, bsoItemTrans.Transaction.Salesman.SalesmanID, true);

                    //Imprime o TDE (tem de estar configurado na Conf. postos para impressão)
                    BSOItemTransaction bsoItemTransaction = null;
                    bsoItemTransaction = new BSOItemTransaction();
                    bsoItemTransaction.UserPermissions = MyApp.SystemSettings.User;
                    bsoItemTransaction.PrintTransaction(transactionTDE.TransSerial, transactionTDE.TransDocument, transactionTDE.TransDocNumber, RTLPrint16.PrintJobEnum.jobPrint, 1);
                    bsoItemTransaction = null;
                }
            }
            lastCustomerId = 0;
            
        }
Пример #3
0
        public HttpResponseMessage AddItem([FromBody] ItemTransaction item, string api)
        {
            try
            {
                item.name = Core.gameItems[item.itemId].name;
                item.url  = Core.gameItems[item.itemId].url;

                Core.items[item.itemId].Insert(0, item);
                if (Core.items[item.itemId].Count > 10)
                {
                    Core.items[item.itemId].RemoveAt(Core.items[item.itemId].Count - 1);
                }

                Core.lastItems.Insert(0, item);
                if (Core.lastItems.Count >= 100)
                {
                    Core.lastItems.RemoveAt(Core.lastItems.Count - 1);
                }

                Task.Run(() => APIBackend.Database.Insert(string.Format("INSERT INTO transactions (itemid, price, time, amount, enchantment) VALUES('{0}', '{1}', '{2}', '{3}', '{4}')", item.itemId, item.price, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), item.amount, item.enchantment)));


                return(new HttpResponseMessage(HttpStatusCode.OK));
            } catch (Exception ex)
            {
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
        }
Пример #4
0
        public async Task <GetListTransactionResponse> GetListTransactionAsync()
        {
            var response = new GetListTransactionResponse();

            try
            {
                var listTransaction = await _context.Transactions.Take(20).OrderByDescending(t => t.TransDate).ToListAsync();

                foreach (var transaction in listTransaction)
                {
                    var acountItem = new ItemTransaction()
                    {
                        TransType       = transaction.TransType,
                        Amount          = transaction.Amount,
                        TransactionDate = transaction.TransDate,
                        Status          = transaction.Status,
                        Fee             = transaction.Fee
                    };
                    response.Data.ListTransaction.Add(acountItem);
                }
            }
            catch (Exception ex)
            {
                response.Code    = ErrorCode.GetError(ErrorCode.SystemError).Key;
                response.Message = ErrorCode.GetError(ErrorCode.SystemError).Value;
                Logger.Error(ex);
            }
            return(await Task.FromResult(response));
        }
Пример #5
0
        public Transaction CreateDefaultTransaction(ITransaction tx, Product product, Service service)
        {
            var transaction = new Transaction();

            transaction.TransactionId = TransactionId;
            transaction.Name          = "TRS-0001";

            var productTransaction = new ItemTransaction(transaction);

            productTransaction.IndexNo = 0;
            productTransaction.Item    = product;
            transaction.ItemTransactions.Add(productTransaction);

            var productTransactionCharge = new ItemTransactionCharge(productTransaction);

            productTransactionCharge.ChargeCode = "Product-Sell-Code";
            productTransaction.ItemTransactionCharges.Add(productTransactionCharge);

            var serviceTransaction = new ItemTransaction(transaction);

            serviceTransaction.IndexNo = 1;
            serviceTransaction.Item    = service;
            transaction.ItemTransactions.Add(serviceTransaction);

            var serviceTransactionCharge = new ItemTransactionCharge(serviceTransaction);

            serviceTransactionCharge.ChargeCode = "Service-Sell-Code";
            serviceTransaction.ItemTransactionCharges.Add(serviceTransactionCharge);

            transaction.Persist(tx);
            return(transaction);
        }
Пример #6
0
        // Token: 0x0600001A RID: 26 RVA: 0x00002690 File Offset: 0x00000890
        public bool SendThings(User user, Dictionary <List <Thing>, int> chosenThings)
        {
            if (!CheckCanStartTransaction(user))
            {
                return(false);
            }

            var list = new List <KeyValuePair <RealmThing, int> >();

            foreach (var keyValuePair in chosenThings)
            {
                var key = realmData.ToRealmThing(keyValuePair.Key[0]);
                list.Add(new KeyValuePair <RealmThing, int>(key, keyValuePair.Value));
            }

            var user2 = currentUser;
            var num   = user2.lastTransactionId + 1;

            user2.lastTransactionId = num;
            var itemTransaction = new ItemTransaction(num, currentUser, user, chosenThings, list);

            realmData.transactions.Add(itemTransaction);
            SendPacket(new StartTransactionPacket
            {
                transaction = itemTransaction
            });
            Messages.Message("Offer sent, waiting for confirmation", MessageTypeDefOf.SilentInput);
            return(true);
        }
Пример #7
0
        public ActionResult StoreRequest(string[] counts, string[] items, string text, string to)
        {
            var order = new Order()
            {
                From   = db.Employees.FirstOrDefault(i => i.Login == User.Identity.Name),
                To     = db.Employees.FirstOrDefault(i => i.Name == db.Employees.FirstOrDefault(j => j.Name == to).Name),
                Text   = text,
                Date   = DateTime.Now,
                Status = db.Statuses.FirstOrDefault(i => i.Name == "Sent to the warehouse"),
                // Employee = null
            };

            db.Orders.Add(order);

            for (var i = 0; i < items.Length; i++)
            {
                var item = new ItemTransaction()
                {
                    Name  = items[i],
                    Count = int.Parse(counts[i]),
                    Order = order
                };
                db.ItemTransactions.Add(item);
            }


            db.SaveChanges();
            ViewBag.Message = "Успешно добавлено!";
            Writer.Write(order, User.Identity.Name, Server.MapPath("~/Files/"));
            return(View(db));
        }
    private int UpdateBalance(ItemTransaction it)
    {
        HealthFacilityBalance hb = HealthFacilityBalance.GetHealthFacilityBalance(it.HealthFacilityCode, it.Gtin, it.GtinLot);
        int i = -1;

        if (hb != null)
        {
            hb.StockCount = it.TransactionQtyInBaseUom;
            int qty = (int)(hb.Balance - it.TransactionQtyInBaseUom);
            if (qty > 0)
            {
                WastageTransaction(it, qty);
            }
            hb.Balance = it.TransactionQtyInBaseUom;
            i          = HealthFacilityBalance.Update(hb);
        }
        else
        {
            HealthFacilityBalance hbnew = new HealthFacilityBalance();
            hbnew.HealthFacilityCode = it.HealthFacilityCode;
            hbnew.Gtin       = it.Gtin;
            hbnew.LotNumber  = it.GtinLot;
            hbnew.StockCount = it.TransactionQtyInBaseUom;
            hbnew.Balance    = it.TransactionQtyInBaseUom;
            i = HealthFacilityBalance.Insert(hbnew);
        }
        return(i);
    }
Пример #9
0
        public ActionResult IssueReplenishments()
        {
            ItemTransaction itemTransaction = new ItemTransaction();
            Item            item            = new Item();
            int             factoryId       = Convert.ToInt32(Session["factoryId"].ToString());

            foreach (var itemsForSale in AddedReplenishments.Where(f => f.FactoryId == factoryId))
            {
                var CompareItemFactory = db.Items.Where(i => i.ID == itemsForSale.ItemId).FirstOrDefault();
                if (CompareItemFactory.FactoryId == itemsForSale.FactoryId)
                {
                    itemTransaction.ItemID            = itemsForSale.ItemId;
                    itemTransaction.Quantity          = itemsForSale.Quantity;
                    itemTransaction.TransactionTypeId = 1;
                    itemTransaction.EffectiveDate     = DateTime.Now;
                    db.ItemTransactions.Add(itemTransaction);
                    db.SaveChanges();

                    var changedRec = db.Items.Where(i => i.ID == itemsForSale.ItemId).FirstOrDefault();
                    changedRec.DaySellingQty   = changedRec.DaySellingQty + itemsForSale.Quantity;
                    db.Entry(changedRec).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
            AddedReplenishments.RemoveAll(f => f.FactoryId == factoryId);
            return(RedirectToAction("Replenishments"));
        }
Пример #10
0
        public ActionResult DeleteConfirmed(int id)
        {
            ItemTransaction itemTransaction = db.ItemTransactions.Find(id);

            db.ItemTransactions.Remove(itemTransaction);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        /// <summary>
        /// Allocate stock
        /// </summary>
        /// <param name="facility">The facility in which to allocate stock</param>
        /// <param name="gtin">The GTIN of the stock to be allocated</param>
        /// <param name="lot">The lot number of stock to be allocated</param>
        /// <param name="qty">The amount of stock to be allocated</param>
        /// <returns>The <see cref="T:GIIS.DataLayer.ItemTransaction"/> representing the allocation</returns>
        public ItemTransaction Allocate(HealthFacility facility, String gtin, String lot, Int32 qty, TransferOrderDetail orderLine, Int32 modifiedBy)
        {
            // Sanity check
            if (facility == null)
            {
                throw new ArgumentNullException("facility");
            }
            else if (String.IsNullOrEmpty(gtin))
            {
                throw new ArgumentNullException("gtin");
            }
            else if (String.IsNullOrEmpty(lot))
            {
                throw new ArgumentNullException("lot");
            }

            // Adjustment type
            TransactionType allocationType = TransactionType.GetTransactionTypeList().FirstOrDefault(o => o.Name == "Allocation");

            if (allocationType == null)
            {
                throw new InvalidOperationException("Cannot find transaction type 'Allocation'");
            }

            // Get current balance and ensure we have enough to do the balance
            var balance = this.GetCurrentBalance(facility, gtin, lot);

            //if (qty > 0 && balance.Balance < qty)
            //    throw new InvalidOperationException(String.Format("Cannot de-allocate more stock than is available (Request: {0},  Available:{1}, GTIN: {2})", qty, balance, ItemLot.GetItemLotByGtin(gtin).ItemObject.Name));
            //else if (qty < 0 && balance.Allocated < -qty)
            //    throw new InvalidOperationException("Cannot de-allocate more stock than is currently allocated");

            // Create an item transaction
            ItemTransaction retVal = new ItemTransaction()
            {
                Gtin                                                              = gtin,
                GtinLot                                                           = lot,
                HealthFacilityCode                                                = facility.Code,
                ModifiedBy                                                        = modifiedBy,
                ModifiedOn                                                        = DateTime.Now,
                RefId                                                             = orderLine != null?orderLine.OrderNum.ToString() : null,
                                                          RefIdNum                = orderLine != null ? orderLine.OrderDetailNum : 0,
                                                          TransactionDate         = DateTime.Now,
                                                          TransactionQtyInBaseUom = qty,
                                                          TransactionTypeId       = allocationType.Id
            };

            // Update the balance
            //balance.Balance -= qty;
            balance.Allocated += qty;

            // Save
            HealthFacilityBalance.Update(balance);
            retVal.Id = ItemTransaction.Insert(retVal);

            return(retVal);
        }
Пример #12
0
        /// <summary>
        /// Adiciona um detalhe (linha) à transação
        /// </summary>
        /// <param name="trans"></param>
        /// <param name="itemId"></param>
        /// <param name="qty"></param>
        /// <param name="unitOfMeasureId"></param>
        /// <param name="unitPrice"></param>
        /// <param name="taxPercent"></param>
        /// <param name="whareHouseId"></param>
        private ItemTransactionDetail TransAddDetail(ItemTransaction trans, Item item, double qty, string unitOfMeasureId, double unitPrice, double taxPercent, short whareHouseId,
                                     short colorId, short sizeId,
                                     string serialNumberPropId, string serialNumberPropValue,
                                     string lotId, string lotDescription, DateTime lotExpDate, short lotReturnWeek, short lotReturnYear, short lotEditionId)
        {

            var doc = MyApp.SystemSettings.WorkstationInfo.Document[trans.TransDocument];

            ItemTransactionDetail transDetail = new ItemTransactionDetail();
            transDetail.BaseCurrency = MyApp.SystemSettings.BaseCurrency;
            transDetail.ItemID = item.ItemID;
            transDetail.CreateDate = trans.CreateDate;
            transDetail.CreateTime = trans.CreateTime;
            transDetail.ActualDeliveryDate = trans.CreateDate;
            //Utilizar a descrição do artigo, ou uma descrição personalizada
            transDetail.Description = item.Description;
            // definir a quantidade
            transDetail.Quantity = qty;
            // Preço unitário. NOTA: Ver a diferença se o documento for com impostos incluidos!
            if (trans.TransactionTaxIncluded)
                transDetail.TaxIncludedPrice = unitPrice;
            else
                transDetail.UnitPrice = unitPrice;
            // Definir a lista de unidades
            transDetail.UnitList = item.UnitList;
            // Definir a unidade de venda/compra
            transDetail.SetUnitOfSaleID(unitOfMeasureId);
            //Definir os impostos
            short TaxGroupId = MyApp.DSOCache.TaxesProvider.GetTaxableGroupIDFromTaxRate(taxPercent, MyApp.SystemSettings.SystemInfo.DefaultCountryID, MyApp.SystemSettings.SystemInfo.TaxRegionID);
            transDetail.TaxableGroupID = TaxGroupId;
            //*** Uncomment for discout
            //transDetail.DiscountPercent = 10
            //
            // Se o Armazém não existir, utilizar o default que se encontra no documento.
            if (MyApp.DSOCache.WarehouseProvider.WarehouseExists(whareHouseId))
                transDetail.WarehouseID = whareHouseId;
            else
                transDetail.WarehouseID = doc.Defaults.Warehouse;
            // Identificador da linha
            transDetail.LineItemID = trans.Details.Count + 1;
            //
            //*** Uncomment to provide line totals
            //.TotalGrossAmount =        'Line Gross amount
            //.TotalNetAmount =          'Net Gross amount
            //
            //Definir o último preço de compra
            if (doc.TransDocType == DocumentTypeEnum.dcTypePurchase)
            {
                transDetail.ItemExtraInfo.ItemLastCostTaxIncludedPrice = item.SalePrice[0].TaxIncludedPrice;
                transDetail.ItemExtraInfo.ItemLastCostUnitPrice = item.SalePrice[0].UnitPrice;
            }

            item = null;

            return transDetail;
        }
Пример #13
0
        /// <summary>
        /// Assumes quantity already validated
        /// </summary>
        /// <param name="itemsToQuantity"></param>
        public void AddNewTransaction(Dictionary <Item, int> itemsToQuantity)
        {
            var now = DateTime.Now;
            //creating transaction
            var newTransaction = new Transaction()
            {
                TimeOfTransaction = now
            };

            using (var dbContext = new InventoryContext())
            {
                dbContext.Transactions.Add(newTransaction);
                dbContext.SaveChanges();
            }

            using (var dbContext = new InventoryContext())
            {
                foreach (KeyValuePair <Item, int> i_q in itemsToQuantity)
                {
                    var newi_t = new ItemTransaction()
                    {
                        Item        = dbContext.Items.Where(i => i.ItemID == i_q.Key.ItemID).First(),
                        Transaction = dbContext.Transactions
                                      .Where(t => t.TransactionID == newTransaction.TransactionID)
                                      .First(),
                        Quantity = i_q.Value
                    };
                    dbContext.ItemTransactions.Add(newi_t);
                }

                dbContext.SaveChanges();
            }

            //setting totalValue
            decimal totalValue = 0m;

            foreach (KeyValuePair <Item, int> i_q in itemsToQuantity)
            {
                //totalValue += item.RRP * itemTransaction.Quantity
                totalValue += i_q.Key.RRP * i_q.Value;
            }

            //setting new total value
            using (var dbContext = new InventoryContext())
            {
                var targetTransaction = dbContext.Transactions
                                        .Where(t => t.TransactionID == newTransaction.TransactionID)
                                        .First();
                targetTransaction.TotalValue = totalValue;
                dbContext.SaveChanges();
            }

            //Reduce QuantityStockLevel of items by itemsToQuantity.value
            ReduceItemQuantity(itemsToQuantity);
        }
        /// <summary>
        /// Performs a stock count for the specified <paramref name="gtin"/> at <paramref name="facility"/>
        /// </summary>
        /// <param name="facility">The facility in which the count occurred</param>
        /// <param name="gtin">The GTIN of the item being counted</param>
        /// <param name="lot">The lot number of the item being counted</param>
        /// <param name="count">The count of items</param>
        /// <returns>The <see cref="T:GIIS.DataLayer.ItemTransaction"/> representing the count</returns>
        public ItemTransaction StockCount(HealthFacility facility, String gtin, String lot, UInt32 count, Int32 modifiedBy, DateTime date)
        {
            // Validate
            if (facility == null)
            {
                throw new ArgumentNullException("facility");
            }
            else if (String.IsNullOrEmpty(gtin))
            {
                throw new ArgumentNullException("gtin");
            }
            else if (String.IsNullOrEmpty(lot))
            {
                throw new ArgumentNullException("lot");
            }

            // Stock Count
            TransactionType stockCountType = TransactionType.GetTransactionTypeList().FirstOrDefault(o => o.Name == "Stock Count");

            if (stockCountType == null)
            {
                throw new InvalidOperationException("Cannot find transaction type 'Stock Count'");
            }

            // Balance
            var balance = this.GetCurrentBalance(facility, gtin, lot);

            // Now we want to create transaction for count operation
            ItemTransaction retVal = new ItemTransaction()
            {
                Gtin                    = gtin,
                GtinLot                 = lot,
                HealthFacilityCode      = facility.Code,
                ModifiedBy              = modifiedBy,
                ModifiedOn              = DateTime.Now,
                TransactionDate         = date,
                TransactionQtyInBaseUom = count,
                TransactionTypeId       = stockCountType.Id
            };

            // Overwrite the values
            int qty = (int)(balance.Balance - count);

            if (qty > 0)
            {
                Adjust(facility, gtin, lot, qty, AdjustmentReason.GetAdjustmentReasonById(99), modifiedBy, date);
            }
            balance.StockCount = balance.Balance = count;

            // Save
            HealthFacilityBalance.Update(balance);
            int i = ItemTransaction.Insert(retVal);

            return(ItemTransaction.GetItemTransactionById(i));
        }
Пример #15
0
        /// <summary>
        /// Needs dictionary that
        /// Maps Item to its quntity needed
        /// </summary>
        /// <param name="itemToQuantity"></param>
        /// <returns></returns>
        public static Transaction CreateNewTransaction(Dictionary <Item, int> itemToQuantity)
        {
            using (var dbContext = new InventoryContext())
            {
                //converting items to item obj from dbContext
                //otherwise it will create new item in db
                Dictionary <Item, int> fixedItemToQuantity = new Dictionary <Item, int>();
                IQueryable <Item>      allItemsFromDB      = from item in dbContext.Items
                                                             select item;

                foreach (KeyValuePair <Item, int> itemQuantity in itemToQuantity)
                {
                    //searches all items (from above)
                    //matches the current keyvaluepairs item(key) to one from all items
                    //then add this to fixedItemToQuantity with quanity from itemToQuantity
                    Item itemFromDB = (from item in allItemsFromDB
                                       where item.ItemID == itemQuantity.Key.ItemID
                                       select item).First();
                    fixedItemToQuantity.Add(itemFromDB, itemQuantity.Value);
                }

                //sets current dataTime as transactions TimeOfTransaction
                var newTransaction = new Transaction()
                {
                    TimeOfTransaction = DateTime.Now
                };

                decimal itemTotValue = 0;

                //create many instances of itemTransaction and adds to db
                foreach (KeyValuePair <Item, int> itemQuantity in fixedItemToQuantity)
                {
                    //remove this item from stock
                    //add new I_T to ItemTransaction(tbl) and to the new transaction obj

                    ItemTransaction tempItemTransaction = new ItemTransaction
                    {
                        Transaction = newTransaction,
                        Item        = itemQuantity.Key,
                        Quantity    = itemQuantity.Value
                    };

                    dbContext.ItemTransactions.Add(tempItemTransaction);


                    //adding value of each Item * Quantity of item
                    itemTotValue += (itemQuantity.Key.RRP * itemQuantity.Value);
                }
                newTransaction.TotalValue = itemTotValue;
                dbContext.SaveChanges();

                return(newTransaction);
            }
        }
Пример #16
0
 public ActionResult Edit([Bind(Include = "ID,ItemID,Quantity,TransactionTypeId,EffectiveDate")] ItemTransaction itemTransaction)
 {
     if (ModelState.IsValid)
     {
         db.Entry(itemTransaction).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ItemID            = new SelectList(db.Items, "ID", "ItemName", itemTransaction.ItemID);
     ViewBag.TransactionTypeId = new SelectList(db.TransactionTypes, "ID", "TransactionType1", itemTransaction.TransactionTypeId);
     return(View(itemTransaction));
 }
    protected void btnUpdateBalance_Click(object sender, EventArgs e)
    {
        try
        {
            int    hfId  = CurrentEnvironment.LoggedUser.HealthFacilityId;
            string _hfId = (string)Request.QueryString["hfId"];
            if (!String.IsNullOrEmpty(_hfId))
            {
                int.TryParse(_hfId, out hfId);
            }

            foreach (GridViewRow gr in gvHealthFacilityBalance.Rows)
            {
                if (gr.RowType == DataControlRowType.DataRow)
                {
                    TextBox txtQty = (TextBox)gr.FindControl("txtQty");
                    if (!string.IsNullOrEmpty(txtQty.Text))
                    {
                        UInt32 qty   = UInt32.Parse(txtQty.Text.Trim());
                        string gtin  = gr.Cells[1].Text;
                        string lotno = gr.Cells[3].Text;

                        DateTime date = DateTime.ParseExact(txtDate.Text, ConfigurationDate.GetConfigurationDateById(int.Parse(Configuration.GetConfigurationByName("DateFormat").Value)).DateFormat.ToString(), CultureInfo.CurrentCulture);

                        HealthFacility       hf  = HealthFacility.GetHealthFacilityById(hfId);
                        StockManagementLogic sml = new StockManagementLogic();
                        ItemTransaction      st  = sml.StockCount(hf, gtin, lotno, qty, CurrentEnvironment.LoggedUser.Id, date);
                        int i = st.Id;

                        if (i > 0)
                        {
                            lblSuccess.Visible = true;
                            lblError.Visible   = false;
                        }
                        else
                        {
                            lblSuccess.Visible = false;
                            lblError.Visible   = true;
                        }
                    }
                }
            }

            odsHealthFacilityBalance.SelectParameters.Clear();
            odsHealthFacilityBalance.SelectParameters.Add("id", hfId.ToString());
            odsHealthFacilityBalance.DataBind();
        }
        catch (Exception ex)
        {
            lblSuccess.Visible = false;
            lblError.Visible   = true;
        }
    }
Пример #18
0
 // GET: Common/Item/Delete/5
 public ActionResult Delete(int? id)
 {
     if (id == null)
     {
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     }
     Item item = new ItemTransaction().GetById(id);
     if (item == null)
     {
         return HttpNotFound();
     }
     return View(item);
 }
        /// <summary>
        /// Updates Vaccination Event with given id <paramref name="id"/> with all the other parameters.
        /// </summary>
        /// <param name="id">The id of the vaccination event that is being updated </param>
        /// <param name="lotId">The vaccine lot used for this vaccination event</param>
        /// <param name="vaccinationdate">The vaccination date for this vaccination event</param>
        /// <param name="hfId">The health facility where this vaccination event happened</param>
        /// <param name="done">Status of the vaccination event</param>
        /// <param name="nonvaccreasonId">The reason for not vaccinating for this vaccination event</param>
        /// <returns></returns>
        public VaccinationEvent UpdateVaccinationEvent(int id, int lotId, DateTime vaccinationdate, int hfId, bool done, int nonvaccreasonId, int userId, DateTime modifiedOn)
        {
            if (id <= 0)
            {
                throw new ArgumentException("id");
            }
            if (hfId <= 0)
            {
                throw new ArgumentException("hfId");
            }
            if (userId <= 0)
            {
                throw new ArgumentException("userId");
            }

            VaccinationEvent o = VaccinationEvent.GetVaccinationEventById(id);

            o.VaccineLotId = lotId;

            o.VaccinationDate   = vaccinationdate;
            o.HealthFacilityId  = hfId;
            o.VaccinationStatus = done;
            if (done)
            {
                o.NonvaccinationReasonId = 0;
            }
            else
            {
                o.NonvaccinationReasonId = nonvaccreasonId;
                o.VaccineLotId           = 0;
            }
            o.ModifiedOn = modifiedOn;
            o.ModifiedBy = userId;

            int i = VaccinationEvent.Update(o);

            if (i > 0)
            {
                if (done || o.NonVaccinationReason.KeepChildDue == false)
                {
                    RescheduleNextDose(o, false);
                }

                if (o.VaccineLotId > 0)
                {
                    StockManagementLogic sml = new StockManagementLogic();
                    ItemTransaction      it  = sml.Vaccinate(o.HealthFacility, o);
                }
            }
            return(o);
        }
    private int UpdateBalance(ItemTransaction it, int qty)
    {
        HealthFacilityBalance hb = HealthFacilityBalance.GetHealthFacilityBalance(it.HealthFacilityCode, it.Gtin, it.GtinLot);
        int i = -1;

        if (hb != null)
        {
            hb.StockCount += qty; //??
            hb.Balance    += qty;
            WastageTransaction(it, qty);
            i = HealthFacilityBalance.Update(hb);
        }
        return(i);
    }
Пример #21
0
        // GET: ItemTransactions/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ItemTransaction itemTransaction = db.ItemTransactions.Find(id);

            if (itemTransaction == null)
            {
                return(HttpNotFound());
            }
            return(View(itemTransaction));
        }
Пример #22
0
        // GET: ItemTransactions/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ItemTransaction itemTransaction = db.ItemTransactions.Find(id);

            if (itemTransaction == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ItemID            = new SelectList(db.Items, "ID", "ItemName", itemTransaction.ItemID);
            ViewBag.TransactionTypeId = new SelectList(db.TransactionTypes, "ID", "TransactionType1", itemTransaction.TransactionTypeId);
            return(View(itemTransaction));
        }
Пример #23
0
        public static void updateItemTransReceived(InventorySysDBEntities cntx, string deptID, DisbursementDetail d)
        {
            var q = from x in cntx.ItemTransactions where x.Item_ID == d.Item_ID select x;
            var p = from x in cntx.Items where x.Item_ID == d.Item_ID select x;
            List <ItemTransaction> ItList = q.ToList();
            ItemTransaction        it     = new ItemTransaction();
            Item i = p.First();

            it.Item_ID     = d.Item_ID;
            it.Quantity    = 0 - d.Quantity;
            it.Balance     = ItList.Last().Balance - d.Quantity;
            it.Reason      = "Sent to " + deptID;
            it.Update_Date = DateTime.Now;
            cntx.ItemTransactions.Add(it);
            i.Inventory = ItList.Last().Balance - d.Quantity;
            cntx.SaveChanges();
        }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        try
        {
            if (Page.IsValid)
            {
                int userId = CurrentEnvironment.LoggedUser.Id;
                //check for duplicates
                // ItemTransaction st = StockManagementLogic.StockCount(CurrentEnvironment.LoggedUser.HealthFacility.Code, ddlGtin.SelectedValue, ddlItemLot.SelectedValue, txtQuantity.Text, CurrentEnvironment.LoggedUser.Id);
                StockManagementLogic sml = new StockManagementLogic();
                UInt32 qty = UInt32.Parse(txtQuantity.Text);

                DateTime        date = DateTime.ParseExact(txtStockCountDate.Text, ConfigurationDate.GetConfigurationDateById(int.Parse(Configuration.GetConfigurationByName("DateFormat").Value)).DateFormat.ToString(), CultureInfo.CurrentCulture);
                ItemTransaction st   = sml.StockCount(CurrentEnvironment.LoggedUser.HealthFacility, ddlGtin.SelectedValue, ddlItemLot.SelectedValue, qty, CurrentEnvironment.LoggedUser.Id, date);

                int i = st.Id; //  ItemTransaction.Insert(o);


                if (i > 0)
                {
                    lblSuccess.Visible = true;
                    lblWarning.Visible = false;
                    lblError.Visible   = false;
                    odsTransactionLines.SelectParameters.Clear();
                    odsTransactionLines.SelectParameters.Add("i", i.ToString());
                    odsTransactionLines.DataBind();

                    ClearControls(this);
                }
                else
                {
                    lblSuccess.Visible = false;
                    lblWarning.Visible = false;
                    lblError.Visible   = true;
                }
            }
        }
        catch (Exception ex)
        {
            lblSuccess.Visible = false;
            lblWarning.Visible = false;
            lblError.Visible   = true;
        }
    }
Пример #25
0
        private void CreateTransaction(Company company)
        {
            var transType = (ItemTransaction.TransactionType)TransactionType.SelectedIndex;

            NewTransaction = new ItemTransaction
            {
                Company             = company,
                Price               = Price,
                ItemTransactionType = transType,
                TransactionDate     = TransactionDate.DisplayDate,
                Quantity            = Quantity
            };

            if (transType == ItemTransaction.TransactionType.Buy)
            {
                company.IsSourceCompany = true;
                company.Items.Add(_item);
            }
        }
        public RedirectToRouteResult Reject(string requestid, string itemcode)
        {
            StockAdjustmentDetail stockadjdet = repo.GetStockAdjustmentDetailById(requestid, itemcode);

            using (IItemTransactionRepository itemRepo = new ItemTransactionRepositoryImpl(new SSISdbEntities()))
            {
                ItemTransaction itemTrans = new ItemTransaction
                {
                    DocumentRefNo   = requestid,
                    TransDateTime   = DateTime.Now,
                    ItemCode        = itemcode,
                    TransactionType = "Reject Stock Adjustment",
                    Quantity        = stockadjdet.ItemQuantity,
                    Amount          = stockadjdet.Amount,
                    UnitCost        = stockadjdet.Amount / stockadjdet.ItemQuantity
                };
                itemRepo.InsertItemTransaction(itemTrans);
                itemRepo.Save();
            }
            stockadjdet.Status             = "Rejected";
            stockadjdet.NotificationStatus = "Unread";
            repo.UpdateStockAdjustmentDetail(stockadjdet);
            repo.Save();

            using (SSISdbEntities m = new SSISdbEntities())
            {
                StockAdjustmentHeader sjh = m.StockAdjustmentHeaders.Where(x => x.RequestId == requestid).FirstOrDefault();
                Employee emp = m.Employees.Where(x => x.EmployeeID == sjh.Requestor).FirstOrDefault();

                // Send to Employee
                string title   = "[LogicUniversity] Stock Adjustment Rejected: " + requestid;
                string message = "Item Code: " + itemcode + " has been rejected.";

                // Send to Employee
                CommonLogic.Email.sendEmail("*****@*****.**", emp.EmployeeEmail, title, message);
            }



            Session["StoreInventoryTabIndex"] = "1";
            Session["StockAdjPage"]           = 2;
            return(RedirectToAction("Inventory", "Store", new { area = "" }));
        }
    private void WastageTransaction(ItemTransaction o, int diff)
    {
        ItemTransaction it = new ItemTransaction();

        it.TransactionDate         = o.TransactionDate;
        it.Gtin                    = o.Gtin;
        it.GtinLot                 = o.GtinLot;
        it.HealthFacilityCode      = o.HealthFacilityCode;
        it.TransactionTypeId       = 4; //Adjustment
        it.RefId                   = o.Id.ToString();
        it.TransactionQtyInBaseUom = diff;
        it.Notes                   = o.Notes;
        it.ModifiedOn              = DateTime.Now;
        it.ModifiedBy              = CurrentEnvironment.LoggedUser.Id;
        it.AdjustmentId            = 99; //From stock count - open vial wastage

        int i = ItemTransaction.Insert(it);
        //do we need to update used column?
    }
Пример #28
0
        public bool ReceivePurchaseOrder(string orderid, List <int> recNumberList, string remark, string recStaff)
        {
            try
            {
                var       q  = from x in context.OrderLists where x.Order_ID == orderid select x;
                OrderList ol = q.First();
                var       p  = from x in context.OrderListDetails where x.Order_ID == orderid select x;
                List <OrderListDetail> old = p.ToList();
                for (int i = 0; i < old.Count; i++)
                {
                    string ItemID = old[i].Item_ID;
                    old[i].Received_Qty = recNumberList[i];
                    ItemTransaction it = new ItemTransaction();
                    it.Item_ID     = old[i].Item_ID;
                    it.Update_Date = DateTime.Now;
                    it.Reason      = "Received from " + ol.Supplier_ID;
                    it.Quantity    = recNumberList[i];

                    var r = from x in context.ItemTransactions where x.Item_ID == ItemID select x;

                    List <ItemTransaction> itList = r.ToList();
                    it.Balance = itList.Last().Balance;
                    it.Balance = it.Balance + recNumberList[i];
                    var o = from x in context.Items where x.Item_ID == ItemID select x;
                    o.First().Inventory = it.Balance;
                    context.ItemTransactions.Add(it);
                }
                ol.Status = "Received";
                if (remark != null)
                {
                    ol.Remark = remark;
                }
                ol.Finish_Date = DateTime.Now;
                ol.RecStaff_ID = recStaff;
                context.SaveChanges();
                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Пример #29
0
    private int UpdateBalance(ItemTransaction it, int qty)
    {
        HealthFacilityBalance hb = HealthFacilityBalance.GetHealthFacilityBalance(it.HealthFacilityCode, it.Gtin, it.GtinLot);
        int i = -1;

        if (hb != null)
        {
            if (it.AdjustmentObject.Positive)
            {
                hb.Balance += qty;
            }
            else
            {
                hb.Balance -= qty;
                hb.Wasted  += qty;
            }
            i = HealthFacilityBalance.Update(hb);
        }
        return(i);
    }
Пример #30
0
        private void TransAddDetail(ItemTransaction trans, Item item, double qty, string unitOfMeasureId, double unitPrice, double taxPercent, short whareHouseId)
        {
            ItemTransactionDetail transDetail = new ItemTransactionDetail();

            transDetail.BaseCurrency       = systemSettings.BaseCurrency;
            transDetail.ItemID             = item.ItemID;
            transDetail.CreateDate         = trans.CreateDate;
            transDetail.CreateTime         = trans.CreateTime;
            transDetail.ActualDeliveryDate = trans.CreateDate;
            //Utilizar a descrição do artigo, ou uma descrição personalizada
            transDetail.Description = item.Description;
            // definir a quantidade
            transDetail.Quantity = qty;
            // Preço unitário. NOTA: Ver a diferença se o documento for com impostos incluidos!
            if (trans.TransactionTaxIncluded)
            {
                transDetail.TaxIncludedPrice = unitPrice;
            }
            else
            {
                transDetail.UnitPrice = unitPrice;
            }
            // Definir a lista de unidades
            transDetail.UnitList = item.UnitList;
            // Definir a unidade de venda/compra
            transDetail.SetUnitOfSaleID(unitOfMeasureId);
            //Definir os impostos
            short TaxGroupId = dsoCache.TaxesProvider.GetTaxableGroupIDFromTaxRate(taxPercent, systemSettings.SystemInfo.DefaultCountryID, systemSettings.SystemInfo.TaxRegionID);

            transDetail.TaxableGroupID = TaxGroupId;
            //armazém
            transDetail.WarehouseID = whareHouseId;
            // Identificador da linha
            transDetail.LineItemID = trans.Details.Count + 1;
            item = null;
            trans.Details.Add(transDetail);
        }
        public ActionResult StockTakeUpdate(StockTakeList[] arr, string[] arr1)
        {
            try
            {
                int count = 0;

                string transType          = "Stock Take";
                List <StockTakeList> list = new List <StockTakeList>();
                for (int i = 0; i < arr.Length; i++)
                {
                    list.Add(arr[i]);
                }

                using (SSISdbEntities m = new SSISdbEntities())
                {
                    int    itemTransCount    = m.StockTakeHeaders.Count() + 1;
                    string itemTransactionId = CommonLogic.SerialNo(itemTransCount, "ST");

                    // Update StockTakeHeader Table
                    StockTakeHeader stockTakeHeader = new StockTakeHeader();
                    stockTakeHeader.StockTakeID     = itemTransactionId;
                    stockTakeHeader.Date            = DateTime.Now;
                    stockTakeHeader.TransactionType = transType;
                    m.StockTakeHeaders.Add(stockTakeHeader);
                    m.SaveChanges();

                    foreach (StockTakeList l in list)
                    {
                        Item   item        = m.Items.Where(x => x.ItemCode == l.ItemCode).FirstOrDefault();
                        int    itemQty     = Convert.ToInt32(arr1[count]);
                        float  avgCost     = item.AvgUnitCost;
                        int    qtyOnHand   = item.Quantity;
                        int    qtyAdjusted = itemQty - qtyOnHand;
                        float  totalAmt    = avgCost * (float)qtyAdjusted;
                        string itemcode    = l.ItemCode;

                        if (qtyAdjusted != 0)
                        {
                            // Update Item Table
                            item.Quantity = itemQty;

                            // Update ItemTransaction Table
                            ItemTransaction itemTransaction = new ItemTransaction();
                            itemTransaction.TransDateTime   = DateTime.Now;
                            itemTransaction.DocumentRefNo   = itemTransactionId;
                            itemTransaction.ItemCode        = itemcode;
                            itemTransaction.TransactionType = transType;
                            itemTransaction.Quantity        = qtyAdjusted;
                            itemTransaction.UnitCost        = avgCost;
                            itemTransaction.Amount          = totalAmt;
                            m.ItemTransactions.Add(itemTransaction);
                            m.SaveChanges();
                        }

                        // Update StockTakeDetails Table
                        StockTakeDetail stockTakeDetail = new StockTakeDetail();
                        stockTakeDetail.StockTakeID      = itemTransactionId;
                        stockTakeDetail.ItemCode         = itemcode;
                        stockTakeDetail.QuantityOnHand   = qtyOnHand;
                        stockTakeDetail.QuantityCounted  = itemQty;
                        stockTakeDetail.QuantityAdjusted = qtyAdjusted;
                        m.StockTakeDetails.Add(stockTakeDetail);
                        m.SaveChanges();
                        count++;
                    }
                }
            }
            catch (FormatException fe)
            {
                Debug.WriteLine(fe.Message);
            }catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }

            return(View());
        }