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"); } }
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"); } }