Example #1
0
        public IFluentSupplierInvoiceDetail CreateSupplierInvoiceDetailsByView(SupplierInvoiceView view)
        {
            Task <SupplierInvoice> supplierInvoiceTask = Task.Run(async() => await unitOfWork.supplierInvoiceRepository.GetEntityByNumber(view.SupplierInvoiceNumber));

            Task.WaitAll(supplierInvoiceTask);


            if (supplierInvoiceTask.Result != null)
            {
                long supplierInvoiceId = supplierInvoiceTask.Result.SupplierInvoiceId;

                List <SupplierInvoiceDetail> list = new List <SupplierInvoiceDetail>();

                foreach (var detailView in view.SupplierInvoiceDetailViews)
                {
                    detailView.SupplierInvoiceId = supplierInvoiceId;

                    SupplierInvoiceDetail newDetail = MapToEntity(detailView);

                    list.Add(newDetail);
                }
                AddSupplierInvoiceDetails(list);
                processStatus = CreateProcessStatus.Insert;
                return(this as IFluentSupplierInvoiceDetail);
            }
            processStatus = CreateProcessStatus.Failed;
            return(this as IFluentSupplierInvoiceDetail);
        }
Example #2
0
        public async Task <CreateProcessStatus> CreateSupplierInvoiceDetailsByView(SupplierInvoiceView view)

        {
            var query = await(from e in _dbContext.SupplierInvoices
                              where e.SupplierInvoiceNumber == view.SupplierInvoiceNumber

                              select e).FirstOrDefaultAsync <SupplierInvoice>();

            if (query != null)
            {
                long supplierInvoiceId = query.SupplierInvoiceId;

                foreach (var detail in view.SupplierInvoiceDetailViews)
                {
                    detail.SupplierInvoiceId = supplierInvoiceId;

                    SupplierInvoiceDetail newDetail = new SupplierInvoiceDetail();
                    applicationViewFactory.MapSupplierInvoiceDetailEntity(ref newDetail, detail);

                    var queryDetail = await(from e in _dbContext.SupplierInvoiceDetails
                                            where e.ItemId == detail.ItemId &&
                                            e.SupplierInvoiceDetailId == newDetail.SupplierInvoiceDetailId
                                            select e).FirstOrDefaultAsync <SupplierInvoiceDetail>();
                    if (queryDetail == null)
                    {
                        _dbContext.Set <SupplierInvoiceDetail>().Add(newDetail);
                    }
                }
                return(CreateProcessStatus.Insert);
            }
            return(CreateProcessStatus.Failed);
        }
Example #3
0
        private SupplierInvoiceDetail MapToEntity(SupplierInvoiceDetailView inputObject)
        {
            Mapper mapper = new Mapper();
            SupplierInvoiceDetail outObject = mapper.Map <SupplierInvoiceDetail>(inputObject);

            return(outObject);
        }
        private async Task <SupplierInvoiceDetailView> MapToDetailView(SupplierInvoiceDetail inputObject)
        {
            SupplierInvoiceDetailView outObject = mapper.Map <SupplierInvoiceDetailView>(inputObject);


            await Task.Yield();

            return(outObject);
        }
        public async Task <IActionResult> DeleteSupplierInvoiceDetail([FromBody] SupplierInvoiceDetailView view)
        {
            SupplierInvoiceDetailModule invMod = new SupplierInvoiceDetailModule();
            SupplierInvoiceDetail       supplierInvoiceDetail = await invMod.SupplierInvoiceDetail.Query().MapToEntity(view);

            invMod.SupplierInvoiceDetail.DeleteSupplierInvoiceDetail(supplierInvoiceDetail).Apply();

            return(Ok(view));
        }
Example #6
0
 public SupplierInvoiceDetailView(SupplierInvoiceDetail supplierInvoiceDetail)
 {
     this.SupplierInvoiceDetailId = supplierInvoiceDetail.SupplierInvoiceDetailId;
     this.UnitOfMeasure           = supplierInvoiceDetail.UnitOfMeasure;
     this.Quantity          = supplierInvoiceDetail.Quantity;
     this.UnitPrice         = supplierInvoiceDetail.UnitPrice;
     this.ExtendedCost      = supplierInvoiceDetail.ExtendedCost;
     this.ItemId            = supplierInvoiceDetail.ItemMaster.ItemId;
     this.ItemDescription   = supplierInvoiceDetail.Description;
     this.SupplierInvoiceId = supplierInvoiceDetail.SupplierInvoiceId;
     this.DiscountAmount    = supplierInvoiceDetail.DiscountAmount;
     this.DiscountPercent   = supplierInvoiceDetail.DiscountPercent;
 }
