Ejemplo n.º 1
0
        public Int32 insertReceivingReceiptItem(Models.TrnReceivingReceiptItem receivingReceiptItem)
        {
            try
            {
                Data.TrnReceivingReceiptItem newReceivingReceiptItem = new Data.TrnReceivingReceiptItem();
                newReceivingReceiptItem.RRId           = receivingReceiptItem.RRId;
                newReceivingReceiptItem.POId           = receivingReceiptItem.POId;
                newReceivingReceiptItem.ItemId         = receivingReceiptItem.ItemId;
                newReceivingReceiptItem.Particulars    = receivingReceiptItem.Particulars;
                newReceivingReceiptItem.UnitId         = receivingReceiptItem.UnitId;
                newReceivingReceiptItem.Quantity       = receivingReceiptItem.Quantity;
                newReceivingReceiptItem.Cost           = receivingReceiptItem.Cost;
                newReceivingReceiptItem.Amount         = receivingReceiptItem.Amount;
                newReceivingReceiptItem.VATId          = receivingReceiptItem.VATId;
                newReceivingReceiptItem.VATPercentage  = receivingReceiptItem.VATPercentage;
                newReceivingReceiptItem.VATAmount      = receivingReceiptItem.VATAmount;
                newReceivingReceiptItem.WTAXId         = receivingReceiptItem.WTAXId;
                newReceivingReceiptItem.WTAXPercentage = receivingReceiptItem.WTAXPercentage;
                newReceivingReceiptItem.WTAXAmount     = receivingReceiptItem.WTAXAmount;
                newReceivingReceiptItem.BranchId       = receivingReceiptItem.BranchId;

                var item = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d;
                newReceivingReceiptItem.BaseUnitId = item.FirstOrDefault().UnitId;

                var conversionUnit = from d in db.MstArticleUnits where d.ArticleId == receivingReceiptItem.ItemId && d.UnitId == receivingReceiptItem.UnitId select d;
                if (conversionUnit.Any())
                {
                    if (conversionUnit.FirstOrDefault().Multiplier > 0)
                    {
                        newReceivingReceiptItem.BaseQuantity = receivingReceiptItem.Quantity * (1 / conversionUnit.FirstOrDefault().Multiplier);
                    }
                    else
                    {
                        newReceivingReceiptItem.BaseQuantity = receivingReceiptItem.Quantity * 1;
                    }
                }
                else
                {
                    newReceivingReceiptItem.BaseQuantity = receivingReceiptItem.Quantity * 1;
                }

                if (conversionUnit.Any())
                {
                    var baseQuantity = receivingReceiptItem.Quantity * (1 / conversionUnit.FirstOrDefault().Multiplier);
                    if (baseQuantity > 0)
                    {
                        newReceivingReceiptItem.BaseCost = (receivingReceiptItem.Amount - receivingReceiptItem.VATAmount) / baseQuantity;
                    }
                    else
                    {
                        newReceivingReceiptItem.BaseCost = receivingReceiptItem.Amount - receivingReceiptItem.VATAmount;
                    }
                }
                else
                {
                    newReceivingReceiptItem.BaseCost = receivingReceiptItem.Amount - receivingReceiptItem.VATAmount;
                }

                db.TrnReceivingReceiptItems.InsertOnSubmit(newReceivingReceiptItem);
                db.SubmitChanges();

                var receivingReceipts = from d in db.TrnReceivingReceipts where d.Id == receivingReceiptItem.RRId select d;
                if (receivingReceipts.Any())
                {
                    // get disbursement line for CVId
                    var disbursementLineCVId = from d in db.TrnDisbursementLines where d.RRId == receivingReceiptItem.RRId select d;

                    Decimal PaidAmount = 0;

                    if (disbursementLineCVId.Any())
                    {
                        var disbursementHeader = from d in db.TrnDisbursements where d.Id == disbursementLineCVId.FirstOrDefault().CVId select d;

                        // get disbursement line for paid amount
                        var disbursementLines = from d in db.TrnDisbursementLines where d.RRId == receivingReceiptItem.RRId select d;

                        if (disbursementLines.Any())
                        {
                            if (disbursementHeader.FirstOrDefault().IsLocked == true)
                            {
                                PaidAmount = disbursementLines.Sum(d => d.Amount);
                            }
                            else
                            {
                                PaidAmount = 0;
                            }
                        }
                    }

                    Decimal amount = 0;

                    var receivingReceiptItems = from d in db.TrnReceivingReceiptItems where d.RRId == receivingReceiptItem.RRId select d;
                    if (receivingReceiptItems.Any())
                    {
                        amount = receivingReceiptItems.Sum(d => d.Amount);
                    }

                    var updatereceivingReceipt = receivingReceipts.FirstOrDefault();

                    updatereceivingReceipt.Amount        = amount;
                    updatereceivingReceipt.PaidAmount    = PaidAmount;
                    updatereceivingReceipt.BalanceAmount = amount - PaidAmount;
                    db.SubmitChanges();
                }

                return(newReceivingReceiptItem.Id);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return(0);
            }
        }
