public void MapToContract_AllFieldsMapped_Correctly()
        {
            var salesInvoiceDetail = new SalesInvoiceDetail()
            {
                row_order         = 2,
                product_id        = 3,
                amount            = "100",
                description       = "tests",
                ledger_account_id = 999,
                tax_rate_id       = "5",
                price             = 123,
                period            = "day"
            };

            var result         = _mapper.MapToContract(salesInvoiceDetail);
            var expectedResult = new Contract.Model.SalesInvoiceDetail()
            {
                Amount          = salesInvoiceDetail.amount,
                Description     = salesInvoiceDetail.description,
                LedgerAccountId = salesInvoiceDetail.ledger_account_id,
                Period          = salesInvoiceDetail.period,
                Price           = salesInvoiceDetail.price,
                ProductId       = salesInvoiceDetail.product_id,
                RowOrder        = salesInvoiceDetail.row_order,
                TaxRateId       = salesInvoiceDetail.tax_rate_id
            };

            result.Should().BeEquivalentTo(expectedResult);
        }
Example #2
0
        public int AddSalesInvoiceDetail(SalesInvoiceDetail SID)
        {
            IDBManager dbm = new DBManager();

            try
            {
                dbm.CreateParameters(9);

                dbm.AddParameters(0, "InvoiceID", SID.InvoiceID);
                dbm.AddParameters(1, "Quantity", SID.Quantity);
                dbm.AddParameters(2, "ProductID", SID.ProductID);
                dbm.AddParameters(3, "@SpecialOfferID", SID.SpecialOfferID);
                dbm.AddParameters(4, "@UnitPrice", SID.UnitPrice);
                dbm.AddParameters(5, "@UnitPriceDiscount", SID.UnitPriceDiscount);
                dbm.AddParameters(6, "@LineTotal", SID.LineTotal);
                dbm.AddParameters(7, "@ModifiedDate", DateTime.Now);
                dbm.AddParameters(8, "@InvoiceDetailID", SID.InvoiceDetailID);

                dbm.Parameters[8].Direction = ParameterDirection.Output;
                dbm.ExecuteNonQuery(CommandType.StoredProcedure, "InsertSalesInvoiceDetail");
                SID.InvoiceDetailID = Int32.Parse(dbm.Parameters[8].Value.ToString());
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "InsertSalesInvoiceDetail");
                throw (ex);
            }
            finally
            {
                dbm.Dispose();
            }
            return(SID.InvoiceDetailID);
        }
        public void MapToApi_AllFieldsMapped_Correctly()
        {
            var salesInvoiceDetail = new Contract.Model.SalesInvoiceDetail
            {
                RowOrder        = 2,
                ProductId       = 3,
                Amount          = "100",
                Description     = "tests",
                LedgerAccountId = 999,
                TaxRateId       = "5",
                Price           = 123,
                Period          = "day"
            };

            var result         = _mapper.MapToApi(salesInvoiceDetail, null);
            var expectedResult = new SalesInvoiceDetail
            {
                amount            = salesInvoiceDetail.Amount,
                description       = salesInvoiceDetail.Description,
                ledger_account_id = salesInvoiceDetail.LedgerAccountId,
                period            = salesInvoiceDetail.Period,
                price             = salesInvoiceDetail.Price,
                product_id        = salesInvoiceDetail.ProductId,
                row_order         = salesInvoiceDetail.RowOrder,
                tax_rate_id       = salesInvoiceDetail.TaxRateId
            };

            result.Should().BeEquivalentTo(expectedResult);
        }
