Exemplo n.º 1
0
        public List <BestPriceReturn> GetPrice(RequisitionData request)
        {
            List <BestPriceReturn> bestPriceReturnList = new List <BestPriceReturn>();

            CustomerScore customerScore = GetCustomerScoreAsync(request.CpfCnpjCustomer).Result;

            foreach (Product product in request.Products)
            {
                List <ReturnPrice> returnPriceList = new List <ReturnPrice>();

                ReturnPrice baseReturnprice = GetPriceAzulAsync(product.Id.ToString(), request.StoreId.ToString(), customerScore.Score != null).Result;

                ReturnPrice priceEncarte = GetPriceEncarte(baseReturnprice, customerScore, request.StoreId);

                if (priceEncarte.SalePrice > 0)
                {
                    returnPriceList.Add(priceEncarte);
                }

                if (customerScore.Score != null)
                {
                    switch ((MedalCode)Enum.Parse(typeof(MedalCode), customerScore.Score.Id))
                    {
                    case MedalCode.Ouro:
                        returnPriceList.Add(GetPriceOuro(baseReturnprice, request.StoreId, MedalCode.Ouro));
                        break;

                    case MedalCode.Senior:
                        returnPriceList.Add(GetPriceSenior(baseReturnprice, request.StoreId, MedalCode.Senior));
                        break;

                    case MedalCode.Hapvida:
                        returnPriceList.Add(GetPriceHapvida(baseReturnprice, request.StoreId, MedalCode.Senior));
                        break;

                    default:
                        returnPriceList.Add(baseReturnprice);
                        break;
                    }
                }
                else
                {
                    returnPriceList.Add(GetPriceNotRegistered(baseReturnprice));
                }

                bestPriceReturnList.Add(GetBestPrice(returnPriceList));
            }

            return(bestPriceReturnList);
        }
Exemplo n.º 2
0
        //public PointOfSaleRefData GetRefRequisitionItem(double refRequisition)
        //{
        //    PointOfSaleRefData data = new PointOfSaleRefData();
        //    DataTable dt = ABB.DAL.Sales.PointOfSaleDAL.GetRefRequisition(refRequisition);
        //    foreach (DataRow dRow in dt.Rows)
        //    {
        //        data.REQUISITION = Convert.ToDouble(dRow["LOID"]);
        //        data.REQUISITIONCODE = dRow["REQUISITIONCODE"].ToString();
        //        data.CUSTOMER = Convert.ToDouble(dRow["CUSTOMER"]);
        //        data.CUSTOMERCODE = dRow["CODE"].ToString();
        //        data.CUSTOMERDISCOUNT = Convert.ToDouble(dRow["CUSTOMERDISCOUNT"]);
        //    }
        //    DataTable dtItem = ABB.DAL.Sales.PointOfSaleDAL.GetRefRequisitionItem(refRequisition);
        //    foreach (DataRow dRow in dtItem.Rows)
        //    {
        //        PointOfSaleRefItemData itemData = new PointOfSaleRefItemData();
        //        itemData.PRODUCT = Convert.ToDouble(dRow["PRODUCT"]);
        //        itemData.BARCODE = dRow["BARCODE"].ToString();
        //        itemData.DISCOUNT = Convert.ToDouble(dRow["DISCOUNT"]);
        //        itemData.ISVAT = dRow["ISVAT"].ToString();
        //        itemData.NAME = dRow["NAME"].ToString();
        //        itemData.PRICE = Convert.ToDouble(dRow["PRICE"]);
        //        itemData.QTY = Convert.ToDouble(dRow["QTY"]);
        //        itemData.REFREQUISITIONITEM = Convert.ToDouble(dRow["LOID"]);
        //        itemData.UNIT = Convert.ToDouble(dRow["UNIT"]);
        //        itemData.UNITNAME = dRow["UNITNAME"].ToString();

        //        data.REFITEM.Add(itemData);
        //    }
        //    return data;
        //}

        public bool ValidateData(RequisitionData data)
        {
            bool ret = true;
            if (data.CUSTOMER == 0)
            {
                ret = false;
                _error = "¡ÃسÒÃкØÅÙ¡¤éÒ";
            }
            else if (data.REQUISITIONITEM.Count == 0)
            {
                ret = false;
                _error = "¡ÃسÒÃкØÃÒ¡ÒÃÊÔ¹¤éÒ";
            }
            return ret;
        }
