Пример #1
0
        private string GoodsReceiptSaveRelativeBuildSQL(GlobalEnums.GoodsReceiptTypeID goodsReceiptTypeID)
        {
            string queryString;
            string entityDetail   = goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice ? "PurchaseInvoiceDetails" : goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer ? "StockTransferDetails" : "";
            string entityID       = goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice ? "PurchaseInvoiceID" : goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer ? "StockTransferID" : "";
            string entityDetailID = goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice ? "PurchaseInvoiceDetailID" : goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer ? "StockTransferDetailID" : "";

            queryString = " IF @GoodsReceiptTypeID = " + (int)goodsReceiptTypeID + "\r\n";
            queryString = queryString + " BEGIN " + "\r\n";
            queryString = queryString + "       UPDATE          " + entityDetail + "\r\n";
            queryString = queryString + "       SET             " + entityDetail + ".QuantityReceipt = ROUND(" + entityDetail + ".QuantityReceipt + GoodsReceiptDetails.Quantity * @SaveRelativeOption, 0) " + "\r\n";
            queryString = queryString + "       FROM            GoodsReceiptDetails INNER JOIN " + "\r\n";
            queryString = queryString + "                       " + entityDetail + " ON GoodsReceiptDetails.GoodsReceiptID = @EntityID AND GoodsReceiptDetails.VoucherDetailID = " + entityDetail + "." + entityDetailID + "\r\n";
            queryString = queryString + " END " + "\r\n";

            return(queryString);
        }