Example #4
0
        public SalesInvoiceDetail GetSalesInvoiceDetail(int @InvoiceDetailID)
        {
            IDBManager         dbm = new DBManager();
            SalesInvoiceDetail SID = new SalesInvoiceDetail();

            try
            {
                dbm.CreateParameters(1);
                dbm.AddParameters(0, "@InvoiceDetailID", @InvoiceDetailID);
                IDataReader reader = dbm.ExecuteReader(CommandType.StoredProcedure, "SelectSalesInvoiceDetail");
                while (reader.Read())
                {
                    SID.@InvoiceDetailID  = Int32.Parse(reader["@InvoiceDetailID"].ToString());
                    SID.InvoiceID         = Int32.Parse(reader["InvoiceID"].ToString());
                    SID.Quantity          = short.Parse(reader["Quantity"].ToString());
                    SID.ProductID         = Int32.Parse(reader["ProductID"].ToString());
                    SID.SpecialOfferID    = Int32.Parse(reader[""].ToString());
                    SID.UnitPrice         = decimal.Parse(reader[""].ToString());
                    SID.UnitPriceDiscount = decimal.Parse(reader[""].ToString());
                    SID.LineTotal         = decimal.Parse(reader[""].ToString());
                    SID.ModifiedDate      = DateTime.Parse(reader["ModifiedDate"].ToString());
                }
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "GetSalesInvoiceDetail");
                throw (ex);
            }
            finally
            {
                dbm.Dispose();
            }
            return(SID);
        }
Example #5
0
        public bool UpdateSalesInvoiceDetail(SalesInvoiceDetail SID)
        {
            IDBManager dbm = new DBManager();

            try
            {
                dbm.CreateParameters(9);
                dbm.AddParameters(0, "@InvoiceDetailID", SID.InvoiceDetailID);
                dbm.AddParameters(1, "InvoiceID", SID.InvoiceID);
                dbm.AddParameters(2, "Quantity", SID.Quantity);
                dbm.AddParameters(3, "ProductID", SID.ProductID);
                dbm.AddParameters(4, "@SpecialOfferID", SID.SpecialOfferID);
                dbm.AddParameters(5, "@UnitPrice", SID.UnitPrice);
                dbm.AddParameters(6, "@UnitPriceDiscount", SID.UnitPriceDiscount);
                dbm.AddParameters(7, "@LineTotal", SID.LineTotal);
                dbm.AddParameters(8, "@ModifiedDate", DateTime.Now);
                dbm.ExecuteNonQuery(CommandType.StoredProcedure, "UpdateSalesInvoiceDetail");
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, "UpdateSalesInvoiceDetail");
                throw (ex);
            }
            finally
            {
                dbm.Dispose();
            }
            return(true);
        }
