private bool RegistrarDocumento() { var movOOB = new OOB.LibInventario.Movimiento.Ajuste.Insertar.FichaMov() { autoConcepto = Concepto.id, autoDepositoDestino = DepositoOrigen.id, autoDepositoOrigen = DepositoOrigen.id, autoRemision = "", autorizado = miData.AutorizadoPor, autoUsuario = Sistema.UsuarioP.autoUsu, cierreFtp = "", codConcepto = Concepto.codigo, codDepositoDestino = DepositoOrigen.codigo, codDepositoOrigen = DepositoOrigen.codigo, codigoSucursal = Sucursal.codigo, codUsuario = Sistema.UsuarioP.codigoUsu, desConcepto = Concepto.descripcion, desDepositoDestino = DepositoOrigen.descripcion, desDepositoOrigen = DepositoOrigen.descripcion, documentoNombre = "AJUSTES", estacion = Environment.MachineName, estatusAnulado = "0", estatusCierreContable = "0", nota = miData.Motivo, renglones = _gestionDetalle.TotalItems, situacion = "Procesado", tipo = "04", total = MontoMovimiento, usuario = Sistema.UsuarioP.nombreUsu, factorCambio = tasaCambio, montoDivisa = Math.Round(MontoMovimiento / tasaCambio, 2, MidpointRounding.AwayFromZero), }; var detOOB = _gestionDetalle.Detalle.ListaItems.Select(s => { var rg = new OOB.LibInventario.Movimiento.Ajuste.Insertar.FichaMovDetalle() { autoDepartamento = s.FichaPrd.identidad.autoDepartamento, autoGrupo = s.FichaPrd.identidad.autoGrupo, autoProducto = s.FichaPrd.AutoId, cantidad = s.Cantidad, cantidadBono = 0, cantidadUnd = s.CantidadUnd, categoria = s.FichaPrd.Categoria, codigoProducto = s.FichaPrd.CodigoPrd, contEmpaque = s.FichaPrd.identidad.contenidoCompra, costoCompra = s.CostoMonedaLocal, costoUnd = s.CostoUndMonedaLocal, decimales = s.FichaPrd.Decimales, empaque = s.FichaPrd.identidad.empaqueCompra, estatusAnulado = "0", estatusUnidad = s.TipoEmpaqueSeleccionado == enumerados.enumTipoEmpaque.PorUnidad ? "1" : "0", nombreProducto = s.DescripcionPrd, signo = s.Signo, tipo = "04", total = s.ImporteMonedaLocal, }; return(rg); }).ToList(); var gr3 = _gestionDetalle.Detalle.ListaItems.GroupBy (g => new { g.FichaPrd.AutoId, g.DescripcionPrd }). Select(g2 => new { id = g2.Key.AutoId, desc = g2.Key.DescripcionPrd, cnt = g2.Sum(s => s.CantidadUnd * s.Signo) }).ToList(); var depOOB = gr3.Select(s => { var rg = new OOB.LibInventario.Movimiento.Ajuste.Insertar.FichaMovDeposito() { autoDeposito = DepositoOrigen.id, autoProducto = s.id, cantidadUnd = s.cnt, nombreProducto = s.desc, nombreDeposito = DepositoOrigen.descripcion, }; return(rg); }).ToList(); var KardexOOB = _gestionDetalle.Detalle.ListaItems.Select(s => { var rg = new OOB.LibInventario.Movimiento.Ajuste.Insertar.FichaMovKardex() { autoConcepto = Concepto.id, autoDeposito = DepositoOrigen.id, autoProducto = s.FichaPrd.AutoId, cantidad = s.Cantidad, cantidadBono = 0.0m, cantidadUnd = s.CantidadUnd, codigoMov = "04", codigoConcepto = Concepto.codigo, codigoDeposito = DepositoOrigen.codigo, codigoSucursal = Sucursal.codigo, costoUnd = s.CostoUndMonedaLocal, entidad = "", estatusAnulado = "0", modulo = "Inventario", nombreConcepto = Concepto.descripcion, nombreDeposito = DepositoOrigen.descripcion, nota = "", precioUnd = 0.0m, siglasMov = "AJU", signoMov = s.Signo, total = s.ImporteMonedaLocal, }; return(rg); }).ToList(); var fichaOOB = new OOB.LibInventario.Movimiento.Ajuste.Insertar.Ficha() { mov = movOOB, movDeposito = depOOB, movDetalles = detOOB, movKardex = KardexOOB, }; var r01 = Sistema.MyData.Producto_Movimiento_Ajuste_Insertar(fichaOOB); if (r01.Result == OOB.Enumerados.EnumResult.isError) { Helpers.Msg.Error(r01.Mensaje); return(false); } Helpers.VisualizarDocumento.CargarVisualizarDocumento(r01.Auto); return(true); }
//INSERTAR public OOB.ResultadoAuto Producto_Movimiento_Ajuste_Insertar(OOB.LibInventario.Movimiento.Ajuste.Insertar.Ficha data) { var rt = new OOB.ResultadoAuto(); var mov = data.mov; var movDTO = new DtoLibInventario.Movimiento.Ajuste.Insertar.FichaMov() { autoConcepto = mov.autoConcepto, autoDepositoDestino = mov.autoDepositoDestino, autoDepositoOrigen = mov.autoDepositoOrigen, autoRemision = mov.autoRemision, autorizado = mov.autorizado, autoUsuario = mov.autoUsuario, cierreFtp = mov.cierreFtp, codConcepto = mov.codConcepto, codDepositoDestino = mov.codDepositoDestino, codDepositoOrigen = mov.codDepositoOrigen, codigoSucursal = mov.codigoSucursal, codUsuario = mov.codUsuario, desConcepto = mov.desConcepto, desDepositoDestino = mov.desDepositoDestino, desDepositoOrigen = mov.desDepositoOrigen, documentoNombre = mov.documentoNombre, estacion = mov.estacion, estatusAnulado = mov.estatusAnulado, estatusCierreContable = mov.estatusCierreContable, nota = mov.nota, renglones = mov.renglones, situacion = mov.situacion, tipo = mov.tipo, total = mov.total, usuario = mov.usuario, factorCambio = mov.factorCambio, montoDivisa = mov.montoDivisa, }; var movDetDTO = data.movDetalles.Select(s => { var dt = new DtoLibInventario.Movimiento.Ajuste.Insertar.FichaMovDetalle() { autoDepartamento = s.autoDepartamento, autoGrupo = s.autoGrupo, autoProducto = s.autoProducto, cantidad = s.cantidad, cantidadBono = s.cantidadBono, cantidadUnd = s.cantidadUnd, categoria = s.categoria, codigoProducto = s.codigoProducto, contEmpaque = s.contEmpaque, costoCompra = s.costoCompra, costoUnd = s.costoUnd, decimales = s.decimales, empaque = s.empaque, estatusAnulado = s.estatusAnulado, estatusUnidad = s.estatusUnidad, nombreProducto = s.nombreProducto, signo = s.signo, tipo = s.tipo, total = s.total, }; return(dt); }).ToList(); var movKardexDTO = data.movKardex.Select(s => { var dt = new DtoLibInventario.Movimiento.Ajuste.Insertar.FichaMovKardex() { autoConcepto = s.autoConcepto, autoDeposito = s.autoDeposito, autoProducto = s.autoProducto, cantidad = s.cantidad, cantidadBono = s.cantidadBono, cantidadUnd = s.cantidadUnd, codigoMov = s.codigoMov, codigoSucursal = s.codigoSucursal, costoUnd = s.costoUnd, entidad = s.entidad, estatusAnulado = s.estatusAnulado, modulo = s.modulo, nota = s.nota, precioUnd = s.precioUnd, siglasMov = s.siglasMov, signoMov = s.signoMov, total = s.total, codigoConcepto = s.codigoConcepto, nombreConcepto = s.nombreConcepto, codigoDeposito = s.codigoDeposito, nombreDeposito = s.nombreDeposito, }; return(dt); }).ToList(); var movDepDTO = data.movDeposito.Select(s => { var dt = new DtoLibInventario.Movimiento.Ajuste.Insertar.FichaMovDeposito() { autoProducto = s.autoProducto, autoDeposito = s.autoDeposito, cantidadUnd = s.cantidadUnd, nombreProducto = s.nombreProducto, nombreDeposito = s.nombreDeposito, }; return(dt); }).ToList(); var fichaDto = new DtoLibInventario.Movimiento.Ajuste.Insertar.Ficha() { mov = movDTO, movDeposito = movDepDTO, movDetalles = movDetDTO, movKardex = movKardexDTO, }; var r01 = MyData.Producto_Movimiento_Ajuste_Insertar(fichaDto); if (r01.Result == DtoLib.Enumerados.EnumResult.isError) { rt.Mensaje = r01.Mensaje; rt.Result = OOB.Enumerados.EnumResult.isError; return(rt); } rt.Auto = r01.Auto; return(rt); }