Exemplo n.º 3
0
 private void SetData(RequisitionData data)
 {
     this.txtCreateBy.Text = data.CREATEBY;
     this.txtStatus.Text = data.STATUS;
     this.txtStatusName.Text = Appz.GetStatusName(data.STATUS);
     this.txtVat.Text = ABB.Flow.SysConfigFlow.GetValue(Constz.ConfigName.VAT);
     this.txtCode.Text = data.CODE;
     this.dtpReserveDate.Value = data.RESERVEDATE;
     this.txtReserveDate.Text = data.RESERVEDATE.ToString(Constz.DateFormat);
     this.txtCustomer.Text = data.CUSTOMER.ToString();
     SetCustomerDetail(data.CUSTOMER);
     this.txtTotal.Text = data.TOTAL.ToString(Constz.DblFormat);
     this.txtTotalDiscount.Text = data.TOTDIS.ToString(Constz.DblFormat);
     this.txtTotalVat.Text = data.TOTVAT.ToString(Constz.DblFormat);
     this.txtGrandTotal.Text = data.GRANDTOT.ToString(Constz.DblFormat);
     this.txtReason.Text = data.REASON;
     this.txtRemark.Text = data.REMARK;
     this.grvSupport.Rows.Clear();
     for (int i = 0; i < data.REQUISITIONITEM.Count; ++i)
     {
         RequisitionItemData itemData = (RequisitionItemData)data.REQUISITIONITEM[i];
         DataGridViewRow gRow = (DataGridViewRow)this.grvSupport.Rows[this.grvSupport.NewRowIndex].Clone();
         gRow.Cells[indexPRODUCT].Value = itemData.PRODUCT;
         gRow.Cells[indexUNIT].Value = itemData.UNIT;
         gRow.Cells[indexORDERNO].Value = i + 1;
         gRow.Cells[indexBARCODE].Value = itemData.BarCode;
         gRow.Cells[indexNAME].Value = itemData.ProductName;
         gRow.Cells[indexQTY].Value = itemData.QTY;
         gRow.Cells[indexUNITNAME].Value = itemData.UnitName;
         gRow.Cells[indexPRICE].Value = itemData.PRICE;
         gRow.Cells[indexDISCOUNT].Value = itemData.DISCOUNT;
         gRow.Cells[indexNETPRICE].Value = (itemData.PRICE - itemData.DISCOUNT) * itemData.QTY;
         gRow.Cells[indexISVAT].Value = (itemData.ISVAT == Constz.VAT.Included.Code);
         gRow.Cells[indexNORMALDISCOUNT].Value = itemData.DISCOUNT;
         this.grvSupport.Rows.Add(gRow);
     }
     if (data.STATUS != Constz.Requisition.Status.Waiting.Code)
     {
         this.btnSave.Visible = false;
         this.btnSubmit.Visible = false;
         this.btnSearchCustomer.Enabled = false;
         this.grvSupport.Columns[indexSEARCH].Visible = false;
         Appz.FormatDataGridView(this.grvSupport, false, false, true);
     }
 }
Exemplo n.º 4
0
        public IActionResult GetBestPrice([FromBody] RequisitionData request)
        {
            try
            {
                List <BestPriceReturn> bestPrice = _productPriceService.GetPrice(request);

                if (bestPrice == null)
                {
                    return(NotFound());
                }

                return(Ok(bestPrice));
            }
            catch (Exception e)
            {
                return(BadRequest(e));
            }
        }
