Example #1
0
        public static ResultDTO TransferPlant(DocumentTransfer transfer, bool switchWhs)
        {
            var    result     = new ResultDTO();
            string transitWhs = String.Empty;
            var    objectCode = BoObjectTypes.oStockTransfer;

            FoodPlantDAO foodPlantDAO = new FoodPlantDAO();

            try {
                var oStockTransfer = (StockTransfer)DIApplication.Company.GetBusinessObject(objectCode); //ODRF

                oStockTransfer.FromWarehouse = (switchWhs) ? transfer.Document.FromWhs : transfer.Document.ToWhs;
                oStockTransfer.ToWarehouse   = (switchWhs) ? transfer.Document.ToWhs : transfer.Document.FromWhs;
                oStockTransfer.UserFields.Fields.Item("U_GLO_Status").Value = "O";

                foreach (var line in transfer.Lines)
                {
                    oStockTransfer.Lines.ItemCode        = line.Item;
                    oStockTransfer.Lines.ItemDescription = line.Desc;
                    oStockTransfer.Lines.Quantity        = line.Quantity;
                    oStockTransfer.Lines.UserFields.Fields.Item("U_GLO_BagsBales").Value = line.Bags;
                    oStockTransfer.Lines.FromWarehouseCode = (switchWhs) ? line.FromWhs : line.ToWhs;
                    oStockTransfer.Lines.WarehouseCode     = (switchWhs) ? oStockTransfer.ToWarehouse : oStockTransfer.FromWarehouse;
                    oStockTransfer.Lines.Add();
                }


                if (oStockTransfer.Add() != 0)
                {
                    UIApplication.ShowMessageBox(string.Format("Exception: {0}", DIApplication.Company.GetLastErrorDescription()));
                    QsLog.WriteError("TransferDI (Document) " + DIApplication.Company.GetLastErrorDescription());
                    result.Success = false;
                    result.Message = "Error: " + DIApplication.Company.GetLastErrorDescription();
                }
                else
                {
                    result.Success = true;
                    result.Message = String.Format("El translado del almacen {0} al almacen {1} se realizó con éxito", oStockTransfer.FromWarehouse, oStockTransfer.ToWarehouse);
                }
            }
            catch (AggregateException ae) {
                ae.Handle(e => {
                    HandleException(e, "TransferDI(Document)");
                    result.Message = "Error: " + e.Message;
                    result.Success = false;
                    return(true);
                });
            }
            catch (Exception ex) {
                HandleException(ex, "TransferDI(Document)");
                result.Message = "Error: " + ex.Message;
                result.Success = false;
            }
            return(result);
        }
Example #2
0
        public static ResultDTO CreateDraft(RequestTransfer[] transferRequest, User user)
        {
            var          result       = new ResultDTO();
            string       transitWhs   = String.Empty;
            var          objectCode   = BoObjectTypes.oInventoryTransferRequest;
            var          item         = String.Empty;
            FoodPlantDAO foodPlantDAO = new FoodPlantDAO();

            try {
                var oStockTransferDraft = (Documents)DIApplication.Company.GetBusinessObject(BoObjectTypes.oDrafts); //ODRF

                oStockTransferDraft.CardCode      = transferRequest[0].Code;
                oStockTransferDraft.DocObjectCode = BoObjectTypes.oStockTransfer;
                oStockTransferDraft.UserFields.Fields.Item("U_GLO_BusinessPartner").Value = transferRequest[0].Code;
                oStockTransferDraft.UserFields.Fields.Item("U_PL_WhsReq").Value           = transferRequest[0].FromWhs;
                oStockTransferDraft.Series   = user.Series;
                oStockTransferDraft.Comments = transferRequest[0].Observations;

                foreach (var line in transferRequest)
                {
                    transitWhs = foodPlantDAO.GetAvailableTransitWarehouse(line.Item);
                    if (String.IsNullOrEmpty(transitWhs))
                    {
                        item = line.Item;
                        break;
                    }

                    oStockTransferDraft.Lines.ItemCode      = line.Item;
                    oStockTransferDraft.Lines.BaseEntry     = line.Folio;
                    oStockTransferDraft.Lines.BaseLine      = line.LineNum;
                    oStockTransferDraft.Lines.WarehouseCode = foodPlantDAO.GetAvailableTransitWarehouse(line.Item);
                    oStockTransferDraft.Lines.Quantity      = line.Quantity;
                    oStockTransferDraft.Lines.BaseType      = (int)objectCode;
                    oStockTransferDraft.Lines.CostingCode   = user.Area;
                    oStockTransferDraft.Lines.Add();
                }

                if (String.IsNullOrEmpty(transitWhs))
                {
                    return(new ResultDTO()
                    {
                        Success = false, Message = String.Format("Error: No hay almacenes de transito disponibles para este artículo {0}", item)
                    });
                }

                if (oStockTransferDraft.Add() != 0)
                {
                    UIApplication.ShowMessageBox(string.Format("Exception: {0}", DIApplication.Company.GetLastErrorDescription()));
                    QsLog.WriteError("TransferDI (Draft) " + DIApplication.Company.GetLastErrorDescription());
                    result.Success = false;
                    result.Message = "Error: " + DIApplication.Company.GetLastErrorDescription();
                }
                else
                {
                    result.Success = true;
                    result.Message = DIApplication.Company.GetNewObjectKey();
                }
            }
            catch (AggregateException ae) {
                ae.Handle(e => {
                    HandleException(e, "TransferDI(Draft)");
                    result.Message = "Error: " + e.Message;
                    result.Success = false;
                    return(true);
                });
            }
            catch (Exception ex) {
                HandleException(ex, "TransferDI(Draft)");
                result.Message = "Error: " + ex.Message;
                result.Success = false;
            }

            return(result);
        }