static List<ordenCompraReporte> agregarParaListaSinRepetir(List<ordenCompraReporte> Lista, ordenCompraReporte temp) { List<ordenCompraReporte> retorno = new List<ordenCompraReporte>(); bool encontrado = false; for (int i = 0; i < Lista.Count; i++) { if (Lista[i].unidad.Equals(temp.unidad) && Lista[i].precio.Equals(temp.precio) && Lista[i].detalle.Equals(temp.detalle)) { encontrado = true; Lista[i].cantidad = (int.Parse(Lista[i].cantidad) + int.Parse(temp.cantidad)).ToString(); Lista[i].montoTotal = (int.Parse(Lista[i].cantidad) * int.Parse(Lista[i].precio)).ToString(); } retorno.Add(Lista[i]); } if (!encontrado) { retorno.Add(temp); } return retorno; }
public static List<ordenCompraReporte> convertirEnDatosOrdenCompraReporte(orden_compra ordenCompra) { List<ordenCompraReporte> retorno = new List<ordenCompraReporte>(); datosEmpresa DatosEmpresa = datosEmpresa.obtenerDatos(); List<detalle_ordencompra> detalle = detalle_ordencompra.obtenerTodas(ordenCompra.numero_orden); nota notaOrden = nota.obtenerNota(ordenCompra.numero_orden); usointerno_oc usoInterno = usointerno_oc.obtenerUsointerno(ordenCompra.numero_orden); proveedores proveedor = new proveedores().getProveedor(ordenCompra.id_proveedor); //Para cada item del detalle se crea un elemento for (int i = 0; i < detalle.Count; i++) { ordenCompraReporte temp = new ordenCompraReporte(); temp.numeroOrdenCompra = ordenCompra.numero_orden; temp.fecha = ordenCompra.fecha; temp.rutEmpresa = DatosEmpresa.rut; temp.giroEmpresa = DatosEmpresa.giro; temp.direccionEmpresa = DatosEmpresa.direccion; temp.telefonoEmpresa = DatosEmpresa.telefono; temp.correoEmpresa = DatosEmpresa.correo; temp.nombreEmpresaPara = ordenCompra.id_proveedor; temp.rutEmpresaPara = proveedor.rut; temp.giroEmpresaPara = proveedor.razonsocial; temp.direccionEmpresaPara = proveedor.direccion; temp.telefonoEmpresaPara = proveedor.telefono; temp.cantidad = detalle[i].cantidad_item.ToString(); temp.unidad = detalle[i].unidad; temp.detalle = detalle[i].id_item; temp.precio = "$" + new formatearString().valoresPesos(detalle[i].precio_unitario.ToString()); temp.montoTotal = "$" + new formatearString().valoresPesos((detalle[i].precio_unitario * detalle[i].cantidad_item).ToString()); temp.subtotal = "$" + new formatearString().valoresPesos(ordenCompra.sub_total); temp.iva = "$" + new formatearString().valoresPesos(ordenCompra.iva); temp.totalPagar = "$" + new formatearString().valoresPesos(ordenCompra.total); //Nota temp.sirvaseEntregar = notaOrden.donde; temp.direccionEntregar = notaOrden.dir_entrega; temp.transporteCuentaEntregar = notaOrden.transporte; temp.formaPagoEntregar = notaOrden.cuenta; temp.plazoEntregaEntregar = notaOrden.plazo_entrega; //Uso Interno temp.nombreObraUsoInterno = usoInterno.faena; temp.comunaUsoInterno = usoInterno.comuna; temp.observacionesUsoInterno = usoInterno.observacion; temp.emRevisadoPorUsoInterno = usuarios.obtenerUsuario(usoInterno.revisadoPor).nombreCompleto; temp.item = usoInterno.item; temp.presupuesto = usoInterno.presupuesto; temp.OC = usoInterno.oc; temp.saldo = usoInterno.saldo; temp.observacion = ordenCompra.observacion; if (ordenCompra.esReeemplazada()) { temp.reemplazada = "true"; temp.numeroReemplaza = ordenCompra.obtenerNumeroOrdenQueReemplaza(); } else { temp.reemplazada = "false"; } if (ordenCompra.reemplaza()) { temp.reemplaza = "true"; temp.numeroReemplazada = ordenCompra.obtenerNumeroOrdenReemplazada(); } else { temp.reemplaza = "false"; } retorno = agregarParaListaSinRepetir(retorno, temp); } return retorno; }