Example #6
0
 public SalesInvoiceDetail VCreateObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService,
                                         ISalesInvoiceDetailService _salesInvoiceDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService)
 {
     VHasSalesInvoice(salesInvoiceDetail, _salesInvoiceService);
     if (!isValid(salesInvoiceDetail))
     {
         return(salesInvoiceDetail);
     }
     VHasDeliveryOrderDetail(salesInvoiceDetail, _deliveryOrderDetailService);
     if (!isValid(salesInvoiceDetail))
     {
         return(salesInvoiceDetail);
     }
     VDeliveryOrderDetailAndSalesInvoiceMustHaveTheSameDeliveryOrder(salesInvoiceDetail, _deliveryOrderDetailService, _salesInvoiceService);
     if (!isValid(salesInvoiceDetail))
     {
         return(salesInvoiceDetail);
     }
     VIsUniqueDeliveryOrderDetail(salesInvoiceDetail, _salesInvoiceDetailService, _deliveryOrderDetailService);
     if (!isValid(salesInvoiceDetail))
     {
         return(salesInvoiceDetail);
     }
     VNonNegativeNorZeroQuantity(salesInvoiceDetail);
     if (!isValid(salesInvoiceDetail))
     {
         return(salesInvoiceDetail);
     }
     VQuantityIsLessThanOrEqualPendingInvoiceQuantity(salesInvoiceDetail, _deliveryOrderDetailService);
     return(salesInvoiceDetail);
 }
        public dynamic GetInfoDetail(int Id)
        {
            SalesInvoiceDetail model = new SalesInvoiceDetail();

            try
            {
                model = _salesInvoiceDetailService.GetObjectById(Id);
            }
            catch (Exception ex)
            {
                LOG.Error("GetInfo", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Id,
                model.Code,
                model.DeliveryOrderDetailId,
                DeliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(model.DeliveryOrderDetailId).Code,
                model.Quantity,
                model.Amount,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
Example #8
0
        protected SalesInvoiceDetail SalesInvoiceDetailModel()
        {
            mySalesInvoiceDetail = new SalesInvoiceDetail();

            if (HidenIdpurchasInvDe.Value != "0")
            {
                mySalesInvoiceDetail.ID = Convert.ToInt32(HidenIdpurchasInvDe.Value);
            }
            //
            if (ProductListtxt.SelectedValue != "")
            {
                mySalesInvoiceDetail.ProductID = ProductListtxt.SelectedValue;
            }
            //
            if (ProductPrice.Text != "")
            {
                mySalesInvoiceDetail.ProductPrice = Convert.ToDouble(ProductPrice.Text);
            }
            //
            if (Qty.Text != "")
            {
                mySalesInvoiceDetail.Qty = Convert.ToDouble(Qty.Text);
            }
            mySalesInvoiceDetail.PricePerRecord = Convert.ToDouble(mySalesInvoiceDetail.Qty * mySalesInvoiceDetail.ProductPrice);
            return(mySalesInvoiceDetail);
        }
Example #9
0
 public SalesInvoiceDetail VHasNotBeenConfirmed(SalesInvoiceDetail salesInvoiceDetail)
 {
     if (salesInvoiceDetail.IsConfirmed)
     {
         salesInvoiceDetail.Errors.Add("Generic", "Sudah dikonfirmasi");
     }
     return(salesInvoiceDetail);
 }
Example #10
0
 public SalesInvoiceDetail VHasBeenConfirmed(SalesInvoiceDetail salesInvoiceDetail)
 {
     if (!salesInvoiceDetail.IsConfirmed)
     {
         salesInvoiceDetail.Errors.Add("Generic", "Belum dikonfirmasi");
     }
     return(salesInvoiceDetail);
 }
Example #11
0
 public SalesInvoiceDetail VNonNegativeNorZeroQuantity(SalesInvoiceDetail salesInvoiceDetail)
 {
     if (salesInvoiceDetail.Quantity <= 0)
     {
         salesInvoiceDetail.Errors.Add("Quantity", "Harus lebih besar dari 0");
     }
     return(salesInvoiceDetail);
 }
Example #12
0
 public SalesInvoiceDetail VHasConfirmationDate(SalesInvoiceDetail obj)
 {
     if (obj.ConfirmationDate == null)
     {
         obj.Errors.Add("ConfirmationDate", "Tidak boleh kosong");
     }
     return(obj);
 }
Example #13
0
        public SalesInvoiceDetail VHasDeliveryOrderDetail(SalesInvoiceDetail salesInvoiceDetail, IDeliveryOrderDetailService _deliveryOrderDetailService)
        {
            DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId);

            if (deliveryOrderDetail == null)
            {
                salesInvoiceDetail.Errors.Add("DeliveryOrderDetailId", "Tidak boleh tidak ada");
            }
            return(salesInvoiceDetail);
        }
Example #14
0
        public SalesInvoiceDetail VQuantityIsLessThanOrEqualPendingInvoiceQuantity(SalesInvoiceDetail salesInvoiceDetail, IDeliveryOrderDetailService _deliveryOrderDetailService)
        {
            DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId);

            if (salesInvoiceDetail.Quantity > deliveryOrderDetail.PendingInvoicedQuantity)
            {
                salesInvoiceDetail.Errors.Add("Generic", "Quantity harus kurang dari atau sama dengan pending invoice quantity");
            }
            return(salesInvoiceDetail);
        }
Example #15
0
 public SalesInvoiceDetail SoftDeleteObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService)
 {
     if (_validator.ValidDeleteObject(salesInvoiceDetail))
     {
         SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId);
         _repository.SoftDeleteObject(salesInvoiceDetail);
         _salesInvoiceService.CalculateAmountReceivable(salesInvoice, this);
     }
     return(salesInvoiceDetail);
 }
Example #16
0
        public SalesInvoiceDetail VHasSalesInvoice(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService)
        {
            SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId);

            if (salesInvoice == null)
            {
                salesInvoiceDetail.Errors.Add("SalesInvoiceId", "Tidak terasosiasi dengan sales invoice");
            }
            return(salesInvoiceDetail);
        }
