Beispiel #1
0
        public void UpdateWorkOrder(UpdateWorkOrderCM updateWorkOrderCM)
        {
            using (var connection = new DbConnectionProvider().CreateConnection())
            {
                connection.Open();

                var command = new UpdateWorkOrderMasterInsertCommand {
                    Connection = connection
                };

                command.Execute(updateWorkOrderCM);
            }

            //return new UpdateWorkOrderQM();
        }
        public void Execute(UpdateWorkOrderCM model)
        {
            using (var sqlCommand = CreateCommand())
            {
                sqlCommand.Connection  = Connection;
                sqlCommand.CommandText = "[dbo].[uspUpdateWorkOrderMaster]";
                sqlCommand.CommandType = CommandType.StoredProcedure;
                sqlCommand.Parameters.Add(AddParameter("@WONumber", SsDbType.NVarChar, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().WorkOrderNumber));
                sqlCommand.Parameters.Add(AddParameter("@WOSerial", SsDbType.Decimal, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().WorkOrderSerial));
                sqlCommand.Parameters.Add(AddParameter("@DCNumber", SsDbType.NVarChar, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().DCNumber));
                sqlCommand.Parameters.Add(AddParameter("@DCSerial", SsDbType.NVarChar, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().DCSerial));
                sqlCommand.Parameters.Add(AddParameter("@DCDate", SsDbType.DateTime, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().DCDate));
                sqlCommand.Parameters.Add(AddParameter("@PONumber", SsDbType.NVarChar, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().PONumber));
                sqlCommand.Parameters.Add(AddParameter("@POSerial", SsDbType.NVarChar, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().POSerial));
                sqlCommand.Parameters.Add(AddParameter("@PODate", SsDbType.DateTime, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().PODate));
                sqlCommand.Parameters.Add(AddParameter("@DrawingNo", SsDbType.NVarChar, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().DrawingNo));
                sqlCommand.Parameters.Add(AddParameter("@DrawingRevisionNo", SsDbType.NVarChar, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().DrawingRev));
                sqlCommand.Parameters.Add(AddParameter("@Rate", SsDbType.Decimal, ParameterDirection.Input, model.UpdateWorkOrderMasterListItems.FirstOrDefault().Rate));
                sqlCommand.Parameters.Add(AddParameter("@UpdatedBy", SsDbType.UniqueIdentifier, ParameterDirection.Input, new Guid()));
                sqlCommand.Parameters.Add(AddParameter("@UpdatedDateTime", SsDbType.DateTime, ParameterDirection.Input, DateTime.UtcNow));

                sqlCommand.ExecuteNonQuery();
            }
        }
        public UpdateWorkOrderResponseDto UpdateWorkOrder(UpdateWorkOrderRequestDto updateWorkOrderRequestDto)
        {
            var    getWorkOrderClientSerialNoQM = new GetWorkOrderClientSerialNoQM();
            string ClientSerialStartName        = System.Configuration.ConfigurationManager.AppSettings["ClientStartName"].ToString();
            string CurrentMonth      = Constant.GetMonthByAlphabet(System.DateTime.UtcNow.Month);
            string CurrentYear       = Constant.GetYearByAlphabet(System.DateTime.UtcNow.Year);
            var    clientSerialDigit = ClientSerialStartName + CurrentYear + CurrentMonth;

            getWorkOrderClientSerialNoQM = workOrderRepository.GetWorkOrderClientSerialNo(clientSerialDigit);

            string clientSerialNo            = "";
            string clientSerialNumber        = "";
            var    existingclientSerialDigit = "";

            if (!string.IsNullOrEmpty(getWorkOrderClientSerialNoQM.WorkOrderClientSerialNo))
            {
                clientSerialNumber        = getWorkOrderClientSerialNoQM.WorkOrderClientSerialNo.ToString();
                existingclientSerialDigit = getWorkOrderClientSerialNoQM.WorkOrderClientChar;
            }

            foreach (var updateWorKOrder in updateWorkOrderRequestDto.WorkOrderMasterDetails)
            {
                if (updateWorKOrder.IsNew)
                {
                    #region Section For to save the work order masters information & work order details

                    //foreach (var workOrderMaster in updateWorKOrder)
                    //{
                    var workOrderMasterItems = new List <WorkOrderMasterItems>();

                    var cModel = new AddWorkOrderCM();
                    var workOrderMasterDetails = new WorkOrderMasterItems
                    {
                        WorkOrderNumber    = updateWorKOrder.WorkOrderNumber,
                        WorkOrderSerial    = updateWorKOrder.WorkOrderSerial,
                        DCNumber           = updateWorKOrder.DCNumber == null ? string.Empty : updateWorKOrder.DCNumber,
                        DCDate             = updateWorKOrder.DCDate,
                        DCSerial           = updateWorKOrder.DCSerial == null ? string.Empty : updateWorKOrder.DCSerial,
                        PONumber           = updateWorKOrder.PONumber == null ? string.Empty : updateWorKOrder.PONumber,
                        PODate             = updateWorKOrder.PODate,
                        POSerial           = updateWorKOrder.POSerial == null ? string.Empty : updateWorKOrder.POSerial,
                        DrawingNo          = updateWorKOrder.DrawingNo,
                        DrawingRev         = updateWorKOrder.DrawingRev,
                        PartCode           = updateWorKOrder.PartCode,
                        WOQuantity         = updateWorKOrder.WOQuantity,
                        Rate               = updateWorKOrder.Rate,
                        DeliveryDate       = updateWorKOrder.DeliveryDate == null  ? System.DateTime.UtcNow : Convert.ToDateTime(updateWorKOrder.DeliveryDate),
                        DCQuantity         = 0,
                        RejectedQuantity   = 0,
                        InvoicedQuantity   = 0,
                        SCSentQuantity     = 0,
                        SCReceivedQuantity = 0,
                        CreatedBy          = updateWorKOrder.CreatedBy,
                        CreatedDateTime    = updateWorKOrder.CreatedDateTime,
                        VendorCode         = updateWorKOrder.VendorCode,
                        MaterialCode       = updateWorKOrder.MaterialCode,
                        ItemCode           = updateWorKOrder.ItemCode,
                        HeatNo             = updateWorKOrder.HeatNo
                    };

                    workOrderMasterItems.Add(workOrderMasterDetails);

                    cModel.WorkOrderMasterListItems = workOrderMasterItems;

                    // Section to add the work order master information
                    var response = workOrderRepository.AddWorkOrder(cModel);



                    // Section to add the work order details information
                    var quantity        = cModel.WorkOrderMasterListItems.FirstOrDefault().WOQuantity;
                    var heatNo          = cModel.WorkOrderMasterListItems.FirstOrDefault().HeatNo;
                    var woSerialNo      = cModel.WorkOrderMasterListItems.FirstOrDefault().WorkOrderSerial;
                    var workOrderNumber = cModel.WorkOrderMasterListItems.FirstOrDefault().WorkOrderNumber;


                    if (!string.IsNullOrEmpty(clientSerialNumber))
                    {
                        //var existingclientSerialDigit = clientSerialNo.ToString().Substring(0, 3);

                        if (!clientSerialDigit.Equals(existingclientSerialDigit))
                        {
                            string serialNoStarting = "0";
                            clientSerialNo = clientSerialDigit + serialNoStarting;
                        }
                        else
                        {
                            clientSerialNo = existingclientSerialDigit + clientSerialNumber;
                        }
                    }
                    else
                    {
                        string serialNoStarting = "0";
                        clientSerialNo = clientSerialDigit + serialNoStarting;
                    }

                    for (int i = 0; i < quantity; i++)
                    {
                        var splitSerialChar = clientSerialNo.ToString().Substring(0, 3);
                        var splitSerialNo   = clientSerialNo.ToString().Substring(3);
                        clientSerialNo            = splitSerialChar + ((Convert.ToInt64(splitSerialNo) + 1));
                        clientSerialNumber        = ((Convert.ToInt64(splitSerialNo) + 1)).ToString();
                        existingclientSerialDigit = splitSerialChar;

                        WorkOrderDetailsCM workOrderDetailsCM = new WorkOrderDetailsCM()
                        {
                            WorkOrderNumber = workOrderNumber,
                            WorkOrderSerial = woSerialNo,
                            SerialNo        = clientSerialNo,
                            HeatNo          = heatNo,
                            Invoice         = false,
                            JTC             = false,
                            SubContract     = false,
                            DC = false,
                            CreatedDateTime = System.DateTime.UtcNow
                        };
                        workOrderRepository.AddWorkOrderDetails(workOrderDetailsCM);
                    }

                    //}

                    #endregion
                }
                else
                {
                    #region Section For to save the work order masters information & work order details

                    var updateWorkOrderMasterItems = new List <UpdateWorkOrderMasterItems>();

                    var cModel = new UpdateWorkOrderCM();
                    var workOrderMasterDetails = new UpdateWorkOrderMasterItems
                    {
                        WorkOrderNumber    = updateWorKOrder.WorkOrderNumber,
                        WorkOrderSerial    = updateWorKOrder.WorkOrderSerial,
                        DCNumber           = updateWorKOrder.DCNumber == null ? string.Empty : updateWorKOrder.DCNumber,
                        DCDate             = updateWorKOrder.DCDate,
                        DCSerial           = updateWorKOrder.DCSerial == null ? string.Empty : updateWorKOrder.DCSerial,
                        PONumber           = updateWorKOrder.PONumber == null ? string.Empty : updateWorKOrder.PONumber,
                        PODate             = updateWorKOrder.PODate,
                        POSerial           = updateWorKOrder.POSerial == null ? string.Empty : updateWorKOrder.POSerial,
                        DrawingNo          = updateWorKOrder.DrawingNo,
                        DrawingRev         = updateWorKOrder.DrawingRev,
                        PartCode           = updateWorKOrder.PartCode,
                        WOQuantity         = updateWorKOrder.WOQuantity,
                        Rate               = updateWorKOrder.Rate,
                        DeliveryDate       = updateWorKOrder.DeliveryDate == null ? System.DateTime.UtcNow : Convert.ToDateTime(updateWorKOrder.DeliveryDate),
                        DCQuantity         = 0,
                        RejectedQuantity   = 0,
                        InvoicedQuantity   = 0,
                        SCSentQuantity     = 0,
                        SCReceivedQuantity = 0,
                        UpdatedBy          = updateWorKOrder.UpdatedBy,
                        UpdatedDateTime    = updateWorKOrder.UpdatedDateTime,
                        VendorCode         = updateWorKOrder.VendorCode,
                        MaterialCode       = updateWorKOrder.MaterialCode,
                        ItemCode           = updateWorKOrder.ItemCode,
                        HeatNo             = updateWorKOrder.HeatNo
                    };

                    updateWorkOrderMasterItems.Add(workOrderMasterDetails);

                    cModel.UpdateWorkOrderMasterListItems = updateWorkOrderMasterItems;

                    // Section to add the work order master information
                    workOrderRepository.UpdateWorkOrder(cModel);
                }

                #endregion
            }

            return(new UpdateWorkOrderResponseDto());
        }