Esempio n. 1
0
 public HttpResponseMessage Post([FromBody] TransferOrderModel transferOrderModel)
 {
     try
     {
         if (string.IsNullOrEmpty(transferOrderModel.ToMasterData.from_warehouse_id.ToString()))
         {
             var formatter = RequestFormat.JsonFormaterString();
             return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                 output = "error", msg = "Please Select From Warehouse !!"
             }, formatter));
         }
         if (string.IsNullOrEmpty(transferOrderModel.ToMasterData.to_warehouse_id.ToString()))
         {
             var formatter = RequestFormat.JsonFormaterString();
             return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                 output = "error", msg = "Please Select To Warehouse !!"
             }, formatter));
         }
         else
         {
             transferOrderRepository.AddTransferOrder(transferOrderModel);
             var formatter = RequestFormat.JsonFormaterString();
             return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                 output = "success", msg = "Transfer Order save successfully"
             }, formatter));
         }
     }
     catch (Exception ex)
     {
         var formatter = RequestFormat.JsonFormaterString();
         return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
             output = "error", msg = ex.ToString()
         }, formatter));
     }
 }
Esempio n. 2
0
 public JsonResult Edit(TransferOrderModel model)
 {
     model.EditBy     = _context.CurrentAccount.AccountId;
     model.EditByName = _context.CurrentAccount.NickName;
     _transaferFacade.Edit(model);
     return(Json(new { success = true }));
 }
Esempio n. 3
0
 public JsonResult Create(TransferOrderModel model)
 {
     model.EditBy     = _context.CurrentAccount.AccountId;
     model.EditByName = _context.CurrentAccount.NickName;
     _transaferFacade.Create(model);
     return(Json(new { success = true, code = model.Code, statusName = model.StatusName, id = model.Id }));
 }
Esempio n. 4
0
        public void Create(TransferOrderModel model)
        {
            TransferOrder entity = model.MapTo <TransferOrder>();

            entity.CreatedBy     = model.EditBy;
            entity.CreatedByName = model.EditByName;
            entity.UpdatedBy     = model.EditBy;
            entity.Code          = _sequenceService.GenerateNewCode(BillIdentity.TransferOrder);
            // 明细
            var items = JsonConvert.DeserializeObject <List <TransferOrderItem> >(model.ItemsJson);

            entity.Items = items;
            _db.Insert(entity);

            //跟踪记录
            var reason  = "创建调拨单";
            var history = new ProcessHistory(model.EditBy, model.EditByName, (int)entity.Status, entity.Id, BillIdentity.TransferOrder.ToString(), reason);

            _db.Command.AddExecute(history.CreateSql(entity.GetType().Name, entity.Code), history);

            _db.SaveChange();
            var modelEntity = _db.Table.Find <TransferOrder>(n => n.Code == entity.Code);

            model.Id         = modelEntity.Id;
            model.Code       = entity.Code;
            model.StatusName = entity.Status.Description();
            entity.Id        = modelEntity.Id;
        }
