Ejemplo n.º 1
0
        protected override bool SaveData()
        {
            view.CloseEditor();
            bsDetail.EndEdit();

            DS_ProductDistribution.SP_GetProductDistributionDetailDataTable table = DataSetHelper.PackAlternationTypedDataTable <DS_ProductDistribution.SP_GetProductDistributionDetailDataTable>(ds_Production.SP_GetProductDistributionDetail);
            DataSetHelper.RemoveColumns(table, true, table.ProductDistributionDetailIDColumn,
                                        table.ProductLocationIDColumn,
                                        table.DistributeQtyColumn,
                                        table.UnitPriceColumn,
                                        table.OrdinalNumberColumn,
                                        table.ActionColumn);

            var ds = new DataSet("root");

            ds.Tables.Add(table);

            var id = ProductionManager.AddOrEditProductDistribution(ProductDistributionID, FromBranchID, ToBranchID, StartDate, EndDate, SubTotal, TaxAmt, Freight, TotalDue, CurrencyCode, CurrencyRateID, Comment, RevisionNumber, Status, BaseGlobalVariable.UserID, BaseGlobalVariable.ServerDateTime, ApproverUserID, Action, DataSetHelper.InnerBytesData(ds));

            if (id > 0)
            {
                if (Action == DatabaseAction.Add)
                {
                    ds_Production.SP_GetProductDistributionHeader[0].ProductDistributionID = id;
                    foreach (var row in ds_Production.SP_GetProductDistributionDetail)
                    {
                        if (row.RowState == DataRowState.Deleted)
                        {
                            continue;
                        }
                        row.ProductDistributionID = id;
                    }
                    ProductDistributionID = id;
                }
            }

            ds_Production.AcceptChanges();
            return(id > 0);
        }
Ejemplo n.º 2
0
        public bool IsValidGrid()
        {
            view.CloseEditor();
            bsDetail.EndEdit();

            var ok = true;

            foreach (var row in ds_Production.SP_GetProductDistributionDetail)
            {
                if (row.RowState == DataRowState.Deleted)
                {
                    continue;
                }
                if (!IsValidRow(row))
                {
                    ok = false;
                }
            }
            if (!ok)
            {
                return(ok);
            }


            DS_ProductDistribution.SP_GetProductDistributionDetailDataTable table = DataSetHelper.PackAlternationTypedDataTable <DS_ProductDistribution.SP_GetProductDistributionDetailDataTable>(ds_Production.SP_GetProductDistributionDetail, DataRowState.Added | DataRowState.Modified);
            table.PrimaryKey = null;
            DataSetHelper.RemoveColumns(table, true, table.ProductLocationIDColumn,
                                        table.ProductDistributionDetailIDColumn,
                                        table.ActionColumn);
            var ds = new DataSet("root");

            ds.Tables.Add(table);
            var productLocationQuantity = ProductLocationManager.GetProductLocationQuantity(0, ObjectNames.ProductDistributionDetail, true, DataSetHelper.InnerBytesData(ds));

            foreach (var row2 in ds_Production.SP_GetProductDistributionDetail)
            {
                if (row2.RowState == DataRowState.Deleted)
                {
                    continue;
                }
                foreach (var tmp in productLocationQuantity)
                {
                    if (tmp.RowState == DataRowState.Deleted)
                    {
                        continue;
                    }
                    if (row2.ProductLocationID == tmp.ProductLocationID)
                    {
                        row2.Quantity = tmp.Quantity;
                        InitResidualQty(row2);
                    }
                }

                if (!IsValidRowQuantity(row2))
                {
                    ok = false;
                }
            }

            return(ok);
        }