public int EPOPost(List <ExternalPurchaseOrder> ListEPO, string user)
        {
            int Updated = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var Ids      = ListEPO.Select(d => d.Id).ToList();
                    var listData = this.dbSet
                                   .Where(m => Ids.Contains(m.Id) && !m.IsDeleted)
                                   .Include(d => d.Items)
                                   .ThenInclude(d => d.Details)
                                   .ToList();
                    listData.ForEach(m =>
                    {
                        EntityExtension.FlagForUpdate(m, user, "Facade");
                        m.IsPosted = true;

                        foreach (var item in m.Items)
                        {
                            EntityExtension.FlagForUpdate(item, user, "Facade");
                            foreach (var detail in item.Details)
                            {
                                EntityExtension.FlagForUpdate(detail, user, "Facade");
                                InternalPurchaseOrderItem internalPurchaseOrderItem = this.dbContext.InternalPurchaseOrderItems.FirstOrDefault(s => s.Id == detail.POItemId);
                                internalPurchaseOrderItem.Status = "Sudah diorder ke Supplier";

                                PurchaseRequestItem purchaseRequestItem = this.dbContext.PurchaseRequestItems.FirstOrDefault(s => s.Id == detail.PRItemId);
                                purchaseRequestItem.Status = "Sudah diorder ke Supplier";
                            }
                        }
                    });

                    Updated = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Updated);
        }
Example #2
0
        public async Task Should_Success_Update_Data()
        {
            PurchaseRequest model = await DataUtil.GetTestData("Unit test");

            var Response = await Facade.Update((int)model.Id, model, "Unit Test");

            Assert.NotEqual(0, Response);

            PurchaseRequestItem modelItem = DataUtil.GetNewData().Items.FirstOrDefault();

            model.Items.Add(modelItem);
            var ResponseAddItem = await Facade.Update((int)model.Id, model, "Unit Test");

            Assert.NotEqual(0, ResponseAddItem);

            model.Items.Remove(modelItem);
            var ResponseRemoveItem = await Facade.Update((int)model.Id, model, "Unit Test");

            Assert.NotEqual(0, ResponseRemoveItem);
        }
        public int Delete(int id, string user)
        {
            int Deleted = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var m = this.dbSet
                            .Include(d => d.Items)
                            .SingleOrDefault(pr => pr.Id == id && !pr.IsDeleted);
                    EntityExtension.FlagForDelete(m, user, "Facade");

                    PurchaseRequest purchaseReq = dbContext.PurchaseRequests.FirstOrDefault(a => a.Id.ToString() == m.PRId);

                    purchaseReq.IsUsed = false;

                    foreach (var item in m.Items)
                    {
                        var n = this.dbContext.InternalPurchaseOrderItems
                                .Count(pr => pr.PRItemId == item.PRItemId && !pr.IsDeleted);
                        if (n == 1)
                        {
                            PurchaseRequestItem purchaseRequestItem = this.dbContext.PurchaseRequestItems.FirstOrDefault(s => s.Id == item.PRItemId);
                            purchaseRequestItem.Status = "Belum diterima Pembelian";
                        }
                        EntityExtension.FlagForDelete(item, user, "Facade");
                    }

                    Deleted = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Deleted);
        }
        public IActionResult Add(PurchaseRequestItem PurchaseRequestItem, Specification Specification)
        {
            int max_id = 0;

            try
            {
                max_id = _db.PurchaseRequestItemSpecifications.Max((pris) => pris.Id);
            }
            catch
            {
            }
            PurchaseRequestItemSpecification pris = new PurchaseRequestItemSpecification()
            {
                Id = max_id,
                PurchaseRequestItem = PurchaseRequestItem,
                Specification       = Specification
            };

            _db.PurchaseRequestItemSpecifications.Add(pris);
            _db.SaveChanges();
            return(Ok());
        }