Example #7
0
        public async Task TestAddUpdatDelete()
        {
            SupplierInvoiceDetailModule SupplierInvoiceDetailMod = new SupplierInvoiceDetailModule();
            SupplierInvoice             supplierInvoice          = await SupplierInvoiceDetailMod.SupplierInvoice.Query().GetEntityById(2);

            Invoice invoice = await SupplierInvoiceDetailMod.Invoice.Query().GetEntityById(20);

            InvoiceDetail invoiceDetail = await SupplierInvoiceDetailMod.InvoiceDetail.Query().GetEntityById(21);

            ItemMaster itemMaster = await SupplierInvoiceDetailMod.ItemMaster.Query().GetEntityById(11);


            SupplierInvoiceDetailView view = new SupplierInvoiceDetailView()
            {
                InvoiceId         = invoice?.InvoiceId,
                InvoiceDocument   = invoice?.InvoiceDocument,
                InvoiceDetailId   = invoiceDetail?.InvoiceDetailId,
                SupplierInvoiceId = supplierInvoice.SupplierInvoiceId,
                UnitPrice         = 31.50M,
                Quantity          = 4,
                UnitOfMeasure     = "Each",
                ExtendedCost      = 268M,
                ItemId            = itemMaster.ItemId,
                Description       = itemMaster.Description
            };
            NextNumber nnNextNumber = await SupplierInvoiceDetailMod.SupplierInvoiceDetail.Query().GetNextNumber();

            view.SupplierInvoiceDetailNumber = nnNextNumber.NextNumberValue;

            SupplierInvoiceDetail supplierInvoiceDetail = await SupplierInvoiceDetailMod.SupplierInvoiceDetail.Query().MapToEntity(view);

            SupplierInvoiceDetailMod.SupplierInvoiceDetail.AddSupplierInvoiceDetail(supplierInvoiceDetail).Apply();

            SupplierInvoiceDetail newSupplierInvoiceDetail = await SupplierInvoiceDetailMod.SupplierInvoiceDetail.Query().GetEntityByNumber(view.SupplierInvoiceDetailNumber);

            Assert.NotNull(newSupplierInvoiceDetail);

            newSupplierInvoiceDetail.Description = "SupplierInvoiceDetail Test Update";

            SupplierInvoiceDetailMod.SupplierInvoiceDetail.UpdateSupplierInvoiceDetail(newSupplierInvoiceDetail).Apply();

            SupplierInvoiceDetailView updateView = await SupplierInvoiceDetailMod.SupplierInvoiceDetail.Query().GetViewById(newSupplierInvoiceDetail.SupplierInvoiceDetailId);

            Assert.Same(updateView.Description, "SupplierInvoiceDetail Test Update");
            SupplierInvoiceDetailMod.SupplierInvoiceDetail.DeleteSupplierInvoiceDetail(newSupplierInvoiceDetail).Apply();
            SupplierInvoiceDetail lookupSupplierInvoiceDetail = await SupplierInvoiceDetailMod.SupplierInvoiceDetail.Query().GetEntityById(view.SupplierInvoiceDetailId);

            Assert.Null(lookupSupplierInvoiceDetail);
        }
        public async Task <IActionResult> AddSupplierInvoiceDetail([FromBody] SupplierInvoiceDetailView view)
        {
            SupplierInvoiceDetailModule invMod = new SupplierInvoiceDetailModule();

            NextNumber nnSupplierInvoiceDetail = await invMod.SupplierInvoiceDetail.Query().GetNextNumber();

            view.SupplierInvoiceDetailNumber = nnSupplierInvoiceDetail.NextNumberValue;

            SupplierInvoiceDetail supplierInvoiceDetail = await invMod.SupplierInvoiceDetail.Query().MapToEntity(view);

            invMod.SupplierInvoiceDetail.AddSupplierInvoiceDetail(supplierInvoiceDetail).Apply();

            SupplierInvoiceDetailView newView = await invMod.SupplierInvoiceDetail.Query().GetViewByNumber(view.SupplierInvoiceDetailNumber);


            return(Ok(newView));
        }
Example #9
0
 public IFluentSupplierInvoiceDetail AddSupplierInvoiceDetail(SupplierInvoiceDetail newObject)
 {
     unitOfWork.supplierInvoiceDetailRepository.AddObject(newObject);
     this.processStatus = CreateProcessStatus.Insert;
     return(this as IFluentSupplierInvoiceDetail);
 }
