wbc
2025-04-23 2f11a821259c77d8e48bb0b83e7f01b0f529b10a
MES.Service/service/MesSalesOrderManager.cs
@@ -36,6 +36,7 @@
                case "3":
                    return UpdateData(db, mesSalesOrder, mesSalesOrderDetails) ? 1 : 0;
                case "2":
                case "4":
                    return SaveOrUpdateData(db, mesSalesOrder, mesSalesOrderDetails)
                        ? 1
                        : 0;
@@ -61,12 +62,12 @@
        if (mesSalesOrderDetails.Count > 0)
        {
            var mesSalesOrderDetail = mesSalesOrderDetails.Select(s => new { s.OrderId, s.LineNumber }).ToList();
            var mesSalesOrderDetail = mesSalesOrderDetails.Select(s => new { s.OrderId, s.OrderType }).ToList();
            db.Deleteable<MesSalesOrderDetail>()
            .Where(it => mesSalesOrderDetails
            .Any(p => p.OrderId == it.OrderId
             && p.LineNumber == it.LineNumber))
             && p.OrderType == it.OrderType))
            .ExecuteCommand();
        };
@@ -88,9 +89,10 @@
                     it.OrderType == mesSalesOrder.OrderType)
        .ExecuteCommand() > 0;
        var mesSalesOrderDetail = mesSalesOrderDetails.Select(s => new { s.OrderId, s.LineNumber }).ToList();
        var mesSalesOrderDetail = mesSalesOrderDetails.Select(s => new { s.OrderId, s.OrderType }).ToList();
        
        var insertOrUpdate = db.Deleteable<MesSalesOrderDetail>().Where(it => mesSalesOrderDetail.Any(p => p.OrderId == it.OrderId && p.LineNumber==it.LineNumber)).ExecuteCommand() > 0;
        var insertOrUpdate = db.Deleteable<MesSalesOrderDetail>().
            Where(it => mesSalesOrderDetail.Any(p => p.OrderId == it.OrderId && p.OrderType == it.OrderType)).ExecuteCommand() > 0;
        if (update && insertOrUpdate) return true;
@@ -103,14 +105,14 @@
        {
            OrderId = dto.FBillNo,
            OrderType = dto.FBillTypeID,
            DocumentDate = DateTime.TryParseExact(dto.FDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime documentDate) ? (DateTime?)documentDate : null,
            DocumentDate = !string.IsNullOrEmpty(dto.FDate) && DateTime.TryParseExact(dto.FDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime documentDate) ? (DateTime?)documentDate : null,
            CustomerId = dto.FCustId,
            CustomerOrderId= dto.F_UNW_Text_KHDD,
            DepartmentId= dto.FSaleDeptId,
            TotalQuantity = long.TryParse(dto.FNote, out long quantity) ? (long?)quantity : null,
            Remarks =dto.F_UNW_LargeText_TBKHBZ,
            ApprovalDate = DateTime.TryParse(dto.FApproveDate, out DateTime approveDate) ? (DateTime?)approveDate : null,
            Approver = dto.FApproverId
            OrderDate = !string.IsNullOrEmpty(dto.FOrderDate) && (DateTime.TryParseExact(dto.FOrderDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime orderDate) || DateTime.TryParseExact(dto.FOrderDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out orderDate)) ? (DateTime?)orderDate : null,
            DeliveryDate = !string.IsNullOrEmpty(dto.FDeliveryDate) && (DateTime.TryParseExact(dto.FDeliveryDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime deliveryDate) || DateTime.TryParseExact(dto.FDeliveryDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out deliveryDate)) ? (DateTime?)deliveryDate : null,
            Remarks = dto.FNote,
            Approver = dto.FApproverId,
            DebugDate = !string.IsNullOrEmpty(dto.FDebugDate) && (DateTime.TryParseExact(dto.FDebugDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime debugDate) || DateTime.TryParseExact(dto.FDebugDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out debugDate)) ? (DateTime?)debugDate : null,
            DeliverAddress = dto.FDeliverAddress
        };
        return entity;
    }
@@ -118,24 +120,33 @@
    private List<MesSalesOrderDetail> MapErpDETAILtoMesSalesOrderDetail(List<ErpDETAIL> dtoList)
    {
        var detailList = new List<MesSalesOrderDetail>();
        foreach (var dto in dtoList)
        {
            var mesSalesOrderDetail = new MesSalesOrderDetail
            {
                OrderId= dto.F_UNW_Text_xsddh,
                LineNumber = dto.LineNumber,
                ProductCode =dto.FMaterialId,
                ProductName =dto.FMaterialName,
                ProductSpec=dto.FMaterialModel,
                ScheduledDeliveryDate = DateTime.TryParse(dto.FMinPlanDeliveryDate, out DateTime scheduledDeliveryDate) ? (DateTime?)scheduledDeliveryDate : null,
                OrderQuantity = long.TryParse(dto.FQty, out long quantity) ? (long?)quantity : null,
                Unit = dto.FUnitID,
                UnitPrice = long.TryParse(dto.FPrice, out long price) ? (long?)price : null,
                Amount = long.TryParse(dto.FAmount, out long amount) ? (long?)amount : null,
                OrderId = dto.F_UNW_Text_xsddh,
                OrderType = dto.FOrderType,
                OrderNumber = dto.FOrderNumber,
                ProductCode = dto.FMaterialId,
                ProductName = dto.FMaterialName,
                ProductSpec = dto.FMaterialModel,
                Warehouse = dto.FWarehouse,
                GiftQuantity=dto.FGiftQuantity,
                UnsettledBorrowedQty=dto.FUnsettledBorrowedQty,
                ConfigurationPlan=dto.FConfigurationPlan,
                ScheduledDeliveryDate = !string.IsNullOrEmpty(dto.FMinPlanDeliveryDate) && (DateTime.TryParseExact(dto.FMinPlanDeliveryDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime scheduledDeliveryDate) || DateTime.TryParseExact(dto.FMinPlanDeliveryDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out scheduledDeliveryDate)) ? (DateTime?)scheduledDeliveryDate : null,
                OrderQuantity = dto.FQty,
                DeliveredGiftQuantity = dto.FDeliveredGiftQuantity,
                Remarks = dto.FEntryNote,
                DeviceModel = dto.FDeviceModel,
                CustomerProductId = dto.FCustomerProductId,
                CustomerProductName = dto.FCustomerProductName,
                CustomerSpec = dto.FCustomerSpec,
                CustomerOrderId = dto.FCustomerOrderId,
                Unit=dto.FUnitID,
                DeliveredQuantity=dto.FDeliCommitQty,
                IsClosed=dto.FIsClosed
            };
            detailList.Add(mesSalesOrderDetail);
        }
@@ -155,7 +166,7 @@
            var insertOrUpdate = db.Deleteable<MesSalesOrderDetail>()
                  .Where(it => it.OrderId == data.FBillNo 
                         && it.LineNumber == data.FBillTypeID)
                         && it.OrderType == data.FBillTypeID)
                  .ExecuteCommand() > 0;