Example #5
0
        public ActionResult Print(int Id)
        {
            ReportDocument rd = new ReportDocument();

            rd.Load(Path.Combine(Server.MapPath("~/Reports"), "PurchaseRequest.rpt"));

            DataSet ds = new DataSet();

            ds.Tables.Add("Head");

            ds.Tables.Add("Items");

            //-------HEAD
            ds.Tables["Head"].Columns.Add("PurchaseRequestNo");
            ds.Tables["Head"].Columns.Add("PurchaseRequestDate");
            ds.Tables["Head"].Columns.Add("WorkShopRequestId");
            ds.Tables["Head"].Columns.Add("CustomerName");
            //ds.Tables["Head"].Columns.Add("CustomerName");
            ds.Tables["Head"].Columns.Add("SpecialRemarks");
            ds.Tables["Head"].Columns.Add("RequiredDate");
            ds.Tables["Head"].Columns.Add("CustomerOrderRef");
            ds.Tables["Head"].Columns.Add("WorkShopRequestRefNo");
            ds.Tables["Head"].Columns.Add("DoorNo");
            ds.Tables["Head"].Columns.Add("Street");
            ds.Tables["Head"].Columns.Add("State");
            ds.Tables["Head"].Columns.Add("Country");
            ds.Tables["Head"].Columns.Add("Phone");
            ds.Tables["Head"].Columns.Add("Fax");
            ds.Tables["Head"].Columns.Add("Email");
            ds.Tables["Head"].Columns.Add("ContactPerson");
            ds.Tables["Head"].Columns.Add("Zip");
            ds.Tables["Head"].Columns.Add("OrganizationName");
            ds.Tables["Head"].Columns.Add("Image1");
            ds.Tables["Head"].Columns.Add("CreatedUser");
            ds.Tables["Head"].Columns.Add("CreateSignature");



            //-------DT
            ds.Tables["Items"].Columns.Add("PartNo");
            ds.Tables["Items"].Columns.Add("ItemName");
            ds.Tables["Items"].Columns.Add("Quantity");
            ds.Tables["Items"].Columns.Add("UnitName");
            ds.Tables["Items"].Columns.Add("ItemId");
            ds.Tables["Items"].Columns.Add("MinLevel");
            ds.Tables["Items"].Columns.Add("WRRequestQty");
            ds.Tables["Items"].Columns.Add("CurrentStock");
            ds.Tables["Items"].Columns.Add("WRIssueQty");
            ds.Tables["Items"].Columns.Add("TotalQty");
            ds.Tables["Items"].Columns.Add("InTransitQty");
            ds.Tables["Items"].Columns.Add("PendingPRQty");
            ds.Tables["Items"].Columns.Add("ShortorExcess");
            ds.Tables["Items"].Columns.Add("Remarks");


            PurchaseRequestRepository repo = new PurchaseRequestRepository();
            var Head = repo.GetPurchaseRequestHDDetailsPrint(Id, OrganizationId);

            DataRow dr = ds.Tables["Head"].NewRow();

            dr["PurchaseRequestNo"]    = Head.PurchaseRequestNo;
            dr["PurchaseRequestDate"]  = Head.PurchaseRequestDate.ToString("dd-MMM-yyyy");
            dr["WorkShopRequestId"]    = Head.WorkShopRequestId;
            dr["CustomerName"]         = Head.CustomerName;
            dr["SpecialRemarks"]       = Head.SpecialRemarks;
            dr["RequiredDate"]         = Head.RequiredDate.ToString("dd-MMM-yyyy");;
            dr["CustomerOrderRef"]     = Head.CustomerOrderRef;
            dr["WorkShopRequestRefNo"] = Head.WorkShopRequestRefNo;
            dr["DoorNo"]           = Head.DoorNo;
            dr["Street"]           = Head.Street;
            dr["State"]            = Head.State;
            dr["Country"]          = Head.CountryName;
            dr["Phone"]            = Head.Phone;
            dr["Fax"]              = Head.Fax;
            dr["Email"]            = Head.Email;
            dr["ContactPerson"]    = Head.ContactPerson;
            dr["Zip"]              = Head.Zip;
            dr["OrganizationName"] = Head.OrganizationName;
            dr["Image1"]           = Server.MapPath("~/App_images/") + Head.Image1;
            dr["CreatedUser"]      = Head.CreatedUser;
            dr["CreateSignature"]  = Server.MapPath("~/App_Images/") + Head.CreatedUsersig;
            ds.Tables["Head"].Rows.Add(dr);

            PurchaseRequestRepository repo1 = new PurchaseRequestRepository();
            var Items = repo1.PurchaseRequestItemDetailsPrint(Id);

            foreach (var item in Items)
            {
                var pritem = new PurchaseRequestItem
                {
                    PartNo        = item.PartNo,
                    ItemName      = item.ItemName,
                    Quantity      = item.Quantity,
                    UnitName      = item.UnitName,
                    ItemId        = item.ItemId,
                    MinLevel      = item.MinLevel,
                    WRRequestQty  = item.WRRequestQty,
                    CurrentStock  = item.CurrentStock,
                    WRIssueQty    = item.WRIssueQty,
                    TotalQty      = item.TotalQty,
                    InTransitQty  = item.InTransitQty,
                    PendingPRQty  = item.PendingPRQty,
                    ShortorExcess = item.ShortorExcess,
                    Remarks       = item.Remarks
                };


                DataRow dri = ds.Tables["Items"].NewRow();
                dri["PartNo"]        = pritem.PartNo;
                dri["ItemName"]      = pritem.ItemName;
                dri["Quantity"]      = pritem.Quantity;
                dri["UnitName"]      = pritem.UnitName;
                dri["ItemId"]        = pritem.ItemId;
                dri["MinLevel"]      = pritem.MinLevel;
                dri["WRRequestQty"]  = pritem.WRRequestQty;
                dri["CurrentStock"]  = pritem.CurrentStock;
                dri["WRIssueQty"]    = pritem.WRIssueQty;
                dri["TotalQty"]      = pritem.TotalQty;
                dri["InTransitQty"]  = pritem.InTransitQty;
                dri["PendingPRQty"]  = pritem.PendingPRQty;
                dri["ShortorExcess"] = pritem.ShortorExcess;
                dri["Remarks"]       = pritem.Remarks;
                ds.Tables["Items"].Rows.Add(dri);
            }

            ds.WriteXml(Path.Combine(Server.MapPath("~/XML"), "PurchaseRequest.xml"), XmlWriteMode.WriteSchema);

            rd.SetDataSource(ds);

            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();


            try
            {
                Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                stream.Seek(0, SeekOrigin.Begin);
                return(File(stream, "application/pdf", String.Format("PurchaseRequest{0}.pdf", Id.ToString())));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        private void SaveMode(int Action)
        {
            FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
            FormsAuthenticationTicket ticket = id.Ticket;
            string errMsg = "";

            if (ticket.Expired)
            {
                cbp_LineItem_NewAsset.JSProperties["cpErrMsg"] = "Session Expired.";
                return;
            }

            try
            {
                string purchaseRequestId = txtPurchaseRequestId.Text;
                PurchaseRequestItem pri = new PurchaseRequestItem
                {
                    ItemType = (PrItemType)Enum.Parse(typeof(PrItemType), txtItemType.Text),
                    Description = NewAsset_PRI_Desc.Text,
                    UnitOfMeasurementId = NewAsset_PRI_UomId.Value == null ? "" : NewAsset_PRI_UomId.Value.ToString(),
                    CategoryId = NewAsset_PRI_CatId.Value == null ? "" : NewAsset_PRI_CatId.Value.ToString(),
                    SubCategoryId = NewAsset_PRI_SubCatId.Value == null ? "" : NewAsset_PRI_SubCatId.Value.ToString(),
                    AssetTypeId = NewAsset_PRI_TypeId.Value == null ? "" : NewAsset_PRI_TypeId.Value.ToString(),
                    //TaxCodeSagaId = NewAsset_PRI_TaxCode.Value == null ? "" : NewAsset_PRI_TaxCode.Value.ToString(),
                    Qty = int.Parse(NewAsset_PRI_Qty.Text),
                    PricePerUnit = decimal.Parse(NewAsset_PRI_UnitPrice.Text),
                    PurchaseRequestId = purchaseRequestId,
                };

                _prs.AddPrItem(pri, ticket.Name);
                //cbp_LineItem_NewAsset.JSProperties["cpErrMsg"] = "";
                //                Dr["PRIC_ProcessId"] = txtNewPrItemProcessId.Text;
                //Dr["PRIC_Revision"] = Convert.ToInt32(txtNewPrItemRevision.Text);
                //Dr["PRIC_ItemNumber"] = Convert.ToInt32(NewAsset_PRI_ItemNumber.Text);
                //Dr["PRIC_ComponentNumber"] = UtilityMethods.FormNextSortingId(ref Dt, "PRIC_ComponentNumber");
                //Dr["PRIC_Desc"] = DBNull.Value;
                //Dr["PRIC_Brand"] = DBNull.Value;
                //Dr["PRIC_Model"] = DBNull.Value;
                //Dr["PRIC_Qty"] = 0;
                //Dr["PRIC_UnitCost"] = 0;

                //FormTVP(ref Dt);
                //PopulateTVP(ref Dt);
                //FormComponentTVP(ref Dtc);
                //PopulateComponentTVP(ref Dtc);
                //cbp_LineItem_NewAsset.JSProperties["cpErrMsg"] = PermohonanBelianMethods.SP_PR_Items_NewAsset_SaveDelete( txtNewPrItemProcessId.Text, NewAsset_PRI_ItemNumber.Text, txtNewPrItemRevision.Text, ref Dt, ref Dtc); ;
            }
            catch (Exception err)
            {
                errMsg = err.ToString();
            }
            finally
            {
            }

            cbp_LineItem_NewAsset.JSProperties["cpErrMsg"] = errMsg;

            return;

            //DataTable Dt = new DataTable();
            //DataTable Dtc = new DataTable();

            //try
            //{
            //    //FormTVP(ref Dt);
            //    //PopulateTVP(ref Dt);
            //    //FormComponentTVP(ref Dtc);
            //    //PopulateComponentTVP(ref Dtc);
            //    //cbp_LineItem_NewAsset.JSProperties["cpErrMsg"] = PermohonanBelianMethods.SP_PR_Items_NewAsset_SaveDelete( txtNewPrItemProcessId.Text, NewAsset_PRI_ItemNumber.Text, txtNewPrItemRevision.Text, ref Dt, ref Dtc); ;
            //}
            //catch (Exception err)
            //{ cbp_LineItem_NewAsset.JSProperties["cpErrMsg"] = err.Message; }
            //finally
            //{ Dt.Dispose(); }
        }
Example #7
0
        public int Delete(int id, string user)
        {
            int Deleted = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    var m = this.dbSet
                            .Include(d => d.Items)
                            .SingleOrDefault(pr => pr.Id == id && !pr.IsDeleted);

                    EntityExtension.FlagForDelete(m, user, USER_AGENT);

                    foreach (var item in m.Items)
                    {
                        EntityExtension.FlagForDelete(item, user, USER_AGENT);

                        ExternalPurchaseOrderDetail externalPurchaseOrderDetail = this.dbContext.ExternalPurchaseOrderDetails.FirstOrDefault(s => s.IsDeleted == false && s.Id == item.EPODetailId);
                        PurchaseRequestItem         prItem    = this.dbContext.PurchaseRequestItems.FirstOrDefault(s => s.IsDeleted == false && s.Id == externalPurchaseOrderDetail.PRItemId);
                        InternalPurchaseOrderItem   poItem    = this.dbContext.InternalPurchaseOrderItems.FirstOrDefault(s => s.IsDeleted == false && s.Id == externalPurchaseOrderDetail.POItemId);
                        DeliveryOrderDetail         doDetail  = dbContext.DeliveryOrderDetails.FirstOrDefault(s => s.IsDeleted == false && s.Id == item.DODetailId);
                        UnitPaymentOrderDetail      upoDetail = dbContext.UnitPaymentOrderDetails.FirstOrDefault(s => s.IsDeleted == false && s.POItemId == poItem.Id);
                        doDetail.ReceiptQuantity -= item.ReceiptQuantity;
                        externalPurchaseOrderDetail.ReceiptQuantity -= item.ReceiptQuantity;
                        if (externalPurchaseOrderDetail.ReceiptQuantity == 0 && upoDetail == null)
                        {
                            if (externalPurchaseOrderDetail.DOQuantity > 0 && externalPurchaseOrderDetail.DOQuantity >= externalPurchaseOrderDetail.DealQuantity)
                            {
                                //prItem.Status = "Barang sudah diterima Unit semua";
                                poItem.Status = "Barang sudah datang semua";
                            }
                            else if (externalPurchaseOrderDetail.DOQuantity > 0 && externalPurchaseOrderDetail.DOQuantity < externalPurchaseOrderDetail.DealQuantity)
                            {
                                //prItem.Status = "Barang sudah diterima Unit parsial";
                                poItem.Status = "Barang sudah datang parsial";
                            }
                        }
                        else if (externalPurchaseOrderDetail.ReceiptQuantity > 0 && upoDetail == null)
                        {
                            if (externalPurchaseOrderDetail.DOQuantity >= externalPurchaseOrderDetail.DealQuantity)
                            {
                                if (externalPurchaseOrderDetail.ReceiptQuantity < externalPurchaseOrderDetail.DealQuantity)
                                {
                                    //prItem.Status = "Barang sudah diterima Unit parsial";
                                    poItem.Status = "Barang sudah diterima Unit parsial";
                                }
                                else if (externalPurchaseOrderDetail.ReceiptQuantity >= externalPurchaseOrderDetail.DealQuantity)
                                {
                                    //prItem.Status = "Barang sudah diterima Unit semua";
                                    poItem.Status = "Barang sudah diterima Unit semua";
                                }
                                else if (externalPurchaseOrderDetail.DOQuantity < externalPurchaseOrderDetail.DealQuantity)
                                {
                                    poItem.Status = "Barang sudah diterima Unit parsial";
                                }
                            }
                        }
                    }
                    if (m.IsStorage == true)
                    {
                        insertStorage(m, user, "OUT");
                    }

                    Deleted = dbContext.SaveChanges();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Deleted);
        }
Example #8
0
        public async Task <int> Create(UnitReceiptNote m, string user)
        {
            int Created = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForCreate(m, user, "Facade");

                    m.URNNo = await GenerateNo(m);

                    if (m.Items != null)
                    {
                        foreach (var item in m.Items)
                        {
                            EntityExtension.FlagForCreate(item, user, "Facade");
                            ExternalPurchaseOrderDetail externalPurchaseOrderDetail = this.dbContext.ExternalPurchaseOrderDetails.FirstOrDefault(s => s.Id == item.EPODetailId);
                            PurchaseRequestItem         prItem    = this.dbContext.PurchaseRequestItems.FirstOrDefault(s => s.Id == externalPurchaseOrderDetail.PRItemId);
                            InternalPurchaseOrderItem   poItem    = this.dbContext.InternalPurchaseOrderItems.FirstOrDefault(s => s.Id == externalPurchaseOrderDetail.POItemId);
                            DeliveryOrderDetail         doDetail  = dbContext.DeliveryOrderDetails.FirstOrDefault(s => s.Id == item.DODetailId);
                            UnitPaymentOrderDetail      upoDetail = dbContext.UnitPaymentOrderDetails.FirstOrDefault(s => s.IsDeleted == false && s.POItemId == poItem.Id);
                            item.PRItemId             = doDetail.PRItemId;
                            item.PricePerDealUnit     = externalPurchaseOrderDetail.PricePerDealUnit;
                            doDetail.ReceiptQuantity += item.ReceiptQuantity;
                            externalPurchaseOrderDetail.ReceiptQuantity += item.ReceiptQuantity;
                            if (upoDetail == null)
                            {
                                if (externalPurchaseOrderDetail.DOQuantity >= externalPurchaseOrderDetail.DealQuantity)
                                {
                                    if (externalPurchaseOrderDetail.ReceiptQuantity < externalPurchaseOrderDetail.DealQuantity)
                                    {
                                        //prItem.Status = "Barang sudah diterima Unit parsial";
                                        poItem.Status = "Barang sudah diterima Unit parsial";
                                    }
                                    else
                                    {
                                        //prItem.Status = "Barang sudah diterima Unit semua";
                                        poItem.Status = "Barang sudah diterima Unit semua";
                                    }
                                }
                                else
                                {
                                    //prItem.Status = "Barang sudah diterima Unit parsial";
                                    poItem.Status = "Barang sudah diterima Unit parsial";
                                }
                            }
                        }
                    }
                    if (m.IsStorage == true)
                    {
                        insertStorage(m, user, "IN");
                    }
                    this.dbSet.Add(m);
                    Created = await dbContext.SaveChangesAsync();

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Created);
        }
        public PurchaseRequestItem AddPrItem(PurchaseRequestItem pri, string userName)
        {
            Data.Models.PurchaseRequestItemModel.Add(pri, userName);

            return pri;
        }