Exemplo n.º 5
0
        public IActionResult GetBestPrice([FromBody] RequisitionData request)
        {
            try
            {
                /*
                 * Identificar a medalha do cliente.
                 * Identificar o percentual de desconto da medalha para aquele produto
                 * Pegar o preço da medalha e preço segmentado caso seja Ouro ou Senior
                 * Chamar api de preço base caso seja Azul
                 */



                //    List<Product> products = new List<Product>();
                //    products.Add(new Product { Id = 10 });
                //    products.Add(new Product { Id = 11 });
                //    Request req = new Request
                //    {
                //        CpfcnpjCustomer = "1234567",
                //        StoreId = 100,
                //        Products = products
                //    };
                //    var json = new JavaScriptSerializer().Serialize(req);
                //    Console.WriteLine(json);
                List <Price> priceList = new List <Price>();

                var data = GetPriceController.GetBestPrice(priceList);

                return(Ok(data));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Erro ao tentar obter dados");
                return(new StatusCodeResult(500));
            }
        }
Exemplo n.º 6
0
 private void setStatusRequisition(string active,string status)
 {
     bool rt = true;
     ArrayList arr = new ArrayList();
     ReturnSearchFlow csFlow = new ReturnSearchFlow();
     RequisitionData dr = new RequisitionData();
     dr.CODE = txtRqCode.Text.Trim();
     dr.ACTIVE = active.ToString();
     dr.STATUS = status.ToString();
     arr.Add(dr);
     rt = csFlow.UpdateRequisition_Choose(Appz.CurrentUserData.UserID.ToString(), arr);
 }
Exemplo n.º 7
0
        public double InsertRequisition(string UserId, RequisitionData data)
        {
            Boolean ret = true;
            RequisitionDAL oDAL = new RequisitionDAL();
            oDAL.REQDATE = Convert.ToDateTime(data.REQDATE);
            oDAL.REQUISITIONTYPE = Convert.ToDouble(data.REQUISITIONTYPE);
            oDAL.STATUS = data.STATUS.ToString();
            oDAL.WAREHOUSE = Convert.ToDouble(data.WAREHOUSE);
            oDAL.RESERVEDATE = Convert.ToDateTime(data.RESERVEDATE);
            oDAL.ACTIVE = data.ACTIVE.ToString();

            ret = oDAL.InsertCurrentData(UserId, null);

            if (ret == false)
            {
                _error = oDAL.ErrorMessage;
                return 0;
            }
            else
                return oDAL.LOID;
        }
Exemplo n.º 8
0
        private RequisitionData GetData()
        {
            RequisitionData data = new RequisitionData();
            data.LOID = Convert.ToDouble(this.txtLOID.Text == "" ? "0" : this.txtLOID.Text);
            data.ACTIVE = Constz.ActiveStatus.Active;
            data.CODE = this.txtCode.Text.Trim();
            data.CUSTOMER = Convert.ToDouble(this.txtCustomer.Text == "" ? "0" : this.txtCustomer.Text);
            data.GRANDTOT = Convert.ToDouble(this.txtGrandTotal.Text == "" ? "0" : this.txtGrandTotal.Text);
            data.STATUS = this.txtStatus.Text.Trim();
            data.TOTAL = Convert.ToDouble(this.txtTotal.Text == "" ? "0" : this.txtTotal.Text);
            data.TOTDIS = Convert.ToDouble(this.txtTotalDiscount.Text == "" ? "0" : this.txtTotalDiscount.Text);
            data.TOTVAT = Convert.ToDouble(this.txtTotalVat.Text == "" ? "0" : this.txtTotalVat.Text);
            data.VAT = Convert.ToDouble(this.txtVat.Text == "" ? "0" : this.txtVat.Text);
            data.WAREHOUSE = Appz.CurrentUserData.Warehouse;
            data.RESERVEDATE = dtpReserveDate.Value.Date;
            data.REASON = this.txtReason.Text.Trim();
            data.REMARK = this.txtRemark.Text.Trim();

            foreach (DataGridViewRow gRow in this.grvSupport.Rows)
            {
                RequisitionItemData itemData = new RequisitionItemData();
                if (!gRow.IsNewRow)
                {
                    itemData.ACTIVE = Constz.ActiveStatus.Active;
                    itemData.DISCOUNT = Convert.ToDouble(gRow.Cells[indexDISCOUNT].Value);
                    itemData.ISVAT = (Convert.ToBoolean(gRow.Cells[indexISVAT].Value) ? Constz.VAT.Included.Code : Constz.VAT.NotIncluded.Code);
                    itemData.NETPRICE = Convert.ToDouble(gRow.Cells[indexNETPRICE].Value);
                    itemData.PRICE = Convert.ToDouble(gRow.Cells[indexPRICE].Value);
                    itemData.PRODUCT = Convert.ToDouble(gRow.Cells[indexPRODUCT].Value);
                    itemData.QTY = Convert.ToDouble(gRow.Cells[indexQTY].Value);
                    itemData.UNIT = Convert.ToDouble(gRow.Cells[indexUNIT].Value);
                    data.REQUISITIONITEM.Add(itemData);
                }
            }

            return data;
        }