Example #17
0
        protected void Save_prodcut_Click(object sender, EventArgs e)
        {
            mySalesInvoiceDetail = new SalesInvoiceDetail();

            //add New item to virtual Details List
            var last_index = SalesInvoiceDetailList.Count();

            if (last_index != 0)
            {
                last_index = SalesInvoiceDetailList[last_index - 1].ID;
            }
            mySalesInvoiceDetail = SalesInvoiceDetailModel();

            // Check of The quntity in Is there or Not
            bool IsThereEnoughGoods = ThereEnoughGoods(Convert.ToDouble(mySalesInvoiceDetail.Qty), mySalesInvoiceDetail.ProductID);

            if (IsThereEnoughGoods)
            {
                if (mySalesInvoiceDetail.ID == 0)
                {
                    mySalesInvoiceDetail.ID = last_index + 1;
                    SalesInvoiceDetailList.Add(mySalesInvoiceDetail);
                }
                else
                {
                    int removeditemindex = 0;
                    for (int i = 0; i < SalesInvoiceDetailList.Count; i++)
                    {
                        if (mySalesInvoiceDetail.ID == SalesInvoiceDetailList[i].ID)
                        {
                            removeditemindex = i;
                            break;
                        }
                    }
                    SalesInvoiceDetailList[removeditemindex] = mySalesInvoiceDetail;
                }
                //Calculate new Total
                if (SalesInvoiceDetailList.Count > 0)
                {
                    double totalPrice = 0;
                    for (int i = 0; i < SalesInvoiceDetailList.Count; i++)
                    {
                        totalPrice = totalPrice + Convert.ToDouble(SalesInvoiceDetailList[i].ProductPrice * SalesInvoiceDetailList[i].Qty);
                    }
                    Total.Text = totalPrice.ToString();
                }
                AddErrorTxt.Text = "";
                BindGridList();
                ClearPurchaseInvoiceDetailsModel();
            }
            else
            {
                ShowMessage("No Enough Quntity Of this Product");
            }
        }
Example #18
0
        public int Pay(PaymentDto payment)
        {
            //if salesInvoiceId > 0 then delete drs associated with the invoice and reapply
            var invoice =
                salesInvoiceRepository.Get(x => x.SalesInvoiceId == payment.SalesInvoiceId, includedProperties: "SalesInvoiceDetails").FirstOrDefault() ??
                new SalesInvoice();

            invoice.CustomerId    = payment.CustomerId;
            invoice.InvoiceDate   = payment.InvoiceDate;
            invoice.InvoiceNumber = payment.InvoiceNumber;
            invoice.Amount        = payment.Amount;

            //let's delete anything on this invoice, before reapplying the amount
            invoice.SalesInvoiceDetails.ToList().ForEach(x => invoiceDetailsRepository.Delete(x));
            unitOfWork.Commit();

            var receivables = receivableRepository.Get(x => x.CustomerId == payment.CustomerId)
                              .OrderBy(x => x.DeliveryReceiptId).ToList();
            var paymentAmount = payment.Amount;

            for (int i = 0; i < receivables.Count; i++)
            {
                var salesInvoiceDetail = new SalesInvoiceDetail();
                var receivable         = receivables[i];


                salesInvoiceDetail.DeliveryReceiptLedgerId = receivable.DeliveryReceiptLedgerId;
                if (receivable.ReceivableAmount <= paymentAmount)
                {
                    salesInvoiceDetail.Amount = receivable.ReceivableAmount;
                    paymentAmount             = paymentAmount - receivable.ReceivableAmount;
                }
                else
                {
                    salesInvoiceDetail.Amount = paymentAmount;
                    paymentAmount             = 0;
                }
                salesInvoiceDetail.SalesInvoice = invoice;
                invoice.SalesInvoiceDetails.Add(salesInvoiceDetail);
                if (paymentAmount <= 0)
                {
                    break;
                }
            }
            if (invoice.IsNew)
            {
                salesInvoiceRepository.Insert(invoice);
            }
            else
            {
                salesInvoiceRepository.Update(invoice);
            }
            unitOfWork.Commit();
            return(invoice.SalesInvoiceId);
        }
