public Operacion CrearDemandaDespachoEncabezado(DemandaDespachoHeader encabezado) { DbParameter[] parameters = { new OAParameter { ParameterName = "@DOC_NUM", Value = encabezado.DOC_NUM } , new OAParameter { ParameterName = "@CLIENT_CODE", Value = encabezado.CLIENT_CODE } , new OAParameter { ParameterName = "@CODE_ROUTE", Value = encabezado.CODE_ROUTE } , new OAParameter { ParameterName = "@CODE_SELLER", Value = encabezado.CODE_SELLER } , new OAParameter { ParameterName = "@TOTAL_AMOUNT", Value = encabezado.TOTAL_AMOUNT } , new OAParameter { ParameterName = "@SERIAL_NUMBER", Value = encabezado.SERIAL_NUMBER } , new OAParameter { ParameterName = "@DOC_NUM_SEQUENCE", Value = encabezado.DOC_NUM_SEQUENCE } , new OAParameter { ParameterName = "@EXTERNAL_SOURCE_ID", Value = encabezado.EXTERNAL_SOURCE_ID } , new OAParameter { ParameterName = "@IS_FROM_ERP", Value = encabezado.IS_FROM_ERP } , new OAParameter { ParameterName = "@IS_FROM_SONDA", Value = encabezado.IS_FROM_SONDA } , new OAParameter { ParameterName = "@LAST_UPDATE_BY", Value = encabezado.LAST_UPDATE_BY } , new OAParameter { ParameterName = "@WAVE_PICKING_ID", Value = encabezado.WAVE_PICKING_ID } , new OAParameter { ParameterName = "@CODE_WAREHOUSE", Value = encabezado.CODE_WAREHOUSE } , new OAParameter { ParameterName = "@IS_COMPLETED", Value = encabezado.IS_COMPLETED } , new OAParameter { ParameterName = "@CUSTOMER_NAME", Value = encabezado.CUSTOMER_NAME } , new OAParameter { ParameterName = "@DOC_ENTRY", Value = encabezado.DOC_ENTRY } , new OAParameter { ParameterName = "@IS_CONSOLIDATED", Value = encabezado.IS_CONSOLIDATED } , new OAParameter { ParameterName = "@PRIORITY", Value = encabezado.PRIORITY } , new OAParameter { ParameterName = "@OWNER", Value = encabezado.OWNER } , new OAParameter { ParameterName = "@CLIENT_OWNER", Value = encabezado.CLIENT_OWNER } , new OAParameter { ParameterName = "@SELLER_OWNER", Value = encabezado.SELLER_OWNER } , new OAParameter { ParameterName = "@MASTER_ID_SELLER", Value = encabezado.MASTER_ID_SELLER } , new OAParameter { ParameterName = "@SOURCE_TYPE", Value = encabezado.SOURCE_TYPE } , new OAParameter { ParameterName = "@DEMAND_TYPE", Value = encabezado.DEMAND_TYPE } , new OAParameter { ParameterName = "@WAREHOUSE_FROM", Value = encabezado.WAREHOUSE_FROM } , new OAParameter { ParameterName = "@WAREHOUSE_TO", Value = encabezado.WAREHOUSE_TO } , new OAParameter { ParameterName = "@DELIVERY_DATE", Value = encabezado.DELIVERY_DATE }, new OAParameter { ParameterName = "@ADDRESS_CUSTOMER", Value = encabezado.ADDRESS_CUSTOMER } , new OAParameter { ParameterName = "@STATE_CODE", Value = encabezado.STATE_CODE } , new OAParameter { ParameterName = "@DISCOUNT", Value = encabezado.DISCOUNT } , new OAParameter { ParameterName = "@TYPE_DEMAND_CODE", Value = encabezado.TYPE_DEMAND_CODE } , new OAParameter { ParameterName = "@TYPE_DEMAND_NAME", Value = encabezado.TYPE_DEMAND_NAME } }; var op = BaseDeDatosServicio.ExecuteQuery <Operacion>(BaseDeDatosServicio.Esquema + ".OP_WMS_SP_INSERT_NEXT_DEMAND_PICKING_HEADER", CommandType.StoredProcedure, false, parameters)[0]; return(op); }
private int CrearDocumentoDemandaDespacho(PickingArgumento argumento, OrdenDeVentaEncabezado encabezado, int wavePickingId, IList <Picking> pickings) { var tipoDespacho = Enums.GetStringValue(TipoDemandaDespacho.OrdenVenta); if (argumento.TipoDespacho == TipoFuenteDemandaDespacho.SolicitudTrasladoErp || argumento.TipoDespacho == TipoFuenteDemandaDespacho.SolicitudTrasladoWms) { tipoDespacho = Enums.GetStringValue(TipoDemandaDespacho.SolicitudTraslado); } var demandaHeader = new DemandaDespachoHeader { IS_FROM_SONDA = encabezado.IS_FROM_SONDA, IS_FROM_ERP = encabezado.IS_FROM_ERP, LAST_UPDATE_BY = argumento.Login, CLIENT_CODE = encabezado.CLIENT_ID, CUSTOMER_NAME = encabezado.CUSTOMER_NAME, CODE_SELLER = encabezado.CODE_SELLER, CODE_ROUTE = encabezado.CODE_ROUTE, CODE_WAREHOUSE = argumento.Bodega, DOC_NUM = encabezado.SALES_ORDER_ID, DOC_NUM_SEQUENCE = encabezado.DOC_NUM, LAST_UPDATE = DateTime.Now, SERIAL_NUMBER = encabezado.DOC_SERIE, TOTAL_AMOUNT = encabezado.TOTAL_AMOUNT, WAVE_PICKING_ID = wavePickingId, IS_COMPLETED = encabezado.IS_COMPLETED, EXTERNAL_SOURCE_ID = encabezado.EXTERNAL_SOURCE_ID, DOC_ENTRY = encabezado.DOC_ENTRY, IS_CONSOLIDATED = argumento.EsConsolidado ? 1 : 0, PRIORITY = encabezado.Prioridad, CLIENT_OWNER = encabezado.CLIENT_OWNER, MASTER_ID_SELLER = encabezado.MASTER_ID_SELLER, SELLER_OWNER = encabezado.SELLER_OWNER, OWNER = encabezado.OWNER, SOURCE_TYPE = Enums.GetStringValue(argumento.TipoDespacho), DEMAND_TYPE = tipoDespacho, WAREHOUSE_FROM = encabezado.WAREHOUSE_FROM, WAREHOUSE_TO = encabezado.WAREHOUSE_TO, DELIVERY_DATE = encabezado.DELIVERY_DATE.GetValueOrDefault().Date, ADDRESS_CUSTOMER = encabezado.ADDRESS_CUSTOMER, STATE_CODE = encabezado.STATE_CODE, DISCOUNT = encabezado.DISCOUNT, TYPE_DEMAND_CODE = encabezado.TYPE_DEMAND_CODE, TYPE_DEMAND_NAME = encabezado.TYPE_DEMAND_NAME }; var op = CrearDemandaDespachoEncabezado(demandaHeader); if (op.Resultado == ResultadoOperacionTipo.Error) { throw new Exception("Error. No se pudo guardar la demanda de despacho de la orden de venta " + encabezado.SALES_ORDER_ID + ": " + op.Mensaje); } var pickingDocumentHeader = Convert.ToInt32(op.DbData); var demandaDetalle = encabezado.Detalles.Select(x => new DemandaDespachoDetalle { ERP_OBJECT_TYPE = x.ERP_OBJECT_TYPE, LINE_NUM = x.LINE_SEQ, MATERIAL_ID = x.SKU, PRICE = x.PRICE, PICKING_DEMAND_HEADER_ID = Convert.ToInt32(op.DbData), QTY = Convert.ToInt32(x.QTY), MASTER_ID_MATERIAL = x.MASTER_ID_MATERIAL, MATERIAL_OWNER = x.MATERIAL_OWNER, SOURCE_TYPE = Enums.GetStringValue(argumento.TipoDespacho), TONE = x.TONE, CALIBER = x.CALIBER, DISCOUNT = x.DISCOUNT, DISCOUNT_TYPE = x.DISCOUNT_TYPE, IS_BONUS = x.IS_BONUS }).ToList(); op = CrearDemandaDespachoDetalle(demandaDetalle, pickings); if (op.Resultado == ResultadoOperacionTipo.Error) { throw new Exception( "Error. No se pudo guardar el detalle de la demanda de despacho de la orden de venta " + encabezado.SALES_ORDER_ID + ": " + op.Mensaje); } return(pickingDocumentHeader); }