Exemplo n.º 9
0
 public bool DeleteRequisition(RequisitionData data)
 {
     bool ret = true;
     ret = V_SUPPORT_LIST_DAL.DeleteRequisition(data);
     return ret;
 }
Exemplo n.º 10
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            bool ret = true;
            if (Appz.OpenQuestionDialog("µéͧ¡ÒÃźÃÒ¡ÒÃãªèËÃ×ÍäÁè?") == DialogResult.OK)
            {
                ArrayList arrLOID = new ArrayList();
                ArrayList arr = new ArrayList();
                SupportSearchFlow csFlow = new SupportSearchFlow();

                for (int i = 0; i < grvSupportSearch.Rows.Count; i++)
                {
                    DataGridViewCheckBoxCell maCell = (DataGridViewCheckBoxCell)this.grvSupportSearch.Rows[i].Cells["CHKAPPROVE"];

                    if (maCell.FormattedValue.Equals(true))
                    {
                        RequisitionData dr = new RequisitionData();
                        arrLOID.Add(grvSupportSearch.Rows[i].Cells["RQLOID"].Value.ToString());
                        arr.Add(dr);
                    }
                }
                ret = csFlow.DeleteReq_ReqItemData(arrLOID);
                if (ret == true)
                {
                    Appz.OpenInformationDialog("źÃÒ¡ÒÃàÃÕºÃéÍÂ");
                }

                else
                {
                    Appz.OpenWarningDialog(csFlow.ErrorMessage);
                }

                LoadData();
            }
        }
Exemplo n.º 11
0
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            bool ret = true;
            if (Appz.OpenQuestionDialog("µéͧ¡ÒÃÊ觽èÒ¢ÒÂãªèËÃ×ÍäÁè?") == DialogResult.OK)
            {
                ArrayList arrLOID = new ArrayList();
                ArrayList arr = new ArrayList();
                SupportSearchFlow csFlow = new SupportSearchFlow();

                for (int i = 0; i < grvSupportSearch.Rows.Count; i++)
                {
                    DataGridViewCheckBoxCell maCell = (DataGridViewCheckBoxCell)this.grvSupportSearch.Rows[i].Cells["CHKAPPROVE"];
                    if (maCell.FormattedValue.Equals(true))
                    {
                        RequisitionData dr = new RequisitionData();
                        arrLOID.Add(grvSupportSearch.Rows[i].Cells["RQLOID"].Value.ToString());
                        dr.ACTIVE = "1";
                        dr.STATUS = "AP";
                        arr.Add(dr);
                    }
                }
                ret = csFlow.RequisitionApprove(Appz.CurrentUserData.UserID, arrLOID);
                if (ret == true)
                {
                    Appz.OpenInformationDialog("Ê觽èÒ¢ÒÂàÃÕºÃéÍÂ");
                }
                else
                {
                    Appz.OpenWarningDialog(csFlow.ErrorMessage);
                }
                LoadData();
            }
        }  