Ejemplo n.º 2
0
        public HttpResponseMessage updateReceivingReceiptItem(String id, Models.TrnReceivingReceiptItem receivingReceiptItem)
        {
            try
            {
                var receivingReceiptItems = from d in db.TrnReceivingReceiptItems where d.Id == Convert.ToInt32(id) select d;
                if (receivingReceiptItems.Any())
                {
                    var updateReceivingReceiptItem = receivingReceiptItems.FirstOrDefault();
                    updateReceivingReceiptItem.RRId           = receivingReceiptItem.RRId;
                    updateReceivingReceiptItem.POId           = receivingReceiptItem.POId;
                    updateReceivingReceiptItem.ItemId         = receivingReceiptItem.ItemId;
                    updateReceivingReceiptItem.Particulars    = receivingReceiptItem.Particulars;
                    updateReceivingReceiptItem.UnitId         = receivingReceiptItem.UnitId;
                    updateReceivingReceiptItem.Quantity       = receivingReceiptItem.Quantity;
                    updateReceivingReceiptItem.Cost           = receivingReceiptItem.Cost;
                    updateReceivingReceiptItem.Amount         = receivingReceiptItem.Amount;
                    updateReceivingReceiptItem.VATId          = receivingReceiptItem.VATId;
                    updateReceivingReceiptItem.VATPercentage  = receivingReceiptItem.VATPercentage;
                    updateReceivingReceiptItem.VATAmount      = receivingReceiptItem.VATAmount;
                    updateReceivingReceiptItem.WTAXId         = receivingReceiptItem.WTAXId;
                    updateReceivingReceiptItem.WTAXPercentage = receivingReceiptItem.WTAXPercentage;
                    updateReceivingReceiptItem.WTAXAmount     = receivingReceiptItem.WTAXAmount;
                    updateReceivingReceiptItem.BranchId       = receivingReceiptItem.BranchId;

                    var item = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d;
                    updateReceivingReceiptItem.BaseUnitId = item.FirstOrDefault().UnitId;

                    var conversionUnit = from d in db.MstArticleUnits where d.ArticleId == receivingReceiptItem.ItemId && d.UnitId == receivingReceiptItem.UnitId select d;
                    if (conversionUnit.Any())
                    {
                        if (conversionUnit.FirstOrDefault().Multiplier > 0)
                        {
                            updateReceivingReceiptItem.BaseQuantity = receivingReceiptItem.Quantity * (1 / conversionUnit.FirstOrDefault().Multiplier);
                        }
                        else
                        {
                            updateReceivingReceiptItem.BaseQuantity = receivingReceiptItem.Quantity * 1;
                        }
                    }
                    else
                    {
                        updateReceivingReceiptItem.BaseQuantity = receivingReceiptItem.Quantity * 1;
                    }

                    if (conversionUnit.Any())
                    {
                        var baseQuantity = receivingReceiptItem.Quantity * (1 / conversionUnit.FirstOrDefault().Multiplier);
                        if (baseQuantity > 0)
                        {
                            updateReceivingReceiptItem.BaseCost = (receivingReceiptItem.Amount - receivingReceiptItem.VATAmount) / baseQuantity;
                        }
                        else
                        {
                            updateReceivingReceiptItem.BaseCost = receivingReceiptItem.Amount - receivingReceiptItem.VATAmount;
                        }
                    }
                    else
                    {
                        updateReceivingReceiptItem.BaseCost = receivingReceiptItem.Amount - receivingReceiptItem.VATAmount;
                    }

                    db.SubmitChanges();

                    var receivingReceipts = from d in db.TrnReceivingReceipts where d.Id == receivingReceiptItem.RRId select d;
                    if (receivingReceipts.Any())
                    {
                        Decimal PaidAmount = 0;

                        // get disbursement line for CVId
                        var disbursementLineCVId = from d in db.TrnDisbursementLines where d.RRId == receivingReceiptItem.RRId select d;

                        if (disbursementLineCVId.Any())
                        {
                            var disbursementHeader = from d in db.TrnDisbursements where d.Id == disbursementLineCVId.FirstOrDefault().CVId select d;

                            // get disbursement line for paid amount
                            var disbursementLines = from d in db.TrnDisbursementLines where d.RRId == receivingReceiptItem.RRId select d;
                            if (disbursementLines.Any())
                            {
                                if (disbursementHeader.FirstOrDefault().IsLocked == true)
                                {
                                    PaidAmount = disbursementLines.Sum(d => d.Amount);
                                }
                                else
                                {
                                    PaidAmount = 0;
                                }
                            }
                        }

                        Decimal amount = 0;

                        var receivingReceiptItemsByRRId = from d in db.TrnReceivingReceiptItems where d.RRId == receivingReceiptItem.RRId select d;
                        if (receivingReceiptItemsByRRId.Any())
                        {
                            amount = receivingReceiptItemsByRRId.Sum(d => d.Amount);
                        }

                        var updatereceivingReceipt = receivingReceipts.FirstOrDefault();

                        updatereceivingReceipt.Amount        = amount;
                        updatereceivingReceipt.PaidAmount    = PaidAmount;
                        updatereceivingReceipt.BalanceAmount = amount - PaidAmount;
                        db.SubmitChanges();
                    }

                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound));
                }
            }
            catch
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }
Ejemplo n.º 3
0
        public HttpResponseMessage insertReceivingReceiptItemsFromPurchaseOrderItems(Models.TrnReceivingReceiptItem receivingReceiptItem)
        {
            try
            {
                var vatId           = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d.InputTaxId;
                var vatPercentage   = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d.MstTaxType1.TaxRate;
                var vatIsInclusive  = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d.MstTaxType1.IsInclusive;
                var wtaxId          = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d.WTaxTypeId;
                var wtaxPercentage  = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d.MstTaxType2.TaxRate;
                var wtaxIsInclusive = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d.MstTaxType2.IsInclusive;

                Data.TrnReceivingReceiptItem newReceivingReceiptItem = new Data.TrnReceivingReceiptItem();
                newReceivingReceiptItem                = new Data.TrnReceivingReceiptItem();
                newReceivingReceiptItem.RRId           = receivingReceiptItem.RRId;
                newReceivingReceiptItem.POId           = receivingReceiptItem.POId;
                newReceivingReceiptItem.ItemId         = receivingReceiptItem.ItemId;
                newReceivingReceiptItem.Particulars    = receivingReceiptItem.Particulars;
                newReceivingReceiptItem.UnitId         = receivingReceiptItem.BaseUnitId;
                newReceivingReceiptItem.Quantity       = receivingReceiptItem.BaseQuantity;
                newReceivingReceiptItem.Cost           = receivingReceiptItem.BaseCost;
                newReceivingReceiptItem.Amount         = receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost;
                newReceivingReceiptItem.VATId          = vatId.FirstOrDefault();
                newReceivingReceiptItem.VATPercentage  = vatPercentage.FirstOrDefault();
                newReceivingReceiptItem.VATAmount      = computeVATAmount(receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost, vatPercentage.FirstOrDefault(), vatIsInclusive.FirstOrDefault());
                newReceivingReceiptItem.WTAXId         = wtaxId.FirstOrDefault();
                newReceivingReceiptItem.WTAXPercentage = wtaxPercentage.FirstOrDefault();
                newReceivingReceiptItem.WTAXAmount     = computeWTAXAmount(receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost, vatPercentage.FirstOrDefault(), wtaxPercentage.FirstOrDefault(), wtaxIsInclusive.FirstOrDefault());
                newReceivingReceiptItem.BranchId       = receivingReceiptItem.BranchId;

                var mstArticleUnit = from d in db.MstArticles where d.Id == receivingReceiptItem.ItemId select d;
                newReceivingReceiptItem.BaseUnitId = mstArticleUnit.FirstOrDefault().UnitId;

                var conversionUnit = from d in db.MstArticleUnits where d.ArticleId == receivingReceiptItem.ItemId && d.UnitId == receivingReceiptItem.BaseUnitId select d;
                if (conversionUnit.Any())
                {
                    if (conversionUnit.FirstOrDefault().Multiplier > 0)
                    {
                        newReceivingReceiptItem.BaseQuantity = receivingReceiptItem.BaseQuantity * (1 / conversionUnit.FirstOrDefault().Multiplier);
                    }
                    else
                    {
                        newReceivingReceiptItem.BaseQuantity = receivingReceiptItem.BaseQuantity * 1;
                    }
                }
                else
                {
                    newReceivingReceiptItem.BaseQuantity = receivingReceiptItem.BaseQuantity * 1;
                }

                if (conversionUnit.Any())
                {
                    var baseQuantity = receivingReceiptItem.BaseQuantity * (1 / conversionUnit.FirstOrDefault().Multiplier);
                    if (baseQuantity > 0)
                    {
                        newReceivingReceiptItem.BaseCost = ((receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost) - (computeVATAmount(receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost, vatPercentage.FirstOrDefault(), vatIsInclusive.FirstOrDefault()))) / baseQuantity;
                    }
                    else
                    {
                        newReceivingReceiptItem.BaseCost = (receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost) - (computeVATAmount(receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost, vatPercentage.FirstOrDefault(), vatIsInclusive.FirstOrDefault()));
                    }
                }
                else
                {
                    newReceivingReceiptItem.BaseCost = (receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost) - (computeVATAmount(receivingReceiptItem.BaseQuantity * receivingReceiptItem.BaseCost, vatPercentage.FirstOrDefault(), vatIsInclusive.FirstOrDefault()));
                }

                db.TrnReceivingReceiptItems.InsertOnSubmit(newReceivingReceiptItem);
                db.SubmitChanges();

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }