Esempio n. 1
0
        public static string ReciboCalibrado(string WhsCode, string DocEntry, string DocEntryOF, string Tarja, string Peso, string Conteo, string reparo, string Variedad, string CodPro, string NomPro, string sessionId)
        {
            var OF = DeserializeJsonToDynamic(GET(ServiceLayer.ProductionOrders, DocEntryOF, null, sessionId, out _));

            if (OF.AbsoluteEntry != null)
            {
                //var batch = DeserializeJsonObject<BatchNumberDetails>(GET(ServiceLayer.BatchNumberDetails, null, $"?$filter=Batch eq '{Lote}'", sessionId));
                //var bin = DeserializeJsonObject<DFO_LOTESCALIBRADO>(GET(ServiceLayer.DFO_LOTESCALIBRADO, null, $"?$filter=LOTE eq '{Lote}'", sessionId));

                //Consultar cajas asociadas a OF sin lote asignado

                DateTime date   = DateTime.Now;
                string   fecha  = date.ToString("yyyyMMddHHmmssfff");
                string   Notes  = "";
                string   Status = "0";
                if (reparo == "Y")
                {
                    Notes  = "Aprobado con reparos";
                    Status = "2";
                }

                var ListDocBatch = new List <BatchNumbers>();

                BatchNumbers DocBatch = new BatchNumbers
                {
                    BatchNumber = Tarja,
                    Quantity    = double.Parse(Peso),
                    //Status = Status,
                    U_FRU_CantBins    = 1,
                    U_FRU_CantBinsDis = 1,
                    U_FRU_Conteo      = Conteo,
                    U_FRU_EstadoCalid = Notes
                };

                ListDocBatch.Add(DocBatch);

                var             ListDocLines = new List <IDocument_Lines>();
                IDocument_Lines DocLines     = new IDocument_Lines
                {
                    BaseEntry = OF.AbsoluteEntry,
                    //BaseLine = 0,
                    BaseType      = "202",
                    Quantity      = double.Parse(Peso),
                    BatchNumbers  = ListDocBatch,
                    WarehouseCode = WhsCode//,
                };
                ListDocLines.Add(DocLines);

                IDocuments Documents = new IDocuments
                {
                    DocDate       = DateTime.Now.ToString("yyyyMMdd"),
                    DocumentLines = ListDocLines,
                };

                var response = DeserializeJsonToDynamic(POST(ServiceLayer.InventoryGenEntries, Documents, sessionId, out HttpStatusCode statusCode));

                if (response.DocEntry != null)
                {
                    var batch = DeserializeJsonObject <BatchNumberDetails>(GET(ServiceLayer.BatchNumberDetails, null, $"?$filter=Batch eq '{Tarja}'", sessionId, out _));

                    batch.U_FRU_CantBinsDis = 1;
                    batch.U_FRU_CantBins    = 1;
                    batch.U_FRU_Conteo      = Conteo;
                    batch.U_FRU_EstadoCalid = Notes;
                    PATCH(ServiceLayer.BatchNumberDetails, batch, batch.DocEntry.ToString(), sessionId, out _);

                    // Tarja

                    var OCAOF = DeserializeList <Calibrado>(GET(ServiceLayer.Calibrado, null, $"?$filter=DocEntry eq {DocEntry} and Remark eq null", sessionId, out _));
                    foreach (var item in OCAOF)
                    {
                        item.Remark   = response.DocEntry;
                        item.U_Estado = "A";
                        PATCH(ServiceLayer.Calibrado, item, item.DocEntry, sessionId, out _);
                    }
                }
                else
                {
                    var objresponse = DeserializeJsonToDynamic(response);
                    return(objresponse.error.message.value.ToString());
                }

                return(response.ToString());
            }
            else
            {
                return("OF no encontrada");
            }
        }
Esempio n. 2
0
        public static string ConsumoLoteCalibrado(string Lote, string DocEntryOF, string LineNum, string sessionId)
        {
            var OF = GET(ServiceLayer.ProductionOrders, DocEntryOF, null, sessionId, out _).DeserializeJsonToDynamic();

            if (OF.AbsoluteEntry != null)
            {
                var batch = DeserializeJsonObject <BatchNumberDetails>(GET(ServiceLayer.BatchNumberDetails, null, $"?$filter=Batch eq '{Lote}'", sessionId, out _));
                var bin   = DeserializeJsonObject <ListadoBinsMP>(GET(ServiceLayer.ListadoBinsMP, null, $"?$filter=LOTE eq '{Lote}' ", sessionId, out _)); //and ALMACEN eq 'FRUTEXSA'

                if (bin.CANTIDADBINS > 0)
                {
                    var          ListDocBatch = new List <BatchNumbers>();
                    BatchNumbers DocBatch     = new BatchNumbers
                    {
                        BatchNumber  = Lote,
                        SystemNumber = batch.SystemNumber,
                        Quantity     = double.Parse(bin.CANTIDADBINS.ToString()),
                    };
                    ListDocBatch.Add(DocBatch);

                    var             ListDocLines = new List <IDocument_Lines>();
                    IDocument_Lines DocLines     = new IDocument_Lines
                    {
                        DocEntry      = null,
                        BaseEntry     = OF.AbsoluteEntry,
                        BaseLine      = int.Parse(LineNum),
                        BaseType      = "202",
                        Quantity      = double.Parse(bin.CANTIDADBINS.ToString()), //bin.CANTIDADBINS,
                        BatchNumbers  = ListDocBatch,
                        WarehouseCode = bin.ALMACEN
                    };
                    ListDocLines.Add(DocLines);

                    IDocuments Documents = new IDocuments
                    {
                        DocEntry      = null,
                        DocDate       = DateTime.Now.ToString("yyyyMMdd"),
                        DocumentLines = ListDocLines,
                    };

                    var response = POST(ServiceLayer.InventoryGenExits, Documents, sessionId, out HttpStatusCode statusCode).DeserializeJsonToDynamic();

                    if (statusCode == HttpStatusCode.Created)
                    {
                        batch.U_FRU_CantBinsDis -= 1;
                        if (!batch.U_FRU_CantBinsVol.HasValue)
                        {
                            batch.U_FRU_CantBinsVol = 0;
                        }

                        batch.U_FRU_CantBinsVol += 1;
                        PATCH(ServiceLayer.BatchNumberDetails, batch, batch.DocEntry.ToString(), sessionId, out _);
                    }
                    else
                    {
                        var objresponse = DeserializeJsonToDynamic(response);
                        return(objresponse.error.message.value.ToString());
                    }
                    return(response.ToString());
                }
                else
                {
                    return("El lote no tiene cantidad disponible");
                }
            }
            else
            {
                return("OF no encontrada");
            }
        }