Exemplo n.º 12
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            bool ret = true;
            bool rt = true;
            if (Appz.OpenQuestionDialog("µéͧ¡ÒÃźÃÒ¡ÒÃãªèËÃ×ÍäÁè?") == DialogResult.OK)
            {
                ArrayList arrLOID = new ArrayList();
                ArrayList arr = new ArrayList();
                ReturnSearchFlow csFlow = new ReturnSearchFlow();
                
                for (int i = 0; i < grvReturnSearch.Rows.Count; i++)
                {
                    DataGridViewCheckBoxCell maCell = (DataGridViewCheckBoxCell)this.grvReturnSearch.Rows[i].Cells["CHKAPPROVE"];

                    if (maCell.FormattedValue.Equals(true))
                    {
                        RequisitionData dr = new RequisitionData();
                        arrLOID.Add(grvReturnSearch.Rows[i].Cells["SILOID"].Value.ToString());
                       // arr.Add(grvReturnSearch.Rows[i].Cells["RQCODE"].Value.ToString()); 
                        dr.CODE = grvReturnSearch.Rows[i].Cells["RQCODE"].Value.ToString();
                        dr.ACTIVE = "1";
                        dr.STATUS = "AP";
                        arr.Add(dr);
                    }
                }
                ret = csFlow.DeleteStockIn_StockInitemData(Appz.CurrentUserData.UserID, arrLOID);
                if (ret == true)
                {
                    rt = csFlow.UpdateRequisition_Choose(Appz.CurrentUserData.UserID.ToString(), arr);
                    Appz.OpenInformationDialog("źÃÒ¡ÒÃàÃÕºÃéÍÂ");
                }
                    
                else
                {
                    Appz.OpenWarningDialog(csFlow.ErrorMessage);
                }
                    
                LoadData();
            }
        }
Exemplo n.º 13
0
        private void btnNew_Click(object sender, EventArgs e)
        {
            if (Appz.OpenQuestionDialog("µéͧ¡ÒÃÊÃéÒ§ÃÒ¡ÒÃãËÁèãªèËÃ×ÍäÁè") == DialogResult.OK)
            {
                SupportSearchFlow csFlow = new SupportSearchFlow();
                RequisitionData csData = new RequisitionData();
                string str_today = getDateToday();
                csData.REQUISITIONTYPE = Constz.Requisition.RequisitionType.REQ04;
                csData.STATUS = Constz.Requisition.Status.Waiting.Code;
                csData.REQDATE = Convert.ToDateTime(str_today);
                csData.WAREHOUSE = Appz.CurrentUserData.Warehouse;
                csData.RESERVEDATE = Convert.ToDateTime(str_today);
                csData.ACTIVE = Constz.ActiveStatus.Active;
                csData.VAT = Convert.ToDouble(ABB.Flow.SysConfigFlow.GetValue(Constz.ConfigName.VAT));
                
                double loid;

                //insert Requisition
                loid = csFlow.InsertRequisition(Appz.CurrentUserData.UserID.ToString(), csData);
                if (loid == 0)
                    MessageBox.Show(csFlow.ErrorMessage);
                else
                    Openfrm(loid);

                LoadData();
            }
        }
Exemplo n.º 14
0
 public bool UpdateRequisition(string userID, RequisitionData data)
 {
     bool ret = true;
     V_SUPPORT_LIST_DAL v_spport_listt_dal = new V_SUPPORT_LIST_DAL();
     ret = v_spport_listt_dal.UpdateRequsitionData(userID.ToString(), data);
     if (ret != true)
     {
         _error = v_spport_listt_dal.ErrorMessage;
         return ret;
     }
     else
     {
         RequisitionDAL rDAL = new RequisitionDAL();
         bool rr = rDAL.CutStockRequisition(data.LOID, userID, null);
         return ret;
     }
 }
Exemplo n.º 15
0
        public bool UpdateRequsitionData(string UserID, RequisitionData data)
        {
            bool ret = true;
            RequisitionDAL oDAL = new RequisitionDAL();
            oDAL.GetDataByLOID(data.LOID,null);
            oDAL.CUSTOMER = Convert.ToDouble(data.CUSTOMER);
            oDAL.TOTAL = Convert.ToDouble(data.TOTAL);
            oDAL.REASON = data.REASON.ToString();
            oDAL.REMARK = data.REMARK.ToString();
            
            ret = oDAL.UpdateCurrentData(UserID, null);

            if (ret == false)
            {
                _error = oDAL.ErrorMessage;
                return ret;
            }
            else
                return ret;
        }
Exemplo n.º 16
0
        public RequisitionData GetData(double loid)
        {
            RequisitionData data = new RequisitionData();
            if (DALObj.GetDataByLOID(loid, null))
            {
                data.CODE = DALObj.CODE;
                data.ACTIVE = DALObj.ACTIVE;
                data.CUSTOMER = DALObj.CUSTOMER;
                data.GRANDTOT = DALObj.GRANDTOT;
                data.STATUS = DALObj.STATUS;
                data.TOTAL = DALObj.TOTAL;
                data.TOTDIS = DALObj.TOTDIS;
                data.TOTVAT = DALObj.TOTVAT;
                data.VAT = DALObj.VAT;
                data.WAREHOUSE = DALObj.WAREHOUSE;
                data.RESERVEDATE = DALObj.RESERVEDATE;
                data.CREATEBY = DALObj.CREATEBY;
                data.REASON = DALObj.REASON;
                data.REMARK = DALObj.REMARK;

                RequisitionItemDAL itemDAL = new RequisitionItemDAL();
                DataTable dt = GetRequisitionItem(loid);
                foreach (DataRow dRow in dt.Rows)
                {
                    RequisitionItemData itemData = new RequisitionItemData();
                    itemData.BarCode = dRow["BARCODE"].ToString();
                    itemData.DISCOUNT = Convert.ToDouble(dRow["DISCOUNT"]);
                    itemData.ISVAT = dRow["ISVAT"].ToString();
                    itemData.NETPRICE = Convert.ToDouble(dRow["NETPRICE"]);
                    itemData.PRICE = Convert.ToDouble(dRow["PRICE"]);
                    itemData.PRODUCT = Convert.ToDouble(dRow["PRODUCT"]);
                    itemData.QTY = Convert.ToDouble(dRow["QTY"]);
                    itemData.ProductName = dRow["NAME"].ToString();
                    itemData.UNIT = Convert.ToDouble(dRow["UNIT"]);
                    itemData.UnitName = dRow["UNITNAME"].ToString();
                    data.REQUISITIONITEM.Add(itemData);
                }
            }
            return data;
        }
Exemplo n.º 17
0
 public static bool DeleteRequisition(RequisitionData data)
 {
     Boolean ret = true;
     RequisitionDAL oDAL = new RequisitionDAL();
     oDAL.GetDataByLOID(data.LOID, null);
     ret = oDAL.DeleteCurrentData(null);
     return ret;
 }
Exemplo n.º 18
0
        public bool CommitData(string userID, RequisitionData data)
        {
            bool ret = true;
            if (ValidateData(data))
            {
                OracleDBObj obj = new OracleDBObj();
                obj.CreateConnection();
                obj.CreateTransaction();
                try
                {
                    _dal = new RequisitionDAL();
                    DALObj.OnDB = false;
                    DALObj.GetDataByLOID(data.LOID, obj.zTrans);
                    if (DALObj.STATUS == Constz.Requisition.Status.Waiting.Code)
                    {
                        data.STATUS = Constz.Requisition.Status.Approved.Code;
                        UpdateData(userID, data, obj.zTrans);
                        _LOID = DALObj.LOID;

                        ret = DALObj.CutStockRequisition(DALObj.LOID, userID, obj.zTrans);
                        if (!ret) throw new ApplicationException(DALObj.ErrorMessage);
                    }
                    obj.zTrans.Commit();
                    obj.CloseConnection();
                }
                catch (Exception ex)
                {
                    obj.zTrans.Rollback();
                    obj.CloseConnection();
                    ret = false;
                    _error = ex.Message;
                }
            }
            else
                ret = false;
            return ret;
        }
Exemplo n.º 19
0
        public bool UpdateData(string userID, RequisitionData data)
        {
            bool ret = true;
            if (ValidateData(data))
            {
                OracleDBObj obj = new OracleDBObj();
                obj.CreateConnection();
                obj.CreateTransaction();
                try
                {
                    _dal = new RequisitionDAL();
                    DALObj.OnDB = false;
                    DALObj.GetDataByLOID(data.LOID, obj.zTrans);
                    UpdateData(userID, data, obj.zTrans);
                    _LOID = DALObj.LOID;

                    obj.zTrans.Commit();
                    obj.CloseConnection();
                }
                catch (Exception ex)
                {
                    obj.zTrans.Rollback();
                    obj.CloseConnection();
                    ret = false;
                    _error = ex.Message;
                }
            }
            else
                ret = false;
            return ret;
        }
Exemplo n.º 20
0
        private void UpdateData(string userID, RequisitionData data, OracleTransaction trans)
        {
            bool ret = true;
            DALObj.REQUISITIONTYPE = Constz.Requisition.RequisitionType.REQ04;
            DALObj.ACTIVE = data.ACTIVE;
            DALObj.CUSTOMER = data.CUSTOMER;
            DALObj.GRANDTOT = data.GRANDTOT;
            DALObj.STATUS = data.STATUS;
            DALObj.TOTAL = data.TOTAL;
            DALObj.TOTDIS = data.TOTDIS;
            DALObj.TOTVAT = data.TOTVAT;
            DALObj.VAT = data.VAT;
            DALObj.WAREHOUSE = data.WAREHOUSE;
            DALObj.RESERVEDATE = data.RESERVEDATE;
            DALObj.REMARK = data.REMARK;
            DALObj.REASON = data.REASON;

            if (DALObj.OnDB)
                ret = DALObj.UpdateCurrentData(userID, trans);
            else
            {
                DALObj.REQDATE = data.RESERVEDATE;
                ret = DALObj.InsertCurrentData(userID, trans);
            }

            if (!ret)
            {
                throw new ApplicationException(DALObj.ErrorMessage);
            }

            RequisitionItemDAL itemDAL = new RequisitionItemDAL();
            itemDAL.DeleteDataByRequisition(data.LOID, trans);
            for (Int16 i = 0; i < data.REQUISITIONITEM.Count; ++i)
            {
                RequisitionItemData item = (RequisitionItemData)data.REQUISITIONITEM[i];
                itemDAL.ACTIVE = item.ACTIVE;
                itemDAL.DISCOUNT = item.DISCOUNT;
                itemDAL.DUEDATE = item.DUEDATE;
                itemDAL.NETPRICE = item.NETPRICE;
                itemDAL.PRODUCT = item.PRODUCT;
                itemDAL.QTY = item.QTY;
                itemDAL.PRICE = item.PRICE;
                itemDAL.REQUISITION = DALObj.LOID;
                itemDAL.UNIT = item.UNIT;
                itemDAL.ISVAT = item.ISVAT;

                itemDAL.OnDB = false;
                ret = itemDAL.InsertCurrentData(userID, trans);
                if (!ret) throw new ApplicationException(itemDAL.ErrorMessage);
            }
        }