Пример #1
0
        public ActionResult ManageTransfer([Bind(Include = "SiteTransID,UserID,Tdate,SiteID,ItemID,QtyAdded,QtyRemoved,ToSiteID,Remarks")] SiteTransasction siteTransaction, int OriginalQty)
        {
            siteTransaction.Tdate = DateTime.Now;


            var getStock      = db.FirstOrDefault <SiteCurrentStock>("Select SiteStockID,Qty From SiteCurrentStock Where  SiteID=@0 and ItemID =@1", siteTransaction.SiteID, siteTransaction.ItemID);
            var TransferStock = db.FirstOrDefault <SiteCurrentStock>("Select SiteStockID,Qty From SiteCurrentStock Where  SiteID=@0 and ItemID =@1", siteTransaction.ToSiteID, siteTransaction.ItemID);

            using (var transaction = db.GetTransaction())
            {
                try
                {
                    if (getStock != null)
                    {
                        if (siteTransaction.SiteTransID > 0)
                        {
                            db.Update("SiteCurrentStock", "SiteStockID", new { Qty = getStock.Qty + OriginalQty - siteTransaction.QtyRemoved }, getStock.SiteStockID);
                        }
                        else
                        {
                            db.Update("SiteCurrentStock", "SiteStockID", new { Qty = getStock.Qty - siteTransaction.QtyRemoved }, getStock.SiteStockID);
                        }

                        if (TransferStock != null)
                        {
                            if (siteTransaction.SiteTransID > 0)
                            {
                                db.Update("SiteCurrentStock", "SiteStockID", new { Qty = TransferStock.Qty - OriginalQty + siteTransaction.QtyRemoved }, TransferStock.SiteStockID);
                            }
                            else
                            {
                                db.Update("SiteCurrentStock", "SiteStockID", new { Qty = TransferStock.Qty + siteTransaction.QtyRemoved }, TransferStock.SiteStockID);
                            }
                        }
                        else
                        {
                            var item = new SiteCurrentStock {
                                SiteID = siteTransaction.ToSiteID, ItemID = siteTransaction.ItemID, Qty = siteTransaction.QtyRemoved
                            };
                            db.Save(item);
                        }
                        base.BaseSave <SiteTransasction>(siteTransaction, siteTransaction.SiteTransID > 0);
                        transaction.Complete();
                    }
                }
                catch (Exception ex)
                {
                    db.AbortTransaction();
                    throw ex;
                }
            }

            return(RedirectToAction("ManageTransfer"));
        }
Пример #2
0
        public ActionResult Manage([Bind(Include = "SiteTransID,UserID,Tdate,SiteID,SupplierID,Path,UploadedFile,ItemID,Price,QtyAdded,Remarks,QtyRemoved")] ChallanImg siteTransaction, int OriginalQty)
        {
            siteTransaction.Tdate = DateTime.Now;
            var currentStock = db.SingleOrDefault <SiteCurrentStock>("select * from SiteCurrentStock where SiteID = @0 and ItemID= @1", siteTransaction.SiteID, siteTransaction.ItemID);

            using (var transaction = db.GetTransaction())
            {
                try
                {
                    //on 14 Nov 2017 stanley said suppliers would make their own bills, hence the below was commented out
                    //var sup = db.FirstOrDefault<SupplierBill>("Select SBillID,SupplierID from SupplierBill Where SupplierID = @0", siteTransaction.SupplierID);
                    //var getSupBill = db.FirstOrDefault<SupplierBillDetail>("Select SBillDetailID,SBillID,ItemID,Qty,UnitPrice,QtyRec from SupplierBillDetail Where ItemID= @0 and SBillID = @1", siteTransaction.ItemID, sup.SBillID);
                    //if (siteTransaction.SiteTransID>0)
                    //{
                    //    if (getSupBill != null)
                    //    {
                    //        db.Update("SupplierBillDetail", "SBillDetailID", new { QtyRec =  siteTransaction.QtyAdded + getSupBill.QtyRec - OriginalQty }, getSupBill.SBillDetailID);
                    //        siteTransaction.SBillDetailID = getSupBill.SBillDetailID;
                    //    }
                    //}
                    //else
                    //{
                    //  if (getSupBill != null)
                    //    {
                    //        if (getSupBill.Qty != getSupBill.QtyRec)
                    //        {
                    //            db.Update("SupplierBillDetail", "SBillDetailID", new { QtyRec =siteTransaction.QtyAdded+getSupBill.QtyRec}, getSupBill.SBillDetailID);
                    //        }

                    //        siteTransaction.SBillDetailID = getSupBill.SBillDetailID;
                    //    }

                    //}


                    if (currentStock == null)    //this is the first purchase of the item at thissite
                    {
                        // var getSupBill = db.FirstOrDefault<SupplierBillDetail>("SBillDetailID,SBillID,ItemID,Qty,UnitPrice,QtyRec","Supplier as sp inner join SupplierBillDetail as sbd on sp.SBillID = sbd.SBillID where Supplier Where ItemID= @0 and SupplierID=@0",siteTransaction.ItemID,siteTransaction.SupplierID);


                        var item = new SiteCurrentStock {
                            SiteID = siteTransaction.SiteID, ItemID = siteTransaction.ItemID, Qty = siteTransaction.QtyAdded
                        };
                        db.Save(item);
                    }
                    else
                    {
                        if (siteTransaction.SiteTransID > 0)     //Edit mode
                        {
                            db.Update("SiteCurrentStock", "SiteStockID", new { Qty = currentStock.Qty - OriginalQty + siteTransaction.QtyAdded }, currentStock.SiteStockID);
                        }
                        else
                        {
                            db.Update("SiteCurrentStock", "SiteStockID", new { Qty = currentStock.Qty + siteTransaction.QtyAdded }, currentStock.SiteStockID);
                        }
                    }


                    SiteTransasction res = new SiteTransasction
                    {
                        ItemID      = siteTransaction.ItemID,
                        Price       = siteTransaction.Price,
                        QtyAdded    = siteTransaction.QtyAdded,
                        QtyRemoved  = siteTransaction.QtyRemoved,
                        Remarks     = siteTransaction.Remarks,
                        SiteID      = siteTransaction.SiteID,
                        SiteTransID = siteTransaction.SiteTransID,
                        SupplierID  = siteTransaction.SupplierID,
                        Tdate       = siteTransaction.Tdate,
                        UserID      = siteTransaction.UserID
                    };

                    if (siteTransaction.UploadedFile != null)
                    {
                        string fn = siteTransaction.UploadedFile.FileName.Substring(siteTransaction.UploadedFile.FileName.LastIndexOf('\\') + 1);
                        fn = siteTransaction.SiteID + "_" + fn;
                        string SavePath = System.IO.Path.Combine(Server.MapPath("~/Images"), fn);
                        siteTransaction.UploadedFile.SaveAs(SavePath);

                        //System.Drawing.Bitmap upimg = new System.Drawing.Bitmap(siteTransaction.UploadedFile.InputStream);
                        //System.Drawing.Bitmap svimg = MyExtensions.CropUnwantedBackground(upimg);
                        //svimg.Save(System.IO.Path.Combine(Server.MapPath("~/Images"), fn));

                        res.path = fn;
                    }
                    else
                    {
                        res.path = siteTransaction.path;
                    }

                    base.BaseSave <SiteTransasction>(res, siteTransaction.SiteTransID > 0);
                    transaction.Complete();
                    return(RedirectToAction("Index"));
                }
                catch (Exception ex)
                {
                    db.AbortTransaction();
                    throw ex;
                }
            }
        }