Example #19
0
        protected void edit_product_Command(object sender, CommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);
            List <SalesInvoiceDetail> gvr = (List <SalesInvoiceDetail>)GridView1.DataSource;
            SalesInvoiceDetail        SalesInvoDetEdit = gvr[index];

            HidenIdpurchasInvDe.Value    = SalesInvoDetEdit.ID.ToString();
            ProductListtxt.SelectedValue = SalesInvoDetEdit.ProductID.ToString();
            Qty.Text          = SalesInvoDetEdit.Qty.ToString();
            ProductPrice.Text = SalesInvoDetEdit.ProductPrice.ToString();
        }
Example #20
0
 public SalesInvoiceDetail VUpdateObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService,
                                         ISalesInvoiceDetailService _salesInvoiceDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService)
 {
     VHasNotBeenConfirmed(salesInvoiceDetail);
     if (!isValid(salesInvoiceDetail))
     {
         return(salesInvoiceDetail);
     }
     VCreateObject(salesInvoiceDetail, _salesInvoiceService, _salesInvoiceDetailService, _deliveryOrderDetailService);
     return(salesInvoiceDetail);
 }
Example #21
0
 public SalesInvoiceDetail UnconfirmObject(SalesInvoiceDetail salesInvoiceDetail, IDeliveryOrderService _deliveryOrderService,
                                           IDeliveryOrderDetailService _deliveryOrderDetailService)
 {
     if (_validator.ValidUnconfirmObject(salesInvoiceDetail))
     {
         salesInvoiceDetail = _repository.UnconfirmObject(salesInvoiceDetail);
         // reverse sales receival detail PendingInvoiceQuantity
         DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId);
         _deliveryOrderDetailService.UndoInvoiceObject(deliveryOrderDetail, salesInvoiceDetail.Quantity, _deliveryOrderService);
     }
     return(salesInvoiceDetail);
 }
Example #22
0
 public SalesInvoiceDetail ConfirmObject(SalesInvoiceDetail salesInvoiceDetail, DateTime ConfirmationDate, IDeliveryOrderDetailService _deliveryOrderDetailService)
 {
     salesInvoiceDetail.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(salesInvoiceDetail, this, _deliveryOrderDetailService))
     {
         salesInvoiceDetail = _repository.ConfirmObject(salesInvoiceDetail);
         // update sales receival detail PendingInvoiceQuantity
         DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId);
         _deliveryOrderDetailService.InvoiceObject(deliveryOrderDetail, salesInvoiceDetail.Quantity);
     }
     return(salesInvoiceDetail);
 }
Example #23
0
        public SalesInvoiceDetail CreateObject(int salesInvoiceId, int deliveryOrderDetailId, int quantity, decimal amount,
                                               ISalesInvoiceService _salesInvoiceService, ISalesOrderDetailService _salesOrderDetailService,
                                               IDeliveryOrderDetailService _deliveryOrderDetailService)
        {
            SalesInvoiceDetail salesInvoiceDetail = new SalesInvoiceDetail
            {
                SalesInvoiceId        = salesInvoiceId,
                DeliveryOrderDetailId = deliveryOrderDetailId,
                Quantity = quantity
            };

            return(this.CreateObject(salesInvoiceDetail, _salesInvoiceService, _salesOrderDetailService, _deliveryOrderDetailService));
        }
Example #24
0
        public SalesInvoiceDetail VIsUniqueDeliveryOrderDetail(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceDetailService _salesInvoiceDetail, IDeliveryOrderDetailService _deliveryOrderDetailService)
        {
            IList <SalesInvoiceDetail> details = _salesInvoiceDetail.GetObjectsBySalesInvoiceId(salesInvoiceDetail.SalesInvoiceId);

            foreach (var detail in details)
            {
                if (detail.DeliveryOrderDetailId == salesInvoiceDetail.DeliveryOrderDetailId && detail.Id != salesInvoiceDetail.Id)
                {
                    salesInvoiceDetail.Errors.Add("Generic", "Tidak boleh memiliki lebih dari 2 Sales Receival Detail");
                }
            }
            return(salesInvoiceDetail);
        }