Example #10
0
 public IFluentSupplierInvoiceDetail DeleteSupplierInvoiceDetail(SupplierInvoiceDetail deleteObject)
 {
     unitOfWork.supplierInvoiceDetailRepository.DeleteObject(deleteObject);
     this.processStatus = CreateProcessStatus.Delete;
     return(this as IFluentSupplierInvoiceDetail);
 }
      //SaveSupplierInvoice
      public JsonResult SaveSupplierInvoice(int Id, int SupplierID, string InvoiceDate, string InvoiceNo, string Remarks, int SupplierTypeId, string Details)
      {
          try
          {
              var IDetails = JsonConvert.DeserializeObject <List <SupplierInvoiceDetailVM> >(Details);
              List <SupplierInvoiceConsignmentVM> AWBAllocationall = new List <SupplierInvoiceConsignmentVM>();
              List <SupplierInvoiceConsignmentVM> AWBAllocation    = new List <SupplierInvoiceConsignmentVM>();
              AWBAllocationall = (List <SupplierInvoiceConsignmentVM>)Session["SIAWBAllocation"];
              var Supplierinvoice = (from d in db.SupplierInvoices where d.SupplierInvoiceID == Id select d).FirstOrDefault();
              if (Supplierinvoice == null)
              {
                  Supplierinvoice = new SupplierInvoice();
              }
              else
              {
                  var details = (from d in db.SupplierInvoiceDetails where d.SupplierInvoiceID == Supplierinvoice.SupplierInvoiceID select d).ToList();
                  db.SupplierInvoiceDetails.RemoveRange(details);
                  db.SaveChanges();

                  var consignmentdetails = (from d in db.SupplierInvoiceConsignments where d.SupplierInvoiceId == Supplierinvoice.SupplierInvoiceID select d).ToList();
                  db.SupplierInvoiceConsignments.RemoveRange(consignmentdetails);
                  db.SaveChanges();
              }

              Supplierinvoice.SupplierID     = SupplierID;
              Supplierinvoice.InvoiceDate    = Convert.ToDateTime(InvoiceDate);
              Supplierinvoice.InvoiceNo      = InvoiceNo;
              Supplierinvoice.AccompanyID    = Convert.ToInt32(Session["CurrentCompanyID"]);
              Supplierinvoice.BranchId       = Convert.ToInt32(Session["CurrentBranchID"]);
              Supplierinvoice.FyearID        = Convert.ToInt32(Session["fyearid"]);
              Supplierinvoice.InvoiceTotal   = IDetails.Sum(d => d.Value);
              Supplierinvoice.StatusClose    = false;
              Supplierinvoice.IsDeleted      = false;
              Supplierinvoice.Remarks        = Remarks;
              Supplierinvoice.SupplierTypeId = SupplierTypeId;
              if (Supplierinvoice.SupplierInvoiceID == 0)
              {
                  db.SupplierInvoices.Add(Supplierinvoice);
              }
              db.SaveChanges();
              foreach (var item in IDetails)
              {
                  var InvoiceDetail = new SupplierInvoiceDetail();
                  InvoiceDetail.SupplierInvoiceID = Supplierinvoice.SupplierInvoiceID;
                  InvoiceDetail.AcHeadID          = item.AcHeadId;
                  InvoiceDetail.Particulars       = item.Particulars;
                  InvoiceDetail.Quantity          = item.Quantity;
                  InvoiceDetail.Rate           = item.Rate;
                  InvoiceDetail.CurrencyID     = item.CurrencyID;
                  InvoiceDetail.CurrencyAmount = item.CurrencyAmount;
                  InvoiceDetail.Amount         = item.Amount;
                  InvoiceDetail.TaxPercentage  = item.TaxPercentage;
                  InvoiceDetail.Value          = item.Value;

                  db.SupplierInvoiceDetails.Add(InvoiceDetail);
                  db.SaveChanges();

                  //adding consignment referece to this entry
                  int acheadid = Convert.ToInt32(item.AcHeadId);

                  if (AWBAllocationall != null)
                  {
                      var list = AWBAllocationall.Where(cc => cc.AcHeadId == acheadid).ToList();
                      if (list != null)
                      {
                          foreach (var item2 in list)
                          {
                              SupplierInvoiceConsignment accons = new SupplierInvoiceConsignment();
                              accons.SupplierInvoiceId       = Supplierinvoice.SupplierInvoiceID;
                              accons.SupplierInvoiceDetailId = item.SupplierInvoiceDetailID;
                              accons.AcHeadId = acheadid;
                              accons.InScanID = Convert.ToInt32(item2.InScanID);
                              accons.Amount   = item2.Amount;
                              db.SupplierInvoiceConsignments.Add(accons);
                              db.SaveChanges();
                          }
                      }
                  }
              }

              PickupRequestDAO dao = new PickupRequestDAO();
              dao.GenerateSupplierInvoicePosting(Supplierinvoice.SupplierInvoiceID);

              return(Json(new { status = "ok", message = "Invoice Submitted Successfully!" }, JsonRequestBehavior.AllowGet));
          }
          catch (Exception e)
          {
              return(Json(new { status = "failed", message = e.Message.ToString() }, JsonRequestBehavior.AllowGet));
          }
      }