Пример #2
0
        private string GetGoodsReceiptViewDetailsBuilSQL(GlobalEnums.GoodsReceiptTypeID goodsReceiptTypeID)
        {
            string queryString; string queryEdit; string queryNew = ""; string querySort;

            string entity         = goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice ? "PurchaseInvoices" : goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer ? "StockTransfers" : "";
            string entityDetail   = goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice ? "PurchaseInvoiceDetails" : goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer ? "StockTransferDetails" : "";
            string entityID       = goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice ? "PurchaseInvoiceID" : goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer ? "StockTransferID" : "";
            string entityDetailID = goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice ? "PurchaseInvoiceDetailID" : goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer ? "StockTransferDetailID" : "";


            if (goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.PurchaseInvoice)
            {
                queryNew = "                SELECT          " + entityDetail + "." + entityID + " AS VoucherID, 0 AS GoodsReceiptDetailID, 0 AS GoodsReceiptID, " + entityDetail + "." + entityDetailID + " AS VoucherDetailID, " + "\r\n";
                queryNew = queryNew + "                     " + entityDetail + ".SupplierID, " + entityDetail + ".CommodityID, Commodities.Code AS CommodityCode, Commodities.Name AS CommodityName, Commodities.CommodityTypeID, " + entityDetail + ".Origin, " + entityDetail + ".Packing, ROUND(" + entityDetail + ".Quantity - " + entityDetail + ".QuantityReceipt, 0) AS QuantityRemains, " + "\r\n";
                queryNew = queryNew + "                     0.0 AS Quantity, " + entityDetail + ".UnitPrice, " + entityDetail + ".VATPercent, " + entityDetail + ".GrossPrice, 0.0 AS Amount, 0.0 AS VATAmount, 0.0 AS GrossAmount, " + "\r\n";
                queryNew = queryNew + "                     LWarehouses.WarehouseID, LWarehouses.Code AS WarehouseCode, " + entityDetail + ".ChassisCode, " + entityDetail + ".EngineCode, " + entityDetail + ".ColorCode, " + entityDetail + ".Remarks " + "\r\n";

                queryNew = queryNew + "     FROM            " + entityDetail + " INNER JOIN " + "\r\n";
                queryNew = queryNew + "                     Commodities ON " + entityDetail + ".CommodityID = Commodities.CommodityID INNER JOIN " + "\r\n";
                queryNew = queryNew + "                     (SELECT DISTINCT LocationID, WarehouseID, Code FROM Warehouses) LWarehouses ON " + entityDetail + ".LocationID = LWarehouses.LocationID " + "\r\n";                       //INIT Warehouses BY LOCATION: NOTE: IN ACCESS CONTROL: USER SHOULD ONLY HAVE EDITABLE PERMISSION IN THIER LOCATIONID ONLY

                queryNew = queryNew + "     WHERE           (@VoucherID = 0 OR " + entityDetail + "." + entityID + " = @VoucherID) AND ROUND(" + entityDetail + ".Quantity - " + entityDetail + ".QuantityReceipt, 0) > 0 " + "\r\n"; //These WHERE CLAUSE are the same WHEN ANY goodsReceiptTypeID //AND Approved = 1
            }
            if (goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer)
            {
                queryNew = "                SELECT          " + entityDetail + "." + entityID + " AS VoucherID, 0 AS GoodsReceiptDetailID, 0 AS GoodsReceiptID, " + entityDetail + "." + entityDetailID + " AS VoucherDetailID, " + "\r\n";
                queryNew = queryNew + "                     " + entityDetail + ".SupplierID, " + entityDetail + ".CommodityID, Commodities.Code AS CommodityCode, Commodities.Name AS CommodityName, Commodities.CommodityTypeID, GoodsReceiptDetails.Origin, GoodsReceiptDetails.Packing, ROUND(" + entityDetail + ".Quantity - " + entityDetail + ".QuantityReceipt, 0) AS QuantityRemains, " + "\r\n";
                queryNew = queryNew + "                     0.0 AS Quantity, ISNULL(GoodsReceiptDetails.UnitPrice, 0.0) AS UnitPrice, ISNULL(GoodsReceiptDetails.VATPercent, 0.0) AS VATPercent, ISNULL(GoodsReceiptDetails.GrossPrice, 0.0) AS GrossPrice, 0.0 AS Amount, 0.0 AS VATAmount, 0.0 AS GrossAmount, " + "\r\n";
                queryNew = queryNew + "                     " + entity + ".WarehouseID, Warehouses.Code AS WarehouseCode, GoodsReceiptDetails.ChassisCode, GoodsReceiptDetails.EngineCode, GoodsReceiptDetails.ColorCode, " + entityDetail + ".Remarks " + "\r\n";

                queryNew = queryNew + "     FROM            " + entity + " INNER JOIN " + "\r\n";
                queryNew = queryNew + "                     " + entityDetail + " ON " + entity + "." + entityID + " = " + entityDetail + "." + entityID + " INNER JOIN " + "\r\n";
                queryNew = queryNew + "                     Warehouses ON " + entity + ".WarehouseID = Warehouses.WarehouseID INNER JOIN " + "\r\n";                                                                                  //Need to join Warehouses to get: WarehouseID, Warehouses.Name: NOT ALLOW CHANGE IN GoodsReceipts WHEN the goodsReceiptTypeID == GlobalEnums.GoodsReceiptTypeID.StockTransfer
                queryNew = queryNew + "                     Commodities ON " + entityDetail + ".CommodityID = Commodities.CommodityID LEFT JOIN " + "\r\n";
                queryNew = queryNew + "                     GoodsReceiptDetails ON " + entityDetail + ".GoodsReceiptDetailID = GoodsReceiptDetails.GoodsReceiptDetailID " + "\r\n";                                                   //Need to left join GoodsReceiptDetails to get: Origin, ChassisCode, ... (VehicleTransfer)

                queryNew = queryNew + "     WHERE           (@VoucherID = 0 OR " + entityDetail + "." + entityID + " = @VoucherID) AND ROUND(" + entityDetail + ".Quantity - " + entityDetail + ".QuantityReceipt, 0) > 0 " + "\r\n"; //These WHERE CLAUSE are the same WHEN ANY goodsReceiptTypeID //AND Approved = 1
            }


            queryEdit = "               SELECT          " + entityDetail + "." + entityID + " AS VoucherID, GoodsReceiptDetails.GoodsReceiptDetailID, GoodsReceiptDetails.GoodsReceiptID, " + entityDetail + "." + entityDetailID + " AS VoucherDetailID, " + "\r\n";
            queryEdit = queryEdit + "                   GoodsReceiptDetails.SupplierID, " + entityDetail + ".CommodityID, Commodities.Code AS CommodityCode, Commodities.Name AS CommodityName, Commodities.CommodityTypeID, GoodsReceiptDetails.Origin, GoodsReceiptDetails.Packing, ROUND(" + entityDetail + ".Quantity - " + entityDetail + ".QuantityReceipt + GoodsReceiptDetails.Quantity, 0) AS QuantityRemains, " + "\r\n";
            queryEdit = queryEdit + "                   GoodsReceiptDetails.Quantity, GoodsReceiptDetails.UnitPrice, GoodsReceiptDetails.VATPercent, GoodsReceiptDetails.GrossPrice, GoodsReceiptDetails.Amount, GoodsReceiptDetails.VATAmount, GoodsReceiptDetails.GrossAmount, " + "\r\n";
            queryEdit = queryEdit + "                   Warehouses.WarehouseID, Warehouses.Code AS WarehouseCode, GoodsReceiptDetails.ChassisCode, GoodsReceiptDetails.EngineCode, GoodsReceiptDetails.ColorCode, GoodsReceiptDetails.Remarks " + "\r\n";

            queryEdit = queryEdit + "   FROM            " + entityDetail + " INNER JOIN " + "\r\n";
            queryEdit = queryEdit + "                   GoodsReceiptDetails ON GoodsReceiptDetails.GoodsReceiptTypeID = " + (int)goodsReceiptTypeID + " AND " + entityDetail + "." + entityDetailID + " = GoodsReceiptDetails.VoucherDetailID INNER JOIN " + "\r\n";
            queryEdit = queryEdit + "                   Commodities ON GoodsReceiptDetails.CommodityID = Commodities.CommodityID INNER JOIN " + "\r\n";
            queryEdit = queryEdit + "                   Warehouses ON GoodsReceiptDetails.WarehouseID = Warehouses.WarehouseID " + "\r\n";

            queryEdit = queryEdit + "   WHERE           (@VoucherID = 0 OR " + entityDetail + "." + entityID + " = @VoucherID) AND GoodsReceiptDetails.GoodsReceiptID = @GoodsReceiptID " + "\r\n";

            querySort = "               ORDER BY        " + entityDetail + "." + entityDetailID;


            queryString = " IF @GoodsReceiptTypeID = " + (int)goodsReceiptTypeID;
            queryString = queryString + " BEGIN ";

            queryString = queryString + " IF (@GoodsReceiptID <= 0) " + "\r\n";
            queryString = queryString + "    BEGIN " + "\r\n";
            queryString = queryString + "       " + queryNew + "\r\n";
            queryString = queryString + "       " + querySort + "\r\n";
            queryString = queryString + "    END " + "\r\n";
            queryString = queryString + " ELSE " + "\r\n";

            queryString = queryString + "   IF (@IsReadonly = 1) " + "\r\n";
            queryString = queryString + "       BEGIN " + "\r\n";
            queryString = queryString + "           " + queryEdit + "\r\n";
            queryString = queryString + "           " + querySort + "\r\n";
            queryString = queryString + "       END " + "\r\n";

            queryString = queryString + "   ELSE " + "\r\n"; //FULL SELECT FOR EDIT MODE

            queryString = queryString + "       BEGIN " + "\r\n";
            queryString = queryString + "           " + queryNew + " AND " + entityDetail + "." + entityDetailID + " NOT IN (SELECT VoucherDetailID FROM GoodsReceiptDetails WHERE GoodsReceiptTypeID = " + (int)goodsReceiptTypeID + " AND GoodsReceiptID = @GoodsReceiptID) " + "\r\n";
            queryString = queryString + "           UNION ALL " + "\r\n";
            queryString = queryString + "           " + queryEdit + "\r\n";

            queryString = queryString + "           " + querySort + "\r\n";
            queryString = queryString + "       END " + "\r\n";

            queryString = queryString + " END ";

            return(queryString);
        }