Esempio n. 5
0
        public void Edit(TransferOrderModel model)
        {
            var entity = _db.Table.Find <TransferOrder>(model.Id);

            entity           = model.MapTo <TransferOrder>(entity);
            entity.UpdatedBy = model.EditBy;
            entity.UpdatedOn = DateTime.Now;
            _db.Update(entity);

            var items = JsonConvert.DeserializeObject <List <TransferOrderItem> >(model.ItemsJson);

            items.ForEach(n => n.TransferOrderId = entity.Id);
            entity.Items = items;
            _service.EditItem(entity);

            _db.SaveChange();
        }
        public TransferOrderModel GetTransferOrderById(long transfer_order_master_id)
        {
            TransferOrderModel transferOrderModel = new TransferOrderModel();

            transferOrderModel.ToMasterData = _entities.transfer_order_master.Find(transfer_order_master_id);

            transferOrderModel.ToDetailsList =
                _entities.transfer_order_details
                .Join(_entities.products, jp => jp.product_id, p => p.product_id, (jp, p) => new { jp, p })
                .Join(_entities.product_category, jcat => jcat.jp.product_category_id,
                      cat => cat.product_category_id, (jcat, cat) => new { jcat, cat })
                .Join(_entities.brands, jb => jb.jcat.jp.brand_id, b => b.brand_id, (jb, b) => new { jb, b })
                .GroupJoin(_entities.colors, jc => jc.jb.jcat.jp.color_id, c => c.color_id, (jc, c) => new { jc, nc = c.FirstOrDefault() })
                .Join(_entities.units, ju => ju.jc.jb.jcat.jp.unit_id, u => u.unit_id, (ju, u) => new { ju, u })
                // .GroupJoin(_entities.product_version, jpv => jpv.ju.jc.jb.jcat.jp.product_version_id, jpv => jpv.product_version_id, (jpv, pp) => new { jpv, pp })
                .GroupJoin(_entities.product_version, jpv => jpv.ju.jc.jb.jcat.jp.product_version_id, pv => pv.product_version_id, (jpv, pv) => new { jpv, vc = pv.FirstOrDefault() })
                .Where(k => k.jpv.ju.jc.jb.jcat.jp.transfer_order_master_id == transfer_order_master_id)
                .Select(i => new TransferOrderDetailsModel
            {
                transfer_order_details_id = i.jpv.ju.jc.jb.jcat.jp.transfer_order_details_id,
                product_category_id       = i.jpv.ju.jc.jb.cat.product_category_id,
                product_category_name     = i.jpv.ju.jc.jb.cat.product_category_name,
                product_id               = i.jpv.ju.jc.jb.jcat.jp.product_id,
                product_name             = i.jpv.ju.jc.jb.jcat.p.product_name,
                has_serial               = (bool)i.jpv.ju.jc.jb.jcat.p.has_serial,
                brand_id                 = i.jpv.ju.jc.jb.jcat.jp.brand_id,
                brand_name               = i.jpv.ju.jc.b.brand_name,
                color_id                 = i.jpv.ju.nc.color_id,
                color_name               = string.IsNullOrEmpty(i.jpv.ju.nc.color_name) ? "" : i.jpv.ju.nc.color_name,
                quantity                 = i.jpv.ju.jc.jb.jcat.jp.quantity,
                product_version_id       = i.vc.product_version_id,
                product_version_name     = string.IsNullOrEmpty(i.vc.product_version_name) ? "" : i.vc.product_version_name,
                transfered_quantity      = i.jpv.ju.jc.jb.jcat.jp.transfered_quantity,
                unit_price               = i.jpv.ju.jc.jb.jcat.jp.unit_price,
                line_total               = i.jpv.ju.jc.jb.jcat.jp.line_total,
                transfer_order_master_id = i.jpv.ju.jc.jb.jcat.jp.transfer_order_master_id,
                last_modified_date       = i.jpv.ju.jc.jb.jcat.jp.last_modified_date,
                unit_id   = i.jpv.u.unit_id,
                unit_name = i.jpv.u.unit_name,
                status    = i.jpv.ju.jc.jb.jcat.jp.status
            }).OrderByDescending(p => p.transfer_order_details_id).ToList();


            return(transferOrderModel);
        }
        public bool UpdateInboundScaleData(int transferOrderId, int sequenceNumber, int driverId, int truckNumber, int trailerNumber, decimal weight, DateTime scaleInDate)
        {
            ServiceLog.Default.Trace(@"Attempting to update Inbound data:
                                        Transfer Order: {0}
                                        Sequence Number: {1}
                                        Driver Id: {2}
                                        Truck: {3}
                                        Trailer: {4}
                                        Weight: {5}
                                        Scale Date: {6}",
                                     transferOrderId.ToString(),
                                     sequenceNumber.ToString(),
                                     driverId.ToString(),
                                     truckNumber.ToString(),
                                     trailerNumber.ToString(),
                                     weight.ToString(),
                                     scaleInDate.ToString()
                                     );

            TransferOrderModel transferOrder = svc.getTransferOrder(transferOrderId);

            if (transferOrder != null)
            {
                if (svc.UpdateTransferOrder(transferOrder, "Inbound", transferOrderId, sequenceNumber, scaleInDate, null, trailerNumber, null, weight))
                {
                    ServiceLog.Default.Trace("Inbound scale message for id:{0} was processed successfully.", transferOrderId.ToString());
                    return(true);
                }
                else
                {
                    ServiceLog.Default.Trace("There was an error updating the inbound scale message, or the record already has matching values.");
                    return(false);
                }
            }
            else
            {
                ServiceLog.Default.Trace("Transfer order object was null for id {0}", transferOrderId.ToString());
                return(false);
            }
        }
        public long AddTransferOrder(TransferOrderModel transferOrderModel)
        {
            try
            {
                var toMaster      = transferOrderModel.ToMasterData;
                var toDetailsList = transferOrderModel.ToDetailsList;

                // generate order_no
                long toSerial = _entities.transfer_order_master.Max(to => (long?)to.transfer_order_master_id) ?? 0;

                if (toSerial != 0)
                {
                    toSerial++;
                }
                else
                {
                    toSerial++;
                }
                var toStr = toSerial.ToString().PadLeft(7, '0');

                //string orderNo = "ORD/" + DateTime.Now.Year + "/" + poSerial;
                string orderNo = "TO-" + toStr;
                toMaster.order_no               = orderNo;
                toMaster.order_date             = Convert.ToDateTime(transferOrderModel.ToMasterData.order_date);
                toMaster.status                 = transferOrderModel.ToMasterData.status;
                toMaster.remarks                = transferOrderModel.ToMasterData.remarks;
                toMaster.expected_transfer_date = transferOrderModel.ToMasterData.expected_transfer_date;
                toMaster.total_amount           = transferOrderModel.ToMasterData.total_amount;
                toMaster.from_warehouse_id      = transferOrderModel.ToMasterData.from_warehouse_id;
                toMaster.to_warehouse_id        = transferOrderModel.ToMasterData.to_warehouse_id;
                toMaster.created_by             = transferOrderModel.ToMasterData.created_by;
                toMaster.created_date           = DateTime.Now;
                toMaster.updated_by             = transferOrderModel.ToMasterData.updated_by;
                toMaster.updated_date           = DateTime.Now;
                toMaster.is_active              = true;
                toMaster.is_deleted             = false;

                _entities.transfer_order_master.Add(toMaster);
                _entities.SaveChanges();

                long transferOrderMasterId = toMaster.transfer_order_master_id;

                foreach (var item in toDetailsList)
                {
                    var toDetails = new transfer_order_details
                    {
                        transfer_order_master_id = transferOrderMasterId,
                        product_id          = item.product_id,
                        unit_id             = item.unit_id,
                        unit_price          = item.unit_price,
                        quantity            = item.quantity,
                        product_version_id  = item.product_version_id,
                        brand_id            = item.brand_id,
                        color_id            = item.color_id,
                        transfered_quantity = 0,
                        last_modified_date  = DateTime.Now,
                        line_total          = item.line_total,
                        size_id             = item.size_id,
                        status = item.status,
                        product_category_id = item.product_category_id
                    };

                    _entities.transfer_order_details.Add(toDetails);
                    _entities.SaveChanges();
                }
                return(1);
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
        public bool EditTransferOrder(TransferOrderModel transferOrderModel)
        {
            try
            {
                var toMaster      = transferOrderModel.ToMasterData;
                var toDetailsList = transferOrderModel.ToDetailsList;
                transfer_order_master masterData = _entities.transfer_order_master.Find(toMaster.transfer_order_master_id);

                masterData.order_date             = Convert.ToDateTime(transferOrderModel.ToMasterData.order_date);
                masterData.remarks                = transferOrderModel.ToMasterData.remarks;
                masterData.expected_transfer_date = transferOrderModel.ToMasterData.expected_transfer_date;
                masterData.total_amount           = transferOrderModel.ToMasterData.total_amount;
                masterData.from_warehouse_id      = transferOrderModel.ToMasterData.from_warehouse_id;
                masterData.to_warehouse_id        = transferOrderModel.ToMasterData.to_warehouse_id;
                masterData.created_by             = transferOrderModel.ToMasterData.created_by;
                masterData.created_date           = DateTime.Now;
                masterData.updated_by             = transferOrderModel.ToMasterData.updated_by;
                masterData.updated_date           = DateTime.Now;
                masterData.is_active              = true;
                masterData.is_deleted             = false;

                _entities.SaveChanges();

                foreach (var item in toDetailsList)
                {
                    transfer_order_details detailsData =
                        _entities.transfer_order_details.FirstOrDefault(pd => pd.transfer_order_master_id == toMaster.transfer_order_master_id && pd.transfer_order_details_id == item.transfer_order_details_id && pd.last_modified_date == item.last_modified_date);
                    if (detailsData != null)
                    {
                        detailsData.transfer_order_master_id = toMaster.transfer_order_master_id;
                        detailsData.product_id          = item.product_id;
                        detailsData.unit_id             = item.unit_id;
                        detailsData.unit_price          = item.unit_price;
                        detailsData.quantity            = item.quantity;
                        detailsData.product_version_id  = item.product_version_id;
                        detailsData.brand_id            = item.brand_id;
                        detailsData.color_id            = item.color_id;
                        detailsData.last_modified_date  = DateTime.Now;
                        detailsData.line_total          = item.line_total;
                        detailsData.size_id             = item.size_id;
                        detailsData.status              = item.status;
                        detailsData.product_category_id = item.product_category_id;

                        _entities.SaveChanges();
                    }
                    else
                    {
                        var poDetails = new transfer_order_details
                        {
                            transfer_order_master_id = toMaster.transfer_order_master_id,
                            product_id          = item.product_id,
                            unit_id             = item.unit_id,
                            unit_price          = item.unit_price,
                            quantity            = item.quantity,
                            product_version_id  = item.product_version_id,
                            brand_id            = item.brand_id,
                            color_id            = item.color_id,
                            transfered_quantity = 0,
                            last_modified_date  = DateTime.Now,
                            line_total          = item.line_total,
                            size_id             = item.size_id,
                            status = item.status,
                            product_category_id = item.product_category_id
                        };

                        _entities.transfer_order_details.Add(poDetails);
                        _entities.SaveChanges();
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Esempio n. 10
0
        public bool UpdateTransferOrder(TransferOrderModel order, string function, int transferOrderId, int sequenceNumber, DateTime?loadStartDate, DateTime?loadEndDate, int?equipmentId, int?loaderId, decimal weight)
        {
            var client  = getUrl(transferOrderId);
            var request = new RestRequest(Method.PATCH);

            request.AddHeader("Content-Type", "application/json-patch+json");
            request.RequestFormat = DataFormat.Json;

            TransferOrderModel updTO = order;
            bool splitLoad           = updTO.isSplit;

            updTO.transferOrderArrivals = updTO.transferOrderArrivals.Where(x => x.sequenceNumber == sequenceNumber).ToList();

            bool previouslyCompleted = false;

            if (function == "Inbound")
            {
                if (updTO.transferOrderArrivals.Single().scaleInWeight == null || updTO.transferOrderArrivals.Single().scaleInWeight != weight)
                {
                    var updLoadStartDate = JsonConvert.ToString(Convert.ToDateTime(loadStartDate).ToUniversalTime());
                    updLoadStartDate = updLoadStartDate.Replace("\"", "");

                    updTO.transferOrderArrivals.Single().scaleInWeight = weight;
                    updTO.transferOrderArrivals.Single().scaleInDate   = updLoadStartDate;

                    if (splitLoad)
                    {
                        if (sequenceNumber == 1)
                        {
                            updTO.departureEquipmentName = equipmentId.ToString();
                            updTO.loadStartDate          = updLoadStartDate;
                        }
                    }
                    else
                    {
                        updTO.departureEquipmentName = equipmentId.ToString();
                        updTO.loadStartDate          = updLoadStartDate;
                    }
                }
                else
                {
                    ServiceLog.Default.Trace("Record already has a scale in weight that matches for id {0}, sequence {1}", updTO.transferOrderId.ToString(), updTO.transferOrderArrivals.Single().sequenceNumber.ToString());
                    previouslyCompleted = true;
                }
            }
            else
            {
                var updLoadEndDate = JsonConvert.ToString(Convert.ToDateTime(loadEndDate).ToUniversalTime());
                updLoadEndDate = updLoadEndDate.Replace("\"", "");

                if (updTO.transferOrderArrivals.Single().scaleOutWeight == null || updTO.transferOrderArrivals.Single().scaleOutWeight != weight)
                {
                    updTO.transferOrderArrivals.Single().scaleOutWeight    = weight;
                    updTO.transferOrderArrivals.Single().netTransferWeight = Math.Abs(Convert.ToDecimal(updTO.transferOrderArrivals.Single().scaleInWeight) - weight);
                    updTO.transferOrderArrivals.Single().scaleOutDate      = updLoadEndDate;
                    updTO.transferOrderLoaderId = loaderId;

                    if (splitLoad)
                    {
                        if (sequenceNumber != 1)
                        {
                            updTO.loadEndDate = updLoadEndDate;
                        }
                    }
                    else
                    {
                        updTO.loadEndDate = updLoadEndDate;
                    }
                }
                else
                {
                    ServiceLog.Default.Trace("Record already has a scale out weight that matches for id {0}, sequence {1}", updTO.transferOrderId.ToString(), updTO.transferOrderArrivals.Single().sequenceNumber.ToString());
                    previouslyCompleted = true;
                }
            }

            if (!previouslyCompleted)
            {
                try
                {
                    string json = JsonConvert.SerializeObject(updTO);
                    request.AddParameter("application/json-patch+json", json, ParameterType.RequestBody);

                    var response = client.Execute(request);

                    if (response.IsSuccessful)
                    {
                        ServiceLog.Default.Trace("Transfer order Id {0}, sequence {1} was successfully updated.", transferOrderId.ToString(), sequenceNumber.ToString());
                        return(true);
                    }
                }
                catch (Exception e)
                {
                    ServiceLog.Default.Trace("Exception has occurred: ", e.Message);
                    return(false);
                }
            }

            return(false);
        }
Esempio n. 11
0
        public bool UpdateInboundScaleData(int transferOrderId, int sequenceNumber, int driverId, int truckNumber, int trailerNumber, decimal weight, DateTime scaleInDate)
        {
            TransferOrderModel transferOrder = getTransferOrder(transferOrderId);

            return(false);
        }