void save() { //grvLink.ClearColumnsFilter(); * (1 + 0.3M * (item.Qty >= 2 ? item.Qty - 1 : 0)) / item.Qty colC_QuotationDetailID grvLink.FocusedRowHandle = -1; using (WaitDialogForm fWait = new WaitDialogForm("Vui lòng chờ trong giây lát...", "Đang xử lý...")) { for (int i = 0; i < grvLink.RowCount; i++) { int id = TextUtils.ToInt(grvLink.GetRowCellValue(i, colID)); if (id == 0) { return; } decimal pricePerDay = TextUtils.ToDecimal(grvLink.GetRowCellValue(i, colPricePerDay)); int costID = TextUtils.ToInt(grvLink.GetRowCellValue(i, colC_CostID)); decimal qty = TextUtils.ToDecimal(grvLink.GetRowCellValue(i, colQty)); C_CostQuotationItemLinkModel link = (C_CostQuotationItemLinkModel)C_CostQuotationItemLinkBO.Instance.FindByPK(id); link.NumberDay = TextUtils.ToDecimal(grvLink.GetRowCellValue(i, colNumberDay)); link.PersonNumber = TextUtils.ToDecimal(grvLink.GetRowCellValue(i, colPersonNumber)); link.TotalR = link.NumberDay * link.PersonNumber; if (costID == 61)//nhân công thiết kế { //int quotationDetailID = TextUtils.ToInt(grvLink.GetRowCellValue(i, colC_QuotationDetailID)); //C_QuotationDetailModel item = (C_QuotationDetailModel)C_QuotationDetailBO.Instance.FindByPK(quotationDetailID); link.TotalR *= (1 + 0.3M * (qty - 1)) / qty; } link.Price = link.TotalR * pricePerDay; C_CostQuotationItemLinkBO.Instance.Update(link); } IsSaved = true; } MessageBox.Show("Lưu trữ thành công.", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); }
void resetAll() { grvLink.FocusedRowHandle = -1; decimal totalNC = 0; string sql = "update C_QuotationDetail set TotalNC = 0 where C_QuotationID = " + C_QuotationID; LibQLSX.ExcuteSQL(sql); using (WaitDialogForm fWait = new WaitDialogForm("Vui lòng chờ trong giây lát...", "Đang xử lý...")) { for (int i = 0; i < grvLink.RowCount; i++) { int id = TextUtils.ToInt(grvLink.GetRowCellValue(i, colID)); if (id == 0) { return; } int costID = TextUtils.ToInt(grvLink.GetRowCellValue(i, colC_CostID)); int quotationDetailID = TextUtils.ToInt(grvLink.GetRowCellValue(i, colC_QuotationDetailID)); C_QuotationDetailModel quotationDetail = (C_QuotationDetailModel)C_QuotationDetailBO.Instance.FindByPK(quotationDetailID); C_CostModel cost = (C_CostModel)C_CostBO.Instance.FindByPK(costID); C_CostProductGroupLinkModel group = (C_CostProductGroupLinkModel)C_CostProductGroupLinkBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID) .And(new Expression("C_ProductGroupID", quotationDetail.C_ProductGroupID)))[0]; decimal pricePerDay = TextUtils.ToDecimal(grvLink.GetRowCellValue(i, colPricePerDay)); decimal qty = TextUtils.ToDecimal(grvLink.GetRowCellValue(i, colQty)); C_CostQuotationItemLinkModel link = (C_CostQuotationItemLinkModel)C_CostQuotationItemLinkBO.Instance.FindByPK(id); link.PersonNumber = group.PersonNumber;// TextUtils.ToDecimal(drs[0]["PersonNumber"]); if (group.IsFix == 1) { link.NumberDay = group.NumberDay;// TextUtils.ToDecimal(drs[0]["NumberDay"]); } else { link.NumberDay = group.VtuPercent * quotationDetail.PriceVT / cost.Price; } link.TotalR = link.NumberDay * link.PersonNumber; if (cost.ID == 61)//phòng thiết kế { link.TotalR *= (1 + 0.3M * (quotationDetail.Qty - 1)) / quotationDetail.Qty; } link.Price = link.TotalR * cost.Price; C_CostQuotationItemLinkBO.Instance.Update(link); quotationDetail.TotalNC += link.Price; C_QuotationDetailBO.Instance.Update(quotationDetail); } IsSaved = true; } MessageBox.Show("Reset thành công.", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); }
public static decimal CalculateCostPB(C_QuotationDetailModel item, C_QuotationModel thisQotation, decimal price) { decimal totalPB = 0; ArrayList arr = C_CostBO.Instance.FindByExpression(new Expression("IsUse", 1).And(new Expression("IsWithProject", 0)).And(new Expression("IsDirectCost", 0))); DataTable dtCostProductGroup = LibQLSX.Select("select * from vC_CostProductGroupLink where [C_ProductGroupID] = " + item.C_ProductGroupID); foreach (var c in arr) { C_CostModel cost = (C_CostModel)c; DataRow[] drs = dtCostProductGroup.Select("C_CostID = " + cost.ID); if (drs.Length == 0) { continue; } C_CostQuotationItemLinkModel link = new C_CostQuotationItemLinkModel(); ArrayList arrLink = C_CostQuotationItemLinkBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID).And(new Expression("C_QuotationDetailID", item.ID))); if (arrLink != null && arrLink.Count > 0) { link = (C_CostQuotationItemLinkModel)arrLink[0]; } link.C_CostID = cost.ID; link.C_QuotationDetailID = item.ID; link.IsDirect = cost.IsDirectCost; if (link.IsDirect == 0) { decimal valuePercent = TextUtils.ToDecimal(drs[0]["ValuePercent"]); link.Price = valuePercent * item.Qty * price; if (cost.IsDeliveryTime == 1) { link.Price *= thisQotation.DeliveryTime / 288; } if (cost.ID == 72 || cost.ID == 73) { if (cost.ID != thisQotation.DepartmentId) { link.Price = 0; } } totalPB += link.Price; } } return(totalPB); }
private void resetToolStripMenuItem_Click(object sender, EventArgs e) { int id = TextUtils.ToInt(grvLink.GetFocusedRowCellValue(colID)); if (id == 0) { return; } int costID = TextUtils.ToInt(grvLink.GetFocusedRowCellValue(colC_CostID)); int quotationDetailID = TextUtils.ToInt(grvLink.GetFocusedRowCellValue(colC_QuotationDetailID)); C_QuotationDetailModel quotationDetail = (C_QuotationDetailModel)C_QuotationDetailBO.Instance.FindByPK(quotationDetailID); C_CostModel cost = (C_CostModel)C_CostBO.Instance.FindByPK(costID); C_CostProductGroupLinkModel group = (C_CostProductGroupLinkModel)C_CostProductGroupLinkBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID) .And(new Expression("C_ProductGroupID", quotationDetail.C_ProductGroupID)))[0]; decimal pricePerDay = TextUtils.ToDecimal(grvLink.GetFocusedRowCellValue(colPricePerDay)); decimal qty = TextUtils.ToDecimal(grvLink.GetFocusedRowCellValue(colQty)); C_CostQuotationItemLinkModel link = (C_CostQuotationItemLinkModel)C_CostQuotationItemLinkBO.Instance.FindByPK(id); quotationDetail.TotalNC -= link.Price; link.PersonNumber = group.PersonNumber;// TextUtils.ToDecimal(drs[0]["PersonNumber"]); if (group.IsFix == 1) { link.NumberDay = group.NumberDay;// TextUtils.ToDecimal(drs[0]["NumberDay"]); } else { link.NumberDay = group.VtuPercent * quotationDetail.PriceVT / cost.Price; } link.TotalR = link.NumberDay * link.PersonNumber; if (cost.ID == 61)//phòng thiết kế { link.TotalR *= (1 + 0.3M * (quotationDetail.Qty - 1)) / quotationDetail.Qty; } link.Price = link.TotalR * cost.Price; C_CostQuotationItemLinkBO.Instance.Update(link); quotationDetail.TotalNC += link.Price; C_QuotationDetailBO.Instance.Update(quotationDetail); loadData(); MessageBox.Show("Reset thành công.", TextUtils.Caption, MessageBoxButtons.OK, MessageBoxIcon.Information); }
void calculateCost(C_QuotationDetailModel item, decimal costVT) { if (item.C_ProductGroupID == 0) { C_CostQuotationItemLinkBO.Instance.DeleteByAttribute("C_QuotationDetailID", item.ID); item.TotalNC = 0; item.TotalPB = 0; C_QuotationDetailBO.Instance.Update(item); } else { //decimal priceThucThu = (item.PriceHD - Quotation.CustomerPercent / 100 * item.PriceHD - Quotation.CustomerCash * item.PriceVT / costVT); ArrayList arr = C_CostBO.Instance.FindByExpression(new Expression("IsUse", 1).And(new Expression("IsWithProject", 0))); DataTable dtCostProductGroup = LibQLSX.Select("select * from vC_CostProductGroupLink where [C_ProductGroupID] = " + item.C_ProductGroupID); decimal totalNC = 0; decimal totalPB = 0; foreach (var c in arr) { C_CostModel cost = (C_CostModel)c; DataRow[] drs = dtCostProductGroup.Select("C_CostID = " + cost.ID); if (drs.Length == 0) { continue; } C_CostQuotationItemLinkModel link = new C_CostQuotationItemLinkModel(); ArrayList arrLink = C_CostQuotationItemLinkBO.Instance.FindByExpression(new Expression("C_CostID", cost.ID).And(new Expression("C_QuotationDetailID", item.ID))); if (arrLink != null && arrLink.Count > 0) { link = (C_CostQuotationItemLinkModel)arrLink[0]; } link.C_CostID = cost.ID; link.C_QuotationDetailID = item.ID; link.IsDirect = cost.IsDirectCost; if (link.IsDirect == 1) { #region Chi phí nhân công if (link.ID == 0) { if (cost.Price == 0) { link.Price = 0; } else { link.PersonNumber = TextUtils.ToDecimal(drs[0]["PersonNumber"]); int isFix = TextUtils.ToInt(drs[0]["IsFix"]); if (isFix == 1) { link.NumberDay = TextUtils.ToDecimal(drs[0]["NumberDay"]); } else { link.NumberDay = TextUtils.ToDecimal(drs[0]["VtuPercent"]) * item.PriceVT / cost.Price; } link.TotalR = link.NumberDay * link.PersonNumber; if (cost.ID == 61)//phòng thiết kế { link.TotalR = link.NumberDay * link.PersonNumber * (1 + 0.3M * (item.Qty - 1)) / item.Qty; //link.Price = (link.NumberDay * link.PersonNumber) * (1 + 0.3M * (item.Qty - 1)) / item.Qty * cost.Price; } link.Price = link.TotalR * cost.Price; } } totalNC += link.Price; #endregion } else { #region Chi phí phân bổ if (item.PriceHD > 0) { decimal valuePercent = TextUtils.ToDecimal(drs[0]["ValuePercent"]); link.Price = valuePercent / 100 * item.PriceReal; if (cost.IsDeliveryTime == 1) { link.Price *= Quotation.DeliveryTime / 288; } if (cost.ID == 72 || cost.ID == 73) { if (cost.ID != Quotation.DepartmentId) { link.Price = 0; } } totalPB += link.Price; } #endregion } if (link.ID == 0) { C_CostQuotationItemLinkBO.Instance.Insert(link); } else { C_CostQuotationItemLinkBO.Instance.Update(link); } item.TotalNC = totalNC; item.TotalPB = totalPB; C_QuotationDetailBO.Instance.Update(item); } } }
protected C_CostQuotationItemLinkFacade(C_CostQuotationItemLinkModel model) : base(model) { }