Example #25
0
        public string PrintError(SalesInvoiceDetail obj)
        {
            string erroroutput = "";
            KeyValuePair <string, string> first = obj.Errors.ElementAt(0);

            erroroutput += first.Key + "," + first.Value;
            foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1))
            {
                erroroutput += Environment.NewLine;
                erroroutput += pair.Key + "," + pair.Value;
            }
            return(erroroutput);
        }
Example #26
0
 public SalesInvoiceDetail UpdateObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService,
                                        ISalesOrderDetailService _salesOrderDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService)
 {
     if (_validator.ValidUpdateObject(salesInvoiceDetail, _salesInvoiceService, this, _deliveryOrderDetailService))
     {
         DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId);
         SalesOrderDetail    salesOrderDetail    = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId);
         salesInvoiceDetail.Amount = salesInvoiceDetail.Quantity * salesOrderDetail.Price;
         _repository.UpdateObject(salesInvoiceDetail);
         SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId);
         _salesInvoiceService.CalculateAmountReceivable(salesInvoice, this);
     }
     return(salesInvoiceDetail);
 }
        private List <SalesInvoiceDetail> GetChildOnCreate(SalesInvoice master, SalesInvoiceComplex source)
        {
            List <SalesInvoiceDetail> infos = new List <SalesInvoiceDetail>();
            var wanted = source.ChildList.Where(x => x.IsDirty == true);

            foreach (var item in wanted)
            {
                SalesInvoiceDetail temp = Mapper.Map <SalesInvoiceDetail>(item);
                temp.InvoiceID  = master.InvoiceID;
                temp.LastPerson = IdentityService.GetUserData().UserID;
                temp.LastUpdate = DateTime.Now;
                infos.Add(temp);
            }
            return(infos);
        }
Example #28
0
 public SalesInvoiceDetail CreateObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService,
                                        ISalesOrderDetailService _salesOrderDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService)
 {
     salesInvoiceDetail.Errors = new Dictionary <String, String>();
     if (_validator.ValidCreateObject(salesInvoiceDetail, _salesInvoiceService, this, _deliveryOrderDetailService))
     {
         DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId);
         SalesOrderDetail    salesOrderDetail    = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId);
         salesInvoiceDetail.Amount = salesInvoiceDetail.Quantity * salesOrderDetail.Price;
         salesInvoiceDetail        = _repository.CreateObject(salesInvoiceDetail);
         SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId);
         _salesInvoiceService.CalculateAmountReceivable(salesInvoice, this);
     }
     return(salesInvoiceDetail);
 }
Example #29
0
 public SalesInvoiceDetail VConfirmObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceDetailService _salesInvoiceDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService)
 {
     VHasConfirmationDate(salesInvoiceDetail);
     if (!isValid(salesInvoiceDetail))
     {
         return(salesInvoiceDetail);
     }
     VHasNotBeenConfirmed(salesInvoiceDetail);
     if (!isValid(salesInvoiceDetail))
     {
         return(salesInvoiceDetail);
     }
     VQuantityIsLessThanOrEqualPendingInvoiceQuantity(salesInvoiceDetail, _deliveryOrderDetailService);
     return(salesInvoiceDetail);
 }
        public dynamic UpdateDetail(SalesInvoiceDetail model)
        {
            decimal amount = 0;

            try
            {
                if (!AuthenticationModel.IsAllowed("Edit", Core.Constants.Constant.MenuName.SalesInvoice, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Edit record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }

                var data = _salesInvoiceDetailService.GetObjectById(model.Id);
                data.Quantity = model.Quantity;
                data.DeliveryOrderDetailId = model.DeliveryOrderDetailId;
                model = _salesInvoiceDetailService.UpdateObject(data, _salesInvoiceService, _salesOrderDetailService,
                                                                _deliveryOrderDetailService);
                amount = _salesInvoiceService.GetObjectById(model.SalesInvoiceId).AmountReceivable;
            }
            catch (Exception ex)
            {
                LOG.Error("Update Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors,
                AmountPayable = amount
            }));
        }